From 524a7d83c93ff4b671fe128efbb592b3a11f9507 Mon Sep 17 00:00:00 2001 From: Evgeny Fadeev Date: Tue, 18 Sep 2012 03:53:16 -0400 Subject: broken commit, start for the group messaging app --- group_messaging/__init__.py | 14 +++ group_messaging/migrations/0001_initial.py | 177 ++++++++++++++++++++++++++ group_messaging/migrations/__init__.py | 0 group_messaging/models.py | 196 +++++++++++++++++++++++++++++ group_messaging/tests.py | 108 ++++++++++++++++ group_messaging/views.py | 148 ++++++++++++++++++++++ 6 files changed, 643 insertions(+) create mode 100644 group_messaging/__init__.py create mode 100644 group_messaging/migrations/0001_initial.py create mode 100644 group_messaging/migrations/__init__.py create mode 100644 group_messaging/models.py create mode 100644 group_messaging/tests.py create mode 100644 group_messaging/views.py diff --git a/group_messaging/__init__.py b/group_messaging/__init__.py new file mode 100644 index 00000000..642ad5c8 --- /dev/null +++ b/group_messaging/__init__.py @@ -0,0 +1,14 @@ +"""`group_messages` is a django application +which allows users send messages to other users +and groups (instances of :class:`django.contrib.auth.models.Group`) + +The same methods are used are used to send messages +to users as to groups - achieved via special "personal groups". + +By convention - personal groups have names formatted as follows: +_personal_, for example for the user whose `id == 1`, +the group should be named `'_personal_1'`. + +Only one person must be a member of a personal group and +each user must have such group. +""" diff --git a/group_messaging/migrations/0001_initial.py b/group_messaging/migrations/0001_initial.py new file mode 100644 index 00000000..7d907dc1 --- /dev/null +++ b/group_messaging/migrations/0001_initial.py @@ -0,0 +1,177 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding model 'SenderList' + db.create_table('group_messaging_senderlist', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('recipient', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.Group'], unique=True)), + )) + db.send_create_signal('group_messaging', ['SenderList']) + + # Adding M2M table for field senders on 'SenderList' + db.create_table('group_messaging_senderlist_senders', ( + ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), + ('senderlist', models.ForeignKey(orm['group_messaging.senderlist'], null=False)), + ('user', models.ForeignKey(orm['auth.user'], null=False)) + )) + db.create_unique('group_messaging_senderlist_senders', ['senderlist_id', 'user_id']) + + # Adding model 'MessageMemo' + db.create_table('group_messaging_messagememo', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'])), + ('message', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['group_messaging.Message'])), + ('status', self.gf('django.db.models.fields.SmallIntegerField')(default=0)), + )) + db.send_create_signal('group_messaging', ['MessageMemo']) + + # Adding unique constraint on 'MessageMemo', fields ['user', 'message'] + db.create_unique('group_messaging_messagememo', ['user_id', 'message_id']) + + # Adding model 'Message' + db.create_table('group_messaging_message', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('message_type', self.gf('django.db.models.fields.SmallIntegerField')(default=0)), + ('sender', self.gf('django.db.models.fields.related.ForeignKey')(related_name='sent_messages', to=orm['auth.User'])), + ('root', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='descendants', null=True, to=orm['group_messaging.Message'])), + ('parent', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='children', null=True, to=orm['group_messaging.Message'])), + ('headline', self.gf('django.db.models.fields.CharField')(max_length=80)), + ('text', self.gf('django.db.models.fields.TextField')(null=True, blank=True)), + ('html', self.gf('django.db.models.fields.TextField')(null=True, blank=True)), + ('sent_at', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)), + ('last_active_at', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)), + ('active_until', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)), + )) + db.send_create_signal('group_messaging', ['Message']) + + # Adding M2M table for field recipients on 'Message' + db.create_table('group_messaging_message_recipients', ( + ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), + ('message', models.ForeignKey(orm['group_messaging.message'], null=False)), + ('group', models.ForeignKey(orm['auth.group'], null=False)) + )) + db.create_unique('group_messaging_message_recipients', ['message_id', 'group_id']) + + def backwards(self, orm): + # Removing unique constraint on 'MessageMemo', fields ['user', 'message'] + db.delete_unique('group_messaging_messagememo', ['user_id', 'message_id']) + + # Deleting model 'SenderList' + db.delete_table('group_messaging_senderlist') + + # Removing M2M table for field senders on 'SenderList' + db.delete_table('group_messaging_senderlist_senders') + + # Deleting model 'MessageMemo' + db.delete_table('group_messaging_messagememo') + + # Deleting model 'Message' + db.delete_table('group_messaging_message') + + # Removing M2M table for field recipients on 'Message' + db.delete_table('group_messaging_message_recipients') + + models = { + 'auth.group': { + 'Meta': {'object_name': 'Group'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + 'auth.permission': { + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'auth.user': { + 'Meta': {'object_name': 'User'}, + 'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'avatar_type': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}), + 'bronze': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}), + 'consecutive_days_visit_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'country': ('django_countries.fields.CountryField', [], {'max_length': '2', 'blank': 'True'}), + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'display_tag_filter_strategy': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}), + 'email_signature': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email_tag_filter_strategy': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'gold': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}), + 'gravatar': ('django.db.models.fields.CharField', [], {'max_length': '32'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'ignored_tags': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'interesting_tags': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_fake': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'new_response_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}), + 'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}), + 'seen_response_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'show_country': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'show_marked_tags': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'silver': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}), + 'status': ('django.db.models.fields.CharField', [], {'default': "'w'", 'max_length': '2'}), + 'subscribed_tags': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), + 'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'group_messaging.message': { + 'Meta': {'object_name': 'Message'}, + 'active_until': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'headline': ('django.db.models.fields.CharField', [], {'max_length': '80'}), + 'html': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'last_active_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'message_type': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}), + 'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['group_messaging.Message']"}), + 'recipients': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False'}), + 'root': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'descendants'", 'null': 'True', 'to': "orm['group_messaging.Message']"}), + 'sender': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'sent_messages'", 'to': "orm['auth.User']"}), + 'sent_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'text': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}) + }, + 'group_messaging.messagememo': { + 'Meta': {'unique_together': "(('user', 'message'),)", 'object_name': 'MessageMemo'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'message': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['group_messaging.Message']"}), + 'status': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}) + }, + 'group_messaging.senderlist': { + 'Meta': {'object_name': 'SenderList'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'recipient': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.Group']", 'unique': 'True'}), + 'senders': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.User']", 'symmetrical': 'False'}) + } + } + + complete_apps = ['group_messaging'] \ No newline at end of file diff --git a/group_messaging/migrations/__init__.py b/group_messaging/migrations/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/group_messaging/models.py b/group_messaging/models.py new file mode 100644 index 00000000..838134e7 --- /dev/null +++ b/group_messaging/models.py @@ -0,0 +1,196 @@ +from django.db import models +from django.contrib.auth.models import Group +from django.contrib.auth.models import User + +MAX_TITLE_LENGTH = 80 + +#dummy parse message function +parse_message = lambda v: v + +def get_personal_group_by_user_id(user_id): + return Group.objects.get(name='_personal_%s' % user_id) + + +def get_personal_group(user): + """returns personal group for the user""" + return get_personal_group_by_user_id(user.id) + + +def create_personal_group(user): + """creates a personal group for the user""" + group = Group(name='_personal_%s' % user.id) + group.save() + return group + + +class SenderListManager(models.Manager): + """model manager for the :class:`SenderList`""" + + def get_senders_for_user(self, user=None): + """returns query set of :class:`User`""" + user_groups = user.groups.all() + lists = self.filter(recipient__in=user_groups) + user_ids = lists.values_list( + 'senders__id', flat=True + ).distinct() + return User.objects.filter(id__in=user_ids) + +class SenderList(models.Model): + """a model to store denormalized data + about who sends messages to any given person + sender list is populated automatically + as new messages are created + """ + recipient = models.ForeignKey(Group, unique=True) + senders = models.ManyToManyField(User) + objects = SenderListManager() + + +class MessageMemo(models.Model): + """A bridge between message recipients and messages + these records are only created when user sees a message. + The idea is that using groups as recipients, we can send + messages to massive numbers of users, without cluttering + the database. + + Instead we'll be creating a "seen" message after user + reads the message. + """ + SEEN = 0 + ARCHIVED = 1 + STATUS_CHOICES = ( + (SEEN, 'seen'), + (ARCHIVED, 'archived') + + ) + user = models.ForeignKey(User) + message = models.ForeignKey('Message') + status = models.SmallIntegerField( + choices=STATUS_CHOICES, default=SEEN + ) + + class Meta: + unique_together = ('user', 'message') + + +class MessageManager(models.Manager): + """model manager for the :class:`Message`""" + + def get_threads_for_user(self, user): + user_groups = user.groups.all() + return self.filter( + root=None, + message_type=Message.STORED, + recipients__in=user_groups + ) + + def create(self, **kwargs): + """creates a message""" + root = kwargs.get('root', None) + if root is None: + parent = kwargs.get('parent', None) + if parent: + if parent.root: + root = parent.root + else: + root = parent + kwargs['root'] = root + + headline = kwargs.get('headline', kwargs['text']) + kwargs['headline'] = headline[:MAX_TITLE_LENGTH] + kwargs['html'] = parse_message(kwargs['text']) + return super(MessageManager, self).create(**kwargs) + + def create_thread(self, sender=None, recipients=None, text=None): + """creates a stored message and adds recipients""" + message = self.create( + message_type=Message.STORED, + sender=sender, + text=text, + ) + message.add_recipients(recipients) + return message + + def create_response(self, sender=None, text=None, parent=None): + message = self.create( + parent=parent, + message_type=Message.STORED, + sender=sender, + text=text, + ) + #recipients are parent's recipients + sender + #creator of response gets memo in the "read" status + recipients = set(parent.recipients.all()) + senders_group = get_personal_group(parent.sender) + recipients.add(senders_group) + message.add_recipients(recipients, ignore_user=sender) + #add author of the parent as a recipient to parent + #but make sure to mute the message + parent.add_recipients([senders_group], ignore_user=parent.sender) + return message + + +class Message(models.Model): + """the message model allowing users to send + messages to other users and groups, via + personal groups. + """ + STORED = 0 + TEMPORARY = 1 + ONE_TIME = 2 + MESSAGE_TYPE_CHOICES = ( + (STORED, 'email-like message, stored in the inbox'), + (ONE_TIME, 'will be shown just once'), + (TEMPORARY, 'will be shown until certain time') + ) + + message_type = models.SmallIntegerField( + choices=MESSAGE_TYPE_CHOICES, + default=STORED, + ) + + sender = models.ForeignKey(User, related_name='sent_messages') + recipients = models.ManyToManyField(Group) + root = models.ForeignKey( + 'self', null=True, + blank=True, related_name='descendants' + ) + parent = models.ForeignKey( + 'self', null=True, + blank=True, related_name='children' + ) + headline = models.CharField(max_length=MAX_TITLE_LENGTH) + text = models.TextField( + null=True, blank=True, + help_text='source text for the message, e.g. in markdown format' + ) + html = models.TextField( + null=True, blank=True, + help_text='rendered html of the message' + ) + sent_at = models.DateTimeField(auto_now_add=True) + last_active_at = models.DateTimeField(auto_now_add=True) + active_until = models.DateTimeField(blank=True, null=True) + + objects = MessageManager() + + def add_recipients(self, recipients, ignore_user=None): + """adds recipients to the message + and updates the sender lists for all recipients + todo: sender lists may be updated in a lazy way - per user + + `ignore_user` parameter is used to mark a specific user + as not needing to receive a message as new, even if that + user is a member of any of the recipient groups + """ + if ignore_user: + #crate a "seen" memo for the sender, because we + #don't want to inform the user about his/her own post + MessageMemo.objects.create( + message=self, user=self.sender, status=MessageMemo.SEEN + ) + + self.recipients.add(*recipients) + for recipient in recipients: + sender_list, created = SenderList.objects.get_or_create(recipient=recipient) + sender_list.senders.add(self.sender) diff --git a/group_messaging/tests.py b/group_messaging/tests.py new file mode 100644 index 00000000..80f6f792 --- /dev/null +++ b/group_messaging/tests.py @@ -0,0 +1,108 @@ +from django.test import TestCase +from django.contrib.auth.models import User, Group +from group_messaging.models import Message +from group_messaging.models import MessageMemo +from group_messaging.models import SenderList +from group_messaging.models import get_personal_group +from group_messaging.models import create_personal_group + +MESSAGE_TEXT = 'test message text' + +def create_user(name): + """creates a user and a personal group, + returns the created user""" + user = User.objects.create_user(name, name + '@example.com') + #note that askbot will take care of three lines below automatically + try: + group = get_personal_group(user) + except Group.DoesNotExist: + group = create_personal_group(user) + group_name = '_personal_%d' % user.id + group, created = Group.objects.get_or_create(name=group_name) + user.groups.add(group) + return user + +class ModelTests(TestCase): + """test cases for the `private_messaging` models""" + + def setUp(self): + self.sender = create_user('sender') + self.recipient = create_user('recipient') + + def create_thread(self, recipients): + return Message.objects.create_thread( + sender=self.sender, recipients=recipients, + text=MESSAGE_TEXT + ) + + def create_thread_for_user(self, user): + group = get_personal_group(user) + return self.create_thread([group]) + + def test_create_thread_for_user(self): + """the basic create thread with one recipient + tests that the recipient is there""" + message = self.create_thread_for_user(self.recipient) + #message type is stored + self.assertEqual(message.message_type, Message.STORED) + #recipient is in the list of recipients + recipients = set(message.recipients.all()) + recipient_group = get_personal_group(self.recipient) + #sender_group = get_personal_group(self.sender) #maybe add this too + expected_recipients = set([recipient_group]) + self.assertEqual(recipients, expected_recipients) + self.assertRaises( + MessageMemo.DoesNotExist, + MessageMemo.objects.get, + message=message + ) + + def test_get_senders_for_user(self): + """this time send thread to a real group test that + member of the group has updated the sender list""" + group = Group.objects.create(name='somegroup') + self.recipient.groups.add(group) + message = self.create_thread([group]) + senders = SenderList.objects.get_senders_for_user(self.recipient) + self.assertEqual(set(senders), set([self.sender])) + + def test_create_thread_response(self): + """create a thread with one response, + then load thread for the user + test that only the root message is retrieved""" + root_message = self.create_thread_for_user(self.recipient) + response = Message.objects.create_response( + sender=self.recipient, + text='some response', + parent=root_message + ) + self.assertEqual(response.message_type, Message.STORED) + #assert that there is only one "seen" memo for the response + memos = MessageMemo.objects.filter(message=response) + self.assertEqual(memos.count(), 1) + self.assertEqual(memos[0].user, self.recipient) + self.assertEqual(memos[0].status, MessageMemo.SEEN) + #assert that recipients are the two people who are part of + #this conversation + recipients = set(response.recipients.all()) + sender_group = get_personal_group(self.sender) + recipient_group = get_personal_group(self.recipient) + expected_recipients = set([sender_group, recipient_group]) + self.assertEqual(recipients, expected_recipients) + + def test_get_threads_for_user(self): + root_message = self.create_thread_for_user(self.recipient) + threads = set(Message.objects.get_threads_for_user(self.sender)) + self.assertEqual(threads, set([])) + threads = set(Message.objects.get_threads_for_user(self.recipient)) + self.assertEqual(threads, set([root_message])) + + response = Message.objects.create_response( + sender=self.recipient, + text='some response', + parent=root_message + ) + threads = set(Message.objects.get_threads_for_user(self.sender)) + self.assertEqual(threads, set([root_message])) + threads = set(Message.objects.get_threads_for_user(self.recipient)) + self.assertEqual(threads, set([root_message])) diff --git a/group_messaging/views.py b/group_messaging/views.py new file mode 100644 index 00000000..d24833f2 --- /dev/null +++ b/group_messaging/views.py @@ -0,0 +1,148 @@ +"""semi-views for the `group_messaging` application +These are not really views - rather context generator +functions, to be used separately, when needed. + +For example, some other application can call these +in order to render messages within the page. + +Notice that :mod:`urls` module decorates all these functions +and turns them into complete views +""" +import functools +from django.contrib.auth.models import Group +from django.core.exceptions import PermissionDenied +from django.forms import IntegerField +from django.http import HttpResponse +from django.shortcuts import render_to_response +from django.template import RequestContext +from django.views.decorators.http import require_GET +from django.views.decorators.http import require_POST +from django.utils import simplejson +from group_messages.models import Message +from group_messages.models import MessageMemo +from group_messages.models import SenderList +from group_messages.models import get_personal_group_by_id + +class InboxView(object): + """custom class-based view + to be used for pjax use and for generation + of content in the traditional way""" + template_name = None #this needs to be set + + def get(self, request, *args, **kwargs): + context = self.get_context(request, *args, **kwargs) + #todo: load template with Coffin and render it + return HttpResponse(json, mimetype='application/json') + + def get_context(self, request, *args, **kwargs): + """Should return the context dictionary""" + return {} + + def as_pjax(self): + """returns the view function - for the urls.py""" + def view_function(request, *args, **kwargs): + """the actual view function""" + if request.user.is_anonymous(): + raise PermissionDenied() + if request.is_ajax() is False: + raise PermissionDenied() + + if request.method == 'GET': + return self.get(request, *args, **kwargs) + elif request.method == 'POST': + return self.post(request, *args, **kwargs) + else: + raise NotImplementedError + return view_function + + +def require_login(view_func): + @functools.wraps(view_func) + def wrapped(request, *args, **kwargs): + if request.user.is_authenticated(): + return view_func(request, *args, **kwargs) + else: + raise PermissionDenied() + return wrapped + + +def ajax(view_func): + @functools.wraps(view_func) + def wrapped(request, *args, **kwargs): + if request.is_ajax(): + result = view_func(request, *args, **kwargs) + json = simplejson.dumps(result) + return HttpResponse(json, mimetype='application/json') + else: + raise PermissionDenied() + + +class NewThread(InboxView): + template_name = 'new_thread.html' + + def post(self, request): + recipient_id = IntegerField().clean(request.POST['recipient_id']) + recipient = get_personal_group_by_id(recipient_id) + message = Message.objects.create_thread( + sender=request.user, + recipients=[recipient], + text=request.POST['text'] + ) + return {'message_id': message.id} + + +class NewResponse(InboxView): + def get(self, request): + raise PermissionDenied() + + def post(self, request): + parent_id = IntegerField().clean(request.POST['parent_id']) + parent = Message.objects.get(id=parent_id) + message = Message.objects.create_response( + sender=request.user, + text=request.POST['text'], + parent=parent + ) + +class ThreadsList(InboxView): + """shows list of threads for a given user""" + template_name = 'threads_list.html' + + def get_context(self, request): + """returns thread list data""" + if request.method != 'GET': + raise PermissionDenied() + + threads = Message.objects.get_threads_for_user(request.user) + threads = threads.values('id', 'headline', 'is_read') + return {'threads': threads} + + +class SendersList(InboxView): + """shows list of senders for a user""" + template_name = 'senders_list.html' + + def get_context(request): + """get data about senders for the user""" + if request.method != 'GET': + raise PermissionDenied() + + senders = SenderList.objects.get_senders_for_user(request.user) + senders = senders.values('id', 'username') + return {'senders': senders} + + +class ThreadDetails(InboxView): + """shows entire thread in the unfolded form""" + template_name = 'thread_details.html' + + def get_context(request): + """shows individual thread""" + if request.method != 'GET': + raise PermissionDenied() + + thread_id = IntegerField().clean(request.GET['thread_id']) + #todo: assert that current thread is the root + messages = Message.objects.filter(root__id=thread_id) + messages = messages.values('html') + return {'messages': messages} -- cgit v1.2.3-1-g7c22 From 8adb7e1b244d07e27d040d14e1cfd5e5280ce40b Mon Sep 17 00:00:00 2001 From: Evgeny Fadeev Date: Wed, 19 Sep 2012 01:58:49 -0400 Subject: started building front end for private messaging --- askbot/skins/common/media/js/group_messaging.js | 186 +++++++++++++++++++++ askbot/skins/default/media/style/style.less | 2 +- .../default/templates/group_messaging/home.html | 12 ++ .../templates/group_messaging/senders_list.html | 9 + .../templates/group_messaging/threads_list.html | 13 ++ .../skins/default/templates/user_inbox/base.html | 6 +- .../default/templates/user_inbox/messages.html | 42 +++++ askbot/urls.py | 1 + askbot/views/users.py | 22 ++- group_messaging/urls.py | 22 +++ group_messaging/views.py | 135 +++++++-------- 11 files changed, 380 insertions(+), 70 deletions(-) create mode 100644 askbot/skins/common/media/js/group_messaging.js create mode 100644 askbot/skins/default/templates/group_messaging/home.html create mode 100644 askbot/skins/default/templates/group_messaging/senders_list.html create mode 100644 askbot/skins/default/templates/group_messaging/threads_list.html create mode 100644 askbot/skins/default/templates/user_inbox/messages.html create mode 100644 group_messaging/urls.py diff --git a/askbot/skins/common/media/js/group_messaging.js b/askbot/skins/common/media/js/group_messaging.js new file mode 100644 index 00000000..3d64d660 --- /dev/null +++ b/askbot/skins/common/media/js/group_messaging.js @@ -0,0 +1,186 @@ +var HideableWidget = function() { + Widget.call(this); +}; +inherits(HideableWidget, Widget); + +HideableWidget.prototype.setState = function(state) { + this._state = state; + if (this._element) { + if (state === 'shown') { + this._element.show(); + } else if (state === 'hidden') { + this._element.hide(); + } + } +}; + +HideableWidget.prototype.show = function() { + this.setState('shown'); +}; + +HideableWidget.prototype.hide = function() { + this.setState('hidden'); +}; + +/** + * @constructor + */ +var MessageComposer = function() { + HideableWidget.call(this); +}; +inherits(MessageComposer, HideableWidget); + +MessageComposer.prototype.send = function() { +}; + +MessageComposer.prototype.onAfterCancel = function(handler) { + if (handler) { + this._onAfterCancel = handler; + } else { + return this._onAfterCancel(); + } +}; + +MessageComposer.prototype.onAfterSend = function(handler) { + if (handler) { + this._onAfterSend = handler; + } else { + return this._onAfterSend(); + } +}; + +MessageComposer.prototype.cancel = function() { + this._textarea.val(''); + this.hide(); + this.onAfterCancel(); +}; + +MessageComposer.prototype.setPostData = function(data) { + this._postData = data; +}; + +MessageComposer.prototype.getPostData = function() { + return this._postData; +}; + +MessageComposer.prototype.setSendUrl = function(url) { + this._sendUrl = url; +}; + +MessageComposer.prototype.send = function() { + var url = this._sendUrl; + var data = this.getPostData(); + var me = this; + data['text'] = this._textarea.val(); + $.ajax({ + type: 'POST', + dataType: 'json', + url: url, + data: data, + cache: false, + success: function() { me.onAfterSend(); } + }); +}; + +MessageComposer.prototype.createDom = function() { + this._element = this.makeElement('div'); + this.hide(); + this._element.addClass('message-composer'); + //create textarea + var textarea = this.makeElement('textarea'); + this._element.append(textarea); + this._element.append(this.makeElement('br')); + this._textarea = textarea; + //send button + var me = this; + var sendBtn = this.makeButton( + gettext('send'), + function() { me.send(); } + ); + sendBtn.addClass('submit'); + this._element.append(sendBtn); + //cancel button + var cancelBtn = this.makeButton( + gettext('cancel'), + function() { me.cancel(); } + ); + cancelBtn.addClass('submit'); + this._element.append(cancelBtn); +}; + + +/** + * @constructor + */ +var ThreadsList = function() { + HideableWidget.call(this); +}; +inherits(ThreadsList, HideableWidget); + + +/** + * @constructor + */ +var Message = function() { + Widget.call(this); +}; +inherits(Message, Widget); + + +/** + * @constructor + */ +var Thread = function() { + HideableWidget.call(this); +}; +inherits(Thread, HideableWidget); + + +/** + * @contsructor + */ +var MessageCenter = function() { + Widget.call(this); +}; +inherits(MessageCenter, Widget); + +MessageCenter.prototype.setState = function(state) { + this._editor.hide(); + this._threadsList.hide(); + //this._thread.hide(); + if (state === 'compose') { + this._editor.show(); + } else if (state === 'show-list') { + this._threadsList.show(); + } else if (state === 'show-thread') { + this._thread.show(); + } +}; + +MessageCenter.prototype.decorate = function(element) { + this._element = element; + this._firstCol = element.find('.first-col'); + this._secondCol = element.find('.second-col'); + //read sender list + //read message list + + var me = this; + //create editor + var editor = new MessageComposer(); + this._secondCol.append(editor.getElement()); + editor.setSendUrl(element.data('createThreadUrl')); + editor.onAfterCancel(function() { me.setState('show-list') }); + editor.onAfterSend(function() { + me.setState('show-list'); + notify.show(gettext('message sent'), true); + }); + this._editor = editor; + + //activate compose button + var btn = element.find('button.compose'); + this._composeBtn = btn; + setupButtonEventHandlers(btn, function(){ me.setState('compose') }); +}; + +var msgCtr = new MessageCenter(); +msgCtr.decorate($('.group-messaging')); diff --git a/askbot/skins/default/media/style/style.less b/askbot/skins/default/media/style/style.less index d898852e..eb30d78e 100644 --- a/askbot/skins/default/media/style/style.less +++ b/askbot/skins/default/media/style/style.less @@ -2686,7 +2686,7 @@ a:hover.medal { .tabBar-profile{ width:100%; - margin-bottom:15px; + margin-bottom:5px; float:left; } diff --git a/askbot/skins/default/templates/group_messaging/home.html b/askbot/skins/default/templates/group_messaging/home.html new file mode 100644 index 00000000..b6733624 --- /dev/null +++ b/askbot/skins/default/templates/group_messaging/home.html @@ -0,0 +1,12 @@ +
+
+ + {% include "group_messaging/senders_list.html" %} +
+
+ {% include "group_messaging/threads_list.html" %} +
+
+
diff --git a/askbot/skins/default/templates/group_messaging/senders_list.html b/askbot/skins/default/templates/group_messaging/senders_list.html new file mode 100644 index 00000000..0b6de42f --- /dev/null +++ b/askbot/skins/default/templates/group_messaging/senders_list.html @@ -0,0 +1,9 @@ +{% if senders %} + +{% endif %} diff --git a/askbot/skins/default/templates/group_messaging/threads_list.html b/askbot/skins/default/templates/group_messaging/threads_list.html new file mode 100644 index 00000000..c9376f56 --- /dev/null +++ b/askbot/skins/default/templates/group_messaging/threads_list.html @@ -0,0 +1,13 @@ +
    +{% if threads %} + {% for thread in threads %} +
  • + + {{ thread.headline|escape }} + +
  • + {% endfor %} +{% else %} +
  • {% trans %}there are no messages yet...{% endtrans %}
  • +{% endif %} +
diff --git a/askbot/skins/default/templates/user_inbox/base.html b/askbot/skins/default/templates/user_inbox/base.html index 4d74f8bc..890cb0f7 100644 --- a/askbot/skins/default/templates/user_inbox/base.html +++ b/askbot/skins/default/templates/user_inbox/base.html @@ -10,10 +10,13 @@ {% set re_count = request.user.new_response_count + request.user.seen_response_count %} - {% if re_count + flags_count + group_join_requests_count > 0 %}
{% trans %}Sections:{% endtrans %} {% set sep = joiner('|') %} + {{ sep() }} + {% trans %}messages{% endtrans %} {% if re_count > 0 %}{{ sep() }} {% endif %}
- {% endif %} {% block inbox_content %} {% endblock %} diff --git a/askbot/skins/default/templates/user_inbox/messages.html b/askbot/skins/default/templates/user_inbox/messages.html new file mode 100644 index 00000000..7623a482 --- /dev/null +++ b/askbot/skins/default/templates/user_inbox/messages.html @@ -0,0 +1,42 @@ +{% extends "user_inbox/base.html" %} +{% import "macros.html" as macros %} +{% block before_css %} + {{ super() }} + +{% endblock %} +{% block profilesection %} + {% trans %}inbox - messages{% endtrans %} +{% endblock %} +{% block inbox_content %} + {% include "group_messaging/home.html" %} +{% endblock %} +{% block userjs %} + +{% endblock %} diff --git a/askbot/urls.py b/askbot/urls.py index 39242a1b..362a16ee 100644 --- a/askbot/urls.py +++ b/askbot/urls.py @@ -513,6 +513,7 @@ urlpatterns = patterns('', {'domain': 'djangojs','packages': ('askbot',)}, name = 'askbot_jsi18n' ), + url('^messages/', include('group_messaging.urls')), ) #todo - this url below won't work, because it is defined above diff --git a/askbot/views/users.py b/askbot/views/users.py index 7a3bc116..dbcbda5c 100644 --- a/askbot/views/users.py +++ b/askbot/views/users.py @@ -709,7 +709,7 @@ def show_group_join_requests(request, user, context): } context.update(data) return render_into_skin('user_inbox/group_join_requests.html', context, request) - + @owner_or_moderator_required def user_responses(request, user, context): @@ -746,6 +746,26 @@ def user_responses(request, user, context): ) elif section == 'join_requests': return show_group_join_requests(request, user, context) + elif section == 'messages': + if request.user != user: + raise Http404 + #here we take shortcut, because we don't care about + #all the extra context loaded below + from group_messaging.views import SendersList, ThreadsList + context.update(SendersList().get_context(request)) + context.update(ThreadsList().get_context(request)) + data = { + 'active_tab':'users', + 'page_class': 'user-profile-page', + 'tab_name' : 'inbox', + 'inbox_section': section, + 'tab_description' : _('private messages'), + 'page_title' : _('profile - messages') + } + context.update(data) + return render_into_skin( + 'user_inbox/messages.html', context, request + ) else: raise Http404 diff --git a/group_messaging/urls.py b/group_messaging/urls.py new file mode 100644 index 00000000..eb033751 --- /dev/null +++ b/group_messaging/urls.py @@ -0,0 +1,22 @@ +"""url configuration for the group_messaging application""" +from django.conf.urls.defaults import patterns +from django.conf.urls.defaults import url +from group_messaging import views + +urlpatterns = patterns('', + url( + '^threads/$', + views.ThreadsList().as_view(), + name='get_threads' + ), + url( + '^threads/create/$', + views.NewThread().as_view(), + name='create_thread' + ), + url( + '^senders/$', + views.SendersList().as_view(), + name='get_senders' + ) +) diff --git a/group_messaging/views.py b/group_messaging/views.py index d24833f2..c2e9af93 100644 --- a/group_messaging/views.py +++ b/group_messaging/views.py @@ -8,92 +8,98 @@ in order to render messages within the page. Notice that :mod:`urls` module decorates all these functions and turns them into complete views """ -import functools -from django.contrib.auth.models import Group -from django.core.exceptions import PermissionDenied +from coffin.template.loader import get_template from django.forms import IntegerField from django.http import HttpResponse -from django.shortcuts import render_to_response -from django.template import RequestContext -from django.views.decorators.http import require_GET -from django.views.decorators.http import require_POST +from django.http import HttpResponseNotAllowed +from django.http import HttpResponseForbidden from django.utils import simplejson -from group_messages.models import Message -from group_messages.models import MessageMemo -from group_messages.models import SenderList -from group_messages.models import get_personal_group_by_id +from group_messaging.models import Message +from group_messaging.models import SenderList +from group_messaging.models import get_personal_group_by_user_id class InboxView(object): """custom class-based view to be used for pjax use and for generation - of content in the traditional way""" - template_name = None #this needs to be set + of content in the traditional way, where + the only the :method:`get_context` would be used. + """ + template_name = None #used only for the "GET" method + http_method_names = ('GET', 'POST') + + def render_to_response(self, context, template_name=None): + """like a django's shortcut, except will use + template_name from self, if `template_name` is not given. + Also, response is packaged as json with an html fragment + for the pjax consumption + """ + if template_name is None: + template_name = self.template_name + template = get_template(self.template_name) + html = template.render(context) + json = simplejson.dumps({'html': html}) + return HttpResponse(json, mimetype='application/json') + def get(self, request, *args, **kwargs): + """view function for the "GET" method""" context = self.get_context(request, *args, **kwargs) - #todo: load template with Coffin and render it - return HttpResponse(json, mimetype='application/json') + return self.render_to_response(context) + + def post(self, request, *args, **kwargs): + """view function for the "POST" method""" + pass + + def dispatch(self, request, *args, **kwargs): + """checks that the current request method is allowed + and calls the corresponding view function""" + if request.method not in self.http_method_names: + return HttpResponseNotAllowed() + view_func = getattr(self, request.method.lower()) + return view_func(request, *args, **kwargs) def get_context(self, request, *args, **kwargs): - """Should return the context dictionary""" + """Returns the context dictionary for the "get" + method only""" return {} - def as_pjax(self): + def as_view(self): """returns the view function - for the urls.py""" def view_function(request, *args, **kwargs): """the actual view function""" - if request.user.is_anonymous(): - raise PermissionDenied() - if request.is_ajax() is False: - raise PermissionDenied() - - if request.method == 'GET': - return self.get(request, *args, **kwargs) - elif request.method == 'POST': - return self.post(request, *args, **kwargs) + if request.user.is_authenticated() and request.is_ajax(): + view_method = getattr(self, request.method.lower()) + return view_method(request, *args, **kwargs) else: - raise NotImplementedError - return view_function - - -def require_login(view_func): - @functools.wraps(view_func) - def wrapped(request, *args, **kwargs): - if request.user.is_authenticated(): - return view_func(request, *args, **kwargs) - else: - raise PermissionDenied() - return wrapped + return HttpResponseForbidden() - -def ajax(view_func): - @functools.wraps(view_func) - def wrapped(request, *args, **kwargs): - if request.is_ajax(): - result = view_func(request, *args, **kwargs) - json = simplejson.dumps(result) - return HttpResponse(json, mimetype='application/json') - else: - raise PermissionDenied() + return view_function class NewThread(InboxView): - template_name = 'new_thread.html' + """view for creation of new thread""" + template_name = 'create_thread.html'# contains new thread form + http_method_list = ('GET', 'POST') def post(self, request): + """creates a new thread on behalf of the user + response is blank, because on the client side we just + need to go back to the thread listing view whose + content should be cached in the client' + """ recipient_id = IntegerField().clean(request.POST['recipient_id']) - recipient = get_personal_group_by_id(recipient_id) - message = Message.objects.create_thread( + recipient = get_personal_group_by_user_id(recipient_id) + Message.objects.create_thread( sender=request.user, recipients=[recipient], text=request.POST['text'] ) - return {'message_id': message.id} + return HttpResponse('', mimetype='application/json') class NewResponse(InboxView): - def get(self, request): - raise PermissionDenied() + """view to create a new response""" + http_method_list = ('POST',) def post(self, request): parent_id = IntegerField().clean(request.POST['parent_id']) @@ -103,30 +109,29 @@ class NewResponse(InboxView): text=request.POST['text'], parent=parent ) + return self.render_to_response( + {'message': message}, template_name='stored_message.htmtl' + ) class ThreadsList(InboxView): """shows list of threads for a given user""" template_name = 'threads_list.html' + http_method_list = ('GET',) def get_context(self, request): """returns thread list data""" - if request.method != 'GET': - raise PermissionDenied() - threads = Message.objects.get_threads_for_user(request.user) - threads = threads.values('id', 'headline', 'is_read') + threads = threads.values('id', 'headline') return {'threads': threads} class SendersList(InboxView): """shows list of senders for a user""" template_name = 'senders_list.html' + http_method_names = ('GET',) - def get_context(request): + def get_context(self, request): """get data about senders for the user""" - if request.method != 'GET': - raise PermissionDenied() - senders = SenderList.objects.get_senders_for_user(request.user) senders = senders.values('id', 'username') return {'senders': senders} @@ -135,12 +140,10 @@ class SendersList(InboxView): class ThreadDetails(InboxView): """shows entire thread in the unfolded form""" template_name = 'thread_details.html' + http_method_names = ('GET',) - def get_context(request): + def get_context(self, request): """shows individual thread""" - if request.method != 'GET': - raise PermissionDenied() - thread_id = IntegerField().clean(request.GET['thread_id']) #todo: assert that current thread is the root messages = Message.objects.filter(root__id=thread_id) -- cgit v1.2.3-1-g7c22 From 88df9c59a6bf6d929b09a0ceb4487c1a1780142b Mon Sep 17 00:00:00 2001 From: Evgeny Fadeev Date: Wed, 19 Sep 2012 18:26:25 -0400 Subject: moved all templates from common skin to default --- .../templates/authopenid/authopenid_macros.html | 69 ------ .../common/templates/authopenid/changeemail.html | 112 ---------- .../common/templates/authopenid/complete.html | 63 ------ .../common/templates/authopenid/confirm_email.txt | 12 -- .../templates/authopenid/email_validation.txt | 14 -- .../skins/common/templates/authopenid/logout.html | 31 --- .../templates/authopenid/providers_javascript.html | 55 ----- .../skins/common/templates/authopenid/signin.html | 231 --------------------- .../templates/authopenid/signup_with_password.html | 55 ----- .../common/templates/authopenid/verify_email.html | 14 -- askbot/skins/common/templates/avatar/add.html | 15 -- askbot/skins/common/templates/avatar/change.html | 24 --- .../common/templates/avatar/confirm_delete.html | 15 -- askbot/skins/common/templates/debug_header.html | 27 --- askbot/skins/common/templates/one_column_body.html | 8 - .../templates/question/answer_author_info.html | 8 - .../common/templates/question/answer_comments.html | 10 - .../common/templates/question/answer_controls.html | 69 ------ .../templates/question/answer_vote_buttons.html | 10 - .../templates/question/closed_question_info.html | 5 - .../templates/question/question_author_info.html | 8 - .../templates/question/question_comments.html | 10 - .../templates/question/question_controls.html | 39 ---- .../common/templates/question/question_tags.html | 8 - .../templates/question/question_vote_buttons.html | 1 - .../common/templates/question/share_buttons.html | 5 - askbot/skins/common/templates/two_column_body.html | 12 -- .../skins/common/templates/widgets/edit_post.html | 115 ---------- .../common/templates/widgets/related_tags.html | 28 --- .../skins/common/templates/widgets/search_bar.html | 46 ---- .../common/templates/widgets/tag_selector.html | 89 -------- .../templates/authopenid/authopenid_macros.html | 69 ++++++ .../default/templates/authopenid/changeemail.html | 112 ++++++++++ .../default/templates/authopenid/complete.html | 63 ++++++ .../default/templates/authopenid/confirm_email.txt | 12 ++ .../templates/authopenid/email_validation.txt | 14 ++ .../skins/default/templates/authopenid/logout.html | 31 +++ .../templates/authopenid/providers_javascript.html | 55 +++++ .../skins/default/templates/authopenid/signin.html | 231 +++++++++++++++++++++ .../templates/authopenid/signup_with_password.html | 55 +++++ .../default/templates/authopenid/verify_email.html | 14 ++ askbot/skins/default/templates/avatar/add.html | 15 ++ askbot/skins/default/templates/avatar/change.html | 24 +++ .../default/templates/avatar/confirm_delete.html | 15 ++ askbot/skins/default/templates/debug_header.html | 27 +++ .../skins/default/templates/one_column_body.html | 8 + .../templates/question/answer_author_info.html | 8 + .../templates/question/answer_comments.html | 10 + .../templates/question/answer_controls.html | 69 ++++++ .../templates/question/answer_vote_buttons.html | 10 + .../templates/question/closed_question_info.html | 5 + .../templates/question/question_author_info.html | 8 + .../templates/question/question_comments.html | 10 + .../templates/question/question_controls.html | 39 ++++ .../default/templates/question/question_tags.html | 8 + .../templates/question/question_vote_buttons.html | 1 + .../default/templates/question/share_buttons.html | 5 + .../skins/default/templates/two_column_body.html | 12 ++ .../skins/default/templates/widgets/edit_post.html | 115 ++++++++++ .../default/templates/widgets/related_tags.html | 28 +++ .../default/templates/widgets/search_bar.html | 46 ++++ .../default/templates/widgets/tag_selector.html | 89 ++++++++ 62 files changed, 1208 insertions(+), 1208 deletions(-) delete mode 100644 askbot/skins/common/templates/authopenid/authopenid_macros.html delete mode 100644 askbot/skins/common/templates/authopenid/changeemail.html delete mode 100644 askbot/skins/common/templates/authopenid/complete.html delete mode 100644 askbot/skins/common/templates/authopenid/confirm_email.txt delete mode 100644 askbot/skins/common/templates/authopenid/email_validation.txt delete mode 100644 askbot/skins/common/templates/authopenid/logout.html delete mode 100644 askbot/skins/common/templates/authopenid/providers_javascript.html delete mode 100644 askbot/skins/common/templates/authopenid/signin.html delete mode 100644 askbot/skins/common/templates/authopenid/signup_with_password.html delete mode 100644 askbot/skins/common/templates/authopenid/verify_email.html delete mode 100644 askbot/skins/common/templates/avatar/add.html delete mode 100644 askbot/skins/common/templates/avatar/change.html delete mode 100644 askbot/skins/common/templates/avatar/confirm_delete.html delete mode 100644 askbot/skins/common/templates/debug_header.html delete mode 100644 askbot/skins/common/templates/one_column_body.html delete mode 100644 askbot/skins/common/templates/question/answer_author_info.html delete mode 100644 askbot/skins/common/templates/question/answer_comments.html delete mode 100644 askbot/skins/common/templates/question/answer_controls.html delete mode 100644 askbot/skins/common/templates/question/answer_vote_buttons.html delete mode 100644 askbot/skins/common/templates/question/closed_question_info.html delete mode 100644 askbot/skins/common/templates/question/question_author_info.html delete mode 100644 askbot/skins/common/templates/question/question_comments.html delete mode 100644 askbot/skins/common/templates/question/question_controls.html delete mode 100644 askbot/skins/common/templates/question/question_tags.html delete mode 100644 askbot/skins/common/templates/question/question_vote_buttons.html delete mode 100644 askbot/skins/common/templates/question/share_buttons.html delete mode 100644 askbot/skins/common/templates/two_column_body.html delete mode 100644 askbot/skins/common/templates/widgets/edit_post.html delete mode 100644 askbot/skins/common/templates/widgets/related_tags.html delete mode 100644 askbot/skins/common/templates/widgets/search_bar.html delete mode 100644 askbot/skins/common/templates/widgets/tag_selector.html create mode 100644 askbot/skins/default/templates/authopenid/authopenid_macros.html create mode 100644 askbot/skins/default/templates/authopenid/changeemail.html create mode 100644 askbot/skins/default/templates/authopenid/complete.html create mode 100644 askbot/skins/default/templates/authopenid/confirm_email.txt create mode 100644 askbot/skins/default/templates/authopenid/email_validation.txt create mode 100644 askbot/skins/default/templates/authopenid/logout.html create mode 100644 askbot/skins/default/templates/authopenid/providers_javascript.html create mode 100644 askbot/skins/default/templates/authopenid/signin.html create mode 100644 askbot/skins/default/templates/authopenid/signup_with_password.html create mode 100644 askbot/skins/default/templates/authopenid/verify_email.html create mode 100644 askbot/skins/default/templates/avatar/add.html create mode 100644 askbot/skins/default/templates/avatar/change.html create mode 100644 askbot/skins/default/templates/avatar/confirm_delete.html create mode 100644 askbot/skins/default/templates/debug_header.html create mode 100644 askbot/skins/default/templates/one_column_body.html create mode 100644 askbot/skins/default/templates/question/answer_author_info.html create mode 100644 askbot/skins/default/templates/question/answer_comments.html create mode 100644 askbot/skins/default/templates/question/answer_controls.html create mode 100644 askbot/skins/default/templates/question/answer_vote_buttons.html create mode 100644 askbot/skins/default/templates/question/closed_question_info.html create mode 100644 askbot/skins/default/templates/question/question_author_info.html create mode 100644 askbot/skins/default/templates/question/question_comments.html create mode 100644 askbot/skins/default/templates/question/question_controls.html create mode 100644 askbot/skins/default/templates/question/question_tags.html create mode 100644 askbot/skins/default/templates/question/question_vote_buttons.html create mode 100644 askbot/skins/default/templates/question/share_buttons.html create mode 100644 askbot/skins/default/templates/two_column_body.html create mode 100644 askbot/skins/default/templates/widgets/edit_post.html create mode 100644 askbot/skins/default/templates/widgets/related_tags.html create mode 100644 askbot/skins/default/templates/widgets/search_bar.html create mode 100644 askbot/skins/default/templates/widgets/tag_selector.html diff --git a/askbot/skins/common/templates/authopenid/authopenid_macros.html b/askbot/skins/common/templates/authopenid/authopenid_macros.html deleted file mode 100644 index 9d35ac6f..00000000 --- a/askbot/skins/common/templates/authopenid/authopenid_macros.html +++ /dev/null @@ -1,69 +0,0 @@ -{% macro login_provider_input(login_provider) %} - -{% endmacro %} - -{% macro provider_buttons( - login_form = None, - major_login_providers = None, - minor_login_providers = None, - hide_local_login = False, - settings = None, - logged_in = False, - show_buttons = True - ) -%} - {% if show_buttons == True %}{# a hack #} -
- {% if major_login_providers %} - - {% endif %} - {% if minor_login_providers %} - - {% endif %} -
- - {% endif %} -{% endmacro %} diff --git a/askbot/skins/common/templates/authopenid/changeemail.html b/askbot/skins/common/templates/authopenid/changeemail.html deleted file mode 100644 index 8afa9c49..00000000 --- a/askbot/skins/common/templates/authopenid/changeemail.html +++ /dev/null @@ -1,112 +0,0 @@ -{% extends "one_column_body.html" %} -{% block title %}{% spaceless %}{% trans %}Change Email{% endtrans %}{% endspaceless %}{% endblock %} -{% block content %} - -{% if action_type=="change" %} -

- {% if user.email %} - {% trans %}Change Email{% endtrans %} - {% else %} - {% trans %}Save your email address{% endtrans %} - {% endif %} -

-

- {% if user.email %} - {% trans %}Enter your new email into the box below if -you'd like to use another email for update subscriptions. -
Currently you are using %(email)s{% endtrans %} - {% else %} - {% trans %}Please enter your email address in the box below. -Valid email address is required on this Q&A forum. If you like, -you can receive updates on interesting questions or entire -forum via email. Also, your email is used to create a unique -
gravatar image for your -account. Email addresses are never shown or otherwise shared with anybody -else.{% endtrans %} - {% endif %} -

- {% if msg %} -

{{ msg }}

- {% endif %} -
-
{% csrf_token %} - {% if next %} - - {% endif %} -
-
-
- - {% if user.email %} - - {% endif %} -
-
-
-{% elif action_type=="validate" %} -
- {% trans %}Validate email{% endtrans %} -
-

- {% trans %}An email with a validation link has been sent to -%(email)s. Please follow the emailed link with your -web browser. Email validation is necessary to help insure the proper use of -email on Q&A. If you would like to use -another email, please change it again.{% endtrans %} -

-{% elif action_type=="keep" %} -
- {% trans %}Email not changed{% endtrans %} -
-

- {% trans %}Your email address %(email)s has not been changed. - If you decide to change it later - you can always do it by editing -it in your user profile or by using the previous form again.{% endtrans %} -

-{% elif action_type=="done_novalidate" %} -
- {% trans %}Email changed{% endtrans %} -
-

- {% trans %} -Your email address is now set to %(email)s. -Updates on the questions that you like most will be sent to this address. -Email notifications are sent once a day or less frequently - only when there -are any news.{% endtrans %} -

-{% elif action_type=="validation_complete" %} -
- {% trans %}Email verified{% endtrans %} -
-

- {% trans %}Thank you for verifying your email! Now -you can ask and answer questions. Also if -you find a very interesting question you can subscribe for the -updates - then will be notified about changes once a day -or less frequently.{% endtrans %} -

-{% elif action_type=="key_not_sent" %} -
- {% trans %}Validation email not sent{% endtrans %} -
-

- {% trans %}Your current email address %(email)s has been -validated before so the new key was not sent. You can change email used for update subscriptions if -necessary.{% endtrans %} -

-{% endif %} -{% endblock %} - diff --git a/askbot/skins/common/templates/authopenid/complete.html b/askbot/skins/common/templates/authopenid/complete.html deleted file mode 100644 index c9afedee..00000000 --- a/askbot/skins/common/templates/authopenid/complete.html +++ /dev/null @@ -1,63 +0,0 @@ -{% extends "one_column_body.html" %} - -{# -views calling this template: -* django_authopenid.views.register with login_type='openid' -* django_authopenid.views.signin - with login_type='legacy' - -purpose of this template is to allow user enter his/her name -email and sign up for email alerts at the initial registratio - -parameters: -* provider -* login_type openid|legacy -* username (same as screen name or username in the models, and nickname in openid sreg) -* openid_register_form -* openid_verify_form - not clear what this form is supposed to do, not used for legacy -* openid_username_exists -#} -{% block head %}{% endblock %} -{% block title %}{% spaceless %}{% trans %}Registration{% endtrans %}{% endspaceless %}{% endblock %} -{% block content %} -

{% trans %}User registration{% endtrans %}

- {% if openid_register_form.errors %} -
    - {% for error in openid_register_form.non_field_errors() %} -
  • {{error}}
  • - {% endfor %} -
- {% endif %} - -{% endblock %} - diff --git a/askbot/skins/common/templates/authopenid/confirm_email.txt b/askbot/skins/common/templates/authopenid/confirm_email.txt deleted file mode 100644 index 5cab7c4c..00000000 --- a/askbot/skins/common/templates/authopenid/confirm_email.txt +++ /dev/null @@ -1,12 +0,0 @@ -{% trans %}Thank you for registering at our Q&A forum!{% endtrans %} - -{% trans %}Your account details are:{% endtrans %} - -{% trans %}Username:{% endtrans %} {{ username }} -{% trans %}Password:{% endtrans %} {{ password }} - -{% trans %}Please sign in here:{% endtrans %} -{{signup_url}} - -{% trans %}Sincerely, -Q&A Forum Administrator{% endtrans %} diff --git a/askbot/skins/common/templates/authopenid/email_validation.txt b/askbot/skins/common/templates/authopenid/email_validation.txt deleted file mode 100644 index bd68c61a..00000000 --- a/askbot/skins/common/templates/authopenid/email_validation.txt +++ /dev/null @@ -1,14 +0,0 @@ -{% trans %}Greetings from the Q&A forum{% endtrans %}, - -{% trans %}To make use of the Forum, please follow the link below:{% endtrans %} - -{{validation_link}} - -{% trans %}Following the link above will help us verify your email address.{% endtrans %} - -{% trans %}If you believe that this message was sent in mistake - -no further action is needed. Just ignore this email, we apologize -for any inconvenience{% endtrans %} - -{% trans %}Sincerely, -Q&A Forum Administrator{% endtrans %} diff --git a/askbot/skins/common/templates/authopenid/logout.html b/askbot/skins/common/templates/authopenid/logout.html deleted file mode 100644 index 1ac6705c..00000000 --- a/askbot/skins/common/templates/authopenid/logout.html +++ /dev/null @@ -1,31 +0,0 @@ -{% extends "one_column_body.html" %} - -{% block title %}{% spaceless %}{% trans %}Logout{% endtrans %}{% endspaceless %}{% endblock %} -{% block content %} -

{% trans %}You have successfully logged out{% endtrans %}

-{% if have_federated_login_methods %} -

{% trans %}However, you still may be logged in to your OpenID provider. Please logout of your provider if you wish to do so.{% endtrans %}

- {% if settings.FACEBOOK_KEY and settings.FACEBOOK_SECRET %} -
- - - {% endif %} -{% endif %} -{% endblock %} -{% block endjs %} - -{% endblock %} - diff --git a/askbot/skins/common/templates/authopenid/providers_javascript.html b/askbot/skins/common/templates/authopenid/providers_javascript.html deleted file mode 100644 index cd9f56b6..00000000 --- a/askbot/skins/common/templates/authopenid/providers_javascript.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -{% if settings.FACEBOOK_KEY and settings.FACEBOOK_SECRET %} -
- - -{% endif %} diff --git a/askbot/skins/common/templates/authopenid/signin.html b/askbot/skins/common/templates/authopenid/signin.html deleted file mode 100644 index c5a5c47f..00000000 --- a/askbot/skins/common/templates/authopenid/signin.html +++ /dev/null @@ -1,231 +0,0 @@ -{% extends "two_column_body.html" %} -{% import "authopenid/authopenid_macros.html" as login_macros %} -{% from "macros.html" import timeago %} - -{% block title %}{% spaceless %}{% trans %}User login{% endtrans %}{% endspaceless %}{% endblock %} -{% block forestyle %} - -{% endblock %} -{% block content %} -{% if have_buttons or view_subtype == 'email_sent' %} -

{{page_title}}

-{% endif %} - {% if answer %} -
- {% trans title=answer.question.title|escape, summary=answer.summary|escape %} - Your answer to {{title}} {{summary}} will be posted once you log in - {% endtrans %} -
- {% endif %} - {% if question %} -
- {% trans title=question.title|escape, summary=question.summary|escape %}Your question - {{title}} {{summary}} will be posted once you log in - {% endtrans %} -
- {% endif %} - {% if not (view_subtype == 'default' and have_buttons) %} -

- {% if view_subtype == 'add_openid' and have_buttons %} - {% if existing_login_methods %} - {% trans %}It's a good idea to make sure that your existing login methods still work, or add a new one. Please click any of the icons below to check/change or add new login methods.{% endtrans %} - {% else %} - {% trans %}Please add a more permanent login method by clicking one of the icons below, to avoid logging in via email each time.{% endtrans %} - {% endif %} - {% elif view_subtype == 'change_openid' and have_buttons %} - {% if existing_login_methods %} - {% trans %}Click on one of the icons below to add a new login method or re-validate an existing one.{% endtrans %} - {% else %} - {% trans %}You don't have a method to log in right now, please add one or more by clicking any of the icons below.{% endtrans %} - {% endif %} - {% elif view_subtype == 'email_sent' %} - {% trans %}Please check your email and visit the enclosed link to re-connect to your account{% endtrans %} - {% endif %} -

- {% endif %} - {% if openid_error_message %} -

{{ openid_error_message }}

- {% endif %} - {% if view_subtype != 'email_sent' and view_subtype != 'bad_key' %} -
{% csrf_token %} - {# in this branch - the real signin view we display the login icons - here we hide the local login button only if admin - wants to always show the password login form - then - the button is useless. - #} - {{ login_form.login_provider_name }} - {{ login_form.next }} - {{ - login_macros.provider_buttons( - login_form = login_form, - major_login_providers = major_login_providers, - minor_login_providers = minor_login_providers, - hide_local_login = settings.SIGNIN_ALWAYS_SHOW_LOCAL_LOGIN, - settings = settings, - logged_in = user.is_authenticated(), - show_buttons = have_buttons - ) - }} - {% if use_password_login == True %} - - {% endif %} -
- {% if user.is_authenticated() and existing_login_methods and settings.ALLOW_ADD_REMOVE_LOGIN_METHODS %} - - {% endif %} - {% endif %} - {% if view_subtype != 'email_sent' or view_subtype == 'bad_key' %} - {% if user.is_anonymous() and settings.ALLOW_ACCOUNT_RECOVERY_BY_EMAIL %} -
{% csrf_token %} - {% if view_subtype != 'bad_key' %} -

{% trans %}Still have trouble signing in?{% endtrans %}

- {% endif %} -

- - {% if view_subtype == 'bad_key' %} - {% trans %}Please, enter your email address below and obtain a new key{% endtrans %} - {% else %} - {% trans %}Please, enter your email address below to recover your account{% endtrans %} - {% endif %} - - -

-
- {% if account_recovery_form.email.errors %} -

{{account_recovery_form.email.errors[0]}}

- {% endif %} - {{ account_recovery_form.email }} - -
-
- {% endif %} - {% endif %} -{% endblock %} -{% block endjs %} -{% include "authopenid/providers_javascript.html" %} -{% endblock %} - diff --git a/askbot/skins/common/templates/authopenid/signup_with_password.html b/askbot/skins/common/templates/authopenid/signup_with_password.html deleted file mode 100644 index e5a8f633..00000000 --- a/askbot/skins/common/templates/authopenid/signup_with_password.html +++ /dev/null @@ -1,55 +0,0 @@ -{% extends "one_column_body.html" %} -{% import "authopenid/authopenid_macros.html" as login_macros %} - -{% block title %}{% spaceless %}{% trans %}Signup{% endtrans %}{% endspaceless %}{% endblock %} -{% block forestyle %} - -{% endblock %} -{% block content %} -{% if settings.PASSWORD_REGISTER_SHOW_PROVIDER_BUTTONS == True %} -

{% trans %}Please register by clicking on any of the icons below{% endtrans %}

-
{% csrf_token %} - {# hide_local_login == True because it is password reg form #} - {{ - login_macros.provider_buttons( - login_form = login_form, - major_login_providers = major_login_providers, - minor_login_providers = minor_login_providers, - hide_local_login = True, - settings = settings - ) - }} -
-

{% trans %}or create a new user name and password here{% endtrans %}

-{% else %} -

{% trans %}Create login name and password{% endtrans %}

- -{%endif%} -
{% csrf_token %} - {{form.login_provider}} -
    -
  • {{form.username}}{{form.username.errors}}
  • -
  • {{form.email}}{{form.email.errors}}
  • -
  • {{form.password1}}{{form.password1.errors}}
  • -
  • {{form.password2}}{{form.password2.errors}}
  • -
- {% if settings.USE_RECAPTCHA %} - - {{form.recaptcha}} - {% endif %} -
- {% if settings.PASSWORD_REGISTER_SHOW_PROVIDER_BUTTONS == False %} - {% trans %}or{% endtrans %} - {% trans %}return to OpenID login{% endtrans %} - {% endif %} -
-
-{% endblock %} -{%block endjs%} -{%include "authopenid/providers_javascript.html" %} -{%endblock%} - diff --git a/askbot/skins/common/templates/authopenid/verify_email.html b/askbot/skins/common/templates/authopenid/verify_email.html deleted file mode 100644 index 613ca589..00000000 --- a/askbot/skins/common/templates/authopenid/verify_email.html +++ /dev/null @@ -1,14 +0,0 @@ -{% extends "one_column_body.html" %} -{% block title %}{% spaceless %}{% trans %}Confirm email address{% endtrans %}{% endspaceless %}{% endblock %} -{% block content %} -

{% trans %}Confirm email address{% endtrans %}

- -
{% csrf_token %} - - -
-{% endblock %} - diff --git a/askbot/skins/common/templates/avatar/add.html b/askbot/skins/common/templates/avatar/add.html deleted file mode 100644 index 68a188ef..00000000 --- a/askbot/skins/common/templates/avatar/add.html +++ /dev/null @@ -1,15 +0,0 @@ -{% extends "user_profile/user.html" %} -{% import "macros.html" as macros %} -{% block profilesection %}{% trans %}add avatar{% endtrans %}{% endblock %} -{% block usercontent %} -

{% trans %}Change avatar{% endtrans %} -

{% trans %}Your current avatar: {% endtrans %}

- {{ macros.gravatar(user, 128) }} - {% if not avatars %} -

{% trans %}You haven't uploaded an avatar yet. Please upload one now.{% endtrans %}

- {% endif %} -
{% csrf_token %} - {{ upload_avatar_form.as_p() }} -

-
-{% endblock %} diff --git a/askbot/skins/common/templates/avatar/change.html b/askbot/skins/common/templates/avatar/change.html deleted file mode 100644 index 7921a662..00000000 --- a/askbot/skins/common/templates/avatar/change.html +++ /dev/null @@ -1,24 +0,0 @@ -{% extends "user_profile/user.html" %} -{% import "macros.html" as macros %} -{% block profilesection %} - {% trans %}change avatar{% endtrans %} -{% endblock %} -{% block usercontent %} -

{% trans %}Your current avatar: {% endtrans %}
- {{ macros.gravatar(user, 128) }} -

- {% if not avatars %} -

{% trans %}You haven't uploaded an avatar yet. Please upload one now.{% endtrans %}

- {% else %} -
{% csrf_token %} -
    - {{ primary_avatar_form.as_ul() }} -
-

-
- {% endif %} -
{% csrf_token %} - {{ upload_avatar_form.as_p() }} -

-
-{% endblock %} diff --git a/askbot/skins/common/templates/avatar/confirm_delete.html b/askbot/skins/common/templates/avatar/confirm_delete.html deleted file mode 100644 index ee3d10d7..00000000 --- a/askbot/skins/common/templates/avatar/confirm_delete.html +++ /dev/null @@ -1,15 +0,0 @@ -{% extends "user_profile/user.html" %} -{% block profilesection %}{% trans %}delete avatar{% endtrans %}{% endblock %} -{% block usercontent %} -

{% trans %}Please select the avatars that you would like to delete.{% endtrans %}

- {% if not avatars %} -

{% trans avatar_change_url="avatar_change"|url %}You have no avatars to delete. Please upload one now.{% endtrans %}

- {% else %} -
{% csrf_token %} -
    - {{ delete_avatar_form.as_ul() }} -
-

-
- {% endif %} -{% endblock %} diff --git a/askbot/skins/common/templates/debug_header.html b/askbot/skins/common/templates/debug_header.html deleted file mode 100644 index e1230265..00000000 --- a/askbot/skins/common/templates/debug_header.html +++ /dev/null @@ -1,27 +0,0 @@ -{% if settings.USING_RUNSERVER %} - {% if settings.DEBUG == False %} -
-

- You are seeing this message because you are using Django runserver - and DEBUG_MODE is False. Runserver should not be used in production. -

-

- To serve static media in production - please run: -

python manage.py collectstatic
-

-

- If you do not see page styling - set DEBUG_MODE = True. -

-
- {% endif %} -{% else %} - {% if settings.DEBUG == True %} -
-

- Debug mode is on, do not use it in production. - To turn it off, use DEBUG = False in your - settings.py file. -

-
- {% endif %} -{% endif %} diff --git a/askbot/skins/common/templates/one_column_body.html b/askbot/skins/common/templates/one_column_body.html deleted file mode 100644 index 852f8fe5..00000000 --- a/askbot/skins/common/templates/one_column_body.html +++ /dev/null @@ -1,8 +0,0 @@ -{% extends "base.html" %} -{% block body_class %}one-col{% endblock %} -{% block body %} -
- {% block content%} - {% endblock%} -
-{% endblock %} diff --git a/askbot/skins/common/templates/question/answer_author_info.html b/askbot/skins/common/templates/question/answer_author_info.html deleted file mode 100644 index 1c729b51..00000000 --- a/askbot/skins/common/templates/question/answer_author_info.html +++ /dev/null @@ -1,8 +0,0 @@ -{{ - macros.post_last_updater_and_creator_info( - answer, - settings.MIN_REP_TO_EDIT_WIKI, - karma_mode = settings.KARMA_MODE, - badges_mode = settings.BADGES_MODE - ) -}} diff --git a/askbot/skins/common/templates/question/answer_comments.html b/askbot/skins/common/templates/question/answer_comments.html deleted file mode 100644 index e6b5e1c5..00000000 --- a/askbot/skins/common/templates/question/answer_comments.html +++ /dev/null @@ -1,10 +0,0 @@ -{{ - macros.post_comments_widget( - post = answer, - show_post = show_post, - show_comment = show_comment, - show_comment_position = show_comment_position, - user = request.user, - max_comments = settings.MAX_COMMENTS_TO_SHOW - ) -}} diff --git a/askbot/skins/common/templates/question/answer_controls.html b/askbot/skins/common/templates/question/answer_controls.html deleted file mode 100644 index 4efc7247..00000000 --- a/askbot/skins/common/templates/question/answer_controls.html +++ /dev/null @@ -1,69 +0,0 @@ -{# - {% trans %}swap with question{% endtrans %} -uncomment if needed#} - - - {% trans %}link{% endtrans %} - - - - {% if answer.id in published_answer_ids %} - {% trans %}unpublish{% endtrans %} - {% else %} - {% trans %}publish{% endtrans %} - {% endif %} - - - {% if answer.deleted %}{% trans %}undelete{% endtrans %}{% else %}{% trans %}delete{% endtrans %}{% endif %} - -{% if answer.offensive_flag_count > 0 %} - - {% trans %}remove flag{% endtrans %} - - - {% trans %}flag offensive{% endtrans %} ({{ answer.offensive_flag_count }}) - -{% else %} - - {% trans %}flag offensive{% endtrans %} - -{% endif %} - - {% trans %}edit{% endtrans %} - - -
- {% csrf_token %} - - -
-
- diff --git a/askbot/skins/common/templates/question/answer_vote_buttons.html b/askbot/skins/common/templates/question/answer_vote_buttons.html deleted file mode 100644 index 242bf2be..00000000 --- a/askbot/skins/common/templates/question/answer_vote_buttons.html +++ /dev/null @@ -1,10 +0,0 @@ -{{ macros.post_vote_buttons(post = answer) }} -
diff --git a/askbot/skins/common/templates/question/closed_question_info.html b/askbot/skins/common/templates/question/closed_question_info.html deleted file mode 100644 index f6f3f557..00000000 --- a/askbot/skins/common/templates/question/closed_question_info.html +++ /dev/null @@ -1,5 +0,0 @@ -
-

{% trans close_reason=thread.get_close_reason_display() %}The question has been closed for the following reason "{{ close_reason }}" by{% endtrans %} - {{ thread.closed_by.username|escape }}
- {% trans closed_at=thread.closed_at %}close date {{closed_at}}{% endtrans %}

-
diff --git a/askbot/skins/common/templates/question/question_author_info.html b/askbot/skins/common/templates/question/question_author_info.html deleted file mode 100644 index c25b7d84..00000000 --- a/askbot/skins/common/templates/question/question_author_info.html +++ /dev/null @@ -1,8 +0,0 @@ -{{ - macros.post_last_updater_and_creator_info( - question, - settings.MIN_REP_TO_EDIT_WIKI, - karma_mode = settings.KARMA_MODE, - badges_mode = settings.BADGES_MODE - ) -}} diff --git a/askbot/skins/common/templates/question/question_comments.html b/askbot/skins/common/templates/question/question_comments.html deleted file mode 100644 index e9d3f724..00000000 --- a/askbot/skins/common/templates/question/question_comments.html +++ /dev/null @@ -1,10 +0,0 @@ -{{ - macros.post_comments_widget( - post = question, - show_post = show_post, - show_comment = show_comment, - show_comment_position = show_comment_position, - user = request.user, - max_comments = settings.MAX_COMMENTS_TO_SHOW - ) -}} diff --git a/askbot/skins/common/templates/question/question_controls.html b/askbot/skins/common/templates/question/question_controls.html deleted file mode 100644 index c782d9ad..00000000 --- a/askbot/skins/common/templates/question/question_controls.html +++ /dev/null @@ -1,39 +0,0 @@ -{% if question.deleted %}{% trans %}undelete{% endtrans %}{% else %}{% trans %}delete{% endtrans %}{% endif %} -{% if thread.closed %} - {% trans %}reopen{% endtrans %} -{% else %} - {% trans %}close{% endtrans %} -{% endif %} -{% if question.offensive_flag_count > 0 %} - - {% trans %}remove flag{% endtrans %} - - - {% trans %}flag offensive{% endtrans %} ({{ question.offensive_flag_count }}) - -{% else %} - - {% trans %}flag offensive{% endtrans %} - -{% endif %} - -{% trans %}retag{% endtrans %} -{% trans %}edit{% endtrans %} - diff --git a/askbot/skins/common/templates/question/question_tags.html b/askbot/skins/common/templates/question/question_tags.html deleted file mode 100644 index 4b01be81..00000000 --- a/askbot/skins/common/templates/question/question_tags.html +++ /dev/null @@ -1,8 +0,0 @@ -{{ - macros.tag_list_widget( - tags = thread.get_tag_names(), - id = 'question-tags', - css_class = 'post-tags tags', - tag_css_class = 'post-tag' - ) -}} diff --git a/askbot/skins/common/templates/question/question_vote_buttons.html b/askbot/skins/common/templates/question/question_vote_buttons.html deleted file mode 100644 index 6b8774cc..00000000 --- a/askbot/skins/common/templates/question/question_vote_buttons.html +++ /dev/null @@ -1 +0,0 @@ -{{ macros.post_vote_buttons(post = question) }} diff --git a/askbot/skins/common/templates/question/share_buttons.html b/askbot/skins/common/templates/question/share_buttons.html deleted file mode 100644 index 5b4fc7ac..00000000 --- a/askbot/skins/common/templates/question/share_buttons.html +++ /dev/null @@ -1,5 +0,0 @@ -{% if settings.ENABLE_SHARING_TWITTER %}{{ macros.share(site = 'twitter', icon = True) }}{% endif %} -{% if settings.ENABLE_SHARING_FACEBOOK %}{{ macros.share(site = 'facebook', icon = True) }}{% endif %} -{% if settings.ENABLE_SHARING_LINKEDIN %}{{ macros.share(site = 'linkedin', icon = True) }}{% endif %} -{% if settings.ENABLE_SHARING_IDENTICA %}{{ macros.share(site = 'identica', icon = True) }}{% endif %} -{% if settings.ENABLE_SHARING_GOOGLE %}{% endif %} diff --git a/askbot/skins/common/templates/two_column_body.html b/askbot/skins/common/templates/two_column_body.html deleted file mode 100644 index 4c3193be..00000000 --- a/askbot/skins/common/templates/two_column_body.html +++ /dev/null @@ -1,12 +0,0 @@ -{% extends "base.html" %} -{% block body_class %}two-col{% endblock %} -{% block body %} -
- {% block content%} - {% endblock%} -
-
- {% block sidebar%} - {% endblock%} -
-{% endblock %} diff --git a/askbot/skins/common/templates/widgets/edit_post.html b/askbot/skins/common/templates/widgets/edit_post.html deleted file mode 100644 index b9bfa1e3..00000000 --- a/askbot/skins/common/templates/widgets/edit_post.html +++ /dev/null @@ -1,115 +0,0 @@ -{% if edit_title %} -
-
- {{ post_form.title }} {{ post_form.title.errors }} -
- {{ post_form.title.help_text }} -
-
-{% endif %} -{% if editor_type == 'markdown' %} -
-
- {{ post_form.text }}{# this element is resizable and will be wrapped by js #} -
-{% else %} -
- {{ post_form.media }} - {{ post_form.text }} -
- -{% endif %} -
- -

-
-{# need label element for resizable input, b/c form validation won't find span #} -{% if post_type == 'question' %} -
- {% if use_category_selector %} - {% include "widgets/three_column_category_selector.html" %} -
{% trans %}Tags{% endtrans %}
- {% include "widgets/tag_editor.html" %} - {% else %} - {% if tags_are_required %} - - {% else %} - {% trans %}tags:{% endtrans %} - {% endif %} - {{ post_form.tags.errors }}
- {{ post_form.tags }} -
- {{ post_form.tags.help_text }} -
- {% endif %} -
-{% endif %} -{% if 'summary' in post_form['fields'] %} -
- {{ post_form.summary.label_tag() }}
- {{ post_form.summary }} -
- {{ post_form.summary.help_text }} -
-
{{ post_form.summary.errors }}
-
-{% endif %} - -{% if editor_type == 'markdown' %} -
- - [{% trans %}hide preview{% endtrans %}] - -
-
-{% endif %} - -{% if user and user.is_authenticated() and user.is_administrator() %} - {# admin can post answers or questions on behalf of anyone. #} - - - - - - - - - - -{% endif %} diff --git a/askbot/skins/common/templates/widgets/related_tags.html b/askbot/skins/common/templates/widgets/related_tags.html deleted file mode 100644 index 05520998..00000000 --- a/askbot/skins/common/templates/widgets/related_tags.html +++ /dev/null @@ -1,28 +0,0 @@ -{% cache 0 "tags" tags search_tags scope sort query context.page language_code %} -
-

{% trans %}Tags{% endtrans %}

- {% if tag_list_type == 'list' %} - - {% else %} - {{ - macros.tag_cloud( - tags = tags, - font_sizes = font_size, - search_state = search_state - ) - }} - {% endif %} -
-{% endcache %} diff --git a/askbot/skins/common/templates/widgets/search_bar.html b/askbot/skins/common/templates/widgets/search_bar.html deleted file mode 100644 index 59c4fd58..00000000 --- a/askbot/skins/common/templates/widgets/search_bar.html +++ /dev/null @@ -1,46 +0,0 @@ -{% if active_tab != "ask" %} -{% spaceless %} - -{% endspaceless %} -{% endif %} diff --git a/askbot/skins/common/templates/widgets/tag_selector.html b/askbot/skins/common/templates/widgets/tag_selector.html deleted file mode 100644 index 7c6fe92e..00000000 --- a/askbot/skins/common/templates/widgets/tag_selector.html +++ /dev/null @@ -1,89 +0,0 @@ -{# todo - maybe disable navigation from ignored tags here when "hide" is on - with js? #} -{% import "macros.html" as macros %} -
-

{% trans %}Interesting tags{% endtrans %}

- {{ - macros.tag_list_widget( - interesting_tag_names, - deletable = True, - css_class = 'interesting marked-tags', - search_state = search_state - ) - }} - {# todo - add this via js - "remove '%(tag_name)s' from the list of interesting tags"| - format(tag_name = tag_name) - #} -
- - -
-

{% trans %}Ignored tags{% endtrans %}

- {{ - macros.tag_list_widget( - ignored_tag_names, - deletable = True, - css_class = 'ignored marked-tags', - search_state = search_state - ) - }} - {# todo: add this via javascript - "remove '%(tag_name)s' from the list of ignored tags"| - format(tag_name = tag_name) - #} -
- - -
- {% if settings.SUBSCRIBED_TAG_SELECTOR_ENABLED %} -

{% trans %}Subscribed tags{% endtrans %}

- {{ - macros.tag_list_widget( - subscribed_tag_names, - deletable = True, - css_class = 'subscribed marked-tags', - search_state = search_state - ) - }} - {# todo: add this via javascript - "remove '%(tag_name)s' from the list of ignored tags"| - format(tag_name = tag_name) - #} -
- - -
- {% endif %} -

{% trans %}Show only questions from{% endtrans%}

-
- {{ - macros.radio_select( - name = "display_tag_filter_strategy", - value = request.user.display_tag_filter_strategy, - choices = display_tag_filter_strategy_choices - ) - }} -
- {% if settings.SUBSCRIBED_TAG_SELECTOR_ENABLED %} -

{% trans %}Send me email alerts for{% endtrans%}

-
- {{ - macros.radio_select( - name = "email_tag_filter_strategy", - value = request.user.email_tag_filter_strategy, - choices = email_tag_filter_strategy_choices - ) - }} - {% if request.user.is_authenticated() %} -

- {% trans %}Change frequency of emails{% endtrans %} -

- {% endif %} -
- {% endif %} -
diff --git a/askbot/skins/default/templates/authopenid/authopenid_macros.html b/askbot/skins/default/templates/authopenid/authopenid_macros.html new file mode 100644 index 00000000..9d35ac6f --- /dev/null +++ b/askbot/skins/default/templates/authopenid/authopenid_macros.html @@ -0,0 +1,69 @@ +{% macro login_provider_input(login_provider) %} + +{% endmacro %} + +{% macro provider_buttons( + login_form = None, + major_login_providers = None, + minor_login_providers = None, + hide_local_login = False, + settings = None, + logged_in = False, + show_buttons = True + ) +%} + {% if show_buttons == True %}{# a hack #} +
+ {% if major_login_providers %} + + {% endif %} + {% if minor_login_providers %} + + {% endif %} +
+ + {% endif %} +{% endmacro %} diff --git a/askbot/skins/default/templates/authopenid/changeemail.html b/askbot/skins/default/templates/authopenid/changeemail.html new file mode 100644 index 00000000..8afa9c49 --- /dev/null +++ b/askbot/skins/default/templates/authopenid/changeemail.html @@ -0,0 +1,112 @@ +{% extends "one_column_body.html" %} +{% block title %}{% spaceless %}{% trans %}Change Email{% endtrans %}{% endspaceless %}{% endblock %} +{% block content %} + +{% if action_type=="change" %} +

+ {% if user.email %} + {% trans %}Change Email{% endtrans %} + {% else %} + {% trans %}Save your email address{% endtrans %} + {% endif %} +

+

+ {% if user.email %} + {% trans %}Enter your new email into the box below if +you'd like to use another email for update subscriptions. +
Currently you are using %(email)s{% endtrans %} + {% else %} + {% trans %}Please enter your email address in the box below. +Valid email address is required on this Q&A forum. If you like, +you can receive updates on interesting questions or entire +forum via email. Also, your email is used to create a unique +gravatar image for your +account. Email addresses are never shown or otherwise shared with anybody +else.{% endtrans %} + {% endif %} +

+ {% if msg %} +

{{ msg }}

+ {% endif %} +
+
{% csrf_token %} + {% if next %} + + {% endif %} +
+
+
+ + {% if user.email %} + + {% endif %} +
+
+
+{% elif action_type=="validate" %} +
+ {% trans %}Validate email{% endtrans %} +
+

+ {% trans %}An email with a validation link has been sent to +%(email)s. Please follow the emailed link with your +web browser. Email validation is necessary to help insure the proper use of +email on Q&A. If you would like to use +another email, please change it again.{% endtrans %} +

+{% elif action_type=="keep" %} +
+ {% trans %}Email not changed{% endtrans %} +
+

+ {% trans %}Your email address %(email)s has not been changed. + If you decide to change it later - you can always do it by editing +it in your user profile or by using the previous form again.{% endtrans %} +

+{% elif action_type=="done_novalidate" %} +
+ {% trans %}Email changed{% endtrans %} +
+

+ {% trans %} +Your email address is now set to %(email)s. +Updates on the questions that you like most will be sent to this address. +Email notifications are sent once a day or less frequently - only when there +are any news.{% endtrans %} +

+{% elif action_type=="validation_complete" %} +
+ {% trans %}Email verified{% endtrans %} +
+

+ {% trans %}Thank you for verifying your email! Now +you can ask and answer questions. Also if +you find a very interesting question you can subscribe for the +updates - then will be notified about changes once a day +or less frequently.{% endtrans %} +

+{% elif action_type=="key_not_sent" %} +
+ {% trans %}Validation email not sent{% endtrans %} +
+

+ {% trans %}Your current email address %(email)s has been +validated before so the new key was not sent. You can change email used for update subscriptions if +necessary.{% endtrans %} +

+{% endif %} +{% endblock %} + diff --git a/askbot/skins/default/templates/authopenid/complete.html b/askbot/skins/default/templates/authopenid/complete.html new file mode 100644 index 00000000..c9afedee --- /dev/null +++ b/askbot/skins/default/templates/authopenid/complete.html @@ -0,0 +1,63 @@ +{% extends "one_column_body.html" %} + +{# +views calling this template: +* django_authopenid.views.register with login_type='openid' +* django_authopenid.views.signin - with login_type='legacy' + +purpose of this template is to allow user enter his/her name +email and sign up for email alerts at the initial registratio + +parameters: +* provider +* login_type openid|legacy +* username (same as screen name or username in the models, and nickname in openid sreg) +* openid_register_form +* openid_verify_form - not clear what this form is supposed to do, not used for legacy +* openid_username_exists +#} +{% block head %}{% endblock %} +{% block title %}{% spaceless %}{% trans %}Registration{% endtrans %}{% endspaceless %}{% endblock %} +{% block content %} +

{% trans %}User registration{% endtrans %}

+ {% if openid_register_form.errors %} +
    + {% for error in openid_register_form.non_field_errors() %} +
  • {{error}}
  • + {% endfor %} +
+ {% endif %} + +{% endblock %} + diff --git a/askbot/skins/default/templates/authopenid/confirm_email.txt b/askbot/skins/default/templates/authopenid/confirm_email.txt new file mode 100644 index 00000000..5cab7c4c --- /dev/null +++ b/askbot/skins/default/templates/authopenid/confirm_email.txt @@ -0,0 +1,12 @@ +{% trans %}Thank you for registering at our Q&A forum!{% endtrans %} + +{% trans %}Your account details are:{% endtrans %} + +{% trans %}Username:{% endtrans %} {{ username }} +{% trans %}Password:{% endtrans %} {{ password }} + +{% trans %}Please sign in here:{% endtrans %} +{{signup_url}} + +{% trans %}Sincerely, +Q&A Forum Administrator{% endtrans %} diff --git a/askbot/skins/default/templates/authopenid/email_validation.txt b/askbot/skins/default/templates/authopenid/email_validation.txt new file mode 100644 index 00000000..bd68c61a --- /dev/null +++ b/askbot/skins/default/templates/authopenid/email_validation.txt @@ -0,0 +1,14 @@ +{% trans %}Greetings from the Q&A forum{% endtrans %}, + +{% trans %}To make use of the Forum, please follow the link below:{% endtrans %} + +{{validation_link}} + +{% trans %}Following the link above will help us verify your email address.{% endtrans %} + +{% trans %}If you believe that this message was sent in mistake - +no further action is needed. Just ignore this email, we apologize +for any inconvenience{% endtrans %} + +{% trans %}Sincerely, +Q&A Forum Administrator{% endtrans %} diff --git a/askbot/skins/default/templates/authopenid/logout.html b/askbot/skins/default/templates/authopenid/logout.html new file mode 100644 index 00000000..1ac6705c --- /dev/null +++ b/askbot/skins/default/templates/authopenid/logout.html @@ -0,0 +1,31 @@ +{% extends "one_column_body.html" %} + +{% block title %}{% spaceless %}{% trans %}Logout{% endtrans %}{% endspaceless %}{% endblock %} +{% block content %} +

{% trans %}You have successfully logged out{% endtrans %}

+{% if have_federated_login_methods %} +

{% trans %}However, you still may be logged in to your OpenID provider. Please logout of your provider if you wish to do so.{% endtrans %}

+ {% if settings.FACEBOOK_KEY and settings.FACEBOOK_SECRET %} +
+ + + {% endif %} +{% endif %} +{% endblock %} +{% block endjs %} + +{% endblock %} + diff --git a/askbot/skins/default/templates/authopenid/providers_javascript.html b/askbot/skins/default/templates/authopenid/providers_javascript.html new file mode 100644 index 00000000..cd9f56b6 --- /dev/null +++ b/askbot/skins/default/templates/authopenid/providers_javascript.html @@ -0,0 +1,55 @@ + + + +{% if settings.FACEBOOK_KEY and settings.FACEBOOK_SECRET %} +
+ + +{% endif %} diff --git a/askbot/skins/default/templates/authopenid/signin.html b/askbot/skins/default/templates/authopenid/signin.html new file mode 100644 index 00000000..c5a5c47f --- /dev/null +++ b/askbot/skins/default/templates/authopenid/signin.html @@ -0,0 +1,231 @@ +{% extends "two_column_body.html" %} +{% import "authopenid/authopenid_macros.html" as login_macros %} +{% from "macros.html" import timeago %} + +{% block title %}{% spaceless %}{% trans %}User login{% endtrans %}{% endspaceless %}{% endblock %} +{% block forestyle %} + +{% endblock %} +{% block content %} +{% if have_buttons or view_subtype == 'email_sent' %} +

{{page_title}}

+{% endif %} + {% if answer %} +
+ {% trans title=answer.question.title|escape, summary=answer.summary|escape %} + Your answer to {{title}} {{summary}} will be posted once you log in + {% endtrans %} +
+ {% endif %} + {% if question %} +
+ {% trans title=question.title|escape, summary=question.summary|escape %}Your question + {{title}} {{summary}} will be posted once you log in + {% endtrans %} +
+ {% endif %} + {% if not (view_subtype == 'default' and have_buttons) %} +

+ {% if view_subtype == 'add_openid' and have_buttons %} + {% if existing_login_methods %} + {% trans %}It's a good idea to make sure that your existing login methods still work, or add a new one. Please click any of the icons below to check/change or add new login methods.{% endtrans %} + {% else %} + {% trans %}Please add a more permanent login method by clicking one of the icons below, to avoid logging in via email each time.{% endtrans %} + {% endif %} + {% elif view_subtype == 'change_openid' and have_buttons %} + {% if existing_login_methods %} + {% trans %}Click on one of the icons below to add a new login method or re-validate an existing one.{% endtrans %} + {% else %} + {% trans %}You don't have a method to log in right now, please add one or more by clicking any of the icons below.{% endtrans %} + {% endif %} + {% elif view_subtype == 'email_sent' %} + {% trans %}Please check your email and visit the enclosed link to re-connect to your account{% endtrans %} + {% endif %} +

+ {% endif %} + {% if openid_error_message %} +

{{ openid_error_message }}

+ {% endif %} + {% if view_subtype != 'email_sent' and view_subtype != 'bad_key' %} +
{% csrf_token %} + {# in this branch - the real signin view we display the login icons + here we hide the local login button only if admin + wants to always show the password login form - then + the button is useless. + #} + {{ login_form.login_provider_name }} + {{ login_form.next }} + {{ + login_macros.provider_buttons( + login_form = login_form, + major_login_providers = major_login_providers, + minor_login_providers = minor_login_providers, + hide_local_login = settings.SIGNIN_ALWAYS_SHOW_LOCAL_LOGIN, + settings = settings, + logged_in = user.is_authenticated(), + show_buttons = have_buttons + ) + }} + {% if use_password_login == True %} + + {% endif %} +
+ {% if user.is_authenticated() and existing_login_methods and settings.ALLOW_ADD_REMOVE_LOGIN_METHODS %} + + {% endif %} + {% endif %} + {% if view_subtype != 'email_sent' or view_subtype == 'bad_key' %} + {% if user.is_anonymous() and settings.ALLOW_ACCOUNT_RECOVERY_BY_EMAIL %} +
{% csrf_token %} + {% if view_subtype != 'bad_key' %} +

{% trans %}Still have trouble signing in?{% endtrans %}

+ {% endif %} +

+ + {% if view_subtype == 'bad_key' %} + {% trans %}Please, enter your email address below and obtain a new key{% endtrans %} + {% else %} + {% trans %}Please, enter your email address below to recover your account{% endtrans %} + {% endif %} + + +

+
+ {% if account_recovery_form.email.errors %} +

{{account_recovery_form.email.errors[0]}}

+ {% endif %} + {{ account_recovery_form.email }} + +
+
+ {% endif %} + {% endif %} +{% endblock %} +{% block endjs %} +{% include "authopenid/providers_javascript.html" %} +{% endblock %} + diff --git a/askbot/skins/default/templates/authopenid/signup_with_password.html b/askbot/skins/default/templates/authopenid/signup_with_password.html new file mode 100644 index 00000000..e5a8f633 --- /dev/null +++ b/askbot/skins/default/templates/authopenid/signup_with_password.html @@ -0,0 +1,55 @@ +{% extends "one_column_body.html" %} +{% import "authopenid/authopenid_macros.html" as login_macros %} + +{% block title %}{% spaceless %}{% trans %}Signup{% endtrans %}{% endspaceless %}{% endblock %} +{% block forestyle %} + +{% endblock %} +{% block content %} +{% if settings.PASSWORD_REGISTER_SHOW_PROVIDER_BUTTONS == True %} +

{% trans %}Please register by clicking on any of the icons below{% endtrans %}

+
{% csrf_token %} + {# hide_local_login == True because it is password reg form #} + {{ + login_macros.provider_buttons( + login_form = login_form, + major_login_providers = major_login_providers, + minor_login_providers = minor_login_providers, + hide_local_login = True, + settings = settings + ) + }} +
+

{% trans %}or create a new user name and password here{% endtrans %}

+{% else %} +

{% trans %}Create login name and password{% endtrans %}

+ +{%endif%} +
{% csrf_token %} + {{form.login_provider}} +
    +
  • {{form.username}}{{form.username.errors}}
  • +
  • {{form.email}}{{form.email.errors}}
  • +
  • {{form.password1}}{{form.password1.errors}}
  • +
  • {{form.password2}}{{form.password2.errors}}
  • +
+ {% if settings.USE_RECAPTCHA %} + + {{form.recaptcha}} + {% endif %} +
+ {% if settings.PASSWORD_REGISTER_SHOW_PROVIDER_BUTTONS == False %} + {% trans %}or{% endtrans %} + {% trans %}return to OpenID login{% endtrans %} + {% endif %} +
+
+{% endblock %} +{%block endjs%} +{%include "authopenid/providers_javascript.html" %} +{%endblock%} + diff --git a/askbot/skins/default/templates/authopenid/verify_email.html b/askbot/skins/default/templates/authopenid/verify_email.html new file mode 100644 index 00000000..613ca589 --- /dev/null +++ b/askbot/skins/default/templates/authopenid/verify_email.html @@ -0,0 +1,14 @@ +{% extends "one_column_body.html" %} +{% block title %}{% spaceless %}{% trans %}Confirm email address{% endtrans %}{% endspaceless %}{% endblock %} +{% block content %} +

{% trans %}Confirm email address{% endtrans %}

+ +
{% csrf_token %} + + +
+{% endblock %} + diff --git a/askbot/skins/default/templates/avatar/add.html b/askbot/skins/default/templates/avatar/add.html new file mode 100644 index 00000000..68a188ef --- /dev/null +++ b/askbot/skins/default/templates/avatar/add.html @@ -0,0 +1,15 @@ +{% extends "user_profile/user.html" %} +{% import "macros.html" as macros %} +{% block profilesection %}{% trans %}add avatar{% endtrans %}{% endblock %} +{% block usercontent %} +

{% trans %}Change avatar{% endtrans %} +

{% trans %}Your current avatar: {% endtrans %}

+ {{ macros.gravatar(user, 128) }} + {% if not avatars %} +

{% trans %}You haven't uploaded an avatar yet. Please upload one now.{% endtrans %}

+ {% endif %} +
{% csrf_token %} + {{ upload_avatar_form.as_p() }} +

+
+{% endblock %} diff --git a/askbot/skins/default/templates/avatar/change.html b/askbot/skins/default/templates/avatar/change.html new file mode 100644 index 00000000..7921a662 --- /dev/null +++ b/askbot/skins/default/templates/avatar/change.html @@ -0,0 +1,24 @@ +{% extends "user_profile/user.html" %} +{% import "macros.html" as macros %} +{% block profilesection %} + {% trans %}change avatar{% endtrans %} +{% endblock %} +{% block usercontent %} +

{% trans %}Your current avatar: {% endtrans %}
+ {{ macros.gravatar(user, 128) }} +

+ {% if not avatars %} +

{% trans %}You haven't uploaded an avatar yet. Please upload one now.{% endtrans %}

+ {% else %} +
{% csrf_token %} +
    + {{ primary_avatar_form.as_ul() }} +
+

+
+ {% endif %} +
{% csrf_token %} + {{ upload_avatar_form.as_p() }} +

+
+{% endblock %} diff --git a/askbot/skins/default/templates/avatar/confirm_delete.html b/askbot/skins/default/templates/avatar/confirm_delete.html new file mode 100644 index 00000000..ee3d10d7 --- /dev/null +++ b/askbot/skins/default/templates/avatar/confirm_delete.html @@ -0,0 +1,15 @@ +{% extends "user_profile/user.html" %} +{% block profilesection %}{% trans %}delete avatar{% endtrans %}{% endblock %} +{% block usercontent %} +

{% trans %}Please select the avatars that you would like to delete.{% endtrans %}

+ {% if not avatars %} +

{% trans avatar_change_url="avatar_change"|url %}You have no avatars to delete. Please upload one now.{% endtrans %}

+ {% else %} +
{% csrf_token %} +
    + {{ delete_avatar_form.as_ul() }} +
+

+
+ {% endif %} +{% endblock %} diff --git a/askbot/skins/default/templates/debug_header.html b/askbot/skins/default/templates/debug_header.html new file mode 100644 index 00000000..e1230265 --- /dev/null +++ b/askbot/skins/default/templates/debug_header.html @@ -0,0 +1,27 @@ +{% if settings.USING_RUNSERVER %} + {% if settings.DEBUG == False %} +
+

+ You are seeing this message because you are using Django runserver + and DEBUG_MODE is False. Runserver should not be used in production. +

+

+ To serve static media in production - please run: +

python manage.py collectstatic
+

+

+ If you do not see page styling - set DEBUG_MODE = True. +

+
+ {% endif %} +{% else %} + {% if settings.DEBUG == True %} +
+

+ Debug mode is on, do not use it in production. + To turn it off, use DEBUG = False in your + settings.py file. +

+
+ {% endif %} +{% endif %} diff --git a/askbot/skins/default/templates/one_column_body.html b/askbot/skins/default/templates/one_column_body.html new file mode 100644 index 00000000..852f8fe5 --- /dev/null +++ b/askbot/skins/default/templates/one_column_body.html @@ -0,0 +1,8 @@ +{% extends "base.html" %} +{% block body_class %}one-col{% endblock %} +{% block body %} +
+ {% block content%} + {% endblock%} +
+{% endblock %} diff --git a/askbot/skins/default/templates/question/answer_author_info.html b/askbot/skins/default/templates/question/answer_author_info.html new file mode 100644 index 00000000..1c729b51 --- /dev/null +++ b/askbot/skins/default/templates/question/answer_author_info.html @@ -0,0 +1,8 @@ +{{ + macros.post_last_updater_and_creator_info( + answer, + settings.MIN_REP_TO_EDIT_WIKI, + karma_mode = settings.KARMA_MODE, + badges_mode = settings.BADGES_MODE + ) +}} diff --git a/askbot/skins/default/templates/question/answer_comments.html b/askbot/skins/default/templates/question/answer_comments.html new file mode 100644 index 00000000..e6b5e1c5 --- /dev/null +++ b/askbot/skins/default/templates/question/answer_comments.html @@ -0,0 +1,10 @@ +{{ + macros.post_comments_widget( + post = answer, + show_post = show_post, + show_comment = show_comment, + show_comment_position = show_comment_position, + user = request.user, + max_comments = settings.MAX_COMMENTS_TO_SHOW + ) +}} diff --git a/askbot/skins/default/templates/question/answer_controls.html b/askbot/skins/default/templates/question/answer_controls.html new file mode 100644 index 00000000..4efc7247 --- /dev/null +++ b/askbot/skins/default/templates/question/answer_controls.html @@ -0,0 +1,69 @@ +{# + {% trans %}swap with question{% endtrans %} +uncomment if needed#} + + + {% trans %}link{% endtrans %} + + + + {% if answer.id in published_answer_ids %} + {% trans %}unpublish{% endtrans %} + {% else %} + {% trans %}publish{% endtrans %} + {% endif %} + + + {% if answer.deleted %}{% trans %}undelete{% endtrans %}{% else %}{% trans %}delete{% endtrans %}{% endif %} + +{% if answer.offensive_flag_count > 0 %} + + {% trans %}remove flag{% endtrans %} + + + {% trans %}flag offensive{% endtrans %} ({{ answer.offensive_flag_count }}) + +{% else %} + + {% trans %}flag offensive{% endtrans %} + +{% endif %} + + {% trans %}edit{% endtrans %} + + +
+ {% csrf_token %} + + +
+
+ diff --git a/askbot/skins/default/templates/question/answer_vote_buttons.html b/askbot/skins/default/templates/question/answer_vote_buttons.html new file mode 100644 index 00000000..242bf2be --- /dev/null +++ b/askbot/skins/default/templates/question/answer_vote_buttons.html @@ -0,0 +1,10 @@ +{{ macros.post_vote_buttons(post = answer) }} +
diff --git a/askbot/skins/default/templates/question/closed_question_info.html b/askbot/skins/default/templates/question/closed_question_info.html new file mode 100644 index 00000000..f6f3f557 --- /dev/null +++ b/askbot/skins/default/templates/question/closed_question_info.html @@ -0,0 +1,5 @@ +
+

{% trans close_reason=thread.get_close_reason_display() %}The question has been closed for the following reason "{{ close_reason }}" by{% endtrans %} + {{ thread.closed_by.username|escape }}
+ {% trans closed_at=thread.closed_at %}close date {{closed_at}}{% endtrans %}

+
diff --git a/askbot/skins/default/templates/question/question_author_info.html b/askbot/skins/default/templates/question/question_author_info.html new file mode 100644 index 00000000..c25b7d84 --- /dev/null +++ b/askbot/skins/default/templates/question/question_author_info.html @@ -0,0 +1,8 @@ +{{ + macros.post_last_updater_and_creator_info( + question, + settings.MIN_REP_TO_EDIT_WIKI, + karma_mode = settings.KARMA_MODE, + badges_mode = settings.BADGES_MODE + ) +}} diff --git a/askbot/skins/default/templates/question/question_comments.html b/askbot/skins/default/templates/question/question_comments.html new file mode 100644 index 00000000..e9d3f724 --- /dev/null +++ b/askbot/skins/default/templates/question/question_comments.html @@ -0,0 +1,10 @@ +{{ + macros.post_comments_widget( + post = question, + show_post = show_post, + show_comment = show_comment, + show_comment_position = show_comment_position, + user = request.user, + max_comments = settings.MAX_COMMENTS_TO_SHOW + ) +}} diff --git a/askbot/skins/default/templates/question/question_controls.html b/askbot/skins/default/templates/question/question_controls.html new file mode 100644 index 00000000..c782d9ad --- /dev/null +++ b/askbot/skins/default/templates/question/question_controls.html @@ -0,0 +1,39 @@ +{% if question.deleted %}{% trans %}undelete{% endtrans %}{% else %}{% trans %}delete{% endtrans %}{% endif %} +{% if thread.closed %} + {% trans %}reopen{% endtrans %} +{% else %} + {% trans %}close{% endtrans %} +{% endif %} +{% if question.offensive_flag_count > 0 %} + + {% trans %}remove flag{% endtrans %} + + + {% trans %}flag offensive{% endtrans %} ({{ question.offensive_flag_count }}) + +{% else %} + + {% trans %}flag offensive{% endtrans %} + +{% endif %} + +{% trans %}retag{% endtrans %} +{% trans %}edit{% endtrans %} + diff --git a/askbot/skins/default/templates/question/question_tags.html b/askbot/skins/default/templates/question/question_tags.html new file mode 100644 index 00000000..4b01be81 --- /dev/null +++ b/askbot/skins/default/templates/question/question_tags.html @@ -0,0 +1,8 @@ +{{ + macros.tag_list_widget( + tags = thread.get_tag_names(), + id = 'question-tags', + css_class = 'post-tags tags', + tag_css_class = 'post-tag' + ) +}} diff --git a/askbot/skins/default/templates/question/question_vote_buttons.html b/askbot/skins/default/templates/question/question_vote_buttons.html new file mode 100644 index 00000000..6b8774cc --- /dev/null +++ b/askbot/skins/default/templates/question/question_vote_buttons.html @@ -0,0 +1 @@ +{{ macros.post_vote_buttons(post = question) }} diff --git a/askbot/skins/default/templates/question/share_buttons.html b/askbot/skins/default/templates/question/share_buttons.html new file mode 100644 index 00000000..5b4fc7ac --- /dev/null +++ b/askbot/skins/default/templates/question/share_buttons.html @@ -0,0 +1,5 @@ +{% if settings.ENABLE_SHARING_TWITTER %}{{ macros.share(site = 'twitter', icon = True) }}{% endif %} +{% if settings.ENABLE_SHARING_FACEBOOK %}{{ macros.share(site = 'facebook', icon = True) }}{% endif %} +{% if settings.ENABLE_SHARING_LINKEDIN %}{{ macros.share(site = 'linkedin', icon = True) }}{% endif %} +{% if settings.ENABLE_SHARING_IDENTICA %}{{ macros.share(site = 'identica', icon = True) }}{% endif %} +{% if settings.ENABLE_SHARING_GOOGLE %}{% endif %} diff --git a/askbot/skins/default/templates/two_column_body.html b/askbot/skins/default/templates/two_column_body.html new file mode 100644 index 00000000..4c3193be --- /dev/null +++ b/askbot/skins/default/templates/two_column_body.html @@ -0,0 +1,12 @@ +{% extends "base.html" %} +{% block body_class %}two-col{% endblock %} +{% block body %} +
+ {% block content%} + {% endblock%} +
+
+ {% block sidebar%} + {% endblock%} +
+{% endblock %} diff --git a/askbot/skins/default/templates/widgets/edit_post.html b/askbot/skins/default/templates/widgets/edit_post.html new file mode 100644 index 00000000..b9bfa1e3 --- /dev/null +++ b/askbot/skins/default/templates/widgets/edit_post.html @@ -0,0 +1,115 @@ +{% if edit_title %} +
+
+ {{ post_form.title }} {{ post_form.title.errors }} +
+ {{ post_form.title.help_text }} +
+
+{% endif %} +{% if editor_type == 'markdown' %} +
+
+ {{ post_form.text }}{# this element is resizable and will be wrapped by js #} +
+{% else %} +
+ {{ post_form.media }} + {{ post_form.text }} +
+ +{% endif %} +
+ +

+
+{# need label element for resizable input, b/c form validation won't find span #} +{% if post_type == 'question' %} +
+ {% if use_category_selector %} + {% include "widgets/three_column_category_selector.html" %} +
{% trans %}Tags{% endtrans %}
+ {% include "widgets/tag_editor.html" %} + {% else %} + {% if tags_are_required %} + + {% else %} + {% trans %}tags:{% endtrans %} + {% endif %} + {{ post_form.tags.errors }}
+ {{ post_form.tags }} +
+ {{ post_form.tags.help_text }} +
+ {% endif %} +
+{% endif %} +{% if 'summary' in post_form['fields'] %} +
+ {{ post_form.summary.label_tag() }}
+ {{ post_form.summary }} +
+ {{ post_form.summary.help_text }} +
+
{{ post_form.summary.errors }}
+
+{% endif %} + +{% if editor_type == 'markdown' %} +
+ + [{% trans %}hide preview{% endtrans %}] + +
+
+{% endif %} + +{% if user and user.is_authenticated() and user.is_administrator() %} + {# admin can post answers or questions on behalf of anyone. #} + + + + + + + + + + +{% endif %} diff --git a/askbot/skins/default/templates/widgets/related_tags.html b/askbot/skins/default/templates/widgets/related_tags.html new file mode 100644 index 00000000..05520998 --- /dev/null +++ b/askbot/skins/default/templates/widgets/related_tags.html @@ -0,0 +1,28 @@ +{% cache 0 "tags" tags search_tags scope sort query context.page language_code %} +
+

{% trans %}Tags{% endtrans %}

+ {% if tag_list_type == 'list' %} + + {% else %} + {{ + macros.tag_cloud( + tags = tags, + font_sizes = font_size, + search_state = search_state + ) + }} + {% endif %} +
+{% endcache %} diff --git a/askbot/skins/default/templates/widgets/search_bar.html b/askbot/skins/default/templates/widgets/search_bar.html new file mode 100644 index 00000000..59c4fd58 --- /dev/null +++ b/askbot/skins/default/templates/widgets/search_bar.html @@ -0,0 +1,46 @@ +{% if active_tab != "ask" %} +{% spaceless %} + +{% endspaceless %} +{% endif %} diff --git a/askbot/skins/default/templates/widgets/tag_selector.html b/askbot/skins/default/templates/widgets/tag_selector.html new file mode 100644 index 00000000..7c6fe92e --- /dev/null +++ b/askbot/skins/default/templates/widgets/tag_selector.html @@ -0,0 +1,89 @@ +{# todo - maybe disable navigation from ignored tags here when "hide" is on - with js? #} +{% import "macros.html" as macros %} +
+

{% trans %}Interesting tags{% endtrans %}

+ {{ + macros.tag_list_widget( + interesting_tag_names, + deletable = True, + css_class = 'interesting marked-tags', + search_state = search_state + ) + }} + {# todo - add this via js + "remove '%(tag_name)s' from the list of interesting tags"| + format(tag_name = tag_name) + #} +
+ + +
+

{% trans %}Ignored tags{% endtrans %}

+ {{ + macros.tag_list_widget( + ignored_tag_names, + deletable = True, + css_class = 'ignored marked-tags', + search_state = search_state + ) + }} + {# todo: add this via javascript + "remove '%(tag_name)s' from the list of ignored tags"| + format(tag_name = tag_name) + #} +
+ + +
+ {% if settings.SUBSCRIBED_TAG_SELECTOR_ENABLED %} +

{% trans %}Subscribed tags{% endtrans %}

+ {{ + macros.tag_list_widget( + subscribed_tag_names, + deletable = True, + css_class = 'subscribed marked-tags', + search_state = search_state + ) + }} + {# todo: add this via javascript + "remove '%(tag_name)s' from the list of ignored tags"| + format(tag_name = tag_name) + #} +
+ + +
+ {% endif %} +

{% trans %}Show only questions from{% endtrans%}

+
+ {{ + macros.radio_select( + name = "display_tag_filter_strategy", + value = request.user.display_tag_filter_strategy, + choices = display_tag_filter_strategy_choices + ) + }} +
+ {% if settings.SUBSCRIBED_TAG_SELECTOR_ENABLED %} +

{% trans %}Send me email alerts for{% endtrans%}

+
+ {{ + macros.radio_select( + name = "email_tag_filter_strategy", + value = request.user.email_tag_filter_strategy, + choices = email_tag_filter_strategy_choices + ) + }} + {% if request.user.is_authenticated() %} +

+ {% trans %}Change frequency of emails{% endtrans %} +

+ {% endif %} +
+ {% endif %} +
-- cgit v1.2.3-1-g7c22 From 8818c44dbdf306683d403ea8fa3d7a2d02a3a509 Mon Sep 17 00:00:00 2001 From: Evgeny Fadeev Date: Wed, 19 Sep 2012 19:30:09 -0400 Subject: completely emptied the "common" skin directory --- askbot/skins/common/media/images/anon.png | Bin 687 -> 0 bytes askbot/skins/common/media/images/bigbutton.png | Bin 263 -> 0 bytes .../skins/common/media/images/bigbuttonhover.png | Bin 236 -> 0 bytes .../common/media/images/blue-up-arrow-h18px.png | Bin 593 -> 0 bytes askbot/skins/common/media/images/box-arrow.gif | Bin 69 -> 0 bytes askbot/skins/common/media/images/bullet_green.gif | Bin 64 -> 0 bytes askbot/skins/common/media/images/cc-88x31.png | Bin 5460 -> 0 bytes askbot/skins/common/media/images/cc-by-sa.png | Bin 5083 -> 0 bytes .../skins/common/media/images/close-small-dark.png | Bin 226 -> 0 bytes .../common/media/images/close-small-hover.png | Bin 337 -> 0 bytes askbot/skins/common/media/images/close-small.png | Bin 293 -> 0 bytes .../skins/common/media/images/contributorsback.png | Bin 714 -> 0 bytes askbot/skins/common/media/images/dash.gif | Bin 44 -> 0 bytes .../common/media/images/dialog-warning-off.png | Bin 419 -> 0 bytes .../skins/common/media/images/dialog-warning.png | Bin 603 -> 0 bytes .../common/media/images/djangomade124x25_grey.gif | Bin 2035 -> 0 bytes askbot/skins/common/media/images/dot-g.gif | Bin 61 -> 0 bytes askbot/skins/common/media/images/dot-list.gif | Bin 56 -> 0 bytes askbot/skins/common/media/images/edit.png | Bin 758 -> 0 bytes .../common/media/images/expander-arrow-hide.gif | Bin 126 -> 0 bytes .../common/media/images/expander-arrow-show.gif | Bin 135 -> 0 bytes askbot/skins/common/media/images/favicon.gif | Bin 898 -> 0 bytes askbot/skins/common/media/images/favicon.ico | Bin 1150 -> 0 bytes .../skins/common/media/images/feed-icon-small.png | Bin 669 -> 0 bytes askbot/skins/common/media/images/flags/ad.gif | Bin 371 -> 0 bytes askbot/skins/common/media/images/flags/ae.gif | Bin 361 -> 0 bytes askbot/skins/common/media/images/flags/af.gif | Bin 369 -> 0 bytes askbot/skins/common/media/images/flags/ag.gif | Bin 361 -> 0 bytes askbot/skins/common/media/images/flags/ai.gif | Bin 369 -> 0 bytes askbot/skins/common/media/images/flags/al.gif | Bin 370 -> 0 bytes askbot/skins/common/media/images/flags/am.gif | Bin 363 -> 0 bytes askbot/skins/common/media/images/flags/an.gif | Bin 368 -> 0 bytes askbot/skins/common/media/images/flags/ao.gif | Bin 244 -> 0 bytes askbot/skins/common/media/images/flags/ar.gif | Bin 366 -> 0 bytes askbot/skins/common/media/images/flags/as.gif | Bin 365 -> 0 bytes askbot/skins/common/media/images/flags/at.gif | Bin 361 -> 0 bytes askbot/skins/common/media/images/flags/au.gif | Bin 378 -> 0 bytes askbot/skins/common/media/images/flags/aw.gif | Bin 365 -> 0 bytes askbot/skins/common/media/images/flags/ax.gif | Bin 376 -> 0 bytes askbot/skins/common/media/images/flags/az.gif | Bin 370 -> 0 bytes askbot/skins/common/media/images/flags/ba.gif | Bin 363 -> 0 bytes askbot/skins/common/media/images/flags/bb.gif | Bin 368 -> 0 bytes askbot/skins/common/media/images/flags/bd.gif | Bin 361 -> 0 bytes askbot/skins/common/media/images/flags/be.gif | Bin 359 -> 0 bytes askbot/skins/common/media/images/flags/bf.gif | Bin 358 -> 0 bytes askbot/skins/common/media/images/flags/bg.gif | Bin 360 -> 0 bytes askbot/skins/common/media/images/flags/bh.gif | Bin 367 -> 0 bytes askbot/skins/common/media/images/flags/bi.gif | Bin 374 -> 0 bytes askbot/skins/common/media/images/flags/bj.gif | Bin 368 -> 0 bytes askbot/skins/common/media/images/flags/bm.gif | Bin 367 -> 0 bytes askbot/skins/common/media/images/flags/bn.gif | Bin 373 -> 0 bytes askbot/skins/common/media/images/flags/bo.gif | Bin 359 -> 0 bytes askbot/skins/common/media/images/flags/br.gif | Bin 367 -> 0 bytes askbot/skins/common/media/images/flags/bs.gif | Bin 351 -> 0 bytes askbot/skins/common/media/images/flags/bt.gif | Bin 377 -> 0 bytes askbot/skins/common/media/images/flags/bv.gif | Bin 376 -> 0 bytes askbot/skins/common/media/images/flags/bw.gif | Bin 364 -> 0 bytes askbot/skins/common/media/images/flags/by.gif | Bin 361 -> 0 bytes askbot/skins/common/media/images/flags/bz.gif | Bin 368 -> 0 bytes askbot/skins/common/media/images/flags/ca.gif | Bin 376 -> 0 bytes .../skins/common/media/images/flags/catalonia.gif | Bin 238 -> 0 bytes askbot/skins/common/media/images/flags/cc.gif | Bin 371 -> 0 bytes askbot/skins/common/media/images/flags/cd.gif | Bin 243 -> 0 bytes askbot/skins/common/media/images/flags/cf.gif | Bin 364 -> 0 bytes askbot/skins/common/media/images/flags/cg.gif | Bin 359 -> 0 bytes askbot/skins/common/media/images/flags/ch.gif | Bin 332 -> 0 bytes askbot/skins/common/media/images/flags/ci.gif | Bin 368 -> 0 bytes askbot/skins/common/media/images/flags/ck.gif | Bin 362 -> 0 bytes askbot/skins/common/media/images/flags/cl.gif | Bin 364 -> 0 bytes askbot/skins/common/media/images/flags/cm.gif | Bin 369 -> 0 bytes askbot/skins/common/media/images/flags/cn.gif | Bin 366 -> 0 bytes askbot/skins/common/media/images/flags/co.gif | Bin 353 -> 0 bytes askbot/skins/common/media/images/flags/cr.gif | Bin 359 -> 0 bytes askbot/skins/common/media/images/flags/cs.gif | Bin 364 -> 0 bytes askbot/skins/common/media/images/flags/cu.gif | Bin 367 -> 0 bytes askbot/skins/common/media/images/flags/cv.gif | Bin 367 -> 0 bytes askbot/skins/common/media/images/flags/cx.gif | Bin 363 -> 0 bytes askbot/skins/common/media/images/flags/cy.gif | Bin 365 -> 0 bytes askbot/skins/common/media/images/flags/cz.gif | Bin 362 -> 0 bytes askbot/skins/common/media/images/flags/de.gif | Bin 362 -> 0 bytes askbot/skins/common/media/images/flags/dj.gif | Bin 369 -> 0 bytes askbot/skins/common/media/images/flags/dk.gif | Bin 374 -> 0 bytes askbot/skins/common/media/images/flags/dm.gif | Bin 368 -> 0 bytes askbot/skins/common/media/images/flags/do.gif | Bin 362 -> 0 bytes askbot/skins/common/media/images/flags/dz.gif | Bin 370 -> 0 bytes askbot/skins/common/media/images/flags/ec.gif | Bin 362 -> 0 bytes askbot/skins/common/media/images/flags/ee.gif | Bin 364 -> 0 bytes askbot/skins/common/media/images/flags/eg.gif | Bin 363 -> 0 bytes askbot/skins/common/media/images/flags/eh.gif | Bin 359 -> 0 bytes askbot/skins/common/media/images/flags/england.gif | Bin 367 -> 0 bytes askbot/skins/common/media/images/flags/er.gif | Bin 361 -> 0 bytes askbot/skins/common/media/images/flags/es.gif | Bin 360 -> 0 bytes askbot/skins/common/media/images/flags/et.gif | Bin 364 -> 0 bytes .../common/media/images/flags/europeanunion.gif | Bin 171 -> 0 bytes askbot/skins/common/media/images/flags/fam.gif | Bin 370 -> 0 bytes askbot/skins/common/media/images/flags/fi.gif | Bin 371 -> 0 bytes askbot/skins/common/media/images/flags/fj.gif | Bin 370 -> 0 bytes askbot/skins/common/media/images/flags/fk.gif | Bin 372 -> 0 bytes askbot/skins/common/media/images/flags/fm.gif | Bin 377 -> 0 bytes askbot/skins/common/media/images/flags/fo.gif | Bin 370 -> 0 bytes askbot/skins/common/media/images/flags/fr.gif | Bin 366 -> 0 bytes askbot/skins/common/media/images/flags/ga.gif | Bin 359 -> 0 bytes askbot/skins/common/media/images/flags/gb.gif | Bin 260 -> 0 bytes askbot/skins/common/media/images/flags/gd.gif | Bin 364 -> 0 bytes askbot/skins/common/media/images/flags/ge.gif | Bin 379 -> 0 bytes askbot/skins/common/media/images/flags/gf.gif | Bin 366 -> 0 bytes askbot/skins/common/media/images/flags/gh.gif | Bin 358 -> 0 bytes askbot/skins/common/media/images/flags/gi.gif | Bin 370 -> 0 bytes askbot/skins/common/media/images/flags/gl.gif | Bin 368 -> 0 bytes askbot/skins/common/media/images/flags/gm.gif | Bin 362 -> 0 bytes askbot/skins/common/media/images/flags/gn.gif | Bin 363 -> 0 bytes askbot/skins/common/media/images/flags/gp.gif | Bin 357 -> 0 bytes askbot/skins/common/media/images/flags/gq.gif | Bin 361 -> 0 bytes askbot/skins/common/media/images/flags/gr.gif | Bin 368 -> 0 bytes askbot/skins/common/media/images/flags/gs.gif | Bin 363 -> 0 bytes askbot/skins/common/media/images/flags/gt.gif | Bin 374 -> 0 bytes askbot/skins/common/media/images/flags/gu.gif | Bin 370 -> 0 bytes askbot/skins/common/media/images/flags/gw.gif | Bin 358 -> 0 bytes askbot/skins/common/media/images/flags/gy.gif | Bin 367 -> 0 bytes askbot/skins/common/media/images/flags/hk.gif | Bin 373 -> 0 bytes askbot/skins/common/media/images/flags/hm.gif | Bin 378 -> 0 bytes askbot/skins/common/media/images/flags/hn.gif | Bin 367 -> 0 bytes askbot/skins/common/media/images/flags/hr.gif | Bin 364 -> 0 bytes askbot/skins/common/media/images/flags/ht.gif | Bin 361 -> 0 bytes askbot/skins/common/media/images/flags/hu.gif | Bin 357 -> 0 bytes askbot/skins/common/media/images/flags/id.gif | Bin 362 -> 0 bytes askbot/skins/common/media/images/flags/ie.gif | Bin 371 -> 0 bytes askbot/skins/common/media/images/flags/il.gif | Bin 366 -> 0 bytes askbot/skins/common/media/images/flags/in.gif | Bin 363 -> 0 bytes askbot/skins/common/media/images/flags/io.gif | Bin 373 -> 0 bytes askbot/skins/common/media/images/flags/iq.gif | Bin 361 -> 0 bytes askbot/skins/common/media/images/flags/ir.gif | Bin 366 -> 0 bytes askbot/skins/common/media/images/flags/is.gif | Bin 373 -> 0 bytes askbot/skins/common/media/images/flags/it.gif | Bin 366 -> 0 bytes askbot/skins/common/media/images/flags/jm.gif | Bin 365 -> 0 bytes askbot/skins/common/media/images/flags/jo.gif | Bin 360 -> 0 bytes askbot/skins/common/media/images/flags/jp.gif | Bin 366 -> 0 bytes askbot/skins/common/media/images/flags/ke.gif | Bin 360 -> 0 bytes askbot/skins/common/media/images/flags/kg.gif | Bin 373 -> 0 bytes askbot/skins/common/media/images/flags/kh.gif | Bin 367 -> 0 bytes askbot/skins/common/media/images/flags/ki.gif | Bin 371 -> 0 bytes askbot/skins/common/media/images/flags/km.gif | Bin 358 -> 0 bytes askbot/skins/common/media/images/flags/kn.gif | Bin 370 -> 0 bytes askbot/skins/common/media/images/flags/kp.gif | Bin 366 -> 0 bytes askbot/skins/common/media/images/flags/kr.gif | Bin 385 -> 0 bytes askbot/skins/common/media/images/flags/kw.gif | Bin 362 -> 0 bytes askbot/skins/common/media/images/flags/ky.gif | Bin 373 -> 0 bytes askbot/skins/common/media/images/flags/kz.gif | Bin 374 -> 0 bytes askbot/skins/common/media/images/flags/la.gif | Bin 366 -> 0 bytes askbot/skins/common/media/images/flags/lb.gif | Bin 366 -> 0 bytes askbot/skins/common/media/images/flags/lc.gif | Bin 259 -> 0 bytes askbot/skins/common/media/images/flags/li.gif | Bin 359 -> 0 bytes askbot/skins/common/media/images/flags/lk.gif | Bin 377 -> 0 bytes askbot/skins/common/media/images/flags/lr.gif | Bin 360 -> 0 bytes askbot/skins/common/media/images/flags/ls.gif | Bin 369 -> 0 bytes askbot/skins/common/media/images/flags/lt.gif | Bin 362 -> 0 bytes askbot/skins/common/media/images/flags/lu.gif | Bin 368 -> 0 bytes askbot/skins/common/media/images/flags/lv.gif | Bin 363 -> 0 bytes askbot/skins/common/media/images/flags/ly.gif | Bin 362 -> 0 bytes askbot/skins/common/media/images/flags/ma.gif | Bin 367 -> 0 bytes askbot/skins/common/media/images/flags/mc.gif | Bin 359 -> 0 bytes askbot/skins/common/media/images/flags/md.gif | Bin 367 -> 0 bytes askbot/skins/common/media/images/flags/me.gif | Bin 238 -> 0 bytes askbot/skins/common/media/images/flags/mg.gif | Bin 372 -> 0 bytes askbot/skins/common/media/images/flags/mh.gif | Bin 370 -> 0 bytes askbot/skins/common/media/images/flags/mk.gif | Bin 382 -> 0 bytes askbot/skins/common/media/images/flags/ml.gif | Bin 363 -> 0 bytes askbot/skins/common/media/images/flags/mm.gif | Bin 365 -> 0 bytes askbot/skins/common/media/images/flags/mn.gif | Bin 368 -> 0 bytes askbot/skins/common/media/images/flags/mo.gif | Bin 378 -> 0 bytes askbot/skins/common/media/images/flags/mp.gif | Bin 368 -> 0 bytes askbot/skins/common/media/images/flags/mq.gif | Bin 379 -> 0 bytes askbot/skins/common/media/images/flags/mr.gif | Bin 377 -> 0 bytes askbot/skins/common/media/images/flags/ms.gif | Bin 371 -> 0 bytes askbot/skins/common/media/images/flags/mt.gif | Bin 369 -> 0 bytes askbot/skins/common/media/images/flags/mu.gif | Bin 358 -> 0 bytes askbot/skins/common/media/images/flags/mv.gif | Bin 372 -> 0 bytes askbot/skins/common/media/images/flags/mw.gif | Bin 364 -> 0 bytes askbot/skins/common/media/images/flags/mx.gif | Bin 366 -> 0 bytes askbot/skins/common/media/images/flags/my.gif | Bin 375 -> 0 bytes askbot/skins/common/media/images/flags/mz.gif | Bin 366 -> 0 bytes askbot/skins/common/media/images/flags/na.gif | Bin 371 -> 0 bytes askbot/skins/common/media/images/flags/nc.gif | Bin 364 -> 0 bytes askbot/skins/common/media/images/flags/ne.gif | Bin 366 -> 0 bytes askbot/skins/common/media/images/flags/nf.gif | Bin 375 -> 0 bytes askbot/skins/common/media/images/flags/ng.gif | Bin 371 -> 0 bytes askbot/skins/common/media/images/flags/ni.gif | Bin 366 -> 0 bytes askbot/skins/common/media/images/flags/nl.gif | Bin 360 -> 0 bytes askbot/skins/common/media/images/flags/no.gif | Bin 376 -> 0 bytes askbot/skins/common/media/images/flags/np.gif | Bin 302 -> 0 bytes askbot/skins/common/media/images/flags/nr.gif | Bin 364 -> 0 bytes askbot/skins/common/media/images/flags/nu.gif | Bin 369 -> 0 bytes askbot/skins/common/media/images/flags/nz.gif | Bin 369 -> 0 bytes askbot/skins/common/media/images/flags/om.gif | Bin 364 -> 0 bytes askbot/skins/common/media/images/flags/pa.gif | Bin 367 -> 0 bytes askbot/skins/common/media/images/flags/pe.gif | Bin 361 -> 0 bytes askbot/skins/common/media/images/flags/pf.gif | Bin 366 -> 0 bytes askbot/skins/common/media/images/flags/pg.gif | Bin 360 -> 0 bytes askbot/skins/common/media/images/flags/ph.gif | Bin 361 -> 0 bytes askbot/skins/common/media/images/flags/pk.gif | Bin 377 -> 0 bytes askbot/skins/common/media/images/flags/pl.gif | Bin 360 -> 0 bytes askbot/skins/common/media/images/flags/pm.gif | Bin 374 -> 0 bytes askbot/skins/common/media/images/flags/pn.gif | Bin 367 -> 0 bytes askbot/skins/common/media/images/flags/pr.gif | Bin 369 -> 0 bytes askbot/skins/common/media/images/flags/ps.gif | Bin 358 -> 0 bytes askbot/skins/common/media/images/flags/pt.gif | Bin 369 -> 0 bytes askbot/skins/common/media/images/flags/pw.gif | Bin 374 -> 0 bytes askbot/skins/common/media/images/flags/py.gif | Bin 363 -> 0 bytes askbot/skins/common/media/images/flags/qa.gif | Bin 364 -> 0 bytes askbot/skins/common/media/images/flags/re.gif | Bin 366 -> 0 bytes askbot/skins/common/media/images/flags/ro.gif | Bin 363 -> 0 bytes askbot/skins/common/media/images/flags/rs.gif | Bin 238 -> 0 bytes askbot/skins/common/media/images/flags/ru.gif | Bin 361 -> 0 bytes askbot/skins/common/media/images/flags/rw.gif | Bin 361 -> 0 bytes askbot/skins/common/media/images/flags/sa.gif | Bin 370 -> 0 bytes askbot/skins/common/media/images/flags/sb.gif | Bin 366 -> 0 bytes askbot/skins/common/media/images/flags/sc.gif | Bin 357 -> 0 bytes .../skins/common/media/images/flags/scotland.gif | Bin 378 -> 0 bytes askbot/skins/common/media/images/flags/sd.gif | Bin 355 -> 0 bytes askbot/skins/common/media/images/flags/se.gif | Bin 367 -> 0 bytes askbot/skins/common/media/images/flags/sg.gif | Bin 364 -> 0 bytes askbot/skins/common/media/images/flags/sh.gif | Bin 371 -> 0 bytes askbot/skins/common/media/images/flags/si.gif | Bin 362 -> 0 bytes askbot/skins/common/media/images/flags/sj.gif | Bin 376 -> 0 bytes askbot/skins/common/media/images/flags/sk.gif | Bin 361 -> 0 bytes askbot/skins/common/media/images/flags/sl.gif | Bin 363 -> 0 bytes askbot/skins/common/media/images/flags/sm.gif | Bin 367 -> 0 bytes askbot/skins/common/media/images/flags/sn.gif | Bin 364 -> 0 bytes askbot/skins/common/media/images/flags/so.gif | Bin 376 -> 0 bytes askbot/skins/common/media/images/flags/sr.gif | Bin 361 -> 0 bytes askbot/skins/common/media/images/flags/st.gif | Bin 367 -> 0 bytes askbot/skins/common/media/images/flags/sv.gif | Bin 363 -> 0 bytes askbot/skins/common/media/images/flags/sy.gif | Bin 361 -> 0 bytes askbot/skins/common/media/images/flags/sz.gif | Bin 363 -> 0 bytes askbot/skins/common/media/images/flags/tc.gif | Bin 366 -> 0 bytes askbot/skins/common/media/images/flags/td.gif | Bin 368 -> 0 bytes askbot/skins/common/media/images/flags/tf.gif | Bin 365 -> 0 bytes askbot/skins/common/media/images/flags/tg.gif | Bin 366 -> 0 bytes askbot/skins/common/media/images/flags/th.gif | Bin 360 -> 0 bytes askbot/skins/common/media/images/flags/tj.gif | Bin 361 -> 0 bytes askbot/skins/common/media/images/flags/tk.gif | Bin 372 -> 0 bytes askbot/skins/common/media/images/flags/tl.gif | Bin 360 -> 0 bytes askbot/skins/common/media/images/flags/tm.gif | Bin 367 -> 0 bytes askbot/skins/common/media/images/flags/tn.gif | Bin 375 -> 0 bytes askbot/skins/common/media/images/flags/to.gif | Bin 367 -> 0 bytes askbot/skins/common/media/images/flags/tr.gif | Bin 371 -> 0 bytes askbot/skins/common/media/images/flags/tt.gif | Bin 377 -> 0 bytes askbot/skins/common/media/images/flags/tv.gif | Bin 361 -> 0 bytes askbot/skins/common/media/images/flags/tw.gif | Bin 367 -> 0 bytes askbot/skins/common/media/images/flags/tz.gif | Bin 366 -> 0 bytes askbot/skins/common/media/images/flags/ua.gif | Bin 360 -> 0 bytes askbot/skins/common/media/images/flags/ug.gif | Bin 359 -> 0 bytes askbot/skins/common/media/images/flags/um.gif | Bin 371 -> 0 bytes askbot/skins/common/media/images/flags/us.gif | Bin 367 -> 0 bytes askbot/skins/common/media/images/flags/uy.gif | Bin 373 -> 0 bytes askbot/skins/common/media/images/flags/uz.gif | Bin 364 -> 0 bytes askbot/skins/common/media/images/flags/va.gif | Bin 369 -> 0 bytes askbot/skins/common/media/images/flags/vc.gif | Bin 370 -> 0 bytes askbot/skins/common/media/images/flags/ve.gif | Bin 364 -> 0 bytes askbot/skins/common/media/images/flags/vg.gif | Bin 368 -> 0 bytes askbot/skins/common/media/images/flags/vi.gif | Bin 376 -> 0 bytes askbot/skins/common/media/images/flags/vn.gif | Bin 370 -> 0 bytes askbot/skins/common/media/images/flags/vu.gif | Bin 365 -> 0 bytes askbot/skins/common/media/images/flags/wales.gif | Bin 372 -> 0 bytes askbot/skins/common/media/images/flags/wf.gif | Bin 377 -> 0 bytes askbot/skins/common/media/images/flags/ws.gif | Bin 365 -> 0 bytes askbot/skins/common/media/images/flags/ye.gif | Bin 356 -> 0 bytes askbot/skins/common/media/images/flags/yt.gif | Bin 382 -> 0 bytes askbot/skins/common/media/images/flags/za.gif | Bin 363 -> 0 bytes askbot/skins/common/media/images/flags/zm.gif | Bin 358 -> 0 bytes askbot/skins/common/media/images/flags/zw.gif | Bin 365 -> 0 bytes askbot/skins/common/media/images/go-up-grey.png | Bin 563 -> 0 bytes askbot/skins/common/media/images/go-up-orange.png | Bin 586 -> 0 bytes .../common/media/images/gray-up-arrow-h18px.png | Bin 383 -> 0 bytes askbot/skins/common/media/images/grippie.png | Bin 162 -> 0 bytes askbot/skins/common/media/images/indicator.gif | Bin 2545 -> 0 bytes askbot/skins/common/media/images/logo.gif | Bin 3792 -> 0 bytes askbot/skins/common/media/images/logo.png | Bin 5841 -> 0 bytes askbot/skins/common/media/images/logo1.png | Bin 2752 -> 0 bytes askbot/skins/common/media/images/logo2.png | Bin 2124 -> 0 bytes .../common/media/images/mail-envelope-empty.png | Bin 547 -> 0 bytes .../common/media/images/mail-envelope-full.png | Bin 482 -> 0 bytes askbot/skins/common/media/images/medala.gif | Bin 801 -> 0 bytes askbot/skins/common/media/images/medala_on.gif | Bin 957 -> 0 bytes askbot/skins/common/media/images/new.gif | Bin 635 -> 0 bytes askbot/skins/common/media/images/nophoto.png | Bin 696 -> 0 bytes askbot/skins/common/media/images/openid.gif | Bin 910 -> 0 bytes askbot/skins/common/media/images/openid/aol.gif | Bin 2205 -> 0 bytes .../skins/common/media/images/openid/blogger.ico | Bin 3638 -> 0 bytes .../skins/common/media/images/openid/claimid.ico | Bin 3638 -> 0 bytes .../skins/common/media/images/openid/facebook.gif | Bin 2075 -> 0 bytes askbot/skins/common/media/images/openid/flickr.ico | Bin 1150 -> 0 bytes askbot/skins/common/media/images/openid/google.gif | Bin 1596 -> 0 bytes .../common/media/images/openid/livejournal.ico | Bin 5222 -> 0 bytes .../skins/common/media/images/openid/myopenid.ico | Bin 2862 -> 0 bytes .../media/images/openid/openid-inputicon.gif | Bin 237 -> 0 bytes askbot/skins/common/media/images/openid/openid.gif | Bin 740 -> 0 bytes .../common/media/images/openid/technorati.ico | Bin 2294 -> 0 bytes .../skins/common/media/images/openid/twitter.png | Bin 3130 -> 0 bytes .../skins/common/media/images/openid/verisign.ico | Bin 4710 -> 0 bytes askbot/skins/common/media/images/openid/vidoop.ico | Bin 1406 -> 0 bytes .../skins/common/media/images/openid/wordpress.ico | Bin 1150 -> 0 bytes askbot/skins/common/media/images/openid/yahoo.gif | Bin 1510 -> 0 bytes askbot/skins/common/media/images/print.png | Bin 1391 -> 0 bytes askbot/skins/common/media/images/pw-login.gif | Bin 1818 -> 0 bytes askbot/skins/common/media/images/quest-bg.gif | Bin 294 -> 0 bytes askbot/skins/common/media/images/scopearrow.png | Bin 538 -> 0 bytes askbot/skins/common/media/images/sprite.png | Bin 5325 -> 0 bytes askbot/skins/common/media/images/sprites.png | Bin 12940 -> 0 bytes .../common/media/images/sprites_source/sprites.svg | 732 - .../common/media/images/summary-background.png | Bin 291 -> 0 bytes askbot/skins/common/media/images/tag-left.png | Bin 290 -> 0 bytes askbot/skins/common/media/images/tag-right.png | Bin 187 -> 0 bytes .../skins/common/media/images/vote-accepted-on.png | Bin 1124 -> 0 bytes askbot/skins/common/media/images/vote-accepted.png | Bin 1058 -> 0 bytes .../common/media/images/vote-arrow-down-on.png | Bin 905 -> 0 bytes .../skins/common/media/images/vote-arrow-down.png | Bin 876 -> 0 bytes .../skins/common/media/images/vote-arrow-up-on.png | Bin 906 -> 0 bytes askbot/skins/common/media/images/vote-arrow-up.png | Bin 843 -> 0 bytes .../common/media/images/vote-favorite-off.png | Bin 930 -> 0 bytes .../skins/common/media/images/vote-favorite-on.png | Bin 1023 -> 0 bytes askbot/skins/common/media/images/wiki.png | Bin 5178 -> 0 bytes .../common/media/jquery-openid/images/aol.gif | Bin 1872 -> 0 bytes .../media/jquery-openid/images/blogger-1.png | Bin 432 -> 0 bytes .../common/media/jquery-openid/images/blogger.ico | Bin 3638 -> 0 bytes .../media/jquery-openid/images/claimid-0.png | Bin 629 -> 0 bytes .../common/media/jquery-openid/images/claimid.ico | Bin 3638 -> 0 bytes .../common/media/jquery-openid/images/facebook.gif | Bin 1737 -> 0 bytes .../common/media/jquery-openid/images/flickr.ico | Bin 1150 -> 0 bytes .../common/media/jquery-openid/images/flickr.png | Bin 426 -> 0 bytes .../common/media/jquery-openid/images/google.gif | Bin 1528 -> 0 bytes .../common/media/jquery-openid/images/identica.png | Bin 6601 -> 0 bytes .../common/media/jquery-openid/images/linkedin.gif | Bin 1530 -> 0 bytes .../media/jquery-openid/images/livejournal-1.png | Bin 713 -> 0 bytes .../media/jquery-openid/images/livejournal.ico | Bin 5222 -> 0 bytes .../media/jquery-openid/images/myopenid-2.png | Bin 511 -> 0 bytes .../common/media/jquery-openid/images/myopenid.ico | Bin 2862 -> 0 bytes .../jquery-openid/images/openid-inputicon.gif | Bin 237 -> 0 bytes .../common/media/jquery-openid/images/openid.gif | Bin 1473 -> 0 bytes .../media/jquery-openid/images/openidico.png | Bin 654 -> 0 bytes .../media/jquery-openid/images/openidico16.png | Bin 554 -> 0 bytes .../media/jquery-openid/images/technorati-1.png | Bin 606 -> 0 bytes .../media/jquery-openid/images/technorati.ico | Bin 2294 -> 0 bytes .../common/media/jquery-openid/images/twitter.gif | Bin 1913 -> 0 bytes .../media/jquery-openid/images/verisign-2.png | Bin 859 -> 0 bytes .../common/media/jquery-openid/images/verisign.ico | Bin 4710 -> 0 bytes .../common/media/jquery-openid/images/vidoop.ico | Bin 1406 -> 0 bytes .../common/media/jquery-openid/images/vidoop.png | Bin 499 -> 0 bytes .../media/jquery-openid/images/wordpress.ico | Bin 1150 -> 0 bytes .../media/jquery-openid/images/wordpress.png | Bin 566 -> 0 bytes .../common/media/jquery-openid/images/yahoo.gif | Bin 1607 -> 0 bytes .../common/media/jquery-openid/jquery.openid.js | 440 - askbot/skins/common/media/jquery-openid/openid.css | 39 - askbot/skins/common/media/js/autocompleter.js | 794 - askbot/skins/common/media/js/compress.bat | 5 - askbot/skins/common/media/js/editor.js | 81 - askbot/skins/common/media/js/excanvas.min.js | 1 - askbot/skins/common/media/js/flot-build.bat | 3 - askbot/skins/common/media/js/group_messaging.js | 186 - askbot/skins/common/media/js/jquery-1.4.3.js | 6883 ------- askbot/skins/common/media/js/jquery-1.7.2.min.js | 4 - .../skins/common/media/js/jquery-fieldselection.js | 83 - .../common/media/js/jquery-fieldselection.min.js | 1 - .../skins/common/media/js/jquery.ajaxfileupload.js | 186 - .../skins/common/media/js/jquery.animate-colors.js | 105 - askbot/skins/common/media/js/jquery.flot.js | 2119 --- askbot/skins/common/media/js/jquery.flot.min.js | 1 - askbot/skins/common/media/js/jquery.form.js | 654 - askbot/skins/common/media/js/jquery.history.js | 1 - askbot/skins/common/media/js/jquery.i18n.js | 133 - askbot/skins/common/media/js/jquery.openid.js | 176 - askbot/skins/common/media/js/jquery.validate.js | 1146 -- .../skins/common/media/js/jquery.validate.min.js | 16 - .../skins/common/media/js/jquery.validate.pack.js | 15 - askbot/skins/common/media/js/less.min.js | 16 - askbot/skins/common/media/js/live_search.js | 405 - .../common/media/js/live_search_new_thread.js | 93 - askbot/skins/common/media/js/modernizr.custom.js | 4 - askbot/skins/common/media/js/output-words.html | 49 - askbot/skins/common/media/js/output-words.js | 97 - askbot/skins/common/media/js/post.js | 4081 ---- askbot/skins/common/media/js/se_hilite.js | 1 - askbot/skins/common/media/js/se_hilite_src.js | 273 - askbot/skins/common/media/js/tag_moderation.js | 217 - askbot/skins/common/media/js/tag_selector.js | 402 - askbot/skins/common/media/js/tinymce/langs/en.js | 1 - askbot/skins/common/media/js/tinymce/license.txt | 504 - .../media/js/tinymce/plugins/advhr/css/advhr.css | 5 - .../js/tinymce/plugins/advhr/editor_plugin.js | 1 - .../js/tinymce/plugins/advhr/editor_plugin_src.js | 57 - .../media/js/tinymce/plugins/advhr/js/rule.js | 43 - .../media/js/tinymce/plugins/advhr/langs/en_dlg.js | 1 - .../common/media/js/tinymce/plugins/advhr/rule.htm | 58 - .../js/tinymce/plugins/advimage/css/advimage.css | 13 - .../js/tinymce/plugins/advimage/editor_plugin.js | 1 - .../tinymce/plugins/advimage/editor_plugin_src.js | 50 - .../media/js/tinymce/plugins/advimage/image.htm | 235 - .../js/tinymce/plugins/advimage/img/sample.gif | Bin 1624 -> 0 bytes .../media/js/tinymce/plugins/advimage/js/image.js | 462 - .../js/tinymce/plugins/advimage/langs/en_dlg.js | 1 - .../js/tinymce/plugins/advlink/css/advlink.css | 8 - .../js/tinymce/plugins/advlink/editor_plugin.js | 1 - .../tinymce/plugins/advlink/editor_plugin_src.js | 61 - .../media/js/tinymce/plugins/advlink/js/advlink.js | 539 - .../js/tinymce/plugins/advlink/langs/en_dlg.js | 1 - .../media/js/tinymce/plugins/advlink/link.htm | 338 - .../js/tinymce/plugins/advlist/editor_plugin.js | 1 - .../tinymce/plugins/advlist/editor_plugin_src.js | 176 - .../plugins/askbot_attachment/editor_plugin.js | 111 - .../tinymce/plugins/askbot_attachment/langs/en.js | 3 - .../plugins/askbot_attachment/langs/en_dlg.js | 3 - .../plugins/askbot_imageuploader/editor_plugin.js | 111 - .../plugins/askbot_imageuploader/langs/en.js | 3 - .../plugins/askbot_imageuploader/langs/en_dlg.js | 3 - .../js/tinymce/plugins/autolink/editor_plugin.js | 1 - .../tinymce/plugins/autolink/editor_plugin_src.js | 181 - .../js/tinymce/plugins/autoresize/editor_plugin.js | 1 - .../plugins/autoresize/editor_plugin_src.js | 119 - .../js/tinymce/plugins/autosave/editor_plugin.js | 1 - .../tinymce/plugins/autosave/editor_plugin_src.js | 433 - .../media/js/tinymce/plugins/autosave/langs/en.js | 4 - .../js/tinymce/plugins/bbcode/editor_plugin.js | 1 - .../js/tinymce/plugins/bbcode/editor_plugin_src.js | 120 - .../tinymce/plugins/contextmenu/editor_plugin.js | 1 - .../plugins/contextmenu/editor_plugin_src.js | 161 - .../plugins/directionality/editor_plugin.js | 1 - .../plugins/directionality/editor_plugin_src.js | 82 - .../js/tinymce/plugins/emotions/editor_plugin.js | 1 - .../tinymce/plugins/emotions/editor_plugin_src.js | 43 - .../media/js/tinymce/plugins/emotions/emotions.htm | 42 - .../tinymce/plugins/emotions/img/smiley-cool.gif | Bin 354 -> 0 bytes .../js/tinymce/plugins/emotions/img/smiley-cry.gif | Bin 329 -> 0 bytes .../plugins/emotions/img/smiley-embarassed.gif | Bin 331 -> 0 bytes .../plugins/emotions/img/smiley-foot-in-mouth.gif | Bin 342 -> 0 bytes .../tinymce/plugins/emotions/img/smiley-frown.gif | Bin 340 -> 0 bytes .../plugins/emotions/img/smiley-innocent.gif | Bin 336 -> 0 bytes .../tinymce/plugins/emotions/img/smiley-kiss.gif | Bin 338 -> 0 bytes .../plugins/emotions/img/smiley-laughing.gif | Bin 343 -> 0 bytes .../plugins/emotions/img/smiley-money-mouth.gif | Bin 321 -> 0 bytes .../tinymce/plugins/emotions/img/smiley-sealed.gif | Bin 323 -> 0 bytes .../tinymce/plugins/emotions/img/smiley-smile.gif | Bin 344 -> 0 bytes .../plugins/emotions/img/smiley-surprised.gif | Bin 338 -> 0 bytes .../plugins/emotions/img/smiley-tongue-out.gif | Bin 328 -> 0 bytes .../plugins/emotions/img/smiley-undecided.gif | Bin 337 -> 0 bytes .../tinymce/plugins/emotions/img/smiley-wink.gif | Bin 350 -> 0 bytes .../tinymce/plugins/emotions/img/smiley-yell.gif | Bin 336 -> 0 bytes .../js/tinymce/plugins/emotions/js/emotions.js | 43 - .../js/tinymce/plugins/emotions/langs/en_dlg.js | 1 - .../media/js/tinymce/plugins/example/dialog.htm | 22 - .../js/tinymce/plugins/example/editor_plugin.js | 1 - .../tinymce/plugins/example/editor_plugin_src.js | 84 - .../js/tinymce/plugins/example/img/example.gif | Bin 87 -> 0 bytes .../media/js/tinymce/plugins/example/js/dialog.js | 19 - .../media/js/tinymce/plugins/example/langs/en.js | 3 - .../js/tinymce/plugins/example/langs/en_dlg.js | 3 - .../plugins/example_dependency/editor_plugin.js | 1 - .../example_dependency/editor_plugin_src.js | 50 - .../js/tinymce/plugins/fullpage/css/fullpage.css | 143 - .../js/tinymce/plugins/fullpage/editor_plugin.js | 1 - .../tinymce/plugins/fullpage/editor_plugin_src.js | 405 - .../media/js/tinymce/plugins/fullpage/fullpage.htm | 259 - .../js/tinymce/plugins/fullpage/js/fullpage.js | 232 - .../js/tinymce/plugins/fullpage/langs/en_dlg.js | 1 - .../js/tinymce/plugins/fullscreen/editor_plugin.js | 1 - .../plugins/fullscreen/editor_plugin_src.js | 159 - .../js/tinymce/plugins/fullscreen/fullscreen.htm | 110 - .../js/tinymce/plugins/iespell/editor_plugin.js | 1 - .../tinymce/plugins/iespell/editor_plugin_src.js | 54 - .../tinymce/plugins/inlinepopups/editor_plugin.js | 1 - .../plugins/inlinepopups/editor_plugin_src.js | 699 - .../inlinepopups/skins/clearlooks2/img/alert.gif | Bin 810 -> 0 bytes .../inlinepopups/skins/clearlooks2/img/button.gif | Bin 272 -> 0 bytes .../inlinepopups/skins/clearlooks2/img/buttons.gif | Bin 1195 -> 0 bytes .../inlinepopups/skins/clearlooks2/img/confirm.gif | Bin 907 -> 0 bytes .../inlinepopups/skins/clearlooks2/img/corners.gif | Bin 909 -> 0 bytes .../skins/clearlooks2/img/horizontal.gif | Bin 769 -> 0 bytes .../skins/clearlooks2/img/vertical.gif | Bin 84 -> 0 bytes .../inlinepopups/skins/clearlooks2/window.css | 90 - .../js/tinymce/plugins/inlinepopups/template.htm | 387 - .../plugins/insertdatetime/editor_plugin.js | 1 - .../plugins/insertdatetime/editor_plugin_src.js | 83 - .../js/tinymce/plugins/layer/editor_plugin.js | 1 - .../js/tinymce/plugins/layer/editor_plugin_src.js | 262 - .../tinymce/plugins/legacyoutput/editor_plugin.js | 1 - .../plugins/legacyoutput/editor_plugin_src.js | 139 - .../js/tinymce/plugins/lists/editor_plugin.js | 1 - .../js/tinymce/plugins/lists/editor_plugin_src.js | 952 - .../media/js/tinymce/plugins/media/css/media.css | 17 - .../js/tinymce/plugins/media/editor_plugin.js | 1 - .../js/tinymce/plugins/media/editor_plugin_src.js | 890 - .../media/js/tinymce/plugins/media/js/embed.js | 73 - .../media/js/tinymce/plugins/media/js/media.js | 470 - .../media/js/tinymce/plugins/media/langs/en_dlg.js | 1 - .../media/js/tinymce/plugins/media/media.htm | 922 - .../media/js/tinymce/plugins/media/moxieplayer.swf | Bin 19980 -> 0 bytes .../tinymce/plugins/nonbreaking/editor_plugin.js | 1 - .../plugins/nonbreaking/editor_plugin_src.js | 54 - .../tinymce/plugins/noneditable/editor_plugin.js | 1 - .../plugins/noneditable/editor_plugin_src.js | 540 - .../js/tinymce/plugins/pagebreak/editor_plugin.js | 1 - .../tinymce/plugins/pagebreak/editor_plugin_src.js | 74 - .../js/tinymce/plugins/paste/editor_plugin.js | 1 - .../js/tinymce/plugins/paste/editor_plugin_src.js | 871 - .../media/js/tinymce/plugins/paste/js/pastetext.js | 36 - .../media/js/tinymce/plugins/paste/js/pasteword.js | 51 - .../media/js/tinymce/plugins/paste/langs/en_dlg.js | 1 - .../media/js/tinymce/plugins/paste/pastetext.htm | 27 - .../media/js/tinymce/plugins/paste/pasteword.htm | 21 - .../js/tinymce/plugins/preview/editor_plugin.js | 1 - .../tinymce/plugins/preview/editor_plugin_src.js | 53 - .../media/js/tinymce/plugins/preview/example.html | 28 - .../js/tinymce/plugins/preview/jscripts/embed.js | 73 - .../media/js/tinymce/plugins/preview/preview.html | 17 - .../js/tinymce/plugins/print/editor_plugin.js | 1 - .../js/tinymce/plugins/print/editor_plugin_src.js | 34 - .../media/js/tinymce/plugins/save/editor_plugin.js | 1 - .../js/tinymce/plugins/save/editor_plugin_src.js | 101 - .../plugins/searchreplace/css/searchreplace.css | 6 - .../tinymce/plugins/searchreplace/editor_plugin.js | 1 - .../plugins/searchreplace/editor_plugin_src.js | 61 - .../plugins/searchreplace/js/searchreplace.js | 142 - .../tinymce/plugins/searchreplace/langs/en_dlg.js | 1 - .../plugins/searchreplace/searchreplace.htm | 100 - .../tinymce/plugins/spellchecker/css/content.css | 1 - .../tinymce/plugins/spellchecker/editor_plugin.js | 1 - .../plugins/spellchecker/editor_plugin_src.js | 436 - .../js/tinymce/plugins/spellchecker/img/wline.gif | Bin 46 -> 0 bytes .../media/js/tinymce/plugins/style/css/props.css | 14 - .../js/tinymce/plugins/style/editor_plugin.js | 1 - .../js/tinymce/plugins/style/editor_plugin_src.js | 71 - .../media/js/tinymce/plugins/style/js/props.js | 709 - .../media/js/tinymce/plugins/style/langs/en_dlg.js | 1 - .../media/js/tinymce/plugins/style/props.htm | 845 - .../media/js/tinymce/plugins/style/readme.txt | 19 - .../js/tinymce/plugins/tabfocus/editor_plugin.js | 1 - .../tinymce/plugins/tabfocus/editor_plugin_src.js | 122 - .../common/media/js/tinymce/plugins/table/cell.htm | 180 - .../media/js/tinymce/plugins/table/css/cell.css | 17 - .../media/js/tinymce/plugins/table/css/row.css | 25 - .../media/js/tinymce/plugins/table/css/table.css | 13 - .../js/tinymce/plugins/table/editor_plugin.js | 1 - .../js/tinymce/plugins/table/editor_plugin_src.js | 1449 -- .../media/js/tinymce/plugins/table/js/cell.js | 319 - .../js/tinymce/plugins/table/js/merge_cells.js | 27 - .../media/js/tinymce/plugins/table/js/row.js | 237 - .../media/js/tinymce/plugins/table/js/table.js | 501 - .../media/js/tinymce/plugins/table/langs/en_dlg.js | 1 - .../media/js/tinymce/plugins/table/merge_cells.htm | 32 - .../common/media/js/tinymce/plugins/table/row.htm | 158 - .../media/js/tinymce/plugins/table/table.htm | 188 - .../media/js/tinymce/plugins/template/blank.htm | 12 - .../js/tinymce/plugins/template/css/template.css | 23 - .../js/tinymce/plugins/template/editor_plugin.js | 1 - .../tinymce/plugins/template/editor_plugin_src.js | 159 - .../js/tinymce/plugins/template/js/template.js | 106 - .../js/tinymce/plugins/template/langs/en_dlg.js | 1 - .../media/js/tinymce/plugins/template/template.htm | 31 - .../plugins/visualblocks/css/visualblocks.css | 21 - .../tinymce/plugins/visualblocks/editor_plugin.js | 1 - .../plugins/visualblocks/editor_plugin_src.js | 63 - .../tinymce/plugins/visualchars/editor_plugin.js | 1 - .../plugins/visualchars/editor_plugin_src.js | 83 - .../js/tinymce/plugins/wordcount/editor_plugin.js | 1 - .../tinymce/plugins/wordcount/editor_plugin_src.js | 122 - .../media/js/tinymce/plugins/xhtmlxtras/abbr.htm | 142 - .../js/tinymce/plugins/xhtmlxtras/acronym.htm | 142 - .../js/tinymce/plugins/xhtmlxtras/attributes.htm | 149 - .../media/js/tinymce/plugins/xhtmlxtras/cite.htm | 142 - .../tinymce/plugins/xhtmlxtras/css/attributes.css | 11 - .../js/tinymce/plugins/xhtmlxtras/css/popup.css | 9 - .../media/js/tinymce/plugins/xhtmlxtras/del.htm | 162 - .../js/tinymce/plugins/xhtmlxtras/editor_plugin.js | 1 - .../plugins/xhtmlxtras/editor_plugin_src.js | 132 - .../media/js/tinymce/plugins/xhtmlxtras/ins.htm | 162 - .../media/js/tinymce/plugins/xhtmlxtras/js/abbr.js | 28 - .../js/tinymce/plugins/xhtmlxtras/js/acronym.js | 28 - .../js/tinymce/plugins/xhtmlxtras/js/attributes.js | 111 - .../media/js/tinymce/plugins/xhtmlxtras/js/cite.js | 28 - .../media/js/tinymce/plugins/xhtmlxtras/js/del.js | 53 - .../plugins/xhtmlxtras/js/element_common.js | 229 - .../media/js/tinymce/plugins/xhtmlxtras/js/ins.js | 53 - .../js/tinymce/plugins/xhtmlxtras/langs/en_dlg.js | 1 - .../media/js/tinymce/themes/advanced/about.htm | 52 - .../media/js/tinymce/themes/advanced/anchor.htm | 26 - .../media/js/tinymce/themes/advanced/charmap.htm | 55 - .../js/tinymce/themes/advanced/color_picker.htm | 70 - .../js/tinymce/themes/advanced/editor_template.js | 1 - .../tinymce/themes/advanced/editor_template_src.js | 1487 -- .../media/js/tinymce/themes/advanced/image.htm | 80 - .../js/tinymce/themes/advanced/img/colorpicker.jpg | Bin 2584 -> 0 bytes .../media/js/tinymce/themes/advanced/img/flash.gif | Bin 239 -> 0 bytes .../media/js/tinymce/themes/advanced/img/icons.gif | Bin 11982 -> 0 bytes .../js/tinymce/themes/advanced/img/iframe.gif | Bin 600 -> 0 bytes .../js/tinymce/themes/advanced/img/pagebreak.gif | Bin 325 -> 0 bytes .../js/tinymce/themes/advanced/img/quicktime.gif | Bin 301 -> 0 bytes .../js/tinymce/themes/advanced/img/realmedia.gif | Bin 439 -> 0 bytes .../js/tinymce/themes/advanced/img/shockwave.gif | Bin 384 -> 0 bytes .../media/js/tinymce/themes/advanced/img/trans.gif | Bin 43 -> 0 bytes .../media/js/tinymce/themes/advanced/img/video.gif | Bin 597 -> 0 bytes .../tinymce/themes/advanced/img/windowsmedia.gif | Bin 415 -> 0 bytes .../media/js/tinymce/themes/advanced/js/about.js | 73 - .../media/js/tinymce/themes/advanced/js/anchor.js | 56 - .../media/js/tinymce/themes/advanced/js/charmap.js | 363 - .../js/tinymce/themes/advanced/js/color_picker.js | 345 - .../media/js/tinymce/themes/advanced/js/image.js | 253 - .../media/js/tinymce/themes/advanced/js/link.js | 159 - .../js/tinymce/themes/advanced/js/source_editor.js | 78 - .../media/js/tinymce/themes/advanced/langs/en.js | 1 - .../js/tinymce/themes/advanced/langs/en_dlg.js | 1 - .../media/js/tinymce/themes/advanced/link.htm | 57 - .../media/js/tinymce/themes/advanced/shortcuts.htm | 47 - .../themes/advanced/skins/default/content.css | 50 - .../themes/advanced/skins/default/dialog.css | 118 - .../themes/advanced/skins/default/img/buttons.png | Bin 3133 -> 0 bytes .../themes/advanced/skins/default/img/items.gif | Bin 64 -> 0 bytes .../advanced/skins/default/img/menu_arrow.gif | Bin 68 -> 0 bytes .../advanced/skins/default/img/menu_check.gif | Bin 70 -> 0 bytes .../themes/advanced/skins/default/img/progress.gif | Bin 1787 -> 0 bytes .../themes/advanced/skins/default/img/tabs.gif | Bin 1322 -> 0 bytes .../tinymce/themes/advanced/skins/default/ui.css | 219 - .../themes/advanced/skins/highcontrast/content.css | 24 - .../themes/advanced/skins/highcontrast/dialog.css | 106 - .../themes/advanced/skins/highcontrast/ui.css | 106 - .../tinymce/themes/advanced/skins/o2k7/content.css | 48 - .../tinymce/themes/advanced/skins/o2k7/dialog.css | 118 - .../themes/advanced/skins/o2k7/img/button_bg.png | Bin 2766 -> 0 bytes .../advanced/skins/o2k7/img/button_bg_black.png | Bin 651 -> 0 bytes .../advanced/skins/o2k7/img/button_bg_silver.png | Bin 2084 -> 0 bytes .../js/tinymce/themes/advanced/skins/o2k7/ui.css | 222 - .../themes/advanced/skins/o2k7/ui_black.css | 8 - .../themes/advanced/skins/o2k7/ui_silver.css | 5 - .../js/tinymce/themes/advanced/source_editor.htm | 25 - .../js/tinymce/themes/simple/editor_template.js | 1 - .../tinymce/themes/simple/editor_template_src.js | 84 - .../media/js/tinymce/themes/simple/img/icons.gif | Bin 806 -> 0 bytes .../media/js/tinymce/themes/simple/langs/en.js | 1 - .../themes/simple/skins/default/content.css | 25 - .../js/tinymce/themes/simple/skins/default/ui.css | 32 - .../tinymce/themes/simple/skins/o2k7/content.css | 17 - .../themes/simple/skins/o2k7/img/button_bg.png | Bin 5102 -> 0 bytes .../js/tinymce/themes/simple/skins/o2k7/ui.css | 35 - askbot/skins/common/media/js/tinymce/tiny_mce.js | 1 - .../common/media/js/tinymce/tiny_mce_popup.js | 5 - .../skins/common/media/js/tinymce/tiny_mce_src.js | 18576 ------------------- .../media/js/tinymce/utils/editable_selects.js | 70 - .../common/media/js/tinymce/utils/form_utils.js | 210 - .../skins/common/media/js/tinymce/utils/mctabs.js | 162 - .../common/media/js/tinymce/utils/validate.js | 252 - askbot/skins/common/media/js/user.js | 1014 - askbot/skins/common/media/js/utils.js | 2917 --- .../js/wmd/images/editor-toolbar-background.png | Bin 282 -> 0 bytes .../common/media/js/wmd/images/wmd-buttons.png | Bin 11480 -> 0 bytes askbot/skins/common/media/js/wmd/showdown-min.js | 1 - askbot/skins/common/media/js/wmd/showdown.js | 1332 -- askbot/skins/common/media/js/wmd/wmd-min.js | 1 - askbot/skins/common/media/js/wmd/wmd-test.html | 158 - askbot/skins/common/media/js/wmd/wmd.css | 130 - askbot/skins/common/media/js/wmd/wmd.js | 2510 --- askbot/skins/common/media/style/auth.css | 48 - .../common/media/style/jquery.autocomplete.css | 37 - askbot/skins/common/media/style/lib_style.less | 38 - askbot/skins/common/media/style/openid.css | 45 - askbot/skins/common/media/style/prettify.css | 27 - askbot/skins/common/media/style/style.css | 2616 --- askbot/skins/default/media/images/flags/ad.gif | Bin 0 -> 371 bytes askbot/skins/default/media/images/flags/ae.gif | Bin 0 -> 361 bytes askbot/skins/default/media/images/flags/af.gif | Bin 0 -> 369 bytes askbot/skins/default/media/images/flags/ag.gif | Bin 0 -> 361 bytes askbot/skins/default/media/images/flags/ai.gif | Bin 0 -> 369 bytes askbot/skins/default/media/images/flags/al.gif | Bin 0 -> 370 bytes askbot/skins/default/media/images/flags/am.gif | Bin 0 -> 363 bytes askbot/skins/default/media/images/flags/an.gif | Bin 0 -> 368 bytes askbot/skins/default/media/images/flags/ao.gif | Bin 0 -> 244 bytes askbot/skins/default/media/images/flags/ar.gif | Bin 0 -> 366 bytes askbot/skins/default/media/images/flags/as.gif | Bin 0 -> 365 bytes askbot/skins/default/media/images/flags/at.gif | Bin 0 -> 361 bytes askbot/skins/default/media/images/flags/au.gif | Bin 0 -> 378 bytes askbot/skins/default/media/images/flags/aw.gif | Bin 0 -> 365 bytes askbot/skins/default/media/images/flags/ax.gif | Bin 0 -> 376 bytes askbot/skins/default/media/images/flags/az.gif | Bin 0 -> 370 bytes askbot/skins/default/media/images/flags/ba.gif | Bin 0 -> 363 bytes askbot/skins/default/media/images/flags/bb.gif | Bin 0 -> 368 bytes askbot/skins/default/media/images/flags/bd.gif | Bin 0 -> 361 bytes askbot/skins/default/media/images/flags/be.gif | Bin 0 -> 359 bytes askbot/skins/default/media/images/flags/bf.gif | Bin 0 -> 358 bytes askbot/skins/default/media/images/flags/bg.gif | Bin 0 -> 360 bytes askbot/skins/default/media/images/flags/bh.gif | Bin 0 -> 367 bytes askbot/skins/default/media/images/flags/bi.gif | Bin 0 -> 374 bytes askbot/skins/default/media/images/flags/bj.gif | Bin 0 -> 368 bytes askbot/skins/default/media/images/flags/bm.gif | Bin 0 -> 367 bytes askbot/skins/default/media/images/flags/bn.gif | Bin 0 -> 373 bytes askbot/skins/default/media/images/flags/bo.gif | Bin 0 -> 359 bytes askbot/skins/default/media/images/flags/br.gif | Bin 0 -> 367 bytes askbot/skins/default/media/images/flags/bs.gif | Bin 0 -> 351 bytes askbot/skins/default/media/images/flags/bt.gif | Bin 0 -> 377 bytes askbot/skins/default/media/images/flags/bv.gif | Bin 0 -> 376 bytes askbot/skins/default/media/images/flags/bw.gif | Bin 0 -> 364 bytes askbot/skins/default/media/images/flags/by.gif | Bin 0 -> 361 bytes askbot/skins/default/media/images/flags/bz.gif | Bin 0 -> 368 bytes askbot/skins/default/media/images/flags/ca.gif | Bin 0 -> 376 bytes .../skins/default/media/images/flags/catalonia.gif | Bin 0 -> 238 bytes askbot/skins/default/media/images/flags/cc.gif | Bin 0 -> 371 bytes askbot/skins/default/media/images/flags/cd.gif | Bin 0 -> 243 bytes askbot/skins/default/media/images/flags/cf.gif | Bin 0 -> 364 bytes askbot/skins/default/media/images/flags/cg.gif | Bin 0 -> 359 bytes askbot/skins/default/media/images/flags/ch.gif | Bin 0 -> 332 bytes askbot/skins/default/media/images/flags/ci.gif | Bin 0 -> 368 bytes askbot/skins/default/media/images/flags/ck.gif | Bin 0 -> 362 bytes askbot/skins/default/media/images/flags/cl.gif | Bin 0 -> 364 bytes askbot/skins/default/media/images/flags/cm.gif | Bin 0 -> 369 bytes askbot/skins/default/media/images/flags/cn.gif | Bin 0 -> 366 bytes askbot/skins/default/media/images/flags/co.gif | Bin 0 -> 353 bytes askbot/skins/default/media/images/flags/cr.gif | Bin 0 -> 359 bytes askbot/skins/default/media/images/flags/cs.gif | Bin 0 -> 364 bytes askbot/skins/default/media/images/flags/cu.gif | Bin 0 -> 367 bytes askbot/skins/default/media/images/flags/cv.gif | Bin 0 -> 367 bytes askbot/skins/default/media/images/flags/cx.gif | Bin 0 -> 363 bytes askbot/skins/default/media/images/flags/cy.gif | Bin 0 -> 365 bytes askbot/skins/default/media/images/flags/cz.gif | Bin 0 -> 362 bytes askbot/skins/default/media/images/flags/de.gif | Bin 0 -> 362 bytes askbot/skins/default/media/images/flags/dj.gif | Bin 0 -> 369 bytes askbot/skins/default/media/images/flags/dk.gif | Bin 0 -> 374 bytes askbot/skins/default/media/images/flags/dm.gif | Bin 0 -> 368 bytes askbot/skins/default/media/images/flags/do.gif | Bin 0 -> 362 bytes askbot/skins/default/media/images/flags/dz.gif | Bin 0 -> 370 bytes askbot/skins/default/media/images/flags/ec.gif | Bin 0 -> 362 bytes askbot/skins/default/media/images/flags/ee.gif | Bin 0 -> 364 bytes askbot/skins/default/media/images/flags/eg.gif | Bin 0 -> 363 bytes askbot/skins/default/media/images/flags/eh.gif | Bin 0 -> 359 bytes .../skins/default/media/images/flags/england.gif | Bin 0 -> 367 bytes askbot/skins/default/media/images/flags/er.gif | Bin 0 -> 361 bytes askbot/skins/default/media/images/flags/es.gif | Bin 0 -> 360 bytes askbot/skins/default/media/images/flags/et.gif | Bin 0 -> 364 bytes .../default/media/images/flags/europeanunion.gif | Bin 0 -> 171 bytes askbot/skins/default/media/images/flags/fam.gif | Bin 0 -> 370 bytes askbot/skins/default/media/images/flags/fi.gif | Bin 0 -> 371 bytes askbot/skins/default/media/images/flags/fj.gif | Bin 0 -> 370 bytes askbot/skins/default/media/images/flags/fk.gif | Bin 0 -> 372 bytes askbot/skins/default/media/images/flags/fm.gif | Bin 0 -> 377 bytes askbot/skins/default/media/images/flags/fo.gif | Bin 0 -> 370 bytes askbot/skins/default/media/images/flags/fr.gif | Bin 0 -> 366 bytes askbot/skins/default/media/images/flags/ga.gif | Bin 0 -> 359 bytes askbot/skins/default/media/images/flags/gb.gif | Bin 0 -> 260 bytes askbot/skins/default/media/images/flags/gd.gif | Bin 0 -> 364 bytes askbot/skins/default/media/images/flags/ge.gif | Bin 0 -> 379 bytes askbot/skins/default/media/images/flags/gf.gif | Bin 0 -> 366 bytes askbot/skins/default/media/images/flags/gh.gif | Bin 0 -> 358 bytes askbot/skins/default/media/images/flags/gi.gif | Bin 0 -> 370 bytes askbot/skins/default/media/images/flags/gl.gif | Bin 0 -> 368 bytes askbot/skins/default/media/images/flags/gm.gif | Bin 0 -> 362 bytes askbot/skins/default/media/images/flags/gn.gif | Bin 0 -> 363 bytes askbot/skins/default/media/images/flags/gp.gif | Bin 0 -> 357 bytes askbot/skins/default/media/images/flags/gq.gif | Bin 0 -> 361 bytes askbot/skins/default/media/images/flags/gr.gif | Bin 0 -> 368 bytes askbot/skins/default/media/images/flags/gs.gif | Bin 0 -> 363 bytes askbot/skins/default/media/images/flags/gt.gif | Bin 0 -> 374 bytes askbot/skins/default/media/images/flags/gu.gif | Bin 0 -> 370 bytes askbot/skins/default/media/images/flags/gw.gif | Bin 0 -> 358 bytes askbot/skins/default/media/images/flags/gy.gif | Bin 0 -> 367 bytes askbot/skins/default/media/images/flags/hk.gif | Bin 0 -> 373 bytes askbot/skins/default/media/images/flags/hm.gif | Bin 0 -> 378 bytes askbot/skins/default/media/images/flags/hn.gif | Bin 0 -> 367 bytes askbot/skins/default/media/images/flags/hr.gif | Bin 0 -> 364 bytes askbot/skins/default/media/images/flags/ht.gif | Bin 0 -> 361 bytes askbot/skins/default/media/images/flags/hu.gif | Bin 0 -> 357 bytes askbot/skins/default/media/images/flags/id.gif | Bin 0 -> 362 bytes askbot/skins/default/media/images/flags/ie.gif | Bin 0 -> 371 bytes askbot/skins/default/media/images/flags/il.gif | Bin 0 -> 366 bytes askbot/skins/default/media/images/flags/in.gif | Bin 0 -> 363 bytes askbot/skins/default/media/images/flags/io.gif | Bin 0 -> 373 bytes askbot/skins/default/media/images/flags/iq.gif | Bin 0 -> 361 bytes askbot/skins/default/media/images/flags/ir.gif | Bin 0 -> 366 bytes askbot/skins/default/media/images/flags/is.gif | Bin 0 -> 373 bytes askbot/skins/default/media/images/flags/it.gif | Bin 0 -> 366 bytes askbot/skins/default/media/images/flags/jm.gif | Bin 0 -> 365 bytes askbot/skins/default/media/images/flags/jo.gif | Bin 0 -> 360 bytes askbot/skins/default/media/images/flags/jp.gif | Bin 0 -> 366 bytes askbot/skins/default/media/images/flags/ke.gif | Bin 0 -> 360 bytes askbot/skins/default/media/images/flags/kg.gif | Bin 0 -> 373 bytes askbot/skins/default/media/images/flags/kh.gif | Bin 0 -> 367 bytes askbot/skins/default/media/images/flags/ki.gif | Bin 0 -> 371 bytes askbot/skins/default/media/images/flags/km.gif | Bin 0 -> 358 bytes askbot/skins/default/media/images/flags/kn.gif | Bin 0 -> 370 bytes askbot/skins/default/media/images/flags/kp.gif | Bin 0 -> 366 bytes askbot/skins/default/media/images/flags/kr.gif | Bin 0 -> 385 bytes askbot/skins/default/media/images/flags/kw.gif | Bin 0 -> 362 bytes askbot/skins/default/media/images/flags/ky.gif | Bin 0 -> 373 bytes askbot/skins/default/media/images/flags/kz.gif | Bin 0 -> 374 bytes askbot/skins/default/media/images/flags/la.gif | Bin 0 -> 366 bytes askbot/skins/default/media/images/flags/lb.gif | Bin 0 -> 366 bytes askbot/skins/default/media/images/flags/lc.gif | Bin 0 -> 259 bytes askbot/skins/default/media/images/flags/li.gif | Bin 0 -> 359 bytes askbot/skins/default/media/images/flags/lk.gif | Bin 0 -> 377 bytes askbot/skins/default/media/images/flags/lr.gif | Bin 0 -> 360 bytes askbot/skins/default/media/images/flags/ls.gif | Bin 0 -> 369 bytes askbot/skins/default/media/images/flags/lt.gif | Bin 0 -> 362 bytes askbot/skins/default/media/images/flags/lu.gif | Bin 0 -> 368 bytes askbot/skins/default/media/images/flags/lv.gif | Bin 0 -> 363 bytes askbot/skins/default/media/images/flags/ly.gif | Bin 0 -> 362 bytes askbot/skins/default/media/images/flags/ma.gif | Bin 0 -> 367 bytes askbot/skins/default/media/images/flags/mc.gif | Bin 0 -> 359 bytes askbot/skins/default/media/images/flags/md.gif | Bin 0 -> 367 bytes askbot/skins/default/media/images/flags/me.gif | Bin 0 -> 238 bytes askbot/skins/default/media/images/flags/mg.gif | Bin 0 -> 372 bytes askbot/skins/default/media/images/flags/mh.gif | Bin 0 -> 370 bytes askbot/skins/default/media/images/flags/mk.gif | Bin 0 -> 382 bytes askbot/skins/default/media/images/flags/ml.gif | Bin 0 -> 363 bytes askbot/skins/default/media/images/flags/mm.gif | Bin 0 -> 365 bytes askbot/skins/default/media/images/flags/mn.gif | Bin 0 -> 368 bytes askbot/skins/default/media/images/flags/mo.gif | Bin 0 -> 378 bytes askbot/skins/default/media/images/flags/mp.gif | Bin 0 -> 368 bytes askbot/skins/default/media/images/flags/mq.gif | Bin 0 -> 379 bytes askbot/skins/default/media/images/flags/mr.gif | Bin 0 -> 377 bytes askbot/skins/default/media/images/flags/ms.gif | Bin 0 -> 371 bytes askbot/skins/default/media/images/flags/mt.gif | Bin 0 -> 369 bytes askbot/skins/default/media/images/flags/mu.gif | Bin 0 -> 358 bytes askbot/skins/default/media/images/flags/mv.gif | Bin 0 -> 372 bytes askbot/skins/default/media/images/flags/mw.gif | Bin 0 -> 364 bytes askbot/skins/default/media/images/flags/mx.gif | Bin 0 -> 366 bytes askbot/skins/default/media/images/flags/my.gif | Bin 0 -> 375 bytes askbot/skins/default/media/images/flags/mz.gif | Bin 0 -> 366 bytes askbot/skins/default/media/images/flags/na.gif | Bin 0 -> 371 bytes askbot/skins/default/media/images/flags/nc.gif | Bin 0 -> 364 bytes askbot/skins/default/media/images/flags/ne.gif | Bin 0 -> 366 bytes askbot/skins/default/media/images/flags/nf.gif | Bin 0 -> 375 bytes askbot/skins/default/media/images/flags/ng.gif | Bin 0 -> 371 bytes askbot/skins/default/media/images/flags/ni.gif | Bin 0 -> 366 bytes askbot/skins/default/media/images/flags/nl.gif | Bin 0 -> 360 bytes askbot/skins/default/media/images/flags/no.gif | Bin 0 -> 376 bytes askbot/skins/default/media/images/flags/np.gif | Bin 0 -> 302 bytes askbot/skins/default/media/images/flags/nr.gif | Bin 0 -> 364 bytes askbot/skins/default/media/images/flags/nu.gif | Bin 0 -> 369 bytes askbot/skins/default/media/images/flags/nz.gif | Bin 0 -> 369 bytes askbot/skins/default/media/images/flags/om.gif | Bin 0 -> 364 bytes askbot/skins/default/media/images/flags/pa.gif | Bin 0 -> 367 bytes askbot/skins/default/media/images/flags/pe.gif | Bin 0 -> 361 bytes askbot/skins/default/media/images/flags/pf.gif | Bin 0 -> 366 bytes askbot/skins/default/media/images/flags/pg.gif | Bin 0 -> 360 bytes askbot/skins/default/media/images/flags/ph.gif | Bin 0 -> 361 bytes askbot/skins/default/media/images/flags/pk.gif | Bin 0 -> 377 bytes askbot/skins/default/media/images/flags/pl.gif | Bin 0 -> 360 bytes askbot/skins/default/media/images/flags/pm.gif | Bin 0 -> 374 bytes askbot/skins/default/media/images/flags/pn.gif | Bin 0 -> 367 bytes askbot/skins/default/media/images/flags/pr.gif | Bin 0 -> 369 bytes askbot/skins/default/media/images/flags/ps.gif | Bin 0 -> 358 bytes askbot/skins/default/media/images/flags/pt.gif | Bin 0 -> 369 bytes askbot/skins/default/media/images/flags/pw.gif | Bin 0 -> 374 bytes askbot/skins/default/media/images/flags/py.gif | Bin 0 -> 363 bytes askbot/skins/default/media/images/flags/qa.gif | Bin 0 -> 364 bytes askbot/skins/default/media/images/flags/re.gif | Bin 0 -> 366 bytes askbot/skins/default/media/images/flags/ro.gif | Bin 0 -> 363 bytes askbot/skins/default/media/images/flags/rs.gif | Bin 0 -> 238 bytes askbot/skins/default/media/images/flags/ru.gif | Bin 0 -> 361 bytes askbot/skins/default/media/images/flags/rw.gif | Bin 0 -> 361 bytes askbot/skins/default/media/images/flags/sa.gif | Bin 0 -> 370 bytes askbot/skins/default/media/images/flags/sb.gif | Bin 0 -> 366 bytes askbot/skins/default/media/images/flags/sc.gif | Bin 0 -> 357 bytes .../skins/default/media/images/flags/scotland.gif | Bin 0 -> 378 bytes askbot/skins/default/media/images/flags/sd.gif | Bin 0 -> 355 bytes askbot/skins/default/media/images/flags/se.gif | Bin 0 -> 367 bytes askbot/skins/default/media/images/flags/sg.gif | Bin 0 -> 364 bytes askbot/skins/default/media/images/flags/sh.gif | Bin 0 -> 371 bytes askbot/skins/default/media/images/flags/si.gif | Bin 0 -> 362 bytes askbot/skins/default/media/images/flags/sj.gif | Bin 0 -> 376 bytes askbot/skins/default/media/images/flags/sk.gif | Bin 0 -> 361 bytes askbot/skins/default/media/images/flags/sl.gif | Bin 0 -> 363 bytes askbot/skins/default/media/images/flags/sm.gif | Bin 0 -> 367 bytes askbot/skins/default/media/images/flags/sn.gif | Bin 0 -> 364 bytes askbot/skins/default/media/images/flags/so.gif | Bin 0 -> 376 bytes askbot/skins/default/media/images/flags/sr.gif | Bin 0 -> 361 bytes askbot/skins/default/media/images/flags/st.gif | Bin 0 -> 367 bytes askbot/skins/default/media/images/flags/sv.gif | Bin 0 -> 363 bytes askbot/skins/default/media/images/flags/sy.gif | Bin 0 -> 361 bytes askbot/skins/default/media/images/flags/sz.gif | Bin 0 -> 363 bytes askbot/skins/default/media/images/flags/tc.gif | Bin 0 -> 366 bytes askbot/skins/default/media/images/flags/td.gif | Bin 0 -> 368 bytes askbot/skins/default/media/images/flags/tf.gif | Bin 0 -> 365 bytes askbot/skins/default/media/images/flags/tg.gif | Bin 0 -> 366 bytes askbot/skins/default/media/images/flags/th.gif | Bin 0 -> 360 bytes askbot/skins/default/media/images/flags/tj.gif | Bin 0 -> 361 bytes askbot/skins/default/media/images/flags/tk.gif | Bin 0 -> 372 bytes askbot/skins/default/media/images/flags/tl.gif | Bin 0 -> 360 bytes askbot/skins/default/media/images/flags/tm.gif | Bin 0 -> 367 bytes askbot/skins/default/media/images/flags/tn.gif | Bin 0 -> 375 bytes askbot/skins/default/media/images/flags/to.gif | Bin 0 -> 367 bytes askbot/skins/default/media/images/flags/tr.gif | Bin 0 -> 371 bytes askbot/skins/default/media/images/flags/tt.gif | Bin 0 -> 377 bytes askbot/skins/default/media/images/flags/tv.gif | Bin 0 -> 361 bytes askbot/skins/default/media/images/flags/tw.gif | Bin 0 -> 367 bytes askbot/skins/default/media/images/flags/tz.gif | Bin 0 -> 366 bytes askbot/skins/default/media/images/flags/ua.gif | Bin 0 -> 360 bytes askbot/skins/default/media/images/flags/ug.gif | Bin 0 -> 359 bytes askbot/skins/default/media/images/flags/um.gif | Bin 0 -> 371 bytes askbot/skins/default/media/images/flags/us.gif | Bin 0 -> 367 bytes askbot/skins/default/media/images/flags/uy.gif | Bin 0 -> 373 bytes askbot/skins/default/media/images/flags/uz.gif | Bin 0 -> 364 bytes askbot/skins/default/media/images/flags/va.gif | Bin 0 -> 369 bytes askbot/skins/default/media/images/flags/vc.gif | Bin 0 -> 370 bytes askbot/skins/default/media/images/flags/ve.gif | Bin 0 -> 364 bytes askbot/skins/default/media/images/flags/vg.gif | Bin 0 -> 368 bytes askbot/skins/default/media/images/flags/vi.gif | Bin 0 -> 376 bytes askbot/skins/default/media/images/flags/vn.gif | Bin 0 -> 370 bytes askbot/skins/default/media/images/flags/vu.gif | Bin 0 -> 365 bytes askbot/skins/default/media/images/flags/wales.gif | Bin 0 -> 372 bytes askbot/skins/default/media/images/flags/wf.gif | Bin 0 -> 377 bytes askbot/skins/default/media/images/flags/ws.gif | Bin 0 -> 365 bytes askbot/skins/default/media/images/flags/ye.gif | Bin 0 -> 356 bytes askbot/skins/default/media/images/flags/yt.gif | Bin 0 -> 382 bytes askbot/skins/default/media/images/flags/za.gif | Bin 0 -> 363 bytes askbot/skins/default/media/images/flags/zm.gif | Bin 0 -> 358 bytes askbot/skins/default/media/images/flags/zw.gif | Bin 0 -> 365 bytes askbot/skins/default/media/images/openid/aol.gif | Bin 0 -> 2205 bytes .../skins/default/media/images/openid/blogger.ico | Bin 0 -> 3638 bytes .../skins/default/media/images/openid/claimid.ico | Bin 0 -> 3638 bytes .../skins/default/media/images/openid/facebook.gif | Bin 0 -> 2075 bytes .../skins/default/media/images/openid/flickr.ico | Bin 0 -> 1150 bytes .../skins/default/media/images/openid/google.gif | Bin 0 -> 1596 bytes .../default/media/images/openid/livejournal.ico | Bin 0 -> 5222 bytes .../skins/default/media/images/openid/myopenid.ico | Bin 0 -> 2862 bytes .../media/images/openid/openid-inputicon.gif | Bin 0 -> 237 bytes .../skins/default/media/images/openid/openid.gif | Bin 0 -> 740 bytes .../default/media/images/openid/technorati.ico | Bin 0 -> 2294 bytes .../skins/default/media/images/openid/twitter.png | Bin 0 -> 3130 bytes .../skins/default/media/images/openid/verisign.ico | Bin 0 -> 4710 bytes .../skins/default/media/images/openid/vidoop.ico | Bin 0 -> 1406 bytes .../default/media/images/openid/wordpress.ico | Bin 0 -> 1150 bytes askbot/skins/default/media/images/openid/yahoo.gif | Bin 0 -> 1510 bytes .../default/media/images/sprites_source/other.svg | 732 + .../default/media/jquery-openid/images/aol.gif | Bin 0 -> 1872 bytes .../media/jquery-openid/images/blogger-1.png | Bin 0 -> 432 bytes .../default/media/jquery-openid/images/blogger.ico | Bin 0 -> 3638 bytes .../media/jquery-openid/images/claimid-0.png | Bin 0 -> 629 bytes .../default/media/jquery-openid/images/claimid.ico | Bin 0 -> 3638 bytes .../media/jquery-openid/images/facebook.gif | Bin 0 -> 1737 bytes .../default/media/jquery-openid/images/flickr.ico | Bin 0 -> 1150 bytes .../default/media/jquery-openid/images/flickr.png | Bin 0 -> 426 bytes .../default/media/jquery-openid/images/google.gif | Bin 0 -> 1528 bytes .../media/jquery-openid/images/identica.png | Bin 0 -> 6601 bytes .../media/jquery-openid/images/linkedin.gif | Bin 0 -> 1530 bytes .../media/jquery-openid/images/livejournal-1.png | Bin 0 -> 713 bytes .../media/jquery-openid/images/livejournal.ico | Bin 0 -> 5222 bytes .../media/jquery-openid/images/myopenid-2.png | Bin 0 -> 511 bytes .../media/jquery-openid/images/myopenid.ico | Bin 0 -> 2862 bytes .../jquery-openid/images/openid-inputicon.gif | Bin 0 -> 237 bytes .../default/media/jquery-openid/images/openid.gif | Bin 0 -> 1473 bytes .../media/jquery-openid/images/openidico.png | Bin 0 -> 654 bytes .../media/jquery-openid/images/openidico16.png | Bin 0 -> 554 bytes .../media/jquery-openid/images/technorati-1.png | Bin 0 -> 606 bytes .../media/jquery-openid/images/technorati.ico | Bin 0 -> 2294 bytes .../default/media/jquery-openid/images/twitter.gif | Bin 0 -> 1913 bytes .../media/jquery-openid/images/verisign-2.png | Bin 0 -> 859 bytes .../media/jquery-openid/images/verisign.ico | Bin 0 -> 4710 bytes .../default/media/jquery-openid/images/vidoop.ico | Bin 0 -> 1406 bytes .../default/media/jquery-openid/images/vidoop.png | Bin 0 -> 499 bytes .../media/jquery-openid/images/wordpress.ico | Bin 0 -> 1150 bytes .../media/jquery-openid/images/wordpress.png | Bin 0 -> 566 bytes .../default/media/jquery-openid/images/yahoo.gif | Bin 0 -> 1607 bytes .../default/media/jquery-openid/jquery.openid.js | 440 + .../skins/default/media/jquery-openid/openid.css | 39 + askbot/skins/default/media/js/autocompleter.js | 794 + askbot/skins/default/media/js/compress.bat | 5 + askbot/skins/default/media/js/editor.js | 81 + askbot/skins/default/media/js/excanvas.min.js | 1 + askbot/skins/default/media/js/flot-build.bat | 3 + askbot/skins/default/media/js/group_messaging.js | 186 + askbot/skins/default/media/js/jquery-1.4.3.js | 6883 +++++++ askbot/skins/default/media/js/jquery-1.7.2.min.js | 4 + .../default/media/js/jquery-fieldselection.js | 83 + .../default/media/js/jquery-fieldselection.min.js | 1 + .../default/media/js/jquery.ajaxfileupload.js | 186 + .../default/media/js/jquery.animate-colors.js | 105 + .../media/js/jquery.fancybox-1.3.4/ajax.txt | 6 + .../js/jquery.fancybox-1.3.4/example/10_b.jpg | Bin 0 -> 39922 bytes .../js/jquery.fancybox-1.3.4/example/10_s.jpg | Bin 0 -> 2725 bytes .../js/jquery.fancybox-1.3.4/example/11_b.jpg | Bin 0 -> 39422 bytes .../js/jquery.fancybox-1.3.4/example/11_s.jpg | Bin 0 -> 2548 bytes .../js/jquery.fancybox-1.3.4/example/12_b.jpg | Bin 0 -> 39950 bytes .../js/jquery.fancybox-1.3.4/example/12_s.jpg | Bin 0 -> 3109 bytes .../media/js/jquery.fancybox-1.3.4/example/1_b.jpg | Bin 0 -> 30700 bytes .../media/js/jquery.fancybox-1.3.4/example/1_s.jpg | Bin 0 -> 4258 bytes .../media/js/jquery.fancybox-1.3.4/example/2_b.jpg | Bin 0 -> 44175 bytes .../media/js/jquery.fancybox-1.3.4/example/2_s.jpg | Bin 0 -> 2929 bytes .../media/js/jquery.fancybox-1.3.4/example/3_b.jpg | Bin 0 -> 36756 bytes .../media/js/jquery.fancybox-1.3.4/example/3_s.jpg | Bin 0 -> 3720 bytes .../media/js/jquery.fancybox-1.3.4/example/4_b.jpg | Bin 0 -> 44606 bytes .../media/js/jquery.fancybox-1.3.4/example/4_s.jpg | Bin 0 -> 3840 bytes .../media/js/jquery.fancybox-1.3.4/example/5_b.jpg | Bin 0 -> 44793 bytes .../media/js/jquery.fancybox-1.3.4/example/5_s.jpg | Bin 0 -> 4208 bytes .../media/js/jquery.fancybox-1.3.4/example/6_b.jpg | Bin 0 -> 52956 bytes .../media/js/jquery.fancybox-1.3.4/example/6_s.jpg | Bin 0 -> 3552 bytes .../media/js/jquery.fancybox-1.3.4/example/7_b.jpg | Bin 0 -> 47087 bytes .../media/js/jquery.fancybox-1.3.4/example/7_s.jpg | Bin 0 -> 3644 bytes .../media/js/jquery.fancybox-1.3.4/example/8_b.jpg | Bin 0 -> 40470 bytes .../media/js/jquery.fancybox-1.3.4/example/8_s.jpg | Bin 0 -> 3020 bytes .../media/js/jquery.fancybox-1.3.4/example/9_b.jpg | Bin 0 -> 51690 bytes .../media/js/jquery.fancybox-1.3.4/example/9_s.jpg | Bin 0 -> 3226 bytes .../js/jquery.fancybox-1.3.4/fancybox/blank.gif | Bin 0 -> 43 bytes .../jquery.fancybox-1.3.4/fancybox/fancy_close.png | Bin 0 -> 1517 bytes .../fancybox/fancy_loading.png | Bin 0 -> 10195 bytes .../fancybox/fancy_nav_left.png | Bin 0 -> 1446 bytes .../fancybox/fancy_nav_right.png | Bin 0 -> 1454 bytes .../fancybox/fancy_shadow_e.png | Bin 0 -> 107 bytes .../fancybox/fancy_shadow_n.png | Bin 0 -> 106 bytes .../fancybox/fancy_shadow_ne.png | Bin 0 -> 347 bytes .../fancybox/fancy_shadow_nw.png | Bin 0 -> 324 bytes .../fancybox/fancy_shadow_s.png | Bin 0 -> 111 bytes .../fancybox/fancy_shadow_se.png | Bin 0 -> 352 bytes .../fancybox/fancy_shadow_sw.png | Bin 0 -> 340 bytes .../fancybox/fancy_shadow_w.png | Bin 0 -> 103 bytes .../fancybox/fancy_title_left.png | Bin 0 -> 503 bytes .../fancybox/fancy_title_main.png | Bin 0 -> 96 bytes .../fancybox/fancy_title_over.png | Bin 0 -> 70 bytes .../fancybox/fancy_title_right.png | Bin 0 -> 506 bytes .../jquery.fancybox-1.3.4/fancybox/fancybox-x.png | Bin 0 -> 203 bytes .../jquery.fancybox-1.3.4/fancybox/fancybox-y.png | Bin 0 -> 176 bytes .../js/jquery.fancybox-1.3.4/fancybox/fancybox.png | Bin 0 -> 15287 bytes .../fancybox/jquery.easing-1.3.pack.js | 72 + .../fancybox/jquery.fancybox-1.3.4.css | 359 + .../fancybox/jquery.fancybox-1.3.4.js | 1156 ++ .../fancybox/jquery.fancybox-1.3.4.pack.js | 46 + .../fancybox/jquery.mousewheel-3.0.4.pack.js | 14 + .../media/js/jquery.fancybox-1.3.4/index.html | 165 + .../js/jquery.fancybox-1.3.4/jquery-1.4.3.min.js | 166 + .../media/js/jquery.fancybox-1.3.4/style.css | 65 + askbot/skins/default/media/js/jquery.flot.js | 2119 +++ askbot/skins/default/media/js/jquery.flot.min.js | 1 + askbot/skins/default/media/js/jquery.form.js | 654 + askbot/skins/default/media/js/jquery.history.js | 1 + askbot/skins/default/media/js/jquery.i18n.js | 133 + askbot/skins/default/media/js/jquery.openid.js | 176 + askbot/skins/default/media/js/jquery.validate.js | 1146 ++ .../skins/default/media/js/jquery.validate.min.js | 16 + .../skins/default/media/js/jquery.validate.pack.js | 15 + askbot/skins/default/media/js/less.min.js | 16 + askbot/skins/default/media/js/live_search.js | 405 + .../default/media/js/live_search_new_thread.js | 93 + askbot/skins/default/media/js/modernizr.custom.js | 4 + askbot/skins/default/media/js/output-words.html | 49 + askbot/skins/default/media/js/output-words.js | 97 + askbot/skins/default/media/js/post.js | 4081 ++++ askbot/skins/default/media/js/se_hilite.js | 1 + askbot/skins/default/media/js/se_hilite_src.js | 273 + askbot/skins/default/media/js/tag_moderation.js | 217 + askbot/skins/default/media/js/tag_selector.js | 402 + askbot/skins/default/media/js/tinymce/langs/en.js | 1 + askbot/skins/default/media/js/tinymce/license.txt | 504 + .../media/js/tinymce/plugins/advhr/css/advhr.css | 5 + .../js/tinymce/plugins/advhr/editor_plugin.js | 1 + .../js/tinymce/plugins/advhr/editor_plugin_src.js | 57 + .../media/js/tinymce/plugins/advhr/js/rule.js | 43 + .../media/js/tinymce/plugins/advhr/langs/en_dlg.js | 1 + .../media/js/tinymce/plugins/advhr/rule.htm | 58 + .../js/tinymce/plugins/advimage/css/advimage.css | 13 + .../js/tinymce/plugins/advimage/editor_plugin.js | 1 + .../tinymce/plugins/advimage/editor_plugin_src.js | 50 + .../media/js/tinymce/plugins/advimage/image.htm | 235 + .../js/tinymce/plugins/advimage/img/sample.gif | Bin 0 -> 1624 bytes .../media/js/tinymce/plugins/advimage/js/image.js | 462 + .../js/tinymce/plugins/advimage/langs/en_dlg.js | 1 + .../js/tinymce/plugins/advlink/css/advlink.css | 8 + .../js/tinymce/plugins/advlink/editor_plugin.js | 1 + .../tinymce/plugins/advlink/editor_plugin_src.js | 61 + .../media/js/tinymce/plugins/advlink/js/advlink.js | 539 + .../js/tinymce/plugins/advlink/langs/en_dlg.js | 1 + .../media/js/tinymce/plugins/advlink/link.htm | 338 + .../js/tinymce/plugins/advlist/editor_plugin.js | 1 + .../tinymce/plugins/advlist/editor_plugin_src.js | 176 + .../plugins/askbot_attachment/editor_plugin.js | 111 + .../tinymce/plugins/askbot_attachment/langs/en.js | 3 + .../plugins/askbot_attachment/langs/en_dlg.js | 3 + .../plugins/askbot_imageuploader/editor_plugin.js | 111 + .../plugins/askbot_imageuploader/langs/en.js | 3 + .../plugins/askbot_imageuploader/langs/en_dlg.js | 3 + .../js/tinymce/plugins/autolink/editor_plugin.js | 1 + .../tinymce/plugins/autolink/editor_plugin_src.js | 181 + .../js/tinymce/plugins/autoresize/editor_plugin.js | 1 + .../plugins/autoresize/editor_plugin_src.js | 119 + .../js/tinymce/plugins/autosave/editor_plugin.js | 1 + .../tinymce/plugins/autosave/editor_plugin_src.js | 433 + .../media/js/tinymce/plugins/autosave/langs/en.js | 4 + .../js/tinymce/plugins/bbcode/editor_plugin.js | 1 + .../js/tinymce/plugins/bbcode/editor_plugin_src.js | 120 + .../tinymce/plugins/contextmenu/editor_plugin.js | 1 + .../plugins/contextmenu/editor_plugin_src.js | 161 + .../plugins/directionality/editor_plugin.js | 1 + .../plugins/directionality/editor_plugin_src.js | 82 + .../js/tinymce/plugins/emotions/editor_plugin.js | 1 + .../tinymce/plugins/emotions/editor_plugin_src.js | 43 + .../media/js/tinymce/plugins/emotions/emotions.htm | 42 + .../tinymce/plugins/emotions/img/smiley-cool.gif | Bin 0 -> 354 bytes .../js/tinymce/plugins/emotions/img/smiley-cry.gif | Bin 0 -> 329 bytes .../plugins/emotions/img/smiley-embarassed.gif | Bin 0 -> 331 bytes .../plugins/emotions/img/smiley-foot-in-mouth.gif | Bin 0 -> 342 bytes .../tinymce/plugins/emotions/img/smiley-frown.gif | Bin 0 -> 340 bytes .../plugins/emotions/img/smiley-innocent.gif | Bin 0 -> 336 bytes .../tinymce/plugins/emotions/img/smiley-kiss.gif | Bin 0 -> 338 bytes .../plugins/emotions/img/smiley-laughing.gif | Bin 0 -> 343 bytes .../plugins/emotions/img/smiley-money-mouth.gif | Bin 0 -> 321 bytes .../tinymce/plugins/emotions/img/smiley-sealed.gif | Bin 0 -> 323 bytes .../tinymce/plugins/emotions/img/smiley-smile.gif | Bin 0 -> 344 bytes .../plugins/emotions/img/smiley-surprised.gif | Bin 0 -> 338 bytes .../plugins/emotions/img/smiley-tongue-out.gif | Bin 0 -> 328 bytes .../plugins/emotions/img/smiley-undecided.gif | Bin 0 -> 337 bytes .../tinymce/plugins/emotions/img/smiley-wink.gif | Bin 0 -> 350 bytes .../tinymce/plugins/emotions/img/smiley-yell.gif | Bin 0 -> 336 bytes .../js/tinymce/plugins/emotions/js/emotions.js | 43 + .../js/tinymce/plugins/emotions/langs/en_dlg.js | 1 + .../media/js/tinymce/plugins/example/dialog.htm | 22 + .../js/tinymce/plugins/example/editor_plugin.js | 1 + .../tinymce/plugins/example/editor_plugin_src.js | 84 + .../js/tinymce/plugins/example/img/example.gif | Bin 0 -> 87 bytes .../media/js/tinymce/plugins/example/js/dialog.js | 19 + .../media/js/tinymce/plugins/example/langs/en.js | 3 + .../js/tinymce/plugins/example/langs/en_dlg.js | 3 + .../plugins/example_dependency/editor_plugin.js | 1 + .../example_dependency/editor_plugin_src.js | 50 + .../js/tinymce/plugins/fullpage/css/fullpage.css | 143 + .../js/tinymce/plugins/fullpage/editor_plugin.js | 1 + .../tinymce/plugins/fullpage/editor_plugin_src.js | 405 + .../media/js/tinymce/plugins/fullpage/fullpage.htm | 259 + .../js/tinymce/plugins/fullpage/js/fullpage.js | 232 + .../js/tinymce/plugins/fullpage/langs/en_dlg.js | 1 + .../js/tinymce/plugins/fullscreen/editor_plugin.js | 1 + .../plugins/fullscreen/editor_plugin_src.js | 159 + .../js/tinymce/plugins/fullscreen/fullscreen.htm | 110 + .../js/tinymce/plugins/iespell/editor_plugin.js | 1 + .../tinymce/plugins/iespell/editor_plugin_src.js | 54 + .../tinymce/plugins/inlinepopups/editor_plugin.js | 1 + .../plugins/inlinepopups/editor_plugin_src.js | 699 + .../inlinepopups/skins/clearlooks2/img/alert.gif | Bin 0 -> 810 bytes .../inlinepopups/skins/clearlooks2/img/button.gif | Bin 0 -> 272 bytes .../inlinepopups/skins/clearlooks2/img/buttons.gif | Bin 0 -> 1195 bytes .../inlinepopups/skins/clearlooks2/img/confirm.gif | Bin 0 -> 907 bytes .../inlinepopups/skins/clearlooks2/img/corners.gif | Bin 0 -> 909 bytes .../skins/clearlooks2/img/horizontal.gif | Bin 0 -> 769 bytes .../skins/clearlooks2/img/vertical.gif | Bin 0 -> 84 bytes .../inlinepopups/skins/clearlooks2/window.css | 90 + .../js/tinymce/plugins/inlinepopups/template.htm | 387 + .../plugins/insertdatetime/editor_plugin.js | 1 + .../plugins/insertdatetime/editor_plugin_src.js | 83 + .../js/tinymce/plugins/layer/editor_plugin.js | 1 + .../js/tinymce/plugins/layer/editor_plugin_src.js | 262 + .../tinymce/plugins/legacyoutput/editor_plugin.js | 1 + .../plugins/legacyoutput/editor_plugin_src.js | 139 + .../js/tinymce/plugins/lists/editor_plugin.js | 1 + .../js/tinymce/plugins/lists/editor_plugin_src.js | 952 + .../media/js/tinymce/plugins/media/css/media.css | 17 + .../js/tinymce/plugins/media/editor_plugin.js | 1 + .../js/tinymce/plugins/media/editor_plugin_src.js | 890 + .../media/js/tinymce/plugins/media/js/embed.js | 73 + .../media/js/tinymce/plugins/media/js/media.js | 470 + .../media/js/tinymce/plugins/media/langs/en_dlg.js | 1 + .../media/js/tinymce/plugins/media/media.htm | 922 + .../media/js/tinymce/plugins/media/moxieplayer.swf | Bin 0 -> 19980 bytes .../tinymce/plugins/nonbreaking/editor_plugin.js | 1 + .../plugins/nonbreaking/editor_plugin_src.js | 54 + .../tinymce/plugins/noneditable/editor_plugin.js | 1 + .../plugins/noneditable/editor_plugin_src.js | 540 + .../js/tinymce/plugins/pagebreak/editor_plugin.js | 1 + .../tinymce/plugins/pagebreak/editor_plugin_src.js | 74 + .../js/tinymce/plugins/paste/editor_plugin.js | 1 + .../js/tinymce/plugins/paste/editor_plugin_src.js | 871 + .../media/js/tinymce/plugins/paste/js/pastetext.js | 36 + .../media/js/tinymce/plugins/paste/js/pasteword.js | 51 + .../media/js/tinymce/plugins/paste/langs/en_dlg.js | 1 + .../media/js/tinymce/plugins/paste/pastetext.htm | 27 + .../media/js/tinymce/plugins/paste/pasteword.htm | 21 + .../js/tinymce/plugins/preview/editor_plugin.js | 1 + .../tinymce/plugins/preview/editor_plugin_src.js | 53 + .../media/js/tinymce/plugins/preview/example.html | 28 + .../js/tinymce/plugins/preview/jscripts/embed.js | 73 + .../media/js/tinymce/plugins/preview/preview.html | 17 + .../js/tinymce/plugins/print/editor_plugin.js | 1 + .../js/tinymce/plugins/print/editor_plugin_src.js | 34 + .../media/js/tinymce/plugins/save/editor_plugin.js | 1 + .../js/tinymce/plugins/save/editor_plugin_src.js | 101 + .../plugins/searchreplace/css/searchreplace.css | 6 + .../tinymce/plugins/searchreplace/editor_plugin.js | 1 + .../plugins/searchreplace/editor_plugin_src.js | 61 + .../plugins/searchreplace/js/searchreplace.js | 142 + .../tinymce/plugins/searchreplace/langs/en_dlg.js | 1 + .../plugins/searchreplace/searchreplace.htm | 100 + .../tinymce/plugins/spellchecker/css/content.css | 1 + .../tinymce/plugins/spellchecker/editor_plugin.js | 1 + .../plugins/spellchecker/editor_plugin_src.js | 436 + .../js/tinymce/plugins/spellchecker/img/wline.gif | Bin 0 -> 46 bytes .../media/js/tinymce/plugins/style/css/props.css | 14 + .../js/tinymce/plugins/style/editor_plugin.js | 1 + .../js/tinymce/plugins/style/editor_plugin_src.js | 71 + .../media/js/tinymce/plugins/style/js/props.js | 709 + .../media/js/tinymce/plugins/style/langs/en_dlg.js | 1 + .../media/js/tinymce/plugins/style/props.htm | 845 + .../media/js/tinymce/plugins/style/readme.txt | 19 + .../js/tinymce/plugins/tabfocus/editor_plugin.js | 1 + .../tinymce/plugins/tabfocus/editor_plugin_src.js | 122 + .../media/js/tinymce/plugins/table/cell.htm | 180 + .../media/js/tinymce/plugins/table/css/cell.css | 17 + .../media/js/tinymce/plugins/table/css/row.css | 25 + .../media/js/tinymce/plugins/table/css/table.css | 13 + .../js/tinymce/plugins/table/editor_plugin.js | 1 + .../js/tinymce/plugins/table/editor_plugin_src.js | 1449 ++ .../media/js/tinymce/plugins/table/js/cell.js | 319 + .../js/tinymce/plugins/table/js/merge_cells.js | 27 + .../media/js/tinymce/plugins/table/js/row.js | 237 + .../media/js/tinymce/plugins/table/js/table.js | 501 + .../media/js/tinymce/plugins/table/langs/en_dlg.js | 1 + .../media/js/tinymce/plugins/table/merge_cells.htm | 32 + .../default/media/js/tinymce/plugins/table/row.htm | 158 + .../media/js/tinymce/plugins/table/table.htm | 188 + .../media/js/tinymce/plugins/template/blank.htm | 12 + .../js/tinymce/plugins/template/css/template.css | 23 + .../js/tinymce/plugins/template/editor_plugin.js | 1 + .../tinymce/plugins/template/editor_plugin_src.js | 159 + .../js/tinymce/plugins/template/js/template.js | 106 + .../js/tinymce/plugins/template/langs/en_dlg.js | 1 + .../media/js/tinymce/plugins/template/template.htm | 31 + .../plugins/visualblocks/css/visualblocks.css | 21 + .../tinymce/plugins/visualblocks/editor_plugin.js | 1 + .../plugins/visualblocks/editor_plugin_src.js | 63 + .../tinymce/plugins/visualchars/editor_plugin.js | 1 + .../plugins/visualchars/editor_plugin_src.js | 83 + .../js/tinymce/plugins/wordcount/editor_plugin.js | 1 + .../tinymce/plugins/wordcount/editor_plugin_src.js | 122 + .../media/js/tinymce/plugins/xhtmlxtras/abbr.htm | 142 + .../js/tinymce/plugins/xhtmlxtras/acronym.htm | 142 + .../js/tinymce/plugins/xhtmlxtras/attributes.htm | 149 + .../media/js/tinymce/plugins/xhtmlxtras/cite.htm | 142 + .../tinymce/plugins/xhtmlxtras/css/attributes.css | 11 + .../js/tinymce/plugins/xhtmlxtras/css/popup.css | 9 + .../media/js/tinymce/plugins/xhtmlxtras/del.htm | 162 + .../js/tinymce/plugins/xhtmlxtras/editor_plugin.js | 1 + .../plugins/xhtmlxtras/editor_plugin_src.js | 132 + .../media/js/tinymce/plugins/xhtmlxtras/ins.htm | 162 + .../media/js/tinymce/plugins/xhtmlxtras/js/abbr.js | 28 + .../js/tinymce/plugins/xhtmlxtras/js/acronym.js | 28 + .../js/tinymce/plugins/xhtmlxtras/js/attributes.js | 111 + .../media/js/tinymce/plugins/xhtmlxtras/js/cite.js | 28 + .../media/js/tinymce/plugins/xhtmlxtras/js/del.js | 53 + .../plugins/xhtmlxtras/js/element_common.js | 229 + .../media/js/tinymce/plugins/xhtmlxtras/js/ins.js | 53 + .../js/tinymce/plugins/xhtmlxtras/langs/en_dlg.js | 1 + .../media/js/tinymce/themes/advanced/about.htm | 52 + .../media/js/tinymce/themes/advanced/anchor.htm | 26 + .../media/js/tinymce/themes/advanced/charmap.htm | 55 + .../js/tinymce/themes/advanced/color_picker.htm | 70 + .../js/tinymce/themes/advanced/editor_template.js | 1 + .../tinymce/themes/advanced/editor_template_src.js | 1487 ++ .../media/js/tinymce/themes/advanced/image.htm | 80 + .../js/tinymce/themes/advanced/img/colorpicker.jpg | Bin 0 -> 2584 bytes .../media/js/tinymce/themes/advanced/img/flash.gif | Bin 0 -> 239 bytes .../media/js/tinymce/themes/advanced/img/icons.gif | Bin 0 -> 11982 bytes .../js/tinymce/themes/advanced/img/iframe.gif | Bin 0 -> 600 bytes .../js/tinymce/themes/advanced/img/pagebreak.gif | Bin 0 -> 325 bytes .../js/tinymce/themes/advanced/img/quicktime.gif | Bin 0 -> 301 bytes .../js/tinymce/themes/advanced/img/realmedia.gif | Bin 0 -> 439 bytes .../js/tinymce/themes/advanced/img/shockwave.gif | Bin 0 -> 384 bytes .../media/js/tinymce/themes/advanced/img/trans.gif | Bin 0 -> 43 bytes .../media/js/tinymce/themes/advanced/img/video.gif | Bin 0 -> 597 bytes .../tinymce/themes/advanced/img/windowsmedia.gif | Bin 0 -> 415 bytes .../media/js/tinymce/themes/advanced/js/about.js | 73 + .../media/js/tinymce/themes/advanced/js/anchor.js | 56 + .../media/js/tinymce/themes/advanced/js/charmap.js | 363 + .../js/tinymce/themes/advanced/js/color_picker.js | 345 + .../media/js/tinymce/themes/advanced/js/image.js | 253 + .../media/js/tinymce/themes/advanced/js/link.js | 159 + .../js/tinymce/themes/advanced/js/source_editor.js | 78 + .../media/js/tinymce/themes/advanced/langs/en.js | 1 + .../js/tinymce/themes/advanced/langs/en_dlg.js | 1 + .../media/js/tinymce/themes/advanced/link.htm | 57 + .../media/js/tinymce/themes/advanced/shortcuts.htm | 47 + .../themes/advanced/skins/default/content.css | 50 + .../themes/advanced/skins/default/dialog.css | 118 + .../themes/advanced/skins/default/img/buttons.png | Bin 0 -> 3133 bytes .../themes/advanced/skins/default/img/items.gif | Bin 0 -> 64 bytes .../advanced/skins/default/img/menu_arrow.gif | Bin 0 -> 68 bytes .../advanced/skins/default/img/menu_check.gif | Bin 0 -> 70 bytes .../themes/advanced/skins/default/img/progress.gif | Bin 0 -> 1787 bytes .../themes/advanced/skins/default/img/tabs.gif | Bin 0 -> 1322 bytes .../tinymce/themes/advanced/skins/default/ui.css | 219 + .../themes/advanced/skins/highcontrast/content.css | 24 + .../themes/advanced/skins/highcontrast/dialog.css | 106 + .../themes/advanced/skins/highcontrast/ui.css | 106 + .../tinymce/themes/advanced/skins/o2k7/content.css | 48 + .../tinymce/themes/advanced/skins/o2k7/dialog.css | 118 + .../themes/advanced/skins/o2k7/img/button_bg.png | Bin 0 -> 2766 bytes .../advanced/skins/o2k7/img/button_bg_black.png | Bin 0 -> 651 bytes .../advanced/skins/o2k7/img/button_bg_silver.png | Bin 0 -> 2084 bytes .../js/tinymce/themes/advanced/skins/o2k7/ui.css | 222 + .../themes/advanced/skins/o2k7/ui_black.css | 8 + .../themes/advanced/skins/o2k7/ui_silver.css | 5 + .../js/tinymce/themes/advanced/source_editor.htm | 25 + .../js/tinymce/themes/simple/editor_template.js | 1 + .../tinymce/themes/simple/editor_template_src.js | 84 + .../media/js/tinymce/themes/simple/img/icons.gif | Bin 0 -> 806 bytes .../media/js/tinymce/themes/simple/langs/en.js | 1 + .../themes/simple/skins/default/content.css | 25 + .../js/tinymce/themes/simple/skins/default/ui.css | 32 + .../tinymce/themes/simple/skins/o2k7/content.css | 17 + .../themes/simple/skins/o2k7/img/button_bg.png | Bin 0 -> 5102 bytes .../js/tinymce/themes/simple/skins/o2k7/ui.css | 35 + askbot/skins/default/media/js/tinymce/tiny_mce.js | 1 + .../default/media/js/tinymce/tiny_mce_popup.js | 5 + .../skins/default/media/js/tinymce/tiny_mce_src.js | 18576 +++++++++++++++++++ .../media/js/tinymce/utils/editable_selects.js | 70 + .../default/media/js/tinymce/utils/form_utils.js | 210 + .../skins/default/media/js/tinymce/utils/mctabs.js | 162 + .../default/media/js/tinymce/utils/validate.js | 252 + askbot/skins/default/media/js/user.js | 1014 + askbot/skins/default/media/js/utils.js | 2917 +++ .../js/wmd/images/editor-toolbar-background.png | Bin 0 -> 282 bytes .../default/media/js/wmd/images/wmd-buttons.png | Bin 0 -> 11480 bytes askbot/skins/default/media/js/wmd/showdown-min.js | 1 + askbot/skins/default/media/js/wmd/showdown.js | 1332 ++ askbot/skins/default/media/js/wmd/wmd-min.js | 1 + askbot/skins/default/media/js/wmd/wmd-test.html | 158 + askbot/skins/default/media/js/wmd/wmd.css | 130 + askbot/skins/default/media/js/wmd/wmd.js | 2510 +++ askbot/skins/utils.py | 6 +- 1318 files changed, 73722 insertions(+), 74488 deletions(-) delete mode 100644 askbot/skins/common/media/images/anon.png delete mode 100644 askbot/skins/common/media/images/bigbutton.png delete mode 100644 askbot/skins/common/media/images/bigbuttonhover.png delete mode 100755 askbot/skins/common/media/images/blue-up-arrow-h18px.png delete mode 100755 askbot/skins/common/media/images/box-arrow.gif delete mode 100755 askbot/skins/common/media/images/bullet_green.gif delete mode 100755 askbot/skins/common/media/images/cc-88x31.png delete mode 100644 askbot/skins/common/media/images/cc-by-sa.png delete mode 100755 askbot/skins/common/media/images/close-small-dark.png delete mode 100755 askbot/skins/common/media/images/close-small-hover.png delete mode 100755 askbot/skins/common/media/images/close-small.png delete mode 100644 askbot/skins/common/media/images/contributorsback.png delete mode 100755 askbot/skins/common/media/images/dash.gif delete mode 100644 askbot/skins/common/media/images/dialog-warning-off.png delete mode 100644 askbot/skins/common/media/images/dialog-warning.png delete mode 100755 askbot/skins/common/media/images/djangomade124x25_grey.gif delete mode 100755 askbot/skins/common/media/images/dot-g.gif delete mode 100755 askbot/skins/common/media/images/dot-list.gif delete mode 100755 askbot/skins/common/media/images/edit.png delete mode 100755 askbot/skins/common/media/images/expander-arrow-hide.gif delete mode 100755 askbot/skins/common/media/images/expander-arrow-show.gif delete mode 100644 askbot/skins/common/media/images/favicon.gif delete mode 100644 askbot/skins/common/media/images/favicon.ico delete mode 100644 askbot/skins/common/media/images/feed-icon-small.png delete mode 100755 askbot/skins/common/media/images/flags/ad.gif delete mode 100755 askbot/skins/common/media/images/flags/ae.gif delete mode 100755 askbot/skins/common/media/images/flags/af.gif delete mode 100755 askbot/skins/common/media/images/flags/ag.gif delete mode 100755 askbot/skins/common/media/images/flags/ai.gif delete mode 100755 askbot/skins/common/media/images/flags/al.gif delete mode 100755 askbot/skins/common/media/images/flags/am.gif delete mode 100755 askbot/skins/common/media/images/flags/an.gif delete mode 100644 askbot/skins/common/media/images/flags/ao.gif delete mode 100755 askbot/skins/common/media/images/flags/ar.gif delete mode 100755 askbot/skins/common/media/images/flags/as.gif delete mode 100755 askbot/skins/common/media/images/flags/at.gif delete mode 100755 askbot/skins/common/media/images/flags/au.gif delete mode 100755 askbot/skins/common/media/images/flags/aw.gif delete mode 100755 askbot/skins/common/media/images/flags/ax.gif delete mode 100755 askbot/skins/common/media/images/flags/az.gif delete mode 100755 askbot/skins/common/media/images/flags/ba.gif delete mode 100755 askbot/skins/common/media/images/flags/bb.gif delete mode 100755 askbot/skins/common/media/images/flags/bd.gif delete mode 100755 askbot/skins/common/media/images/flags/be.gif delete mode 100755 askbot/skins/common/media/images/flags/bf.gif delete mode 100755 askbot/skins/common/media/images/flags/bg.gif delete mode 100755 askbot/skins/common/media/images/flags/bh.gif delete mode 100755 askbot/skins/common/media/images/flags/bi.gif delete mode 100755 askbot/skins/common/media/images/flags/bj.gif delete mode 100755 askbot/skins/common/media/images/flags/bm.gif delete mode 100755 askbot/skins/common/media/images/flags/bn.gif delete mode 100755 askbot/skins/common/media/images/flags/bo.gif delete mode 100755 askbot/skins/common/media/images/flags/br.gif delete mode 100755 askbot/skins/common/media/images/flags/bs.gif delete mode 100755 askbot/skins/common/media/images/flags/bt.gif delete mode 100755 askbot/skins/common/media/images/flags/bv.gif delete mode 100755 askbot/skins/common/media/images/flags/bw.gif delete mode 100755 askbot/skins/common/media/images/flags/by.gif delete mode 100755 askbot/skins/common/media/images/flags/bz.gif delete mode 100755 askbot/skins/common/media/images/flags/ca.gif delete mode 100644 askbot/skins/common/media/images/flags/catalonia.gif delete mode 100755 askbot/skins/common/media/images/flags/cc.gif delete mode 100644 askbot/skins/common/media/images/flags/cd.gif delete mode 100755 askbot/skins/common/media/images/flags/cf.gif delete mode 100755 askbot/skins/common/media/images/flags/cg.gif delete mode 100755 askbot/skins/common/media/images/flags/ch.gif delete mode 100755 askbot/skins/common/media/images/flags/ci.gif delete mode 100755 askbot/skins/common/media/images/flags/ck.gif delete mode 100755 askbot/skins/common/media/images/flags/cl.gif delete mode 100755 askbot/skins/common/media/images/flags/cm.gif delete mode 100755 askbot/skins/common/media/images/flags/cn.gif delete mode 100755 askbot/skins/common/media/images/flags/co.gif delete mode 100755 askbot/skins/common/media/images/flags/cr.gif delete mode 100755 askbot/skins/common/media/images/flags/cs.gif delete mode 100755 askbot/skins/common/media/images/flags/cu.gif delete mode 100755 askbot/skins/common/media/images/flags/cv.gif delete mode 100755 askbot/skins/common/media/images/flags/cx.gif delete mode 100755 askbot/skins/common/media/images/flags/cy.gif delete mode 100755 askbot/skins/common/media/images/flags/cz.gif delete mode 100755 askbot/skins/common/media/images/flags/de.gif delete mode 100755 askbot/skins/common/media/images/flags/dj.gif delete mode 100755 askbot/skins/common/media/images/flags/dk.gif delete mode 100755 askbot/skins/common/media/images/flags/dm.gif delete mode 100755 askbot/skins/common/media/images/flags/do.gif delete mode 100755 askbot/skins/common/media/images/flags/dz.gif delete mode 100755 askbot/skins/common/media/images/flags/ec.gif delete mode 100755 askbot/skins/common/media/images/flags/ee.gif delete mode 100755 askbot/skins/common/media/images/flags/eg.gif delete mode 100755 askbot/skins/common/media/images/flags/eh.gif delete mode 100755 askbot/skins/common/media/images/flags/england.gif delete mode 100755 askbot/skins/common/media/images/flags/er.gif delete mode 100755 askbot/skins/common/media/images/flags/es.gif delete mode 100755 askbot/skins/common/media/images/flags/et.gif delete mode 100644 askbot/skins/common/media/images/flags/europeanunion.gif delete mode 100755 askbot/skins/common/media/images/flags/fam.gif delete mode 100755 askbot/skins/common/media/images/flags/fi.gif delete mode 100755 askbot/skins/common/media/images/flags/fj.gif delete mode 100755 askbot/skins/common/media/images/flags/fk.gif delete mode 100755 askbot/skins/common/media/images/flags/fm.gif delete mode 100755 askbot/skins/common/media/images/flags/fo.gif delete mode 100755 askbot/skins/common/media/images/flags/fr.gif delete mode 100755 askbot/skins/common/media/images/flags/ga.gif delete mode 100644 askbot/skins/common/media/images/flags/gb.gif delete mode 100755 askbot/skins/common/media/images/flags/gd.gif delete mode 100755 askbot/skins/common/media/images/flags/ge.gif delete mode 100755 askbot/skins/common/media/images/flags/gf.gif delete mode 100755 askbot/skins/common/media/images/flags/gh.gif delete mode 100755 askbot/skins/common/media/images/flags/gi.gif delete mode 100755 askbot/skins/common/media/images/flags/gl.gif delete mode 100755 askbot/skins/common/media/images/flags/gm.gif delete mode 100755 askbot/skins/common/media/images/flags/gn.gif delete mode 100755 askbot/skins/common/media/images/flags/gp.gif delete mode 100755 askbot/skins/common/media/images/flags/gq.gif delete mode 100755 askbot/skins/common/media/images/flags/gr.gif delete mode 100755 askbot/skins/common/media/images/flags/gs.gif delete mode 100755 askbot/skins/common/media/images/flags/gt.gif delete mode 100755 askbot/skins/common/media/images/flags/gu.gif delete mode 100755 askbot/skins/common/media/images/flags/gw.gif delete mode 100755 askbot/skins/common/media/images/flags/gy.gif delete mode 100755 askbot/skins/common/media/images/flags/hk.gif delete mode 100755 askbot/skins/common/media/images/flags/hm.gif delete mode 100755 askbot/skins/common/media/images/flags/hn.gif delete mode 100755 askbot/skins/common/media/images/flags/hr.gif delete mode 100755 askbot/skins/common/media/images/flags/ht.gif delete mode 100755 askbot/skins/common/media/images/flags/hu.gif delete mode 100755 askbot/skins/common/media/images/flags/id.gif delete mode 100755 askbot/skins/common/media/images/flags/ie.gif delete mode 100755 askbot/skins/common/media/images/flags/il.gif delete mode 100755 askbot/skins/common/media/images/flags/in.gif delete mode 100755 askbot/skins/common/media/images/flags/io.gif delete mode 100755 askbot/skins/common/media/images/flags/iq.gif delete mode 100755 askbot/skins/common/media/images/flags/ir.gif delete mode 100755 askbot/skins/common/media/images/flags/is.gif delete mode 100755 askbot/skins/common/media/images/flags/it.gif delete mode 100755 askbot/skins/common/media/images/flags/jm.gif delete mode 100755 askbot/skins/common/media/images/flags/jo.gif delete mode 100755 askbot/skins/common/media/images/flags/jp.gif delete mode 100755 askbot/skins/common/media/images/flags/ke.gif delete mode 100755 askbot/skins/common/media/images/flags/kg.gif delete mode 100755 askbot/skins/common/media/images/flags/kh.gif delete mode 100755 askbot/skins/common/media/images/flags/ki.gif delete mode 100755 askbot/skins/common/media/images/flags/km.gif delete mode 100755 askbot/skins/common/media/images/flags/kn.gif delete mode 100755 askbot/skins/common/media/images/flags/kp.gif delete mode 100755 askbot/skins/common/media/images/flags/kr.gif delete mode 100755 askbot/skins/common/media/images/flags/kw.gif delete mode 100755 askbot/skins/common/media/images/flags/ky.gif delete mode 100755 askbot/skins/common/media/images/flags/kz.gif delete mode 100755 askbot/skins/common/media/images/flags/la.gif delete mode 100755 askbot/skins/common/media/images/flags/lb.gif delete mode 100644 askbot/skins/common/media/images/flags/lc.gif delete mode 100755 askbot/skins/common/media/images/flags/li.gif delete mode 100755 askbot/skins/common/media/images/flags/lk.gif delete mode 100755 askbot/skins/common/media/images/flags/lr.gif delete mode 100755 askbot/skins/common/media/images/flags/ls.gif delete mode 100755 askbot/skins/common/media/images/flags/lt.gif delete mode 100755 askbot/skins/common/media/images/flags/lu.gif delete mode 100755 askbot/skins/common/media/images/flags/lv.gif delete mode 100755 askbot/skins/common/media/images/flags/ly.gif delete mode 100755 askbot/skins/common/media/images/flags/ma.gif delete mode 100755 askbot/skins/common/media/images/flags/mc.gif delete mode 100755 askbot/skins/common/media/images/flags/md.gif delete mode 100644 askbot/skins/common/media/images/flags/me.gif delete mode 100755 askbot/skins/common/media/images/flags/mg.gif delete mode 100755 askbot/skins/common/media/images/flags/mh.gif delete mode 100755 askbot/skins/common/media/images/flags/mk.gif delete mode 100755 askbot/skins/common/media/images/flags/ml.gif delete mode 100755 askbot/skins/common/media/images/flags/mm.gif delete mode 100755 askbot/skins/common/media/images/flags/mn.gif delete mode 100755 askbot/skins/common/media/images/flags/mo.gif delete mode 100755 askbot/skins/common/media/images/flags/mp.gif delete mode 100755 askbot/skins/common/media/images/flags/mq.gif delete mode 100755 askbot/skins/common/media/images/flags/mr.gif delete mode 100755 askbot/skins/common/media/images/flags/ms.gif delete mode 100755 askbot/skins/common/media/images/flags/mt.gif delete mode 100755 askbot/skins/common/media/images/flags/mu.gif delete mode 100755 askbot/skins/common/media/images/flags/mv.gif delete mode 100755 askbot/skins/common/media/images/flags/mw.gif delete mode 100755 askbot/skins/common/media/images/flags/mx.gif delete mode 100755 askbot/skins/common/media/images/flags/my.gif delete mode 100755 askbot/skins/common/media/images/flags/mz.gif delete mode 100755 askbot/skins/common/media/images/flags/na.gif delete mode 100755 askbot/skins/common/media/images/flags/nc.gif delete mode 100755 askbot/skins/common/media/images/flags/ne.gif delete mode 100755 askbot/skins/common/media/images/flags/nf.gif delete mode 100755 askbot/skins/common/media/images/flags/ng.gif delete mode 100755 askbot/skins/common/media/images/flags/ni.gif delete mode 100755 askbot/skins/common/media/images/flags/nl.gif delete mode 100755 askbot/skins/common/media/images/flags/no.gif delete mode 100755 askbot/skins/common/media/images/flags/np.gif delete mode 100755 askbot/skins/common/media/images/flags/nr.gif delete mode 100755 askbot/skins/common/media/images/flags/nu.gif delete mode 100755 askbot/skins/common/media/images/flags/nz.gif delete mode 100755 askbot/skins/common/media/images/flags/om.gif delete mode 100755 askbot/skins/common/media/images/flags/pa.gif delete mode 100755 askbot/skins/common/media/images/flags/pe.gif delete mode 100755 askbot/skins/common/media/images/flags/pf.gif delete mode 100755 askbot/skins/common/media/images/flags/pg.gif delete mode 100755 askbot/skins/common/media/images/flags/ph.gif delete mode 100755 askbot/skins/common/media/images/flags/pk.gif delete mode 100755 askbot/skins/common/media/images/flags/pl.gif delete mode 100755 askbot/skins/common/media/images/flags/pm.gif delete mode 100755 askbot/skins/common/media/images/flags/pn.gif delete mode 100755 askbot/skins/common/media/images/flags/pr.gif delete mode 100755 askbot/skins/common/media/images/flags/ps.gif delete mode 100755 askbot/skins/common/media/images/flags/pt.gif delete mode 100755 askbot/skins/common/media/images/flags/pw.gif delete mode 100755 askbot/skins/common/media/images/flags/py.gif delete mode 100755 askbot/skins/common/media/images/flags/qa.gif delete mode 100755 askbot/skins/common/media/images/flags/re.gif delete mode 100755 askbot/skins/common/media/images/flags/ro.gif delete mode 100644 askbot/skins/common/media/images/flags/rs.gif delete mode 100755 askbot/skins/common/media/images/flags/ru.gif delete mode 100755 askbot/skins/common/media/images/flags/rw.gif delete mode 100755 askbot/skins/common/media/images/flags/sa.gif delete mode 100755 askbot/skins/common/media/images/flags/sb.gif delete mode 100755 askbot/skins/common/media/images/flags/sc.gif delete mode 100755 askbot/skins/common/media/images/flags/scotland.gif delete mode 100755 askbot/skins/common/media/images/flags/sd.gif delete mode 100755 askbot/skins/common/media/images/flags/se.gif delete mode 100755 askbot/skins/common/media/images/flags/sg.gif delete mode 100755 askbot/skins/common/media/images/flags/sh.gif delete mode 100755 askbot/skins/common/media/images/flags/si.gif delete mode 100755 askbot/skins/common/media/images/flags/sj.gif delete mode 100755 askbot/skins/common/media/images/flags/sk.gif delete mode 100755 askbot/skins/common/media/images/flags/sl.gif delete mode 100755 askbot/skins/common/media/images/flags/sm.gif delete mode 100755 askbot/skins/common/media/images/flags/sn.gif delete mode 100755 askbot/skins/common/media/images/flags/so.gif delete mode 100755 askbot/skins/common/media/images/flags/sr.gif delete mode 100755 askbot/skins/common/media/images/flags/st.gif delete mode 100755 askbot/skins/common/media/images/flags/sv.gif delete mode 100755 askbot/skins/common/media/images/flags/sy.gif delete mode 100755 askbot/skins/common/media/images/flags/sz.gif delete mode 100755 askbot/skins/common/media/images/flags/tc.gif delete mode 100755 askbot/skins/common/media/images/flags/td.gif delete mode 100755 askbot/skins/common/media/images/flags/tf.gif delete mode 100755 askbot/skins/common/media/images/flags/tg.gif delete mode 100755 askbot/skins/common/media/images/flags/th.gif delete mode 100755 askbot/skins/common/media/images/flags/tj.gif delete mode 100755 askbot/skins/common/media/images/flags/tk.gif delete mode 100755 askbot/skins/common/media/images/flags/tl.gif delete mode 100755 askbot/skins/common/media/images/flags/tm.gif delete mode 100755 askbot/skins/common/media/images/flags/tn.gif delete mode 100755 askbot/skins/common/media/images/flags/to.gif delete mode 100755 askbot/skins/common/media/images/flags/tr.gif delete mode 100755 askbot/skins/common/media/images/flags/tt.gif delete mode 100755 askbot/skins/common/media/images/flags/tv.gif delete mode 100755 askbot/skins/common/media/images/flags/tw.gif delete mode 100755 askbot/skins/common/media/images/flags/tz.gif delete mode 100755 askbot/skins/common/media/images/flags/ua.gif delete mode 100755 askbot/skins/common/media/images/flags/ug.gif delete mode 100755 askbot/skins/common/media/images/flags/um.gif delete mode 100755 askbot/skins/common/media/images/flags/us.gif delete mode 100755 askbot/skins/common/media/images/flags/uy.gif delete mode 100755 askbot/skins/common/media/images/flags/uz.gif delete mode 100755 askbot/skins/common/media/images/flags/va.gif delete mode 100755 askbot/skins/common/media/images/flags/vc.gif delete mode 100755 askbot/skins/common/media/images/flags/ve.gif delete mode 100755 askbot/skins/common/media/images/flags/vg.gif delete mode 100755 askbot/skins/common/media/images/flags/vi.gif delete mode 100755 askbot/skins/common/media/images/flags/vn.gif delete mode 100755 askbot/skins/common/media/images/flags/vu.gif delete mode 100755 askbot/skins/common/media/images/flags/wales.gif delete mode 100755 askbot/skins/common/media/images/flags/wf.gif delete mode 100755 askbot/skins/common/media/images/flags/ws.gif delete mode 100755 askbot/skins/common/media/images/flags/ye.gif delete mode 100755 askbot/skins/common/media/images/flags/yt.gif delete mode 100755 askbot/skins/common/media/images/flags/za.gif delete mode 100755 askbot/skins/common/media/images/flags/zm.gif delete mode 100755 askbot/skins/common/media/images/flags/zw.gif delete mode 100644 askbot/skins/common/media/images/go-up-grey.png delete mode 100644 askbot/skins/common/media/images/go-up-orange.png delete mode 100755 askbot/skins/common/media/images/gray-up-arrow-h18px.png delete mode 100755 askbot/skins/common/media/images/grippie.png delete mode 100755 askbot/skins/common/media/images/indicator.gif delete mode 100644 askbot/skins/common/media/images/logo.gif delete mode 100644 askbot/skins/common/media/images/logo.png delete mode 100755 askbot/skins/common/media/images/logo1.png delete mode 100755 askbot/skins/common/media/images/logo2.png delete mode 100644 askbot/skins/common/media/images/mail-envelope-empty.png delete mode 100644 askbot/skins/common/media/images/mail-envelope-full.png delete mode 100755 askbot/skins/common/media/images/medala.gif delete mode 100755 askbot/skins/common/media/images/medala_on.gif delete mode 100755 askbot/skins/common/media/images/new.gif delete mode 100755 askbot/skins/common/media/images/nophoto.png delete mode 100755 askbot/skins/common/media/images/openid.gif delete mode 100755 askbot/skins/common/media/images/openid/aol.gif delete mode 100755 askbot/skins/common/media/images/openid/blogger.ico delete mode 100755 askbot/skins/common/media/images/openid/claimid.ico delete mode 100755 askbot/skins/common/media/images/openid/facebook.gif delete mode 100755 askbot/skins/common/media/images/openid/flickr.ico delete mode 100755 askbot/skins/common/media/images/openid/google.gif delete mode 100755 askbot/skins/common/media/images/openid/livejournal.ico delete mode 100755 askbot/skins/common/media/images/openid/myopenid.ico delete mode 100755 askbot/skins/common/media/images/openid/openid-inputicon.gif delete mode 100755 askbot/skins/common/media/images/openid/openid.gif delete mode 100755 askbot/skins/common/media/images/openid/technorati.ico delete mode 100755 askbot/skins/common/media/images/openid/twitter.png delete mode 100755 askbot/skins/common/media/images/openid/verisign.ico delete mode 100755 askbot/skins/common/media/images/openid/vidoop.ico delete mode 100755 askbot/skins/common/media/images/openid/wordpress.ico delete mode 100755 askbot/skins/common/media/images/openid/yahoo.gif delete mode 100644 askbot/skins/common/media/images/print.png delete mode 100644 askbot/skins/common/media/images/pw-login.gif delete mode 100755 askbot/skins/common/media/images/quest-bg.gif delete mode 100644 askbot/skins/common/media/images/scopearrow.png delete mode 100644 askbot/skins/common/media/images/sprite.png delete mode 100644 askbot/skins/common/media/images/sprites.png delete mode 100644 askbot/skins/common/media/images/sprites_source/sprites.svg delete mode 100644 askbot/skins/common/media/images/summary-background.png delete mode 100644 askbot/skins/common/media/images/tag-left.png delete mode 100644 askbot/skins/common/media/images/tag-right.png delete mode 100755 askbot/skins/common/media/images/vote-accepted-on.png delete mode 100755 askbot/skins/common/media/images/vote-accepted.png delete mode 100755 askbot/skins/common/media/images/vote-arrow-down-on.png delete mode 100755 askbot/skins/common/media/images/vote-arrow-down.png delete mode 100755 askbot/skins/common/media/images/vote-arrow-up-on.png delete mode 100755 askbot/skins/common/media/images/vote-arrow-up.png delete mode 100755 askbot/skins/common/media/images/vote-favorite-off.png delete mode 100755 askbot/skins/common/media/images/vote-favorite-on.png delete mode 100644 askbot/skins/common/media/images/wiki.png delete mode 100755 askbot/skins/common/media/jquery-openid/images/aol.gif delete mode 100755 askbot/skins/common/media/jquery-openid/images/blogger-1.png delete mode 100755 askbot/skins/common/media/jquery-openid/images/blogger.ico delete mode 100755 askbot/skins/common/media/jquery-openid/images/claimid-0.png delete mode 100755 askbot/skins/common/media/jquery-openid/images/claimid.ico delete mode 100755 askbot/skins/common/media/jquery-openid/images/facebook.gif delete mode 100755 askbot/skins/common/media/jquery-openid/images/flickr.ico delete mode 100755 askbot/skins/common/media/jquery-openid/images/flickr.png delete mode 100755 askbot/skins/common/media/jquery-openid/images/google.gif delete mode 100644 askbot/skins/common/media/jquery-openid/images/identica.png delete mode 100644 askbot/skins/common/media/jquery-openid/images/linkedin.gif delete mode 100755 askbot/skins/common/media/jquery-openid/images/livejournal-1.png delete mode 100755 askbot/skins/common/media/jquery-openid/images/livejournal.ico delete mode 100755 askbot/skins/common/media/jquery-openid/images/myopenid-2.png delete mode 100755 askbot/skins/common/media/jquery-openid/images/myopenid.ico delete mode 100755 askbot/skins/common/media/jquery-openid/images/openid-inputicon.gif delete mode 100755 askbot/skins/common/media/jquery-openid/images/openid.gif delete mode 100755 askbot/skins/common/media/jquery-openid/images/openidico.png delete mode 100755 askbot/skins/common/media/jquery-openid/images/openidico16.png delete mode 100755 askbot/skins/common/media/jquery-openid/images/technorati-1.png delete mode 100755 askbot/skins/common/media/jquery-openid/images/technorati.ico delete mode 100644 askbot/skins/common/media/jquery-openid/images/twitter.gif delete mode 100755 askbot/skins/common/media/jquery-openid/images/verisign-2.png delete mode 100755 askbot/skins/common/media/jquery-openid/images/verisign.ico delete mode 100755 askbot/skins/common/media/jquery-openid/images/vidoop.ico delete mode 100755 askbot/skins/common/media/jquery-openid/images/vidoop.png delete mode 100755 askbot/skins/common/media/jquery-openid/images/wordpress.ico delete mode 100755 askbot/skins/common/media/jquery-openid/images/wordpress.png delete mode 100755 askbot/skins/common/media/jquery-openid/images/yahoo.gif delete mode 100644 askbot/skins/common/media/jquery-openid/jquery.openid.js delete mode 100644 askbot/skins/common/media/jquery-openid/openid.css delete mode 100644 askbot/skins/common/media/js/autocompleter.js delete mode 100644 askbot/skins/common/media/js/compress.bat delete mode 100644 askbot/skins/common/media/js/editor.js delete mode 100644 askbot/skins/common/media/js/excanvas.min.js delete mode 100644 askbot/skins/common/media/js/flot-build.bat delete mode 100644 askbot/skins/common/media/js/group_messaging.js delete mode 100644 askbot/skins/common/media/js/jquery-1.4.3.js delete mode 100644 askbot/skins/common/media/js/jquery-1.7.2.min.js delete mode 100644 askbot/skins/common/media/js/jquery-fieldselection.js delete mode 100644 askbot/skins/common/media/js/jquery-fieldselection.min.js delete mode 100644 askbot/skins/common/media/js/jquery.ajaxfileupload.js delete mode 100644 askbot/skins/common/media/js/jquery.animate-colors.js delete mode 100644 askbot/skins/common/media/js/jquery.flot.js delete mode 100644 askbot/skins/common/media/js/jquery.flot.min.js delete mode 100644 askbot/skins/common/media/js/jquery.form.js delete mode 100644 askbot/skins/common/media/js/jquery.history.js delete mode 100644 askbot/skins/common/media/js/jquery.i18n.js delete mode 100644 askbot/skins/common/media/js/jquery.openid.js delete mode 100644 askbot/skins/common/media/js/jquery.validate.js delete mode 100644 askbot/skins/common/media/js/jquery.validate.min.js delete mode 100644 askbot/skins/common/media/js/jquery.validate.pack.js delete mode 100644 askbot/skins/common/media/js/less.min.js delete mode 100644 askbot/skins/common/media/js/live_search.js delete mode 100644 askbot/skins/common/media/js/live_search_new_thread.js delete mode 100644 askbot/skins/common/media/js/modernizr.custom.js delete mode 100644 askbot/skins/common/media/js/output-words.html delete mode 100644 askbot/skins/common/media/js/output-words.js delete mode 100644 askbot/skins/common/media/js/post.js delete mode 100644 askbot/skins/common/media/js/se_hilite.js delete mode 100644 askbot/skins/common/media/js/se_hilite_src.js delete mode 100644 askbot/skins/common/media/js/tag_moderation.js delete mode 100644 askbot/skins/common/media/js/tag_selector.js delete mode 100644 askbot/skins/common/media/js/tinymce/langs/en.js delete mode 100644 askbot/skins/common/media/js/tinymce/license.txt delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/advhr/css/advhr.css delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/advhr/editor_plugin.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/advhr/editor_plugin_src.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/advhr/js/rule.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/advhr/langs/en_dlg.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/advhr/rule.htm delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/advimage/css/advimage.css delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/advimage/editor_plugin.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/advimage/editor_plugin_src.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/advimage/image.htm delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/advimage/img/sample.gif delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/advimage/js/image.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/advimage/langs/en_dlg.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/advlink/css/advlink.css delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/advlink/editor_plugin.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/advlink/editor_plugin_src.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/advlink/js/advlink.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/advlink/langs/en_dlg.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/advlink/link.htm delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/advlist/editor_plugin.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/advlist/editor_plugin_src.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/askbot_attachment/editor_plugin.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/askbot_attachment/langs/en.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/askbot_attachment/langs/en_dlg.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/askbot_imageuploader/editor_plugin.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/askbot_imageuploader/langs/en.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/askbot_imageuploader/langs/en_dlg.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/autolink/editor_plugin.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/autolink/editor_plugin_src.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/autoresize/editor_plugin.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/autoresize/editor_plugin_src.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/autosave/editor_plugin.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/autosave/editor_plugin_src.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/autosave/langs/en.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/bbcode/editor_plugin.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/bbcode/editor_plugin_src.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/contextmenu/editor_plugin.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/contextmenu/editor_plugin_src.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/directionality/editor_plugin.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/directionality/editor_plugin_src.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/emotions/editor_plugin.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/emotions/editor_plugin_src.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/emotions/emotions.htm delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/emotions/img/smiley-cool.gif delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/emotions/img/smiley-cry.gif delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/emotions/img/smiley-embarassed.gif delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/emotions/img/smiley-foot-in-mouth.gif delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/emotions/img/smiley-frown.gif delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/emotions/img/smiley-innocent.gif delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/emotions/img/smiley-kiss.gif delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/emotions/img/smiley-laughing.gif delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/emotions/img/smiley-money-mouth.gif delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/emotions/img/smiley-sealed.gif delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/emotions/img/smiley-smile.gif delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/emotions/img/smiley-surprised.gif delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/emotions/img/smiley-tongue-out.gif delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/emotions/img/smiley-undecided.gif delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/emotions/img/smiley-wink.gif delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/emotions/img/smiley-yell.gif delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/emotions/js/emotions.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/emotions/langs/en_dlg.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/example/dialog.htm delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/example/editor_plugin.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/example/editor_plugin_src.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/example/img/example.gif delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/example/js/dialog.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/example/langs/en.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/example/langs/en_dlg.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/example_dependency/editor_plugin.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/example_dependency/editor_plugin_src.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/fullpage/css/fullpage.css delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/fullpage/editor_plugin.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/fullpage/editor_plugin_src.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/fullpage/fullpage.htm delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/fullpage/js/fullpage.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/fullpage/langs/en_dlg.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/fullscreen/editor_plugin.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/fullscreen/editor_plugin_src.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/fullscreen/fullscreen.htm delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/iespell/editor_plugin.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/iespell/editor_plugin_src.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/inlinepopups/editor_plugin.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/inlinepopups/editor_plugin_src.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/button.gif delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/inlinepopups/skins/clearlooks2/window.css delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/inlinepopups/template.htm delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/insertdatetime/editor_plugin.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/insertdatetime/editor_plugin_src.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/layer/editor_plugin.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/layer/editor_plugin_src.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/legacyoutput/editor_plugin.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/legacyoutput/editor_plugin_src.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/lists/editor_plugin.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/lists/editor_plugin_src.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/media/css/media.css delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/media/editor_plugin.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/media/editor_plugin_src.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/media/js/embed.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/media/js/media.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/media/langs/en_dlg.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/media/media.htm delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/media/moxieplayer.swf delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/nonbreaking/editor_plugin.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/nonbreaking/editor_plugin_src.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/noneditable/editor_plugin.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/noneditable/editor_plugin_src.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/pagebreak/editor_plugin.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/pagebreak/editor_plugin_src.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/paste/editor_plugin.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/paste/editor_plugin_src.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/paste/js/pastetext.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/paste/js/pasteword.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/paste/langs/en_dlg.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/paste/pastetext.htm delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/paste/pasteword.htm delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/preview/editor_plugin.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/preview/editor_plugin_src.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/preview/example.html delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/preview/jscripts/embed.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/preview/preview.html delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/print/editor_plugin.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/print/editor_plugin_src.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/save/editor_plugin.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/save/editor_plugin_src.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/searchreplace/css/searchreplace.css delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/searchreplace/editor_plugin.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/searchreplace/editor_plugin_src.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/searchreplace/js/searchreplace.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/searchreplace/langs/en_dlg.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/searchreplace/searchreplace.htm delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/spellchecker/css/content.css delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/spellchecker/editor_plugin.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/spellchecker/editor_plugin_src.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/spellchecker/img/wline.gif delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/style/css/props.css delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/style/editor_plugin.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/style/editor_plugin_src.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/style/js/props.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/style/langs/en_dlg.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/style/props.htm delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/style/readme.txt delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/tabfocus/editor_plugin.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/tabfocus/editor_plugin_src.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/table/cell.htm delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/table/css/cell.css delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/table/css/row.css delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/table/css/table.css delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/table/editor_plugin.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/table/editor_plugin_src.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/table/js/cell.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/table/js/merge_cells.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/table/js/row.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/table/js/table.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/table/langs/en_dlg.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/table/merge_cells.htm delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/table/row.htm delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/table/table.htm delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/template/blank.htm delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/template/css/template.css delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/template/editor_plugin.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/template/editor_plugin_src.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/template/js/template.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/template/langs/en_dlg.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/template/template.htm delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/visualblocks/css/visualblocks.css delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/visualblocks/editor_plugin.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/visualblocks/editor_plugin_src.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/visualchars/editor_plugin.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/visualchars/editor_plugin_src.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/wordcount/editor_plugin.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/wordcount/editor_plugin_src.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/abbr.htm delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/acronym.htm delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/attributes.htm delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/cite.htm delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/css/attributes.css delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/css/popup.css delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/del.htm delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/editor_plugin.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/editor_plugin_src.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/ins.htm delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/js/abbr.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/js/acronym.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/js/attributes.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/js/cite.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/js/del.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/js/element_common.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/js/ins.js delete mode 100644 askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/langs/en_dlg.js delete mode 100644 askbot/skins/common/media/js/tinymce/themes/advanced/about.htm delete mode 100644 askbot/skins/common/media/js/tinymce/themes/advanced/anchor.htm delete mode 100644 askbot/skins/common/media/js/tinymce/themes/advanced/charmap.htm delete mode 100644 askbot/skins/common/media/js/tinymce/themes/advanced/color_picker.htm delete mode 100644 askbot/skins/common/media/js/tinymce/themes/advanced/editor_template.js delete mode 100644 askbot/skins/common/media/js/tinymce/themes/advanced/editor_template_src.js delete mode 100644 askbot/skins/common/media/js/tinymce/themes/advanced/image.htm delete mode 100644 askbot/skins/common/media/js/tinymce/themes/advanced/img/colorpicker.jpg delete mode 100644 askbot/skins/common/media/js/tinymce/themes/advanced/img/flash.gif delete mode 100644 askbot/skins/common/media/js/tinymce/themes/advanced/img/icons.gif delete mode 100644 askbot/skins/common/media/js/tinymce/themes/advanced/img/iframe.gif delete mode 100644 askbot/skins/common/media/js/tinymce/themes/advanced/img/pagebreak.gif delete mode 100644 askbot/skins/common/media/js/tinymce/themes/advanced/img/quicktime.gif delete mode 100644 askbot/skins/common/media/js/tinymce/themes/advanced/img/realmedia.gif delete mode 100644 askbot/skins/common/media/js/tinymce/themes/advanced/img/shockwave.gif delete mode 100644 askbot/skins/common/media/js/tinymce/themes/advanced/img/trans.gif delete mode 100644 askbot/skins/common/media/js/tinymce/themes/advanced/img/video.gif delete mode 100644 askbot/skins/common/media/js/tinymce/themes/advanced/img/windowsmedia.gif delete mode 100644 askbot/skins/common/media/js/tinymce/themes/advanced/js/about.js delete mode 100644 askbot/skins/common/media/js/tinymce/themes/advanced/js/anchor.js delete mode 100644 askbot/skins/common/media/js/tinymce/themes/advanced/js/charmap.js delete mode 100644 askbot/skins/common/media/js/tinymce/themes/advanced/js/color_picker.js delete mode 100644 askbot/skins/common/media/js/tinymce/themes/advanced/js/image.js delete mode 100644 askbot/skins/common/media/js/tinymce/themes/advanced/js/link.js delete mode 100644 askbot/skins/common/media/js/tinymce/themes/advanced/js/source_editor.js delete mode 100644 askbot/skins/common/media/js/tinymce/themes/advanced/langs/en.js delete mode 100644 askbot/skins/common/media/js/tinymce/themes/advanced/langs/en_dlg.js delete mode 100644 askbot/skins/common/media/js/tinymce/themes/advanced/link.htm delete mode 100644 askbot/skins/common/media/js/tinymce/themes/advanced/shortcuts.htm delete mode 100644 askbot/skins/common/media/js/tinymce/themes/advanced/skins/default/content.css delete mode 100644 askbot/skins/common/media/js/tinymce/themes/advanced/skins/default/dialog.css delete mode 100644 askbot/skins/common/media/js/tinymce/themes/advanced/skins/default/img/buttons.png delete mode 100644 askbot/skins/common/media/js/tinymce/themes/advanced/skins/default/img/items.gif delete mode 100644 askbot/skins/common/media/js/tinymce/themes/advanced/skins/default/img/menu_arrow.gif delete mode 100644 askbot/skins/common/media/js/tinymce/themes/advanced/skins/default/img/menu_check.gif delete mode 100644 askbot/skins/common/media/js/tinymce/themes/advanced/skins/default/img/progress.gif delete mode 100644 askbot/skins/common/media/js/tinymce/themes/advanced/skins/default/img/tabs.gif delete mode 100644 askbot/skins/common/media/js/tinymce/themes/advanced/skins/default/ui.css delete mode 100644 askbot/skins/common/media/js/tinymce/themes/advanced/skins/highcontrast/content.css delete mode 100644 askbot/skins/common/media/js/tinymce/themes/advanced/skins/highcontrast/dialog.css delete mode 100644 askbot/skins/common/media/js/tinymce/themes/advanced/skins/highcontrast/ui.css delete mode 100644 askbot/skins/common/media/js/tinymce/themes/advanced/skins/o2k7/content.css delete mode 100644 askbot/skins/common/media/js/tinymce/themes/advanced/skins/o2k7/dialog.css delete mode 100644 askbot/skins/common/media/js/tinymce/themes/advanced/skins/o2k7/img/button_bg.png delete mode 100644 askbot/skins/common/media/js/tinymce/themes/advanced/skins/o2k7/img/button_bg_black.png delete mode 100644 askbot/skins/common/media/js/tinymce/themes/advanced/skins/o2k7/img/button_bg_silver.png delete mode 100644 askbot/skins/common/media/js/tinymce/themes/advanced/skins/o2k7/ui.css delete mode 100644 askbot/skins/common/media/js/tinymce/themes/advanced/skins/o2k7/ui_black.css delete mode 100644 askbot/skins/common/media/js/tinymce/themes/advanced/skins/o2k7/ui_silver.css delete mode 100644 askbot/skins/common/media/js/tinymce/themes/advanced/source_editor.htm delete mode 100644 askbot/skins/common/media/js/tinymce/themes/simple/editor_template.js delete mode 100644 askbot/skins/common/media/js/tinymce/themes/simple/editor_template_src.js delete mode 100644 askbot/skins/common/media/js/tinymce/themes/simple/img/icons.gif delete mode 100644 askbot/skins/common/media/js/tinymce/themes/simple/langs/en.js delete mode 100644 askbot/skins/common/media/js/tinymce/themes/simple/skins/default/content.css delete mode 100644 askbot/skins/common/media/js/tinymce/themes/simple/skins/default/ui.css delete mode 100644 askbot/skins/common/media/js/tinymce/themes/simple/skins/o2k7/content.css delete mode 100644 askbot/skins/common/media/js/tinymce/themes/simple/skins/o2k7/img/button_bg.png delete mode 100644 askbot/skins/common/media/js/tinymce/themes/simple/skins/o2k7/ui.css delete mode 100644 askbot/skins/common/media/js/tinymce/tiny_mce.js delete mode 100644 askbot/skins/common/media/js/tinymce/tiny_mce_popup.js delete mode 100644 askbot/skins/common/media/js/tinymce/tiny_mce_src.js delete mode 100644 askbot/skins/common/media/js/tinymce/utils/editable_selects.js delete mode 100644 askbot/skins/common/media/js/tinymce/utils/form_utils.js delete mode 100644 askbot/skins/common/media/js/tinymce/utils/mctabs.js delete mode 100644 askbot/skins/common/media/js/tinymce/utils/validate.js delete mode 100644 askbot/skins/common/media/js/user.js delete mode 100644 askbot/skins/common/media/js/utils.js delete mode 100644 askbot/skins/common/media/js/wmd/images/editor-toolbar-background.png delete mode 100755 askbot/skins/common/media/js/wmd/images/wmd-buttons.png delete mode 100644 askbot/skins/common/media/js/wmd/showdown-min.js delete mode 100644 askbot/skins/common/media/js/wmd/showdown.js delete mode 100644 askbot/skins/common/media/js/wmd/wmd-min.js delete mode 100644 askbot/skins/common/media/js/wmd/wmd-test.html delete mode 100644 askbot/skins/common/media/js/wmd/wmd.css delete mode 100644 askbot/skins/common/media/js/wmd/wmd.js delete mode 100644 askbot/skins/common/media/style/auth.css delete mode 100644 askbot/skins/common/media/style/jquery.autocomplete.css delete mode 100644 askbot/skins/common/media/style/lib_style.less delete mode 100644 askbot/skins/common/media/style/openid.css delete mode 100644 askbot/skins/common/media/style/prettify.css delete mode 100644 askbot/skins/common/media/style/style.css create mode 100755 askbot/skins/default/media/images/flags/ad.gif create mode 100755 askbot/skins/default/media/images/flags/ae.gif create mode 100755 askbot/skins/default/media/images/flags/af.gif create mode 100755 askbot/skins/default/media/images/flags/ag.gif create mode 100755 askbot/skins/default/media/images/flags/ai.gif create mode 100755 askbot/skins/default/media/images/flags/al.gif create mode 100755 askbot/skins/default/media/images/flags/am.gif create mode 100755 askbot/skins/default/media/images/flags/an.gif create mode 100644 askbot/skins/default/media/images/flags/ao.gif create mode 100755 askbot/skins/default/media/images/flags/ar.gif create mode 100755 askbot/skins/default/media/images/flags/as.gif create mode 100755 askbot/skins/default/media/images/flags/at.gif create mode 100755 askbot/skins/default/media/images/flags/au.gif create mode 100755 askbot/skins/default/media/images/flags/aw.gif create mode 100755 askbot/skins/default/media/images/flags/ax.gif create mode 100755 askbot/skins/default/media/images/flags/az.gif create mode 100755 askbot/skins/default/media/images/flags/ba.gif create mode 100755 askbot/skins/default/media/images/flags/bb.gif create mode 100755 askbot/skins/default/media/images/flags/bd.gif create mode 100755 askbot/skins/default/media/images/flags/be.gif create mode 100755 askbot/skins/default/media/images/flags/bf.gif create mode 100755 askbot/skins/default/media/images/flags/bg.gif create mode 100755 askbot/skins/default/media/images/flags/bh.gif create mode 100755 askbot/skins/default/media/images/flags/bi.gif create mode 100755 askbot/skins/default/media/images/flags/bj.gif create mode 100755 askbot/skins/default/media/images/flags/bm.gif create mode 100755 askbot/skins/default/media/images/flags/bn.gif create mode 100755 askbot/skins/default/media/images/flags/bo.gif create mode 100755 askbot/skins/default/media/images/flags/br.gif create mode 100755 askbot/skins/default/media/images/flags/bs.gif create mode 100755 askbot/skins/default/media/images/flags/bt.gif create mode 100755 askbot/skins/default/media/images/flags/bv.gif create mode 100755 askbot/skins/default/media/images/flags/bw.gif create mode 100755 askbot/skins/default/media/images/flags/by.gif create mode 100755 askbot/skins/default/media/images/flags/bz.gif create mode 100755 askbot/skins/default/media/images/flags/ca.gif create mode 100644 askbot/skins/default/media/images/flags/catalonia.gif create mode 100755 askbot/skins/default/media/images/flags/cc.gif create mode 100644 askbot/skins/default/media/images/flags/cd.gif create mode 100755 askbot/skins/default/media/images/flags/cf.gif create mode 100755 askbot/skins/default/media/images/flags/cg.gif create mode 100755 askbot/skins/default/media/images/flags/ch.gif create mode 100755 askbot/skins/default/media/images/flags/ci.gif create mode 100755 askbot/skins/default/media/images/flags/ck.gif create mode 100755 askbot/skins/default/media/images/flags/cl.gif create mode 100755 askbot/skins/default/media/images/flags/cm.gif create mode 100755 askbot/skins/default/media/images/flags/cn.gif create mode 100755 askbot/skins/default/media/images/flags/co.gif create mode 100755 askbot/skins/default/media/images/flags/cr.gif create mode 100755 askbot/skins/default/media/images/flags/cs.gif create mode 100755 askbot/skins/default/media/images/flags/cu.gif create mode 100755 askbot/skins/default/media/images/flags/cv.gif create mode 100755 askbot/skins/default/media/images/flags/cx.gif create mode 100755 askbot/skins/default/media/images/flags/cy.gif create mode 100755 askbot/skins/default/media/images/flags/cz.gif create mode 100755 askbot/skins/default/media/images/flags/de.gif create mode 100755 askbot/skins/default/media/images/flags/dj.gif create mode 100755 askbot/skins/default/media/images/flags/dk.gif create mode 100755 askbot/skins/default/media/images/flags/dm.gif create mode 100755 askbot/skins/default/media/images/flags/do.gif create mode 100755 askbot/skins/default/media/images/flags/dz.gif create mode 100755 askbot/skins/default/media/images/flags/ec.gif create mode 100755 askbot/skins/default/media/images/flags/ee.gif create mode 100755 askbot/skins/default/media/images/flags/eg.gif create mode 100755 askbot/skins/default/media/images/flags/eh.gif create mode 100755 askbot/skins/default/media/images/flags/england.gif create mode 100755 askbot/skins/default/media/images/flags/er.gif create mode 100755 askbot/skins/default/media/images/flags/es.gif create mode 100755 askbot/skins/default/media/images/flags/et.gif create mode 100644 askbot/skins/default/media/images/flags/europeanunion.gif create mode 100755 askbot/skins/default/media/images/flags/fam.gif create mode 100755 askbot/skins/default/media/images/flags/fi.gif create mode 100755 askbot/skins/default/media/images/flags/fj.gif create mode 100755 askbot/skins/default/media/images/flags/fk.gif create mode 100755 askbot/skins/default/media/images/flags/fm.gif create mode 100755 askbot/skins/default/media/images/flags/fo.gif create mode 100755 askbot/skins/default/media/images/flags/fr.gif create mode 100755 askbot/skins/default/media/images/flags/ga.gif create mode 100644 askbot/skins/default/media/images/flags/gb.gif create mode 100755 askbot/skins/default/media/images/flags/gd.gif create mode 100755 askbot/skins/default/media/images/flags/ge.gif create mode 100755 askbot/skins/default/media/images/flags/gf.gif create mode 100755 askbot/skins/default/media/images/flags/gh.gif create mode 100755 askbot/skins/default/media/images/flags/gi.gif create mode 100755 askbot/skins/default/media/images/flags/gl.gif create mode 100755 askbot/skins/default/media/images/flags/gm.gif create mode 100755 askbot/skins/default/media/images/flags/gn.gif create mode 100755 askbot/skins/default/media/images/flags/gp.gif create mode 100755 askbot/skins/default/media/images/flags/gq.gif create mode 100755 askbot/skins/default/media/images/flags/gr.gif create mode 100755 askbot/skins/default/media/images/flags/gs.gif create mode 100755 askbot/skins/default/media/images/flags/gt.gif create mode 100755 askbot/skins/default/media/images/flags/gu.gif create mode 100755 askbot/skins/default/media/images/flags/gw.gif create mode 100755 askbot/skins/default/media/images/flags/gy.gif create mode 100755 askbot/skins/default/media/images/flags/hk.gif create mode 100755 askbot/skins/default/media/images/flags/hm.gif create mode 100755 askbot/skins/default/media/images/flags/hn.gif create mode 100755 askbot/skins/default/media/images/flags/hr.gif create mode 100755 askbot/skins/default/media/images/flags/ht.gif create mode 100755 askbot/skins/default/media/images/flags/hu.gif create mode 100755 askbot/skins/default/media/images/flags/id.gif create mode 100755 askbot/skins/default/media/images/flags/ie.gif create mode 100755 askbot/skins/default/media/images/flags/il.gif create mode 100755 askbot/skins/default/media/images/flags/in.gif create mode 100755 askbot/skins/default/media/images/flags/io.gif create mode 100755 askbot/skins/default/media/images/flags/iq.gif create mode 100755 askbot/skins/default/media/images/flags/ir.gif create mode 100755 askbot/skins/default/media/images/flags/is.gif create mode 100755 askbot/skins/default/media/images/flags/it.gif create mode 100755 askbot/skins/default/media/images/flags/jm.gif create mode 100755 askbot/skins/default/media/images/flags/jo.gif create mode 100755 askbot/skins/default/media/images/flags/jp.gif create mode 100755 askbot/skins/default/media/images/flags/ke.gif create mode 100755 askbot/skins/default/media/images/flags/kg.gif create mode 100755 askbot/skins/default/media/images/flags/kh.gif create mode 100755 askbot/skins/default/media/images/flags/ki.gif create mode 100755 askbot/skins/default/media/images/flags/km.gif create mode 100755 askbot/skins/default/media/images/flags/kn.gif create mode 100755 askbot/skins/default/media/images/flags/kp.gif create mode 100755 askbot/skins/default/media/images/flags/kr.gif create mode 100755 askbot/skins/default/media/images/flags/kw.gif create mode 100755 askbot/skins/default/media/images/flags/ky.gif create mode 100755 askbot/skins/default/media/images/flags/kz.gif create mode 100755 askbot/skins/default/media/images/flags/la.gif create mode 100755 askbot/skins/default/media/images/flags/lb.gif create mode 100644 askbot/skins/default/media/images/flags/lc.gif create mode 100755 askbot/skins/default/media/images/flags/li.gif create mode 100755 askbot/skins/default/media/images/flags/lk.gif create mode 100755 askbot/skins/default/media/images/flags/lr.gif create mode 100755 askbot/skins/default/media/images/flags/ls.gif create mode 100755 askbot/skins/default/media/images/flags/lt.gif create mode 100755 askbot/skins/default/media/images/flags/lu.gif create mode 100755 askbot/skins/default/media/images/flags/lv.gif create mode 100755 askbot/skins/default/media/images/flags/ly.gif create mode 100755 askbot/skins/default/media/images/flags/ma.gif create mode 100755 askbot/skins/default/media/images/flags/mc.gif create mode 100755 askbot/skins/default/media/images/flags/md.gif create mode 100644 askbot/skins/default/media/images/flags/me.gif create mode 100755 askbot/skins/default/media/images/flags/mg.gif create mode 100755 askbot/skins/default/media/images/flags/mh.gif create mode 100755 askbot/skins/default/media/images/flags/mk.gif create mode 100755 askbot/skins/default/media/images/flags/ml.gif create mode 100755 askbot/skins/default/media/images/flags/mm.gif create mode 100755 askbot/skins/default/media/images/flags/mn.gif create mode 100755 askbot/skins/default/media/images/flags/mo.gif create mode 100755 askbot/skins/default/media/images/flags/mp.gif create mode 100755 askbot/skins/default/media/images/flags/mq.gif create mode 100755 askbot/skins/default/media/images/flags/mr.gif create mode 100755 askbot/skins/default/media/images/flags/ms.gif create mode 100755 askbot/skins/default/media/images/flags/mt.gif create mode 100755 askbot/skins/default/media/images/flags/mu.gif create mode 100755 askbot/skins/default/media/images/flags/mv.gif create mode 100755 askbot/skins/default/media/images/flags/mw.gif create mode 100755 askbot/skins/default/media/images/flags/mx.gif create mode 100755 askbot/skins/default/media/images/flags/my.gif create mode 100755 askbot/skins/default/media/images/flags/mz.gif create mode 100755 askbot/skins/default/media/images/flags/na.gif create mode 100755 askbot/skins/default/media/images/flags/nc.gif create mode 100755 askbot/skins/default/media/images/flags/ne.gif create mode 100755 askbot/skins/default/media/images/flags/nf.gif create mode 100755 askbot/skins/default/media/images/flags/ng.gif create mode 100755 askbot/skins/default/media/images/flags/ni.gif create mode 100755 askbot/skins/default/media/images/flags/nl.gif create mode 100755 askbot/skins/default/media/images/flags/no.gif create mode 100755 askbot/skins/default/media/images/flags/np.gif create mode 100755 askbot/skins/default/media/images/flags/nr.gif create mode 100755 askbot/skins/default/media/images/flags/nu.gif create mode 100755 askbot/skins/default/media/images/flags/nz.gif create mode 100755 askbot/skins/default/media/images/flags/om.gif create mode 100755 askbot/skins/default/media/images/flags/pa.gif create mode 100755 askbot/skins/default/media/images/flags/pe.gif create mode 100755 askbot/skins/default/media/images/flags/pf.gif create mode 100755 askbot/skins/default/media/images/flags/pg.gif create mode 100755 askbot/skins/default/media/images/flags/ph.gif create mode 100755 askbot/skins/default/media/images/flags/pk.gif create mode 100755 askbot/skins/default/media/images/flags/pl.gif create mode 100755 askbot/skins/default/media/images/flags/pm.gif create mode 100755 askbot/skins/default/media/images/flags/pn.gif create mode 100755 askbot/skins/default/media/images/flags/pr.gif create mode 100755 askbot/skins/default/media/images/flags/ps.gif create mode 100755 askbot/skins/default/media/images/flags/pt.gif create mode 100755 askbot/skins/default/media/images/flags/pw.gif create mode 100755 askbot/skins/default/media/images/flags/py.gif create mode 100755 askbot/skins/default/media/images/flags/qa.gif create mode 100755 askbot/skins/default/media/images/flags/re.gif create mode 100755 askbot/skins/default/media/images/flags/ro.gif create mode 100644 askbot/skins/default/media/images/flags/rs.gif create mode 100755 askbot/skins/default/media/images/flags/ru.gif create mode 100755 askbot/skins/default/media/images/flags/rw.gif create mode 100755 askbot/skins/default/media/images/flags/sa.gif create mode 100755 askbot/skins/default/media/images/flags/sb.gif create mode 100755 askbot/skins/default/media/images/flags/sc.gif create mode 100755 askbot/skins/default/media/images/flags/scotland.gif create mode 100755 askbot/skins/default/media/images/flags/sd.gif create mode 100755 askbot/skins/default/media/images/flags/se.gif create mode 100755 askbot/skins/default/media/images/flags/sg.gif create mode 100755 askbot/skins/default/media/images/flags/sh.gif create mode 100755 askbot/skins/default/media/images/flags/si.gif create mode 100755 askbot/skins/default/media/images/flags/sj.gif create mode 100755 askbot/skins/default/media/images/flags/sk.gif create mode 100755 askbot/skins/default/media/images/flags/sl.gif create mode 100755 askbot/skins/default/media/images/flags/sm.gif create mode 100755 askbot/skins/default/media/images/flags/sn.gif create mode 100755 askbot/skins/default/media/images/flags/so.gif create mode 100755 askbot/skins/default/media/images/flags/sr.gif create mode 100755 askbot/skins/default/media/images/flags/st.gif create mode 100755 askbot/skins/default/media/images/flags/sv.gif create mode 100755 askbot/skins/default/media/images/flags/sy.gif create mode 100755 askbot/skins/default/media/images/flags/sz.gif create mode 100755 askbot/skins/default/media/images/flags/tc.gif create mode 100755 askbot/skins/default/media/images/flags/td.gif create mode 100755 askbot/skins/default/media/images/flags/tf.gif create mode 100755 askbot/skins/default/media/images/flags/tg.gif create mode 100755 askbot/skins/default/media/images/flags/th.gif create mode 100755 askbot/skins/default/media/images/flags/tj.gif create mode 100755 askbot/skins/default/media/images/flags/tk.gif create mode 100755 askbot/skins/default/media/images/flags/tl.gif create mode 100755 askbot/skins/default/media/images/flags/tm.gif create mode 100755 askbot/skins/default/media/images/flags/tn.gif create mode 100755 askbot/skins/default/media/images/flags/to.gif create mode 100755 askbot/skins/default/media/images/flags/tr.gif create mode 100755 askbot/skins/default/media/images/flags/tt.gif create mode 100755 askbot/skins/default/media/images/flags/tv.gif create mode 100755 askbot/skins/default/media/images/flags/tw.gif create mode 100755 askbot/skins/default/media/images/flags/tz.gif create mode 100755 askbot/skins/default/media/images/flags/ua.gif create mode 100755 askbot/skins/default/media/images/flags/ug.gif create mode 100755 askbot/skins/default/media/images/flags/um.gif create mode 100755 askbot/skins/default/media/images/flags/us.gif create mode 100755 askbot/skins/default/media/images/flags/uy.gif create mode 100755 askbot/skins/default/media/images/flags/uz.gif create mode 100755 askbot/skins/default/media/images/flags/va.gif create mode 100755 askbot/skins/default/media/images/flags/vc.gif create mode 100755 askbot/skins/default/media/images/flags/ve.gif create mode 100755 askbot/skins/default/media/images/flags/vg.gif create mode 100755 askbot/skins/default/media/images/flags/vi.gif create mode 100755 askbot/skins/default/media/images/flags/vn.gif create mode 100755 askbot/skins/default/media/images/flags/vu.gif create mode 100755 askbot/skins/default/media/images/flags/wales.gif create mode 100755 askbot/skins/default/media/images/flags/wf.gif create mode 100755 askbot/skins/default/media/images/flags/ws.gif create mode 100755 askbot/skins/default/media/images/flags/ye.gif create mode 100755 askbot/skins/default/media/images/flags/yt.gif create mode 100755 askbot/skins/default/media/images/flags/za.gif create mode 100755 askbot/skins/default/media/images/flags/zm.gif create mode 100755 askbot/skins/default/media/images/flags/zw.gif create mode 100755 askbot/skins/default/media/images/openid/aol.gif create mode 100755 askbot/skins/default/media/images/openid/blogger.ico create mode 100755 askbot/skins/default/media/images/openid/claimid.ico create mode 100755 askbot/skins/default/media/images/openid/facebook.gif create mode 100755 askbot/skins/default/media/images/openid/flickr.ico create mode 100755 askbot/skins/default/media/images/openid/google.gif create mode 100755 askbot/skins/default/media/images/openid/livejournal.ico create mode 100755 askbot/skins/default/media/images/openid/myopenid.ico create mode 100755 askbot/skins/default/media/images/openid/openid-inputicon.gif create mode 100755 askbot/skins/default/media/images/openid/openid.gif create mode 100755 askbot/skins/default/media/images/openid/technorati.ico create mode 100755 askbot/skins/default/media/images/openid/twitter.png create mode 100755 askbot/skins/default/media/images/openid/verisign.ico create mode 100755 askbot/skins/default/media/images/openid/vidoop.ico create mode 100755 askbot/skins/default/media/images/openid/wordpress.ico create mode 100755 askbot/skins/default/media/images/openid/yahoo.gif create mode 100644 askbot/skins/default/media/images/sprites_source/other.svg create mode 100755 askbot/skins/default/media/jquery-openid/images/aol.gif create mode 100755 askbot/skins/default/media/jquery-openid/images/blogger-1.png create mode 100755 askbot/skins/default/media/jquery-openid/images/blogger.ico create mode 100755 askbot/skins/default/media/jquery-openid/images/claimid-0.png create mode 100755 askbot/skins/default/media/jquery-openid/images/claimid.ico create mode 100755 askbot/skins/default/media/jquery-openid/images/facebook.gif create mode 100755 askbot/skins/default/media/jquery-openid/images/flickr.ico create mode 100755 askbot/skins/default/media/jquery-openid/images/flickr.png create mode 100755 askbot/skins/default/media/jquery-openid/images/google.gif create mode 100644 askbot/skins/default/media/jquery-openid/images/identica.png create mode 100644 askbot/skins/default/media/jquery-openid/images/linkedin.gif create mode 100755 askbot/skins/default/media/jquery-openid/images/livejournal-1.png create mode 100755 askbot/skins/default/media/jquery-openid/images/livejournal.ico create mode 100755 askbot/skins/default/media/jquery-openid/images/myopenid-2.png create mode 100755 askbot/skins/default/media/jquery-openid/images/myopenid.ico create mode 100755 askbot/skins/default/media/jquery-openid/images/openid-inputicon.gif create mode 100755 askbot/skins/default/media/jquery-openid/images/openid.gif create mode 100755 askbot/skins/default/media/jquery-openid/images/openidico.png create mode 100755 askbot/skins/default/media/jquery-openid/images/openidico16.png create mode 100755 askbot/skins/default/media/jquery-openid/images/technorati-1.png create mode 100755 askbot/skins/default/media/jquery-openid/images/technorati.ico create mode 100644 askbot/skins/default/media/jquery-openid/images/twitter.gif create mode 100755 askbot/skins/default/media/jquery-openid/images/verisign-2.png create mode 100755 askbot/skins/default/media/jquery-openid/images/verisign.ico create mode 100755 askbot/skins/default/media/jquery-openid/images/vidoop.ico create mode 100755 askbot/skins/default/media/jquery-openid/images/vidoop.png create mode 100755 askbot/skins/default/media/jquery-openid/images/wordpress.ico create mode 100755 askbot/skins/default/media/jquery-openid/images/wordpress.png create mode 100755 askbot/skins/default/media/jquery-openid/images/yahoo.gif create mode 100644 askbot/skins/default/media/jquery-openid/jquery.openid.js create mode 100644 askbot/skins/default/media/jquery-openid/openid.css create mode 100644 askbot/skins/default/media/js/autocompleter.js create mode 100644 askbot/skins/default/media/js/compress.bat create mode 100644 askbot/skins/default/media/js/editor.js create mode 100644 askbot/skins/default/media/js/excanvas.min.js create mode 100644 askbot/skins/default/media/js/flot-build.bat create mode 100644 askbot/skins/default/media/js/group_messaging.js create mode 100644 askbot/skins/default/media/js/jquery-1.4.3.js create mode 100644 askbot/skins/default/media/js/jquery-1.7.2.min.js create mode 100644 askbot/skins/default/media/js/jquery-fieldselection.js create mode 100644 askbot/skins/default/media/js/jquery-fieldselection.min.js create mode 100644 askbot/skins/default/media/js/jquery.ajaxfileupload.js create mode 100644 askbot/skins/default/media/js/jquery.animate-colors.js create mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/ajax.txt create mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/example/10_b.jpg create mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/example/10_s.jpg create mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/example/11_b.jpg create mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/example/11_s.jpg create mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/example/12_b.jpg create mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/example/12_s.jpg create mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/example/1_b.jpg create mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/example/1_s.jpg create mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/example/2_b.jpg create mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/example/2_s.jpg create mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/example/3_b.jpg create mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/example/3_s.jpg create mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/example/4_b.jpg create mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/example/4_s.jpg create mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/example/5_b.jpg create mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/example/5_s.jpg create mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/example/6_b.jpg create mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/example/6_s.jpg create mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/example/7_b.jpg create mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/example/7_s.jpg create mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/example/8_b.jpg create mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/example/8_s.jpg create mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/example/9_b.jpg create mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/example/9_s.jpg create mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/fancybox/blank.gif create mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/fancybox/fancy_close.png create mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/fancybox/fancy_loading.png create mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/fancybox/fancy_nav_left.png create mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/fancybox/fancy_nav_right.png create mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/fancybox/fancy_shadow_e.png create mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/fancybox/fancy_shadow_n.png create mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/fancybox/fancy_shadow_ne.png create mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/fancybox/fancy_shadow_nw.png create mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/fancybox/fancy_shadow_s.png create mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/fancybox/fancy_shadow_se.png create mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/fancybox/fancy_shadow_sw.png create mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/fancybox/fancy_shadow_w.png create mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/fancybox/fancy_title_left.png create mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/fancybox/fancy_title_main.png create mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/fancybox/fancy_title_over.png create mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/fancybox/fancy_title_right.png create mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/fancybox/fancybox-x.png create mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/fancybox/fancybox-y.png create mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/fancybox/fancybox.png create mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/fancybox/jquery.easing-1.3.pack.js create mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/fancybox/jquery.fancybox-1.3.4.css create mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/fancybox/jquery.fancybox-1.3.4.js create mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/fancybox/jquery.fancybox-1.3.4.pack.js create mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/fancybox/jquery.mousewheel-3.0.4.pack.js create mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/index.html create mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/jquery-1.4.3.min.js create mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/style.css create mode 100644 askbot/skins/default/media/js/jquery.flot.js create mode 100644 askbot/skins/default/media/js/jquery.flot.min.js create mode 100644 askbot/skins/default/media/js/jquery.form.js create mode 100644 askbot/skins/default/media/js/jquery.history.js create mode 100644 askbot/skins/default/media/js/jquery.i18n.js create mode 100644 askbot/skins/default/media/js/jquery.openid.js create mode 100644 askbot/skins/default/media/js/jquery.validate.js create mode 100644 askbot/skins/default/media/js/jquery.validate.min.js create mode 100644 askbot/skins/default/media/js/jquery.validate.pack.js create mode 100644 askbot/skins/default/media/js/less.min.js create mode 100644 askbot/skins/default/media/js/live_search.js create mode 100644 askbot/skins/default/media/js/live_search_new_thread.js create mode 100644 askbot/skins/default/media/js/modernizr.custom.js create mode 100644 askbot/skins/default/media/js/output-words.html create mode 100644 askbot/skins/default/media/js/output-words.js create mode 100644 askbot/skins/default/media/js/post.js create mode 100644 askbot/skins/default/media/js/se_hilite.js create mode 100644 askbot/skins/default/media/js/se_hilite_src.js create mode 100644 askbot/skins/default/media/js/tag_moderation.js create mode 100644 askbot/skins/default/media/js/tag_selector.js create mode 100644 askbot/skins/default/media/js/tinymce/langs/en.js create mode 100644 askbot/skins/default/media/js/tinymce/license.txt create mode 100644 askbot/skins/default/media/js/tinymce/plugins/advhr/css/advhr.css create mode 100644 askbot/skins/default/media/js/tinymce/plugins/advhr/editor_plugin.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/advhr/editor_plugin_src.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/advhr/js/rule.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/advhr/langs/en_dlg.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/advhr/rule.htm create mode 100644 askbot/skins/default/media/js/tinymce/plugins/advimage/css/advimage.css create mode 100644 askbot/skins/default/media/js/tinymce/plugins/advimage/editor_plugin.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/advimage/editor_plugin_src.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/advimage/image.htm create mode 100644 askbot/skins/default/media/js/tinymce/plugins/advimage/img/sample.gif create mode 100644 askbot/skins/default/media/js/tinymce/plugins/advimage/js/image.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/advimage/langs/en_dlg.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/advlink/css/advlink.css create mode 100644 askbot/skins/default/media/js/tinymce/plugins/advlink/editor_plugin.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/advlink/editor_plugin_src.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/advlink/js/advlink.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/advlink/langs/en_dlg.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/advlink/link.htm create mode 100644 askbot/skins/default/media/js/tinymce/plugins/advlist/editor_plugin.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/advlist/editor_plugin_src.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/askbot_attachment/editor_plugin.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/askbot_attachment/langs/en.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/askbot_attachment/langs/en_dlg.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/askbot_imageuploader/editor_plugin.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/askbot_imageuploader/langs/en.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/askbot_imageuploader/langs/en_dlg.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/autolink/editor_plugin.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/autolink/editor_plugin_src.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/autoresize/editor_plugin.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/autoresize/editor_plugin_src.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/autosave/editor_plugin.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/autosave/editor_plugin_src.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/autosave/langs/en.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/bbcode/editor_plugin.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/bbcode/editor_plugin_src.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/contextmenu/editor_plugin.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/contextmenu/editor_plugin_src.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/directionality/editor_plugin.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/directionality/editor_plugin_src.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/emotions/editor_plugin.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/emotions/editor_plugin_src.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/emotions/emotions.htm create mode 100644 askbot/skins/default/media/js/tinymce/plugins/emotions/img/smiley-cool.gif create mode 100644 askbot/skins/default/media/js/tinymce/plugins/emotions/img/smiley-cry.gif create mode 100644 askbot/skins/default/media/js/tinymce/plugins/emotions/img/smiley-embarassed.gif create mode 100644 askbot/skins/default/media/js/tinymce/plugins/emotions/img/smiley-foot-in-mouth.gif create mode 100644 askbot/skins/default/media/js/tinymce/plugins/emotions/img/smiley-frown.gif create mode 100644 askbot/skins/default/media/js/tinymce/plugins/emotions/img/smiley-innocent.gif create mode 100644 askbot/skins/default/media/js/tinymce/plugins/emotions/img/smiley-kiss.gif create mode 100644 askbot/skins/default/media/js/tinymce/plugins/emotions/img/smiley-laughing.gif create mode 100644 askbot/skins/default/media/js/tinymce/plugins/emotions/img/smiley-money-mouth.gif create mode 100644 askbot/skins/default/media/js/tinymce/plugins/emotions/img/smiley-sealed.gif create mode 100644 askbot/skins/default/media/js/tinymce/plugins/emotions/img/smiley-smile.gif create mode 100644 askbot/skins/default/media/js/tinymce/plugins/emotions/img/smiley-surprised.gif create mode 100644 askbot/skins/default/media/js/tinymce/plugins/emotions/img/smiley-tongue-out.gif create mode 100644 askbot/skins/default/media/js/tinymce/plugins/emotions/img/smiley-undecided.gif create mode 100644 askbot/skins/default/media/js/tinymce/plugins/emotions/img/smiley-wink.gif create mode 100644 askbot/skins/default/media/js/tinymce/plugins/emotions/img/smiley-yell.gif create mode 100644 askbot/skins/default/media/js/tinymce/plugins/emotions/js/emotions.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/emotions/langs/en_dlg.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/example/dialog.htm create mode 100644 askbot/skins/default/media/js/tinymce/plugins/example/editor_plugin.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/example/editor_plugin_src.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/example/img/example.gif create mode 100644 askbot/skins/default/media/js/tinymce/plugins/example/js/dialog.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/example/langs/en.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/example/langs/en_dlg.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/example_dependency/editor_plugin.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/example_dependency/editor_plugin_src.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/fullpage/css/fullpage.css create mode 100644 askbot/skins/default/media/js/tinymce/plugins/fullpage/editor_plugin.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/fullpage/editor_plugin_src.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/fullpage/fullpage.htm create mode 100644 askbot/skins/default/media/js/tinymce/plugins/fullpage/js/fullpage.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/fullpage/langs/en_dlg.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/fullscreen/editor_plugin.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/fullscreen/editor_plugin_src.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/fullscreen/fullscreen.htm create mode 100644 askbot/skins/default/media/js/tinymce/plugins/iespell/editor_plugin.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/iespell/editor_plugin_src.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/inlinepopups/editor_plugin.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/inlinepopups/editor_plugin_src.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif create mode 100644 askbot/skins/default/media/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/button.gif create mode 100644 askbot/skins/default/media/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif create mode 100644 askbot/skins/default/media/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif create mode 100644 askbot/skins/default/media/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif create mode 100644 askbot/skins/default/media/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif create mode 100644 askbot/skins/default/media/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif create mode 100644 askbot/skins/default/media/js/tinymce/plugins/inlinepopups/skins/clearlooks2/window.css create mode 100644 askbot/skins/default/media/js/tinymce/plugins/inlinepopups/template.htm create mode 100644 askbot/skins/default/media/js/tinymce/plugins/insertdatetime/editor_plugin.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/insertdatetime/editor_plugin_src.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/layer/editor_plugin.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/layer/editor_plugin_src.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/legacyoutput/editor_plugin.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/legacyoutput/editor_plugin_src.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/lists/editor_plugin.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/lists/editor_plugin_src.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/media/css/media.css create mode 100644 askbot/skins/default/media/js/tinymce/plugins/media/editor_plugin.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/media/editor_plugin_src.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/media/js/embed.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/media/js/media.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/media/langs/en_dlg.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/media/media.htm create mode 100644 askbot/skins/default/media/js/tinymce/plugins/media/moxieplayer.swf create mode 100644 askbot/skins/default/media/js/tinymce/plugins/nonbreaking/editor_plugin.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/nonbreaking/editor_plugin_src.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/noneditable/editor_plugin.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/noneditable/editor_plugin_src.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/pagebreak/editor_plugin.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/pagebreak/editor_plugin_src.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/paste/editor_plugin.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/paste/editor_plugin_src.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/paste/js/pastetext.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/paste/js/pasteword.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/paste/langs/en_dlg.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/paste/pastetext.htm create mode 100644 askbot/skins/default/media/js/tinymce/plugins/paste/pasteword.htm create mode 100644 askbot/skins/default/media/js/tinymce/plugins/preview/editor_plugin.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/preview/editor_plugin_src.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/preview/example.html create mode 100644 askbot/skins/default/media/js/tinymce/plugins/preview/jscripts/embed.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/preview/preview.html create mode 100644 askbot/skins/default/media/js/tinymce/plugins/print/editor_plugin.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/print/editor_plugin_src.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/save/editor_plugin.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/save/editor_plugin_src.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/searchreplace/css/searchreplace.css create mode 100644 askbot/skins/default/media/js/tinymce/plugins/searchreplace/editor_plugin.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/searchreplace/editor_plugin_src.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/searchreplace/js/searchreplace.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/searchreplace/langs/en_dlg.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/searchreplace/searchreplace.htm create mode 100644 askbot/skins/default/media/js/tinymce/plugins/spellchecker/css/content.css create mode 100644 askbot/skins/default/media/js/tinymce/plugins/spellchecker/editor_plugin.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/spellchecker/editor_plugin_src.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/spellchecker/img/wline.gif create mode 100644 askbot/skins/default/media/js/tinymce/plugins/style/css/props.css create mode 100644 askbot/skins/default/media/js/tinymce/plugins/style/editor_plugin.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/style/editor_plugin_src.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/style/js/props.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/style/langs/en_dlg.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/style/props.htm create mode 100644 askbot/skins/default/media/js/tinymce/plugins/style/readme.txt create mode 100644 askbot/skins/default/media/js/tinymce/plugins/tabfocus/editor_plugin.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/tabfocus/editor_plugin_src.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/table/cell.htm create mode 100644 askbot/skins/default/media/js/tinymce/plugins/table/css/cell.css create mode 100644 askbot/skins/default/media/js/tinymce/plugins/table/css/row.css create mode 100644 askbot/skins/default/media/js/tinymce/plugins/table/css/table.css create mode 100644 askbot/skins/default/media/js/tinymce/plugins/table/editor_plugin.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/table/editor_plugin_src.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/table/js/cell.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/table/js/merge_cells.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/table/js/row.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/table/js/table.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/table/langs/en_dlg.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/table/merge_cells.htm create mode 100644 askbot/skins/default/media/js/tinymce/plugins/table/row.htm create mode 100644 askbot/skins/default/media/js/tinymce/plugins/table/table.htm create mode 100644 askbot/skins/default/media/js/tinymce/plugins/template/blank.htm create mode 100644 askbot/skins/default/media/js/tinymce/plugins/template/css/template.css create mode 100644 askbot/skins/default/media/js/tinymce/plugins/template/editor_plugin.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/template/editor_plugin_src.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/template/js/template.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/template/langs/en_dlg.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/template/template.htm create mode 100644 askbot/skins/default/media/js/tinymce/plugins/visualblocks/css/visualblocks.css create mode 100644 askbot/skins/default/media/js/tinymce/plugins/visualblocks/editor_plugin.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/visualblocks/editor_plugin_src.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/visualchars/editor_plugin.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/visualchars/editor_plugin_src.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/wordcount/editor_plugin.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/wordcount/editor_plugin_src.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/abbr.htm create mode 100644 askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/acronym.htm create mode 100644 askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/attributes.htm create mode 100644 askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/cite.htm create mode 100644 askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/css/attributes.css create mode 100644 askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/css/popup.css create mode 100644 askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/del.htm create mode 100644 askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/editor_plugin.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/editor_plugin_src.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/ins.htm create mode 100644 askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/js/abbr.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/js/acronym.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/js/attributes.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/js/cite.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/js/del.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/js/element_common.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/js/ins.js create mode 100644 askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/langs/en_dlg.js create mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/about.htm create mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/anchor.htm create mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/charmap.htm create mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/color_picker.htm create mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/editor_template.js create mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/editor_template_src.js create mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/image.htm create mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/img/colorpicker.jpg create mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/img/flash.gif create mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/img/icons.gif create mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/img/iframe.gif create mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/img/pagebreak.gif create mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/img/quicktime.gif create mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/img/realmedia.gif create mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/img/shockwave.gif create mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/img/trans.gif create mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/img/video.gif create mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/img/windowsmedia.gif create mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/js/about.js create mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/js/anchor.js create mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/js/charmap.js create mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/js/color_picker.js create mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/js/image.js create mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/js/link.js create mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/js/source_editor.js create mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/langs/en.js create mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/langs/en_dlg.js create mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/link.htm create mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/shortcuts.htm create mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/skins/default/content.css create mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/skins/default/dialog.css create mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/skins/default/img/buttons.png create mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/skins/default/img/items.gif create mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/skins/default/img/menu_arrow.gif create mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/skins/default/img/menu_check.gif create mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/skins/default/img/progress.gif create mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/skins/default/img/tabs.gif create mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/skins/default/ui.css create mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/skins/highcontrast/content.css create mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/skins/highcontrast/dialog.css create mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/skins/highcontrast/ui.css create mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/skins/o2k7/content.css create mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/skins/o2k7/dialog.css create mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/skins/o2k7/img/button_bg.png create mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/skins/o2k7/img/button_bg_black.png create mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/skins/o2k7/img/button_bg_silver.png create mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/skins/o2k7/ui.css create mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/skins/o2k7/ui_black.css create mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/skins/o2k7/ui_silver.css create mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/source_editor.htm create mode 100644 askbot/skins/default/media/js/tinymce/themes/simple/editor_template.js create mode 100644 askbot/skins/default/media/js/tinymce/themes/simple/editor_template_src.js create mode 100644 askbot/skins/default/media/js/tinymce/themes/simple/img/icons.gif create mode 100644 askbot/skins/default/media/js/tinymce/themes/simple/langs/en.js create mode 100644 askbot/skins/default/media/js/tinymce/themes/simple/skins/default/content.css create mode 100644 askbot/skins/default/media/js/tinymce/themes/simple/skins/default/ui.css create mode 100644 askbot/skins/default/media/js/tinymce/themes/simple/skins/o2k7/content.css create mode 100644 askbot/skins/default/media/js/tinymce/themes/simple/skins/o2k7/img/button_bg.png create mode 100644 askbot/skins/default/media/js/tinymce/themes/simple/skins/o2k7/ui.css create mode 100644 askbot/skins/default/media/js/tinymce/tiny_mce.js create mode 100644 askbot/skins/default/media/js/tinymce/tiny_mce_popup.js create mode 100644 askbot/skins/default/media/js/tinymce/tiny_mce_src.js create mode 100644 askbot/skins/default/media/js/tinymce/utils/editable_selects.js create mode 100644 askbot/skins/default/media/js/tinymce/utils/form_utils.js create mode 100644 askbot/skins/default/media/js/tinymce/utils/mctabs.js create mode 100644 askbot/skins/default/media/js/tinymce/utils/validate.js create mode 100644 askbot/skins/default/media/js/user.js create mode 100644 askbot/skins/default/media/js/utils.js create mode 100644 askbot/skins/default/media/js/wmd/images/editor-toolbar-background.png create mode 100755 askbot/skins/default/media/js/wmd/images/wmd-buttons.png create mode 100644 askbot/skins/default/media/js/wmd/showdown-min.js create mode 100644 askbot/skins/default/media/js/wmd/showdown.js create mode 100644 askbot/skins/default/media/js/wmd/wmd-min.js create mode 100644 askbot/skins/default/media/js/wmd/wmd-test.html create mode 100644 askbot/skins/default/media/js/wmd/wmd.css create mode 100644 askbot/skins/default/media/js/wmd/wmd.js diff --git a/askbot/skins/common/media/images/anon.png b/askbot/skins/common/media/images/anon.png deleted file mode 100644 index a2041590..00000000 Binary files a/askbot/skins/common/media/images/anon.png and /dev/null differ diff --git a/askbot/skins/common/media/images/bigbutton.png b/askbot/skins/common/media/images/bigbutton.png deleted file mode 100644 index 2a7c0f05..00000000 Binary files a/askbot/skins/common/media/images/bigbutton.png and /dev/null differ diff --git a/askbot/skins/common/media/images/bigbuttonhover.png b/askbot/skins/common/media/images/bigbuttonhover.png deleted file mode 100644 index cf4bacca..00000000 Binary files a/askbot/skins/common/media/images/bigbuttonhover.png and /dev/null differ diff --git a/askbot/skins/common/media/images/blue-up-arrow-h18px.png b/askbot/skins/common/media/images/blue-up-arrow-h18px.png deleted file mode 100755 index e1f29e86..00000000 Binary files a/askbot/skins/common/media/images/blue-up-arrow-h18px.png and /dev/null differ diff --git a/askbot/skins/common/media/images/box-arrow.gif b/askbot/skins/common/media/images/box-arrow.gif deleted file mode 100755 index 89dcf5b3..00000000 Binary files a/askbot/skins/common/media/images/box-arrow.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/bullet_green.gif b/askbot/skins/common/media/images/bullet_green.gif deleted file mode 100755 index fa530910..00000000 Binary files a/askbot/skins/common/media/images/bullet_green.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/cc-88x31.png b/askbot/skins/common/media/images/cc-88x31.png deleted file mode 100755 index 0f2a0f10..00000000 Binary files a/askbot/skins/common/media/images/cc-88x31.png and /dev/null differ diff --git a/askbot/skins/common/media/images/cc-by-sa.png b/askbot/skins/common/media/images/cc-by-sa.png deleted file mode 100644 index f0a944e0..00000000 Binary files a/askbot/skins/common/media/images/cc-by-sa.png and /dev/null differ diff --git a/askbot/skins/common/media/images/close-small-dark.png b/askbot/skins/common/media/images/close-small-dark.png deleted file mode 100755 index 280c1fc7..00000000 Binary files a/askbot/skins/common/media/images/close-small-dark.png and /dev/null differ diff --git a/askbot/skins/common/media/images/close-small-hover.png b/askbot/skins/common/media/images/close-small-hover.png deleted file mode 100755 index 7899aec7..00000000 Binary files a/askbot/skins/common/media/images/close-small-hover.png and /dev/null differ diff --git a/askbot/skins/common/media/images/close-small.png b/askbot/skins/common/media/images/close-small.png deleted file mode 100755 index 5a99d31f..00000000 Binary files a/askbot/skins/common/media/images/close-small.png and /dev/null differ diff --git a/askbot/skins/common/media/images/contributorsback.png b/askbot/skins/common/media/images/contributorsback.png deleted file mode 100644 index dd728383..00000000 Binary files a/askbot/skins/common/media/images/contributorsback.png and /dev/null differ diff --git a/askbot/skins/common/media/images/dash.gif b/askbot/skins/common/media/images/dash.gif deleted file mode 100755 index d1ddc507..00000000 Binary files a/askbot/skins/common/media/images/dash.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/dialog-warning-off.png b/askbot/skins/common/media/images/dialog-warning-off.png deleted file mode 100644 index 258e4d86..00000000 Binary files a/askbot/skins/common/media/images/dialog-warning-off.png and /dev/null differ diff --git a/askbot/skins/common/media/images/dialog-warning.png b/askbot/skins/common/media/images/dialog-warning.png deleted file mode 100644 index a9e4ff39..00000000 Binary files a/askbot/skins/common/media/images/dialog-warning.png and /dev/null differ diff --git a/askbot/skins/common/media/images/djangomade124x25_grey.gif b/askbot/skins/common/media/images/djangomade124x25_grey.gif deleted file mode 100755 index d34bb311..00000000 Binary files a/askbot/skins/common/media/images/djangomade124x25_grey.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/dot-g.gif b/askbot/skins/common/media/images/dot-g.gif deleted file mode 100755 index 5d6bb28e..00000000 Binary files a/askbot/skins/common/media/images/dot-g.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/dot-list.gif b/askbot/skins/common/media/images/dot-list.gif deleted file mode 100755 index f6a6b865..00000000 Binary files a/askbot/skins/common/media/images/dot-list.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/edit.png b/askbot/skins/common/media/images/edit.png deleted file mode 100755 index dcb09be0..00000000 Binary files a/askbot/skins/common/media/images/edit.png and /dev/null differ diff --git a/askbot/skins/common/media/images/expander-arrow-hide.gif b/askbot/skins/common/media/images/expander-arrow-hide.gif deleted file mode 100755 index feb6a618..00000000 Binary files a/askbot/skins/common/media/images/expander-arrow-hide.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/expander-arrow-show.gif b/askbot/skins/common/media/images/expander-arrow-show.gif deleted file mode 100755 index 6825c56e..00000000 Binary files a/askbot/skins/common/media/images/expander-arrow-show.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/favicon.gif b/askbot/skins/common/media/images/favicon.gif deleted file mode 100644 index f7f9061b..00000000 Binary files a/askbot/skins/common/media/images/favicon.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/favicon.ico b/askbot/skins/common/media/images/favicon.ico deleted file mode 100644 index 51a57bed..00000000 Binary files a/askbot/skins/common/media/images/favicon.ico and /dev/null differ diff --git a/askbot/skins/common/media/images/feed-icon-small.png b/askbot/skins/common/media/images/feed-icon-small.png deleted file mode 100644 index 2794b0f5..00000000 Binary files a/askbot/skins/common/media/images/feed-icon-small.png and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/ad.gif b/askbot/skins/common/media/images/flags/ad.gif deleted file mode 100755 index 57b49973..00000000 Binary files a/askbot/skins/common/media/images/flags/ad.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/ae.gif b/askbot/skins/common/media/images/flags/ae.gif deleted file mode 100755 index 78d15b67..00000000 Binary files a/askbot/skins/common/media/images/flags/ae.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/af.gif b/askbot/skins/common/media/images/flags/af.gif deleted file mode 100755 index 98894082..00000000 Binary files a/askbot/skins/common/media/images/flags/af.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/ag.gif b/askbot/skins/common/media/images/flags/ag.gif deleted file mode 100755 index 48f8e7bc..00000000 Binary files a/askbot/skins/common/media/images/flags/ag.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/ai.gif b/askbot/skins/common/media/images/flags/ai.gif deleted file mode 100755 index 1cbc5795..00000000 Binary files a/askbot/skins/common/media/images/flags/ai.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/al.gif b/askbot/skins/common/media/images/flags/al.gif deleted file mode 100755 index c44fe0a0..00000000 Binary files a/askbot/skins/common/media/images/flags/al.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/am.gif b/askbot/skins/common/media/images/flags/am.gif deleted file mode 100755 index 2915e30c..00000000 Binary files a/askbot/skins/common/media/images/flags/am.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/an.gif b/askbot/skins/common/media/images/flags/an.gif deleted file mode 100755 index cb570c67..00000000 Binary files a/askbot/skins/common/media/images/flags/an.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/ao.gif b/askbot/skins/common/media/images/flags/ao.gif deleted file mode 100644 index 8c854fa1..00000000 Binary files a/askbot/skins/common/media/images/flags/ao.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/ar.gif b/askbot/skins/common/media/images/flags/ar.gif deleted file mode 100755 index a9f71f7d..00000000 Binary files a/askbot/skins/common/media/images/flags/ar.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/as.gif b/askbot/skins/common/media/images/flags/as.gif deleted file mode 100755 index d776ec27..00000000 Binary files a/askbot/skins/common/media/images/flags/as.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/at.gif b/askbot/skins/common/media/images/flags/at.gif deleted file mode 100755 index 87e12173..00000000 Binary files a/askbot/skins/common/media/images/flags/at.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/au.gif b/askbot/skins/common/media/images/flags/au.gif deleted file mode 100755 index 5269c6a0..00000000 Binary files a/askbot/skins/common/media/images/flags/au.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/aw.gif b/askbot/skins/common/media/images/flags/aw.gif deleted file mode 100755 index 27fdb4d1..00000000 Binary files a/askbot/skins/common/media/images/flags/aw.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/ax.gif b/askbot/skins/common/media/images/flags/ax.gif deleted file mode 100755 index 0ceb6849..00000000 Binary files a/askbot/skins/common/media/images/flags/ax.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/az.gif b/askbot/skins/common/media/images/flags/az.gif deleted file mode 100755 index d7716184..00000000 Binary files a/askbot/skins/common/media/images/flags/az.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/ba.gif b/askbot/skins/common/media/images/flags/ba.gif deleted file mode 100755 index 9bf5f0ac..00000000 Binary files a/askbot/skins/common/media/images/flags/ba.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/bb.gif b/askbot/skins/common/media/images/flags/bb.gif deleted file mode 100755 index b7d08e57..00000000 Binary files a/askbot/skins/common/media/images/flags/bb.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/bd.gif b/askbot/skins/common/media/images/flags/bd.gif deleted file mode 100755 index 0fd27eca..00000000 Binary files a/askbot/skins/common/media/images/flags/bd.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/be.gif b/askbot/skins/common/media/images/flags/be.gif deleted file mode 100755 index ae09bfbe..00000000 Binary files a/askbot/skins/common/media/images/flags/be.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/bf.gif b/askbot/skins/common/media/images/flags/bf.gif deleted file mode 100755 index 9d6772cd..00000000 Binary files a/askbot/skins/common/media/images/flags/bf.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/bg.gif b/askbot/skins/common/media/images/flags/bg.gif deleted file mode 100755 index 11cf8ff3..00000000 Binary files a/askbot/skins/common/media/images/flags/bg.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/bh.gif b/askbot/skins/common/media/images/flags/bh.gif deleted file mode 100755 index 56aa72b2..00000000 Binary files a/askbot/skins/common/media/images/flags/bh.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/bi.gif b/askbot/skins/common/media/images/flags/bi.gif deleted file mode 100755 index 6e2cbe12..00000000 Binary files a/askbot/skins/common/media/images/flags/bi.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/bj.gif b/askbot/skins/common/media/images/flags/bj.gif deleted file mode 100755 index e676116f..00000000 Binary files a/askbot/skins/common/media/images/flags/bj.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/bm.gif b/askbot/skins/common/media/images/flags/bm.gif deleted file mode 100755 index 9feb87bc..00000000 Binary files a/askbot/skins/common/media/images/flags/bm.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/bn.gif b/askbot/skins/common/media/images/flags/bn.gif deleted file mode 100755 index b7b6b0f9..00000000 Binary files a/askbot/skins/common/media/images/flags/bn.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/bo.gif b/askbot/skins/common/media/images/flags/bo.gif deleted file mode 100755 index 4844f856..00000000 Binary files a/askbot/skins/common/media/images/flags/bo.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/br.gif b/askbot/skins/common/media/images/flags/br.gif deleted file mode 100755 index 8c866162..00000000 Binary files a/askbot/skins/common/media/images/flags/br.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/bs.gif b/askbot/skins/common/media/images/flags/bs.gif deleted file mode 100755 index c0a741e5..00000000 Binary files a/askbot/skins/common/media/images/flags/bs.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/bt.gif b/askbot/skins/common/media/images/flags/bt.gif deleted file mode 100755 index abe2f3cc..00000000 Binary files a/askbot/skins/common/media/images/flags/bt.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/bv.gif b/askbot/skins/common/media/images/flags/bv.gif deleted file mode 100755 index 6202d1f3..00000000 Binary files a/askbot/skins/common/media/images/flags/bv.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/bw.gif b/askbot/skins/common/media/images/flags/bw.gif deleted file mode 100755 index 986ab63c..00000000 Binary files a/askbot/skins/common/media/images/flags/bw.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/by.gif b/askbot/skins/common/media/images/flags/by.gif deleted file mode 100755 index 43ffcd4c..00000000 Binary files a/askbot/skins/common/media/images/flags/by.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/bz.gif b/askbot/skins/common/media/images/flags/bz.gif deleted file mode 100755 index 791737f0..00000000 Binary files a/askbot/skins/common/media/images/flags/bz.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/ca.gif b/askbot/skins/common/media/images/flags/ca.gif deleted file mode 100755 index 457d9662..00000000 Binary files a/askbot/skins/common/media/images/flags/ca.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/catalonia.gif b/askbot/skins/common/media/images/flags/catalonia.gif deleted file mode 100644 index 73df9a04..00000000 Binary files a/askbot/skins/common/media/images/flags/catalonia.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/cc.gif b/askbot/skins/common/media/images/flags/cc.gif deleted file mode 100755 index 3f783270..00000000 Binary files a/askbot/skins/common/media/images/flags/cc.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/cd.gif b/askbot/skins/common/media/images/flags/cd.gif deleted file mode 100644 index 1df717ae..00000000 Binary files a/askbot/skins/common/media/images/flags/cd.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/cf.gif b/askbot/skins/common/media/images/flags/cf.gif deleted file mode 100755 index 35787ca4..00000000 Binary files a/askbot/skins/common/media/images/flags/cf.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/cg.gif b/askbot/skins/common/media/images/flags/cg.gif deleted file mode 100755 index e0a62a51..00000000 Binary files a/askbot/skins/common/media/images/flags/cg.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/ch.gif b/askbot/skins/common/media/images/flags/ch.gif deleted file mode 100755 index d5c0e5b7..00000000 Binary files a/askbot/skins/common/media/images/flags/ch.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/ci.gif b/askbot/skins/common/media/images/flags/ci.gif deleted file mode 100755 index 844120a5..00000000 Binary files a/askbot/skins/common/media/images/flags/ci.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/ck.gif b/askbot/skins/common/media/images/flags/ck.gif deleted file mode 100755 index 2edb7399..00000000 Binary files a/askbot/skins/common/media/images/flags/ck.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/cl.gif b/askbot/skins/common/media/images/flags/cl.gif deleted file mode 100755 index cbc370e6..00000000 Binary files a/askbot/skins/common/media/images/flags/cl.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/cm.gif b/askbot/skins/common/media/images/flags/cm.gif deleted file mode 100755 index 1fb102b2..00000000 Binary files a/askbot/skins/common/media/images/flags/cm.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/cn.gif b/askbot/skins/common/media/images/flags/cn.gif deleted file mode 100755 index b0525309..00000000 Binary files a/askbot/skins/common/media/images/flags/cn.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/co.gif b/askbot/skins/common/media/images/flags/co.gif deleted file mode 100755 index d0e15caf..00000000 Binary files a/askbot/skins/common/media/images/flags/co.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/cr.gif b/askbot/skins/common/media/images/flags/cr.gif deleted file mode 100755 index 0728dd6a..00000000 Binary files a/askbot/skins/common/media/images/flags/cr.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/cs.gif b/askbot/skins/common/media/images/flags/cs.gif deleted file mode 100755 index 101db649..00000000 Binary files a/askbot/skins/common/media/images/flags/cs.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/cu.gif b/askbot/skins/common/media/images/flags/cu.gif deleted file mode 100755 index 291255ca..00000000 Binary files a/askbot/skins/common/media/images/flags/cu.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/cv.gif b/askbot/skins/common/media/images/flags/cv.gif deleted file mode 100755 index 43c6c6cb..00000000 Binary files a/askbot/skins/common/media/images/flags/cv.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/cx.gif b/askbot/skins/common/media/images/flags/cx.gif deleted file mode 100755 index a5b43089..00000000 Binary files a/askbot/skins/common/media/images/flags/cx.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/cy.gif b/askbot/skins/common/media/images/flags/cy.gif deleted file mode 100755 index 35c661e1..00000000 Binary files a/askbot/skins/common/media/images/flags/cy.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/cz.gif b/askbot/skins/common/media/images/flags/cz.gif deleted file mode 100755 index 0a605e58..00000000 Binary files a/askbot/skins/common/media/images/flags/cz.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/de.gif b/askbot/skins/common/media/images/flags/de.gif deleted file mode 100755 index 75728ddf..00000000 Binary files a/askbot/skins/common/media/images/flags/de.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/dj.gif b/askbot/skins/common/media/images/flags/dj.gif deleted file mode 100755 index 212406d9..00000000 Binary files a/askbot/skins/common/media/images/flags/dj.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/dk.gif b/askbot/skins/common/media/images/flags/dk.gif deleted file mode 100755 index 03e75bd2..00000000 Binary files a/askbot/skins/common/media/images/flags/dk.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/dm.gif b/askbot/skins/common/media/images/flags/dm.gif deleted file mode 100755 index 2f87f3ca..00000000 Binary files a/askbot/skins/common/media/images/flags/dm.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/do.gif b/askbot/skins/common/media/images/flags/do.gif deleted file mode 100755 index f7d0bad3..00000000 Binary files a/askbot/skins/common/media/images/flags/do.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/dz.gif b/askbot/skins/common/media/images/flags/dz.gif deleted file mode 100755 index ed580a7c..00000000 Binary files a/askbot/skins/common/media/images/flags/dz.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/ec.gif b/askbot/skins/common/media/images/flags/ec.gif deleted file mode 100755 index 9e41e0ec..00000000 Binary files a/askbot/skins/common/media/images/flags/ec.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/ee.gif b/askbot/skins/common/media/images/flags/ee.gif deleted file mode 100755 index 9397a2d0..00000000 Binary files a/askbot/skins/common/media/images/flags/ee.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/eg.gif b/askbot/skins/common/media/images/flags/eg.gif deleted file mode 100755 index 6857c7dd..00000000 Binary files a/askbot/skins/common/media/images/flags/eg.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/eh.gif b/askbot/skins/common/media/images/flags/eh.gif deleted file mode 100755 index dd0391c2..00000000 Binary files a/askbot/skins/common/media/images/flags/eh.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/england.gif b/askbot/skins/common/media/images/flags/england.gif deleted file mode 100755 index 933a4f0b..00000000 Binary files a/askbot/skins/common/media/images/flags/england.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/er.gif b/askbot/skins/common/media/images/flags/er.gif deleted file mode 100755 index 3d4d612c..00000000 Binary files a/askbot/skins/common/media/images/flags/er.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/es.gif b/askbot/skins/common/media/images/flags/es.gif deleted file mode 100755 index c27d65e5..00000000 Binary files a/askbot/skins/common/media/images/flags/es.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/et.gif b/askbot/skins/common/media/images/flags/et.gif deleted file mode 100755 index f77995d0..00000000 Binary files a/askbot/skins/common/media/images/flags/et.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/europeanunion.gif b/askbot/skins/common/media/images/flags/europeanunion.gif deleted file mode 100644 index 28a762a5..00000000 Binary files a/askbot/skins/common/media/images/flags/europeanunion.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/fam.gif b/askbot/skins/common/media/images/flags/fam.gif deleted file mode 100755 index 7d528852..00000000 Binary files a/askbot/skins/common/media/images/flags/fam.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/fi.gif b/askbot/skins/common/media/images/flags/fi.gif deleted file mode 100755 index 8d3a1918..00000000 Binary files a/askbot/skins/common/media/images/flags/fi.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/fj.gif b/askbot/skins/common/media/images/flags/fj.gif deleted file mode 100755 index 486151cb..00000000 Binary files a/askbot/skins/common/media/images/flags/fj.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/fk.gif b/askbot/skins/common/media/images/flags/fk.gif deleted file mode 100755 index 37b5ecf3..00000000 Binary files a/askbot/skins/common/media/images/flags/fk.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/fm.gif b/askbot/skins/common/media/images/flags/fm.gif deleted file mode 100755 index 7f8723b7..00000000 Binary files a/askbot/skins/common/media/images/flags/fm.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/fo.gif b/askbot/skins/common/media/images/flags/fo.gif deleted file mode 100755 index 4a90fc04..00000000 Binary files a/askbot/skins/common/media/images/flags/fo.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/fr.gif b/askbot/skins/common/media/images/flags/fr.gif deleted file mode 100755 index 43d0b801..00000000 Binary files a/askbot/skins/common/media/images/flags/fr.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/ga.gif b/askbot/skins/common/media/images/flags/ga.gif deleted file mode 100755 index 23fd5f0d..00000000 Binary files a/askbot/skins/common/media/images/flags/ga.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/gb.gif b/askbot/skins/common/media/images/flags/gb.gif deleted file mode 100644 index 3c6bce15..00000000 Binary files a/askbot/skins/common/media/images/flags/gb.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/gd.gif b/askbot/skins/common/media/images/flags/gd.gif deleted file mode 100755 index 25ea3123..00000000 Binary files a/askbot/skins/common/media/images/flags/gd.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/ge.gif b/askbot/skins/common/media/images/flags/ge.gif deleted file mode 100755 index faa7f126..00000000 Binary files a/askbot/skins/common/media/images/flags/ge.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/gf.gif b/askbot/skins/common/media/images/flags/gf.gif deleted file mode 100755 index 43d0b801..00000000 Binary files a/askbot/skins/common/media/images/flags/gf.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/gh.gif b/askbot/skins/common/media/images/flags/gh.gif deleted file mode 100755 index 273fb7d1..00000000 Binary files a/askbot/skins/common/media/images/flags/gh.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/gi.gif b/askbot/skins/common/media/images/flags/gi.gif deleted file mode 100755 index 7b1984bc..00000000 Binary files a/askbot/skins/common/media/images/flags/gi.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/gl.gif b/askbot/skins/common/media/images/flags/gl.gif deleted file mode 100755 index ef445be0..00000000 Binary files a/askbot/skins/common/media/images/flags/gl.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/gm.gif b/askbot/skins/common/media/images/flags/gm.gif deleted file mode 100755 index 6847c5a8..00000000 Binary files a/askbot/skins/common/media/images/flags/gm.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/gn.gif b/askbot/skins/common/media/images/flags/gn.gif deleted file mode 100755 index a982ac6f..00000000 Binary files a/askbot/skins/common/media/images/flags/gn.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/gp.gif b/askbot/skins/common/media/images/flags/gp.gif deleted file mode 100755 index 31166db6..00000000 Binary files a/askbot/skins/common/media/images/flags/gp.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/gq.gif b/askbot/skins/common/media/images/flags/gq.gif deleted file mode 100755 index 8b4e0cc4..00000000 Binary files a/askbot/skins/common/media/images/flags/gq.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/gr.gif b/askbot/skins/common/media/images/flags/gr.gif deleted file mode 100755 index b4c8c04e..00000000 Binary files a/askbot/skins/common/media/images/flags/gr.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/gs.gif b/askbot/skins/common/media/images/flags/gs.gif deleted file mode 100755 index ccc96ec0..00000000 Binary files a/askbot/skins/common/media/images/flags/gs.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/gt.gif b/askbot/skins/common/media/images/flags/gt.gif deleted file mode 100755 index 7e94d1dd..00000000 Binary files a/askbot/skins/common/media/images/flags/gt.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/gu.gif b/askbot/skins/common/media/images/flags/gu.gif deleted file mode 100755 index eafef683..00000000 Binary files a/askbot/skins/common/media/images/flags/gu.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/gw.gif b/askbot/skins/common/media/images/flags/gw.gif deleted file mode 100755 index 55f75711..00000000 Binary files a/askbot/skins/common/media/images/flags/gw.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/gy.gif b/askbot/skins/common/media/images/flags/gy.gif deleted file mode 100755 index 1cb4cd71..00000000 Binary files a/askbot/skins/common/media/images/flags/gy.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/hk.gif b/askbot/skins/common/media/images/flags/hk.gif deleted file mode 100755 index 798af96d..00000000 Binary files a/askbot/skins/common/media/images/flags/hk.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/hm.gif b/askbot/skins/common/media/images/flags/hm.gif deleted file mode 100755 index 5269c6a0..00000000 Binary files a/askbot/skins/common/media/images/flags/hm.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/hn.gif b/askbot/skins/common/media/images/flags/hn.gif deleted file mode 100755 index 6c4ffe8e..00000000 Binary files a/askbot/skins/common/media/images/flags/hn.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/hr.gif b/askbot/skins/common/media/images/flags/hr.gif deleted file mode 100755 index 557c6602..00000000 Binary files a/askbot/skins/common/media/images/flags/hr.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/ht.gif b/askbot/skins/common/media/images/flags/ht.gif deleted file mode 100755 index 059604ab..00000000 Binary files a/askbot/skins/common/media/images/flags/ht.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/hu.gif b/askbot/skins/common/media/images/flags/hu.gif deleted file mode 100755 index 6142d868..00000000 Binary files a/askbot/skins/common/media/images/flags/hu.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/id.gif b/askbot/skins/common/media/images/flags/id.gif deleted file mode 100755 index 865161b0..00000000 Binary files a/askbot/skins/common/media/images/flags/id.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/ie.gif b/askbot/skins/common/media/images/flags/ie.gif deleted file mode 100755 index 506ad285..00000000 Binary files a/askbot/skins/common/media/images/flags/ie.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/il.gif b/askbot/skins/common/media/images/flags/il.gif deleted file mode 100755 index c8483ae5..00000000 Binary files a/askbot/skins/common/media/images/flags/il.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/in.gif b/askbot/skins/common/media/images/flags/in.gif deleted file mode 100755 index 1cd80272..00000000 Binary files a/askbot/skins/common/media/images/flags/in.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/io.gif b/askbot/skins/common/media/images/flags/io.gif deleted file mode 100755 index de7e7ab3..00000000 Binary files a/askbot/skins/common/media/images/flags/io.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/iq.gif b/askbot/skins/common/media/images/flags/iq.gif deleted file mode 100755 index c34fe3c4..00000000 Binary files a/askbot/skins/common/media/images/flags/iq.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/ir.gif b/askbot/skins/common/media/images/flags/ir.gif deleted file mode 100755 index 156040fc..00000000 Binary files a/askbot/skins/common/media/images/flags/ir.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/is.gif b/askbot/skins/common/media/images/flags/is.gif deleted file mode 100755 index b42502de..00000000 Binary files a/askbot/skins/common/media/images/flags/is.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/it.gif b/askbot/skins/common/media/images/flags/it.gif deleted file mode 100755 index d79e90e9..00000000 Binary files a/askbot/skins/common/media/images/flags/it.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/jm.gif b/askbot/skins/common/media/images/flags/jm.gif deleted file mode 100755 index 0bed67c2..00000000 Binary files a/askbot/skins/common/media/images/flags/jm.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/jo.gif b/askbot/skins/common/media/images/flags/jo.gif deleted file mode 100755 index 03daf8af..00000000 Binary files a/askbot/skins/common/media/images/flags/jo.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/jp.gif b/askbot/skins/common/media/images/flags/jp.gif deleted file mode 100755 index 444c1d05..00000000 Binary files a/askbot/skins/common/media/images/flags/jp.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/ke.gif b/askbot/skins/common/media/images/flags/ke.gif deleted file mode 100755 index c2b5d45c..00000000 Binary files a/askbot/skins/common/media/images/flags/ke.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/kg.gif b/askbot/skins/common/media/images/flags/kg.gif deleted file mode 100755 index 72a4d412..00000000 Binary files a/askbot/skins/common/media/images/flags/kg.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/kh.gif b/askbot/skins/common/media/images/flags/kh.gif deleted file mode 100755 index 30a18315..00000000 Binary files a/askbot/skins/common/media/images/flags/kh.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/ki.gif b/askbot/skins/common/media/images/flags/ki.gif deleted file mode 100755 index 4a0751a2..00000000 Binary files a/askbot/skins/common/media/images/flags/ki.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/km.gif b/askbot/skins/common/media/images/flags/km.gif deleted file mode 100755 index 5859595e..00000000 Binary files a/askbot/skins/common/media/images/flags/km.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/kn.gif b/askbot/skins/common/media/images/flags/kn.gif deleted file mode 100755 index bb9cc34a..00000000 Binary files a/askbot/skins/common/media/images/flags/kn.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/kp.gif b/askbot/skins/common/media/images/flags/kp.gif deleted file mode 100755 index 6e0ca09e..00000000 Binary files a/askbot/skins/common/media/images/flags/kp.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/kr.gif b/askbot/skins/common/media/images/flags/kr.gif deleted file mode 100755 index 1cddbe75..00000000 Binary files a/askbot/skins/common/media/images/flags/kr.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/kw.gif b/askbot/skins/common/media/images/flags/kw.gif deleted file mode 100755 index 1efc7347..00000000 Binary files a/askbot/skins/common/media/images/flags/kw.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/ky.gif b/askbot/skins/common/media/images/flags/ky.gif deleted file mode 100755 index d3d02ee4..00000000 Binary files a/askbot/skins/common/media/images/flags/ky.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/kz.gif b/askbot/skins/common/media/images/flags/kz.gif deleted file mode 100755 index 24baebe0..00000000 Binary files a/askbot/skins/common/media/images/flags/kz.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/la.gif b/askbot/skins/common/media/images/flags/la.gif deleted file mode 100755 index d14cf4d8..00000000 Binary files a/askbot/skins/common/media/images/flags/la.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/lb.gif b/askbot/skins/common/media/images/flags/lb.gif deleted file mode 100755 index 003d83af..00000000 Binary files a/askbot/skins/common/media/images/flags/lb.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/lc.gif b/askbot/skins/common/media/images/flags/lc.gif deleted file mode 100644 index f5fe5bff..00000000 Binary files a/askbot/skins/common/media/images/flags/lc.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/li.gif b/askbot/skins/common/media/images/flags/li.gif deleted file mode 100755 index 713c58e1..00000000 Binary files a/askbot/skins/common/media/images/flags/li.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/lk.gif b/askbot/skins/common/media/images/flags/lk.gif deleted file mode 100755 index 1b3ee7f5..00000000 Binary files a/askbot/skins/common/media/images/flags/lk.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/lr.gif b/askbot/skins/common/media/images/flags/lr.gif deleted file mode 100755 index 435af9e5..00000000 Binary files a/askbot/skins/common/media/images/flags/lr.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/ls.gif b/askbot/skins/common/media/images/flags/ls.gif deleted file mode 100755 index 427ae957..00000000 Binary files a/askbot/skins/common/media/images/flags/ls.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/lt.gif b/askbot/skins/common/media/images/flags/lt.gif deleted file mode 100755 index dee9c601..00000000 Binary files a/askbot/skins/common/media/images/flags/lt.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/lu.gif b/askbot/skins/common/media/images/flags/lu.gif deleted file mode 100755 index 7d7293ed..00000000 Binary files a/askbot/skins/common/media/images/flags/lu.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/lv.gif b/askbot/skins/common/media/images/flags/lv.gif deleted file mode 100755 index 17e71b7e..00000000 Binary files a/askbot/skins/common/media/images/flags/lv.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/ly.gif b/askbot/skins/common/media/images/flags/ly.gif deleted file mode 100755 index a654c30a..00000000 Binary files a/askbot/skins/common/media/images/flags/ly.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/ma.gif b/askbot/skins/common/media/images/flags/ma.gif deleted file mode 100755 index fc784119..00000000 Binary files a/askbot/skins/common/media/images/flags/ma.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/mc.gif b/askbot/skins/common/media/images/flags/mc.gif deleted file mode 100755 index 02a7c8e1..00000000 Binary files a/askbot/skins/common/media/images/flags/mc.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/md.gif b/askbot/skins/common/media/images/flags/md.gif deleted file mode 100755 index e4b8a7e3..00000000 Binary files a/askbot/skins/common/media/images/flags/md.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/me.gif b/askbot/skins/common/media/images/flags/me.gif deleted file mode 100644 index a260453c..00000000 Binary files a/askbot/skins/common/media/images/flags/me.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/mg.gif b/askbot/skins/common/media/images/flags/mg.gif deleted file mode 100755 index a91b577d..00000000 Binary files a/askbot/skins/common/media/images/flags/mg.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/mh.gif b/askbot/skins/common/media/images/flags/mh.gif deleted file mode 100755 index 92f5f485..00000000 Binary files a/askbot/skins/common/media/images/flags/mh.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/mk.gif b/askbot/skins/common/media/images/flags/mk.gif deleted file mode 100755 index 7aeb8311..00000000 Binary files a/askbot/skins/common/media/images/flags/mk.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/ml.gif b/askbot/skins/common/media/images/flags/ml.gif deleted file mode 100755 index 53d6f490..00000000 Binary files a/askbot/skins/common/media/images/flags/ml.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/mm.gif b/askbot/skins/common/media/images/flags/mm.gif deleted file mode 100755 index 9e0a2756..00000000 Binary files a/askbot/skins/common/media/images/flags/mm.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/mn.gif b/askbot/skins/common/media/images/flags/mn.gif deleted file mode 100755 index dff8ea5a..00000000 Binary files a/askbot/skins/common/media/images/flags/mn.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/mo.gif b/askbot/skins/common/media/images/flags/mo.gif deleted file mode 100755 index 66cf5b4f..00000000 Binary files a/askbot/skins/common/media/images/flags/mo.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/mp.gif b/askbot/skins/common/media/images/flags/mp.gif deleted file mode 100755 index 73b7147e..00000000 Binary files a/askbot/skins/common/media/images/flags/mp.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/mq.gif b/askbot/skins/common/media/images/flags/mq.gif deleted file mode 100755 index 570bc5dd..00000000 Binary files a/askbot/skins/common/media/images/flags/mq.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/mr.gif b/askbot/skins/common/media/images/flags/mr.gif deleted file mode 100755 index f52fcf09..00000000 Binary files a/askbot/skins/common/media/images/flags/mr.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/ms.gif b/askbot/skins/common/media/images/flags/ms.gif deleted file mode 100755 index 5e5a67aa..00000000 Binary files a/askbot/skins/common/media/images/flags/ms.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/mt.gif b/askbot/skins/common/media/images/flags/mt.gif deleted file mode 100755 index 45c709f2..00000000 Binary files a/askbot/skins/common/media/images/flags/mt.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/mu.gif b/askbot/skins/common/media/images/flags/mu.gif deleted file mode 100755 index 081ab453..00000000 Binary files a/askbot/skins/common/media/images/flags/mu.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/mv.gif b/askbot/skins/common/media/images/flags/mv.gif deleted file mode 100755 index 46b63875..00000000 Binary files a/askbot/skins/common/media/images/flags/mv.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/mw.gif b/askbot/skins/common/media/images/flags/mw.gif deleted file mode 100755 index ad045a09..00000000 Binary files a/askbot/skins/common/media/images/flags/mw.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/mx.gif b/askbot/skins/common/media/images/flags/mx.gif deleted file mode 100755 index ddc75d04..00000000 Binary files a/askbot/skins/common/media/images/flags/mx.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/my.gif b/askbot/skins/common/media/images/flags/my.gif deleted file mode 100755 index fc7d5236..00000000 Binary files a/askbot/skins/common/media/images/flags/my.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/mz.gif b/askbot/skins/common/media/images/flags/mz.gif deleted file mode 100755 index 7d635082..00000000 Binary files a/askbot/skins/common/media/images/flags/mz.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/na.gif b/askbot/skins/common/media/images/flags/na.gif deleted file mode 100755 index c0babe72..00000000 Binary files a/askbot/skins/common/media/images/flags/na.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/nc.gif b/askbot/skins/common/media/images/flags/nc.gif deleted file mode 100755 index b1e91b9a..00000000 Binary files a/askbot/skins/common/media/images/flags/nc.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/ne.gif b/askbot/skins/common/media/images/flags/ne.gif deleted file mode 100755 index ff4eaf07..00000000 Binary files a/askbot/skins/common/media/images/flags/ne.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/nf.gif b/askbot/skins/common/media/images/flags/nf.gif deleted file mode 100755 index c83424c2..00000000 Binary files a/askbot/skins/common/media/images/flags/nf.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/ng.gif b/askbot/skins/common/media/images/flags/ng.gif deleted file mode 100755 index bdde7cb3..00000000 Binary files a/askbot/skins/common/media/images/flags/ng.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/ni.gif b/askbot/skins/common/media/images/flags/ni.gif deleted file mode 100755 index d05894d0..00000000 Binary files a/askbot/skins/common/media/images/flags/ni.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/nl.gif b/askbot/skins/common/media/images/flags/nl.gif deleted file mode 100755 index c1c8f46d..00000000 Binary files a/askbot/skins/common/media/images/flags/nl.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/no.gif b/askbot/skins/common/media/images/flags/no.gif deleted file mode 100755 index 6202d1f3..00000000 Binary files a/askbot/skins/common/media/images/flags/no.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/np.gif b/askbot/skins/common/media/images/flags/np.gif deleted file mode 100755 index 1096893a..00000000 Binary files a/askbot/skins/common/media/images/flags/np.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/nr.gif b/askbot/skins/common/media/images/flags/nr.gif deleted file mode 100755 index 2e4c0c5c..00000000 Binary files a/askbot/skins/common/media/images/flags/nr.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/nu.gif b/askbot/skins/common/media/images/flags/nu.gif deleted file mode 100755 index 618210a7..00000000 Binary files a/askbot/skins/common/media/images/flags/nu.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/nz.gif b/askbot/skins/common/media/images/flags/nz.gif deleted file mode 100755 index 028a5dc6..00000000 Binary files a/askbot/skins/common/media/images/flags/nz.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/om.gif b/askbot/skins/common/media/images/flags/om.gif deleted file mode 100755 index 2b8c7750..00000000 Binary files a/askbot/skins/common/media/images/flags/om.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/pa.gif b/askbot/skins/common/media/images/flags/pa.gif deleted file mode 100755 index d518b2f9..00000000 Binary files a/askbot/skins/common/media/images/flags/pa.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/pe.gif b/askbot/skins/common/media/images/flags/pe.gif deleted file mode 100755 index 3bc76390..00000000 Binary files a/askbot/skins/common/media/images/flags/pe.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/pf.gif b/askbot/skins/common/media/images/flags/pf.gif deleted file mode 100755 index 849297a5..00000000 Binary files a/askbot/skins/common/media/images/flags/pf.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/pg.gif b/askbot/skins/common/media/images/flags/pg.gif deleted file mode 100755 index 2d20b078..00000000 Binary files a/askbot/skins/common/media/images/flags/pg.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/ph.gif b/askbot/skins/common/media/images/flags/ph.gif deleted file mode 100755 index 12b380ac..00000000 Binary files a/askbot/skins/common/media/images/flags/ph.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/pk.gif b/askbot/skins/common/media/images/flags/pk.gif deleted file mode 100755 index f3f62c2e..00000000 Binary files a/askbot/skins/common/media/images/flags/pk.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/pl.gif b/askbot/skins/common/media/images/flags/pl.gif deleted file mode 100755 index bf106463..00000000 Binary files a/askbot/skins/common/media/images/flags/pl.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/pm.gif b/askbot/skins/common/media/images/flags/pm.gif deleted file mode 100755 index 99bf6fdb..00000000 Binary files a/askbot/skins/common/media/images/flags/pm.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/pn.gif b/askbot/skins/common/media/images/flags/pn.gif deleted file mode 100755 index 4bc86a1d..00000000 Binary files a/askbot/skins/common/media/images/flags/pn.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/pr.gif b/askbot/skins/common/media/images/flags/pr.gif deleted file mode 100755 index 6d5d5896..00000000 Binary files a/askbot/skins/common/media/images/flags/pr.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/ps.gif b/askbot/skins/common/media/images/flags/ps.gif deleted file mode 100755 index 6afa3b71..00000000 Binary files a/askbot/skins/common/media/images/flags/ps.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/pt.gif b/askbot/skins/common/media/images/flags/pt.gif deleted file mode 100755 index e735f740..00000000 Binary files a/askbot/skins/common/media/images/flags/pt.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/pw.gif b/askbot/skins/common/media/images/flags/pw.gif deleted file mode 100755 index 5854510f..00000000 Binary files a/askbot/skins/common/media/images/flags/pw.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/py.gif b/askbot/skins/common/media/images/flags/py.gif deleted file mode 100755 index f2e66af7..00000000 Binary files a/askbot/skins/common/media/images/flags/py.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/qa.gif b/askbot/skins/common/media/images/flags/qa.gif deleted file mode 100755 index 2e843ff9..00000000 Binary files a/askbot/skins/common/media/images/flags/qa.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/re.gif b/askbot/skins/common/media/images/flags/re.gif deleted file mode 100755 index 43d0b801..00000000 Binary files a/askbot/skins/common/media/images/flags/re.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/ro.gif b/askbot/skins/common/media/images/flags/ro.gif deleted file mode 100755 index f5d5f125..00000000 Binary files a/askbot/skins/common/media/images/flags/ro.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/rs.gif b/askbot/skins/common/media/images/flags/rs.gif deleted file mode 100644 index 3bd1fb2f..00000000 Binary files a/askbot/skins/common/media/images/flags/rs.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/ru.gif b/askbot/skins/common/media/images/flags/ru.gif deleted file mode 100755 index b525c462..00000000 Binary files a/askbot/skins/common/media/images/flags/ru.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/rw.gif b/askbot/skins/common/media/images/flags/rw.gif deleted file mode 100755 index 0d095f7a..00000000 Binary files a/askbot/skins/common/media/images/flags/rw.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/sa.gif b/askbot/skins/common/media/images/flags/sa.gif deleted file mode 100755 index 179961b6..00000000 Binary files a/askbot/skins/common/media/images/flags/sa.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/sb.gif b/askbot/skins/common/media/images/flags/sb.gif deleted file mode 100755 index 8f5ff837..00000000 Binary files a/askbot/skins/common/media/images/flags/sb.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/sc.gif b/askbot/skins/common/media/images/flags/sc.gif deleted file mode 100755 index 31b47677..00000000 Binary files a/askbot/skins/common/media/images/flags/sc.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/scotland.gif b/askbot/skins/common/media/images/flags/scotland.gif deleted file mode 100755 index 03f3f1de..00000000 Binary files a/askbot/skins/common/media/images/flags/scotland.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/sd.gif b/askbot/skins/common/media/images/flags/sd.gif deleted file mode 100755 index 53ae214f..00000000 Binary files a/askbot/skins/common/media/images/flags/sd.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/se.gif b/askbot/skins/common/media/images/flags/se.gif deleted file mode 100755 index 80f62852..00000000 Binary files a/askbot/skins/common/media/images/flags/se.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/sg.gif b/askbot/skins/common/media/images/flags/sg.gif deleted file mode 100755 index 5663d39f..00000000 Binary files a/askbot/skins/common/media/images/flags/sg.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/sh.gif b/askbot/skins/common/media/images/flags/sh.gif deleted file mode 100755 index dcc7f3bc..00000000 Binary files a/askbot/skins/common/media/images/flags/sh.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/si.gif b/askbot/skins/common/media/images/flags/si.gif deleted file mode 100755 index 23852b50..00000000 Binary files a/askbot/skins/common/media/images/flags/si.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/sj.gif b/askbot/skins/common/media/images/flags/sj.gif deleted file mode 100755 index 6202d1f3..00000000 Binary files a/askbot/skins/common/media/images/flags/sj.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/sk.gif b/askbot/skins/common/media/images/flags/sk.gif deleted file mode 100755 index 1b3f22ba..00000000 Binary files a/askbot/skins/common/media/images/flags/sk.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/sl.gif b/askbot/skins/common/media/images/flags/sl.gif deleted file mode 100755 index f0f34923..00000000 Binary files a/askbot/skins/common/media/images/flags/sl.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/sm.gif b/askbot/skins/common/media/images/flags/sm.gif deleted file mode 100755 index 04d98de5..00000000 Binary files a/askbot/skins/common/media/images/flags/sm.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/sn.gif b/askbot/skins/common/media/images/flags/sn.gif deleted file mode 100755 index 6dac8709..00000000 Binary files a/askbot/skins/common/media/images/flags/sn.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/so.gif b/askbot/skins/common/media/images/flags/so.gif deleted file mode 100755 index f1961694..00000000 Binary files a/askbot/skins/common/media/images/flags/so.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/sr.gif b/askbot/skins/common/media/images/flags/sr.gif deleted file mode 100755 index 0f7499ad..00000000 Binary files a/askbot/skins/common/media/images/flags/sr.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/st.gif b/askbot/skins/common/media/images/flags/st.gif deleted file mode 100755 index 4f1e6e09..00000000 Binary files a/askbot/skins/common/media/images/flags/st.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/sv.gif b/askbot/skins/common/media/images/flags/sv.gif deleted file mode 100755 index 2d7b159a..00000000 Binary files a/askbot/skins/common/media/images/flags/sv.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/sy.gif b/askbot/skins/common/media/images/flags/sy.gif deleted file mode 100755 index dc8bd509..00000000 Binary files a/askbot/skins/common/media/images/flags/sy.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/sz.gif b/askbot/skins/common/media/images/flags/sz.gif deleted file mode 100755 index f37aaf80..00000000 Binary files a/askbot/skins/common/media/images/flags/sz.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/tc.gif b/askbot/skins/common/media/images/flags/tc.gif deleted file mode 100755 index 11a8c232..00000000 Binary files a/askbot/skins/common/media/images/flags/tc.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/td.gif b/askbot/skins/common/media/images/flags/td.gif deleted file mode 100755 index 7aa8a10d..00000000 Binary files a/askbot/skins/common/media/images/flags/td.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/tf.gif b/askbot/skins/common/media/images/flags/tf.gif deleted file mode 100755 index 51a43250..00000000 Binary files a/askbot/skins/common/media/images/flags/tf.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/tg.gif b/askbot/skins/common/media/images/flags/tg.gif deleted file mode 100755 index ca6b4e77..00000000 Binary files a/askbot/skins/common/media/images/flags/tg.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/th.gif b/askbot/skins/common/media/images/flags/th.gif deleted file mode 100755 index 01307924..00000000 Binary files a/askbot/skins/common/media/images/flags/th.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/tj.gif b/askbot/skins/common/media/images/flags/tj.gif deleted file mode 100755 index 2fe38d4a..00000000 Binary files a/askbot/skins/common/media/images/flags/tj.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/tk.gif b/askbot/skins/common/media/images/flags/tk.gif deleted file mode 100755 index 3d3a727f..00000000 Binary files a/askbot/skins/common/media/images/flags/tk.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/tl.gif b/askbot/skins/common/media/images/flags/tl.gif deleted file mode 100755 index df22d582..00000000 Binary files a/askbot/skins/common/media/images/flags/tl.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/tm.gif b/askbot/skins/common/media/images/flags/tm.gif deleted file mode 100755 index 36d0994f..00000000 Binary files a/askbot/skins/common/media/images/flags/tm.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/tn.gif b/askbot/skins/common/media/images/flags/tn.gif deleted file mode 100755 index 917d4288..00000000 Binary files a/askbot/skins/common/media/images/flags/tn.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/to.gif b/askbot/skins/common/media/images/flags/to.gif deleted file mode 100755 index d7ed4d11..00000000 Binary files a/askbot/skins/common/media/images/flags/to.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/tr.gif b/askbot/skins/common/media/images/flags/tr.gif deleted file mode 100755 index e407d553..00000000 Binary files a/askbot/skins/common/media/images/flags/tr.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/tt.gif b/askbot/skins/common/media/images/flags/tt.gif deleted file mode 100755 index 47d3b806..00000000 Binary files a/askbot/skins/common/media/images/flags/tt.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/tv.gif b/askbot/skins/common/media/images/flags/tv.gif deleted file mode 100755 index 3c338277..00000000 Binary files a/askbot/skins/common/media/images/flags/tv.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/tw.gif b/askbot/skins/common/media/images/flags/tw.gif deleted file mode 100755 index cacfd9b7..00000000 Binary files a/askbot/skins/common/media/images/flags/tw.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/tz.gif b/askbot/skins/common/media/images/flags/tz.gif deleted file mode 100755 index 82b52ca2..00000000 Binary files a/askbot/skins/common/media/images/flags/tz.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/ua.gif b/askbot/skins/common/media/images/flags/ua.gif deleted file mode 100755 index 5d6cd83f..00000000 Binary files a/askbot/skins/common/media/images/flags/ua.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/ug.gif b/askbot/skins/common/media/images/flags/ug.gif deleted file mode 100755 index 58b731ad..00000000 Binary files a/askbot/skins/common/media/images/flags/ug.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/um.gif b/askbot/skins/common/media/images/flags/um.gif deleted file mode 100755 index 3b4c8483..00000000 Binary files a/askbot/skins/common/media/images/flags/um.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/us.gif b/askbot/skins/common/media/images/flags/us.gif deleted file mode 100755 index 8f198f73..00000000 Binary files a/askbot/skins/common/media/images/flags/us.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/uy.gif b/askbot/skins/common/media/images/flags/uy.gif deleted file mode 100755 index 12848c74..00000000 Binary files a/askbot/skins/common/media/images/flags/uy.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/uz.gif b/askbot/skins/common/media/images/flags/uz.gif deleted file mode 100755 index dc9daeca..00000000 Binary files a/askbot/skins/common/media/images/flags/uz.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/va.gif b/askbot/skins/common/media/images/flags/va.gif deleted file mode 100755 index 2bd74468..00000000 Binary files a/askbot/skins/common/media/images/flags/va.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/vc.gif b/askbot/skins/common/media/images/flags/vc.gif deleted file mode 100755 index 48213816..00000000 Binary files a/askbot/skins/common/media/images/flags/vc.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/ve.gif b/askbot/skins/common/media/images/flags/ve.gif deleted file mode 100755 index 19ce6c14..00000000 Binary files a/askbot/skins/common/media/images/flags/ve.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/vg.gif b/askbot/skins/common/media/images/flags/vg.gif deleted file mode 100755 index 1fc0f96e..00000000 Binary files a/askbot/skins/common/media/images/flags/vg.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/vi.gif b/askbot/skins/common/media/images/flags/vi.gif deleted file mode 100755 index 66f9e746..00000000 Binary files a/askbot/skins/common/media/images/flags/vi.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/vn.gif b/askbot/skins/common/media/images/flags/vn.gif deleted file mode 100755 index f1e20c94..00000000 Binary files a/askbot/skins/common/media/images/flags/vn.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/vu.gif b/askbot/skins/common/media/images/flags/vu.gif deleted file mode 100755 index 8a8b2b06..00000000 Binary files a/askbot/skins/common/media/images/flags/vu.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/wales.gif b/askbot/skins/common/media/images/flags/wales.gif deleted file mode 100755 index 901d1750..00000000 Binary files a/askbot/skins/common/media/images/flags/wales.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/wf.gif b/askbot/skins/common/media/images/flags/wf.gif deleted file mode 100755 index eaa954b1..00000000 Binary files a/askbot/skins/common/media/images/flags/wf.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/ws.gif b/askbot/skins/common/media/images/flags/ws.gif deleted file mode 100755 index a51f939e..00000000 Binary files a/askbot/skins/common/media/images/flags/ws.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/ye.gif b/askbot/skins/common/media/images/flags/ye.gif deleted file mode 100755 index 7b0183d0..00000000 Binary files a/askbot/skins/common/media/images/flags/ye.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/yt.gif b/askbot/skins/common/media/images/flags/yt.gif deleted file mode 100755 index a2267c05..00000000 Binary files a/askbot/skins/common/media/images/flags/yt.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/za.gif b/askbot/skins/common/media/images/flags/za.gif deleted file mode 100755 index ede52589..00000000 Binary files a/askbot/skins/common/media/images/flags/za.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/zm.gif b/askbot/skins/common/media/images/flags/zm.gif deleted file mode 100755 index b2851d2b..00000000 Binary files a/askbot/skins/common/media/images/flags/zm.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/flags/zw.gif b/askbot/skins/common/media/images/flags/zw.gif deleted file mode 100755 index 02901f62..00000000 Binary files a/askbot/skins/common/media/images/flags/zw.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/go-up-grey.png b/askbot/skins/common/media/images/go-up-grey.png deleted file mode 100644 index 763bb799..00000000 Binary files a/askbot/skins/common/media/images/go-up-grey.png and /dev/null differ diff --git a/askbot/skins/common/media/images/go-up-orange.png b/askbot/skins/common/media/images/go-up-orange.png deleted file mode 100644 index eca3579d..00000000 Binary files a/askbot/skins/common/media/images/go-up-orange.png and /dev/null differ diff --git a/askbot/skins/common/media/images/gray-up-arrow-h18px.png b/askbot/skins/common/media/images/gray-up-arrow-h18px.png deleted file mode 100755 index 78767445..00000000 Binary files a/askbot/skins/common/media/images/gray-up-arrow-h18px.png and /dev/null differ diff --git a/askbot/skins/common/media/images/grippie.png b/askbot/skins/common/media/images/grippie.png deleted file mode 100755 index 6524d416..00000000 Binary files a/askbot/skins/common/media/images/grippie.png and /dev/null differ diff --git a/askbot/skins/common/media/images/indicator.gif b/askbot/skins/common/media/images/indicator.gif deleted file mode 100755 index 1c72ebb5..00000000 Binary files a/askbot/skins/common/media/images/indicator.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/logo.gif b/askbot/skins/common/media/images/logo.gif deleted file mode 100644 index ac4ceda6..00000000 Binary files a/askbot/skins/common/media/images/logo.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/logo.png b/askbot/skins/common/media/images/logo.png deleted file mode 100644 index 10559161..00000000 Binary files a/askbot/skins/common/media/images/logo.png and /dev/null differ diff --git a/askbot/skins/common/media/images/logo1.png b/askbot/skins/common/media/images/logo1.png deleted file mode 100755 index d79a6271..00000000 Binary files a/askbot/skins/common/media/images/logo1.png and /dev/null differ diff --git a/askbot/skins/common/media/images/logo2.png b/askbot/skins/common/media/images/logo2.png deleted file mode 100755 index bd3cccd9..00000000 Binary files a/askbot/skins/common/media/images/logo2.png and /dev/null differ diff --git a/askbot/skins/common/media/images/mail-envelope-empty.png b/askbot/skins/common/media/images/mail-envelope-empty.png deleted file mode 100644 index 0fde87dc..00000000 Binary files a/askbot/skins/common/media/images/mail-envelope-empty.png and /dev/null differ diff --git a/askbot/skins/common/media/images/mail-envelope-full.png b/askbot/skins/common/media/images/mail-envelope-full.png deleted file mode 100644 index 2277e919..00000000 Binary files a/askbot/skins/common/media/images/mail-envelope-full.png and /dev/null differ diff --git a/askbot/skins/common/media/images/medala.gif b/askbot/skins/common/media/images/medala.gif deleted file mode 100755 index 93dd1a39..00000000 Binary files a/askbot/skins/common/media/images/medala.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/medala_on.gif b/askbot/skins/common/media/images/medala_on.gif deleted file mode 100755 index a18f9e85..00000000 Binary files a/askbot/skins/common/media/images/medala_on.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/new.gif b/askbot/skins/common/media/images/new.gif deleted file mode 100755 index 8a220b53..00000000 Binary files a/askbot/skins/common/media/images/new.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/nophoto.png b/askbot/skins/common/media/images/nophoto.png deleted file mode 100755 index 2daf0ffd..00000000 Binary files a/askbot/skins/common/media/images/nophoto.png and /dev/null differ diff --git a/askbot/skins/common/media/images/openid.gif b/askbot/skins/common/media/images/openid.gif deleted file mode 100755 index 8540e12b..00000000 Binary files a/askbot/skins/common/media/images/openid.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/openid/aol.gif b/askbot/skins/common/media/images/openid/aol.gif deleted file mode 100755 index decc4f12..00000000 Binary files a/askbot/skins/common/media/images/openid/aol.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/openid/blogger.ico b/askbot/skins/common/media/images/openid/blogger.ico deleted file mode 100755 index 1b9730b0..00000000 Binary files a/askbot/skins/common/media/images/openid/blogger.ico and /dev/null differ diff --git a/askbot/skins/common/media/images/openid/claimid.ico b/askbot/skins/common/media/images/openid/claimid.ico deleted file mode 100755 index 2b80f491..00000000 Binary files a/askbot/skins/common/media/images/openid/claimid.ico and /dev/null differ diff --git a/askbot/skins/common/media/images/openid/facebook.gif b/askbot/skins/common/media/images/openid/facebook.gif deleted file mode 100755 index b997b358..00000000 Binary files a/askbot/skins/common/media/images/openid/facebook.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/openid/flickr.ico b/askbot/skins/common/media/images/openid/flickr.ico deleted file mode 100755 index 11f6e07f..00000000 Binary files a/askbot/skins/common/media/images/openid/flickr.ico and /dev/null differ diff --git a/askbot/skins/common/media/images/openid/google.gif b/askbot/skins/common/media/images/openid/google.gif deleted file mode 100755 index 1b6cd07b..00000000 Binary files a/askbot/skins/common/media/images/openid/google.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/openid/livejournal.ico b/askbot/skins/common/media/images/openid/livejournal.ico deleted file mode 100755 index f3d21ec5..00000000 Binary files a/askbot/skins/common/media/images/openid/livejournal.ico and /dev/null differ diff --git a/askbot/skins/common/media/images/openid/myopenid.ico b/askbot/skins/common/media/images/openid/myopenid.ico deleted file mode 100755 index ceb06e6a..00000000 Binary files a/askbot/skins/common/media/images/openid/myopenid.ico and /dev/null differ diff --git a/askbot/skins/common/media/images/openid/openid-inputicon.gif b/askbot/skins/common/media/images/openid/openid-inputicon.gif deleted file mode 100755 index cde836c8..00000000 Binary files a/askbot/skins/common/media/images/openid/openid-inputicon.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/openid/openid.gif b/askbot/skins/common/media/images/openid/openid.gif deleted file mode 100755 index c718b0e6..00000000 Binary files a/askbot/skins/common/media/images/openid/openid.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/openid/technorati.ico b/askbot/skins/common/media/images/openid/technorati.ico deleted file mode 100755 index fa1083c1..00000000 Binary files a/askbot/skins/common/media/images/openid/technorati.ico and /dev/null differ diff --git a/askbot/skins/common/media/images/openid/twitter.png b/askbot/skins/common/media/images/openid/twitter.png deleted file mode 100755 index 9a6552d1..00000000 Binary files a/askbot/skins/common/media/images/openid/twitter.png and /dev/null differ diff --git a/askbot/skins/common/media/images/openid/verisign.ico b/askbot/skins/common/media/images/openid/verisign.ico deleted file mode 100755 index 3953af93..00000000 Binary files a/askbot/skins/common/media/images/openid/verisign.ico and /dev/null differ diff --git a/askbot/skins/common/media/images/openid/vidoop.ico b/askbot/skins/common/media/images/openid/vidoop.ico deleted file mode 100755 index bbd9a0d5..00000000 Binary files a/askbot/skins/common/media/images/openid/vidoop.ico and /dev/null differ diff --git a/askbot/skins/common/media/images/openid/wordpress.ico b/askbot/skins/common/media/images/openid/wordpress.ico deleted file mode 100755 index 31b7d2c2..00000000 Binary files a/askbot/skins/common/media/images/openid/wordpress.ico and /dev/null differ diff --git a/askbot/skins/common/media/images/openid/yahoo.gif b/askbot/skins/common/media/images/openid/yahoo.gif deleted file mode 100755 index 0f0eb8ef..00000000 Binary files a/askbot/skins/common/media/images/openid/yahoo.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/print.png b/askbot/skins/common/media/images/print.png deleted file mode 100644 index 37bf88af..00000000 Binary files a/askbot/skins/common/media/images/print.png and /dev/null differ diff --git a/askbot/skins/common/media/images/pw-login.gif b/askbot/skins/common/media/images/pw-login.gif deleted file mode 100644 index f88b1bcf..00000000 Binary files a/askbot/skins/common/media/images/pw-login.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/quest-bg.gif b/askbot/skins/common/media/images/quest-bg.gif deleted file mode 100755 index b7540238..00000000 Binary files a/askbot/skins/common/media/images/quest-bg.gif and /dev/null differ diff --git a/askbot/skins/common/media/images/scopearrow.png b/askbot/skins/common/media/images/scopearrow.png deleted file mode 100644 index 73dc6744..00000000 Binary files a/askbot/skins/common/media/images/scopearrow.png and /dev/null differ diff --git a/askbot/skins/common/media/images/sprite.png b/askbot/skins/common/media/images/sprite.png deleted file mode 100644 index 1a0fbc78..00000000 Binary files a/askbot/skins/common/media/images/sprite.png and /dev/null differ diff --git a/askbot/skins/common/media/images/sprites.png b/askbot/skins/common/media/images/sprites.png deleted file mode 100644 index c372f9fa..00000000 Binary files a/askbot/skins/common/media/images/sprites.png and /dev/null differ diff --git a/askbot/skins/common/media/images/sprites_source/sprites.svg b/askbot/skins/common/media/images/sprites_source/sprites.svg deleted file mode 100644 index 34898e30..00000000 --- a/askbot/skins/common/media/images/sprites_source/sprites.svg +++ /dev/null @@ -1,732 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - X - - - X - - - X - - - - - - - - - - - - - - - - - - - - - - - - - ASK A QUESTION - ASK A QUESTION - - - - - - - - - - - - - diff --git a/askbot/skins/common/media/images/summary-background.png b/askbot/skins/common/media/images/summary-background.png deleted file mode 100644 index 58c3855a..00000000 Binary files a/askbot/skins/common/media/images/summary-background.png and /dev/null differ diff --git a/askbot/skins/common/media/images/tag-left.png b/askbot/skins/common/media/images/tag-left.png deleted file mode 100644 index 5a9d8a0d..00000000 Binary files a/askbot/skins/common/media/images/tag-left.png and /dev/null differ diff --git a/askbot/skins/common/media/images/tag-right.png b/askbot/skins/common/media/images/tag-right.png deleted file mode 100644 index 871664c3..00000000 Binary files a/askbot/skins/common/media/images/tag-right.png and /dev/null differ diff --git a/askbot/skins/common/media/images/vote-accepted-on.png b/askbot/skins/common/media/images/vote-accepted-on.png deleted file mode 100755 index 2026f3bc..00000000 Binary files a/askbot/skins/common/media/images/vote-accepted-on.png and /dev/null differ diff --git a/askbot/skins/common/media/images/vote-accepted.png b/askbot/skins/common/media/images/vote-accepted.png deleted file mode 100755 index ecd18551..00000000 Binary files a/askbot/skins/common/media/images/vote-accepted.png and /dev/null differ diff --git a/askbot/skins/common/media/images/vote-arrow-down-on.png b/askbot/skins/common/media/images/vote-arrow-down-on.png deleted file mode 100755 index 048dbb44..00000000 Binary files a/askbot/skins/common/media/images/vote-arrow-down-on.png and /dev/null differ diff --git a/askbot/skins/common/media/images/vote-arrow-down.png b/askbot/skins/common/media/images/vote-arrow-down.png deleted file mode 100755 index e4fdec0a..00000000 Binary files a/askbot/skins/common/media/images/vote-arrow-down.png and /dev/null differ diff --git a/askbot/skins/common/media/images/vote-arrow-up-on.png b/askbot/skins/common/media/images/vote-arrow-up-on.png deleted file mode 100755 index 56ad0c25..00000000 Binary files a/askbot/skins/common/media/images/vote-arrow-up-on.png and /dev/null differ diff --git a/askbot/skins/common/media/images/vote-arrow-up.png b/askbot/skins/common/media/images/vote-arrow-up.png deleted file mode 100755 index 6e9a51c7..00000000 Binary files a/askbot/skins/common/media/images/vote-arrow-up.png and /dev/null differ diff --git a/askbot/skins/common/media/images/vote-favorite-off.png b/askbot/skins/common/media/images/vote-favorite-off.png deleted file mode 100755 index c1bef074..00000000 Binary files a/askbot/skins/common/media/images/vote-favorite-off.png and /dev/null differ diff --git a/askbot/skins/common/media/images/vote-favorite-on.png b/askbot/skins/common/media/images/vote-favorite-on.png deleted file mode 100755 index 1f9c14ab..00000000 Binary files a/askbot/skins/common/media/images/vote-favorite-on.png and /dev/null differ diff --git a/askbot/skins/common/media/images/wiki.png b/askbot/skins/common/media/images/wiki.png deleted file mode 100644 index 06d487f3..00000000 Binary files a/askbot/skins/common/media/images/wiki.png and /dev/null differ diff --git a/askbot/skins/common/media/jquery-openid/images/aol.gif b/askbot/skins/common/media/jquery-openid/images/aol.gif deleted file mode 100755 index 24d1e152..00000000 Binary files a/askbot/skins/common/media/jquery-openid/images/aol.gif and /dev/null differ diff --git a/askbot/skins/common/media/jquery-openid/images/blogger-1.png b/askbot/skins/common/media/jquery-openid/images/blogger-1.png deleted file mode 100755 index 8b360ea5..00000000 Binary files a/askbot/skins/common/media/jquery-openid/images/blogger-1.png and /dev/null differ diff --git a/askbot/skins/common/media/jquery-openid/images/blogger.ico b/askbot/skins/common/media/jquery-openid/images/blogger.ico deleted file mode 100755 index 1b9730b0..00000000 Binary files a/askbot/skins/common/media/jquery-openid/images/blogger.ico and /dev/null differ diff --git a/askbot/skins/common/media/jquery-openid/images/claimid-0.png b/askbot/skins/common/media/jquery-openid/images/claimid-0.png deleted file mode 100755 index 4a0ea1b3..00000000 Binary files a/askbot/skins/common/media/jquery-openid/images/claimid-0.png and /dev/null differ diff --git a/askbot/skins/common/media/jquery-openid/images/claimid.ico b/askbot/skins/common/media/jquery-openid/images/claimid.ico deleted file mode 100755 index 2b80f491..00000000 Binary files a/askbot/skins/common/media/jquery-openid/images/claimid.ico and /dev/null differ diff --git a/askbot/skins/common/media/jquery-openid/images/facebook.gif b/askbot/skins/common/media/jquery-openid/images/facebook.gif deleted file mode 100755 index c5586455..00000000 Binary files a/askbot/skins/common/media/jquery-openid/images/facebook.gif and /dev/null differ diff --git a/askbot/skins/common/media/jquery-openid/images/flickr.ico b/askbot/skins/common/media/jquery-openid/images/flickr.ico deleted file mode 100755 index 11f6e07f..00000000 Binary files a/askbot/skins/common/media/jquery-openid/images/flickr.ico and /dev/null differ diff --git a/askbot/skins/common/media/jquery-openid/images/flickr.png b/askbot/skins/common/media/jquery-openid/images/flickr.png deleted file mode 100755 index 142405a6..00000000 Binary files a/askbot/skins/common/media/jquery-openid/images/flickr.png and /dev/null differ diff --git a/askbot/skins/common/media/jquery-openid/images/google.gif b/askbot/skins/common/media/jquery-openid/images/google.gif deleted file mode 100755 index 65395365..00000000 Binary files a/askbot/skins/common/media/jquery-openid/images/google.gif and /dev/null differ diff --git a/askbot/skins/common/media/jquery-openid/images/identica.png b/askbot/skins/common/media/jquery-openid/images/identica.png deleted file mode 100644 index 2b607db1..00000000 Binary files a/askbot/skins/common/media/jquery-openid/images/identica.png and /dev/null differ diff --git a/askbot/skins/common/media/jquery-openid/images/linkedin.gif b/askbot/skins/common/media/jquery-openid/images/linkedin.gif deleted file mode 100644 index 36e049ac..00000000 Binary files a/askbot/skins/common/media/jquery-openid/images/linkedin.gif and /dev/null differ diff --git a/askbot/skins/common/media/jquery-openid/images/livejournal-1.png b/askbot/skins/common/media/jquery-openid/images/livejournal-1.png deleted file mode 100755 index e6436081..00000000 Binary files a/askbot/skins/common/media/jquery-openid/images/livejournal-1.png and /dev/null differ diff --git a/askbot/skins/common/media/jquery-openid/images/livejournal.ico b/askbot/skins/common/media/jquery-openid/images/livejournal.ico deleted file mode 100755 index f3d21ec5..00000000 Binary files a/askbot/skins/common/media/jquery-openid/images/livejournal.ico and /dev/null differ diff --git a/askbot/skins/common/media/jquery-openid/images/myopenid-2.png b/askbot/skins/common/media/jquery-openid/images/myopenid-2.png deleted file mode 100755 index f64fb8e8..00000000 Binary files a/askbot/skins/common/media/jquery-openid/images/myopenid-2.png and /dev/null differ diff --git a/askbot/skins/common/media/jquery-openid/images/myopenid.ico b/askbot/skins/common/media/jquery-openid/images/myopenid.ico deleted file mode 100755 index ceb06e6a..00000000 Binary files a/askbot/skins/common/media/jquery-openid/images/myopenid.ico and /dev/null differ diff --git a/askbot/skins/common/media/jquery-openid/images/openid-inputicon.gif b/askbot/skins/common/media/jquery-openid/images/openid-inputicon.gif deleted file mode 100755 index cde836c8..00000000 Binary files a/askbot/skins/common/media/jquery-openid/images/openid-inputicon.gif and /dev/null differ diff --git a/askbot/skins/common/media/jquery-openid/images/openid.gif b/askbot/skins/common/media/jquery-openid/images/openid.gif deleted file mode 100755 index 19eb7c6f..00000000 Binary files a/askbot/skins/common/media/jquery-openid/images/openid.gif and /dev/null differ diff --git a/askbot/skins/common/media/jquery-openid/images/openidico.png b/askbot/skins/common/media/jquery-openid/images/openidico.png deleted file mode 100755 index ab622669..00000000 Binary files a/askbot/skins/common/media/jquery-openid/images/openidico.png and /dev/null differ diff --git a/askbot/skins/common/media/jquery-openid/images/openidico16.png b/askbot/skins/common/media/jquery-openid/images/openidico16.png deleted file mode 100755 index ad718ac5..00000000 Binary files a/askbot/skins/common/media/jquery-openid/images/openidico16.png and /dev/null differ diff --git a/askbot/skins/common/media/jquery-openid/images/technorati-1.png b/askbot/skins/common/media/jquery-openid/images/technorati-1.png deleted file mode 100755 index f7195240..00000000 Binary files a/askbot/skins/common/media/jquery-openid/images/technorati-1.png and /dev/null differ diff --git a/askbot/skins/common/media/jquery-openid/images/technorati.ico b/askbot/skins/common/media/jquery-openid/images/technorati.ico deleted file mode 100755 index fa1083c1..00000000 Binary files a/askbot/skins/common/media/jquery-openid/images/technorati.ico and /dev/null differ diff --git a/askbot/skins/common/media/jquery-openid/images/twitter.gif b/askbot/skins/common/media/jquery-openid/images/twitter.gif deleted file mode 100644 index 173cace1..00000000 Binary files a/askbot/skins/common/media/jquery-openid/images/twitter.gif and /dev/null differ diff --git a/askbot/skins/common/media/jquery-openid/images/verisign-2.png b/askbot/skins/common/media/jquery-openid/images/verisign-2.png deleted file mode 100755 index c1467008..00000000 Binary files a/askbot/skins/common/media/jquery-openid/images/verisign-2.png and /dev/null differ diff --git a/askbot/skins/common/media/jquery-openid/images/verisign.ico b/askbot/skins/common/media/jquery-openid/images/verisign.ico deleted file mode 100755 index 3953af93..00000000 Binary files a/askbot/skins/common/media/jquery-openid/images/verisign.ico and /dev/null differ diff --git a/askbot/skins/common/media/jquery-openid/images/vidoop.ico b/askbot/skins/common/media/jquery-openid/images/vidoop.ico deleted file mode 100755 index bbd9a0d5..00000000 Binary files a/askbot/skins/common/media/jquery-openid/images/vidoop.ico and /dev/null differ diff --git a/askbot/skins/common/media/jquery-openid/images/vidoop.png b/askbot/skins/common/media/jquery-openid/images/vidoop.png deleted file mode 100755 index 032c9e98..00000000 Binary files a/askbot/skins/common/media/jquery-openid/images/vidoop.png and /dev/null differ diff --git a/askbot/skins/common/media/jquery-openid/images/wordpress.ico b/askbot/skins/common/media/jquery-openid/images/wordpress.ico deleted file mode 100755 index 31b7d2c2..00000000 Binary files a/askbot/skins/common/media/jquery-openid/images/wordpress.ico and /dev/null differ diff --git a/askbot/skins/common/media/jquery-openid/images/wordpress.png b/askbot/skins/common/media/jquery-openid/images/wordpress.png deleted file mode 100755 index ee29f0cf..00000000 Binary files a/askbot/skins/common/media/jquery-openid/images/wordpress.png and /dev/null differ diff --git a/askbot/skins/common/media/jquery-openid/images/yahoo.gif b/askbot/skins/common/media/jquery-openid/images/yahoo.gif deleted file mode 100755 index 614910a9..00000000 Binary files a/askbot/skins/common/media/jquery-openid/images/yahoo.gif and /dev/null differ diff --git a/askbot/skins/common/media/jquery-openid/jquery.openid.js b/askbot/skins/common/media/jquery-openid/jquery.openid.js deleted file mode 100644 index 249413b9..00000000 --- a/askbot/skins/common/media/jquery-openid/jquery.openid.js +++ /dev/null @@ -1,440 +0,0 @@ -$.fn.authenticator = function() { - var signin_page = $(this); - var signin_form = $('#signin-form'); - var openid_login_token_input = $('input[name=openid_login_token]'); - var openid_login_token_input_fields = $('#openid-fs'); - var provider_name_input = $('input[name=login_provider_name]'); - var email_input_fields = $('#email-input-fs'); - var account_recovery_heading = $('#account-recovery-heading'); - var account_recovery_hint = $('#account-recovery-form>.hint'); - var account_recovery_link = $('#account-recovery-form>.hint>span.link'); - var account_recovery_text_span = $('#account-recovery-form>.hint>span.text'); - var password_input_fields = $('#password-fs'); - var existing_login_methods_div = $('#existing-login-methods'); - var openid_submit_button = $('input[name=openid_login_with_extra_token]'); - var existing_login_methods = {}; - - var account_recovery_question_text = account_recovery_heading.html(); - var account_recovery_prompt_text = account_recovery_text_span.html(); - - var setup_click_handler = function(elements, handler_function){ - elements.unbind('click').click(handler_function); - }; - - var setup_enter_key_handler = function(elements, handler_function){ - elements.each( - function(index, element){ - $(element).unbind('keypress').keypress( - function(e){ - if ((e.which && e.which == 13)||(e.keyCode && e.keyCode == 13)){ - if (handler_function){ - return handler_function(); - } - else { - element.click(); - return false; - } - } - } - ); - } - ); - }; - - var setup_event_handlers = function(elements, handler_function){ - setup_click_handler(elements, handler_function); - setup_enter_key_handler(elements); - }; - - var get_provider_name = function(row_el){ - var row = $(row_el); - var name_span = row.find('.ab-provider-name'); - return provider_name = $.trim(name_span.html()); - }; - - var read_existing_login_methods = function(){ - $('.ab-provider-row').each( - function(i, provider_row){ - var provider_name = get_provider_name(provider_row); - existing_login_methods[provider_name] = true; - } - ); - }; - - var setup_login_method_deleters = function(){ - $('.ab-provider-row').each( - function(i, provider_row){ - var provider_name = get_provider_name(provider_row); - var remove_button = $( - provider_row - ).find('button'); - remove_button.click( - function(){ - var message = interpolate(gettext('Are you sure you want to remove your %s login?'), [provider_name]); - if (confirm(message)){ - $.ajax({ - type: 'POST', - url: authUrl + 'delete_login_method/',//url!!! - data: {provider_name: provider_name}, - success: function(data, text_status, xhr){ - $(provider_row).remove(); - delete existing_login_methods[provider_name]; - provider_count -=1; - if (provider_count < 0){ - provider_count === 0; - } - if (provider_count === 0){ - $('#ab-existing-login-methods').remove(); - $('#ab-show-login-methods').remove(); - $('h1').html( - gettext("Please add one or more login methods.") - ); - $('#login-intro').html( - gettext("You don\'t have a method to log in right now, please add one or more by clicking any of the icons below.") - ); - existing_login_methods = null; - } - } - }); - } - } - ); - } - ); - } - - var submit_login_with_password = function(){ - var username = $('#id_username'); - var password = $('#id_password'); - - if (username.val().length < 1){ - username.focus(); - return false; - } - if (password.val().length < 1){ - password.focus(); - return false; - } - return true; - }; - - var submit_change_password = function(){ - var newpass = $('#id_new_password'); - var newpass_retyped = $('#id_new_password_retyped'); - if (newpass.val().length < 1){ - newpass.focus(); - return false - } - if (newpass_retyped.val().length < 1){ - newpass_retyped.focus(); - return false; - } - if (newpass.val() !== newpass_retyped.val()){ - newpass_retyped.after( - '' + - gettext('passwords do not match') + - '' - ); - newpass.val('').focus(); - newpass_retyped.val(''); - return false; - } - return true; - }; - - //validator, may be extended to check url for openid - var submit_with_extra_openid_token = function() { - if (openid_login_token_input.val().length < 1) { - openid_login_token_input.focus(); - return false; - } - return true; - }; - - var insert_login_list_enabler = function(){ - var enabler = $('#login-list-enabler'); - if (enabler.is('p#login-list-enabler')){ - enabler.show(); - } - else { - enabler = $( - '

' + - gettext('Show/change current login methods') + - '

'); - setup_event_handlers( - enabler, - function(){ - if (askbot['settings']['signin_always_show_local_login'] === false){ - password_input_fields.hide(); - } - openid_login_token_input_fields.hide(); - enabler.hide(); - existing_login_methods_div.show(); - } - ); - existing_login_methods_div.after(enabler); - } - }; - - var reset_password_input_fields = function(){ - if (userIsAuthenticated){ - $('#id_new_password').val(''); - $('#id_new_password_retyped').val(''); - } - else { - $('#id_username').val(''); - $('#id_password').val(''); - } - }; - - var reset_form = function(){ - openid_login_token_input_fields.hide(); - if (askbot['settings']['signin_always_show_local_login'] === false){ - password_input_fields.hide(); - } - reset_password_input_fields(); - if (userIsAuthenticated === false){ - email_input_fields.hide(); - account_recovery_heading.hide(); - account_recovery_link.show(); - account_recovery_hint.show(); - $('#account-recovery-form>p.hint').css('margin-top','10px'); - account_recovery_text_span.html(account_recovery_question_text).show(); - } - else { - if (existing_login_methods !== null){ - existing_login_methods_div.hide(); - insert_login_list_enabler(); - } - } - }; - - var reset_form_and_errors = function(){ - reset_form(); - $('.error').remove(); - } - - var set_provider_name = function(element){ - var provider_name = element.attr('name'); - provider_name_input.val(provider_name); - }; - - var show_openid_input_fields = function(provider_name){ - reset_form_and_errors(); - var token_name = extra_token_name[provider_name] - if (userIsAuthenticated){ - $('#openid-heading').html( - interpolate(gettext('Please enter your %s, then proceed'), [token_name]) - ); - var button_text = gettext('Connect your %(provider_name)s account to %(site)s'); - var data = { - provider_name: provider_name, - site: siteName - } - button_text = interpolate(button_text, data, true); - openid_submit_button.val(button_text); - } - else { - $('#openid-heading>span').html(token_name); - } - openid_login_token_input_fields.show(); - openid_login_token_input.focus(); - }; - - var start_simple_login = function() { - //$('#openid_form .providers td').removeClass('highlight'); - //$li.addClass('highlight'); - set_provider_name($(this)); - signin_form.submit(); - return true; - }; - - var start_login_with_extra_openid_token = function() { - show_openid_input_fields($(this).attr('name')); - set_provider_name($(this)); - - setup_enter_key_handler( - openid_login_token_input, - function(){ - openid_submit_button.click(); - return false; - } - ); - - setup_event_handlers( - openid_submit_button, - function(){ - signin_form.unbind( - 'submit' - ).submit( - submit_with_extra_openid_token - ); - } - ); - return false; - }; - - var start_facebook_login = function(){ - set_provider_name($(this)); - if (typeof FB != 'undefined'){ - FB.getLoginStatus(function(response){ - if (response.authResponse){ - signin_form.submit(); - } - else { - if (FB.getAuthResponse()){ - signin_form.submit(); - } - FB.login(); - } - }); - } - return false; - }; - - var start_password_login_or_change = function(){ - //called upon clicking on one of the password login buttons - reset_form_and_errors(); - set_provider_name($(this)); - var provider_name = $(this).attr('name'); - return setup_password_login_or_change(provider_name); - }; - - var init_always_visible_password_login = function(){ - reset_form(); - //will break wordpress and ldap - provider_name_input.val('local'); - setup_password_login_or_change('local'); - }; - - var setup_password_login_or_change = function(provider_name){ - var token_name = extra_token_name[provider_name] - var password_action_input = $('input[name=password_action]'); - if (userIsAuthenticated === true){ - var password_button = $('input[name=change_password]'); - var submit_action = submit_change_password; - if (provider_name === 'local'){ - var provider_cleaned_name = siteName; - } - else { - var provider_cleaned_name = provider_name; - } - if (existing_login_methods && existing_login_methods[provider_name]){ - var password_heading_text = interpolate(gettext('Change your %s password'), [provider_cleaned_name]) - var password_button_text = gettext('Change password') - } - else { - var password_heading_text = interpolate(gettext('Create a password for %s'), [provider_cleaned_name]) - var password_button_text = gettext('Create password') - } - $('#password-heading').html( - password_heading_text - ) - password_button.val(password_button_text); - password_action_input.val('change_password'); - var focus_input = $('#id_new_password'); - var submittable_input = $('#id_new_password_retyped'); - } - else{ - $('#password-heading>span').html(token_name); - var password_button = $('input[name=login_with_password]'); - var submit_action = submit_login_with_password; - var create_pw_link = $('a.create-password-account') - if (create_pw_link.length > 0){ - create_pw_link.html(gettext('Create a password-protected account')); - var url = create_pw_link.attr('href'); - if (url.indexOf('?') !== -1){ - url = url.replace(/\?.*$/,'?login_provider=' + provider_name); - } - else{ - url += '?login_provider=' + provider_name; - } - create_pw_link.attr('href', url); - } - password_action_input.val('login'); - var focus_input = $('#id_username'); - var submittable_input = $('#id_password'); - } - password_input_fields.show(); - focus_input.focus(); - - var submit_password_login = function(){ - signin_form.unbind('submit').submit(submit_action); - }; - - setup_enter_key_handler( - submittable_input, - function() { - password_button.click(); - return false; - } - ); - setup_event_handlers(password_button, submit_password_login); - return false; - }; - - var start_account_recovery = function(){ - reset_form_and_errors(); - account_recovery_hint.hide(); - account_recovery_heading.css('margin-bottom', '0px'); - account_recovery_heading.html(account_recovery_prompt_text).show(); - email_input_fields.show(); - $('#id_email').focus(); - }; - - var clear_password_fields = function(){ - $('#id_password').val(''); - $('#id_new_password').val(''); - $('#id_new_password_retyped').val(''); - }; - - var setup_default_handlers = function(){ - setup_event_handlers( - signin_page.find('input.openid-direct'), - start_simple_login - ); - - setup_event_handlers( - signin_page.find('input.openid-username'), - start_login_with_extra_openid_token - ); - - setup_event_handlers( - signin_page.find('input.openid-generic'), - start_login_with_extra_openid_token - ); - - setup_event_handlers( - signin_page.find('input.facebook'), - start_facebook_login - ); - - setup_event_handlers( - signin_page.find('input.oauth'), - start_simple_login - ); - - setup_event_handlers( - signin_page.find('input.password'), - start_password_login_or_change - ); - setup_event_handlers( - signin_page.find('input.wordpress_site'), - start_password_login_or_change - ); - - setup_event_handlers(account_recovery_link, start_account_recovery); - - if (userIsAuthenticated){ - read_existing_login_methods(); - setup_login_method_deleters(); - } - }; - - setup_default_handlers(); - if (askbot['settings']['signin_always_show_local_login'] === true){ - init_always_visible_password_login(); - } - clear_password_fields(); - return this; -}; diff --git a/askbot/skins/common/media/jquery-openid/openid.css b/askbot/skins/common/media/jquery-openid/openid.css deleted file mode 100644 index 9a1db85f..00000000 --- a/askbot/skins/common/media/jquery-openid/openid.css +++ /dev/null @@ -1,39 +0,0 @@ -div#login-icons {padding: 0;} -ul.login-icons {width: 450px; margin:0;padding:0;text-align:left; list-style-type:none; display:block;} -ul.login-icons li {display:inline;} -ul.large input {height: 40px; width: 90px;border:1px solid #ccc;margin:0 5px 5px 0;} -.openid-signin h1 {padding-bottom: 10px;} -.openid-signin h2#account-recovery-heading {margin-bottom:2px;} -#account-recovery-form p.hint a {color:#1b79bd; text-decoration: none;} -#account-recovery-form p.hint a:hover {text-decoration: underline;} -.openid-signin fieldset { border-style:none;margin:0;padding:0;} -.openid-signin p {margin:0;padding:0}; -.openid-signin p.hint {color: #555;} -.openid-signin #password-fs label {width:100px;margin-top:5px;text-align:left;} -.openid-signin #password-fs .hint {margin-bottom:5px} -#password-fs a {padding-left:5px;} -/*#signin-form #account-recovery-form input {cursor:pointer;} -#signin-form #account-recovery-form input.text {cursor:default;}*/ - -table.login { text-align: right;} - -.openid-signin .submit-b { - cursor: pointer; /*letter-spacing:1px;*/ - margin: 0 0 2px 0; - vertical-align: middle; -} - -.openid-signin .highlight { -moz-border-radius:4px; -webkit-border-radius:4px; background-color: #FD6} - -ul.providers { - display: block; -} - -.openid-signin th { - color: #555; - font-weight: normal; -} - -.openid-signin .ab-provider-name { - font-weight: bold; -} diff --git a/askbot/skins/common/media/js/autocompleter.js b/askbot/skins/common/media/js/autocompleter.js deleted file mode 100644 index 8121d2ea..00000000 --- a/askbot/skins/common/media/js/autocompleter.js +++ /dev/null @@ -1,794 +0,0 @@ -/** - * AutoCompleter Object, refactored closure style from - * jQuery autocomplete plugin - * @param {Object=} options Settings - * @constructor - */ -var AutoCompleter = function(options) { - - /** - * Default options for autocomplete plugin - */ - var defaults = { - promptText: '', - autocompleteMultiple: true, - multipleSeparator: ' ',//a single character - inputClass: 'acInput', - loadingClass: 'acLoading', - resultsClass: 'acResults', - selectClass: 'acSelect', - queryParamName: 'q', - limitParamName: 'limit', - extraParams: {}, - lineSeparator: '\n', - cellSeparator: '|', - minChars: 2, - maxItemsToShow: 10, - delay: 400, - useCache: true, - maxCacheLength: 10, - matchSubset: true, - matchCase: false, - matchInside: true, - mustMatch: false, - preloadData: false, - selectFirst: false, - stopCharRegex: /\s+/, - selectOnly: false, - formatItem: null, // TBD - onItemSelect: false, - autoFill: false, - filterResults: true, - sortResults: true, - sortFunction: false, - onNoMatch: false - }; - - /** - * Options dictionary - * @type Object - * @private - */ - this.options = $.extend({}, defaults, options); - - /** - * Cached data - * @type Object - * @private - */ - this.cacheData_ = {}; - - /** - * Number of cached data items - * @type number - * @private - */ - this.cacheLength_ = 0; - - /** - * Class name to mark selected item - * @type string - * @private - */ - this.selectClass_ = 'jquery-autocomplete-selected-item'; - - /** - * Handler to activation timeout - * @type ?number - * @private - */ - this.keyTimeout_ = null; - - /** - * Last key pressed in the input field (store for behavior) - * @type ?number - * @private - */ - this.lastKeyPressed_ = null; - - /** - * Last value processed by the autocompleter - * @type ?string - * @private - */ - this.lastProcessedValue_ = null; - - /** - * Last value selected by the user - * @type ?string - * @private - */ - this.lastSelectedValue_ = null; - - /** - * Is this autocompleter active? - * @type boolean - * @private - */ - this.active_ = false; - - /** - * Is it OK to finish on blur? - * @type boolean - * @private - */ - this.finishOnBlur_ = true; - - this.options.minChars = parseInt(this.options.minChars, 10); - if (isNaN(this.options.minChars) || this.options.minChars < 1) { - this.options.minChars = 2; - } - - this.options.maxItemsToShow = parseInt(this.options.maxItemsToShow, 10); - if (isNaN(this.options.maxItemsToShow) || this.options.maxItemsToShow < 1) { - this.options.maxItemsToShow = 10; - } - - this.options.maxCacheLength = parseInt(this.options.maxCacheLength, 10); - if (isNaN(this.options.maxCacheLength) || this.options.maxCacheLength < 1) { - this.options.maxCacheLength = 10; - } - - if (this.options['preloadData'] === true){ - this.fetchRemoteData('', function(){}); - } -}; -inherits(AutoCompleter, WrappedElement); - -AutoCompleter.prototype.decorate = function(element){ - - /** - * Init DOM elements repository - */ - this._element = element; - - /** - * Switch off the native autocomplete - */ - this._element.attr('autocomplete', 'off'); - - /** - * Set prompt text - */ - this.setPrompt(); - - /** - * Create DOM element to hold results - */ - this._results = $('
').hide(); - if (this.options.resultsClass) { - this._results.addClass(this.options.resultsClass); - } - this._results.css({ - position: 'absolute' - }); - $('body').append(this._results); - - this.setEventHandlers(); -}; - -AutoCompleter.prototype.setPrompt = function() { - this._element.val(this.options['promptText']); - this._element.addClass('prompt'); -}; - -AutoCompleter.prototype.removePrompt = function() { - if (this._element.hasClass('prompt')) { - this._element.removeClass('prompt'); - var val = this._element.val(); - if (val === this.options['promptText']) { - this._element.val(''); - } - } -}; - -AutoCompleter.prototype.setEventHandlers = function(){ - /** - * Shortcut to self - */ - var self = this; - - /** - * Attach keyboard monitoring to $elem - */ - self._element.keydown(function(e) { - - self.removePrompt(); - - self.lastKeyPressed_ = e.keyCode; - switch(self.lastKeyPressed_) { - - case 38: // up - e.preventDefault(); - if (self.active_) { - self.focusPrev(); - } else { - self.activate(); - } - return false; - break; - - case 40: // down - e.preventDefault(); - if (self.active_) { - self.focusNext(); - } else { - self.activate(); - } - return false; - break; - - case 9: // tab - case 13: // return - if (self.active_) { - e.preventDefault(); - self.selectCurrent(); - return false; - } - break; - - case 27: // escape - if ($.trim(self._element.val()) === '') { - self.setPrompt(); - return false; - } - if (self.active_) { - e.preventDefault(); - self.finish(); - return false; - } - break; - - default: - self.activate(); - - } - }); - self._element.blur(function() { - if (self.finishOnBlur_) { - setTimeout(function() { self.finish(); }, 200); - } - }); -}; - -AutoCompleter.prototype.position = function() { - var offset = this._element.offset(); - this._results.css({ - top: offset.top + this._element.outerHeight(), - left: offset.left - }); -}; - -AutoCompleter.prototype.cacheRead = function(filter) { - var filterLength, searchLength, search, maxPos, pos; - if (this.options.useCache) { - filter = String(filter); - filterLength = filter.length; - if (this.options.matchSubset) { - searchLength = 1; - } else { - searchLength = filterLength; - } - while (searchLength <= filterLength) { - if (this.options.matchInside) { - maxPos = filterLength - searchLength; - } else { - maxPos = 0; - } - pos = 0; - while (pos <= maxPos) { - search = filter.substr(0, searchLength); - if (this.cacheData_[search] !== undefined) { - return this.cacheData_[search]; - } - pos++; - } - searchLength++; - } - } - return false; -}; - -AutoCompleter.prototype.cacheWrite = function(filter, data) { - if (this.options.useCache) { - if (this.cacheLength_ >= this.options.maxCacheLength) { - this.cacheFlush(); - } - filter = String(filter); - if (this.cacheData_[filter] !== undefined) { - this.cacheLength_++; - } - return this.cacheData_[filter] = data; - } - return false; -}; - -AutoCompleter.prototype.cacheFlush = function() { - this.cacheData_ = {}; - this.cacheLength_ = 0; -}; - -AutoCompleter.prototype.callHook = function(hook, data) { - var f = this.options[hook]; - if (f && $.isFunction(f)) { - return f(data, this); - } - return false; -}; - -AutoCompleter.prototype.activate = function() { - var self = this; - var activateNow = function() { - self.activateNow(); - }; - var delay = parseInt(this.options.delay, 10); - if (isNaN(delay) || delay <= 0) { - delay = 250; - } - if (this.keyTimeout_) { - clearTimeout(this.keyTimeout_); - } - this.keyTimeout_ = setTimeout(activateNow, delay); -}; - -AutoCompleter.prototype.activateNow = function() { - var value = this.getValue(); - if (value !== this.lastProcessedValue_ && value !== this.lastSelectedValue_) { - if (value.length >= this.options.minChars) { - this.active_ = true; - this.lastProcessedValue_ = value; - this.fetchData(value); - } - } -}; - -AutoCompleter.prototype.fetchData = function(value) { - if (this.options.data) { - this.filterAndShowResults(this.options.data, value); - } else { - var self = this; - this.fetchRemoteData(value, function(remoteData) { - self.filterAndShowResults(remoteData, value); - }); - } -}; - -AutoCompleter.prototype.fetchRemoteData = function(filter, callback) { - var data = this.cacheRead(filter); - if (data) { - callback(data); - } else { - var self = this; - if (this._element){ - this._element.addClass(this.options.loadingClass); - } - var ajaxCallback = function(data) { - var parsed = false; - if (data !== false) { - parsed = self.parseRemoteData(data); - self.options.data = parsed;//cache data forever - E.F. - self.cacheWrite(filter, parsed); - } - if (self._element){ - self._element.removeClass(self.options.loadingClass); - } - callback(parsed); - }; - $.ajax({ - url: this.makeUrl(filter), - success: ajaxCallback, - error: function() { - ajaxCallback(false); - } - }); - } -}; - -AutoCompleter.prototype.setOption = function(name, value){ - this.options[name] = value; -}; - -AutoCompleter.prototype.setExtraParam = function(name, value) { - var index = $.trim(String(name)); - if (index) { - if (!this.options.extraParams) { - this.options.extraParams = {}; - } - if (this.options.extraParams[index] !== value) { - this.options.extraParams[index] = value; - this.cacheFlush(); - } - } -}; - -AutoCompleter.prototype.makeUrl = function(param) { - var self = this; - var url = this.options.url; - var params = $.extend({}, this.options.extraParams); - // If options.queryParamName === false, append query to url - // instead of using a GET parameter - if (this.options.queryParamName === false) { - url += encodeURIComponent(param); - } else { - params[this.options.queryParamName] = param; - } - - if (this.options.limitParamName && this.options.maxItemsToShow) { - params[this.options.limitParamName] = this.options.maxItemsToShow; - } - - var urlAppend = []; - $.each(params, function(index, value) { - urlAppend.push(self.makeUrlParam(index, value)); - }); - if (urlAppend.length) { - url += url.indexOf('?') == -1 ? '?' : '&'; - url += urlAppend.join('&'); - } - return url; -}; - -AutoCompleter.prototype.makeUrlParam = function(name, value) { - return String(name) + '=' + encodeURIComponent(value); -}; - -/** - * Sanitize CR and LF, then split into lines - */ -AutoCompleter.prototype.splitText = function(text) { - return String(text).replace(/(\r\n|\r|\n)/g, '\n').split(this.options.lineSeparator); -}; - -AutoCompleter.prototype.parseRemoteData = function(remoteData) { - var value, lines, i, j, data; - var results = []; - var lines = this.splitText(remoteData); - for (i = 0; i < lines.length; i++) { - var line = lines[i].split(this.options.cellSeparator); - data = []; - for (j = 0; j < line.length; j++) { - data.push(unescape(line[j])); - } - value = data.shift(); - results.push({ value: unescape(value), data: data }); - } - return results; -}; - -AutoCompleter.prototype.filterAndShowResults = function(results, filter) { - this.showResults(this.filterResults(results, filter), filter); -}; - -AutoCompleter.prototype.filterResults = function(results, filter) { - - var filtered = []; - var value, data, i, result, type, include; - var regex, pattern, testValue; - - for (i = 0; i < results.length; i++) { - result = results[i]; - type = typeof result; - if (type === 'string') { - value = result; - data = {}; - } else if ($.isArray(result)) { - value = result[0]; - data = result.slice(1); - } else if (type === 'object') { - value = result.value; - data = result.data; - } - value = String(value); - if (value > '') { - if (typeof data !== 'object') { - data = {}; - } - if (this.options.filterResults) { - pattern = String(filter); - testValue = String(value); - if (!this.options.matchCase) { - pattern = pattern.toLowerCase(); - testValue = testValue.toLowerCase(); - } - include = testValue.indexOf(pattern); - if (this.options.matchInside) { - include = include > -1; - } else { - include = include === 0; - } - } else { - include = true; - } - if (include) { - filtered.push({ value: value, data: data }); - } - } - } - - if (this.options.sortResults) { - filtered = this.sortResults(filtered, filter); - } - - if (this.options.maxItemsToShow > 0 && this.options.maxItemsToShow < filtered.length) { - filtered.length = this.options.maxItemsToShow; - } - - return filtered; - -}; - -AutoCompleter.prototype.sortResults = function(results, filter) { - var self = this; - var sortFunction = this.options.sortFunction; - if (!$.isFunction(sortFunction)) { - sortFunction = function(a, b, f) { - return self.sortValueAlpha(a, b, f); - }; - } - results.sort(function(a, b) { - return sortFunction(a, b, filter); - }); - return results; -}; - -AutoCompleter.prototype.sortValueAlpha = function(a, b, filter) { - a = String(a.value); - b = String(b.value); - if (!this.options.matchCase) { - a = a.toLowerCase(); - b = b.toLowerCase(); - } - if (a > b) { - return 1; - } - if (a < b) { - return -1; - } - return 0; -}; - -AutoCompleter.prototype.showResults = function(results, filter) { - var self = this; - var $ul = $('
    '); - var i, result, $li, extraWidth, first = false, $first = false; - var numResults = results.length; - for (i = 0; i < numResults; i++) { - result = results[i]; - $li = $('
  • ' + this.showResult(result.value, result.data) + '
  • '); - $li.data('value', result.value); - $li.data('data', result.data); - $li.click(function() { - var $this = $(this); - self.selectItem($this); - }).mousedown(function() { - self.finishOnBlur_ = false; - }).mouseup(function() { - self.finishOnBlur_ = true; - }); - $ul.append($li); - if (first === false) { - first = String(result.value); - $first = $li; - $li.addClass(this.options.firstItemClass); - } - if (i == numResults - 1) { - $li.addClass(this.options.lastItemClass); - } - } - - // Alway recalculate position before showing since window size or - // input element location may have changed. This fixes #14 - this.position(); - - this._results.html($ul).show(); - extraWidth = this._results.outerWidth() - this._results.width(); - this._results.width(this._element.outerWidth() - extraWidth); - $('li', this._results).hover( - function() { self.focusItem(this); }, - function() { /* void */ } - ); - if (this.autoFill(first, filter)) { - this.focusItem($first); - } -}; - -AutoCompleter.prototype.showResult = function(value, data) { - if ($.isFunction(this.options.showResult)) { - return this.options.showResult(value, data); - } else { - return value; - } -}; - -AutoCompleter.prototype.autoFill = function(value, filter) { - var lcValue, lcFilter, valueLength, filterLength; - if (this.options.autoFill && this.lastKeyPressed_ != 8) { - lcValue = String(value).toLowerCase(); - lcFilter = String(filter).toLowerCase(); - valueLength = value.length; - filterLength = filter.length; - if (lcValue.substr(0, filterLength) === lcFilter) { - this._element.val(value); - this.selectRange(filterLength, valueLength); - return true; - } - } - return false; -}; - -AutoCompleter.prototype.focusNext = function() { - this.focusMove(+1); -}; - -AutoCompleter.prototype.focusPrev = function() { - this.focusMove(-1); -}; - -AutoCompleter.prototype.focusMove = function(modifier) { - var i, $items = $('li', this._results); - modifier = parseInt(modifier, 10); - for (var i = 0; i < $items.length; i++) { - if ($($items[i]).hasClass(this.selectClass_)) { - this.focusItem(i + modifier); - return; - } - } - this.focusItem(0); -}; - -AutoCompleter.prototype.focusItem = function(item) { - var $item, $items = $('li', this._results); - if ($items.length) { - $items.removeClass(this.selectClass_).removeClass(this.options.selectClass); - if (typeof item === 'number') { - item = parseInt(item, 10); - if (item < 0) { - item = 0; - } else if (item >= $items.length) { - item = $items.length - 1; - } - $item = $($items[item]); - } else { - $item = $(item); - } - if ($item) { - $item.addClass(this.selectClass_).addClass(this.options.selectClass); - } - } -}; - -AutoCompleter.prototype.selectCurrent = function() { - var $item = $('li.' + this.selectClass_, this._results); - if ($item.length == 1) { - this.selectItem($item); - } else { - this.finish(); - } -}; - -AutoCompleter.prototype.selectItem = function($li) { - var value = $li.data('value'); - var data = $li.data('data'); - var displayValue = this.displayValue(value, data); - this.lastProcessedValue_ = displayValue; - this.lastSelectedValue_ = displayValue; - - this.setValue(displayValue); - - this.setCaret(displayValue.length); - this.callHook('onItemSelect', { value: value, data: data }); - this.finish(); -}; - -/** - * @return {boolean} true if the symbol matches something that is - * considered content and false otherwise - * @param {string} symbol - a single char string - */ -AutoCompleter.prototype.isContentChar = function(symbol){ - if (symbol.match(this.options['stopCharRegex'])){ - return false; - } else if (symbol === this.options['multipleSeparator']){ - return false; - } else { - return true; - } -}; - -/** - * takes value from the input box - * and saves _selection_start and _selection_end coordinates - * respects settings autocompleteMultiple and - * multipleSeparator - * @return {string} the current word in the - * autocompletable word - */ -AutoCompleter.prototype.getValue = function(){ - var sel = this._element.getSelection(); - var text = this._element.val(); - var pos = sel.start;//estimated start - //find real start - var start = pos; - for (cpos = pos; cpos >= 0; cpos = cpos - 1){ - if (cpos === text.length){ - continue; - } - var symbol = text.charAt(cpos); - if (!this.isContentChar(symbol)){ - break; - } - start = cpos; - } - //find real end - var end = pos; - for (cpos = pos; cpos < text.length; cpos = cpos + 1){ - if (cpos === 0){ - continue; - } - var symbol = text.charAt(cpos); - if (!this.isContentChar(symbol)){ - break; - } - end = cpos; - } - this._selection_start = start; - this._selection_end = end; - return text.substring(start, end); -} - -/** - * sets value of the input box - * by replacing the previous selection - * with the value from the autocompleter - */ -AutoCompleter.prototype.setValue = function(val){ - var prefix = this._element.val().substring(0, this._selection_start); - var postfix = this._element.val().substring(this._selection_end + 1); - this._element.val(prefix + val + postfix); -}; - -AutoCompleter.prototype.displayValue = function(value, data) { - if ($.isFunction(this.options.displayValue)) { - return this.options.displayValue(value, data); - } else { - return value; - } -}; - -AutoCompleter.prototype.finish = function() { - if (this.keyTimeout_) { - clearTimeout(this.keyTimeout_); - } - if (this._element.val() !== this.lastSelectedValue_) { - if (this.options.mustMatch) { - this._element.val(''); - } - this.callHook('onNoMatch'); - } - this._results.hide(); - this.lastKeyPressed_ = null; - this.lastProcessedValue_ = null; - if (this.active_) { - this.callHook('onFinish'); - } - this.active_ = false; -}; - -AutoCompleter.prototype.selectRange = function(start, end) { - var input = this._element.get(0); - if (input.setSelectionRange) { - input.focus(); - input.setSelectionRange(start, end); - } else if (this.createTextRange) { - var range = this.createTextRange(); - range.collapse(true); - range.moveEnd('character', end); - range.moveStart('character', start); - range.select(); - } -}; - -AutoCompleter.prototype.setCaret = function(pos) { - this.selectRange(pos, pos); -}; - diff --git a/askbot/skins/common/media/js/compress.bat b/askbot/skins/common/media/js/compress.bat deleted file mode 100644 index 53d72588..00000000 --- a/askbot/skins/common/media/js/compress.bat +++ /dev/null @@ -1,5 +0,0 @@ -#java -jar yuicompressor-2.4.2.jar --type js --charset utf-8 wmd\wmd.js -o wmd\wmd-min.js -#java -jar yuicompressor-2.4.2.jar --type js --charset utf-8 wmd\showdown.js -o wmd\showdown-min.js -#java -jar yuicompressor-2.4.2.jar --type js --charset utf-8 post.js -o post.pack.js -java -jar yuicompressor-2.4.2.jar --type js --charset utf-8 se_hilite_src.js -o se_hilite.js -pause diff --git a/askbot/skins/common/media/js/editor.js b/askbot/skins/common/media/js/editor.js deleted file mode 100644 index c6f1c873..00000000 --- a/askbot/skins/common/media/js/editor.js +++ /dev/null @@ -1,81 +0,0 @@ -/* - jQuery TextAreaResizer plugin - Created on 17th January 2008 by Ryan O'Dell - Version 1.0.4 -*/(function($){var textarea,staticOffset;var iLastMousePos=0;var iMin=32;var grip;$.fn.TextAreaResizer=function(){return this.each(function(){textarea=$(this).addClass('processed'),staticOffset=null;$(this).wrap('
    ').parent().append($('
    ').bind("mousedown",{el:this},startDrag));var grippie=$('div.grippie',$(this).parent())[0];grippie.style.marginRight=(grippie.offsetWidth-$(this)[0].offsetWidth)+'px'})};function startDrag(e){textarea=$(e.data.el);textarea.blur();iLastMousePos=mousePosition(e).y;staticOffset=textarea.height()-iLastMousePos;textarea.css('opacity',0.25);$(document).mousemove(performDrag).mouseup(endDrag);return false}function performDrag(e){var iThisMousePos=mousePosition(e).y;var iMousePos=staticOffset+iThisMousePos;if(iLastMousePos>=(iThisMousePos)){iMousePos-=5}iLastMousePos=iThisMousePos;iMousePos=Math.max(iMin,iMousePos);textarea.height(iMousePos+'px');if(iMousePosoptions.captureLength&&elTxt.toUpperCase()!=timer.text)||(override&&elTxt.length>options.captureLength)){timer.text=elTxt.toUpperCase();timer.cb(elTxt)}};function watchElement(elem){if(elem.type.toUpperCase()=="TEXT"||elem.nodeName.toUpperCase()=="TEXTAREA"){var timer={timer:null,text:jQuery(elem).val().toUpperCase(),cb:options.callback,el:elem,wait:options.wait};if(options.highlight){jQuery(elem).focus(function(){this.select()})}var startWatch=function(evt){var timerWait=timer.wait;var overrideBool=false;if(evt.keyCode==13&&this.type.toUpperCase()=="TEXT"){timerWait=1;overrideBool=true}var timerCallbackFx=function(){checkElement(timer,overrideBool)};clearTimeout(timer.timer);timer.timer=setTimeout(timerCallbackFx,timerWait)};jQuery(elem).keydown(startWatch)}};return this.each(function(index){watchElement(this)})}})(jQuery); -/* -Ajax upload -*/jQuery.extend({createUploadIframe:function(d,b){var a="jUploadFrame"+d;if(window.ActiveXObject){var c=document.createElement(''; - ifr = document.getElementById('iframe'); - doc = ifr.contentWindow.document; - - // Force absolute CSS urls - css = [ed.baseURI.toAbsolute("themes/" + ed.settings.theme + "/skins/" + ed.settings.skin + "/content.css")]; - css = css.concat(tinymce.explode(ed.settings.content_css) || []); - tinymce.each(css, function(u) { - cssHTML += ''; - }); - - // Write content into iframe - doc.open(); - doc.write('' + cssHTML + ''); - doc.close(); - - doc.designMode = 'on'; - this.resize(); - - window.setTimeout(function() { - ifr.contentWindow.focus(); - }, 10); - }, - - insert : function() { - var h = document.getElementById('iframe').contentWindow.document.body.innerHTML; - - tinyMCEPopup.editor.execCommand('mceInsertClipboardContent', false, {content : h, wordContent : true}); - tinyMCEPopup.close(); - }, - - resize : function() { - var vp = tinyMCEPopup.dom.getViewPort(window), el; - - el = document.getElementById('iframe'); - - if (el) { - el.style.width = (vp.w - 20) + 'px'; - el.style.height = (vp.h - 90) + 'px'; - } - } -}; - -tinyMCEPopup.onInit.add(PasteWordDialog.init, PasteWordDialog); diff --git a/askbot/skins/common/media/js/tinymce/plugins/paste/langs/en_dlg.js b/askbot/skins/common/media/js/tinymce/plugins/paste/langs/en_dlg.js deleted file mode 100644 index bc74daf8..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/paste/langs/en_dlg.js +++ /dev/null @@ -1 +0,0 @@ -tinyMCE.addI18n('en.paste_dlg',{"word_title":"Use Ctrl+V on your keyboard to paste the text into the window.","text_linebreaks":"Keep Linebreaks","text_title":"Use Ctrl+V on your keyboard to paste the text into the window."}); \ No newline at end of file diff --git a/askbot/skins/common/media/js/tinymce/plugins/paste/pastetext.htm b/askbot/skins/common/media/js/tinymce/plugins/paste/pastetext.htm deleted file mode 100644 index b6559454..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/paste/pastetext.htm +++ /dev/null @@ -1,27 +0,0 @@ - - - {#paste.paste_text_desc} - - - - -
    -
    {#paste.paste_text_desc}
    - -
    - -
    - -
    - -
    {#paste_dlg.text_title}
    - - - -
    - - -
    -
    - - \ No newline at end of file diff --git a/askbot/skins/common/media/js/tinymce/plugins/paste/pasteword.htm b/askbot/skins/common/media/js/tinymce/plugins/paste/pasteword.htm deleted file mode 100644 index 0f6bb412..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/paste/pasteword.htm +++ /dev/null @@ -1,21 +0,0 @@ - - - {#paste.paste_word_desc} - - - - -
    -
    {#paste.paste_word_desc}
    - -
    {#paste_dlg.word_title}
    - -
    - -
    - - -
    -
    - - diff --git a/askbot/skins/common/media/js/tinymce/plugins/preview/editor_plugin.js b/askbot/skins/common/media/js/tinymce/plugins/preview/editor_plugin.js deleted file mode 100644 index 507909c5..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/preview/editor_plugin.js +++ /dev/null @@ -1 +0,0 @@ -(function(){tinymce.create("tinymce.plugins.Preview",{init:function(a,b){var d=this,c=tinymce.explode(a.settings.content_css);d.editor=a;tinymce.each(c,function(f,e){c[e]=a.documentBaseURI.toAbsolute(f)});a.addCommand("mcePreview",function(){a.windowManager.open({file:a.getParam("plugin_preview_pageurl",b+"/preview.html"),width:parseInt(a.getParam("plugin_preview_width","550")),height:parseInt(a.getParam("plugin_preview_height","600")),resizable:"yes",scrollbars:"yes",popup_css:c?c.join(","):a.baseURI.toAbsolute("themes/"+a.settings.theme+"/skins/"+a.settings.skin+"/content.css"),inline:a.getParam("plugin_preview_inline",1)},{base:a.documentBaseURI.getURI()})});a.addButton("preview",{title:"preview.preview_desc",cmd:"mcePreview"})},getInfo:function(){return{longname:"Preview",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/preview",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("preview",tinymce.plugins.Preview)})(); \ No newline at end of file diff --git a/askbot/skins/common/media/js/tinymce/plugins/preview/editor_plugin_src.js b/askbot/skins/common/media/js/tinymce/plugins/preview/editor_plugin_src.js deleted file mode 100644 index 80f00f0d..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/preview/editor_plugin_src.js +++ /dev/null @@ -1,53 +0,0 @@ -/** - * editor_plugin_src.js - * - * Copyright 2009, Moxiecode Systems AB - * Released under LGPL License. - * - * License: http://tinymce.moxiecode.com/license - * Contributing: http://tinymce.moxiecode.com/contributing - */ - -(function() { - tinymce.create('tinymce.plugins.Preview', { - init : function(ed, url) { - var t = this, css = tinymce.explode(ed.settings.content_css); - - t.editor = ed; - - // Force absolute CSS urls - tinymce.each(css, function(u, k) { - css[k] = ed.documentBaseURI.toAbsolute(u); - }); - - ed.addCommand('mcePreview', function() { - ed.windowManager.open({ - file : ed.getParam("plugin_preview_pageurl", url + "/preview.html"), - width : parseInt(ed.getParam("plugin_preview_width", "550")), - height : parseInt(ed.getParam("plugin_preview_height", "600")), - resizable : "yes", - scrollbars : "yes", - popup_css : css ? css.join(',') : ed.baseURI.toAbsolute("themes/" + ed.settings.theme + "/skins/" + ed.settings.skin + "/content.css"), - inline : ed.getParam("plugin_preview_inline", 1) - }, { - base : ed.documentBaseURI.getURI() - }); - }); - - ed.addButton('preview', {title : 'preview.preview_desc', cmd : 'mcePreview'}); - }, - - getInfo : function() { - return { - longname : 'Preview', - author : 'Moxiecode Systems AB', - authorurl : 'http://tinymce.moxiecode.com', - infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/preview', - version : tinymce.majorVersion + "." + tinymce.minorVersion - }; - } - }); - - // Register plugin - tinymce.PluginManager.add('preview', tinymce.plugins.Preview); -})(); \ No newline at end of file diff --git a/askbot/skins/common/media/js/tinymce/plugins/preview/example.html b/askbot/skins/common/media/js/tinymce/plugins/preview/example.html deleted file mode 100644 index b2c3d90c..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/preview/example.html +++ /dev/null @@ -1,28 +0,0 @@ - - - - - -Example of a custom preview page - - - -Editor contents:
    -
    - -
    - - - diff --git a/askbot/skins/common/media/js/tinymce/plugins/preview/jscripts/embed.js b/askbot/skins/common/media/js/tinymce/plugins/preview/jscripts/embed.js deleted file mode 100644 index f8dc8105..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/preview/jscripts/embed.js +++ /dev/null @@ -1,73 +0,0 @@ -/** - * This script contains embed functions for common plugins. This scripts are complety free to use for any purpose. - */ - -function writeFlash(p) { - writeEmbed( - 'D27CDB6E-AE6D-11cf-96B8-444553540000', - 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0', - 'application/x-shockwave-flash', - p - ); -} - -function writeShockWave(p) { - writeEmbed( - '166B1BCA-3F9C-11CF-8075-444553540000', - 'http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0', - 'application/x-director', - p - ); -} - -function writeQuickTime(p) { - writeEmbed( - '02BF25D5-8C17-4B23-BC80-D3488ABDDC6B', - 'http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0', - 'video/quicktime', - p - ); -} - -function writeRealMedia(p) { - writeEmbed( - 'CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA', - 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0', - 'audio/x-pn-realaudio-plugin', - p - ); -} - -function writeWindowsMedia(p) { - p.url = p.src; - writeEmbed( - '6BF52A52-394A-11D3-B153-00C04F79FAA6', - 'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701', - 'application/x-mplayer2', - p - ); -} - -function writeEmbed(cls, cb, mt, p) { - var h = '', n; - - h += ''; - - h += ' - - - - - -{#preview.preview_desc} - - - - - diff --git a/askbot/skins/common/media/js/tinymce/plugins/print/editor_plugin.js b/askbot/skins/common/media/js/tinymce/plugins/print/editor_plugin.js deleted file mode 100644 index b5b3a55e..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/print/editor_plugin.js +++ /dev/null @@ -1 +0,0 @@ -(function(){tinymce.create("tinymce.plugins.Print",{init:function(a,b){a.addCommand("mcePrint",function(){a.getWin().print()});a.addButton("print",{title:"print.print_desc",cmd:"mcePrint"})},getInfo:function(){return{longname:"Print",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/print",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("print",tinymce.plugins.Print)})(); \ No newline at end of file diff --git a/askbot/skins/common/media/js/tinymce/plugins/print/editor_plugin_src.js b/askbot/skins/common/media/js/tinymce/plugins/print/editor_plugin_src.js deleted file mode 100644 index 3933fe65..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/print/editor_plugin_src.js +++ /dev/null @@ -1,34 +0,0 @@ -/** - * editor_plugin_src.js - * - * Copyright 2009, Moxiecode Systems AB - * Released under LGPL License. - * - * License: http://tinymce.moxiecode.com/license - * Contributing: http://tinymce.moxiecode.com/contributing - */ - -(function() { - tinymce.create('tinymce.plugins.Print', { - init : function(ed, url) { - ed.addCommand('mcePrint', function() { - ed.getWin().print(); - }); - - ed.addButton('print', {title : 'print.print_desc', cmd : 'mcePrint'}); - }, - - getInfo : function() { - return { - longname : 'Print', - author : 'Moxiecode Systems AB', - authorurl : 'http://tinymce.moxiecode.com', - infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/print', - version : tinymce.majorVersion + "." + tinymce.minorVersion - }; - } - }); - - // Register plugin - tinymce.PluginManager.add('print', tinymce.plugins.Print); -})(); diff --git a/askbot/skins/common/media/js/tinymce/plugins/save/editor_plugin.js b/askbot/skins/common/media/js/tinymce/plugins/save/editor_plugin.js deleted file mode 100644 index 8e939966..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/save/editor_plugin.js +++ /dev/null @@ -1 +0,0 @@ -(function(){tinymce.create("tinymce.plugins.Save",{init:function(a,b){var c=this;c.editor=a;a.addCommand("mceSave",c._save,c);a.addCommand("mceCancel",c._cancel,c);a.addButton("save",{title:"save.save_desc",cmd:"mceSave"});a.addButton("cancel",{title:"save.cancel_desc",cmd:"mceCancel"});a.onNodeChange.add(c._nodeChange,c);a.addShortcut("ctrl+s",a.getLang("save.save_desc"),"mceSave")},getInfo:function(){return{longname:"Save",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/save",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_nodeChange:function(b,a,c){var b=this.editor;if(b.getParam("save_enablewhendirty")){a.setDisabled("save",!b.isDirty());a.setDisabled("cancel",!b.isDirty())}},_save:function(){var c=this.editor,a,e,d,b;a=tinymce.DOM.get(c.id).form||tinymce.DOM.getParent(c.id,"form");if(c.getParam("save_enablewhendirty")&&!c.isDirty()){return}tinyMCE.triggerSave();if(e=c.getParam("save_onsavecallback")){if(c.execCallback("save_onsavecallback",c)){c.startContent=tinymce.trim(c.getContent({format:"raw"}));c.nodeChanged()}return}if(a){c.isNotDirty=true;if(a.onsubmit==null||a.onsubmit()!=false){a.submit()}c.nodeChanged()}else{c.windowManager.alert("Error: No form element found.")}},_cancel:function(){var a=this.editor,c,b=tinymce.trim(a.startContent);if(c=a.getParam("save_oncancelcallback")){a.execCallback("save_oncancelcallback",a);return}a.setContent(b);a.undoManager.clear();a.nodeChanged()}});tinymce.PluginManager.add("save",tinymce.plugins.Save)})(); \ No newline at end of file diff --git a/askbot/skins/common/media/js/tinymce/plugins/save/editor_plugin_src.js b/askbot/skins/common/media/js/tinymce/plugins/save/editor_plugin_src.js deleted file mode 100644 index f5a3de8f..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/save/editor_plugin_src.js +++ /dev/null @@ -1,101 +0,0 @@ -/** - * editor_plugin_src.js - * - * Copyright 2009, Moxiecode Systems AB - * Released under LGPL License. - * - * License: http://tinymce.moxiecode.com/license - * Contributing: http://tinymce.moxiecode.com/contributing - */ - -(function() { - tinymce.create('tinymce.plugins.Save', { - init : function(ed, url) { - var t = this; - - t.editor = ed; - - // Register commands - ed.addCommand('mceSave', t._save, t); - ed.addCommand('mceCancel', t._cancel, t); - - // Register buttons - ed.addButton('save', {title : 'save.save_desc', cmd : 'mceSave'}); - ed.addButton('cancel', {title : 'save.cancel_desc', cmd : 'mceCancel'}); - - ed.onNodeChange.add(t._nodeChange, t); - ed.addShortcut('ctrl+s', ed.getLang('save.save_desc'), 'mceSave'); - }, - - getInfo : function() { - return { - longname : 'Save', - author : 'Moxiecode Systems AB', - authorurl : 'http://tinymce.moxiecode.com', - infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/save', - version : tinymce.majorVersion + "." + tinymce.minorVersion - }; - }, - - // Private methods - - _nodeChange : function(ed, cm, n) { - var ed = this.editor; - - if (ed.getParam('save_enablewhendirty')) { - cm.setDisabled('save', !ed.isDirty()); - cm.setDisabled('cancel', !ed.isDirty()); - } - }, - - // Private methods - - _save : function() { - var ed = this.editor, formObj, os, i, elementId; - - formObj = tinymce.DOM.get(ed.id).form || tinymce.DOM.getParent(ed.id, 'form'); - - if (ed.getParam("save_enablewhendirty") && !ed.isDirty()) - return; - - tinyMCE.triggerSave(); - - // Use callback instead - if (os = ed.getParam("save_onsavecallback")) { - if (ed.execCallback('save_onsavecallback', ed)) { - ed.startContent = tinymce.trim(ed.getContent({format : 'raw'})); - ed.nodeChanged(); - } - - return; - } - - if (formObj) { - ed.isNotDirty = true; - - if (formObj.onsubmit == null || formObj.onsubmit() != false) - formObj.submit(); - - ed.nodeChanged(); - } else - ed.windowManager.alert("Error: No form element found."); - }, - - _cancel : function() { - var ed = this.editor, os, h = tinymce.trim(ed.startContent); - - // Use callback instead - if (os = ed.getParam("save_oncancelcallback")) { - ed.execCallback('save_oncancelcallback', ed); - return; - } - - ed.setContent(h); - ed.undoManager.clear(); - ed.nodeChanged(); - } - }); - - // Register plugin - tinymce.PluginManager.add('save', tinymce.plugins.Save); -})(); \ No newline at end of file diff --git a/askbot/skins/common/media/js/tinymce/plugins/searchreplace/css/searchreplace.css b/askbot/skins/common/media/js/tinymce/plugins/searchreplace/css/searchreplace.css deleted file mode 100644 index ecdf58c7..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/searchreplace/css/searchreplace.css +++ /dev/null @@ -1,6 +0,0 @@ -.panel_wrapper {height:85px;} -.panel_wrapper div.current {height:85px;} - -/* IE */ -* html .panel_wrapper {height:100px;} -* html .panel_wrapper div.current {height:100px;} diff --git a/askbot/skins/common/media/js/tinymce/plugins/searchreplace/editor_plugin.js b/askbot/skins/common/media/js/tinymce/plugins/searchreplace/editor_plugin.js deleted file mode 100644 index 165bc12d..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/searchreplace/editor_plugin.js +++ /dev/null @@ -1 +0,0 @@ -(function(){tinymce.create("tinymce.plugins.SearchReplacePlugin",{init:function(a,c){function b(d){window.focus();a.windowManager.open({file:c+"/searchreplace.htm",width:420+parseInt(a.getLang("searchreplace.delta_width",0)),height:170+parseInt(a.getLang("searchreplace.delta_height",0)),inline:1,auto_focus:0},{mode:d,search_string:a.selection.getContent({format:"text"}),plugin_url:c})}a.addCommand("mceSearch",function(){b("search")});a.addCommand("mceReplace",function(){b("replace")});a.addButton("search",{title:"searchreplace.search_desc",cmd:"mceSearch"});a.addButton("replace",{title:"searchreplace.replace_desc",cmd:"mceReplace"});a.addShortcut("ctrl+f","searchreplace.search_desc","mceSearch")},getInfo:function(){return{longname:"Search/Replace",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/searchreplace",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("searchreplace",tinymce.plugins.SearchReplacePlugin)})(); \ No newline at end of file diff --git a/askbot/skins/common/media/js/tinymce/plugins/searchreplace/editor_plugin_src.js b/askbot/skins/common/media/js/tinymce/plugins/searchreplace/editor_plugin_src.js deleted file mode 100644 index 4c87e8fa..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/searchreplace/editor_plugin_src.js +++ /dev/null @@ -1,61 +0,0 @@ -/** - * editor_plugin_src.js - * - * Copyright 2009, Moxiecode Systems AB - * Released under LGPL License. - * - * License: http://tinymce.moxiecode.com/license - * Contributing: http://tinymce.moxiecode.com/contributing - */ - -(function() { - tinymce.create('tinymce.plugins.SearchReplacePlugin', { - init : function(ed, url) { - function open(m) { - // Keep IE from writing out the f/r character to the editor - // instance while initializing a new dialog. See: #3131190 - window.focus(); - - ed.windowManager.open({ - file : url + '/searchreplace.htm', - width : 420 + parseInt(ed.getLang('searchreplace.delta_width', 0)), - height : 170 + parseInt(ed.getLang('searchreplace.delta_height', 0)), - inline : 1, - auto_focus : 0 - }, { - mode : m, - search_string : ed.selection.getContent({format : 'text'}), - plugin_url : url - }); - }; - - // Register commands - ed.addCommand('mceSearch', function() { - open('search'); - }); - - ed.addCommand('mceReplace', function() { - open('replace'); - }); - - // Register buttons - ed.addButton('search', {title : 'searchreplace.search_desc', cmd : 'mceSearch'}); - ed.addButton('replace', {title : 'searchreplace.replace_desc', cmd : 'mceReplace'}); - - ed.addShortcut('ctrl+f', 'searchreplace.search_desc', 'mceSearch'); - }, - - getInfo : function() { - return { - longname : 'Search/Replace', - author : 'Moxiecode Systems AB', - authorurl : 'http://tinymce.moxiecode.com', - infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/searchreplace', - version : tinymce.majorVersion + "." + tinymce.minorVersion - }; - } - }); - - // Register plugin - tinymce.PluginManager.add('searchreplace', tinymce.plugins.SearchReplacePlugin); -})(); \ No newline at end of file diff --git a/askbot/skins/common/media/js/tinymce/plugins/searchreplace/js/searchreplace.js b/askbot/skins/common/media/js/tinymce/plugins/searchreplace/js/searchreplace.js deleted file mode 100644 index 80284b9f..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/searchreplace/js/searchreplace.js +++ /dev/null @@ -1,142 +0,0 @@ -tinyMCEPopup.requireLangPack(); - -var SearchReplaceDialog = { - init : function(ed) { - var t = this, f = document.forms[0], m = tinyMCEPopup.getWindowArg("mode"); - - t.switchMode(m); - - f[m + '_panel_searchstring'].value = tinyMCEPopup.getWindowArg("search_string"); - - // Focus input field - f[m + '_panel_searchstring'].focus(); - - mcTabs.onChange.add(function(tab_id, panel_id) { - t.switchMode(tab_id.substring(0, tab_id.indexOf('_'))); - }); - }, - - switchMode : function(m) { - var f, lm = this.lastMode; - - if (lm != m) { - f = document.forms[0]; - - if (lm) { - f[m + '_panel_searchstring'].value = f[lm + '_panel_searchstring'].value; - f[m + '_panel_backwardsu'].checked = f[lm + '_panel_backwardsu'].checked; - f[m + '_panel_backwardsd'].checked = f[lm + '_panel_backwardsd'].checked; - f[m + '_panel_casesensitivebox'].checked = f[lm + '_panel_casesensitivebox'].checked; - } - - mcTabs.displayTab(m + '_tab', m + '_panel'); - document.getElementById("replaceBtn").style.display = (m == "replace") ? "inline" : "none"; - document.getElementById("replaceAllBtn").style.display = (m == "replace") ? "inline" : "none"; - this.lastMode = m; - } - }, - - searchNext : function(a) { - var ed = tinyMCEPopup.editor, se = ed.selection, r = se.getRng(), f, m = this.lastMode, s, b, fl = 0, w = ed.getWin(), wm = ed.windowManager, fo = 0; - - // Get input - f = document.forms[0]; - s = f[m + '_panel_searchstring'].value; - b = f[m + '_panel_backwardsu'].checked; - ca = f[m + '_panel_casesensitivebox'].checked; - rs = f['replace_panel_replacestring'].value; - - if (tinymce.isIE) { - r = ed.getDoc().selection.createRange(); - } - - if (s == '') - return; - - function fix() { - // Correct Firefox graphics glitches - // TODO: Verify if this is actually needed any more, maybe it was for very old FF versions? - r = se.getRng().cloneRange(); - ed.getDoc().execCommand('SelectAll', false, null); - se.setRng(r); - }; - - function replace() { - ed.selection.setContent(rs); // Needs to be duplicated due to selection bug in IE - }; - - // IE flags - if (ca) - fl = fl | 4; - - switch (a) { - case 'all': - // Move caret to beginning of text - ed.execCommand('SelectAll'); - ed.selection.collapse(true); - - if (tinymce.isIE) { - ed.focus(); - r = ed.getDoc().selection.createRange(); - - while (r.findText(s, b ? -1 : 1, fl)) { - r.scrollIntoView(); - r.select(); - replace(); - fo = 1; - - if (b) { - r.moveEnd("character", -(rs.length)); // Otherwise will loop forever - } - } - - tinyMCEPopup.storeSelection(); - } else { - while (w.find(s, ca, b, false, false, false, false)) { - replace(); - fo = 1; - } - } - - if (fo) - tinyMCEPopup.alert(ed.getLang('searchreplace_dlg.allreplaced')); - else - tinyMCEPopup.alert(ed.getLang('searchreplace_dlg.notfound')); - - return; - - case 'current': - if (!ed.selection.isCollapsed()) - replace(); - - break; - } - - se.collapse(b); - r = se.getRng(); - - // Whats the point - if (!s) - return; - - if (tinymce.isIE) { - ed.focus(); - r = ed.getDoc().selection.createRange(); - - if (r.findText(s, b ? -1 : 1, fl)) { - r.scrollIntoView(); - r.select(); - } else - tinyMCEPopup.alert(ed.getLang('searchreplace_dlg.notfound')); - - tinyMCEPopup.storeSelection(); - } else { - if (!w.find(s, ca, b, false, false, false, false)) - tinyMCEPopup.alert(ed.getLang('searchreplace_dlg.notfound')); - else - fix(); - } - } -}; - -tinyMCEPopup.onInit.add(SearchReplaceDialog.init, SearchReplaceDialog); diff --git a/askbot/skins/common/media/js/tinymce/plugins/searchreplace/langs/en_dlg.js b/askbot/skins/common/media/js/tinymce/plugins/searchreplace/langs/en_dlg.js deleted file mode 100644 index 8a659009..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/searchreplace/langs/en_dlg.js +++ /dev/null @@ -1 +0,0 @@ -tinyMCE.addI18n('en.searchreplace_dlg',{findwhat:"Find What",replacewith:"Replace with",direction:"Direction",up:"Up",down:"Down",mcase:"Match Case",findnext:"Find Next",allreplaced:"All occurrences of the search string were replaced.","searchnext_desc":"Find Again",notfound:"The search has been completed. The search string could not be found.","search_title":"Find","replace_title":"Find/Replace",replaceall:"Replace All",replace:"Replace"}); \ No newline at end of file diff --git a/askbot/skins/common/media/js/tinymce/plugins/searchreplace/searchreplace.htm b/askbot/skins/common/media/js/tinymce/plugins/searchreplace/searchreplace.htm deleted file mode 100644 index 2443a918..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/searchreplace/searchreplace.htm +++ /dev/null @@ -1,100 +0,0 @@ - - - - {#searchreplace_dlg.replace_title} - - - - - - - - -
    - - -
    -
    - - - - - - - - - - - -
    - - - - - - - - - -
    - - - - - -
    -
    -
    - -
    - - - - - - - - - - - - - - - -
    - - - - - - - - - -
    - - - - - -
    -
    -
    - -
    - -
    - - - - -
    -
    - - diff --git a/askbot/skins/common/media/js/tinymce/plugins/spellchecker/css/content.css b/askbot/skins/common/media/js/tinymce/plugins/spellchecker/css/content.css deleted file mode 100644 index 24efa021..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/spellchecker/css/content.css +++ /dev/null @@ -1 +0,0 @@ -.mceItemHiddenSpellWord {background:url(../img/wline.gif) repeat-x bottom left; cursor:default;} diff --git a/askbot/skins/common/media/js/tinymce/plugins/spellchecker/editor_plugin.js b/askbot/skins/common/media/js/tinymce/plugins/spellchecker/editor_plugin.js deleted file mode 100644 index 48549c92..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/spellchecker/editor_plugin.js +++ /dev/null @@ -1 +0,0 @@ -(function(){var a=tinymce.util.JSONRequest,c=tinymce.each,b=tinymce.DOM;tinymce.create("tinymce.plugins.SpellcheckerPlugin",{getInfo:function(){return{longname:"Spellchecker",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/spellchecker",version:tinymce.majorVersion+"."+tinymce.minorVersion}},init:function(e,f){var g=this,d;g.url=f;g.editor=e;g.rpcUrl=e.getParam("spellchecker_rpc_url","{backend}");if(g.rpcUrl=="{backend}"){if(tinymce.isIE){return}g.hasSupport=true;e.onContextMenu.addToTop(function(h,i){if(g.active){return false}})}e.addCommand("mceSpellCheck",function(){if(g.rpcUrl=="{backend}"){g.editor.getBody().spellcheck=g.active=!g.active;return}if(!g.active){e.setProgressState(1);g._sendRPC("checkWords",[g.selectedLang,g._getWords()],function(h){if(h.length>0){g.active=1;g._markWords(h);e.setProgressState(0);e.nodeChanged()}else{e.setProgressState(0);if(e.getParam("spellchecker_report_no_misspellings",true)){e.windowManager.alert("spellchecker.no_mpell")}}})}else{g._done()}});if(e.settings.content_css!==false){e.contentCSS.push(f+"/css/content.css")}e.onClick.add(g._showMenu,g);e.onContextMenu.add(g._showMenu,g);e.onBeforeGetContent.add(function(){if(g.active){g._removeWords()}});e.onNodeChange.add(function(i,h){h.setActive("spellchecker",g.active)});e.onSetContent.add(function(){g._done()});e.onBeforeGetContent.add(function(){g._done()});e.onBeforeExecCommand.add(function(h,i){if(i=="mceFullScreen"){g._done()}});g.languages={};c(e.getParam("spellchecker_languages","+English=en,Danish=da,Dutch=nl,Finnish=fi,French=fr,German=de,Italian=it,Polish=pl,Portuguese=pt,Spanish=es,Swedish=sv","hash"),function(i,h){if(h.indexOf("+")===0){h=h.substring(1);g.selectedLang=i}g.languages[h]=i})},createControl:function(h,d){var f=this,g,e=f.editor;if(h=="spellchecker"){if(f.rpcUrl=="{backend}"){if(f.hasSupport){g=d.createButton(h,{title:"spellchecker.desc",cmd:"mceSpellCheck",scope:f})}return g}g=d.createSplitButton(h,{title:"spellchecker.desc",cmd:"mceSpellCheck",scope:f});g.onRenderMenu.add(function(j,i){i.add({title:"spellchecker.langs","class":"mceMenuItemTitle"}).setDisabled(1);c(f.languages,function(n,m){var p={icon:1},l;p.onclick=function(){if(n==f.selectedLang){return}l.setSelected(1);f.selectedItem.setSelected(0);f.selectedItem=l;f.selectedLang=n};p.title=m;l=i.add(p);l.setSelected(n==f.selectedLang);if(n==f.selectedLang){f.selectedItem=l}})});return g}},_walk:function(i,g){var h=this.editor.getDoc(),e;if(h.createTreeWalker){e=h.createTreeWalker(i,NodeFilter.SHOW_TEXT,null,false);while((i=e.nextNode())!=null){g.call(this,i)}}else{tinymce.walk(i,g,"childNodes")}},_getSeparators:function(){var e="",d,f=this.editor.getParam("spellchecker_word_separator_chars",'\\s!"#$%&()*+,-./:;<=>?@[]^_{|}§©«®±¶·¸»¼½¾¿×÷¤\u201d\u201c');for(d=0;d$2");while((s=p.indexOf(""))!=-1){o=p.substring(0,s);if(o.length){r=j.createTextNode(g.decode(o));q.appendChild(r)}p=p.substring(s+10);s=p.indexOf("");o=p.substring(0,s);p=p.substring(s+11);q.appendChild(g.create("span",{"class":"mceItemHiddenSpellWord"},o))}if(p.length){r=j.createTextNode(g.decode(p));q.appendChild(r)}}else{q.innerHTML=p.replace(f,'$1$2')}g.replace(q,t)}});i.setRng(d)},_showMenu:function(h,j){var i=this,h=i.editor,d=i._menu,l,k=h.dom,g=k.getViewPort(h.getWin()),f=j.target;j=0;if(!d){d=h.controlManager.createDropMenu("spellcheckermenu",{"class":"mceNoIcons"});i._menu=d}if(k.hasClass(f,"mceItemHiddenSpellWord")){d.removeAll();d.add({title:"spellchecker.wait","class":"mceMenuItemTitle"}).setDisabled(1);i._sendRPC("getSuggestions",[i.selectedLang,k.decode(f.innerHTML)],function(m){var e;d.removeAll();if(m.length>0){d.add({title:"spellchecker.sug","class":"mceMenuItemTitle"}).setDisabled(1);c(m,function(n){d.add({title:n,onclick:function(){k.replace(h.getDoc().createTextNode(n),f);i._checkDone()}})});d.addSeparator()}else{d.add({title:"spellchecker.no_sug","class":"mceMenuItemTitle"}).setDisabled(1)}if(h.getParam("show_ignore_words",true)){e=i.editor.getParam("spellchecker_enable_ignore_rpc","");d.add({title:"spellchecker.ignore_word",onclick:function(){var n=f.innerHTML;k.remove(f,1);i._checkDone();if(e){h.setProgressState(1);i._sendRPC("ignoreWord",[i.selectedLang,n],function(o){h.setProgressState(0)})}}});d.add({title:"spellchecker.ignore_words",onclick:function(){var n=f.innerHTML;i._removeWords(k.decode(n));i._checkDone();if(e){h.setProgressState(1);i._sendRPC("ignoreWords",[i.selectedLang,n],function(o){h.setProgressState(0)})}}})}if(i.editor.getParam("spellchecker_enable_learn_rpc")){d.add({title:"spellchecker.learn_word",onclick:function(){var n=f.innerHTML;k.remove(f,1);i._checkDone();h.setProgressState(1);i._sendRPC("learnWord",[i.selectedLang,n],function(o){h.setProgressState(0)})}})}d.update()});l=b.getPos(h.getContentAreaContainer());d.settings.offset_x=l.x;d.settings.offset_y=l.y;h.selection.select(f);l=k.getPos(f);d.showMenu(l.x,l.y+f.offsetHeight-g.y);return tinymce.dom.Event.cancel(j)}else{d.hideMenu()}},_checkDone:function(){var e=this,d=e.editor,g=d.dom,f;c(g.select("span"),function(h){if(h&&g.hasClass(h,"mceItemHiddenSpellWord")){f=true;return false}});if(!f){e._done()}},_done:function(){var d=this,e=d.active;if(d.active){d.active=0;d._removeWords();if(d._menu){d._menu.hideMenu()}if(e){d.editor.nodeChanged()}}},_sendRPC:function(e,g,d){var f=this;a.sendRPC({url:f.rpcUrl,method:e,params:g,success:d,error:function(i,h){f.editor.setProgressState(0);f.editor.windowManager.alert(i.errstr||("Error response: "+h.responseText))}})}});tinymce.PluginManager.add("spellchecker",tinymce.plugins.SpellcheckerPlugin)})(); \ No newline at end of file diff --git a/askbot/skins/common/media/js/tinymce/plugins/spellchecker/editor_plugin_src.js b/askbot/skins/common/media/js/tinymce/plugins/spellchecker/editor_plugin_src.js deleted file mode 100644 index 86fdfceb..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/spellchecker/editor_plugin_src.js +++ /dev/null @@ -1,436 +0,0 @@ -/** - * editor_plugin_src.js - * - * Copyright 2009, Moxiecode Systems AB - * Released under LGPL License. - * - * License: http://tinymce.moxiecode.com/license - * Contributing: http://tinymce.moxiecode.com/contributing - */ - -(function() { - var JSONRequest = tinymce.util.JSONRequest, each = tinymce.each, DOM = tinymce.DOM; - - tinymce.create('tinymce.plugins.SpellcheckerPlugin', { - getInfo : function() { - return { - longname : 'Spellchecker', - author : 'Moxiecode Systems AB', - authorurl : 'http://tinymce.moxiecode.com', - infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/spellchecker', - version : tinymce.majorVersion + "." + tinymce.minorVersion - }; - }, - - init : function(ed, url) { - var t = this, cm; - - t.url = url; - t.editor = ed; - t.rpcUrl = ed.getParam("spellchecker_rpc_url", "{backend}"); - - if (t.rpcUrl == '{backend}') { - // Sniff if the browser supports native spellchecking (Don't know of a better way) - if (tinymce.isIE) - return; - - t.hasSupport = true; - - // Disable the context menu when spellchecking is active - ed.onContextMenu.addToTop(function(ed, e) { - if (t.active) - return false; - }); - } - - // Register commands - ed.addCommand('mceSpellCheck', function() { - if (t.rpcUrl == '{backend}') { - // Enable/disable native spellchecker - t.editor.getBody().spellcheck = t.active = !t.active; - return; - } - - if (!t.active) { - ed.setProgressState(1); - t._sendRPC('checkWords', [t.selectedLang, t._getWords()], function(r) { - if (r.length > 0) { - t.active = 1; - t._markWords(r); - ed.setProgressState(0); - ed.nodeChanged(); - } else { - ed.setProgressState(0); - - if (ed.getParam('spellchecker_report_no_misspellings', true)) - ed.windowManager.alert('spellchecker.no_mpell'); - } - }); - } else - t._done(); - }); - - if (ed.settings.content_css !== false) - ed.contentCSS.push(url + '/css/content.css'); - - ed.onClick.add(t._showMenu, t); - ed.onContextMenu.add(t._showMenu, t); - ed.onBeforeGetContent.add(function() { - if (t.active) - t._removeWords(); - }); - - ed.onNodeChange.add(function(ed, cm) { - cm.setActive('spellchecker', t.active); - }); - - ed.onSetContent.add(function() { - t._done(); - }); - - ed.onBeforeGetContent.add(function() { - t._done(); - }); - - ed.onBeforeExecCommand.add(function(ed, cmd) { - if (cmd == 'mceFullScreen') - t._done(); - }); - - // Find selected language - t.languages = {}; - each(ed.getParam('spellchecker_languages', '+English=en,Danish=da,Dutch=nl,Finnish=fi,French=fr,German=de,Italian=it,Polish=pl,Portuguese=pt,Spanish=es,Swedish=sv', 'hash'), function(v, k) { - if (k.indexOf('+') === 0) { - k = k.substring(1); - t.selectedLang = v; - } - - t.languages[k] = v; - }); - }, - - createControl : function(n, cm) { - var t = this, c, ed = t.editor; - - if (n == 'spellchecker') { - // Use basic button if we use the native spellchecker - if (t.rpcUrl == '{backend}') { - // Create simple toggle button if we have native support - if (t.hasSupport) - c = cm.createButton(n, {title : 'spellchecker.desc', cmd : 'mceSpellCheck', scope : t}); - - return c; - } - - c = cm.createSplitButton(n, {title : 'spellchecker.desc', cmd : 'mceSpellCheck', scope : t}); - - c.onRenderMenu.add(function(c, m) { - m.add({title : 'spellchecker.langs', 'class' : 'mceMenuItemTitle'}).setDisabled(1); - each(t.languages, function(v, k) { - var o = {icon : 1}, mi; - - o.onclick = function() { - if (v == t.selectedLang) { - return; - } - mi.setSelected(1); - t.selectedItem.setSelected(0); - t.selectedItem = mi; - t.selectedLang = v; - }; - - o.title = k; - mi = m.add(o); - mi.setSelected(v == t.selectedLang); - - if (v == t.selectedLang) - t.selectedItem = mi; - }) - }); - - return c; - } - }, - - // Internal functions - - _walk : function(n, f) { - var d = this.editor.getDoc(), w; - - if (d.createTreeWalker) { - w = d.createTreeWalker(n, NodeFilter.SHOW_TEXT, null, false); - - while ((n = w.nextNode()) != null) - f.call(this, n); - } else - tinymce.walk(n, f, 'childNodes'); - }, - - _getSeparators : function() { - var re = '', i, str = this.editor.getParam('spellchecker_word_separator_chars', '\\s!"#$%&()*+,-./:;<=>?@[\]^_{|}§©«®±¶·¸»¼½¾¿×÷¤\u201d\u201c'); - - // Build word separator regexp - for (i=0; i elements content is broken after spellchecking. - // Bug #1408: Preceding whitespace characters are removed - // @TODO: I'm not sure that both are still issues on IE9. - if (tinymce.isIE) { - // Enclose mispelled words with temporal tag - v = v.replace(rx, '$1$2'); - // Loop over the content finding mispelled words - while ((pos = v.indexOf('')) != -1) { - // Add text node for the content before the word - txt = v.substring(0, pos); - if (txt.length) { - node = doc.createTextNode(dom.decode(txt)); - elem.appendChild(node); - } - v = v.substring(pos+10); - pos = v.indexOf(''); - txt = v.substring(0, pos); - v = v.substring(pos+11); - // Add span element for the word - elem.appendChild(dom.create('span', {'class' : 'mceItemHiddenSpellWord'}, txt)); - } - // Add text node for the rest of the content - if (v.length) { - node = doc.createTextNode(dom.decode(v)); - elem.appendChild(node); - } - } else { - // Other browsers preserve whitespace characters on innerHTML usage - elem.innerHTML = v.replace(rx, '$1$2'); - } - - // Finally, replace the node with the container - dom.replace(elem, n); - } - }); - - se.setRng(r); - }, - - _showMenu : function(ed, e) { - var t = this, ed = t.editor, m = t._menu, p1, dom = ed.dom, vp = dom.getViewPort(ed.getWin()), wordSpan = e.target; - - e = 0; // Fixes IE memory leak - - if (!m) { - m = ed.controlManager.createDropMenu('spellcheckermenu', {'class' : 'mceNoIcons'}); - t._menu = m; - } - - if (dom.hasClass(wordSpan, 'mceItemHiddenSpellWord')) { - m.removeAll(); - m.add({title : 'spellchecker.wait', 'class' : 'mceMenuItemTitle'}).setDisabled(1); - - t._sendRPC('getSuggestions', [t.selectedLang, dom.decode(wordSpan.innerHTML)], function(r) { - var ignoreRpc; - - m.removeAll(); - - if (r.length > 0) { - m.add({title : 'spellchecker.sug', 'class' : 'mceMenuItemTitle'}).setDisabled(1); - each(r, function(v) { - m.add({title : v, onclick : function() { - dom.replace(ed.getDoc().createTextNode(v), wordSpan); - t._checkDone(); - }}); - }); - - m.addSeparator(); - } else - m.add({title : 'spellchecker.no_sug', 'class' : 'mceMenuItemTitle'}).setDisabled(1); - - if (ed.getParam('show_ignore_words', true)) { - ignoreRpc = t.editor.getParam("spellchecker_enable_ignore_rpc", ''); - m.add({ - title : 'spellchecker.ignore_word', - onclick : function() { - var word = wordSpan.innerHTML; - - dom.remove(wordSpan, 1); - t._checkDone(); - - // tell the server if we need to - if (ignoreRpc) { - ed.setProgressState(1); - t._sendRPC('ignoreWord', [t.selectedLang, word], function(r) { - ed.setProgressState(0); - }); - } - } - }); - - m.add({ - title : 'spellchecker.ignore_words', - onclick : function() { - var word = wordSpan.innerHTML; - - t._removeWords(dom.decode(word)); - t._checkDone(); - - // tell the server if we need to - if (ignoreRpc) { - ed.setProgressState(1); - t._sendRPC('ignoreWords', [t.selectedLang, word], function(r) { - ed.setProgressState(0); - }); - } - } - }); - } - - if (t.editor.getParam("spellchecker_enable_learn_rpc")) { - m.add({ - title : 'spellchecker.learn_word', - onclick : function() { - var word = wordSpan.innerHTML; - - dom.remove(wordSpan, 1); - t._checkDone(); - - ed.setProgressState(1); - t._sendRPC('learnWord', [t.selectedLang, word], function(r) { - ed.setProgressState(0); - }); - } - }); - } - - m.update(); - }); - - p1 = DOM.getPos(ed.getContentAreaContainer()); - m.settings.offset_x = p1.x; - m.settings.offset_y = p1.y; - - ed.selection.select(wordSpan); - p1 = dom.getPos(wordSpan); - m.showMenu(p1.x, p1.y + wordSpan.offsetHeight - vp.y); - - return tinymce.dom.Event.cancel(e); - } else - m.hideMenu(); - }, - - _checkDone : function() { - var t = this, ed = t.editor, dom = ed.dom, o; - - each(dom.select('span'), function(n) { - if (n && dom.hasClass(n, 'mceItemHiddenSpellWord')) { - o = true; - return false; - } - }); - - if (!o) - t._done(); - }, - - _done : function() { - var t = this, la = t.active; - - if (t.active) { - t.active = 0; - t._removeWords(); - - if (t._menu) - t._menu.hideMenu(); - - if (la) - t.editor.nodeChanged(); - } - }, - - _sendRPC : function(m, p, cb) { - var t = this; - - JSONRequest.sendRPC({ - url : t.rpcUrl, - method : m, - params : p, - success : cb, - error : function(e, x) { - t.editor.setProgressState(0); - t.editor.windowManager.alert(e.errstr || ('Error response: ' + x.responseText)); - } - }); - } - }); - - // Register plugin - tinymce.PluginManager.add('spellchecker', tinymce.plugins.SpellcheckerPlugin); -})(); diff --git a/askbot/skins/common/media/js/tinymce/plugins/spellchecker/img/wline.gif b/askbot/skins/common/media/js/tinymce/plugins/spellchecker/img/wline.gif deleted file mode 100644 index 7d0a4dbc..00000000 Binary files a/askbot/skins/common/media/js/tinymce/plugins/spellchecker/img/wline.gif and /dev/null differ diff --git a/askbot/skins/common/media/js/tinymce/plugins/style/css/props.css b/askbot/skins/common/media/js/tinymce/plugins/style/css/props.css deleted file mode 100644 index 3b8f0ee7..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/style/css/props.css +++ /dev/null @@ -1,14 +0,0 @@ -#text_font {width:250px;} -#text_size {width:70px;} -.mceAddSelectValue {background:#DDD;} -select, #block_text_indent, #box_width, #box_height, #box_padding_top, #box_padding_right, #box_padding_bottom, #box_padding_left {width:70px;} -#box_margin_top, #box_margin_right, #box_margin_bottom, #box_margin_left, #positioning_width, #positioning_height, #positioning_zindex {width:70px;} -#positioning_placement_top, #positioning_placement_right, #positioning_placement_bottom, #positioning_placement_left {width:70px;} -#positioning_clip_top, #positioning_clip_right, #positioning_clip_bottom, #positioning_clip_left {width:70px;} -.panel_toggle_insert_span {padding-top:10px;} -.panel_wrapper div.current {padding-top:10px;height:230px;} -.delim {border-left:1px solid gray;} -.tdelim {border-bottom:1px solid gray;} -#block_display {width:145px;} -#list_type {width:115px;} -.disabled {background:#EEE;} diff --git a/askbot/skins/common/media/js/tinymce/plugins/style/editor_plugin.js b/askbot/skins/common/media/js/tinymce/plugins/style/editor_plugin.js deleted file mode 100644 index dda9f928..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/style/editor_plugin.js +++ /dev/null @@ -1 +0,0 @@ -(function(){tinymce.create("tinymce.plugins.StylePlugin",{init:function(a,b){a.addCommand("mceStyleProps",function(){var c=false;var f=a.selection.getSelectedBlocks();var d=[];if(f.length===1){d.push(a.selection.getNode().style.cssText)}else{tinymce.each(f,function(g){d.push(a.dom.getAttrib(g,"style"))});c=true}a.windowManager.open({file:b+"/props.htm",width:480+parseInt(a.getLang("style.delta_width",0)),height:340+parseInt(a.getLang("style.delta_height",0)),inline:1},{applyStyleToBlocks:c,plugin_url:b,styles:d})});a.addCommand("mceSetElementStyle",function(d,c){if(e=a.selection.getNode()){a.dom.setAttrib(e,"style",c);a.execCommand("mceRepaint")}});a.onNodeChange.add(function(d,c,f){c.setDisabled("styleprops",f.nodeName==="BODY")});a.addButton("styleprops",{title:"style.desc",cmd:"mceStyleProps"})},getInfo:function(){return{longname:"Style",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/style",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("style",tinymce.plugins.StylePlugin)})(); \ No newline at end of file diff --git a/askbot/skins/common/media/js/tinymce/plugins/style/editor_plugin_src.js b/askbot/skins/common/media/js/tinymce/plugins/style/editor_plugin_src.js deleted file mode 100644 index eaa7c771..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/style/editor_plugin_src.js +++ /dev/null @@ -1,71 +0,0 @@ -/** - * editor_plugin_src.js - * - * Copyright 2009, Moxiecode Systems AB - * Released under LGPL License. - * - * License: http://tinymce.moxiecode.com/license - * Contributing: http://tinymce.moxiecode.com/contributing - */ - -(function() { - tinymce.create('tinymce.plugins.StylePlugin', { - init : function(ed, url) { - // Register commands - ed.addCommand('mceStyleProps', function() { - - var applyStyleToBlocks = false; - var blocks = ed.selection.getSelectedBlocks(); - var styles = []; - - if (blocks.length === 1) { - styles.push(ed.selection.getNode().style.cssText); - } - else { - tinymce.each(blocks, function(block) { - styles.push(ed.dom.getAttrib(block, 'style')); - }); - applyStyleToBlocks = true; - } - - ed.windowManager.open({ - file : url + '/props.htm', - width : 480 + parseInt(ed.getLang('style.delta_width', 0)), - height : 340 + parseInt(ed.getLang('style.delta_height', 0)), - inline : 1 - }, { - applyStyleToBlocks : applyStyleToBlocks, - plugin_url : url, - styles : styles - }); - }); - - ed.addCommand('mceSetElementStyle', function(ui, v) { - if (e = ed.selection.getNode()) { - ed.dom.setAttrib(e, 'style', v); - ed.execCommand('mceRepaint'); - } - }); - - ed.onNodeChange.add(function(ed, cm, n) { - cm.setDisabled('styleprops', n.nodeName === 'BODY'); - }); - - // Register buttons - ed.addButton('styleprops', {title : 'style.desc', cmd : 'mceStyleProps'}); - }, - - getInfo : function() { - return { - longname : 'Style', - author : 'Moxiecode Systems AB', - authorurl : 'http://tinymce.moxiecode.com', - infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/style', - version : tinymce.majorVersion + "." + tinymce.minorVersion - }; - } - }); - - // Register plugin - tinymce.PluginManager.add('style', tinymce.plugins.StylePlugin); -})(); diff --git a/askbot/skins/common/media/js/tinymce/plugins/style/js/props.js b/askbot/skins/common/media/js/tinymce/plugins/style/js/props.js deleted file mode 100644 index 0a8a8ec3..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/style/js/props.js +++ /dev/null @@ -1,709 +0,0 @@ -tinyMCEPopup.requireLangPack(); - -var defaultFonts = "" + - "Arial, Helvetica, sans-serif=Arial, Helvetica, sans-serif;" + - "Times New Roman, Times, serif=Times New Roman, Times, serif;" + - "Courier New, Courier, mono=Courier New, Courier, mono;" + - "Times New Roman, Times, serif=Times New Roman, Times, serif;" + - "Georgia, Times New Roman, Times, serif=Georgia, Times New Roman, Times, serif;" + - "Verdana, Arial, Helvetica, sans-serif=Verdana, Arial, Helvetica, sans-serif;" + - "Geneva, Arial, Helvetica, sans-serif=Geneva, Arial, Helvetica, sans-serif"; - -var defaultSizes = "9;10;12;14;16;18;24;xx-small;x-small;small;medium;large;x-large;xx-large;smaller;larger"; -var defaultMeasurement = "+pixels=px;points=pt;inches=in;centimetres=cm;millimetres=mm;picas=pc;ems=em;exs=ex;%"; -var defaultSpacingMeasurement = "pixels=px;points=pt;inches=in;centimetres=cm;millimetres=mm;picas=pc;+ems=em;exs=ex;%"; -var defaultIndentMeasurement = "pixels=px;+points=pt;inches=in;centimetres=cm;millimetres=mm;picas=pc;ems=em;exs=ex;%"; -var defaultWeight = "normal;bold;bolder;lighter;100;200;300;400;500;600;700;800;900"; -var defaultTextStyle = "normal;italic;oblique"; -var defaultVariant = "normal;small-caps"; -var defaultLineHeight = "normal"; -var defaultAttachment = "fixed;scroll"; -var defaultRepeat = "no-repeat;repeat;repeat-x;repeat-y"; -var defaultPosH = "left;center;right"; -var defaultPosV = "top;center;bottom"; -var defaultVAlign = "baseline;sub;super;top;text-top;middle;bottom;text-bottom"; -var defaultDisplay = "inline;block;list-item;run-in;compact;marker;table;inline-table;table-row-group;table-header-group;table-footer-group;table-row;table-column-group;table-column;table-cell;table-caption;none"; -var defaultBorderStyle = "none;solid;dashed;dotted;double;groove;ridge;inset;outset"; -var defaultBorderWidth = "thin;medium;thick"; -var defaultListType = "disc;circle;square;decimal;lower-roman;upper-roman;lower-alpha;upper-alpha;none"; - -function aggregateStyles(allStyles) { - var mergedStyles = {}; - - tinymce.each(allStyles, function(style) { - if (style !== '') { - var parsedStyles = tinyMCEPopup.editor.dom.parseStyle(style); - for (var name in parsedStyles) { - if (parsedStyles.hasOwnProperty(name)) { - if (mergedStyles[name] === undefined) { - mergedStyles[name] = parsedStyles[name]; - } - else if (name === 'text-decoration') { - if (mergedStyles[name].indexOf(parsedStyles[name]) === -1) { - mergedStyles[name] = mergedStyles[name] +' '+ parsedStyles[name]; - } - } - } - } - } - }); - - return mergedStyles; -} - -var applyActionIsInsert; -var existingStyles; - -function init(ed) { - var ce = document.getElementById('container'), h; - - existingStyles = aggregateStyles(tinyMCEPopup.getWindowArg('styles')); - ce.style.cssText = tinyMCEPopup.editor.dom.serializeStyle(existingStyles); - - applyActionIsInsert = ed.getParam("edit_css_style_insert_span", false); - document.getElementById('toggle_insert_span').checked = applyActionIsInsert; - - h = getBrowserHTML('background_image_browser','background_image','image','advimage'); - document.getElementById("background_image_browser").innerHTML = h; - - document.getElementById('text_color_pickcontainer').innerHTML = getColorPickerHTML('text_color_pick','text_color'); - document.getElementById('background_color_pickcontainer').innerHTML = getColorPickerHTML('background_color_pick','background_color'); - document.getElementById('border_color_top_pickcontainer').innerHTML = getColorPickerHTML('border_color_top_pick','border_color_top'); - document.getElementById('border_color_right_pickcontainer').innerHTML = getColorPickerHTML('border_color_right_pick','border_color_right'); - document.getElementById('border_color_bottom_pickcontainer').innerHTML = getColorPickerHTML('border_color_bottom_pick','border_color_bottom'); - document.getElementById('border_color_left_pickcontainer').innerHTML = getColorPickerHTML('border_color_left_pick','border_color_left'); - - fillSelect(0, 'text_font', 'style_font', defaultFonts, ';', true); - fillSelect(0, 'text_size', 'style_font_size', defaultSizes, ';', true); - fillSelect(0, 'text_size_measurement', 'style_font_size_measurement', defaultMeasurement, ';', true); - fillSelect(0, 'text_case', 'style_text_case', "capitalize;uppercase;lowercase", ';', true); - fillSelect(0, 'text_weight', 'style_font_weight', defaultWeight, ';', true); - fillSelect(0, 'text_style', 'style_font_style', defaultTextStyle, ';', true); - fillSelect(0, 'text_variant', 'style_font_variant', defaultVariant, ';', true); - fillSelect(0, 'text_lineheight', 'style_font_line_height', defaultLineHeight, ';', true); - fillSelect(0, 'text_lineheight_measurement', 'style_font_line_height_measurement', defaultMeasurement, ';', true); - - fillSelect(0, 'background_attachment', 'style_background_attachment', defaultAttachment, ';', true); - fillSelect(0, 'background_repeat', 'style_background_repeat', defaultRepeat, ';', true); - - fillSelect(0, 'background_hpos_measurement', 'style_background_hpos_measurement', defaultMeasurement, ';', true); - fillSelect(0, 'background_vpos_measurement', 'style_background_vpos_measurement', defaultMeasurement, ';', true); - - fillSelect(0, 'background_hpos', 'style_background_hpos', defaultPosH, ';', true); - fillSelect(0, 'background_vpos', 'style_background_vpos', defaultPosV, ';', true); - - fillSelect(0, 'block_wordspacing', 'style_wordspacing', 'normal', ';', true); - fillSelect(0, 'block_wordspacing_measurement', 'style_wordspacing_measurement', defaultSpacingMeasurement, ';', true); - fillSelect(0, 'block_letterspacing', 'style_letterspacing', 'normal', ';', true); - fillSelect(0, 'block_letterspacing_measurement', 'style_letterspacing_measurement', defaultSpacingMeasurement, ';', true); - fillSelect(0, 'block_vertical_alignment', 'style_vertical_alignment', defaultVAlign, ';', true); - fillSelect(0, 'block_text_align', 'style_text_align', "left;right;center;justify", ';', true); - fillSelect(0, 'block_whitespace', 'style_whitespace', "normal;pre;nowrap", ';', true); - fillSelect(0, 'block_display', 'style_display', defaultDisplay, ';', true); - fillSelect(0, 'block_text_indent_measurement', 'style_text_indent_measurement', defaultIndentMeasurement, ';', true); - - fillSelect(0, 'box_width_measurement', 'style_box_width_measurement', defaultMeasurement, ';', true); - fillSelect(0, 'box_height_measurement', 'style_box_height_measurement', defaultMeasurement, ';', true); - fillSelect(0, 'box_float', 'style_float', 'left;right;none', ';', true); - fillSelect(0, 'box_clear', 'style_clear', 'left;right;both;none', ';', true); - fillSelect(0, 'box_padding_left_measurement', 'style_padding_left_measurement', defaultMeasurement, ';', true); - fillSelect(0, 'box_padding_top_measurement', 'style_padding_top_measurement', defaultMeasurement, ';', true); - fillSelect(0, 'box_padding_bottom_measurement', 'style_padding_bottom_measurement', defaultMeasurement, ';', true); - fillSelect(0, 'box_padding_right_measurement', 'style_padding_right_measurement', defaultMeasurement, ';', true); - fillSelect(0, 'box_margin_left_measurement', 'style_margin_left_measurement', defaultMeasurement, ';', true); - fillSelect(0, 'box_margin_top_measurement', 'style_margin_top_measurement', defaultMeasurement, ';', true); - fillSelect(0, 'box_margin_bottom_measurement', 'style_margin_bottom_measurement', defaultMeasurement, ';', true); - fillSelect(0, 'box_margin_right_measurement', 'style_margin_right_measurement', defaultMeasurement, ';', true); - - fillSelect(0, 'border_style_top', 'style_border_style_top', defaultBorderStyle, ';', true); - fillSelect(0, 'border_style_right', 'style_border_style_right', defaultBorderStyle, ';', true); - fillSelect(0, 'border_style_bottom', 'style_border_style_bottom', defaultBorderStyle, ';', true); - fillSelect(0, 'border_style_left', 'style_border_style_left', defaultBorderStyle, ';', true); - - fillSelect(0, 'border_width_top', 'style_border_width_top', defaultBorderWidth, ';', true); - fillSelect(0, 'border_width_right', 'style_border_width_right', defaultBorderWidth, ';', true); - fillSelect(0, 'border_width_bottom', 'style_border_width_bottom', defaultBorderWidth, ';', true); - fillSelect(0, 'border_width_left', 'style_border_width_left', defaultBorderWidth, ';', true); - - fillSelect(0, 'border_width_top_measurement', 'style_border_width_top_measurement', defaultMeasurement, ';', true); - fillSelect(0, 'border_width_right_measurement', 'style_border_width_right_measurement', defaultMeasurement, ';', true); - fillSelect(0, 'border_width_bottom_measurement', 'style_border_width_bottom_measurement', defaultMeasurement, ';', true); - fillSelect(0, 'border_width_left_measurement', 'style_border_width_left_measurement', defaultMeasurement, ';', true); - - fillSelect(0, 'list_type', 'style_list_type', defaultListType, ';', true); - fillSelect(0, 'list_position', 'style_list_position', "inside;outside", ';', true); - - fillSelect(0, 'positioning_type', 'style_positioning_type', "absolute;relative;static", ';', true); - fillSelect(0, 'positioning_visibility', 'style_positioning_visibility', "inherit;visible;hidden", ';', true); - - fillSelect(0, 'positioning_width_measurement', 'style_positioning_width_measurement', defaultMeasurement, ';', true); - fillSelect(0, 'positioning_height_measurement', 'style_positioning_height_measurement', defaultMeasurement, ';', true); - fillSelect(0, 'positioning_overflow', 'style_positioning_overflow', "visible;hidden;scroll;auto", ';', true); - - fillSelect(0, 'positioning_placement_top_measurement', 'style_positioning_placement_top_measurement', defaultMeasurement, ';', true); - fillSelect(0, 'positioning_placement_right_measurement', 'style_positioning_placement_right_measurement', defaultMeasurement, ';', true); - fillSelect(0, 'positioning_placement_bottom_measurement', 'style_positioning_placement_bottom_measurement', defaultMeasurement, ';', true); - fillSelect(0, 'positioning_placement_left_measurement', 'style_positioning_placement_left_measurement', defaultMeasurement, ';', true); - - fillSelect(0, 'positioning_clip_top_measurement', 'style_positioning_clip_top_measurement', defaultMeasurement, ';', true); - fillSelect(0, 'positioning_clip_right_measurement', 'style_positioning_clip_right_measurement', defaultMeasurement, ';', true); - fillSelect(0, 'positioning_clip_bottom_measurement', 'style_positioning_clip_bottom_measurement', defaultMeasurement, ';', true); - fillSelect(0, 'positioning_clip_left_measurement', 'style_positioning_clip_left_measurement', defaultMeasurement, ';', true); - - TinyMCE_EditableSelects.init(); - setupFormData(); - showDisabledControls(); -} - -function setupFormData() { - var ce = document.getElementById('container'), f = document.forms[0], s, b, i; - - // Setup text fields - - selectByValue(f, 'text_font', ce.style.fontFamily, true, true); - selectByValue(f, 'text_size', getNum(ce.style.fontSize), true, true); - selectByValue(f, 'text_size_measurement', getMeasurement(ce.style.fontSize)); - selectByValue(f, 'text_weight', ce.style.fontWeight, true, true); - selectByValue(f, 'text_style', ce.style.fontStyle, true, true); - selectByValue(f, 'text_lineheight', getNum(ce.style.lineHeight), true, true); - selectByValue(f, 'text_lineheight_measurement', getMeasurement(ce.style.lineHeight)); - selectByValue(f, 'text_case', ce.style.textTransform, true, true); - selectByValue(f, 'text_variant', ce.style.fontVariant, true, true); - f.text_color.value = tinyMCEPopup.editor.dom.toHex(ce.style.color); - updateColor('text_color_pick', 'text_color'); - f.text_underline.checked = inStr(ce.style.textDecoration, 'underline'); - f.text_overline.checked = inStr(ce.style.textDecoration, 'overline'); - f.text_linethrough.checked = inStr(ce.style.textDecoration, 'line-through'); - f.text_blink.checked = inStr(ce.style.textDecoration, 'blink'); - f.text_none.checked = inStr(ce.style.textDecoration, 'none'); - updateTextDecorations(); - - // Setup background fields - - f.background_color.value = tinyMCEPopup.editor.dom.toHex(ce.style.backgroundColor); - updateColor('background_color_pick', 'background_color'); - f.background_image.value = ce.style.backgroundImage.replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1"); - selectByValue(f, 'background_repeat', ce.style.backgroundRepeat, true, true); - selectByValue(f, 'background_attachment', ce.style.backgroundAttachment, true, true); - selectByValue(f, 'background_hpos', getNum(getVal(ce.style.backgroundPosition, 0)), true, true); - selectByValue(f, 'background_hpos_measurement', getMeasurement(getVal(ce.style.backgroundPosition, 0))); - selectByValue(f, 'background_vpos', getNum(getVal(ce.style.backgroundPosition, 1)), true, true); - selectByValue(f, 'background_vpos_measurement', getMeasurement(getVal(ce.style.backgroundPosition, 1))); - - // Setup block fields - - selectByValue(f, 'block_wordspacing', getNum(ce.style.wordSpacing), true, true); - selectByValue(f, 'block_wordspacing_measurement', getMeasurement(ce.style.wordSpacing)); - selectByValue(f, 'block_letterspacing', getNum(ce.style.letterSpacing), true, true); - selectByValue(f, 'block_letterspacing_measurement', getMeasurement(ce.style.letterSpacing)); - selectByValue(f, 'block_vertical_alignment', ce.style.verticalAlign, true, true); - selectByValue(f, 'block_text_align', ce.style.textAlign, true, true); - f.block_text_indent.value = getNum(ce.style.textIndent); - selectByValue(f, 'block_text_indent_measurement', getMeasurement(ce.style.textIndent)); - selectByValue(f, 'block_whitespace', ce.style.whiteSpace, true, true); - selectByValue(f, 'block_display', ce.style.display, true, true); - - // Setup box fields - - f.box_width.value = getNum(ce.style.width); - selectByValue(f, 'box_width_measurement', getMeasurement(ce.style.width)); - - f.box_height.value = getNum(ce.style.height); - selectByValue(f, 'box_height_measurement', getMeasurement(ce.style.height)); - selectByValue(f, 'box_float', ce.style.cssFloat || ce.style.styleFloat, true, true); - - selectByValue(f, 'box_clear', ce.style.clear, true, true); - - setupBox(f, ce, 'box_padding', 'padding', ''); - setupBox(f, ce, 'box_margin', 'margin', ''); - - // Setup border fields - - setupBox(f, ce, 'border_style', 'border', 'Style'); - setupBox(f, ce, 'border_width', 'border', 'Width'); - setupBox(f, ce, 'border_color', 'border', 'Color'); - - updateColor('border_color_top_pick', 'border_color_top'); - updateColor('border_color_right_pick', 'border_color_right'); - updateColor('border_color_bottom_pick', 'border_color_bottom'); - updateColor('border_color_left_pick', 'border_color_left'); - - f.elements.border_color_top.value = tinyMCEPopup.editor.dom.toHex(f.elements.border_color_top.value); - f.elements.border_color_right.value = tinyMCEPopup.editor.dom.toHex(f.elements.border_color_right.value); - f.elements.border_color_bottom.value = tinyMCEPopup.editor.dom.toHex(f.elements.border_color_bottom.value); - f.elements.border_color_left.value = tinyMCEPopup.editor.dom.toHex(f.elements.border_color_left.value); - - // Setup list fields - - selectByValue(f, 'list_type', ce.style.listStyleType, true, true); - selectByValue(f, 'list_position', ce.style.listStylePosition, true, true); - f.list_bullet_image.value = ce.style.listStyleImage.replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1"); - - // Setup box fields - - selectByValue(f, 'positioning_type', ce.style.position, true, true); - selectByValue(f, 'positioning_visibility', ce.style.visibility, true, true); - selectByValue(f, 'positioning_overflow', ce.style.overflow, true, true); - f.positioning_zindex.value = ce.style.zIndex ? ce.style.zIndex : ""; - - f.positioning_width.value = getNum(ce.style.width); - selectByValue(f, 'positioning_width_measurement', getMeasurement(ce.style.width)); - - f.positioning_height.value = getNum(ce.style.height); - selectByValue(f, 'positioning_height_measurement', getMeasurement(ce.style.height)); - - setupBox(f, ce, 'positioning_placement', '', '', ['top', 'right', 'bottom', 'left']); - - s = ce.style.clip.replace(new RegExp("rect\\('?([^']*)'?\\)", 'gi'), "$1"); - s = s.replace(/,/g, ' '); - - if (!hasEqualValues([getVal(s, 0), getVal(s, 1), getVal(s, 2), getVal(s, 3)])) { - f.positioning_clip_top.value = getNum(getVal(s, 0)); - selectByValue(f, 'positioning_clip_top_measurement', getMeasurement(getVal(s, 0))); - f.positioning_clip_right.value = getNum(getVal(s, 1)); - selectByValue(f, 'positioning_clip_right_measurement', getMeasurement(getVal(s, 1))); - f.positioning_clip_bottom.value = getNum(getVal(s, 2)); - selectByValue(f, 'positioning_clip_bottom_measurement', getMeasurement(getVal(s, 2))); - f.positioning_clip_left.value = getNum(getVal(s, 3)); - selectByValue(f, 'positioning_clip_left_measurement', getMeasurement(getVal(s, 3))); - } else { - f.positioning_clip_top.value = getNum(getVal(s, 0)); - selectByValue(f, 'positioning_clip_top_measurement', getMeasurement(getVal(s, 0))); - f.positioning_clip_right.value = f.positioning_clip_bottom.value = f.positioning_clip_left.value; - } - -// setupBox(f, ce, '', 'border', 'Color'); -} - -function getMeasurement(s) { - return s.replace(/^([0-9.]+)(.*)$/, "$2"); -} - -function getNum(s) { - if (new RegExp('^(?:[0-9.]+)(?:[a-z%]+)$', 'gi').test(s)) - return s.replace(/[^0-9.]/g, ''); - - return s; -} - -function inStr(s, n) { - return new RegExp(n, 'gi').test(s); -} - -function getVal(s, i) { - var a = s.split(' '); - - if (a.length > 1) - return a[i]; - - return ""; -} - -function setValue(f, n, v) { - if (f.elements[n].type == "text") - f.elements[n].value = v; - else - selectByValue(f, n, v, true, true); -} - -function setupBox(f, ce, fp, pr, sf, b) { - if (typeof(b) == "undefined") - b = ['Top', 'Right', 'Bottom', 'Left']; - - if (isSame(ce, pr, sf, b)) { - f.elements[fp + "_same"].checked = true; - - setValue(f, fp + "_top", getNum(ce.style[pr + b[0] + sf])); - f.elements[fp + "_top"].disabled = false; - - f.elements[fp + "_right"].value = ""; - f.elements[fp + "_right"].disabled = true; - f.elements[fp + "_bottom"].value = ""; - f.elements[fp + "_bottom"].disabled = true; - f.elements[fp + "_left"].value = ""; - f.elements[fp + "_left"].disabled = true; - - if (f.elements[fp + "_top_measurement"]) { - selectByValue(f, fp + '_top_measurement', getMeasurement(ce.style[pr + b[0] + sf])); - f.elements[fp + "_left_measurement"].disabled = true; - f.elements[fp + "_bottom_measurement"].disabled = true; - f.elements[fp + "_right_measurement"].disabled = true; - } - } else { - f.elements[fp + "_same"].checked = false; - - setValue(f, fp + "_top", getNum(ce.style[pr + b[0] + sf])); - f.elements[fp + "_top"].disabled = false; - - setValue(f, fp + "_right", getNum(ce.style[pr + b[1] + sf])); - f.elements[fp + "_right"].disabled = false; - - setValue(f, fp + "_bottom", getNum(ce.style[pr + b[2] + sf])); - f.elements[fp + "_bottom"].disabled = false; - - setValue(f, fp + "_left", getNum(ce.style[pr + b[3] + sf])); - f.elements[fp + "_left"].disabled = false; - - if (f.elements[fp + "_top_measurement"]) { - selectByValue(f, fp + '_top_measurement', getMeasurement(ce.style[pr + b[0] + sf])); - selectByValue(f, fp + '_right_measurement', getMeasurement(ce.style[pr + b[1] + sf])); - selectByValue(f, fp + '_bottom_measurement', getMeasurement(ce.style[pr + b[2] + sf])); - selectByValue(f, fp + '_left_measurement', getMeasurement(ce.style[pr + b[3] + sf])); - f.elements[fp + "_left_measurement"].disabled = false; - f.elements[fp + "_bottom_measurement"].disabled = false; - f.elements[fp + "_right_measurement"].disabled = false; - } - } -} - -function isSame(e, pr, sf, b) { - var a = [], i, x; - - if (typeof(b) == "undefined") - b = ['Top', 'Right', 'Bottom', 'Left']; - - if (typeof(sf) == "undefined" || sf == null) - sf = ""; - - a[0] = e.style[pr + b[0] + sf]; - a[1] = e.style[pr + b[1] + sf]; - a[2] = e.style[pr + b[2] + sf]; - a[3] = e.style[pr + b[3] + sf]; - - for (i=0; i 0 ? s.substring(1) : s; - - if (f.text_none.checked) - s = "none"; - - ce.style.textDecoration = s; - - // Build background styles - - ce.style.backgroundColor = f.background_color.value; - ce.style.backgroundImage = f.background_image.value != "" ? "url(" + f.background_image.value + ")" : ""; - ce.style.backgroundRepeat = f.background_repeat.value; - ce.style.backgroundAttachment = f.background_attachment.value; - - if (f.background_hpos.value != "") { - s = ""; - s += f.background_hpos.value + (isNum(f.background_hpos.value) ? f.background_hpos_measurement.value : "") + " "; - s += f.background_vpos.value + (isNum(f.background_vpos.value) ? f.background_vpos_measurement.value : ""); - ce.style.backgroundPosition = s; - } - - // Build block styles - - ce.style.wordSpacing = f.block_wordspacing.value + (isNum(f.block_wordspacing.value) ? f.block_wordspacing_measurement.value : ""); - ce.style.letterSpacing = f.block_letterspacing.value + (isNum(f.block_letterspacing.value) ? f.block_letterspacing_measurement.value : ""); - ce.style.verticalAlign = f.block_vertical_alignment.value; - ce.style.textAlign = f.block_text_align.value; - ce.style.textIndent = f.block_text_indent.value + (isNum(f.block_text_indent.value) ? f.block_text_indent_measurement.value : ""); - ce.style.whiteSpace = f.block_whitespace.value; - ce.style.display = f.block_display.value; - - // Build box styles - - ce.style.width = f.box_width.value + (isNum(f.box_width.value) ? f.box_width_measurement.value : ""); - ce.style.height = f.box_height.value + (isNum(f.box_height.value) ? f.box_height_measurement.value : ""); - ce.style.styleFloat = f.box_float.value; - ce.style.cssFloat = f.box_float.value; - - ce.style.clear = f.box_clear.value; - - if (!f.box_padding_same.checked) { - ce.style.paddingTop = f.box_padding_top.value + (isNum(f.box_padding_top.value) ? f.box_padding_top_measurement.value : ""); - ce.style.paddingRight = f.box_padding_right.value + (isNum(f.box_padding_right.value) ? f.box_padding_right_measurement.value : ""); - ce.style.paddingBottom = f.box_padding_bottom.value + (isNum(f.box_padding_bottom.value) ? f.box_padding_bottom_measurement.value : ""); - ce.style.paddingLeft = f.box_padding_left.value + (isNum(f.box_padding_left.value) ? f.box_padding_left_measurement.value : ""); - } else - ce.style.padding = f.box_padding_top.value + (isNum(f.box_padding_top.value) ? f.box_padding_top_measurement.value : ""); - - if (!f.box_margin_same.checked) { - ce.style.marginTop = f.box_margin_top.value + (isNum(f.box_margin_top.value) ? f.box_margin_top_measurement.value : ""); - ce.style.marginRight = f.box_margin_right.value + (isNum(f.box_margin_right.value) ? f.box_margin_right_measurement.value : ""); - ce.style.marginBottom = f.box_margin_bottom.value + (isNum(f.box_margin_bottom.value) ? f.box_margin_bottom_measurement.value : ""); - ce.style.marginLeft = f.box_margin_left.value + (isNum(f.box_margin_left.value) ? f.box_margin_left_measurement.value : ""); - } else - ce.style.margin = f.box_margin_top.value + (isNum(f.box_margin_top.value) ? f.box_margin_top_measurement.value : ""); - - // Build border styles - - if (!f.border_style_same.checked) { - ce.style.borderTopStyle = f.border_style_top.value; - ce.style.borderRightStyle = f.border_style_right.value; - ce.style.borderBottomStyle = f.border_style_bottom.value; - ce.style.borderLeftStyle = f.border_style_left.value; - } else - ce.style.borderStyle = f.border_style_top.value; - - if (!f.border_width_same.checked) { - ce.style.borderTopWidth = f.border_width_top.value + (isNum(f.border_width_top.value) ? f.border_width_top_measurement.value : ""); - ce.style.borderRightWidth = f.border_width_right.value + (isNum(f.border_width_right.value) ? f.border_width_right_measurement.value : ""); - ce.style.borderBottomWidth = f.border_width_bottom.value + (isNum(f.border_width_bottom.value) ? f.border_width_bottom_measurement.value : ""); - ce.style.borderLeftWidth = f.border_width_left.value + (isNum(f.border_width_left.value) ? f.border_width_left_measurement.value : ""); - } else - ce.style.borderWidth = f.border_width_top.value + (isNum(f.border_width_top.value) ? f.border_width_top_measurement.value : ""); - - if (!f.border_color_same.checked) { - ce.style.borderTopColor = f.border_color_top.value; - ce.style.borderRightColor = f.border_color_right.value; - ce.style.borderBottomColor = f.border_color_bottom.value; - ce.style.borderLeftColor = f.border_color_left.value; - } else - ce.style.borderColor = f.border_color_top.value; - - // Build list styles - - ce.style.listStyleType = f.list_type.value; - ce.style.listStylePosition = f.list_position.value; - ce.style.listStyleImage = f.list_bullet_image.value != "" ? "url(" + f.list_bullet_image.value + ")" : ""; - - // Build positioning styles - - ce.style.position = f.positioning_type.value; - ce.style.visibility = f.positioning_visibility.value; - - if (ce.style.width == "") - ce.style.width = f.positioning_width.value + (isNum(f.positioning_width.value) ? f.positioning_width_measurement.value : ""); - - if (ce.style.height == "") - ce.style.height = f.positioning_height.value + (isNum(f.positioning_height.value) ? f.positioning_height_measurement.value : ""); - - ce.style.zIndex = f.positioning_zindex.value; - ce.style.overflow = f.positioning_overflow.value; - - if (!f.positioning_placement_same.checked) { - ce.style.top = f.positioning_placement_top.value + (isNum(f.positioning_placement_top.value) ? f.positioning_placement_top_measurement.value : ""); - ce.style.right = f.positioning_placement_right.value + (isNum(f.positioning_placement_right.value) ? f.positioning_placement_right_measurement.value : ""); - ce.style.bottom = f.positioning_placement_bottom.value + (isNum(f.positioning_placement_bottom.value) ? f.positioning_placement_bottom_measurement.value : ""); - ce.style.left = f.positioning_placement_left.value + (isNum(f.positioning_placement_left.value) ? f.positioning_placement_left_measurement.value : ""); - } else { - s = f.positioning_placement_top.value + (isNum(f.positioning_placement_top.value) ? f.positioning_placement_top_measurement.value : ""); - ce.style.top = s; - ce.style.right = s; - ce.style.bottom = s; - ce.style.left = s; - } - - if (!f.positioning_clip_same.checked) { - s = "rect("; - s += (isNum(f.positioning_clip_top.value) ? f.positioning_clip_top.value + f.positioning_clip_top_measurement.value : "auto") + " "; - s += (isNum(f.positioning_clip_right.value) ? f.positioning_clip_right.value + f.positioning_clip_right_measurement.value : "auto") + " "; - s += (isNum(f.positioning_clip_bottom.value) ? f.positioning_clip_bottom.value + f.positioning_clip_bottom_measurement.value : "auto") + " "; - s += (isNum(f.positioning_clip_left.value) ? f.positioning_clip_left.value + f.positioning_clip_left_measurement.value : "auto"); - s += ")"; - - if (s != "rect(auto auto auto auto)") - ce.style.clip = s; - } else { - s = "rect("; - t = isNum(f.positioning_clip_top.value) ? f.positioning_clip_top.value + f.positioning_clip_top_measurement.value : "auto"; - s += t + " "; - s += t + " "; - s += t + " "; - s += t + ")"; - - if (s != "rect(auto auto auto auto)") - ce.style.clip = s; - } - - ce.style.cssText = ce.style.cssText; -} - -function isNum(s) { - return new RegExp('[0-9]+', 'g').test(s); -} - -function showDisabledControls() { - var f = document.forms, i, a; - - for (i=0; i 1) { - addSelectValue(f, s, p[0], p[1]); - - if (se) - selectByValue(f, s, p[1]); - } else { - addSelectValue(f, s, p[0], p[0]); - - if (se) - selectByValue(f, s, p[0]); - } - } -} - -function toggleSame(ce, pre) { - var el = document.forms[0].elements, i; - - if (ce.checked) { - el[pre + "_top"].disabled = false; - el[pre + "_right"].disabled = true; - el[pre + "_bottom"].disabled = true; - el[pre + "_left"].disabled = true; - - if (el[pre + "_top_measurement"]) { - el[pre + "_top_measurement"].disabled = false; - el[pre + "_right_measurement"].disabled = true; - el[pre + "_bottom_measurement"].disabled = true; - el[pre + "_left_measurement"].disabled = true; - } - } else { - el[pre + "_top"].disabled = false; - el[pre + "_right"].disabled = false; - el[pre + "_bottom"].disabled = false; - el[pre + "_left"].disabled = false; - - if (el[pre + "_top_measurement"]) { - el[pre + "_top_measurement"].disabled = false; - el[pre + "_right_measurement"].disabled = false; - el[pre + "_bottom_measurement"].disabled = false; - el[pre + "_left_measurement"].disabled = false; - } - } - - showDisabledControls(); -} - -function synch(fr, to) { - var f = document.forms[0]; - - f.elements[to].value = f.elements[fr].value; - - if (f.elements[fr + "_measurement"]) - selectByValue(f, to + "_measurement", f.elements[fr + "_measurement"].value); -} - -function updateTextDecorations(){ - var el = document.forms[0].elements; - - var textDecorations = ["text_underline", "text_overline", "text_linethrough", "text_blink"]; - var noneChecked = el["text_none"].checked; - tinymce.each(textDecorations, function(id) { - el[id].disabled = noneChecked; - if (noneChecked) { - el[id].checked = false; - } - }); -} - -tinyMCEPopup.onInit.add(init); diff --git a/askbot/skins/common/media/js/tinymce/plugins/style/langs/en_dlg.js b/askbot/skins/common/media/js/tinymce/plugins/style/langs/en_dlg.js deleted file mode 100644 index 35881b3a..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/style/langs/en_dlg.js +++ /dev/null @@ -1 +0,0 @@ -tinyMCE.addI18n('en.style_dlg',{"text_lineheight":"Line Height","text_variant":"Variant","text_style":"Style","text_weight":"Weight","text_size":"Size","text_font":"Font","text_props":"Text","positioning_tab":"Positioning","list_tab":"List","border_tab":"Border","box_tab":"Box","block_tab":"Block","background_tab":"Background","text_tab":"Text",apply:"Apply",toggle_insert_span:"Insert span at selection",title:"Edit CSS Style",clip:"Clip",placement:"Placement",overflow:"Overflow",zindex:"Z-index",visibility:"Visibility","positioning_type":"Type",position:"Position","bullet_image":"Bullet Image","list_type":"Type",color:"Color",height:"Height",width:"Width",style:"Style",margin:"Margin",left:"Left",bottom:"Bottom",right:"Right",top:"Top",same:"Same for All",padding:"Padding","box_clear":"Clear","box_float":"Float","box_height":"Height","box_width":"Width","block_display":"Display","block_whitespace":"Whitespace","block_text_indent":"Text Indent","block_text_align":"Text Align","block_vertical_alignment":"Vertical Alignment","block_letterspacing":"Letter Spacing","block_wordspacing":"Word Spacing","background_vpos":"Vertical Position","background_hpos":"Horizontal Position","background_attachment":"Attachment","background_repeat":"Repeat","background_image":"Background Image","background_color":"Background Color","text_none":"None","text_blink":"Blink","text_case":"Case","text_striketrough":"Strikethrough","text_underline":"Underline","text_overline":"Overline","text_decoration":"Decoration","text_color":"Color",text:"Text",background:"Background",block:"Block",box:"Box",border:"Border",list:"List"}); diff --git a/askbot/skins/common/media/js/tinymce/plugins/style/props.htm b/askbot/skins/common/media/js/tinymce/plugins/style/props.htm deleted file mode 100644 index 7dc087a3..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/style/props.htm +++ /dev/null @@ -1,845 +0,0 @@ - - - - {#style_dlg.title} - - - - - - - - - - -
    - - -
    -
    -
    - {#style_dlg.text} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    - - - - - - -
      - - -
    -
    - -
    - - - -
    - - - - - - -
    - -   - - -
    -
    - -
    - - - - - -
     
    -
    {#style_dlg.text_decoration} - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    - -
    -
    - {#style_dlg.background} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - -
     
    -
    - - - - -
     
    -
    - - - - - - -
      - - -
    -
    - - - - - - -
      - - -
    -
    -
    -
    - -
    -
    - {#style_dlg.block} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - -
      - - -
    -
    - - - - - - -
      - - -
    -
    - - - - - - -
      - - - -
    -
    -
    -
    - -
    -
    - {#style_dlg.box} - - - - - - - - - - - - - - -
    - - - - - - -
      - - -
    -
       
    - - - - - - -
      - - -
    -
       
    -
    - -
    -
    - {#style_dlg.padding} - - - - - - - - - - - - - - - - - - - - - - -
     
    - - - - - - -
      - - -
    -
    - - - - - - -
      - - -
    -
    - - - - - - -
      - - -
    -
    - - - - - - -
      - - -
    -
    -
    -
    - -
    -
    - {#style_dlg.margin} - - - - - - - - - - - - - - - - - - - - - - -
     
    - - - - - - -
      - - -
    -
    - - - - - - -
      - - -
    -
    - - - - - - -
      - - -
    -
    - - - - - - -
      - - -
    -
    -
    -
    -
    -
    - -
    -
    - {#style_dlg.border} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      {#style_dlg.style} {#style_dlg.width} {#style_dlg.color}
          
    {#style_dlg.top}   - - - - - - -
      - - -
    -
      - - - - - -
     
    -
    {#style_dlg.right}   - - - - - - -
      - - -
    -
      - - - - - -
     
    -
    {#style_dlg.bottom}   - - - - - - -
      - - -
    -
      - - - - - -
     
    -
    {#style_dlg.left}   - - - - - - -
      - - -
    -
      - - - - - -
     
    -
    -
    -
    - -
    -
    - {#style_dlg.list} - - - - - - - - - - - - - - - -
    -
    -
    - -
    -
    - {#style_dlg.position} - - - - - - - - - - - - - - - - - - - - - -
       
    - - - - - - -
      - - -
    -
       
    - - - - - - -
      - - -
    -
       
    -
    - -
    -
    - {#style_dlg.placement} - - - - - - - - - - - - - - - - - - - - - - -
     
    {#style_dlg.top} - - - - - - -
      - - -
    -
    {#style_dlg.right} - - - - - - -
      - - -
    -
    {#style_dlg.bottom} - - - - - - -
      - - -
    -
    {#style_dlg.left} - - - - - - -
      - - -
    -
    -
    -
    - -
    -
    - {#style_dlg.clip} - - - - - - - - - - - - - - - - - - - - - - -
     
    {#style_dlg.top} - - - - - - -
      - - -
    -
    {#style_dlg.right} - - - - - - -
      - - -
    -
    {#style_dlg.bottom} - - - - - - -
      - - -
    -
    {#style_dlg.left} - - - - - - -
      - - -
    -
    -
    -
    -
    -
    -
    - -
    - - -
    - -
    - - - -
    -
    - -
    -
    -
    - - - diff --git a/askbot/skins/common/media/js/tinymce/plugins/style/readme.txt b/askbot/skins/common/media/js/tinymce/plugins/style/readme.txt deleted file mode 100644 index 5bac3020..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/style/readme.txt +++ /dev/null @@ -1,19 +0,0 @@ -Edit CSS Style plug-in notes -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Unlike WYSIWYG editor functionality that operates only on the selected text, -typically by inserting new HTML elements with the specified styles. -This plug-in operates on the HTML blocks surrounding the selected text. -No new HTML elements are created. - -This plug-in only operates on the surrounding blocks and not the nearest -parent node. This means that if a block encapsulates a node, -e.g

    text

    , then only the styles in the block are -recognized, not those in the span. - -When selecting text that includes multiple blocks at the same level (peers), -this plug-in accumulates the specified styles in all of the surrounding blocks -and populates the dialogue checkboxes accordingly. There is no differentiation -between styles set in all the blocks versus styles set in some of the blocks. - -When the [Update] or [Apply] buttons are pressed, the styles selected in the -checkboxes are applied to all blocks that surround the selected text. diff --git a/askbot/skins/common/media/js/tinymce/plugins/tabfocus/editor_plugin.js b/askbot/skins/common/media/js/tinymce/plugins/tabfocus/editor_plugin.js deleted file mode 100644 index 2c512916..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/tabfocus/editor_plugin.js +++ /dev/null @@ -1 +0,0 @@ -(function(){var c=tinymce.DOM,a=tinymce.dom.Event,d=tinymce.each,b=tinymce.explode;tinymce.create("tinymce.plugins.TabFocusPlugin",{init:function(f,g){function e(i,j){if(j.keyCode===9){return a.cancel(j)}}function h(l,p){var j,m,o,n,k;function q(t){n=c.select(":input:enabled,*[tabindex]:not(iframe)");function s(v){return v.nodeName==="BODY"||(v.type!="hidden"&&!(v.style.display=="none")&&!(v.style.visibility=="hidden")&&s(v.parentNode))}function i(v){return v.attributes.tabIndex.specified||v.nodeName=="INPUT"||v.nodeName=="TEXTAREA"}function u(){return tinymce.isIE6||tinymce.isIE7}function r(v){return((!u()||i(v)))&&v.getAttribute("tabindex")!="-1"&&s(v)}d(n,function(w,v){if(w.id==l.id){j=v;return false}});if(t>0){for(m=j+1;m=0;m--){if(r(n[m])){return n[m]}}}return null}if(p.keyCode===9){k=b(l.getParam("tab_focus",l.getParam("tabfocus_elements",":prev,:next")));if(k.length==1){k[1]=k[0];k[0]=":prev"}if(p.shiftKey){if(k[0]==":prev"){n=q(-1)}else{n=c.get(k[0])}}else{if(k[1]==":next"){n=q(1)}else{n=c.get(k[1])}}if(n){if(n.id&&(l=tinymce.get(n.id||n.name))){l.focus()}else{window.setTimeout(function(){if(!tinymce.isWebKit){window.focus()}n.focus()},10)}return a.cancel(p)}}}f.onKeyUp.add(e);if(tinymce.isGecko){f.onKeyPress.add(h);f.onKeyDown.add(e)}else{f.onKeyDown.add(h)}},getInfo:function(){return{longname:"Tabfocus",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/tabfocus",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("tabfocus",tinymce.plugins.TabFocusPlugin)})(); \ No newline at end of file diff --git a/askbot/skins/common/media/js/tinymce/plugins/tabfocus/editor_plugin_src.js b/askbot/skins/common/media/js/tinymce/plugins/tabfocus/editor_plugin_src.js deleted file mode 100644 index 94f45320..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/tabfocus/editor_plugin_src.js +++ /dev/null @@ -1,122 +0,0 @@ -/** - * editor_plugin_src.js - * - * Copyright 2009, Moxiecode Systems AB - * Released under LGPL License. - * - * License: http://tinymce.moxiecode.com/license - * Contributing: http://tinymce.moxiecode.com/contributing - */ - -(function() { - var DOM = tinymce.DOM, Event = tinymce.dom.Event, each = tinymce.each, explode = tinymce.explode; - - tinymce.create('tinymce.plugins.TabFocusPlugin', { - init : function(ed, url) { - function tabCancel(ed, e) { - if (e.keyCode === 9) - return Event.cancel(e); - } - - function tabHandler(ed, e) { - var x, i, f, el, v; - - function find(d) { - el = DOM.select(':input:enabled,*[tabindex]:not(iframe)'); - - function canSelectRecursive(e) { - return e.nodeName==="BODY" || (e.type != 'hidden' && - !(e.style.display == "none") && - !(e.style.visibility == "hidden") && canSelectRecursive(e.parentNode)); - } - function canSelectInOldIe(el) { - return el.attributes["tabIndex"].specified || el.nodeName == "INPUT" || el.nodeName == "TEXTAREA"; - } - function isOldIe() { - return tinymce.isIE6 || tinymce.isIE7; - } - function canSelect(el) { - return ((!isOldIe() || canSelectInOldIe(el))) && el.getAttribute("tabindex") != '-1' && canSelectRecursive(el); - } - - each(el, function(e, i) { - if (e.id == ed.id) { - x = i; - return false; - } - }); - if (d > 0) { - for (i = x + 1; i < el.length; i++) { - if (canSelect(el[i])) - return el[i]; - } - } else { - for (i = x - 1; i >= 0; i--) { - if (canSelect(el[i])) - return el[i]; - } - } - - return null; - } - - if (e.keyCode === 9) { - v = explode(ed.getParam('tab_focus', ed.getParam('tabfocus_elements', ':prev,:next'))); - - if (v.length == 1) { - v[1] = v[0]; - v[0] = ':prev'; - } - - // Find element to focus - if (e.shiftKey) { - if (v[0] == ':prev') - el = find(-1); - else - el = DOM.get(v[0]); - } else { - if (v[1] == ':next') - el = find(1); - else - el = DOM.get(v[1]); - } - - if (el) { - if (el.id && (ed = tinymce.get(el.id || el.name))) - ed.focus(); - else - window.setTimeout(function() { - if (!tinymce.isWebKit) - window.focus(); - el.focus(); - }, 10); - - return Event.cancel(e); - } - } - } - - ed.onKeyUp.add(tabCancel); - - if (tinymce.isGecko) { - ed.onKeyPress.add(tabHandler); - ed.onKeyDown.add(tabCancel); - } else - ed.onKeyDown.add(tabHandler); - - }, - - getInfo : function() { - return { - longname : 'Tabfocus', - author : 'Moxiecode Systems AB', - authorurl : 'http://tinymce.moxiecode.com', - infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/tabfocus', - version : tinymce.majorVersion + "." + tinymce.minorVersion - }; - } - }); - - // Register plugin - tinymce.PluginManager.add('tabfocus', tinymce.plugins.TabFocusPlugin); -})(); diff --git a/askbot/skins/common/media/js/tinymce/plugins/table/cell.htm b/askbot/skins/common/media/js/tinymce/plugins/table/cell.htm deleted file mode 100644 index a72a8d69..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/table/cell.htm +++ /dev/null @@ -1,180 +0,0 @@ - - - - {#table_dlg.cell_title} - - - - - - - - - -
    - - -
    -
    -
    - {#table_dlg.general_props} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - -
    - - - -
    - -
    -
    -
    - -
    -
    - {#table_dlg.advanced_props} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    - -
    - - - - - -
     
    -
    - - - - - -
     
    -
    - - - - - -
     
    -
    -
    -
    -
    - -
    -
    - -
    - - - -
    -
    - - diff --git a/askbot/skins/common/media/js/tinymce/plugins/table/css/cell.css b/askbot/skins/common/media/js/tinymce/plugins/table/css/cell.css deleted file mode 100644 index a067ecdf..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/table/css/cell.css +++ /dev/null @@ -1,17 +0,0 @@ -/* CSS file for cell dialog in the table plugin */ - -.panel_wrapper div.current { - height: 200px; -} - -.advfield { - width: 200px; -} - -#action { - margin-bottom: 3px; -} - -#class { - width: 150px; -} \ No newline at end of file diff --git a/askbot/skins/common/media/js/tinymce/plugins/table/css/row.css b/askbot/skins/common/media/js/tinymce/plugins/table/css/row.css deleted file mode 100644 index 1f7755da..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/table/css/row.css +++ /dev/null @@ -1,25 +0,0 @@ -/* CSS file for row dialog in the table plugin */ - -.panel_wrapper div.current { - height: 200px; -} - -.advfield { - width: 200px; -} - -#action { - margin-bottom: 3px; -} - -#rowtype,#align,#valign,#class,#height { - width: 150px; -} - -#height { - width: 50px; -} - -.col2 { - padding-left: 20px; -} diff --git a/askbot/skins/common/media/js/tinymce/plugins/table/css/table.css b/askbot/skins/common/media/js/tinymce/plugins/table/css/table.css deleted file mode 100644 index d11c3f69..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/table/css/table.css +++ /dev/null @@ -1,13 +0,0 @@ -/* CSS file for table dialog in the table plugin */ - -.panel_wrapper div.current { - height: 245px; -} - -.advfield { - width: 200px; -} - -#class { - width: 150px; -} diff --git a/askbot/skins/common/media/js/tinymce/plugins/table/editor_plugin.js b/askbot/skins/common/media/js/tinymce/plugins/table/editor_plugin.js deleted file mode 100644 index 23c1a83f..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/table/editor_plugin.js +++ /dev/null @@ -1 +0,0 @@ -(function(d){var e=d.each;function c(g,h){var j=h.ownerDocument,f=j.createRange(),k;f.setStartBefore(h);f.setEnd(g.endContainer,g.endOffset);k=j.createElement("body");k.appendChild(f.cloneContents());return k.innerHTML.replace(/<(br|img|object|embed|input|textarea)[^>]*>/gi,"-").replace(/<[^>]+>/g,"").length==0}function a(g,f){return parseInt(g.getAttribute(f)||1)}function b(H,G,K){var g,L,D,o;t();o=G.getParent(K.getStart(),"th,td");if(o){L=F(o);D=I();o=z(L.x,L.y)}function A(N,M){N=N.cloneNode(M);N.removeAttribute("id");return N}function t(){var M=0;g=[];e(["thead","tbody","tfoot"],function(N){var O=G.select("> "+N+" tr",H);e(O,function(P,Q){Q+=M;e(G.select("> td, > th",P),function(W,R){var S,T,U,V;if(g[Q]){while(g[Q][R]){R++}}U=a(W,"rowspan");V=a(W,"colspan");for(T=Q;T'}return false}},"childNodes");M=A(M,false);s(M,"rowSpan",1);s(M,"colSpan",1);if(N){M.appendChild(N)}else{if(!d.isIE){M.innerHTML='
    '}}return M}function q(){var M=G.createRng();e(G.select("tr",H),function(N){if(N.cells.length==0){G.remove(N)}});if(G.select("tr",H).length==0){M.setStartAfter(H);M.setEndAfter(H);K.setRng(M);G.remove(H);return}e(G.select("thead,tbody,tfoot",H),function(N){if(N.rows.length==0){G.remove(N)}});t();row=g[Math.min(g.length-1,L.y)];if(row){K.select(row[Math.min(row.length-1,L.x)].elm,true);K.collapse(true)}}function u(S,Q,U,R){var P,N,M,O,T;P=g[Q][S].elm.parentNode;for(M=1;M<=U;M++){P=G.getNext(P,"tr");if(P){for(N=S;N>=0;N--){T=g[Q+M][N].elm;if(T.parentNode==P){for(O=1;O<=R;O++){G.insertAfter(f(T),T)}break}}if(N==-1){for(O=1;O<=R;O++){P.insertBefore(f(P.cells[0]),P.cells[0])}}}}}function C(){e(g,function(M,N){e(M,function(P,O){var S,R,T,Q;if(j(P)){P=P.elm;S=a(P,"colspan");R=a(P,"rowspan");if(S>1||R>1){s(P,"rowSpan",1);s(P,"colSpan",1);for(Q=0;Q1){s(S,"rowSpan",O+1);continue}}else{if(M>0&&g[M-1][R]){V=g[M-1][R].elm;O=a(V,"rowSpan");if(O>1){s(V,"rowSpan",O+1);continue}}}N=f(S);s(N,"colSpan",S.colSpan);U.appendChild(N);P=S}}if(U.hasChildNodes()){if(!Q){G.insertAfter(U,T)}else{T.parentNode.insertBefore(U,T)}}}function h(N){var O,M;e(g,function(P,Q){e(P,function(S,R){if(j(S)){O=R;if(N){return false}}});if(N){return !O}});e(g,function(S,T){var P,Q,R;if(!S[O]){return}P=S[O].elm;if(P!=M){R=a(P,"colspan");Q=a(P,"rowspan");if(R==1){if(!N){G.insertAfter(f(P),P);u(O,T,Q-1,R)}else{P.parentNode.insertBefore(f(P),P);u(O,T,Q-1,R)}}else{s(P,"colSpan",P.colSpan+1)}M=P}})}function n(){var M=[];e(g,function(N,O){e(N,function(Q,P){if(j(Q)&&d.inArray(M,P)===-1){e(g,function(T){var R=T[P].elm,S;S=a(R,"colSpan");if(S>1){s(R,"colSpan",S-1)}else{G.remove(R)}});M.push(P)}})});q()}function m(){var N;function M(Q){var P,R,O;P=G.getNext(Q,"tr");e(Q.cells,function(S){var T=a(S,"rowSpan");if(T>1){s(S,"rowSpan",T-1);R=F(S);u(R.x,R.y,1,1)}});R=F(Q.cells[0]);e(g[R.y],function(S){var T;S=S.elm;if(S!=O){T=a(S,"rowSpan");if(T<=1){G.remove(S)}else{s(S,"rowSpan",T-1)}O=S}})}N=k();e(N.reverse(),function(O){M(O)});q()}function E(){var M=k();G.remove(M);q();return M}function J(){var M=k();e(M,function(O,N){M[N]=A(O,true)});return M}function B(O,N){var P=k(),M=P[N?0:P.length-1],Q=M.cells.length;e(g,function(S){var R;Q=0;e(S,function(U,T){if(U.real){Q+=U.colspan}if(U.elm.parentNode==M){R=1}});if(R){return false}});if(!N){O.reverse()}e(O,function(T){var S=T.cells.length,R;for(i=0;iN){N=R}if(Q>M){M=Q}if(S.real){U=S.colspan-1;T=S.rowspan-1;if(U){if(R+U>N){N=R+U}}if(T){if(Q+T>M){M=Q+T}}}}})});return{x:N,y:M}}function v(S){var P,O,U,T,N,M,Q,R;D=F(S);if(L&&D){P=Math.min(L.x,D.x);O=Math.min(L.y,D.y);U=Math.max(L.x,D.x);T=Math.max(L.y,D.y);N=U;M=T;for(y=O;y<=M;y++){S=g[y][P];if(!S.real){if(P-(S.colspan-1)N){N=x+Q}}if(R){if(y+R>M){M=y+R}}}}}G.removeClass(G.select("td.mceSelected,th.mceSelected"),"mceSelected");for(y=O;y<=M;y++){for(x=P;x<=N;x++){if(g[y][x]){G.addClass(g[y][x].elm,"mceSelected")}}}}}d.extend(this,{deleteTable:r,split:C,merge:p,insertRow:l,insertCol:h,deleteCols:n,deleteRows:m,cutRows:E,copyRows:J,pasteRows:B,getPos:F,setStartCell:w,setEndCell:v})}d.create("tinymce.plugins.TablePlugin",{init:function(g,h){var f,m,j=true;function l(p){var o=g.selection,n=g.dom.getParent(p||o.getNode(),"table");if(n){return new b(n,g.dom,o)}}function k(){g.getBody().style.webkitUserSelect="";if(j){g.dom.removeClass(g.dom.select("td.mceSelected,th.mceSelected"),"mceSelected");j=false}}e([["table","table.desc","mceInsertTable",true],["delete_table","table.del","mceTableDelete"],["delete_col","table.delete_col_desc","mceTableDeleteCol"],["delete_row","table.delete_row_desc","mceTableDeleteRow"],["col_after","table.col_after_desc","mceTableInsertColAfter"],["col_before","table.col_before_desc","mceTableInsertColBefore"],["row_after","table.row_after_desc","mceTableInsertRowAfter"],["row_before","table.row_before_desc","mceTableInsertRowBefore"],["row_props","table.row_desc","mceTableRowProps",true],["cell_props","table.cell_desc","mceTableCellProps",true],["split_cells","table.split_cells_desc","mceTableSplitCells",true],["merge_cells","table.merge_cells_desc","mceTableMergeCells",true]],function(n){g.addButton(n[0],{title:n[1],cmd:n[2],ui:n[3]})});if(!d.isIE){g.onClick.add(function(n,o){o=o.target;if(o.nodeName==="TABLE"){n.selection.select(o);n.nodeChanged()}})}g.onPreProcess.add(function(o,p){var n,q,r,t=o.dom,s;n=t.select("table",p.node);q=n.length;while(q--){r=n[q];t.setAttrib(r,"data-mce-style","");if((s=t.getAttrib(r,"width"))){t.setStyle(r,"width",s);t.setAttrib(r,"width","")}if((s=t.getAttrib(r,"height"))){t.setStyle(r,"height",s);t.setAttrib(r,"height","")}}});g.onNodeChange.add(function(q,o,s){var r;s=q.selection.getStart();r=q.dom.getParent(s,"td,th,caption");o.setActive("table",s.nodeName==="TABLE"||!!r);if(r&&r.nodeName==="CAPTION"){r=0}o.setDisabled("delete_table",!r);o.setDisabled("delete_col",!r);o.setDisabled("delete_table",!r);o.setDisabled("delete_row",!r);o.setDisabled("col_after",!r);o.setDisabled("col_before",!r);o.setDisabled("row_after",!r);o.setDisabled("row_before",!r);o.setDisabled("row_props",!r);o.setDisabled("cell_props",!r);o.setDisabled("split_cells",!r);o.setDisabled("merge_cells",!r)});g.onInit.add(function(r){var p,t,q=r.dom,u;f=r.windowManager;r.onMouseDown.add(function(w,z){if(z.button!=2){k();t=q.getParent(z.target,"td,th");p=q.getParent(t,"table")}});q.bind(r.getDoc(),"mouseover",function(C){var A,z,B=C.target;if(t&&(u||B!=t)&&(B.nodeName=="TD"||B.nodeName=="TH")){z=q.getParent(B,"table");if(z==p){if(!u){u=l(z);u.setStartCell(t);r.getBody().style.webkitUserSelect="none"}u.setEndCell(B);j=true}A=r.selection.getSel();try{if(A.removeAllRanges){A.removeAllRanges()}else{A.empty()}}catch(w){}C.preventDefault()}});r.onMouseUp.add(function(F,G){var z,B=F.selection,H,I=B.getSel(),w,C,A,E;if(t){if(u){F.getBody().style.webkitUserSelect=""}function D(J,L){var K=new d.dom.TreeWalker(J,J);do{if(J.nodeType==3&&d.trim(J.nodeValue).length!=0){if(L){z.setStart(J,0)}else{z.setEnd(J,J.nodeValue.length)}return}if(J.nodeName=="BR"){if(L){z.setStartBefore(J)}else{z.setEndBefore(J)}return}}while(J=(L?K.next():K.prev()))}H=q.select("td.mceSelected,th.mceSelected");if(H.length>0){z=q.createRng();C=H[0];E=H[H.length-1];z.setStartBefore(C);z.setEndAfter(C);D(C,1);w=new d.dom.TreeWalker(C,q.getParent(H[0],"table"));do{if(C.nodeName=="TD"||C.nodeName=="TH"){if(!q.hasClass(C,"mceSelected")){break}A=C}}while(C=w.next());D(A);B.setRng(z)}F.nodeChanged();t=u=p=null}});r.onKeyUp.add(function(w,z){k()});r.onKeyDown.add(function(w,z){n(w)});r.onMouseDown.add(function(w,z){if(z.button!=2){n(w)}});function o(D,z,A,F){var B=3,G=D.dom.getParent(z.startContainer,"TABLE"),C,w,E;if(G){C=G.parentNode}w=z.startContainer.nodeType==B&&z.startOffset==0&&z.endOffset==0&&F&&(A.nodeName=="TR"||A==C);E=(A.nodeName=="TD"||A.nodeName=="TH")&&!F;return w||E}function n(A){if(!d.isWebKit){return}var z=A.selection.getRng();var C=A.selection.getNode();var B=A.dom.getParent(z.startContainer,"TD,TH");if(!o(A,z,C,B)){return}if(!B){B=C}var w=B.lastChild;while(w.lastChild){w=w.lastChild}z.setEnd(w,w.nodeValue.length);A.selection.setRng(z)}r.plugins.table.fixTableCellSelection=n;if(r&&r.plugins.contextmenu){r.plugins.contextmenu.onContextMenu.add(function(A,w,C){var D,B=r.selection,z=B.getNode()||r.getBody();if(r.dom.getParent(C,"td")||r.dom.getParent(C,"th")||r.dom.select("td.mceSelected,th.mceSelected").length){w.removeAll();if(z.nodeName=="A"&&!r.dom.getAttrib(z,"name")){w.add({title:"advanced.link_desc",icon:"link",cmd:r.plugins.advlink?"mceAdvLink":"mceLink",ui:true});w.add({title:"advanced.unlink_desc",icon:"unlink",cmd:"UnLink"});w.addSeparator()}if(z.nodeName=="IMG"&&z.className.indexOf("mceItem")==-1){w.add({title:"advanced.image_desc",icon:"image",cmd:r.plugins.advimage?"mceAdvImage":"mceImage",ui:true});w.addSeparator()}w.add({title:"table.desc",icon:"table",cmd:"mceInsertTable",value:{action:"insert"}});w.add({title:"table.props_desc",icon:"table_props",cmd:"mceInsertTable"});w.add({title:"table.del",icon:"delete_table",cmd:"mceTableDelete"});w.addSeparator();D=w.addMenu({title:"table.cell"});D.add({title:"table.cell_desc",icon:"cell_props",cmd:"mceTableCellProps"});D.add({title:"table.split_cells_desc",icon:"split_cells",cmd:"mceTableSplitCells"});D.add({title:"table.merge_cells_desc",icon:"merge_cells",cmd:"mceTableMergeCells"});D=w.addMenu({title:"table.row"});D.add({title:"table.row_desc",icon:"row_props",cmd:"mceTableRowProps"});D.add({title:"table.row_before_desc",icon:"row_before",cmd:"mceTableInsertRowBefore"});D.add({title:"table.row_after_desc",icon:"row_after",cmd:"mceTableInsertRowAfter"});D.add({title:"table.delete_row_desc",icon:"delete_row",cmd:"mceTableDeleteRow"});D.addSeparator();D.add({title:"table.cut_row_desc",icon:"cut",cmd:"mceTableCutRow"});D.add({title:"table.copy_row_desc",icon:"copy",cmd:"mceTableCopyRow"});D.add({title:"table.paste_row_before_desc",icon:"paste",cmd:"mceTablePasteRowBefore"}).setDisabled(!m);D.add({title:"table.paste_row_after_desc",icon:"paste",cmd:"mceTablePasteRowAfter"}).setDisabled(!m);D=w.addMenu({title:"table.col"});D.add({title:"table.col_before_desc",icon:"col_before",cmd:"mceTableInsertColBefore"});D.add({title:"table.col_after_desc",icon:"col_after",cmd:"mceTableInsertColAfter"});D.add({title:"table.delete_col_desc",icon:"delete_col",cmd:"mceTableDeleteCol"})}else{w.add({title:"table.desc",icon:"table",cmd:"mceInsertTable"})}})}if(d.isWebKit){function v(C,N){var L=d.VK;var Q=N.keyCode;function O(Y,U,S){var T=Y?"previousSibling":"nextSibling";var Z=C.dom.getParent(U,"tr");var X=Z[T];if(X){z(C,U,X,Y);d.dom.Event.cancel(S);return true}else{var aa=C.dom.getParent(Z,"table");var W=Z.parentNode;var R=W.nodeName.toLowerCase();if(R==="tbody"||R===(Y?"tfoot":"thead")){var V=w(Y,aa,W,"tbody");if(V!==null){return K(Y,V,U,S)}}return M(Y,Z,T,aa,S)}}function w(V,T,U,X){var S=C.dom.select(">"+X,T);var R=S.indexOf(U);if(V&&R===0||!V&&R===S.length-1){return B(V,T)}else{if(R===-1){var W=U.tagName.toLowerCase()==="thead"?0:S.length-1;return S[W]}else{return S[R+(V?-1:1)]}}}function B(U,T){var S=U?"thead":"tfoot";var R=C.dom.select(">"+S,T);return R.length!==0?R[0]:null}function K(V,T,S,U){var R=J(T,V);R&&z(C,S,R,V);d.dom.Event.cancel(U);return true}function M(Y,U,R,X,W){var S=X[R];if(S){F(S);return true}else{var V=C.dom.getParent(X,"td,th");if(V){return O(Y,V,W)}else{var T=J(U,!Y);F(T);return d.dom.Event.cancel(W)}}}function J(S,R){var T=S&&S[R?"lastChild":"firstChild"];return T&&T.nodeName==="BR"?C.dom.getParent(T,"td,th"):T}function F(R){C.selection.setCursorLocation(R,0)}function A(){return Q==L.UP||Q==L.DOWN}function D(R){var T=R.selection.getNode();var S=R.dom.getParent(T,"tr");return S!==null}function P(S){var R=0;var T=S;while(T.previousSibling){T=T.previousSibling;R=R+a(T,"colspan")}return R}function E(T,R){var U=0;var S=0;e(T.children,function(V,W){U=U+a(V,"colspan");S=W;if(U>R){return false}});return S}function z(T,W,Y,V){var X=P(T.dom.getParent(W,"td,th"));var S=E(Y,X);var R=Y.childNodes[S];var U=J(R,V);F(U||R)}function H(R){var T=C.selection.getNode();var U=C.dom.getParent(T,"td,th");var S=C.dom.getParent(R,"td,th");return U&&U!==S&&I(U,S)}function I(S,R){return C.dom.getParent(S,"TABLE")===C.dom.getParent(R,"TABLE")}if(A()&&D(C)){var G=C.selection.getNode();setTimeout(function(){if(H(G)){O(!N.shiftKey&&Q===L.UP,G,N)}},0)}}r.onKeyDown.add(v)}function s(){var w;for(w=r.getBody().lastChild;w&&w.nodeType==3&&!w.nodeValue.length;w=w.previousSibling){}if(w&&w.nodeName=="TABLE"){if(r.settings.forced_root_block){r.dom.add(r.getBody(),r.settings.forced_root_block,null,d.isIE?" ":'
    ')}else{r.dom.add(r.getBody(),"br",{"data-mce-bogus":"1"})}}}if(d.isGecko){r.onKeyDown.add(function(z,B){var w,A,C=z.dom;if(B.keyCode==37||B.keyCode==38){w=z.selection.getRng();A=C.getParent(w.startContainer,"table");if(A&&z.getBody().firstChild==A){if(c(w,A)){w=C.createRng();w.setStartBefore(A);w.setEndBefore(A);z.selection.setRng(w);B.preventDefault()}}}})}r.onKeyUp.add(s);r.onSetContent.add(s);r.onVisualAid.add(s);r.onPreProcess.add(function(w,A){var z=A.node.lastChild;if(z&&(z.nodeName=="BR"||(z.childNodes.length==1&&(z.firstChild.nodeName=="BR"||z.firstChild.nodeValue=="\u00a0")))&&z.previousSibling&&z.previousSibling.nodeName=="TABLE"){w.dom.remove(z)}});if(d.isGecko){r.onKeyDown.add(function(z,B){if(B.keyCode===d.VK.ENTER&&B.shiftKey){var A=z.selection.getRng().startContainer;var C=q.getParent(A,"td,th");if(C){var w=z.getDoc().createTextNode("\uFEFF");q.insertAfter(w,A)}}})}s();r.startContent=r.getContent({format:"raw"})});e({mceTableSplitCells:function(n){n.split()},mceTableMergeCells:function(o){var p,q,n;n=g.dom.getParent(g.selection.getNode(),"th,td");if(n){p=n.rowSpan;q=n.colSpan}if(!g.dom.select("td.mceSelected,th.mceSelected").length){f.open({url:h+"/merge_cells.htm",width:240+parseInt(g.getLang("table.merge_cells_delta_width",0)),height:110+parseInt(g.getLang("table.merge_cells_delta_height",0)),inline:1},{rows:p,cols:q,onaction:function(r){o.merge(n,r.cols,r.rows)},plugin_url:h})}else{o.merge()}},mceTableInsertRowBefore:function(n){n.insertRow(true)},mceTableInsertRowAfter:function(n){n.insertRow()},mceTableInsertColBefore:function(n){n.insertCol(true)},mceTableInsertColAfter:function(n){n.insertCol()},mceTableDeleteCol:function(n){n.deleteCols()},mceTableDeleteRow:function(n){n.deleteRows()},mceTableCutRow:function(n){m=n.cutRows()},mceTableCopyRow:function(n){m=n.copyRows()},mceTablePasteRowBefore:function(n){n.pasteRows(m,true)},mceTablePasteRowAfter:function(n){n.pasteRows(m)},mceTableDelete:function(n){n.deleteTable()}},function(o,n){g.addCommand(n,function(){var p=l();if(p){o(p);g.execCommand("mceRepaint");k()}})});e({mceInsertTable:function(n){f.open({url:h+"/table.htm",width:400+parseInt(g.getLang("table.table_delta_width",0)),height:320+parseInt(g.getLang("table.table_delta_height",0)),inline:1},{plugin_url:h,action:n?n.action:0})},mceTableRowProps:function(){f.open({url:h+"/row.htm",width:400+parseInt(g.getLang("table.rowprops_delta_width",0)),height:295+parseInt(g.getLang("table.rowprops_delta_height",0)),inline:1},{plugin_url:h})},mceTableCellProps:function(){f.open({url:h+"/cell.htm",width:400+parseInt(g.getLang("table.cellprops_delta_width",0)),height:295+parseInt(g.getLang("table.cellprops_delta_height",0)),inline:1},{plugin_url:h})}},function(o,n){g.addCommand(n,function(p,q){o(q)})})}});d.PluginManager.add("table",d.plugins.TablePlugin)})(tinymce); \ No newline at end of file diff --git a/askbot/skins/common/media/js/tinymce/plugins/table/editor_plugin_src.js b/askbot/skins/common/media/js/tinymce/plugins/table/editor_plugin_src.js deleted file mode 100644 index 54bab56c..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/table/editor_plugin_src.js +++ /dev/null @@ -1,1449 +0,0 @@ -/** - * editor_plugin_src.js - * - * Copyright 2009, Moxiecode Systems AB - * Released under LGPL License. - * - * License: http://tinymce.moxiecode.com/license - * Contributing: http://tinymce.moxiecode.com/contributing - */ - -(function(tinymce) { - var each = tinymce.each; - - // Checks if the selection/caret is at the start of the specified block element - function isAtStart(rng, par) { - var doc = par.ownerDocument, rng2 = doc.createRange(), elm; - - rng2.setStartBefore(par); - rng2.setEnd(rng.endContainer, rng.endOffset); - - elm = doc.createElement('body'); - elm.appendChild(rng2.cloneContents()); - - // Check for text characters of other elements that should be treated as content - return elm.innerHTML.replace(/<(br|img|object|embed|input|textarea)[^>]*>/gi, '-').replace(/<[^>]+>/g, '').length == 0; - }; - - function getSpanVal(td, name) { - return parseInt(td.getAttribute(name) || 1); - } - - /** - * Table Grid class. - */ - function TableGrid(table, dom, selection) { - var grid, startPos, endPos, selectedCell; - - buildGrid(); - selectedCell = dom.getParent(selection.getStart(), 'th,td'); - if (selectedCell) { - startPos = getPos(selectedCell); - endPos = findEndPos(); - selectedCell = getCell(startPos.x, startPos.y); - } - - function cloneNode(node, children) { - node = node.cloneNode(children); - node.removeAttribute('id'); - - return node; - } - - function buildGrid() { - var startY = 0; - - grid = []; - - each(['thead', 'tbody', 'tfoot'], function(part) { - var rows = dom.select('> ' + part + ' tr', table); - - each(rows, function(tr, y) { - y += startY; - - each(dom.select('> td, > th', tr), function(td, x) { - var x2, y2, rowspan, colspan; - - // Skip over existing cells produced by rowspan - if (grid[y]) { - while (grid[y][x]) - x++; - } - - // Get col/rowspan from cell - rowspan = getSpanVal(td, 'rowspan'); - colspan = getSpanVal(td, 'colspan'); - - // Fill out rowspan/colspan right and down - for (y2 = y; y2 < y + rowspan; y2++) { - if (!grid[y2]) - grid[y2] = []; - - for (x2 = x; x2 < x + colspan; x2++) { - grid[y2][x2] = { - part : part, - real : y2 == y && x2 == x, - elm : td, - rowspan : rowspan, - colspan : colspan - }; - } - } - }); - }); - - startY += rows.length; - }); - }; - - function getCell(x, y) { - var row; - - row = grid[y]; - if (row) - return row[x]; - }; - - function setSpanVal(td, name, val) { - if (td) { - val = parseInt(val); - - if (val === 1) - td.removeAttribute(name, 1); - else - td.setAttribute(name, val, 1); - } - } - - function isCellSelected(cell) { - return cell && (dom.hasClass(cell.elm, 'mceSelected') || cell == selectedCell); - }; - - function getSelectedRows() { - var rows = []; - - each(table.rows, function(row) { - each(row.cells, function(cell) { - if (dom.hasClass(cell, 'mceSelected') || cell == selectedCell.elm) { - rows.push(row); - return false; - } - }); - }); - - return rows; - }; - - function deleteTable() { - var rng = dom.createRng(); - - rng.setStartAfter(table); - rng.setEndAfter(table); - - selection.setRng(rng); - - dom.remove(table); - }; - - function cloneCell(cell) { - var formatNode; - - // Clone formats - tinymce.walk(cell, function(node) { - var curNode; - - if (node.nodeType == 3) { - each(dom.getParents(node.parentNode, null, cell).reverse(), function(node) { - node = cloneNode(node, false); - - if (!formatNode) - formatNode = curNode = node; - else if (curNode) - curNode.appendChild(node); - - curNode = node; - }); - - // Add something to the inner node - if (curNode) - curNode.innerHTML = tinymce.isIE ? ' ' : '
    '; - - return false; - } - }, 'childNodes'); - - cell = cloneNode(cell, false); - setSpanVal(cell, 'rowSpan', 1); - setSpanVal(cell, 'colSpan', 1); - - if (formatNode) { - cell.appendChild(formatNode); - } else { - if (!tinymce.isIE) - cell.innerHTML = '
    '; - } - - return cell; - }; - - function cleanup() { - var rng = dom.createRng(); - - // Empty rows - each(dom.select('tr', table), function(tr) { - if (tr.cells.length == 0) - dom.remove(tr); - }); - - // Empty table - if (dom.select('tr', table).length == 0) { - rng.setStartAfter(table); - rng.setEndAfter(table); - selection.setRng(rng); - dom.remove(table); - return; - } - - // Empty header/body/footer - each(dom.select('thead,tbody,tfoot', table), function(part) { - if (part.rows.length == 0) - dom.remove(part); - }); - - // Restore selection to start position if it still exists - buildGrid(); - - // Restore the selection to the closest table position - row = grid[Math.min(grid.length - 1, startPos.y)]; - if (row) { - selection.select(row[Math.min(row.length - 1, startPos.x)].elm, true); - selection.collapse(true); - } - }; - - function fillLeftDown(x, y, rows, cols) { - var tr, x2, r, c, cell; - - tr = grid[y][x].elm.parentNode; - for (r = 1; r <= rows; r++) { - tr = dom.getNext(tr, 'tr'); - - if (tr) { - // Loop left to find real cell - for (x2 = x; x2 >= 0; x2--) { - cell = grid[y + r][x2].elm; - - if (cell.parentNode == tr) { - // Append clones after - for (c = 1; c <= cols; c++) - dom.insertAfter(cloneCell(cell), cell); - - break; - } - } - - if (x2 == -1) { - // Insert nodes before first cell - for (c = 1; c <= cols; c++) - tr.insertBefore(cloneCell(tr.cells[0]), tr.cells[0]); - } - } - } - }; - - function split() { - each(grid, function(row, y) { - each(row, function(cell, x) { - var colSpan, rowSpan, newCell, i; - - if (isCellSelected(cell)) { - cell = cell.elm; - colSpan = getSpanVal(cell, 'colspan'); - rowSpan = getSpanVal(cell, 'rowspan'); - - if (colSpan > 1 || rowSpan > 1) { - setSpanVal(cell, 'rowSpan', 1); - setSpanVal(cell, 'colSpan', 1); - - // Insert cells right - for (i = 0; i < colSpan - 1; i++) - dom.insertAfter(cloneCell(cell), cell); - - fillLeftDown(x, y, rowSpan - 1, colSpan); - } - } - }); - }); - }; - - function merge(cell, cols, rows) { - var startX, startY, endX, endY, x, y, startCell, endCell, cell, children, count; - - // Use specified cell and cols/rows - if (cell) { - pos = getPos(cell); - startX = pos.x; - startY = pos.y; - endX = startX + (cols - 1); - endY = startY + (rows - 1); - } else { - startPos = endPos = null; - - // Calculate start/end pos by checking for selected cells in grid works better with context menu - each(grid, function(row, y) { - each(row, function(cell, x) { - if (isCellSelected(cell)) { - if (!startPos) { - startPos = {x: x, y: y}; - } - - endPos = {x: x, y: y}; - } - }); - }); - - // Use selection - startX = startPos.x; - startY = startPos.y; - endX = endPos.x; - endY = endPos.y; - } - - // Find start/end cells - startCell = getCell(startX, startY); - endCell = getCell(endX, endY); - - // Check if the cells exists and if they are of the same part for example tbody = tbody - if (startCell && endCell && startCell.part == endCell.part) { - // Split and rebuild grid - split(); - buildGrid(); - - // Set row/col span to start cell - startCell = getCell(startX, startY).elm; - setSpanVal(startCell, 'colSpan', (endX - startX) + 1); - setSpanVal(startCell, 'rowSpan', (endY - startY) + 1); - - // Remove other cells and add it's contents to the start cell - for (y = startY; y <= endY; y++) { - for (x = startX; x <= endX; x++) { - if (!grid[y] || !grid[y][x]) - continue; - - cell = grid[y][x].elm; - - if (cell != startCell) { - // Move children to startCell - children = tinymce.grep(cell.childNodes); - each(children, function(node) { - startCell.appendChild(node); - }); - - // Remove bogus nodes if there is children in the target cell - if (children.length) { - children = tinymce.grep(startCell.childNodes); - count = 0; - each(children, function(node) { - if (node.nodeName == 'BR' && dom.getAttrib(node, 'data-mce-bogus') && count++ < children.length - 1) - startCell.removeChild(node); - }); - } - - // Remove cell - dom.remove(cell); - } - } - } - - // Remove empty rows etc and restore caret location - cleanup(); - } - }; - - function insertRow(before) { - var posY, cell, lastCell, x, rowElm, newRow, newCell, otherCell, rowSpan; - - // Find first/last row - each(grid, function(row, y) { - each(row, function(cell, x) { - if (isCellSelected(cell)) { - cell = cell.elm; - rowElm = cell.parentNode; - newRow = cloneNode(rowElm, false); - posY = y; - - if (before) - return false; - } - }); - - if (before) - return !posY; - }); - - for (x = 0; x < grid[0].length; x++) { - // Cell not found could be because of an invalid table structure - if (!grid[posY][x]) - continue; - - cell = grid[posY][x].elm; - - if (cell != lastCell) { - if (!before) { - rowSpan = getSpanVal(cell, 'rowspan'); - if (rowSpan > 1) { - setSpanVal(cell, 'rowSpan', rowSpan + 1); - continue; - } - } else { - // Check if cell above can be expanded - if (posY > 0 && grid[posY - 1][x]) { - otherCell = grid[posY - 1][x].elm; - rowSpan = getSpanVal(otherCell, 'rowSpan'); - if (rowSpan > 1) { - setSpanVal(otherCell, 'rowSpan', rowSpan + 1); - continue; - } - } - } - - // Insert new cell into new row - newCell = cloneCell(cell); - setSpanVal(newCell, 'colSpan', cell.colSpan); - - newRow.appendChild(newCell); - - lastCell = cell; - } - } - - if (newRow.hasChildNodes()) { - if (!before) - dom.insertAfter(newRow, rowElm); - else - rowElm.parentNode.insertBefore(newRow, rowElm); - } - }; - - function insertCol(before) { - var posX, lastCell; - - // Find first/last column - each(grid, function(row, y) { - each(row, function(cell, x) { - if (isCellSelected(cell)) { - posX = x; - - if (before) - return false; - } - }); - - if (before) - return !posX; - }); - - each(grid, function(row, y) { - var cell, rowSpan, colSpan; - - if (!row[posX]) - return; - - cell = row[posX].elm; - if (cell != lastCell) { - colSpan = getSpanVal(cell, 'colspan'); - rowSpan = getSpanVal(cell, 'rowspan'); - - if (colSpan == 1) { - if (!before) { - dom.insertAfter(cloneCell(cell), cell); - fillLeftDown(posX, y, rowSpan - 1, colSpan); - } else { - cell.parentNode.insertBefore(cloneCell(cell), cell); - fillLeftDown(posX, y, rowSpan - 1, colSpan); - } - } else - setSpanVal(cell, 'colSpan', cell.colSpan + 1); - - lastCell = cell; - } - }); - }; - - function deleteCols() { - var cols = []; - - // Get selected column indexes - each(grid, function(row, y) { - each(row, function(cell, x) { - if (isCellSelected(cell) && tinymce.inArray(cols, x) === -1) { - each(grid, function(row) { - var cell = row[x].elm, colSpan; - - colSpan = getSpanVal(cell, 'colSpan'); - - if (colSpan > 1) - setSpanVal(cell, 'colSpan', colSpan - 1); - else - dom.remove(cell); - }); - - cols.push(x); - } - }); - }); - - cleanup(); - }; - - function deleteRows() { - var rows; - - function deleteRow(tr) { - var nextTr, pos, lastCell; - - nextTr = dom.getNext(tr, 'tr'); - - // Move down row spanned cells - each(tr.cells, function(cell) { - var rowSpan = getSpanVal(cell, 'rowSpan'); - - if (rowSpan > 1) { - setSpanVal(cell, 'rowSpan', rowSpan - 1); - pos = getPos(cell); - fillLeftDown(pos.x, pos.y, 1, 1); - } - }); - - // Delete cells - pos = getPos(tr.cells[0]); - each(grid[pos.y], function(cell) { - var rowSpan; - - cell = cell.elm; - - if (cell != lastCell) { - rowSpan = getSpanVal(cell, 'rowSpan'); - - if (rowSpan <= 1) - dom.remove(cell); - else - setSpanVal(cell, 'rowSpan', rowSpan - 1); - - lastCell = cell; - } - }); - }; - - // Get selected rows and move selection out of scope - rows = getSelectedRows(); - - // Delete all selected rows - each(rows.reverse(), function(tr) { - deleteRow(tr); - }); - - cleanup(); - }; - - function cutRows() { - var rows = getSelectedRows(); - - dom.remove(rows); - cleanup(); - - return rows; - }; - - function copyRows() { - var rows = getSelectedRows(); - - each(rows, function(row, i) { - rows[i] = cloneNode(row, true); - }); - - return rows; - }; - - function pasteRows(rows, before) { - var selectedRows = getSelectedRows(), - targetRow = selectedRows[before ? 0 : selectedRows.length - 1], - targetCellCount = targetRow.cells.length; - - // Calc target cell count - each(grid, function(row) { - var match; - - targetCellCount = 0; - each(row, function(cell, x) { - if (cell.real) - targetCellCount += cell.colspan; - - if (cell.elm.parentNode == targetRow) - match = 1; - }); - - if (match) - return false; - }); - - if (!before) - rows.reverse(); - - each(rows, function(row) { - var cellCount = row.cells.length, cell; - - // Remove col/rowspans - for (i = 0; i < cellCount; i++) { - cell = row.cells[i]; - setSpanVal(cell, 'colSpan', 1); - setSpanVal(cell, 'rowSpan', 1); - } - - // Needs more cells - for (i = cellCount; i < targetCellCount; i++) - row.appendChild(cloneCell(row.cells[cellCount - 1])); - - // Needs less cells - for (i = targetCellCount; i < cellCount; i++) - dom.remove(row.cells[i]); - - // Add before/after - if (before) - targetRow.parentNode.insertBefore(row, targetRow); - else - dom.insertAfter(row, targetRow); - }); - - // Remove current selection - dom.removeClass(dom.select('td.mceSelected,th.mceSelected'), 'mceSelected'); - }; - - function getPos(target) { - var pos; - - each(grid, function(row, y) { - each(row, function(cell, x) { - if (cell.elm == target) { - pos = {x : x, y : y}; - return false; - } - }); - - return !pos; - }); - - return pos; - }; - - function setStartCell(cell) { - startPos = getPos(cell); - }; - - function findEndPos() { - var pos, maxX, maxY; - - maxX = maxY = 0; - - each(grid, function(row, y) { - each(row, function(cell, x) { - var colSpan, rowSpan; - - if (isCellSelected(cell)) { - cell = grid[y][x]; - - if (x > maxX) - maxX = x; - - if (y > maxY) - maxY = y; - - if (cell.real) { - colSpan = cell.colspan - 1; - rowSpan = cell.rowspan - 1; - - if (colSpan) { - if (x + colSpan > maxX) - maxX = x + colSpan; - } - - if (rowSpan) { - if (y + rowSpan > maxY) - maxY = y + rowSpan; - } - } - } - }); - }); - - return {x : maxX, y : maxY}; - }; - - function setEndCell(cell) { - var startX, startY, endX, endY, maxX, maxY, colSpan, rowSpan; - - endPos = getPos(cell); - - if (startPos && endPos) { - // Get start/end positions - startX = Math.min(startPos.x, endPos.x); - startY = Math.min(startPos.y, endPos.y); - endX = Math.max(startPos.x, endPos.x); - endY = Math.max(startPos.y, endPos.y); - - // Expand end positon to include spans - maxX = endX; - maxY = endY; - - // Expand startX - for (y = startY; y <= maxY; y++) { - cell = grid[y][startX]; - - if (!cell.real) { - if (startX - (cell.colspan - 1) < startX) - startX -= cell.colspan - 1; - } - } - - // Expand startY - for (x = startX; x <= maxX; x++) { - cell = grid[startY][x]; - - if (!cell.real) { - if (startY - (cell.rowspan - 1) < startY) - startY -= cell.rowspan - 1; - } - } - - // Find max X, Y - for (y = startY; y <= endY; y++) { - for (x = startX; x <= endX; x++) { - cell = grid[y][x]; - - if (cell.real) { - colSpan = cell.colspan - 1; - rowSpan = cell.rowspan - 1; - - if (colSpan) { - if (x + colSpan > maxX) - maxX = x + colSpan; - } - - if (rowSpan) { - if (y + rowSpan > maxY) - maxY = y + rowSpan; - } - } - } - } - - // Remove current selection - dom.removeClass(dom.select('td.mceSelected,th.mceSelected'), 'mceSelected'); - - // Add new selection - for (y = startY; y <= maxY; y++) { - for (x = startX; x <= maxX; x++) { - if (grid[y][x]) - dom.addClass(grid[y][x].elm, 'mceSelected'); - } - } - } - }; - - // Expose to public - tinymce.extend(this, { - deleteTable : deleteTable, - split : split, - merge : merge, - insertRow : insertRow, - insertCol : insertCol, - deleteCols : deleteCols, - deleteRows : deleteRows, - cutRows : cutRows, - copyRows : copyRows, - pasteRows : pasteRows, - getPos : getPos, - setStartCell : setStartCell, - setEndCell : setEndCell - }); - }; - - tinymce.create('tinymce.plugins.TablePlugin', { - init : function(ed, url) { - var winMan, clipboardRows, hasCellSelection = true; // Might be selected cells on reload - - function createTableGrid(node) { - var selection = ed.selection, tblElm = ed.dom.getParent(node || selection.getNode(), 'table'); - - if (tblElm) - return new TableGrid(tblElm, ed.dom, selection); - }; - - function cleanup() { - // Restore selection possibilities - ed.getBody().style.webkitUserSelect = ''; - - if (hasCellSelection) { - ed.dom.removeClass(ed.dom.select('td.mceSelected,th.mceSelected'), 'mceSelected'); - hasCellSelection = false; - } - }; - - // Register buttons - each([ - ['table', 'table.desc', 'mceInsertTable', true], - ['delete_table', 'table.del', 'mceTableDelete'], - ['delete_col', 'table.delete_col_desc', 'mceTableDeleteCol'], - ['delete_row', 'table.delete_row_desc', 'mceTableDeleteRow'], - ['col_after', 'table.col_after_desc', 'mceTableInsertColAfter'], - ['col_before', 'table.col_before_desc', 'mceTableInsertColBefore'], - ['row_after', 'table.row_after_desc', 'mceTableInsertRowAfter'], - ['row_before', 'table.row_before_desc', 'mceTableInsertRowBefore'], - ['row_props', 'table.row_desc', 'mceTableRowProps', true], - ['cell_props', 'table.cell_desc', 'mceTableCellProps', true], - ['split_cells', 'table.split_cells_desc', 'mceTableSplitCells', true], - ['merge_cells', 'table.merge_cells_desc', 'mceTableMergeCells', true] - ], function(c) { - ed.addButton(c[0], {title : c[1], cmd : c[2], ui : c[3]}); - }); - - // Select whole table is a table border is clicked - if (!tinymce.isIE) { - ed.onClick.add(function(ed, e) { - e = e.target; - - if (e.nodeName === 'TABLE') { - ed.selection.select(e); - ed.nodeChanged(); - } - }); - } - - ed.onPreProcess.add(function(ed, args) { - var nodes, i, node, dom = ed.dom, value; - - nodes = dom.select('table', args.node); - i = nodes.length; - while (i--) { - node = nodes[i]; - dom.setAttrib(node, 'data-mce-style', ''); - - if ((value = dom.getAttrib(node, 'width'))) { - dom.setStyle(node, 'width', value); - dom.setAttrib(node, 'width', ''); - } - - if ((value = dom.getAttrib(node, 'height'))) { - dom.setStyle(node, 'height', value); - dom.setAttrib(node, 'height', ''); - } - } - }); - - // Handle node change updates - ed.onNodeChange.add(function(ed, cm, n) { - var p; - - n = ed.selection.getStart(); - p = ed.dom.getParent(n, 'td,th,caption'); - cm.setActive('table', n.nodeName === 'TABLE' || !!p); - - // Disable table tools if we are in caption - if (p && p.nodeName === 'CAPTION') - p = 0; - - cm.setDisabled('delete_table', !p); - cm.setDisabled('delete_col', !p); - cm.setDisabled('delete_table', !p); - cm.setDisabled('delete_row', !p); - cm.setDisabled('col_after', !p); - cm.setDisabled('col_before', !p); - cm.setDisabled('row_after', !p); - cm.setDisabled('row_before', !p); - cm.setDisabled('row_props', !p); - cm.setDisabled('cell_props', !p); - cm.setDisabled('split_cells', !p); - cm.setDisabled('merge_cells', !p); - }); - - ed.onInit.add(function(ed) { - var startTable, startCell, dom = ed.dom, tableGrid; - - winMan = ed.windowManager; - - // Add cell selection logic - ed.onMouseDown.add(function(ed, e) { - if (e.button != 2) { - cleanup(); - - startCell = dom.getParent(e.target, 'td,th'); - startTable = dom.getParent(startCell, 'table'); - } - }); - - dom.bind(ed.getDoc(), 'mouseover', function(e) { - var sel, table, target = e.target; - - if (startCell && (tableGrid || target != startCell) && (target.nodeName == 'TD' || target.nodeName == 'TH')) { - table = dom.getParent(target, 'table'); - if (table == startTable) { - if (!tableGrid) { - tableGrid = createTableGrid(table); - tableGrid.setStartCell(startCell); - - ed.getBody().style.webkitUserSelect = 'none'; - } - - tableGrid.setEndCell(target); - hasCellSelection = true; - } - - // Remove current selection - sel = ed.selection.getSel(); - - try { - if (sel.removeAllRanges) - sel.removeAllRanges(); - else - sel.empty(); - } catch (ex) { - // IE9 might throw errors here - } - - e.preventDefault(); - } - }); - - ed.onMouseUp.add(function(ed, e) { - var rng, sel = ed.selection, selectedCells, nativeSel = sel.getSel(), walker, node, lastNode, endNode; - - // Move selection to startCell - if (startCell) { - if (tableGrid) - ed.getBody().style.webkitUserSelect = ''; - - function setPoint(node, start) { - var walker = new tinymce.dom.TreeWalker(node, node); - - do { - // Text node - if (node.nodeType == 3 && tinymce.trim(node.nodeValue).length != 0) { - if (start) - rng.setStart(node, 0); - else - rng.setEnd(node, node.nodeValue.length); - - return; - } - - // BR element - if (node.nodeName == 'BR') { - if (start) - rng.setStartBefore(node); - else - rng.setEndBefore(node); - - return; - } - } while (node = (start ? walker.next() : walker.prev())); - } - - // Try to expand text selection as much as we can only Gecko supports cell selection - selectedCells = dom.select('td.mceSelected,th.mceSelected'); - if (selectedCells.length > 0) { - rng = dom.createRng(); - node = selectedCells[0]; - endNode = selectedCells[selectedCells.length - 1]; - rng.setStartBefore(node); - rng.setEndAfter(node); - - setPoint(node, 1); - walker = new tinymce.dom.TreeWalker(node, dom.getParent(selectedCells[0], 'table')); - - do { - if (node.nodeName == 'TD' || node.nodeName == 'TH') { - if (!dom.hasClass(node, 'mceSelected')) - break; - - lastNode = node; - } - } while (node = walker.next()); - - setPoint(lastNode); - - sel.setRng(rng); - } - - ed.nodeChanged(); - startCell = tableGrid = startTable = null; - } - }); - - ed.onKeyUp.add(function(ed, e) { - cleanup(); - }); - - ed.onKeyDown.add(function (ed, e) { - fixTableCellSelection(ed); - }); - - ed.onMouseDown.add(function (ed, e) { - if (e.button != 2) { - fixTableCellSelection(ed); - } - }); - function tableCellSelected(ed, rng, n, currentCell) { - // The decision of when a table cell is selected is somewhat involved. The fact that this code is - // required is actually a pointer to the root cause of this bug. A cell is selected when the start - // and end offsets are 0, the start container is a text, and the selection node is either a TR (most cases) - // or the parent of the table (in the case of the selection containing the last cell of a table). - var TEXT_NODE = 3, table = ed.dom.getParent(rng.startContainer, 'TABLE'), - tableParent, allOfCellSelected, tableCellSelection; - if (table) - tableParent = table.parentNode; - allOfCellSelected =rng.startContainer.nodeType == TEXT_NODE && - rng.startOffset == 0 && - rng.endOffset == 0 && - currentCell && - (n.nodeName=="TR" || n==tableParent); - tableCellSelection = (n.nodeName=="TD"||n.nodeName=="TH")&& !currentCell; - return allOfCellSelected || tableCellSelection; - // return false; - } - - // this nasty hack is here to work around some WebKit selection bugs. - function fixTableCellSelection(ed) { - if (!tinymce.isWebKit) - return; - - var rng = ed.selection.getRng(); - var n = ed.selection.getNode(); - var currentCell = ed.dom.getParent(rng.startContainer, 'TD,TH'); - - if (!tableCellSelected(ed, rng, n, currentCell)) - return; - if (!currentCell) { - currentCell=n; - } - - // Get the very last node inside the table cell - var end = currentCell.lastChild; - while (end.lastChild) - end = end.lastChild; - - // Select the entire table cell. Nothing outside of the table cell should be selected. - rng.setEnd(end, end.nodeValue.length); - ed.selection.setRng(rng); - } - ed.plugins.table.fixTableCellSelection=fixTableCellSelection; - - // Add context menu - if (ed && ed.plugins.contextmenu) { - ed.plugins.contextmenu.onContextMenu.add(function(th, m, e) { - var sm, se = ed.selection, el = se.getNode() || ed.getBody(); - - if (ed.dom.getParent(e, 'td') || ed.dom.getParent(e, 'th') || ed.dom.select('td.mceSelected,th.mceSelected').length) { - m.removeAll(); - - if (el.nodeName == 'A' && !ed.dom.getAttrib(el, 'name')) { - m.add({title : 'advanced.link_desc', icon : 'link', cmd : ed.plugins.advlink ? 'mceAdvLink' : 'mceLink', ui : true}); - m.add({title : 'advanced.unlink_desc', icon : 'unlink', cmd : 'UnLink'}); - m.addSeparator(); - } - - if (el.nodeName == 'IMG' && el.className.indexOf('mceItem') == -1) { - m.add({title : 'advanced.image_desc', icon : 'image', cmd : ed.plugins.advimage ? 'mceAdvImage' : 'mceImage', ui : true}); - m.addSeparator(); - } - - m.add({title : 'table.desc', icon : 'table', cmd : 'mceInsertTable', value : {action : 'insert'}}); - m.add({title : 'table.props_desc', icon : 'table_props', cmd : 'mceInsertTable'}); - m.add({title : 'table.del', icon : 'delete_table', cmd : 'mceTableDelete'}); - m.addSeparator(); - - // Cell menu - sm = m.addMenu({title : 'table.cell'}); - sm.add({title : 'table.cell_desc', icon : 'cell_props', cmd : 'mceTableCellProps'}); - sm.add({title : 'table.split_cells_desc', icon : 'split_cells', cmd : 'mceTableSplitCells'}); - sm.add({title : 'table.merge_cells_desc', icon : 'merge_cells', cmd : 'mceTableMergeCells'}); - - // Row menu - sm = m.addMenu({title : 'table.row'}); - sm.add({title : 'table.row_desc', icon : 'row_props', cmd : 'mceTableRowProps'}); - sm.add({title : 'table.row_before_desc', icon : 'row_before', cmd : 'mceTableInsertRowBefore'}); - sm.add({title : 'table.row_after_desc', icon : 'row_after', cmd : 'mceTableInsertRowAfter'}); - sm.add({title : 'table.delete_row_desc', icon : 'delete_row', cmd : 'mceTableDeleteRow'}); - sm.addSeparator(); - sm.add({title : 'table.cut_row_desc', icon : 'cut', cmd : 'mceTableCutRow'}); - sm.add({title : 'table.copy_row_desc', icon : 'copy', cmd : 'mceTableCopyRow'}); - sm.add({title : 'table.paste_row_before_desc', icon : 'paste', cmd : 'mceTablePasteRowBefore'}).setDisabled(!clipboardRows); - sm.add({title : 'table.paste_row_after_desc', icon : 'paste', cmd : 'mceTablePasteRowAfter'}).setDisabled(!clipboardRows); - - // Column menu - sm = m.addMenu({title : 'table.col'}); - sm.add({title : 'table.col_before_desc', icon : 'col_before', cmd : 'mceTableInsertColBefore'}); - sm.add({title : 'table.col_after_desc', icon : 'col_after', cmd : 'mceTableInsertColAfter'}); - sm.add({title : 'table.delete_col_desc', icon : 'delete_col', cmd : 'mceTableDeleteCol'}); - } else - m.add({title : 'table.desc', icon : 'table', cmd : 'mceInsertTable'}); - }); - } - - // Fix to allow navigating up and down in a table in WebKit browsers. - if (tinymce.isWebKit) { - function moveSelection(ed, e) { - var VK = tinymce.VK; - var key = e.keyCode; - - function handle(upBool, sourceNode, event) { - var siblingDirection = upBool ? 'previousSibling' : 'nextSibling'; - var currentRow = ed.dom.getParent(sourceNode, 'tr'); - var siblingRow = currentRow[siblingDirection]; - - if (siblingRow) { - moveCursorToRow(ed, sourceNode, siblingRow, upBool); - tinymce.dom.Event.cancel(event); - return true; - } else { - var tableNode = ed.dom.getParent(currentRow, 'table'); - var middleNode = currentRow.parentNode; - var parentNodeName = middleNode.nodeName.toLowerCase(); - if (parentNodeName === 'tbody' || parentNodeName === (upBool ? 'tfoot' : 'thead')) { - var targetParent = getTargetParent(upBool, tableNode, middleNode, 'tbody'); - if (targetParent !== null) { - return moveToRowInTarget(upBool, targetParent, sourceNode, event); - } - } - return escapeTable(upBool, currentRow, siblingDirection, tableNode, event); - } - } - - function getTargetParent(upBool, topNode, secondNode, nodeName) { - var tbodies = ed.dom.select('>' + nodeName, topNode); - var position = tbodies.indexOf(secondNode); - if (upBool && position === 0 || !upBool && position === tbodies.length - 1) { - return getFirstHeadOrFoot(upBool, topNode); - } else if (position === -1) { - var topOrBottom = secondNode.tagName.toLowerCase() === 'thead' ? 0 : tbodies.length - 1; - return tbodies[topOrBottom]; - } else { - return tbodies[position + (upBool ? -1 : 1)]; - } - } - - function getFirstHeadOrFoot(upBool, parent) { - var tagName = upBool ? 'thead' : 'tfoot'; - var headOrFoot = ed.dom.select('>' + tagName, parent); - return headOrFoot.length !== 0 ? headOrFoot[0] : null; - } - - function moveToRowInTarget(upBool, targetParent, sourceNode, event) { - var targetRow = getChildForDirection(targetParent, upBool); - targetRow && moveCursorToRow(ed, sourceNode, targetRow, upBool); - tinymce.dom.Event.cancel(event); - return true; - } - - function escapeTable(upBool, currentRow, siblingDirection, table, event) { - var tableSibling = table[siblingDirection]; - if (tableSibling) { - moveCursorToStartOfElement(tableSibling); - return true; - } else { - var parentCell = ed.dom.getParent(table, 'td,th'); - if (parentCell) { - return handle(upBool, parentCell, event); - } else { - var backUpSibling = getChildForDirection(currentRow, !upBool); - moveCursorToStartOfElement(backUpSibling); - return tinymce.dom.Event.cancel(event); - } - } - } - - function getChildForDirection(parent, up) { - var child = parent && parent[up ? 'lastChild' : 'firstChild']; - // BR is not a valid table child to return in this case we return the table cell - return child && child.nodeName === 'BR' ? ed.dom.getParent(child, 'td,th') : child; - } - - function moveCursorToStartOfElement(n) { - ed.selection.setCursorLocation(n, 0); - } - - function isVerticalMovement() { - return key == VK.UP || key == VK.DOWN; - } - - function isInTable(ed) { - var node = ed.selection.getNode(); - var currentRow = ed.dom.getParent(node, 'tr'); - return currentRow !== null; - } - - function columnIndex(column) { - var colIndex = 0; - var c = column; - while (c.previousSibling) { - c = c.previousSibling; - colIndex = colIndex + getSpanVal(c, "colspan"); - } - return colIndex; - } - - function findColumn(rowElement, columnIndex) { - var c = 0; - var r = 0; - each(rowElement.children, function(cell, i) { - c = c + getSpanVal(cell, "colspan"); - r = i; - if (c > columnIndex) - return false; - }); - return r; - } - - function moveCursorToRow(ed, node, row, upBool) { - var srcColumnIndex = columnIndex(ed.dom.getParent(node, 'td,th')); - var tgtColumnIndex = findColumn(row, srcColumnIndex); - var tgtNode = row.childNodes[tgtColumnIndex]; - var rowCellTarget = getChildForDirection(tgtNode, upBool); - moveCursorToStartOfElement(rowCellTarget || tgtNode); - } - - function shouldFixCaret(preBrowserNode) { - var newNode = ed.selection.getNode(); - var newParent = ed.dom.getParent(newNode, 'td,th'); - var oldParent = ed.dom.getParent(preBrowserNode, 'td,th'); - return newParent && newParent !== oldParent && checkSameParentTable(newParent, oldParent) - } - - function checkSameParentTable(nodeOne, NodeTwo) { - return ed.dom.getParent(nodeOne, 'TABLE') === ed.dom.getParent(NodeTwo, 'TABLE'); - } - - if (isVerticalMovement() && isInTable(ed)) { - var preBrowserNode = ed.selection.getNode(); - setTimeout(function() { - if (shouldFixCaret(preBrowserNode)) { - handle(!e.shiftKey && key === VK.UP, preBrowserNode, e); - } - }, 0); - } - } - - ed.onKeyDown.add(moveSelection); - } - - // Fixes an issue on Gecko where it's impossible to place the caret behind a table - // This fix will force a paragraph element after the table but only when the forced_root_block setting is enabled - function fixTableCaretPos() { - var last; - - // Skip empty text nodes form the end - for (last = ed.getBody().lastChild; last && last.nodeType == 3 && !last.nodeValue.length; last = last.previousSibling) ; - - if (last && last.nodeName == 'TABLE') { - if (ed.settings.forced_root_block) - ed.dom.add(ed.getBody(), ed.settings.forced_root_block, null, tinymce.isIE ? ' ' : '
    '); - else - ed.dom.add(ed.getBody(), 'br', {'data-mce-bogus': '1'}); - } - }; - - // Fixes an bug where it's impossible to place the caret before a table in Gecko - // this fix solves it by detecting when the caret is at the beginning of such a table - // and then manually moves the caret infront of the table - if (tinymce.isGecko) { - ed.onKeyDown.add(function(ed, e) { - var rng, table, dom = ed.dom; - - // On gecko it's not possible to place the caret before a table - if (e.keyCode == 37 || e.keyCode == 38) { - rng = ed.selection.getRng(); - table = dom.getParent(rng.startContainer, 'table'); - - if (table && ed.getBody().firstChild == table) { - if (isAtStart(rng, table)) { - rng = dom.createRng(); - - rng.setStartBefore(table); - rng.setEndBefore(table); - - ed.selection.setRng(rng); - - e.preventDefault(); - } - } - } - }); - } - - ed.onKeyUp.add(fixTableCaretPos); - ed.onSetContent.add(fixTableCaretPos); - ed.onVisualAid.add(fixTableCaretPos); - - ed.onPreProcess.add(function(ed, o) { - var last = o.node.lastChild; - - if (last && (last.nodeName == "BR" || (last.childNodes.length == 1 && (last.firstChild.nodeName == 'BR' || last.firstChild.nodeValue == '\u00a0'))) && last.previousSibling && last.previousSibling.nodeName == "TABLE") { - ed.dom.remove(last); - } - }); - - - /** - * Fixes bug in Gecko where shift-enter in table cell does not place caret on new line - */ - if (tinymce.isGecko) { - ed.onKeyDown.add(function(ed, e) { - if (e.keyCode === tinymce.VK.ENTER && e.shiftKey) { - var node = ed.selection.getRng().startContainer; - var tableCell = dom.getParent(node, 'td,th'); - if (tableCell) { - var zeroSizedNbsp = ed.getDoc().createTextNode("\uFEFF"); - dom.insertAfter(zeroSizedNbsp, node); - } - } - }); - } - - - fixTableCaretPos(); - ed.startContent = ed.getContent({format : 'raw'}); - }); - - // Register action commands - each({ - mceTableSplitCells : function(grid) { - grid.split(); - }, - - mceTableMergeCells : function(grid) { - var rowSpan, colSpan, cell; - - cell = ed.dom.getParent(ed.selection.getNode(), 'th,td'); - if (cell) { - rowSpan = cell.rowSpan; - colSpan = cell.colSpan; - } - - if (!ed.dom.select('td.mceSelected,th.mceSelected').length) { - winMan.open({ - url : url + '/merge_cells.htm', - width : 240 + parseInt(ed.getLang('table.merge_cells_delta_width', 0)), - height : 110 + parseInt(ed.getLang('table.merge_cells_delta_height', 0)), - inline : 1 - }, { - rows : rowSpan, - cols : colSpan, - onaction : function(data) { - grid.merge(cell, data.cols, data.rows); - }, - plugin_url : url - }); - } else - grid.merge(); - }, - - mceTableInsertRowBefore : function(grid) { - grid.insertRow(true); - }, - - mceTableInsertRowAfter : function(grid) { - grid.insertRow(); - }, - - mceTableInsertColBefore : function(grid) { - grid.insertCol(true); - }, - - mceTableInsertColAfter : function(grid) { - grid.insertCol(); - }, - - mceTableDeleteCol : function(grid) { - grid.deleteCols(); - }, - - mceTableDeleteRow : function(grid) { - grid.deleteRows(); - }, - - mceTableCutRow : function(grid) { - clipboardRows = grid.cutRows(); - }, - - mceTableCopyRow : function(grid) { - clipboardRows = grid.copyRows(); - }, - - mceTablePasteRowBefore : function(grid) { - grid.pasteRows(clipboardRows, true); - }, - - mceTablePasteRowAfter : function(grid) { - grid.pasteRows(clipboardRows); - }, - - mceTableDelete : function(grid) { - grid.deleteTable(); - } - }, function(func, name) { - ed.addCommand(name, function() { - var grid = createTableGrid(); - - if (grid) { - func(grid); - ed.execCommand('mceRepaint'); - cleanup(); - } - }); - }); - - // Register dialog commands - each({ - mceInsertTable : function(val) { - winMan.open({ - url : url + '/table.htm', - width : 400 + parseInt(ed.getLang('table.table_delta_width', 0)), - height : 320 + parseInt(ed.getLang('table.table_delta_height', 0)), - inline : 1 - }, { - plugin_url : url, - action : val ? val.action : 0 - }); - }, - - mceTableRowProps : function() { - winMan.open({ - url : url + '/row.htm', - width : 400 + parseInt(ed.getLang('table.rowprops_delta_width', 0)), - height : 295 + parseInt(ed.getLang('table.rowprops_delta_height', 0)), - inline : 1 - }, { - plugin_url : url - }); - }, - - mceTableCellProps : function() { - winMan.open({ - url : url + '/cell.htm', - width : 400 + parseInt(ed.getLang('table.cellprops_delta_width', 0)), - height : 295 + parseInt(ed.getLang('table.cellprops_delta_height', 0)), - inline : 1 - }, { - plugin_url : url - }); - } - }, function(func, name) { - ed.addCommand(name, function(ui, val) { - func(val); - }); - }); - } - }); - - // Register plugin - tinymce.PluginManager.add('table', tinymce.plugins.TablePlugin); -})(tinymce); diff --git a/askbot/skins/common/media/js/tinymce/plugins/table/js/cell.js b/askbot/skins/common/media/js/tinymce/plugins/table/js/cell.js deleted file mode 100644 index 02ecf22c..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/table/js/cell.js +++ /dev/null @@ -1,319 +0,0 @@ -tinyMCEPopup.requireLangPack(); - -var ed; - -function init() { - ed = tinyMCEPopup.editor; - tinyMCEPopup.resizeToInnerSize(); - - document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table'); - document.getElementById('bordercolor_pickcontainer').innerHTML = getColorPickerHTML('bordercolor_pick','bordercolor'); - document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor') - - var inst = ed; - var tdElm = ed.dom.getParent(ed.selection.getStart(), "td,th"); - var formObj = document.forms[0]; - var st = ed.dom.parseStyle(ed.dom.getAttrib(tdElm, "style")); - - // Get table cell data - var celltype = tdElm.nodeName.toLowerCase(); - var align = ed.dom.getAttrib(tdElm, 'align'); - var valign = ed.dom.getAttrib(tdElm, 'valign'); - var width = trimSize(getStyle(tdElm, 'width', 'width')); - var height = trimSize(getStyle(tdElm, 'height', 'height')); - var bordercolor = convertRGBToHex(getStyle(tdElm, 'bordercolor', 'borderLeftColor')); - var bgcolor = convertRGBToHex(getStyle(tdElm, 'bgcolor', 'backgroundColor')); - var className = ed.dom.getAttrib(tdElm, 'class'); - var backgroundimage = getStyle(tdElm, 'background', 'backgroundImage').replace(new RegExp("url\\(['\"]?([^'\"]*)['\"]?\\)", 'gi'), "$1"); - var id = ed.dom.getAttrib(tdElm, 'id'); - var lang = ed.dom.getAttrib(tdElm, 'lang'); - var dir = ed.dom.getAttrib(tdElm, 'dir'); - var scope = ed.dom.getAttrib(tdElm, 'scope'); - - // Setup form - addClassesToList('class', 'table_cell_styles'); - TinyMCE_EditableSelects.init(); - - if (!ed.dom.hasClass(tdElm, 'mceSelected')) { - formObj.bordercolor.value = bordercolor; - formObj.bgcolor.value = bgcolor; - formObj.backgroundimage.value = backgroundimage; - formObj.width.value = width; - formObj.height.value = height; - formObj.id.value = id; - formObj.lang.value = lang; - formObj.style.value = ed.dom.serializeStyle(st); - selectByValue(formObj, 'align', align); - selectByValue(formObj, 'valign', valign); - selectByValue(formObj, 'class', className, true, true); - selectByValue(formObj, 'celltype', celltype); - selectByValue(formObj, 'dir', dir); - selectByValue(formObj, 'scope', scope); - - // Resize some elements - if (isVisible('backgroundimagebrowser')) - document.getElementById('backgroundimage').style.width = '180px'; - - updateColor('bordercolor_pick', 'bordercolor'); - updateColor('bgcolor_pick', 'bgcolor'); - } else - tinyMCEPopup.dom.hide('action'); -} - -function updateAction() { - var el, inst = ed, tdElm, trElm, tableElm, formObj = document.forms[0]; - - if (!AutoValidator.validate(formObj)) { - tinyMCEPopup.alert(AutoValidator.getErrorMessages(formObj).join('. ') + '.'); - return false; - } - - tinyMCEPopup.restoreSelection(); - el = ed.selection.getStart(); - tdElm = ed.dom.getParent(el, "td,th"); - trElm = ed.dom.getParent(el, "tr"); - tableElm = ed.dom.getParent(el, "table"); - - // Cell is selected - if (ed.dom.hasClass(tdElm, 'mceSelected')) { - // Update all selected sells - tinymce.each(ed.dom.select('td.mceSelected,th.mceSelected'), function(td) { - updateCell(td); - }); - - ed.addVisual(); - ed.nodeChanged(); - inst.execCommand('mceEndUndoLevel'); - tinyMCEPopup.close(); - return; - } - - switch (getSelectValue(formObj, 'action')) { - case "cell": - var celltype = getSelectValue(formObj, 'celltype'); - var scope = getSelectValue(formObj, 'scope'); - - function doUpdate(s) { - if (s) { - updateCell(tdElm); - - ed.addVisual(); - ed.nodeChanged(); - inst.execCommand('mceEndUndoLevel'); - tinyMCEPopup.close(); - } - }; - - if (ed.getParam("accessibility_warnings", 1)) { - if (celltype == "th" && scope == "") - tinyMCEPopup.confirm(ed.getLang('table_dlg.missing_scope', '', true), doUpdate); - else - doUpdate(1); - - return; - } - - updateCell(tdElm); - break; - - case "row": - var cell = trElm.firstChild; - - if (cell.nodeName != "TD" && cell.nodeName != "TH") - cell = nextCell(cell); - - do { - cell = updateCell(cell, true); - } while ((cell = nextCell(cell)) != null); - - break; - - case "col": - var curr, col = 0, cell = trElm.firstChild, rows = tableElm.getElementsByTagName("tr"); - - if (cell.nodeName != "TD" && cell.nodeName != "TH") - cell = nextCell(cell); - - do { - if (cell == tdElm) - break; - col += cell.getAttribute("colspan")?cell.getAttribute("colspan"):1; - } while ((cell = nextCell(cell)) != null); - - for (var i=0; i 0) { - tinymce.each(tableElm.rows, function(tr) { - var i; - - for (i = 0; i < tr.cells.length; i++) { - if (dom.hasClass(tr.cells[i], 'mceSelected')) { - updateRow(tr, true); - return; - } - } - }); - - inst.addVisual(); - inst.nodeChanged(); - inst.execCommand('mceEndUndoLevel'); - tinyMCEPopup.close(); - return; - } - - switch (action) { - case "row": - updateRow(trElm); - break; - - case "all": - var rows = tableElm.getElementsByTagName("tr"); - - for (var i=0; i colLimit) { - tinyMCEPopup.alert(inst.getLang('table_dlg.col_limit').replace(/\{\$cols\}/g, colLimit)); - return false; - } else if (rowLimit && rows > rowLimit) { - tinyMCEPopup.alert(inst.getLang('table_dlg.row_limit').replace(/\{\$rows\}/g, rowLimit)); - return false; - } else if (cellLimit && cols * rows > cellLimit) { - tinyMCEPopup.alert(inst.getLang('table_dlg.cell_limit').replace(/\{\$cells\}/g, cellLimit)); - return false; - } - - // Update table - if (action == "update") { - dom.setAttrib(elm, 'cellPadding', cellpadding, true); - dom.setAttrib(elm, 'cellSpacing', cellspacing, true); - - if (!isCssSize(border)) { - dom.setAttrib(elm, 'border', border); - } else { - dom.setAttrib(elm, 'border', ''); - } - - if (border == '') { - dom.setStyle(elm, 'border-width', ''); - dom.setStyle(elm, 'border', ''); - dom.setAttrib(elm, 'border', ''); - } - - dom.setAttrib(elm, 'align', align); - dom.setAttrib(elm, 'frame', frame); - dom.setAttrib(elm, 'rules', rules); - dom.setAttrib(elm, 'class', className); - dom.setAttrib(elm, 'style', style); - dom.setAttrib(elm, 'id', id); - dom.setAttrib(elm, 'summary', summary); - dom.setAttrib(elm, 'dir', dir); - dom.setAttrib(elm, 'lang', lang); - - capEl = inst.dom.select('caption', elm)[0]; - - if (capEl && !caption) - capEl.parentNode.removeChild(capEl); - - if (!capEl && caption) { - capEl = elm.ownerDocument.createElement('caption'); - - if (!tinymce.isIE) - capEl.innerHTML = '
    '; - - elm.insertBefore(capEl, elm.firstChild); - } - - if (width && inst.settings.inline_styles) { - dom.setStyle(elm, 'width', width); - dom.setAttrib(elm, 'width', ''); - } else { - dom.setAttrib(elm, 'width', width, true); - dom.setStyle(elm, 'width', ''); - } - - // Remove these since they are not valid XHTML - dom.setAttrib(elm, 'borderColor', ''); - dom.setAttrib(elm, 'bgColor', ''); - dom.setAttrib(elm, 'background', ''); - - if (height && inst.settings.inline_styles) { - dom.setStyle(elm, 'height', height); - dom.setAttrib(elm, 'height', ''); - } else { - dom.setAttrib(elm, 'height', height, true); - dom.setStyle(elm, 'height', ''); - } - - if (background != '') - elm.style.backgroundImage = "url('" + background + "')"; - else - elm.style.backgroundImage = ''; - -/* if (tinyMCEPopup.getParam("inline_styles")) { - if (width != '') - elm.style.width = getCSSSize(width); - }*/ - - if (bordercolor != "") { - elm.style.borderColor = bordercolor; - elm.style.borderStyle = elm.style.borderStyle == "" ? "solid" : elm.style.borderStyle; - elm.style.borderWidth = cssSize(border); - } else - elm.style.borderColor = ''; - - elm.style.backgroundColor = bgcolor; - elm.style.height = getCSSSize(height); - - inst.addVisual(); - - // Fix for stange MSIE align bug - //elm.outerHTML = elm.outerHTML; - - inst.nodeChanged(); - inst.execCommand('mceEndUndoLevel', false, {}, {skip_undo: true}); - - // Repaint if dimensions changed - if (formObj.width.value != orgTableWidth || formObj.height.value != orgTableHeight) - inst.execCommand('mceRepaint'); - - tinyMCEPopup.close(); - return true; - } - - // Create new table - html += ''); - - tinymce.each('h1,h2,h3,h4,h5,h6,p'.split(','), function(n) { - if (patt) - patt += ','; - - patt += n + ' ._mce_marker'; - }); - - tinymce.each(inst.dom.select(patt), function(n) { - inst.dom.split(inst.dom.getParent(n, 'h1,h2,h3,h4,h5,h6,p'), n); - }); - - dom.setOuterHTML(dom.select('br._mce_marker')[0], html); - } else - inst.execCommand('mceInsertContent', false, html); - - tinymce.each(dom.select('table[data-mce-new]'), function(node) { - var tdorth = dom.select('td,th', node); - - // Fixes a bug in IE where the caret cannot be placed after the table if the table is at the end of the document - if (tinymce.isIE && node.nextSibling == null) { - if (inst.settings.forced_root_block) - dom.insertAfter(dom.create(inst.settings.forced_root_block), node); - else - dom.insertAfter(dom.create('br', {'data-mce-bogus': '1'}), node); - } - - try { - // IE9 might fail to do this selection - inst.selection.setCursorLocation(tdorth[0], 0); - } catch (ex) { - // Ignore - } - - dom.setAttrib(node, 'data-mce-new', ''); - }); - - inst.addVisual(); - inst.execCommand('mceEndUndoLevel', false, {}, {skip_undo: true}); - - tinyMCEPopup.close(); -} - -function makeAttrib(attrib, value) { - var formObj = document.forms[0]; - var valueElm = formObj.elements[attrib]; - - if (typeof(value) == "undefined" || value == null) { - value = ""; - - if (valueElm) - value = valueElm.value; - } - - if (value == "") - return ""; - - // XML encode it - value = value.replace(/&/g, '&'); - value = value.replace(/\"/g, '"'); - value = value.replace(//g, '>'); - - return ' ' + attrib + '="' + value + '"'; -} - -function init() { - tinyMCEPopup.resizeToInnerSize(); - - document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table'); - document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table'); - document.getElementById('bordercolor_pickcontainer').innerHTML = getColorPickerHTML('bordercolor_pick','bordercolor'); - document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor'); - - var cols = 2, rows = 2, border = tinyMCEPopup.getParam('table_default_border', '0'), cellpadding = tinyMCEPopup.getParam('table_default_cellpadding', ''), cellspacing = tinyMCEPopup.getParam('table_default_cellspacing', ''); - var align = "", width = "", height = "", bordercolor = "", bgcolor = "", className = ""; - var id = "", summary = "", style = "", dir = "", lang = "", background = "", bgcolor = "", bordercolor = "", rules = "", frame = ""; - var inst = tinyMCEPopup.editor, dom = inst.dom; - var formObj = document.forms[0]; - var elm = dom.getParent(inst.selection.getNode(), "table"); - - // Hide advanced fields that isn't available in the schema - tinymce.each("summary id rules dir style frame".split(" "), function(name) { - var tr = tinyMCEPopup.dom.getParent(name, "tr") || tinyMCEPopup.dom.getParent("t" + name, "tr"); - - if (tr && !tinyMCEPopup.editor.schema.isValid("table", name)) { - tr.style.display = 'none'; - } - }); - - action = tinyMCEPopup.getWindowArg('action'); - - if (!action) - action = elm ? "update" : "insert"; - - if (elm && action != "insert") { - var rowsAr = elm.rows; - var cols = 0; - for (var i=0; i cols) - cols = rowsAr[i].cells.length; - - cols = cols; - rows = rowsAr.length; - - st = dom.parseStyle(dom.getAttrib(elm, "style")); - border = trimSize(getStyle(elm, 'border', 'borderWidth')); - cellpadding = dom.getAttrib(elm, 'cellpadding', ""); - cellspacing = dom.getAttrib(elm, 'cellspacing', ""); - width = trimSize(getStyle(elm, 'width', 'width')); - height = trimSize(getStyle(elm, 'height', 'height')); - bordercolor = convertRGBToHex(getStyle(elm, 'bordercolor', 'borderLeftColor')); - bgcolor = convertRGBToHex(getStyle(elm, 'bgcolor', 'backgroundColor')); - align = dom.getAttrib(elm, 'align', align); - frame = dom.getAttrib(elm, 'frame'); - rules = dom.getAttrib(elm, 'rules'); - className = tinymce.trim(dom.getAttrib(elm, 'class').replace(/mceItem.+/g, '')); - id = dom.getAttrib(elm, 'id'); - summary = dom.getAttrib(elm, 'summary'); - style = dom.serializeStyle(st); - dir = dom.getAttrib(elm, 'dir'); - lang = dom.getAttrib(elm, 'lang'); - background = getStyle(elm, 'background', 'backgroundImage').replace(new RegExp("url\\(['\"]?([^'\"]*)['\"]?\\)", 'gi'), "$1"); - formObj.caption.checked = elm.getElementsByTagName('caption').length > 0; - - orgTableWidth = width; - orgTableHeight = height; - - action = "update"; - formObj.insert.value = inst.getLang('update'); - } - - addClassesToList('class', "table_styles"); - TinyMCE_EditableSelects.init(); - - // Update form - selectByValue(formObj, 'align', align); - selectByValue(formObj, 'tframe', frame); - selectByValue(formObj, 'rules', rules); - selectByValue(formObj, 'class', className, true, true); - formObj.cols.value = cols; - formObj.rows.value = rows; - formObj.border.value = border; - formObj.cellpadding.value = cellpadding; - formObj.cellspacing.value = cellspacing; - formObj.width.value = width; - formObj.height.value = height; - formObj.bordercolor.value = bordercolor; - formObj.bgcolor.value = bgcolor; - formObj.id.value = id; - formObj.summary.value = summary; - formObj.style.value = style; - formObj.dir.value = dir; - formObj.lang.value = lang; - formObj.backgroundimage.value = background; - - updateColor('bordercolor_pick', 'bordercolor'); - updateColor('bgcolor_pick', 'bgcolor'); - - // Resize some elements - if (isVisible('backgroundimagebrowser')) - document.getElementById('backgroundimage').style.width = '180px'; - - // Disable some fields in update mode - if (action == "update") { - formObj.cols.disabled = true; - formObj.rows.disabled = true; - } -} - -function changedSize() { - var formObj = document.forms[0]; - var st = dom.parseStyle(formObj.style.value); - -/* var width = formObj.width.value; - if (width != "") - st['width'] = tinyMCEPopup.getParam("inline_styles") ? getCSSSize(width) : ""; - else - st['width'] = "";*/ - - var height = formObj.height.value; - if (height != "") - st['height'] = getCSSSize(height); - else - st['height'] = ""; - - formObj.style.value = dom.serializeStyle(st); -} - -function isCssSize(value) { - return /^[0-9.]+(%|in|cm|mm|em|ex|pt|pc|px)$/.test(value); -} - -function cssSize(value, def) { - value = tinymce.trim(value || def); - - if (!isCssSize(value)) { - return parseInt(value, 10) + 'px'; - } - - return value; -} - -function changedBackgroundImage() { - var formObj = document.forms[0]; - var st = dom.parseStyle(formObj.style.value); - - st['background-image'] = "url('" + formObj.backgroundimage.value + "')"; - - formObj.style.value = dom.serializeStyle(st); -} - -function changedBorder() { - var formObj = document.forms[0]; - var st = dom.parseStyle(formObj.style.value); - - // Update border width if the element has a color - if (formObj.border.value != "" && (isCssSize(formObj.border.value) || formObj.bordercolor.value != "")) - st['border-width'] = cssSize(formObj.border.value); - else { - if (!formObj.border.value) { - st['border'] = ''; - st['border-width'] = ''; - } - } - - formObj.style.value = dom.serializeStyle(st); -} - -function changedColor() { - var formObj = document.forms[0]; - var st = dom.parseStyle(formObj.style.value); - - st['background-color'] = formObj.bgcolor.value; - - if (formObj.bordercolor.value != "") { - st['border-color'] = formObj.bordercolor.value; - - // Add border-width if it's missing - if (!st['border-width']) - st['border-width'] = cssSize(formObj.border.value, 1); - } - - formObj.style.value = dom.serializeStyle(st); -} - -function changedStyle() { - var formObj = document.forms[0]; - var st = dom.parseStyle(formObj.style.value); - - if (st['background-image']) - formObj.backgroundimage.value = st['background-image'].replace(new RegExp("url\\(['\"]?([^'\"]*)['\"]?\\)", 'gi'), "$1"); - else - formObj.backgroundimage.value = ''; - - if (st['width']) - formObj.width.value = trimSize(st['width']); - - if (st['height']) - formObj.height.value = trimSize(st['height']); - - if (st['background-color']) { - formObj.bgcolor.value = st['background-color']; - updateColor('bgcolor_pick','bgcolor'); - } - - if (st['border-color']) { - formObj.bordercolor.value = st['border-color']; - updateColor('bordercolor_pick','bordercolor'); - } -} - -tinyMCEPopup.onInit.add(init); diff --git a/askbot/skins/common/media/js/tinymce/plugins/table/langs/en_dlg.js b/askbot/skins/common/media/js/tinymce/plugins/table/langs/en_dlg.js deleted file mode 100644 index 463e09ee..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/table/langs/en_dlg.js +++ /dev/null @@ -1 +0,0 @@ -tinyMCE.addI18n('en.table_dlg',{"rules_border":"border","rules_box":"box","rules_vsides":"vsides","rules_rhs":"rhs","rules_lhs":"lhs","rules_hsides":"hsides","rules_below":"below","rules_above":"above","rules_void":"void",rules:"Rules","frame_all":"all","frame_cols":"cols","frame_rows":"rows","frame_groups":"groups","frame_none":"none",frame:"Frame",caption:"Table Caption","missing_scope":"Are you sure you want to continue without specifying a scope for this table header cell. Without it, it may be difficult for some users with disabilities to understand the content or data displayed of the table.","cell_limit":"You\'ve exceeded the maximum number of cells of {$cells}.","row_limit":"You\'ve exceeded the maximum number of rows of {$rows}.","col_limit":"You\'ve exceeded the maximum number of columns of {$cols}.",colgroup:"Col Group",rowgroup:"Row Group",scope:"Scope",tfoot:"Footer",tbody:"Body",thead:"Header","row_all":"Update All Rows in Table","row_even":"Update Even Rows in Table","row_odd":"Update Odd Rows in Table","row_row":"Update Current Row","cell_all":"Update All Cells in Table","cell_row":"Update All Cells in Row","cell_cell":"Update Current Cell",th:"Header",td:"Data",summary:"Summary",bgimage:"Background Image",rtl:"Right to Left",ltr:"Left to Right",mime:"Target MIME Type",langcode:"Language Code",langdir:"Language Direction",style:"Style",id:"ID","merge_cells_title":"Merge Table Cells",bgcolor:"Background Color",bordercolor:"Border Color","align_bottom":"Bottom","align_top":"Top",valign:"Vertical Alignment","cell_type":"Cell Type","cell_title":"Table Cell Properties","row_title":"Table Row Properties","align_middle":"Center","align_right":"Right","align_left":"Left","align_default":"Default",align:"Alignment",border:"Border",cellpadding:"Cell Padding",cellspacing:"Cell Spacing",rows:"Rows",cols:"Columns",height:"Height",width:"Width",title:"Insert/Edit Table",rowtype:"Row Type","advanced_props":"Advanced Properties","general_props":"General Properties","advanced_tab":"Advanced","general_tab":"General","cell_col":"Update all cells in column"}); \ No newline at end of file diff --git a/askbot/skins/common/media/js/tinymce/plugins/table/merge_cells.htm b/askbot/skins/common/media/js/tinymce/plugins/table/merge_cells.htm deleted file mode 100644 index d231090e..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/table/merge_cells.htm +++ /dev/null @@ -1,32 +0,0 @@ - - - - {#table_dlg.merge_cells_title} - - - - - - -
    -
    - {#table_dlg.merge_cells_title} - - - - - - - - - -
    :
    :
    -
    - -
    - - -
    -
    - - diff --git a/askbot/skins/common/media/js/tinymce/plugins/table/row.htm b/askbot/skins/common/media/js/tinymce/plugins/table/row.htm deleted file mode 100644 index 1885401f..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/table/row.htm +++ /dev/null @@ -1,158 +0,0 @@ - - - - {#table_dlg.row_title} - - - - - - - - - -
    - - -
    -
    -
    - {#table_dlg.general_props} - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    - -
    - -
    - -
    -
    -
    - -
    -
    - {#table_dlg.advanced_props} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    - -
    - - - - - -
     
    -
    - - - - - - -
     
    -
    -
    -
    -
    -
    - -
    -
    - -
    - - - -
    -
    - - diff --git a/askbot/skins/common/media/js/tinymce/plugins/table/table.htm b/askbot/skins/common/media/js/tinymce/plugins/table/table.htm deleted file mode 100644 index b92fa741..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/table/table.htm +++ /dev/null @@ -1,188 +0,0 @@ - - - - {#table_dlg.title} - - - - - - - - - - -
    - - -
    -
    -
    - {#table_dlg.general_props} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    - -
    -
    - {#table_dlg.advanced_props} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    - - - - - -
     
    -
    - -
    - -
    - -
    - - - - - -
     
    -
    - - - - - -
     
    -
    -
    -
    -
    - -
    - - -
    -
    - - diff --git a/askbot/skins/common/media/js/tinymce/plugins/template/blank.htm b/askbot/skins/common/media/js/tinymce/plugins/template/blank.htm deleted file mode 100644 index ecde53fa..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/template/blank.htm +++ /dev/null @@ -1,12 +0,0 @@ - - - blank_page - - - - - - - diff --git a/askbot/skins/common/media/js/tinymce/plugins/template/css/template.css b/askbot/skins/common/media/js/tinymce/plugins/template/css/template.css deleted file mode 100644 index 2d23a493..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/template/css/template.css +++ /dev/null @@ -1,23 +0,0 @@ -#frmbody { - padding: 10px; - background-color: #FFF; - border: 1px solid #CCC; -} - -.frmRow { - margin-bottom: 10px; -} - -#templatesrc { - border: none; - width: 320px; - height: 240px; -} - -.title { - padding-bottom: 5px; -} - -.mceActionPanel { - padding-top: 5px; -} diff --git a/askbot/skins/common/media/js/tinymce/plugins/template/editor_plugin.js b/askbot/skins/common/media/js/tinymce/plugins/template/editor_plugin.js deleted file mode 100644 index ebe3c27d..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/template/editor_plugin.js +++ /dev/null @@ -1 +0,0 @@ -(function(){var a=tinymce.each;tinymce.create("tinymce.plugins.TemplatePlugin",{init:function(b,c){var d=this;d.editor=b;b.addCommand("mceTemplate",function(e){b.windowManager.open({file:c+"/template.htm",width:b.getParam("template_popup_width",750),height:b.getParam("template_popup_height",600),inline:1},{plugin_url:c})});b.addCommand("mceInsertTemplate",d._insertTemplate,d);b.addButton("template",{title:"template.desc",cmd:"mceTemplate"});b.onPreProcess.add(function(e,g){var f=e.dom;a(f.select("div",g.node),function(h){if(f.hasClass(h,"mceTmpl")){a(f.select("*",h),function(i){if(f.hasClass(i,e.getParam("template_mdate_classes","mdate").replace(/\s+/g,"|"))){i.innerHTML=d._getDateTime(new Date(),e.getParam("template_mdate_format",e.getLang("template.mdate_format")))}});d._replaceVals(h)}})})},getInfo:function(){return{longname:"Template plugin",author:"Moxiecode Systems AB",authorurl:"http://www.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/template",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_insertTemplate:function(i,j){var k=this,g=k.editor,f,c,d=g.dom,b=g.selection.getContent();f=j.content;a(k.editor.getParam("template_replace_values"),function(l,h){if(typeof(l)!="function"){f=f.replace(new RegExp("\\{\\$"+h+"\\}","g"),l)}});c=d.create("div",null,f);n=d.select(".mceTmpl",c);if(n&&n.length>0){c=d.create("div",null);c.appendChild(n[0].cloneNode(true))}function e(l,h){return new RegExp("\\b"+h+"\\b","g").test(l.className)}a(d.select("*",c),function(h){if(e(h,g.getParam("template_cdate_classes","cdate").replace(/\s+/g,"|"))){h.innerHTML=k._getDateTime(new Date(),g.getParam("template_cdate_format",g.getLang("template.cdate_format")))}if(e(h,g.getParam("template_mdate_classes","mdate").replace(/\s+/g,"|"))){h.innerHTML=k._getDateTime(new Date(),g.getParam("template_mdate_format",g.getLang("template.mdate_format")))}if(e(h,g.getParam("template_selected_content_classes","selcontent").replace(/\s+/g,"|"))){h.innerHTML=b}});k._replaceVals(c);g.execCommand("mceInsertContent",false,c.innerHTML);g.addVisual()},_replaceVals:function(c){var d=this.editor.dom,b=this.editor.getParam("template_replace_values");a(d.select("*",c),function(f){a(b,function(g,e){if(d.hasClass(f,e)){if(typeof(b[e])=="function"){b[e](f)}}})})},_getDateTime:function(e,b){if(!b){return""}function c(g,d){var f;g=""+g;if(g.length 0) { - el = dom.create('div', null); - el.appendChild(n[0].cloneNode(true)); - } - - function hasClass(n, c) { - return new RegExp('\\b' + c + '\\b', 'g').test(n.className); - }; - - each(dom.select('*', el), function(n) { - // Replace cdate - if (hasClass(n, ed.getParam('template_cdate_classes', 'cdate').replace(/\s+/g, '|'))) - n.innerHTML = t._getDateTime(new Date(), ed.getParam("template_cdate_format", ed.getLang("template.cdate_format"))); - - // Replace mdate - if (hasClass(n, ed.getParam('template_mdate_classes', 'mdate').replace(/\s+/g, '|'))) - n.innerHTML = t._getDateTime(new Date(), ed.getParam("template_mdate_format", ed.getLang("template.mdate_format"))); - - // Replace selection - if (hasClass(n, ed.getParam('template_selected_content_classes', 'selcontent').replace(/\s+/g, '|'))) - n.innerHTML = sel; - }); - - t._replaceVals(el); - - ed.execCommand('mceInsertContent', false, el.innerHTML); - ed.addVisual(); - }, - - _replaceVals : function(e) { - var dom = this.editor.dom, vl = this.editor.getParam('template_replace_values'); - - each(dom.select('*', e), function(e) { - each(vl, function(v, k) { - if (dom.hasClass(e, k)) { - if (typeof(vl[k]) == 'function') - vl[k](e); - } - }); - }); - }, - - _getDateTime : function(d, fmt) { - if (!fmt) - return ""; - - function addZeros(value, len) { - var i; - - value = "" + value; - - if (value.length < len) { - for (i=0; i<(len-value.length); i++) - value = "0" + value; - } - - return value; - } - - fmt = fmt.replace("%D", "%m/%d/%y"); - fmt = fmt.replace("%r", "%I:%M:%S %p"); - fmt = fmt.replace("%Y", "" + d.getFullYear()); - fmt = fmt.replace("%y", "" + d.getYear()); - fmt = fmt.replace("%m", addZeros(d.getMonth()+1, 2)); - fmt = fmt.replace("%d", addZeros(d.getDate(), 2)); - fmt = fmt.replace("%H", "" + addZeros(d.getHours(), 2)); - fmt = fmt.replace("%M", "" + addZeros(d.getMinutes(), 2)); - fmt = fmt.replace("%S", "" + addZeros(d.getSeconds(), 2)); - fmt = fmt.replace("%I", "" + ((d.getHours() + 11) % 12 + 1)); - fmt = fmt.replace("%p", "" + (d.getHours() < 12 ? "AM" : "PM")); - fmt = fmt.replace("%B", "" + this.editor.getLang("template_months_long").split(',')[d.getMonth()]); - fmt = fmt.replace("%b", "" + this.editor.getLang("template_months_short").split(',')[d.getMonth()]); - fmt = fmt.replace("%A", "" + this.editor.getLang("template_day_long").split(',')[d.getDay()]); - fmt = fmt.replace("%a", "" + this.editor.getLang("template_day_short").split(',')[d.getDay()]); - fmt = fmt.replace("%%", "%"); - - return fmt; - } - }); - - // Register plugin - tinymce.PluginManager.add('template', tinymce.plugins.TemplatePlugin); -})(); \ No newline at end of file diff --git a/askbot/skins/common/media/js/tinymce/plugins/template/js/template.js b/askbot/skins/common/media/js/tinymce/plugins/template/js/template.js deleted file mode 100644 index bc3045d2..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/template/js/template.js +++ /dev/null @@ -1,106 +0,0 @@ -tinyMCEPopup.requireLangPack(); - -var TemplateDialog = { - preInit : function() { - var url = tinyMCEPopup.getParam("template_external_list_url"); - - if (url != null) - document.write(''); - }, - - init : function() { - var ed = tinyMCEPopup.editor, tsrc, sel, x, u; - - tsrc = ed.getParam("template_templates", false); - sel = document.getElementById('tpath'); - - // Setup external template list - if (!tsrc && typeof(tinyMCETemplateList) != 'undefined') { - for (x=0, tsrc = []; x'); - }); - }, - - selectTemplate : function(u, ti) { - var d = window.frames['templatesrc'].document, x, tsrc = this.tsrc; - - if (!u) - return; - - d.body.innerHTML = this.templateHTML = this.getFileContents(u); - - for (x=0; x - - {#template_dlg.title} - - - - - -
    -
    -
    {#template_dlg.desc}
    -
    - -
    -
    -
    -
    - {#template_dlg.preview} - -
    -
    - -
    - - -
    -
    - - diff --git a/askbot/skins/common/media/js/tinymce/plugins/visualblocks/css/visualblocks.css b/askbot/skins/common/media/js/tinymce/plugins/visualblocks/css/visualblocks.css deleted file mode 100644 index 76bc92b5..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/visualblocks/css/visualblocks.css +++ /dev/null @@ -1,21 +0,0 @@ -p, h1, h2, h3, h4, h5, h6, hgroup, aside, div, section, article, blockquote, address, pre, figure {display: block; padding-top: 10px; border: 1px dashed #BBB; background: transparent no-repeat} -p, h1, h2, h3, h4, h5, h6, hgroup, aside, div, section, article, address, pre, figure {margin-left: 3px} -section, article, address, hgroup, aside, figure {margin: 0 0 1em 3px} - -p {background-image: url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7)} -h1 {background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==)} -h2 {background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==)} -h3 {background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7)} -h4 {background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==)} -h5 {background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==)} -h6 {background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==)} -div {background-image: url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7)} -section {background-image: url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=)} -article {background-image: url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7)} -blockquote {background-image: url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7)} -address {background-image: url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=)} -pre {background-image: url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==)} -hgroup {background-image: url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7)} -aside {background-image: url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=)} -figure {background-image: url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7)} -figcaption {border: 1px dashed #BBB} diff --git a/askbot/skins/common/media/js/tinymce/plugins/visualblocks/editor_plugin.js b/askbot/skins/common/media/js/tinymce/plugins/visualblocks/editor_plugin.js deleted file mode 100644 index c65eaf2b..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/visualblocks/editor_plugin.js +++ /dev/null @@ -1 +0,0 @@ -(function(){tinymce.create("tinymce.plugins.VisualBlocks",{init:function(a,b){var c;if(!window.NodeList){return}a.addCommand("mceVisualBlocks",function(){var e=a.dom,d;if(!c){c=e.uniqueId();d=e.create("link",{id:c,rel:"stylesheet",href:b+"/css/visualblocks.css"});a.getDoc().getElementsByTagName("head")[0].appendChild(d)}else{d=e.get(c);d.disabled=!d.disabled}a.controlManager.setActive("visualblocks",!d.disabled)});a.addButton("visualblocks",{title:"visualblocks.desc",cmd:"mceVisualBlocks"});a.onInit.add(function(){if(a.settings.visualblocks_default_state){a.execCommand("mceVisualBlocks",false,null,{skip_focus:true})}})},getInfo:function(){return{longname:"Visual blocks",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/visualblocks",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("visualblocks",tinymce.plugins.VisualBlocks)})(); \ No newline at end of file diff --git a/askbot/skins/common/media/js/tinymce/plugins/visualblocks/editor_plugin_src.js b/askbot/skins/common/media/js/tinymce/plugins/visualblocks/editor_plugin_src.js deleted file mode 100644 index b9d2ab2e..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/visualblocks/editor_plugin_src.js +++ /dev/null @@ -1,63 +0,0 @@ -/** - * editor_plugin_src.js - * - * Copyright 2012, Moxiecode Systems AB - * Released under LGPL License. - * - * License: http://tinymce.moxiecode.com/license - * Contributing: http://tinymce.moxiecode.com/contributing - */ - -(function() { - tinymce.create('tinymce.plugins.VisualBlocks', { - init : function(ed, url) { - var cssId; - - // We don't support older browsers like IE6/7 and they don't provide prototypes for DOM objects - if (!window.NodeList) { - return; - } - - ed.addCommand('mceVisualBlocks', function() { - var dom = ed.dom, linkElm; - - if (!cssId) { - cssId = dom.uniqueId(); - linkElm = dom.create('link', { - id: cssId, - rel : 'stylesheet', - href : url + '/css/visualblocks.css' - }); - - ed.getDoc().getElementsByTagName('head')[0].appendChild(linkElm); - } else { - linkElm = dom.get(cssId); - linkElm.disabled = !linkElm.disabled; - } - - ed.controlManager.setActive('visualblocks', !linkElm.disabled); - }); - - ed.addButton('visualblocks', {title : 'visualblocks.desc', cmd : 'mceVisualBlocks'}); - - ed.onInit.add(function() { - if (ed.settings.visualblocks_default_state) { - ed.execCommand('mceVisualBlocks', false, null, {skip_focus : true}); - } - }); - }, - - getInfo : function() { - return { - longname : 'Visual blocks', - author : 'Moxiecode Systems AB', - authorurl : 'http://tinymce.moxiecode.com', - infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/visualblocks', - version : tinymce.majorVersion + "." + tinymce.minorVersion - }; - } - }); - - // Register plugin - tinymce.PluginManager.add('visualblocks', tinymce.plugins.VisualBlocks); -})(); \ No newline at end of file diff --git a/askbot/skins/common/media/js/tinymce/plugins/visualchars/editor_plugin.js b/askbot/skins/common/media/js/tinymce/plugins/visualchars/editor_plugin.js deleted file mode 100644 index 1a148e8b..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/visualchars/editor_plugin.js +++ /dev/null @@ -1 +0,0 @@ -(function(){tinymce.create("tinymce.plugins.VisualChars",{init:function(a,b){var c=this;c.editor=a;a.addCommand("mceVisualChars",c._toggleVisualChars,c);a.addButton("visualchars",{title:"visualchars.desc",cmd:"mceVisualChars"});a.onBeforeGetContent.add(function(d,e){if(c.state&&e.format!="raw"&&!e.draft){c.state=true;c._toggleVisualChars(false)}})},getInfo:function(){return{longname:"Visual characters",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/visualchars",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_toggleVisualChars:function(m){var p=this,k=p.editor,a,g,j,n=k.getDoc(),o=k.getBody(),l,q=k.selection,e,c,f;p.state=!p.state;k.controlManager.setActive("visualchars",p.state);if(m){f=q.getBookmark()}if(p.state){a=[];tinymce.walk(o,function(b){if(b.nodeType==3&&b.nodeValue&&b.nodeValue.indexOf("\u00a0")!=-1){a.push(b)}},"childNodes");for(g=0;g$1');c=k.dom.create("div",null,l);while(node=c.lastChild){k.dom.insertAfter(node,a[g])}k.dom.remove(a[g])}}else{a=k.dom.select("span.mceItemNbsp",o);for(g=a.length-1;g>=0;g--){k.dom.remove(a[g],1)}}q.moveToBookmark(f)}});tinymce.PluginManager.add("visualchars",tinymce.plugins.VisualChars)})(); \ No newline at end of file diff --git a/askbot/skins/common/media/js/tinymce/plugins/visualchars/editor_plugin_src.js b/askbot/skins/common/media/js/tinymce/plugins/visualchars/editor_plugin_src.js deleted file mode 100644 index df985905..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/visualchars/editor_plugin_src.js +++ /dev/null @@ -1,83 +0,0 @@ -/** - * editor_plugin_src.js - * - * Copyright 2009, Moxiecode Systems AB - * Released under LGPL License. - * - * License: http://tinymce.moxiecode.com/license - * Contributing: http://tinymce.moxiecode.com/contributing - */ - -(function() { - tinymce.create('tinymce.plugins.VisualChars', { - init : function(ed, url) { - var t = this; - - t.editor = ed; - - // Register commands - ed.addCommand('mceVisualChars', t._toggleVisualChars, t); - - // Register buttons - ed.addButton('visualchars', {title : 'visualchars.desc', cmd : 'mceVisualChars'}); - - ed.onBeforeGetContent.add(function(ed, o) { - if (t.state && o.format != 'raw' && !o.draft) { - t.state = true; - t._toggleVisualChars(false); - } - }); - }, - - getInfo : function() { - return { - longname : 'Visual characters', - author : 'Moxiecode Systems AB', - authorurl : 'http://tinymce.moxiecode.com', - infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/visualchars', - version : tinymce.majorVersion + "." + tinymce.minorVersion - }; - }, - - // Private methods - - _toggleVisualChars : function(bookmark) { - var t = this, ed = t.editor, nl, i, h, d = ed.getDoc(), b = ed.getBody(), nv, s = ed.selection, bo, div, bm; - - t.state = !t.state; - ed.controlManager.setActive('visualchars', t.state); - - if (bookmark) - bm = s.getBookmark(); - - if (t.state) { - nl = []; - tinymce.walk(b, function(n) { - if (n.nodeType == 3 && n.nodeValue && n.nodeValue.indexOf('\u00a0') != -1) - nl.push(n); - }, 'childNodes'); - - for (i = 0; i < nl.length; i++) { - nv = nl[i].nodeValue; - nv = nv.replace(/(\u00a0)/g, '$1'); - - div = ed.dom.create('div', null, nv); - while (node = div.lastChild) - ed.dom.insertAfter(node, nl[i]); - - ed.dom.remove(nl[i]); - } - } else { - nl = ed.dom.select('span.mceItemNbsp', b); - - for (i = nl.length - 1; i >= 0; i--) - ed.dom.remove(nl[i], 1); - } - - s.moveToBookmark(bm); - } - }); - - // Register plugin - tinymce.PluginManager.add('visualchars', tinymce.plugins.VisualChars); -})(); \ No newline at end of file diff --git a/askbot/skins/common/media/js/tinymce/plugins/wordcount/editor_plugin.js b/askbot/skins/common/media/js/tinymce/plugins/wordcount/editor_plugin.js deleted file mode 100644 index 42ece209..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/wordcount/editor_plugin.js +++ /dev/null @@ -1 +0,0 @@ -(function(){tinymce.create("tinymce.plugins.WordCount",{block:0,id:null,countre:null,cleanre:null,init:function(c,d){var e=this,f=0,g=tinymce.VK;e.countre=c.getParam("wordcount_countregex",/[\w\u2019\'-]+/g);e.cleanre=c.getParam("wordcount_cleanregex",/[0-9.(),;:!?%#$?\'\"_+=\\\/-]*/g);e.update_rate=c.getParam("wordcount_update_rate",2000);e.update_on_delete=c.getParam("wordcount_update_on_delete",false);e.id=c.id+"-word-count";c.onPostRender.add(function(i,h){var j,k;k=i.getParam("wordcount_target_id");if(!k){j=tinymce.DOM.get(i.id+"_path_row");if(j){tinymce.DOM.add(j.parentNode,"div",{style:"float: right"},i.getLang("wordcount.words","Words: ")+'0')}}else{tinymce.DOM.add(k,"span",{},'0')}});c.onInit.add(function(h){h.selection.onSetContent.add(function(){e._count(h)});e._count(h)});c.onSetContent.add(function(h){e._count(h)});function b(h){return h!==f&&(h===g.ENTER||f===g.SPACEBAR||a(f))}function a(h){return h===g.DELETE||h===g.BACKSPACE}c.onKeyUp.add(function(h,i){if(b(i.keyCode)||e.update_on_delete&&a(i.keyCode)){e._count(h)}f=i.keyCode})},_getCount:function(c){var a=0;var b=c.getContent({format:"raw"});if(b){b=b.replace(/\.\.\./g," ");b=b.replace(/<.[^<>]*?>/g," ").replace(/ | /gi," ");b=b.replace(/(\w+)(&.+?;)+(\w+)/,"$1$3").replace(/&.+?;/g," ");b=b.replace(this.cleanre,"");var d=b.match(this.countre);if(d){a=d.length}}return a},_count:function(a){var b=this;if(b.block){return}b.block=1;setTimeout(function(){if(!a.destroyed){var c=b._getCount(a);tinymce.DOM.setHTML(b.id,c.toString());setTimeout(function(){b.block=0},b.update_rate)}},1)},getInfo:function(){return{longname:"Word Count plugin",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/wordcount",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("wordcount",tinymce.plugins.WordCount)})(); \ No newline at end of file diff --git a/askbot/skins/common/media/js/tinymce/plugins/wordcount/editor_plugin_src.js b/askbot/skins/common/media/js/tinymce/plugins/wordcount/editor_plugin_src.js deleted file mode 100644 index 34b26555..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/wordcount/editor_plugin_src.js +++ /dev/null @@ -1,122 +0,0 @@ -/** - * editor_plugin_src.js - * - * Copyright 2009, Moxiecode Systems AB - * Released under LGPL License. - * - * License: http://tinymce.moxiecode.com/license - * Contributing: http://tinymce.moxiecode.com/contributing - */ - -(function() { - tinymce.create('tinymce.plugins.WordCount', { - block : 0, - id : null, - countre : null, - cleanre : null, - - init : function(ed, url) { - var t = this, last = 0, VK = tinymce.VK; - - t.countre = ed.getParam('wordcount_countregex', /[\w\u2019\'-]+/g); // u2019 == ’ - t.cleanre = ed.getParam('wordcount_cleanregex', /[0-9.(),;:!?%#$?\'\"_+=\\\/-]*/g); - t.update_rate = ed.getParam('wordcount_update_rate', 2000); - t.update_on_delete = ed.getParam('wordcount_update_on_delete', false); - t.id = ed.id + '-word-count'; - - ed.onPostRender.add(function(ed, cm) { - var row, id; - - // Add it to the specified id or the theme advanced path - id = ed.getParam('wordcount_target_id'); - if (!id) { - row = tinymce.DOM.get(ed.id + '_path_row'); - - if (row) - tinymce.DOM.add(row.parentNode, 'div', {'style': 'float: right'}, ed.getLang('wordcount.words', 'Words: ') + '0'); - } else { - tinymce.DOM.add(id, 'span', {}, '0'); - } - }); - - ed.onInit.add(function(ed) { - ed.selection.onSetContent.add(function() { - t._count(ed); - }); - - t._count(ed); - }); - - ed.onSetContent.add(function(ed) { - t._count(ed); - }); - - function checkKeys(key) { - return key !== last && (key === VK.ENTER || last === VK.SPACEBAR || checkDelOrBksp(last)); - } - - function checkDelOrBksp(key) { - return key === VK.DELETE || key === VK.BACKSPACE; - } - - ed.onKeyUp.add(function(ed, e) { - if (checkKeys(e.keyCode) || t.update_on_delete && checkDelOrBksp(e.keyCode)) { - t._count(ed); - } - - last = e.keyCode; - }); - }, - - _getCount : function(ed) { - var tc = 0; - var tx = ed.getContent({ format: 'raw' }); - - if (tx) { - tx = tx.replace(/\.\.\./g, ' '); // convert ellipses to spaces - tx = tx.replace(/<.[^<>]*?>/g, ' ').replace(/ | /gi, ' '); // remove html tags and space chars - - // deal with html entities - tx = tx.replace(/(\w+)(&.+?;)+(\w+)/, "$1$3").replace(/&.+?;/g, ' '); - tx = tx.replace(this.cleanre, ''); // remove numbers and punctuation - - var wordArray = tx.match(this.countre); - if (wordArray) { - tc = wordArray.length; - } - } - - return tc; - }, - - _count : function(ed) { - var t = this; - - // Keep multiple calls from happening at the same time - if (t.block) - return; - - t.block = 1; - - setTimeout(function() { - if (!ed.destroyed) { - var tc = t._getCount(ed); - tinymce.DOM.setHTML(t.id, tc.toString()); - setTimeout(function() {t.block = 0;}, t.update_rate); - } - }, 1); - }, - - getInfo: function() { - return { - longname : 'Word Count plugin', - author : 'Moxiecode Systems AB', - authorurl : 'http://tinymce.moxiecode.com', - infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/wordcount', - version : tinymce.majorVersion + "." + tinymce.minorVersion - }; - } - }); - - tinymce.PluginManager.add('wordcount', tinymce.plugins.WordCount); -})(); diff --git a/askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/abbr.htm b/askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/abbr.htm deleted file mode 100644 index 30a894f7..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/abbr.htm +++ /dev/null @@ -1,142 +0,0 @@ - - - - {#xhtmlxtras_dlg.title_abbr_element} - - - - - - - - - - -
    - - -
    -
    -
    - {#xhtmlxtras_dlg.fieldset_attrib_tab} - - - - - - - - - - - - - - - - - - - - - - - - - -
    :
    :
    : - -
    :
    : - -
    : - -
    -
    -
    -
    -
    - {#xhtmlxtras_dlg.fieldset_events_tab} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    :
    :
    :
    :
    :
    :
    :
    :
    :
    :
    :
    :
    -
    -
    -
    -
    - - - -
    -
    - - diff --git a/askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/acronym.htm b/askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/acronym.htm deleted file mode 100644 index c1093459..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/acronym.htm +++ /dev/null @@ -1,142 +0,0 @@ - - - - {#xhtmlxtras_dlg.title_acronym_element} - - - - - - - - - - -
    - - -
    -
    -
    - {#xhtmlxtras_dlg.fieldset_attrib_tab} - - - - - - - - - - - - - - - - - - - - - - - - - -
    :
    :
    : - -
    :
    : - -
    : - -
    -
    -
    -
    -
    - {#xhtmlxtras_dlg.fieldset_events_tab} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    :
    :
    :
    :
    :
    :
    :
    :
    :
    :
    :
    :
    -
    -
    -
    -
    - - - -
    -
    - - diff --git a/askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/attributes.htm b/askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/attributes.htm deleted file mode 100644 index e8d606a3..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/attributes.htm +++ /dev/null @@ -1,149 +0,0 @@ - - - - {#xhtmlxtras_dlg.attribs_title} - - - - - - - - - -
    - - -
    -
    -
    - {#xhtmlxtras_dlg.attribute_attrib_tab} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    :
    :
    - -
    :
    : - -
    : - -
    -
    -
    -
    -
    - {#xhtmlxtras_dlg.attribute_events_tab} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    :
    :
    :
    :
    :
    :
    :
    :
    :
    :
    :
    :
    -
    -
    -
    -
    - - -
    -
    - - diff --git a/askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/cite.htm b/askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/cite.htm deleted file mode 100644 index 0ac6bdb6..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/cite.htm +++ /dev/null @@ -1,142 +0,0 @@ - - - - {#xhtmlxtras_dlg.title_cite_element} - - - - - - - - - - -
    - - -
    -
    -
    - {#xhtmlxtras_dlg.fieldset_attrib_tab} - - - - - - - - - - - - - - - - - - - - - - - - - -
    :
    :
    : - -
    :
    : - -
    : - -
    -
    -
    -
    -
    - {#xhtmlxtras_dlg.fieldset_events_tab} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    :
    :
    :
    :
    :
    :
    :
    :
    :
    :
    :
    :
    -
    -
    -
    -
    - - - -
    -
    - - diff --git a/askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/css/attributes.css b/askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/css/attributes.css deleted file mode 100644 index 9a6a235c..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/css/attributes.css +++ /dev/null @@ -1,11 +0,0 @@ -.panel_wrapper div.current { - height: 290px; -} - -#id, #style, #title, #dir, #hreflang, #lang, #classlist, #tabindex, #accesskey { - width: 200px; -} - -#events_panel input { - width: 200px; -} diff --git a/askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/css/popup.css b/askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/css/popup.css deleted file mode 100644 index e67114db..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/css/popup.css +++ /dev/null @@ -1,9 +0,0 @@ -input.field, select.field {width:200px;} -input.picker {width:179px; margin-left: 5px;} -input.disabled {border-color:#F2F2F2;} -img.picker {vertical-align:text-bottom; cursor:pointer;} -h1 {padding: 0 0 5px 0;} -.panel_wrapper div.current {height:160px;} -#xhtmlxtrasdel .panel_wrapper div.current, #xhtmlxtrasins .panel_wrapper div.current {height: 230px;} -a.browse span {display:block; width:20px; height:20px; background:url('../../../themes/advanced/img/icons.gif') -140px -20px;} -#datetime {width:180px;} diff --git a/askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/del.htm b/askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/del.htm deleted file mode 100644 index 5f667510..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/del.htm +++ /dev/null @@ -1,162 +0,0 @@ - - - - {#xhtmlxtras_dlg.title_del_element} - - - - - - - - - - -
    - - -
    -
    -
    - {#xhtmlxtras_dlg.fieldset_general_tab} - - - - - - - - - -
    : - - - - - -
    -
    :
    -
    -
    - {#xhtmlxtras_dlg.fieldset_attrib_tab} - - - - - - - - - - - - - - - - - - - - - - - - - -
    :
    :
    : - -
    :
    : - -
    : - -
    -
    -
    -
    -
    - {#xhtmlxtras_dlg.fieldset_events_tab} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    :
    :
    :
    :
    :
    :
    :
    :
    :
    :
    :
    :
    -
    -
    -
    -
    - - - -
    -
    - - diff --git a/askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/editor_plugin.js b/askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/editor_plugin.js deleted file mode 100644 index 9b98a515..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/editor_plugin.js +++ /dev/null @@ -1 +0,0 @@ -(function(){tinymce.create("tinymce.plugins.XHTMLXtrasPlugin",{init:function(a,b){a.addCommand("mceCite",function(){a.windowManager.open({file:b+"/cite.htm",width:350+parseInt(a.getLang("xhtmlxtras.cite_delta_width",0)),height:250+parseInt(a.getLang("xhtmlxtras.cite_delta_height",0)),inline:1},{plugin_url:b})});a.addCommand("mceAcronym",function(){a.windowManager.open({file:b+"/acronym.htm",width:350+parseInt(a.getLang("xhtmlxtras.acronym_delta_width",0)),height:250+parseInt(a.getLang("xhtmlxtras.acronym_delta_height",0)),inline:1},{plugin_url:b})});a.addCommand("mceAbbr",function(){a.windowManager.open({file:b+"/abbr.htm",width:350+parseInt(a.getLang("xhtmlxtras.abbr_delta_width",0)),height:250+parseInt(a.getLang("xhtmlxtras.abbr_delta_height",0)),inline:1},{plugin_url:b})});a.addCommand("mceDel",function(){a.windowManager.open({file:b+"/del.htm",width:340+parseInt(a.getLang("xhtmlxtras.del_delta_width",0)),height:310+parseInt(a.getLang("xhtmlxtras.del_delta_height",0)),inline:1},{plugin_url:b})});a.addCommand("mceIns",function(){a.windowManager.open({file:b+"/ins.htm",width:340+parseInt(a.getLang("xhtmlxtras.ins_delta_width",0)),height:310+parseInt(a.getLang("xhtmlxtras.ins_delta_height",0)),inline:1},{plugin_url:b})});a.addCommand("mceAttributes",function(){a.windowManager.open({file:b+"/attributes.htm",width:380+parseInt(a.getLang("xhtmlxtras.attr_delta_width",0)),height:370+parseInt(a.getLang("xhtmlxtras.attr_delta_height",0)),inline:1},{plugin_url:b})});a.addButton("cite",{title:"xhtmlxtras.cite_desc",cmd:"mceCite"});a.addButton("acronym",{title:"xhtmlxtras.acronym_desc",cmd:"mceAcronym"});a.addButton("abbr",{title:"xhtmlxtras.abbr_desc",cmd:"mceAbbr"});a.addButton("del",{title:"xhtmlxtras.del_desc",cmd:"mceDel"});a.addButton("ins",{title:"xhtmlxtras.ins_desc",cmd:"mceIns"});a.addButton("attribs",{title:"xhtmlxtras.attribs_desc",cmd:"mceAttributes"});a.onNodeChange.add(function(d,c,f,e){f=d.dom.getParent(f,"CITE,ACRONYM,ABBR,DEL,INS");c.setDisabled("cite",e);c.setDisabled("acronym",e);c.setDisabled("abbr",e);c.setDisabled("del",e);c.setDisabled("ins",e);c.setDisabled("attribs",f&&f.nodeName=="BODY");c.setActive("cite",0);c.setActive("acronym",0);c.setActive("abbr",0);c.setActive("del",0);c.setActive("ins",0);if(f){do{c.setDisabled(f.nodeName.toLowerCase(),0);c.setActive(f.nodeName.toLowerCase(),1)}while(f=f.parentNode)}});a.onPreInit.add(function(){a.dom.create("abbr")})},getInfo:function(){return{longname:"XHTML Xtras Plugin",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/xhtmlxtras",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("xhtmlxtras",tinymce.plugins.XHTMLXtrasPlugin)})(); \ No newline at end of file diff --git a/askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/editor_plugin_src.js b/askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/editor_plugin_src.js deleted file mode 100644 index f2405721..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/editor_plugin_src.js +++ /dev/null @@ -1,132 +0,0 @@ -/** - * editor_plugin_src.js - * - * Copyright 2009, Moxiecode Systems AB - * Released under LGPL License. - * - * License: http://tinymce.moxiecode.com/license - * Contributing: http://tinymce.moxiecode.com/contributing - */ - -(function() { - tinymce.create('tinymce.plugins.XHTMLXtrasPlugin', { - init : function(ed, url) { - // Register commands - ed.addCommand('mceCite', function() { - ed.windowManager.open({ - file : url + '/cite.htm', - width : 350 + parseInt(ed.getLang('xhtmlxtras.cite_delta_width', 0)), - height : 250 + parseInt(ed.getLang('xhtmlxtras.cite_delta_height', 0)), - inline : 1 - }, { - plugin_url : url - }); - }); - - ed.addCommand('mceAcronym', function() { - ed.windowManager.open({ - file : url + '/acronym.htm', - width : 350 + parseInt(ed.getLang('xhtmlxtras.acronym_delta_width', 0)), - height : 250 + parseInt(ed.getLang('xhtmlxtras.acronym_delta_height', 0)), - inline : 1 - }, { - plugin_url : url - }); - }); - - ed.addCommand('mceAbbr', function() { - ed.windowManager.open({ - file : url + '/abbr.htm', - width : 350 + parseInt(ed.getLang('xhtmlxtras.abbr_delta_width', 0)), - height : 250 + parseInt(ed.getLang('xhtmlxtras.abbr_delta_height', 0)), - inline : 1 - }, { - plugin_url : url - }); - }); - - ed.addCommand('mceDel', function() { - ed.windowManager.open({ - file : url + '/del.htm', - width : 340 + parseInt(ed.getLang('xhtmlxtras.del_delta_width', 0)), - height : 310 + parseInt(ed.getLang('xhtmlxtras.del_delta_height', 0)), - inline : 1 - }, { - plugin_url : url - }); - }); - - ed.addCommand('mceIns', function() { - ed.windowManager.open({ - file : url + '/ins.htm', - width : 340 + parseInt(ed.getLang('xhtmlxtras.ins_delta_width', 0)), - height : 310 + parseInt(ed.getLang('xhtmlxtras.ins_delta_height', 0)), - inline : 1 - }, { - plugin_url : url - }); - }); - - ed.addCommand('mceAttributes', function() { - ed.windowManager.open({ - file : url + '/attributes.htm', - width : 380 + parseInt(ed.getLang('xhtmlxtras.attr_delta_width', 0)), - height : 370 + parseInt(ed.getLang('xhtmlxtras.attr_delta_height', 0)), - inline : 1 - }, { - plugin_url : url - }); - }); - - // Register buttons - ed.addButton('cite', {title : 'xhtmlxtras.cite_desc', cmd : 'mceCite'}); - ed.addButton('acronym', {title : 'xhtmlxtras.acronym_desc', cmd : 'mceAcronym'}); - ed.addButton('abbr', {title : 'xhtmlxtras.abbr_desc', cmd : 'mceAbbr'}); - ed.addButton('del', {title : 'xhtmlxtras.del_desc', cmd : 'mceDel'}); - ed.addButton('ins', {title : 'xhtmlxtras.ins_desc', cmd : 'mceIns'}); - ed.addButton('attribs', {title : 'xhtmlxtras.attribs_desc', cmd : 'mceAttributes'}); - - ed.onNodeChange.add(function(ed, cm, n, co) { - n = ed.dom.getParent(n, 'CITE,ACRONYM,ABBR,DEL,INS'); - - cm.setDisabled('cite', co); - cm.setDisabled('acronym', co); - cm.setDisabled('abbr', co); - cm.setDisabled('del', co); - cm.setDisabled('ins', co); - cm.setDisabled('attribs', n && n.nodeName == 'BODY'); - cm.setActive('cite', 0); - cm.setActive('acronym', 0); - cm.setActive('abbr', 0); - cm.setActive('del', 0); - cm.setActive('ins', 0); - - // Activate all - if (n) { - do { - cm.setDisabled(n.nodeName.toLowerCase(), 0); - cm.setActive(n.nodeName.toLowerCase(), 1); - } while (n = n.parentNode); - } - }); - - ed.onPreInit.add(function() { - // Fixed IE issue where it can't handle these elements correctly - ed.dom.create('abbr'); - }); - }, - - getInfo : function() { - return { - longname : 'XHTML Xtras Plugin', - author : 'Moxiecode Systems AB', - authorurl : 'http://tinymce.moxiecode.com', - infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/xhtmlxtras', - version : tinymce.majorVersion + "." + tinymce.minorVersion - }; - } - }); - - // Register plugin - tinymce.PluginManager.add('xhtmlxtras', tinymce.plugins.XHTMLXtrasPlugin); -})(); \ No newline at end of file diff --git a/askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/ins.htm b/askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/ins.htm deleted file mode 100644 index d001ac7c..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/ins.htm +++ /dev/null @@ -1,162 +0,0 @@ - - - - {#xhtmlxtras_dlg.title_ins_element} - - - - - - - - - - -
    - - -
    -
    -
    - {#xhtmlxtras_dlg.fieldset_general_tab} - - - - - - - - - -
    : - - - - - -
    -
    :
    -
    -
    - {#xhtmlxtras_dlg.fieldset_attrib_tab} - - - - - - - - - - - - - - - - - - - - - - - - - -
    :
    :
    : - -
    :
    : - -
    : - -
    -
    -
    -
    -
    - {#xhtmlxtras_dlg.fieldset_events_tab} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    :
    :
    :
    :
    :
    :
    :
    :
    :
    :
    :
    :
    -
    -
    -
    -
    - - - -
    -
    - - diff --git a/askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/js/abbr.js b/askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/js/abbr.js deleted file mode 100644 index 4b51a257..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/js/abbr.js +++ /dev/null @@ -1,28 +0,0 @@ -/** - * abbr.js - * - * Copyright 2009, Moxiecode Systems AB - * Released under LGPL License. - * - * License: http://tinymce.moxiecode.com/license - * Contributing: http://tinymce.moxiecode.com/contributing - */ - -function init() { - SXE.initElementDialog('abbr'); - if (SXE.currentAction == "update") { - SXE.showRemoveButton(); - } -} - -function insertAbbr() { - SXE.insertElement('abbr'); - tinyMCEPopup.close(); -} - -function removeAbbr() { - SXE.removeElement('abbr'); - tinyMCEPopup.close(); -} - -tinyMCEPopup.onInit.add(init); diff --git a/askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/js/acronym.js b/askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/js/acronym.js deleted file mode 100644 index 6ec2f887..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/js/acronym.js +++ /dev/null @@ -1,28 +0,0 @@ -/** - * acronym.js - * - * Copyright 2009, Moxiecode Systems AB - * Released under LGPL License. - * - * License: http://tinymce.moxiecode.com/license - * Contributing: http://tinymce.moxiecode.com/contributing - */ - -function init() { - SXE.initElementDialog('acronym'); - if (SXE.currentAction == "update") { - SXE.showRemoveButton(); - } -} - -function insertAcronym() { - SXE.insertElement('acronym'); - tinyMCEPopup.close(); -} - -function removeAcronym() { - SXE.removeElement('acronym'); - tinyMCEPopup.close(); -} - -tinyMCEPopup.onInit.add(init); diff --git a/askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/js/attributes.js b/askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/js/attributes.js deleted file mode 100644 index 9c99995a..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/js/attributes.js +++ /dev/null @@ -1,111 +0,0 @@ -/** - * attributes.js - * - * Copyright 2009, Moxiecode Systems AB - * Released under LGPL License. - * - * License: http://tinymce.moxiecode.com/license - * Contributing: http://tinymce.moxiecode.com/contributing - */ - -function init() { - tinyMCEPopup.resizeToInnerSize(); - var inst = tinyMCEPopup.editor; - var dom = inst.dom; - var elm = inst.selection.getNode(); - var f = document.forms[0]; - var onclick = dom.getAttrib(elm, 'onclick'); - - setFormValue('title', dom.getAttrib(elm, 'title')); - setFormValue('id', dom.getAttrib(elm, 'id')); - setFormValue('style', dom.getAttrib(elm, "style")); - setFormValue('dir', dom.getAttrib(elm, 'dir')); - setFormValue('lang', dom.getAttrib(elm, 'lang')); - setFormValue('tabindex', dom.getAttrib(elm, 'tabindex', typeof(elm.tabindex) != "undefined" ? elm.tabindex : "")); - setFormValue('accesskey', dom.getAttrib(elm, 'accesskey', typeof(elm.accesskey) != "undefined" ? elm.accesskey : "")); - setFormValue('onfocus', dom.getAttrib(elm, 'onfocus')); - setFormValue('onblur', dom.getAttrib(elm, 'onblur')); - setFormValue('onclick', onclick); - setFormValue('ondblclick', dom.getAttrib(elm, 'ondblclick')); - setFormValue('onmousedown', dom.getAttrib(elm, 'onmousedown')); - setFormValue('onmouseup', dom.getAttrib(elm, 'onmouseup')); - setFormValue('onmouseover', dom.getAttrib(elm, 'onmouseover')); - setFormValue('onmousemove', dom.getAttrib(elm, 'onmousemove')); - setFormValue('onmouseout', dom.getAttrib(elm, 'onmouseout')); - setFormValue('onkeypress', dom.getAttrib(elm, 'onkeypress')); - setFormValue('onkeydown', dom.getAttrib(elm, 'onkeydown')); - setFormValue('onkeyup', dom.getAttrib(elm, 'onkeyup')); - className = dom.getAttrib(elm, 'class'); - - addClassesToList('classlist', 'advlink_styles'); - selectByValue(f, 'classlist', className, true); - - TinyMCE_EditableSelects.init(); -} - -function setFormValue(name, value) { - if(value && document.forms[0].elements[name]){ - document.forms[0].elements[name].value = value; - } -} - -function insertAction() { - var inst = tinyMCEPopup.editor; - var elm = inst.selection.getNode(); - - setAllAttribs(elm); - tinyMCEPopup.execCommand("mceEndUndoLevel"); - tinyMCEPopup.close(); -} - -function setAttrib(elm, attrib, value) { - var formObj = document.forms[0]; - var valueElm = formObj.elements[attrib.toLowerCase()]; - var inst = tinyMCEPopup.editor; - var dom = inst.dom; - - if (typeof(value) == "undefined" || value == null) { - value = ""; - - if (valueElm) - value = valueElm.value; - } - - dom.setAttrib(elm, attrib.toLowerCase(), value); -} - -function setAllAttribs(elm) { - var f = document.forms[0]; - - setAttrib(elm, 'title'); - setAttrib(elm, 'id'); - setAttrib(elm, 'style'); - setAttrib(elm, 'class', getSelectValue(f, 'classlist')); - setAttrib(elm, 'dir'); - setAttrib(elm, 'lang'); - setAttrib(elm, 'tabindex'); - setAttrib(elm, 'accesskey'); - setAttrib(elm, 'onfocus'); - setAttrib(elm, 'onblur'); - setAttrib(elm, 'onclick'); - setAttrib(elm, 'ondblclick'); - setAttrib(elm, 'onmousedown'); - setAttrib(elm, 'onmouseup'); - setAttrib(elm, 'onmouseover'); - setAttrib(elm, 'onmousemove'); - setAttrib(elm, 'onmouseout'); - setAttrib(elm, 'onkeypress'); - setAttrib(elm, 'onkeydown'); - setAttrib(elm, 'onkeyup'); - - // Refresh in old MSIE -// if (tinyMCE.isMSIE5) -// elm.outerHTML = elm.outerHTML; -} - -function insertAttribute() { - tinyMCEPopup.close(); -} - -tinyMCEPopup.onInit.add(init); -tinyMCEPopup.requireLangPack(); diff --git a/askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/js/cite.js b/askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/js/cite.js deleted file mode 100644 index 009b7154..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/js/cite.js +++ /dev/null @@ -1,28 +0,0 @@ -/** - * cite.js - * - * Copyright 2009, Moxiecode Systems AB - * Released under LGPL License. - * - * License: http://tinymce.moxiecode.com/license - * Contributing: http://tinymce.moxiecode.com/contributing - */ - -function init() { - SXE.initElementDialog('cite'); - if (SXE.currentAction == "update") { - SXE.showRemoveButton(); - } -} - -function insertCite() { - SXE.insertElement('cite'); - tinyMCEPopup.close(); -} - -function removeCite() { - SXE.removeElement('cite'); - tinyMCEPopup.close(); -} - -tinyMCEPopup.onInit.add(init); diff --git a/askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/js/del.js b/askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/js/del.js deleted file mode 100644 index 1f957dc7..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/js/del.js +++ /dev/null @@ -1,53 +0,0 @@ -/** - * del.js - * - * Copyright 2009, Moxiecode Systems AB - * Released under LGPL License. - * - * License: http://tinymce.moxiecode.com/license - * Contributing: http://tinymce.moxiecode.com/contributing - */ - -function init() { - SXE.initElementDialog('del'); - if (SXE.currentAction == "update") { - setFormValue('datetime', tinyMCEPopup.editor.dom.getAttrib(SXE.updateElement, 'datetime')); - setFormValue('cite', tinyMCEPopup.editor.dom.getAttrib(SXE.updateElement, 'cite')); - SXE.showRemoveButton(); - } -} - -function setElementAttribs(elm) { - setAllCommonAttribs(elm); - setAttrib(elm, 'datetime'); - setAttrib(elm, 'cite'); - elm.removeAttribute('data-mce-new'); -} - -function insertDel() { - var elm = tinyMCEPopup.editor.dom.getParent(SXE.focusElement, 'DEL'); - - if (elm == null) { - var s = SXE.inst.selection.getContent(); - if(s.length > 0) { - insertInlineElement('del'); - var elementArray = SXE.inst.dom.select('del[data-mce-new]'); - for (var i=0; i 0) { - tagName = element_name; - - insertInlineElement(element_name); - var elementArray = tinymce.grep(SXE.inst.dom.select(element_name)); - for (var i=0; i -1) ? true : false; -} - -SXE.removeClass = function(elm,cl) { - if(elm.className == null || elm.className == "" || !SXE.containsClass(elm,cl)) { - return true; - } - var classNames = elm.className.split(" "); - var newClassNames = ""; - for (var x = 0, cnl = classNames.length; x < cnl; x++) { - if (classNames[x] != cl) { - newClassNames += (classNames[x] + " "); - } - } - elm.className = newClassNames.substring(0,newClassNames.length-1); //removes extra space at the end -} - -SXE.addClass = function(elm,cl) { - if(!SXE.containsClass(elm,cl)) elm.className ? elm.className += " " + cl : elm.className = cl; - return true; -} - -function insertInlineElement(en) { - var ed = tinyMCEPopup.editor, dom = ed.dom; - - ed.getDoc().execCommand('FontName', false, 'mceinline'); - tinymce.each(dom.select('span,font'), function(n) { - if (n.style.fontFamily == 'mceinline' || n.face == 'mceinline') - dom.replace(dom.create(en, {'data-mce-new' : 1}), n, 1); - }); -} diff --git a/askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/js/ins.js b/askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/js/ins.js deleted file mode 100644 index c4addfb0..00000000 --- a/askbot/skins/common/media/js/tinymce/plugins/xhtmlxtras/js/ins.js +++ /dev/null @@ -1,53 +0,0 @@ -/** - * ins.js - * - * Copyright 2009, Moxiecode Systems AB - * Released under LGPL License. - * - * License: http://tinymce.moxiecode.com/license - * Contributing: http://tinymce.moxiecode.com/contributing - */ - -function init() { - SXE.initElementDialog('ins'); - if (SXE.currentAction == "update") { - setFormValue('datetime', tinyMCEPopup.editor.dom.getAttrib(SXE.updateElement, 'datetime')); - setFormValue('cite', tinyMCEPopup.editor.dom.getAttrib(SXE.updateElement, 'cite')); - SXE.showRemoveButton(); - } -} - -function setElementAttribs(elm) { - setAllCommonAttribs(elm); - setAttrib(elm, 'datetime'); - setAttrib(elm, 'cite'); - elm.removeAttribute('data-mce-new'); -} - -function insertIns() { - var elm = tinyMCEPopup.editor.dom.getParent(SXE.focusElement, 'INS'); - - if (elm == null) { - var s = SXE.inst.selection.getContent(); - if(s.length > 0) { - insertInlineElement('ins'); - var elementArray = SXE.inst.dom.select('ins[data-mce-new]'); - for (var i=0; i - - - {#advanced_dlg.about_title} - - - - - - - -
    -
    -

    {#advanced_dlg.about_title}

    -

    Version: ()

    -

    TinyMCE is a platform independent web based Javascript HTML WYSIWYG editor control released as Open Source under LGPL - by Moxiecode Systems AB. It has the ability to convert HTML TEXTAREA fields or other HTML elements to editor instances.

    -

    Copyright © 2003-2008, Moxiecode Systems AB, All rights reserved.

    -

    For more information about this software visit the TinyMCE website.

    - -
    - Got Moxie? -
    -
    - -
    -
    -

    {#advanced_dlg.about_loaded}

    - -
    -
    - -

     

    -
    -
    - -
    -
    -
    -
    - -
    - -
    - - diff --git a/askbot/skins/common/media/js/tinymce/themes/advanced/anchor.htm b/askbot/skins/common/media/js/tinymce/themes/advanced/anchor.htm deleted file mode 100644 index 75c93b79..00000000 --- a/askbot/skins/common/media/js/tinymce/themes/advanced/anchor.htm +++ /dev/null @@ -1,26 +0,0 @@ - - - - {#advanced_dlg.anchor_title} - - - - -
    - - - - - - - - -
    {#advanced_dlg.anchor_title}
    - -
    - - -
    -
    - - diff --git a/askbot/skins/common/media/js/tinymce/themes/advanced/charmap.htm b/askbot/skins/common/media/js/tinymce/themes/advanced/charmap.htm deleted file mode 100644 index d4b6bdfb..00000000 --- a/askbot/skins/common/media/js/tinymce/themes/advanced/charmap.htm +++ /dev/null @@ -1,55 +0,0 @@ - - - - {#advanced_dlg.charmap_title} - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - -
     
     
    -
    - - - - - - - - - - - - - - - - -
     
     
     
    -
    {#advanced_dlg.charmap_usage}
    - - diff --git a/askbot/skins/common/media/js/tinymce/themes/advanced/color_picker.htm b/askbot/skins/common/media/js/tinymce/themes/advanced/color_picker.htm deleted file mode 100644 index b625531a..00000000 --- a/askbot/skins/common/media/js/tinymce/themes/advanced/color_picker.htm +++ /dev/null @@ -1,70 +0,0 @@ - - - - {#advanced_dlg.colorpicker_title} - - - - - - -
    - - -
    -
    -
    - {#advanced_dlg.colorpicker_picker_title} -
    - - -
    - -
    - -
    -
    -
    -
    - -
    -
    - {#advanced_dlg.colorpicker_palette_title} -
    - -
    - -
    -
    -
    - -
    -
    - {#advanced_dlg.colorpicker_named_title} -
    - -
    - -
    - -
    - {#advanced_dlg.colorpicker_name} -
    -
    -
    -
    - -
    - - -
    -
    -
    - - diff --git a/askbot/skins/common/media/js/tinymce/themes/advanced/editor_template.js b/askbot/skins/common/media/js/tinymce/themes/advanced/editor_template.js deleted file mode 100644 index 4d5acfb3..00000000 --- a/askbot/skins/common/media/js/tinymce/themes/advanced/editor_template.js +++ /dev/null @@ -1 +0,0 @@ -(function(h){var i=h.DOM,g=h.dom.Event,c=h.extend,f=h.each,a=h.util.Cookie,e,d=h.explode;function b(m,k){var q,p=m.dom,n="",o,l;previewStyles=m.settings.preview_styles;if(previewStyles===false){return""}if(!previewStyles){previewStyles="font-family font-size font-weight text-decoration text-transform color background-color"}function j(r){return r.replace(/%(\w+)/g,"")}name=k.block||k.inline||"span";q=p.create(name);f(k.styles,function(s,r){s=j(s);if(s){p.setStyle(q,r,s)}});f(k.attributes,function(s,r){s=j(s);if(s){p.setAttrib(q,r,s)}});f(k.classes,function(r){r=j(r);if(!p.hasClass(q,r)){p.addClass(q,r)}});p.setStyles(q,{position:"absolute",left:-65535});m.getBody().appendChild(q);o=p.getStyle(m.getBody(),"fontSize",true);o=/px$/.test(o)?parseInt(o,10):0;f(previewStyles.split(" "),function(r){var s=p.getStyle(q,r,true);if(r=="background-color"&&/transparent|rgba\s*\([^)]+,\s*0\)/.test(s)){s=p.getStyle(m.getBody(),r,true);if(p.toHex(s).toLowerCase()=="#ffffff"){return}}if(r=="font-size"){if(/em|%$/.test(s)){if(o===0){return}s=parseFloat(s,10)/(/%$/.test(s)?100:1);s=(s*o)+"px"}}n+=r+":"+s+";"});p.remove(q);return n}h.ThemeManager.requireLangPack("advanced");h.create("tinymce.themes.AdvancedTheme",{sizes:[8,10,12,14,18,24,36],controls:{bold:["bold_desc","Bold"],italic:["italic_desc","Italic"],underline:["underline_desc","Underline"],strikethrough:["striketrough_desc","Strikethrough"],justifyleft:["justifyleft_desc","JustifyLeft"],justifycenter:["justifycenter_desc","JustifyCenter"],justifyright:["justifyright_desc","JustifyRight"],justifyfull:["justifyfull_desc","JustifyFull"],bullist:["bullist_desc","InsertUnorderedList"],numlist:["numlist_desc","InsertOrderedList"],outdent:["outdent_desc","Outdent"],indent:["indent_desc","Indent"],cut:["cut_desc","Cut"],copy:["copy_desc","Copy"],paste:["paste_desc","Paste"],undo:["undo_desc","Undo"],redo:["redo_desc","Redo"],link:["link_desc","mceLink"],unlink:["unlink_desc","unlink"],image:["image_desc","mceImage"],cleanup:["cleanup_desc","mceCleanup"],help:["help_desc","mceHelp"],code:["code_desc","mceCodeEditor"],hr:["hr_desc","InsertHorizontalRule"],removeformat:["removeformat_desc","RemoveFormat"],sub:["sub_desc","subscript"],sup:["sup_desc","superscript"],forecolor:["forecolor_desc","ForeColor"],forecolorpicker:["forecolor_desc","mceForeColor"],backcolor:["backcolor_desc","HiliteColor"],backcolorpicker:["backcolor_desc","mceBackColor"],charmap:["charmap_desc","mceCharMap"],visualaid:["visualaid_desc","mceToggleVisualAid"],anchor:["anchor_desc","mceInsertAnchor"],newdocument:["newdocument_desc","mceNewDocument"],blockquote:["blockquote_desc","mceBlockQuote"]},stateControls:["bold","italic","underline","strikethrough","bullist","numlist","justifyleft","justifycenter","justifyright","justifyfull","sub","sup","blockquote"],init:function(k,l){var m=this,n,j,p;m.editor=k;m.url=l;m.onResolveName=new h.util.Dispatcher(this);n=k.settings;k.forcedHighContrastMode=k.settings.detect_highcontrast&&m._isHighContrast();k.settings.skin=k.forcedHighContrastMode?"highcontrast":k.settings.skin;if(!n.theme_advanced_buttons1){n=c({theme_advanced_buttons1:"bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect",theme_advanced_buttons2:"bullist,numlist,|,outdent,indent,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code",theme_advanced_buttons3:"hr,removeformat,visualaid,|,sub,sup,|,charmap"},n)}m.settings=n=c({theme_advanced_path:true,theme_advanced_toolbar_location:"top",theme_advanced_blockformats:"p,address,pre,h1,h2,h3,h4,h5,h6",theme_advanced_toolbar_align:"left",theme_advanced_statusbar_location:"bottom",theme_advanced_fonts:"Andale Mono=andale mono,times;Arial=arial,helvetica,sans-serif;Arial Black=arial black,avant garde;Book Antiqua=book antiqua,palatino;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier;Georgia=georgia,palatino;Helvetica=helvetica;Impact=impact,chicago;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco;Times New Roman=times new roman,times;Trebuchet MS=trebuchet ms,geneva;Verdana=verdana,geneva;Webdings=webdings;Wingdings=wingdings,zapf dingbats",theme_advanced_more_colors:1,theme_advanced_row_height:23,theme_advanced_resize_horizontal:1,theme_advanced_resizing_use_cookie:1,theme_advanced_font_sizes:"1,2,3,4,5,6,7",theme_advanced_font_selector:"span",theme_advanced_show_current_color:0,readonly:k.settings.readonly},n);if(!n.font_size_style_values){n.font_size_style_values="8pt,10pt,12pt,14pt,18pt,24pt,36pt"}if(h.is(n.theme_advanced_font_sizes,"string")){n.font_size_style_values=h.explode(n.font_size_style_values);n.font_size_classes=h.explode(n.font_size_classes||"");p={};k.settings.theme_advanced_font_sizes=n.theme_advanced_font_sizes;f(k.getParam("theme_advanced_font_sizes","","hash"),function(r,q){var o;if(q==r&&r>=1&&r<=7){q=r+" ("+m.sizes[r-1]+"pt)";o=n.font_size_classes[r-1];r=n.font_size_style_values[r-1]||(m.sizes[r-1]+"pt")}if(/^\s*\./.test(r)){o=r.replace(/\./g,"")}p[q]=o?{"class":o}:{fontSize:r}});n.theme_advanced_font_sizes=p}if((j=n.theme_advanced_path_location)&&j!="none"){n.theme_advanced_statusbar_location=n.theme_advanced_path_location}if(n.theme_advanced_statusbar_location=="none"){n.theme_advanced_statusbar_location=0}if(k.settings.content_css!==false){k.contentCSS.push(k.baseURI.toAbsolute(l+"/skins/"+k.settings.skin+"/content.css"))}k.onInit.add(function(){if(!k.settings.readonly){k.onNodeChange.add(m._nodeChanged,m);k.onKeyUp.add(m._updateUndoStatus,m);k.onMouseUp.add(m._updateUndoStatus,m);k.dom.bind(k.dom.getRoot(),"dragend",function(){m._updateUndoStatus(k)})}});k.onSetProgressState.add(function(r,o,s){var t,u=r.id,q;if(o){m.progressTimer=setTimeout(function(){t=r.getContainer();t=t.insertBefore(i.create("DIV",{style:"position:relative"}),t.firstChild);q=i.get(r.id+"_tbl");i.add(t,"div",{id:u+"_blocker","class":"mceBlocker",style:{width:q.clientWidth+2,height:q.clientHeight+2}});i.add(t,"div",{id:u+"_progress","class":"mceProgress",style:{left:q.clientWidth/2,top:q.clientHeight/2}})},s||0)}else{i.remove(u+"_blocker");i.remove(u+"_progress");clearTimeout(m.progressTimer)}});i.loadCSS(n.editor_css?k.documentBaseURI.toAbsolute(n.editor_css):l+"/skins/"+k.settings.skin+"/ui.css");if(n.skin_variant){i.loadCSS(l+"/skins/"+k.settings.skin+"/ui_"+n.skin_variant+".css")}},_isHighContrast:function(){var j,k=i.add(i.getRoot(),"div",{style:"background-color: rgb(171,239,86);"});j=(i.getStyle(k,"background-color",true)+"").toLowerCase().replace(/ /g,"");i.remove(k);return j!="rgb(171,239,86)"&&j!="#abef56"},createControl:function(m,j){var k,l;if(l=j.createControl(m)){return l}switch(m){case"styleselect":return this._createStyleSelect();case"formatselect":return this._createBlockFormats();case"fontselect":return this._createFontSelect();case"fontsizeselect":return this._createFontSizeSelect();case"forecolor":return this._createForeColorMenu();case"backcolor":return this._createBackColorMenu()}if((k=this.controls[m])){return j.createButton(m,{title:"advanced."+k[0],cmd:k[1],ui:k[2],value:k[3]})}},execCommand:function(l,k,m){var j=this["_"+l];if(j){j.call(this,k,m);return true}return false},_importClasses:function(l){var j=this.editor,k=j.controlManager.get("styleselect");if(k.getLength()==0){f(j.dom.getClasses(),function(q,m){var p="style_"+m,n;n={inline:"span",attributes:{"class":q["class"]},selector:"*"};j.formatter.register(p,n);k.add(q["class"],p,{style:function(){return b(j,n)}})})}},_createStyleSelect:function(o){var l=this,j=l.editor,k=j.controlManager,m;m=k.createListBox("styleselect",{title:"advanced.style_select",onselect:function(q){var r,n=[],p;f(m.items,function(s){n.push(s.value)});j.focus();j.undoManager.add();r=j.formatter.matchAll(n);h.each(r,function(s){if(!q||s==q){if(s){j.formatter.remove(s)}p=true}});if(!p){j.formatter.apply(q)}j.undoManager.add();j.nodeChanged();return false}});j.onPreInit.add(function(){var p=0,n=j.getParam("style_formats");if(n){f(n,function(q){var r,s=0;f(q,function(){s++});if(s>1){r=q.name=q.name||"style_"+(p++);j.formatter.register(r,q);m.add(q.title,r,{style:function(){return b(j,q)}})}else{m.add(q.title)}})}else{f(j.getParam("theme_advanced_styles","","hash"),function(t,s){var r,q;if(t){r="style_"+(p++);q={inline:"span",classes:t,selector:"*"};j.formatter.register(r,q);m.add(l.editor.translate(s),r,{style:function(){return b(j,q)}})}})}});if(m.getLength()==0){m.onPostRender.add(function(p,q){if(!m.NativeListBox){g.add(q.id+"_text","focus",l._importClasses,l);g.add(q.id+"_text","mousedown",l._importClasses,l);g.add(q.id+"_open","focus",l._importClasses,l);g.add(q.id+"_open","mousedown",l._importClasses,l)}else{g.add(q.id,"focus",l._importClasses,l)}})}return m},_createFontSelect:function(){var l,k=this,j=k.editor;l=j.controlManager.createListBox("fontselect",{title:"advanced.fontdefault",onselect:function(m){var n=l.items[l.selectedIndex];if(!m&&n){j.execCommand("FontName",false,n.value);return}j.execCommand("FontName",false,m);l.select(function(o){return m==o});if(n&&n.value==m){l.select(null)}return false}});if(l){f(j.getParam("theme_advanced_fonts",k.settings.theme_advanced_fonts,"hash"),function(n,m){l.add(j.translate(m),n,{style:n.indexOf("dings")==-1?"font-family:"+n:""})})}return l},_createFontSizeSelect:function(){var m=this,k=m.editor,n,l=0,j=[];n=k.controlManager.createListBox("fontsizeselect",{title:"advanced.font_size",onselect:function(o){var p=n.items[n.selectedIndex];if(!o&&p){p=p.value;if(p["class"]){k.formatter.toggle("fontsize_class",{value:p["class"]});k.undoManager.add();k.nodeChanged()}else{k.execCommand("FontSize",false,p.fontSize)}return}if(o["class"]){k.focus();k.undoManager.add();k.formatter.toggle("fontsize_class",{value:o["class"]});k.undoManager.add();k.nodeChanged()}else{k.execCommand("FontSize",false,o.fontSize)}n.select(function(q){return o==q});if(p&&(p.value.fontSize==o.fontSize||p.value["class"]&&p.value["class"]==o["class"])){n.select(null)}return false}});if(n){f(m.settings.theme_advanced_font_sizes,function(p,o){var q=p.fontSize;if(q>=1&&q<=7){q=m.sizes[parseInt(q)-1]+"pt"}n.add(o,p,{style:"font-size:"+q,"class":"mceFontSize"+(l++)+(" "+(p["class"]||""))})})}return n},_createBlockFormats:function(){var l,j={p:"advanced.paragraph",address:"advanced.address",pre:"advanced.pre",h1:"advanced.h1",h2:"advanced.h2",h3:"advanced.h3",h4:"advanced.h4",h5:"advanced.h5",h6:"advanced.h6",div:"advanced.div",blockquote:"advanced.blockquote",code:"advanced.code",dt:"advanced.dt",dd:"advanced.dd",samp:"advanced.samp"},k=this;l=k.editor.controlManager.createListBox("formatselect",{title:"advanced.block",onselect:function(m){k.editor.execCommand("FormatBlock",false,m);return false}});if(l){f(k.editor.getParam("theme_advanced_blockformats",k.settings.theme_advanced_blockformats,"hash"),function(n,m){l.add(k.editor.translate(m!=n?m:j[n]),n,{"class":"mce_formatPreview mce_"+n,style:function(){return b(k.editor,{block:n})}})})}return l},_createForeColorMenu:function(){var n,k=this,l=k.settings,m={},j;if(l.theme_advanced_more_colors){m.more_colors_func=function(){k._mceColorPicker(0,{color:n.value,func:function(o){n.setColor(o)}})}}if(j=l.theme_advanced_text_colors){m.colors=j}if(l.theme_advanced_default_foreground_color){m.default_color=l.theme_advanced_default_foreground_color}m.title="advanced.forecolor_desc";m.cmd="ForeColor";m.scope=this;n=k.editor.controlManager.createColorSplitButton("forecolor",m);return n},_createBackColorMenu:function(){var n,k=this,l=k.settings,m={},j;if(l.theme_advanced_more_colors){m.more_colors_func=function(){k._mceColorPicker(0,{color:n.value,func:function(o){n.setColor(o)}})}}if(j=l.theme_advanced_background_colors){m.colors=j}if(l.theme_advanced_default_background_color){m.default_color=l.theme_advanced_default_background_color}m.title="advanced.backcolor_desc";m.cmd="HiliteColor";m.scope=this;n=k.editor.controlManager.createColorSplitButton("backcolor",m);return n},renderUI:function(l){var q,m,r,w=this,u=w.editor,x=w.settings,v,k,j;if(u.settings){u.settings.aria_label=x.aria_label+u.getLang("advanced.help_shortcut")}q=k=i.create("span",{role:"application","aria-labelledby":u.id+"_voice",id:u.id+"_parent","class":"mceEditor "+u.settings.skin+"Skin"+(x.skin_variant?" "+u.settings.skin+"Skin"+w._ufirst(x.skin_variant):"")+(u.settings.directionality=="rtl"?" mceRtl":"")});i.add(q,"span",{"class":"mceVoiceLabel",style:"display:none;",id:u.id+"_voice"},x.aria_label);if(!i.boxModel){q=i.add(q,"div",{"class":"mceOldBoxModel"})}q=v=i.add(q,"table",{role:"presentation",id:u.id+"_tbl","class":"mceLayout",cellSpacing:0,cellPadding:0});q=r=i.add(q,"tbody");switch((x.theme_advanced_layout_manager||"").toLowerCase()){case"rowlayout":m=w._rowLayout(x,r,l);break;case"customlayout":m=u.execCallback("theme_advanced_custom_layout",x,r,l,k);break;default:m=w._simpleLayout(x,r,l,k)}q=l.targetNode;j=v.rows;i.addClass(j[0],"mceFirst");i.addClass(j[j.length-1],"mceLast");f(i.select("tr",r),function(o){i.addClass(o.firstChild,"mceFirst");i.addClass(o.childNodes[o.childNodes.length-1],"mceLast")});if(i.get(x.theme_advanced_toolbar_container)){i.get(x.theme_advanced_toolbar_container).appendChild(k)}else{i.insertAfter(k,q)}g.add(u.id+"_path_row","click",function(n){n=n.target;if(n.nodeName=="A"){w._sel(n.className.replace(/^.*mcePath_([0-9]+).*$/,"$1"));return false}});if(!u.getParam("accessibility_focus")){g.add(i.add(k,"a",{href:"#"},""),"focus",function(){tinyMCE.get(u.id).focus()})}if(x.theme_advanced_toolbar_location=="external"){l.deltaHeight=0}w.deltaHeight=l.deltaHeight;l.targetNode=null;u.onKeyDown.add(function(p,n){var s=121,o=122;if(n.altKey){if(n.keyCode===s){if(h.isWebKit){window.focus()}w.toolbarGroup.focus();return g.cancel(n)}else{if(n.keyCode===o){i.get(p.id+"_path_row").focus();return g.cancel(n)}}}});u.addShortcut("alt+0","","mceShortcuts",w);return{iframeContainer:m,editorContainer:u.id+"_parent",sizeContainer:v,deltaHeight:l.deltaHeight}},getInfo:function(){return{longname:"Advanced theme",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",version:h.majorVersion+"."+h.minorVersion}},resizeBy:function(j,k){var l=i.get(this.editor.id+"_ifr");this.resizeTo(l.clientWidth+j,l.clientHeight+k)},resizeTo:function(j,n,l){var k=this.editor,m=this.settings,o=i.get(k.id+"_tbl"),p=i.get(k.id+"_ifr");j=Math.max(m.theme_advanced_resizing_min_width||100,j);n=Math.max(m.theme_advanced_resizing_min_height||100,n);j=Math.min(m.theme_advanced_resizing_max_width||65535,j);n=Math.min(m.theme_advanced_resizing_max_height||65535,n);i.setStyle(o,"height","");i.setStyle(p,"height",n);if(m.theme_advanced_resize_horizontal){i.setStyle(o,"width","");i.setStyle(p,"width",j);if(j"));i.setHTML(l,r.join(""))},_addStatusBar:function(p,k){var l,w=this,q=w.editor,x=w.settings,j,u,v,m;l=i.add(p,"tr");l=m=i.add(l,"td",{"class":"mceStatusbar"});l=i.add(l,"div",{id:q.id+"_path_row",role:"group","aria-labelledby":q.id+"_path_voice"});if(x.theme_advanced_path){i.add(l,"span",{id:q.id+"_path_voice"},q.translate("advanced.path"));i.add(l,"span",{},": ")}else{i.add(l,"span",{}," ")}if(x.theme_advanced_resizing){i.add(m,"a",{id:q.id+"_resize",href:"javascript:;",onclick:"return false;","class":"mceResize",tabIndex:"-1"});if(x.theme_advanced_resizing_use_cookie){q.onPostRender.add(function(){var n=a.getHash("TinyMCE_"+q.id+"_size"),r=i.get(q.id+"_tbl");if(!n){return}w.resizeTo(n.cw,n.ch)})}q.onPostRender.add(function(){g.add(q.id+"_resize","click",function(n){n.preventDefault()});g.add(q.id+"_resize","mousedown",function(E){var t,r,s,o,D,A,B,G,n,F,y;function z(H){H.preventDefault();n=B+(H.screenX-D);F=G+(H.screenY-A);w.resizeTo(n,F)}function C(H){g.remove(i.doc,"mousemove",t);g.remove(q.getDoc(),"mousemove",r);g.remove(i.doc,"mouseup",s);g.remove(q.getDoc(),"mouseup",o);n=B+(H.screenX-D);F=G+(H.screenY-A);w.resizeTo(n,F,true)}E.preventDefault();D=E.screenX;A=E.screenY;y=i.get(w.editor.id+"_ifr");B=n=y.clientWidth;G=F=y.clientHeight;t=g.add(i.doc,"mousemove",z);r=g.add(q.getDoc(),"mousemove",z);s=g.add(i.doc,"mouseup",C);o=g.add(q.getDoc(),"mouseup",C)})})}k.deltaHeight-=21;l=p=null},_updateUndoStatus:function(k){var j=k.controlManager,l=k.undoManager;j.setDisabled("undo",!l.hasUndo()&&!l.typing);j.setDisabled("redo",!l.hasRedo())},_nodeChanged:function(o,u,E,r,F){var z=this,D,G=0,y,H,A=z.settings,x,l,w,C,m,k,j;h.each(z.stateControls,function(n){u.setActive(n,o.queryCommandState(z.controls[n][1]))});function q(p){var s,n=F.parents,t=p;if(typeof(p)=="string"){t=function(v){return v.nodeName==p}}for(s=0;s0){H.mark(p)}})}if(H=u.get("formatselect")){D=q(o.dom.isBlock);if(D){H.select(D.nodeName.toLowerCase())}}q(function(p){if(p.nodeName==="SPAN"){if(!x&&p.className){x=p.className}}if(o.dom.is(p,A.theme_advanced_font_selector)){if(!l&&p.style.fontSize){l=p.style.fontSize}if(!w&&p.style.fontFamily){w=p.style.fontFamily.replace(/[\"\']+/g,"").replace(/^([^,]+).*/,"$1").toLowerCase()}if(!C&&p.style.color){C=p.style.color}if(!m&&p.style.backgroundColor){m=p.style.backgroundColor}}return false});if(H=u.get("fontselect")){H.select(function(n){return n.replace(/^([^,]+).*/,"$1").toLowerCase()==w})}if(H=u.get("fontsizeselect")){if(A.theme_advanced_runtime_fontsize&&!l&&!x){l=o.dom.getStyle(E,"fontSize",true)}H.select(function(n){if(n.fontSize&&n.fontSize===l){return true}if(n["class"]&&n["class"]===x){return true}})}if(A.theme_advanced_show_current_color){function B(p,n){if(H=u.get(p)){if(!n){n=H.settings.default_color}if(n!==H.value){H.displayColor(n)}}}B("forecolor",C);B("backcolor",m)}if(A.theme_advanced_show_current_color){function B(p,n){if(H=u.get(p)){if(!n){n=H.settings.default_color}if(n!==H.value){H.displayColor(n)}}}B("forecolor",C);B("backcolor",m)}if(A.theme_advanced_path&&A.theme_advanced_statusbar_location){D=i.get(o.id+"_path")||i.add(o.id+"_path_row","span",{id:o.id+"_path"});if(z.statusKeyboardNavigation){z.statusKeyboardNavigation.destroy();z.statusKeyboardNavigation=null}i.setHTML(D,"");q(function(I){var p=I.nodeName.toLowerCase(),s,v,t="";if(I.nodeType!=1||p==="br"||I.getAttribute("data-mce-bogus")||i.hasClass(I,"mceItemHidden")||i.hasClass(I,"mceItemRemoved")){return}if(h.isIE&&I.scopeName!=="HTML"&&I.scopeName){p=I.scopeName+":"+p}p=p.replace(/mce\:/g,"");switch(p){case"b":p="strong";break;case"i":p="em";break;case"img":if(y=i.getAttrib(I,"src")){t+="src: "+y+" "}break;case"a":if(y=i.getAttrib(I,"name")){t+="name: "+y+" ";p+="#"+y}if(y=i.getAttrib(I,"href")){t+="href: "+y+" "}break;case"font":if(y=i.getAttrib(I,"face")){t+="font: "+y+" "}if(y=i.getAttrib(I,"size")){t+="size: "+y+" "}if(y=i.getAttrib(I,"color")){t+="color: "+y+" "}break;case"span":if(y=i.getAttrib(I,"style")){t+="style: "+y+" "}break}if(y=i.getAttrib(I,"id")){t+="id: "+y+" "}if(y=I.className){y=y.replace(/\b\s*(webkit|mce|Apple-)\w+\s*\b/g,"");if(y){t+="class: "+y+" ";if(o.dom.isBlock(I)||p=="img"||p=="span"){p+="."+y}}}p=p.replace(/(html:)/g,"");p={name:p,node:I,title:t};z.onResolveName.dispatch(z,p);t=p.title;p=p.name;v=i.create("a",{href:"javascript:;",role:"button",onmousedown:"return false;",title:t,"class":"mcePath_"+(G++)},p);if(D.hasChildNodes()){D.insertBefore(i.create("span",{"aria-hidden":"true"},"\u00a0\u00bb "),D.firstChild);D.insertBefore(v,D.firstChild)}else{D.appendChild(v)}},o.getBody());if(i.select("a",D).length>0){z.statusKeyboardNavigation=new h.ui.KeyboardNavigation({root:o.id+"_path_row",items:i.select("a",D),excludeFromTabOrder:true,onCancel:function(){o.focus()}},i)}}},_sel:function(j){this.editor.execCommand("mceSelectNodeDepth",false,j)},_mceInsertAnchor:function(l,k){var j=this.editor;j.windowManager.open({url:this.url+"/anchor.htm",width:320+parseInt(j.getLang("advanced.anchor_delta_width",0)),height:90+parseInt(j.getLang("advanced.anchor_delta_height",0)),inline:true},{theme_url:this.url})},_mceCharMap:function(){var j=this.editor;j.windowManager.open({url:this.url+"/charmap.htm",width:550+parseInt(j.getLang("advanced.charmap_delta_width",0)),height:265+parseInt(j.getLang("advanced.charmap_delta_height",0)),inline:true},{theme_url:this.url})},_mceHelp:function(){var j=this.editor;j.windowManager.open({url:this.url+"/about.htm",width:480,height:380,inline:true},{theme_url:this.url})},_mceShortcuts:function(){var j=this.editor;j.windowManager.open({url:this.url+"/shortcuts.htm",width:480,height:380,inline:true},{theme_url:this.url})},_mceColorPicker:function(l,k){var j=this.editor;k=k||{};j.windowManager.open({url:this.url+"/color_picker.htm",width:375+parseInt(j.getLang("advanced.colorpicker_delta_width",0)),height:250+parseInt(j.getLang("advanced.colorpicker_delta_height",0)),close_previous:false,inline:true},{input_color:k.color,func:k.func,theme_url:this.url})},_mceCodeEditor:function(k,l){var j=this.editor;j.windowManager.open({url:this.url+"/source_editor.htm",width:parseInt(j.getParam("theme_advanced_source_editor_width",720)),height:parseInt(j.getParam("theme_advanced_source_editor_height",580)),inline:true,resizable:true,maximizable:true},{theme_url:this.url})},_mceImage:function(k,l){var j=this.editor;if(j.dom.getAttrib(j.selection.getNode(),"class","").indexOf("mceItem")!=-1){return}j.windowManager.open({url:this.url+"/image.htm",width:355+parseInt(j.getLang("advanced.image_delta_width",0)),height:275+parseInt(j.getLang("advanced.image_delta_height",0)),inline:true},{theme_url:this.url})},_mceLink:function(k,l){var j=this.editor;j.windowManager.open({url:this.url+"/link.htm",width:310+parseInt(j.getLang("advanced.link_delta_width",0)),height:200+parseInt(j.getLang("advanced.link_delta_height",0)),inline:true},{theme_url:this.url})},_mceNewDocument:function(){var j=this.editor;j.windowManager.confirm("advanced.newdocument",function(k){if(k){j.execCommand("mceSetContent",false,"")}})},_mceForeColor:function(){var j=this;this._mceColorPicker(0,{color:j.fgColor,func:function(k){j.fgColor=k;j.editor.execCommand("ForeColor",false,k)}})},_mceBackColor:function(){var j=this;this._mceColorPicker(0,{color:j.bgColor,func:function(k){j.bgColor=k;j.editor.execCommand("HiliteColor",false,k)}})},_ufirst:function(j){return j.substring(0,1).toUpperCase()+j.substring(1)}});h.ThemeManager.add("advanced",h.themes.AdvancedTheme)}(tinymce)); \ No newline at end of file diff --git a/askbot/skins/common/media/js/tinymce/themes/advanced/editor_template_src.js b/askbot/skins/common/media/js/tinymce/themes/advanced/editor_template_src.js deleted file mode 100644 index 28ba9828..00000000 --- a/askbot/skins/common/media/js/tinymce/themes/advanced/editor_template_src.js +++ /dev/null @@ -1,1487 +0,0 @@ -/** - * editor_template_src.js - * - * Copyright 2009, Moxiecode Systems AB - * Released under LGPL License. - * - * License: http://tinymce.moxiecode.com/license - * Contributing: http://tinymce.moxiecode.com/contributing - */ - -(function(tinymce) { - var DOM = tinymce.DOM, Event = tinymce.dom.Event, extend = tinymce.extend, each = tinymce.each, Cookie = tinymce.util.Cookie, lastExtID, explode = tinymce.explode; - - // Generates a preview for a format - function getPreviewCss(ed, fmt) { - var previewElm, dom = ed.dom, previewCss = '', parentFontSize, previewStylesName; - - previewStyles = ed.settings.preview_styles; - - // No preview forced - if (previewStyles === false) - return ''; - - // Default preview - if (!previewStyles) - previewStyles = 'font-family font-size font-weight text-decoration text-transform color background-color'; - - // Removes any variables since these can't be previewed - function removeVars(val) { - return val.replace(/%(\w+)/g, ''); - }; - - // Create block/inline element to use for preview - name = fmt.block || fmt.inline || 'span'; - previewElm = dom.create(name); - - // Add format styles to preview element - each(fmt.styles, function(value, name) { - value = removeVars(value); - - if (value) - dom.setStyle(previewElm, name, value); - }); - - // Add attributes to preview element - each(fmt.attributes, function(value, name) { - value = removeVars(value); - - if (value) - dom.setAttrib(previewElm, name, value); - }); - - // Add classes to preview element - each(fmt.classes, function(value) { - value = removeVars(value); - - if (!dom.hasClass(previewElm, value)) - dom.addClass(previewElm, value); - }); - - // Add the previewElm outside the visual area - dom.setStyles(previewElm, {position: 'absolute', left: -0xFFFF}); - ed.getBody().appendChild(previewElm); - - // Get parent container font size so we can compute px values out of em/% for older IE:s - parentFontSize = dom.getStyle(ed.getBody(), 'fontSize', true); - parentFontSize = /px$/.test(parentFontSize) ? parseInt(parentFontSize, 10) : 0; - - each(previewStyles.split(' '), function(name) { - var value = dom.getStyle(previewElm, name, true); - - // If background is transparent then check if the body has a background color we can use - if (name == 'background-color' && /transparent|rgba\s*\([^)]+,\s*0\)/.test(value)) { - value = dom.getStyle(ed.getBody(), name, true); - - // Ignore white since it's the default color, not the nicest fix - if (dom.toHex(value).toLowerCase() == '#ffffff') { - return; - } - } - - // Old IE won't calculate the font size so we need to do that manually - if (name == 'font-size') { - if (/em|%$/.test(value)) { - if (parentFontSize === 0) { - return; - } - - // Convert font size from em/% to px - value = parseFloat(value, 10) / (/%$/.test(value) ? 100 : 1); - value = (value * parentFontSize) + 'px'; - } - } - - previewCss += name + ':' + value + ';'; - }); - - dom.remove(previewElm); - - return previewCss; - }; - - // Tell it to load theme specific language pack(s) - tinymce.ThemeManager.requireLangPack('advanced'); - - tinymce.create('tinymce.themes.AdvancedTheme', { - sizes : [8, 10, 12, 14, 18, 24, 36], - - // Control name lookup, format: title, command - controls : { - bold : ['bold_desc', 'Bold'], - italic : ['italic_desc', 'Italic'], - underline : ['underline_desc', 'Underline'], - strikethrough : ['striketrough_desc', 'Strikethrough'], - justifyleft : ['justifyleft_desc', 'JustifyLeft'], - justifycenter : ['justifycenter_desc', 'JustifyCenter'], - justifyright : ['justifyright_desc', 'JustifyRight'], - justifyfull : ['justifyfull_desc', 'JustifyFull'], - bullist : ['bullist_desc', 'InsertUnorderedList'], - numlist : ['numlist_desc', 'InsertOrderedList'], - outdent : ['outdent_desc', 'Outdent'], - indent : ['indent_desc', 'Indent'], - cut : ['cut_desc', 'Cut'], - copy : ['copy_desc', 'Copy'], - paste : ['paste_desc', 'Paste'], - undo : ['undo_desc', 'Undo'], - redo : ['redo_desc', 'Redo'], - link : ['link_desc', 'mceLink'], - unlink : ['unlink_desc', 'unlink'], - image : ['image_desc', 'mceImage'], - cleanup : ['cleanup_desc', 'mceCleanup'], - help : ['help_desc', 'mceHelp'], - code : ['code_desc', 'mceCodeEditor'], - hr : ['hr_desc', 'InsertHorizontalRule'], - removeformat : ['removeformat_desc', 'RemoveFormat'], - sub : ['sub_desc', 'subscript'], - sup : ['sup_desc', 'superscript'], - forecolor : ['forecolor_desc', 'ForeColor'], - forecolorpicker : ['forecolor_desc', 'mceForeColor'], - backcolor : ['backcolor_desc', 'HiliteColor'], - backcolorpicker : ['backcolor_desc', 'mceBackColor'], - charmap : ['charmap_desc', 'mceCharMap'], - visualaid : ['visualaid_desc', 'mceToggleVisualAid'], - anchor : ['anchor_desc', 'mceInsertAnchor'], - newdocument : ['newdocument_desc', 'mceNewDocument'], - blockquote : ['blockquote_desc', 'mceBlockQuote'] - }, - - stateControls : ['bold', 'italic', 'underline', 'strikethrough', 'bullist', 'numlist', 'justifyleft', 'justifycenter', 'justifyright', 'justifyfull', 'sub', 'sup', 'blockquote'], - - init : function(ed, url) { - var t = this, s, v, o; - - t.editor = ed; - t.url = url; - t.onResolveName = new tinymce.util.Dispatcher(this); - s = ed.settings; - - ed.forcedHighContrastMode = ed.settings.detect_highcontrast && t._isHighContrast(); - ed.settings.skin = ed.forcedHighContrastMode ? 'highcontrast' : ed.settings.skin; - - // Setup default buttons - if (!s.theme_advanced_buttons1) { - s = extend({ - theme_advanced_buttons1 : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect", - theme_advanced_buttons2 : "bullist,numlist,|,outdent,indent,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code", - theme_advanced_buttons3 : "hr,removeformat,visualaid,|,sub,sup,|,charmap" - }, s); - } - - // Default settings - t.settings = s = extend({ - theme_advanced_path : true, - theme_advanced_toolbar_location : 'top', - theme_advanced_blockformats : "p,address,pre,h1,h2,h3,h4,h5,h6", - theme_advanced_toolbar_align : "left", - theme_advanced_statusbar_location : "bottom", - theme_advanced_fonts : "Andale Mono=andale mono,times;Arial=arial,helvetica,sans-serif;Arial Black=arial black,avant garde;Book Antiqua=book antiqua,palatino;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier;Georgia=georgia,palatino;Helvetica=helvetica;Impact=impact,chicago;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco;Times New Roman=times new roman,times;Trebuchet MS=trebuchet ms,geneva;Verdana=verdana,geneva;Webdings=webdings;Wingdings=wingdings,zapf dingbats", - theme_advanced_more_colors : 1, - theme_advanced_row_height : 23, - theme_advanced_resize_horizontal : 1, - theme_advanced_resizing_use_cookie : 1, - theme_advanced_font_sizes : "1,2,3,4,5,6,7", - theme_advanced_font_selector : "span", - theme_advanced_show_current_color: 0, - readonly : ed.settings.readonly - }, s); - - // Setup default font_size_style_values - if (!s.font_size_style_values) - s.font_size_style_values = "8pt,10pt,12pt,14pt,18pt,24pt,36pt"; - - if (tinymce.is(s.theme_advanced_font_sizes, 'string')) { - s.font_size_style_values = tinymce.explode(s.font_size_style_values); - s.font_size_classes = tinymce.explode(s.font_size_classes || ''); - - // Parse string value - o = {}; - ed.settings.theme_advanced_font_sizes = s.theme_advanced_font_sizes; - each(ed.getParam('theme_advanced_font_sizes', '', 'hash'), function(v, k) { - var cl; - - if (k == v && v >= 1 && v <= 7) { - k = v + ' (' + t.sizes[v - 1] + 'pt)'; - cl = s.font_size_classes[v - 1]; - v = s.font_size_style_values[v - 1] || (t.sizes[v - 1] + 'pt'); - } - - if (/^\s*\./.test(v)) - cl = v.replace(/\./g, ''); - - o[k] = cl ? {'class' : cl} : {fontSize : v}; - }); - - s.theme_advanced_font_sizes = o; - } - - if ((v = s.theme_advanced_path_location) && v != 'none') - s.theme_advanced_statusbar_location = s.theme_advanced_path_location; - - if (s.theme_advanced_statusbar_location == 'none') - s.theme_advanced_statusbar_location = 0; - - if (ed.settings.content_css !== false) - ed.contentCSS.push(ed.baseURI.toAbsolute(url + "/skins/" + ed.settings.skin + "/content.css")); - - // Init editor - ed.onInit.add(function() { - if (!ed.settings.readonly) { - ed.onNodeChange.add(t._nodeChanged, t); - ed.onKeyUp.add(t._updateUndoStatus, t); - ed.onMouseUp.add(t._updateUndoStatus, t); - ed.dom.bind(ed.dom.getRoot(), 'dragend', function() { - t._updateUndoStatus(ed); - }); - } - }); - - ed.onSetProgressState.add(function(ed, b, ti) { - var co, id = ed.id, tb; - - if (b) { - t.progressTimer = setTimeout(function() { - co = ed.getContainer(); - co = co.insertBefore(DOM.create('DIV', {style : 'position:relative'}), co.firstChild); - tb = DOM.get(ed.id + '_tbl'); - - DOM.add(co, 'div', {id : id + '_blocker', 'class' : 'mceBlocker', style : {width : tb.clientWidth + 2, height : tb.clientHeight + 2}}); - DOM.add(co, 'div', {id : id + '_progress', 'class' : 'mceProgress', style : {left : tb.clientWidth / 2, top : tb.clientHeight / 2}}); - }, ti || 0); - } else { - DOM.remove(id + '_blocker'); - DOM.remove(id + '_progress'); - clearTimeout(t.progressTimer); - } - }); - - DOM.loadCSS(s.editor_css ? ed.documentBaseURI.toAbsolute(s.editor_css) : url + "/skins/" + ed.settings.skin + "/ui.css"); - - if (s.skin_variant) - DOM.loadCSS(url + "/skins/" + ed.settings.skin + "/ui_" + s.skin_variant + ".css"); - }, - - _isHighContrast : function() { - var actualColor, div = DOM.add(DOM.getRoot(), 'div', {'style': 'background-color: rgb(171,239,86);'}); - - actualColor = (DOM.getStyle(div, 'background-color', true) + '').toLowerCase().replace(/ /g, ''); - DOM.remove(div); - - return actualColor != 'rgb(171,239,86)' && actualColor != '#abef56'; - }, - - createControl : function(n, cf) { - var cd, c; - - if (c = cf.createControl(n)) - return c; - - switch (n) { - case "styleselect": - return this._createStyleSelect(); - - case "formatselect": - return this._createBlockFormats(); - - case "fontselect": - return this._createFontSelect(); - - case "fontsizeselect": - return this._createFontSizeSelect(); - - case "forecolor": - return this._createForeColorMenu(); - - case "backcolor": - return this._createBackColorMenu(); - } - - if ((cd = this.controls[n])) - return cf.createButton(n, {title : "advanced." + cd[0], cmd : cd[1], ui : cd[2], value : cd[3]}); - }, - - execCommand : function(cmd, ui, val) { - var f = this['_' + cmd]; - - if (f) { - f.call(this, ui, val); - return true; - } - - return false; - }, - - _importClasses : function(e) { - var ed = this.editor, ctrl = ed.controlManager.get('styleselect'); - - if (ctrl.getLength() == 0) { - each(ed.dom.getClasses(), function(o, idx) { - var name = 'style_' + idx, fmt; - - fmt = { - inline : 'span', - attributes : {'class' : o['class']}, - selector : '*' - }; - - ed.formatter.register(name, fmt); - - ctrl.add(o['class'], name, { - style: function() { - return getPreviewCss(ed, fmt); - } - }); - }); - } - }, - - _createStyleSelect : function(n) { - var t = this, ed = t.editor, ctrlMan = ed.controlManager, ctrl; - - // Setup style select box - ctrl = ctrlMan.createListBox('styleselect', { - title : 'advanced.style_select', - onselect : function(name) { - var matches, formatNames = [], removedFormat; - - each(ctrl.items, function(item) { - formatNames.push(item.value); - }); - - ed.focus(); - ed.undoManager.add(); - - // Toggle off the current format(s) - matches = ed.formatter.matchAll(formatNames); - tinymce.each(matches, function(match) { - if (!name || match == name) { - if (match) - ed.formatter.remove(match); - - removedFormat = true; - } - }); - - if (!removedFormat) - ed.formatter.apply(name); - - ed.undoManager.add(); - ed.nodeChanged(); - - return false; // No auto select - } - }); - - // Handle specified format - ed.onPreInit.add(function() { - var counter = 0, formats = ed.getParam('style_formats'); - - if (formats) { - each(formats, function(fmt) { - var name, keys = 0; - - each(fmt, function() {keys++;}); - - if (keys > 1) { - name = fmt.name = fmt.name || 'style_' + (counter++); - ed.formatter.register(name, fmt); - ctrl.add(fmt.title, name, { - style: function() { - return getPreviewCss(ed, fmt); - } - }); - } else - ctrl.add(fmt.title); - }); - } else { - each(ed.getParam('theme_advanced_styles', '', 'hash'), function(val, key) { - var name, fmt; - - if (val) { - name = 'style_' + (counter++); - fmt = { - inline : 'span', - classes : val, - selector : '*' - }; - - ed.formatter.register(name, fmt); - ctrl.add(t.editor.translate(key), name, { - style: function() { - return getPreviewCss(ed, fmt); - } - }); - } - }); - } - }); - - // Auto import classes if the ctrl box is empty - if (ctrl.getLength() == 0) { - ctrl.onPostRender.add(function(ed, n) { - if (!ctrl.NativeListBox) { - Event.add(n.id + '_text', 'focus', t._importClasses, t); - Event.add(n.id + '_text', 'mousedown', t._importClasses, t); - Event.add(n.id + '_open', 'focus', t._importClasses, t); - Event.add(n.id + '_open', 'mousedown', t._importClasses, t); - } else - Event.add(n.id, 'focus', t._importClasses, t); - }); - } - - return ctrl; - }, - - _createFontSelect : function() { - var c, t = this, ed = t.editor; - - c = ed.controlManager.createListBox('fontselect', { - title : 'advanced.fontdefault', - onselect : function(v) { - var cur = c.items[c.selectedIndex]; - - if (!v && cur) { - ed.execCommand('FontName', false, cur.value); - return; - } - - ed.execCommand('FontName', false, v); - - // Fake selection, execCommand will fire a nodeChange and update the selection - c.select(function(sv) { - return v == sv; - }); - - if (cur && cur.value == v) { - c.select(null); - } - - return false; // No auto select - } - }); - - if (c) { - each(ed.getParam('theme_advanced_fonts', t.settings.theme_advanced_fonts, 'hash'), function(v, k) { - c.add(ed.translate(k), v, {style : v.indexOf('dings') == -1 ? 'font-family:' + v : ''}); - }); - } - - return c; - }, - - _createFontSizeSelect : function() { - var t = this, ed = t.editor, c, i = 0, cl = []; - - c = ed.controlManager.createListBox('fontsizeselect', {title : 'advanced.font_size', onselect : function(v) { - var cur = c.items[c.selectedIndex]; - - if (!v && cur) { - cur = cur.value; - - if (cur['class']) { - ed.formatter.toggle('fontsize_class', {value : cur['class']}); - ed.undoManager.add(); - ed.nodeChanged(); - } else { - ed.execCommand('FontSize', false, cur.fontSize); - } - - return; - } - - if (v['class']) { - ed.focus(); - ed.undoManager.add(); - ed.formatter.toggle('fontsize_class', {value : v['class']}); - ed.undoManager.add(); - ed.nodeChanged(); - } else - ed.execCommand('FontSize', false, v.fontSize); - - // Fake selection, execCommand will fire a nodeChange and update the selection - c.select(function(sv) { - return v == sv; - }); - - if (cur && (cur.value.fontSize == v.fontSize || cur.value['class'] && cur.value['class'] == v['class'])) { - c.select(null); - } - - return false; // No auto select - }}); - - if (c) { - each(t.settings.theme_advanced_font_sizes, function(v, k) { - var fz = v.fontSize; - - if (fz >= 1 && fz <= 7) - fz = t.sizes[parseInt(fz) - 1] + 'pt'; - - c.add(k, v, {'style' : 'font-size:' + fz, 'class' : 'mceFontSize' + (i++) + (' ' + (v['class'] || ''))}); - }); - } - - return c; - }, - - _createBlockFormats : function() { - var c, fmts = { - p : 'advanced.paragraph', - address : 'advanced.address', - pre : 'advanced.pre', - h1 : 'advanced.h1', - h2 : 'advanced.h2', - h3 : 'advanced.h3', - h4 : 'advanced.h4', - h5 : 'advanced.h5', - h6 : 'advanced.h6', - div : 'advanced.div', - blockquote : 'advanced.blockquote', - code : 'advanced.code', - dt : 'advanced.dt', - dd : 'advanced.dd', - samp : 'advanced.samp' - }, t = this; - - c = t.editor.controlManager.createListBox('formatselect', {title : 'advanced.block', onselect : function(v) { - t.editor.execCommand('FormatBlock', false, v); - return false; - }}); - - if (c) { - each(t.editor.getParam('theme_advanced_blockformats', t.settings.theme_advanced_blockformats, 'hash'), function(v, k) { - c.add(t.editor.translate(k != v ? k : fmts[v]), v, {'class' : 'mce_formatPreview mce_' + v, style: function() { - return getPreviewCss(t.editor, {block: v}); - }}); - }); - } - - return c; - }, - - _createForeColorMenu : function() { - var c, t = this, s = t.settings, o = {}, v; - - if (s.theme_advanced_more_colors) { - o.more_colors_func = function() { - t._mceColorPicker(0, { - color : c.value, - func : function(co) { - c.setColor(co); - } - }); - }; - } - - if (v = s.theme_advanced_text_colors) - o.colors = v; - - if (s.theme_advanced_default_foreground_color) - o.default_color = s.theme_advanced_default_foreground_color; - - o.title = 'advanced.forecolor_desc'; - o.cmd = 'ForeColor'; - o.scope = this; - - c = t.editor.controlManager.createColorSplitButton('forecolor', o); - - return c; - }, - - _createBackColorMenu : function() { - var c, t = this, s = t.settings, o = {}, v; - - if (s.theme_advanced_more_colors) { - o.more_colors_func = function() { - t._mceColorPicker(0, { - color : c.value, - func : function(co) { - c.setColor(co); - } - }); - }; - } - - if (v = s.theme_advanced_background_colors) - o.colors = v; - - if (s.theme_advanced_default_background_color) - o.default_color = s.theme_advanced_default_background_color; - - o.title = 'advanced.backcolor_desc'; - o.cmd = 'HiliteColor'; - o.scope = this; - - c = t.editor.controlManager.createColorSplitButton('backcolor', o); - - return c; - }, - - renderUI : function(o) { - var n, ic, tb, t = this, ed = t.editor, s = t.settings, sc, p, nl; - - if (ed.settings) { - ed.settings.aria_label = s.aria_label + ed.getLang('advanced.help_shortcut'); - } - - // TODO: ACC Should have an aria-describedby attribute which is user-configurable to describe what this field is actually for. - // Maybe actually inherit it from the original textara? - n = p = DOM.create('span', {role : 'application', 'aria-labelledby' : ed.id + '_voice', id : ed.id + '_parent', 'class' : 'mceEditor ' + ed.settings.skin + 'Skin' + (s.skin_variant ? ' ' + ed.settings.skin + 'Skin' + t._ufirst(s.skin_variant) : '') + (ed.settings.directionality == "rtl" ? ' mceRtl' : '')}); - DOM.add(n, 'span', {'class': 'mceVoiceLabel', 'style': 'display:none;', id: ed.id + '_voice'}, s.aria_label); - - if (!DOM.boxModel) - n = DOM.add(n, 'div', {'class' : 'mceOldBoxModel'}); - - n = sc = DOM.add(n, 'table', {role : "presentation", id : ed.id + '_tbl', 'class' : 'mceLayout', cellSpacing : 0, cellPadding : 0}); - n = tb = DOM.add(n, 'tbody'); - - switch ((s.theme_advanced_layout_manager || '').toLowerCase()) { - case "rowlayout": - ic = t._rowLayout(s, tb, o); - break; - - case "customlayout": - ic = ed.execCallback("theme_advanced_custom_layout", s, tb, o, p); - break; - - default: - ic = t._simpleLayout(s, tb, o, p); - } - - n = o.targetNode; - - // Add classes to first and last TRs - nl = sc.rows; - DOM.addClass(nl[0], 'mceFirst'); - DOM.addClass(nl[nl.length - 1], 'mceLast'); - - // Add classes to first and last TDs - each(DOM.select('tr', tb), function(n) { - DOM.addClass(n.firstChild, 'mceFirst'); - DOM.addClass(n.childNodes[n.childNodes.length - 1], 'mceLast'); - }); - - if (DOM.get(s.theme_advanced_toolbar_container)) - DOM.get(s.theme_advanced_toolbar_container).appendChild(p); - else - DOM.insertAfter(p, n); - - Event.add(ed.id + '_path_row', 'click', function(e) { - e = e.target; - - if (e.nodeName == 'A') { - t._sel(e.className.replace(/^.*mcePath_([0-9]+).*$/, '$1')); - return false; - } - }); -/* - if (DOM.get(ed.id + '_path_row')) { - Event.add(ed.id + '_tbl', 'mouseover', function(e) { - var re; - - e = e.target; - - if (e.nodeName == 'SPAN' && DOM.hasClass(e.parentNode, 'mceButton')) { - re = DOM.get(ed.id + '_path_row'); - t.lastPath = re.innerHTML; - DOM.setHTML(re, e.parentNode.title); - } - }); - - Event.add(ed.id + '_tbl', 'mouseout', function(e) { - if (t.lastPath) { - DOM.setHTML(ed.id + '_path_row', t.lastPath); - t.lastPath = 0; - } - }); - } -*/ - - if (!ed.getParam('accessibility_focus')) - Event.add(DOM.add(p, 'a', {href : '#'}, ''), 'focus', function() {tinyMCE.get(ed.id).focus();}); - - if (s.theme_advanced_toolbar_location == 'external') - o.deltaHeight = 0; - - t.deltaHeight = o.deltaHeight; - o.targetNode = null; - - ed.onKeyDown.add(function(ed, evt) { - var DOM_VK_F10 = 121, DOM_VK_F11 = 122; - - if (evt.altKey) { - if (evt.keyCode === DOM_VK_F10) { - // Make sure focus is given to toolbar in Safari. - // We can't do this in IE as it prevents giving focus to toolbar when editor is in a frame - if (tinymce.isWebKit) { - window.focus(); - } - t.toolbarGroup.focus(); - return Event.cancel(evt); - } else if (evt.keyCode === DOM_VK_F11) { - DOM.get(ed.id + '_path_row').focus(); - return Event.cancel(evt); - } - } - }); - - // alt+0 is the UK recommended shortcut for accessing the list of access controls. - ed.addShortcut('alt+0', '', 'mceShortcuts', t); - - return { - iframeContainer : ic, - editorContainer : ed.id + '_parent', - sizeContainer : sc, - deltaHeight : o.deltaHeight - }; - }, - - getInfo : function() { - return { - longname : 'Advanced theme', - author : 'Moxiecode Systems AB', - authorurl : 'http://tinymce.moxiecode.com', - version : tinymce.majorVersion + "." + tinymce.minorVersion - } - }, - - resizeBy : function(dw, dh) { - var e = DOM.get(this.editor.id + '_ifr'); - - this.resizeTo(e.clientWidth + dw, e.clientHeight + dh); - }, - - resizeTo : function(w, h, store) { - var ed = this.editor, s = this.settings, e = DOM.get(ed.id + '_tbl'), ifr = DOM.get(ed.id + '_ifr'); - - // Boundery fix box - w = Math.max(s.theme_advanced_resizing_min_width || 100, w); - h = Math.max(s.theme_advanced_resizing_min_height || 100, h); - w = Math.min(s.theme_advanced_resizing_max_width || 0xFFFF, w); - h = Math.min(s.theme_advanced_resizing_max_height || 0xFFFF, h); - - // Resize iframe and container - DOM.setStyle(e, 'height', ''); - DOM.setStyle(ifr, 'height', h); - - if (s.theme_advanced_resize_horizontal) { - DOM.setStyle(e, 'width', ''); - DOM.setStyle(ifr, 'width', w); - - // Make sure that the size is never smaller than the over all ui - if (w < e.clientWidth) { - w = e.clientWidth; - DOM.setStyle(ifr, 'width', e.clientWidth); - } - } - - // Store away the size - if (store && s.theme_advanced_resizing_use_cookie) { - Cookie.setHash("TinyMCE_" + ed.id + "_size", { - cw : w, - ch : h - }); - } - }, - - destroy : function() { - var id = this.editor.id; - - Event.clear(id + '_resize'); - Event.clear(id + '_path_row'); - Event.clear(id + '_external_close'); - }, - - // Internal functions - - _simpleLayout : function(s, tb, o, p) { - var t = this, ed = t.editor, lo = s.theme_advanced_toolbar_location, sl = s.theme_advanced_statusbar_location, n, ic, etb, c; - - if (s.readonly) { - n = DOM.add(tb, 'tr'); - n = ic = DOM.add(n, 'td', {'class' : 'mceIframeContainer'}); - return ic; - } - - // Create toolbar container at top - if (lo == 'top') - t._addToolbars(tb, o); - - // Create external toolbar - if (lo == 'external') { - n = c = DOM.create('div', {style : 'position:relative'}); - n = DOM.add(n, 'div', {id : ed.id + '_external', 'class' : 'mceExternalToolbar'}); - DOM.add(n, 'a', {id : ed.id + '_external_close', href : 'javascript:;', 'class' : 'mceExternalClose'}); - n = DOM.add(n, 'table', {id : ed.id + '_tblext', cellSpacing : 0, cellPadding : 0}); - etb = DOM.add(n, 'tbody'); - - if (p.firstChild.className == 'mceOldBoxModel') - p.firstChild.appendChild(c); - else - p.insertBefore(c, p.firstChild); - - t._addToolbars(etb, o); - - ed.onMouseUp.add(function() { - var e = DOM.get(ed.id + '_external'); - DOM.show(e); - - DOM.hide(lastExtID); - - var f = Event.add(ed.id + '_external_close', 'click', function() { - DOM.hide(ed.id + '_external'); - Event.remove(ed.id + '_external_close', 'click', f); - }); - - DOM.show(e); - DOM.setStyle(e, 'top', 0 - DOM.getRect(ed.id + '_tblext').h - 1); - - // Fixes IE rendering bug - DOM.hide(e); - DOM.show(e); - e.style.filter = ''; - - lastExtID = ed.id + '_external'; - - e = null; - }); - } - - if (sl == 'top') - t._addStatusBar(tb, o); - - // Create iframe container - if (!s.theme_advanced_toolbar_container) { - n = DOM.add(tb, 'tr'); - n = ic = DOM.add(n, 'td', {'class' : 'mceIframeContainer'}); - } - - // Create toolbar container at bottom - if (lo == 'bottom') - t._addToolbars(tb, o); - - if (sl == 'bottom') - t._addStatusBar(tb, o); - - return ic; - }, - - _rowLayout : function(s, tb, o) { - var t = this, ed = t.editor, dc, da, cf = ed.controlManager, n, ic, to, a; - - dc = s.theme_advanced_containers_default_class || ''; - da = s.theme_advanced_containers_default_align || 'center'; - - each(explode(s.theme_advanced_containers || ''), function(c, i) { - var v = s['theme_advanced_container_' + c] || ''; - - switch (c.toLowerCase()) { - case 'mceeditor': - n = DOM.add(tb, 'tr'); - n = ic = DOM.add(n, 'td', {'class' : 'mceIframeContainer'}); - break; - - case 'mceelementpath': - t._addStatusBar(tb, o); - break; - - default: - a = (s['theme_advanced_container_' + c + '_align'] || da).toLowerCase(); - a = 'mce' + t._ufirst(a); - - n = DOM.add(DOM.add(tb, 'tr'), 'td', { - 'class' : 'mceToolbar ' + (s['theme_advanced_container_' + c + '_class'] || dc) + ' ' + a || da - }); - - to = cf.createToolbar("toolbar" + i); - t._addControls(v, to); - DOM.setHTML(n, to.renderHTML()); - o.deltaHeight -= s.theme_advanced_row_height; - } - }); - - return ic; - }, - - _addControls : function(v, tb) { - var t = this, s = t.settings, di, cf = t.editor.controlManager; - - if (s.theme_advanced_disable && !t._disabled) { - di = {}; - - each(explode(s.theme_advanced_disable), function(v) { - di[v] = 1; - }); - - t._disabled = di; - } else - di = t._disabled; - - each(explode(v), function(n) { - var c; - - if (di && di[n]) - return; - - // Compatiblity with 2.x - if (n == 'tablecontrols') { - each(["table","|","row_props","cell_props","|","row_before","row_after","delete_row","|","col_before","col_after","delete_col","|","split_cells","merge_cells"], function(n) { - n = t.createControl(n, cf); - - if (n) - tb.add(n); - }); - - return; - } - - c = t.createControl(n, cf); - - if (c) - tb.add(c); - }); - }, - - _addToolbars : function(c, o) { - var t = this, i, tb, ed = t.editor, s = t.settings, v, cf = ed.controlManager, di, n, h = [], a, toolbarGroup, toolbarsExist = false; - - toolbarGroup = cf.createToolbarGroup('toolbargroup', { - 'name': ed.getLang('advanced.toolbar'), - 'tab_focus_toolbar':ed.getParam('theme_advanced_tab_focus_toolbar') - }); - - t.toolbarGroup = toolbarGroup; - - a = s.theme_advanced_toolbar_align.toLowerCase(); - a = 'mce' + t._ufirst(a); - - n = DOM.add(DOM.add(c, 'tr', {role: 'presentation'}), 'td', {'class' : 'mceToolbar ' + a, "role":"presentation"}); - - // Create toolbar and add the controls - for (i=1; (v = s['theme_advanced_buttons' + i]); i++) { - toolbarsExist = true; - tb = cf.createToolbar("toolbar" + i, {'class' : 'mceToolbarRow' + i}); - - if (s['theme_advanced_buttons' + i + '_add']) - v += ',' + s['theme_advanced_buttons' + i + '_add']; - - if (s['theme_advanced_buttons' + i + '_add_before']) - v = s['theme_advanced_buttons' + i + '_add_before'] + ',' + v; - - t._addControls(v, tb); - toolbarGroup.add(tb); - - o.deltaHeight -= s.theme_advanced_row_height; - } - // Handle case when there are no toolbar buttons and ensure editor height is adjusted accordingly - if (!toolbarsExist) - o.deltaHeight -= s.theme_advanced_row_height; - h.push(toolbarGroup.renderHTML()); - h.push(DOM.createHTML('a', {href : '#', accesskey : 'z', title : ed.getLang("advanced.toolbar_focus"), onfocus : 'tinyMCE.getInstanceById(\'' + ed.id + '\').focus();'}, '')); - DOM.setHTML(n, h.join('')); - }, - - _addStatusBar : function(tb, o) { - var n, t = this, ed = t.editor, s = t.settings, r, mf, me, td; - - n = DOM.add(tb, 'tr'); - n = td = DOM.add(n, 'td', {'class' : 'mceStatusbar'}); - n = DOM.add(n, 'div', {id : ed.id + '_path_row', 'role': 'group', 'aria-labelledby': ed.id + '_path_voice'}); - if (s.theme_advanced_path) { - DOM.add(n, 'span', {id: ed.id + '_path_voice'}, ed.translate('advanced.path')); - DOM.add(n, 'span', {}, ': '); - } else { - DOM.add(n, 'span', {}, ' '); - } - - - if (s.theme_advanced_resizing) { - DOM.add(td, 'a', {id : ed.id + '_resize', href : 'javascript:;', onclick : "return false;", 'class' : 'mceResize', tabIndex:"-1"}); - - if (s.theme_advanced_resizing_use_cookie) { - ed.onPostRender.add(function() { - var o = Cookie.getHash("TinyMCE_" + ed.id + "_size"), c = DOM.get(ed.id + '_tbl'); - - if (!o) - return; - - t.resizeTo(o.cw, o.ch); - }); - } - - ed.onPostRender.add(function() { - Event.add(ed.id + '_resize', 'click', function(e) { - e.preventDefault(); - }); - - Event.add(ed.id + '_resize', 'mousedown', function(e) { - var mouseMoveHandler1, mouseMoveHandler2, - mouseUpHandler1, mouseUpHandler2, - startX, startY, startWidth, startHeight, width, height, ifrElm; - - function resizeOnMove(e) { - e.preventDefault(); - - width = startWidth + (e.screenX - startX); - height = startHeight + (e.screenY - startY); - - t.resizeTo(width, height); - }; - - function endResize(e) { - // Stop listening - Event.remove(DOM.doc, 'mousemove', mouseMoveHandler1); - Event.remove(ed.getDoc(), 'mousemove', mouseMoveHandler2); - Event.remove(DOM.doc, 'mouseup', mouseUpHandler1); - Event.remove(ed.getDoc(), 'mouseup', mouseUpHandler2); - - width = startWidth + (e.screenX - startX); - height = startHeight + (e.screenY - startY); - t.resizeTo(width, height, true); - }; - - e.preventDefault(); - - // Get the current rect size - startX = e.screenX; - startY = e.screenY; - ifrElm = DOM.get(t.editor.id + '_ifr'); - startWidth = width = ifrElm.clientWidth; - startHeight = height = ifrElm.clientHeight; - - // Register envent handlers - mouseMoveHandler1 = Event.add(DOM.doc, 'mousemove', resizeOnMove); - mouseMoveHandler2 = Event.add(ed.getDoc(), 'mousemove', resizeOnMove); - mouseUpHandler1 = Event.add(DOM.doc, 'mouseup', endResize); - mouseUpHandler2 = Event.add(ed.getDoc(), 'mouseup', endResize); - }); - }); - } - - o.deltaHeight -= 21; - n = tb = null; - }, - - _updateUndoStatus : function(ed) { - var cm = ed.controlManager, um = ed.undoManager; - - cm.setDisabled('undo', !um.hasUndo() && !um.typing); - cm.setDisabled('redo', !um.hasRedo()); - }, - - _nodeChanged : function(ed, cm, n, co, ob) { - var t = this, p, de = 0, v, c, s = t.settings, cl, fz, fn, fc, bc, formatNames, matches; - - tinymce.each(t.stateControls, function(c) { - cm.setActive(c, ed.queryCommandState(t.controls[c][1])); - }); - - function getParent(name) { - var i, parents = ob.parents, func = name; - - if (typeof(name) == 'string') { - func = function(node) { - return node.nodeName == name; - }; - } - - for (i = 0; i < parents.length; i++) { - if (func(parents[i])) - return parents[i]; - } - }; - - cm.setActive('visualaid', ed.hasVisual); - t._updateUndoStatus(ed); - cm.setDisabled('outdent', !ed.queryCommandState('Outdent')); - - p = getParent('A'); - if (c = cm.get('link')) { - c.setDisabled((!p && co) || (p && !p.href)); - c.setActive(!!p && (!p.name && !p.id)); - } - - if (c = cm.get('unlink')) { - c.setDisabled(!p && co); - c.setActive(!!p && !p.name && !p.id); - } - - if (c = cm.get('anchor')) { - c.setActive(!co && !!p && (p.name || (p.id && !p.href))); - } - - p = getParent('IMG'); - if (c = cm.get('image')) - c.setActive(!co && !!p && n.className.indexOf('mceItem') == -1); - - if (c = cm.get('styleselect')) { - t._importClasses(); - - formatNames = []; - each(c.items, function(item) { - formatNames.push(item.value); - }); - - matches = ed.formatter.matchAll(formatNames); - c.select(matches[0]); - tinymce.each(matches, function(match, index) { - if (index > 0) { - c.mark(match); - } - }); - } - - if (c = cm.get('formatselect')) { - p = getParent(ed.dom.isBlock); - - if (p) - c.select(p.nodeName.toLowerCase()); - } - - // Find out current fontSize, fontFamily and fontClass - getParent(function(n) { - if (n.nodeName === 'SPAN') { - if (!cl && n.className) - cl = n.className; - } - - if (ed.dom.is(n, s.theme_advanced_font_selector)) { - if (!fz && n.style.fontSize) - fz = n.style.fontSize; - - if (!fn && n.style.fontFamily) - fn = n.style.fontFamily.replace(/[\"\']+/g, '').replace(/^([^,]+).*/, '$1').toLowerCase(); - - if (!fc && n.style.color) - fc = n.style.color; - - if (!bc && n.style.backgroundColor) - bc = n.style.backgroundColor; - } - - return false; - }); - - if (c = cm.get('fontselect')) { - c.select(function(v) { - return v.replace(/^([^,]+).*/, '$1').toLowerCase() == fn; - }); - } - - // Select font size - if (c = cm.get('fontsizeselect')) { - // Use computed style - if (s.theme_advanced_runtime_fontsize && !fz && !cl) - fz = ed.dom.getStyle(n, 'fontSize', true); - - c.select(function(v) { - if (v.fontSize && v.fontSize === fz) - return true; - - if (v['class'] && v['class'] === cl) - return true; - }); - } - - if (s.theme_advanced_show_current_color) { - function updateColor(controlId, color) { - if (c = cm.get(controlId)) { - if (!color) - color = c.settings.default_color; - if (color !== c.value) { - c.displayColor(color); - } - } - } - updateColor('forecolor', fc); - updateColor('backcolor', bc); - } - - if (s.theme_advanced_show_current_color) { - function updateColor(controlId, color) { - if (c = cm.get(controlId)) { - if (!color) - color = c.settings.default_color; - if (color !== c.value) { - c.displayColor(color); - } - } - }; - - updateColor('forecolor', fc); - updateColor('backcolor', bc); - } - - if (s.theme_advanced_path && s.theme_advanced_statusbar_location) { - p = DOM.get(ed.id + '_path') || DOM.add(ed.id + '_path_row', 'span', {id : ed.id + '_path'}); - - if (t.statusKeyboardNavigation) { - t.statusKeyboardNavigation.destroy(); - t.statusKeyboardNavigation = null; - } - - DOM.setHTML(p, ''); - - getParent(function(n) { - var na = n.nodeName.toLowerCase(), u, pi, ti = ''; - - // Ignore non element and bogus/hidden elements - if (n.nodeType != 1 || na === 'br' || n.getAttribute('data-mce-bogus') || DOM.hasClass(n, 'mceItemHidden') || DOM.hasClass(n, 'mceItemRemoved')) - return; - - // Handle prefix - if (tinymce.isIE && n.scopeName !== 'HTML' && n.scopeName) - na = n.scopeName + ':' + na; - - // Remove internal prefix - na = na.replace(/mce\:/g, ''); - - // Handle node name - switch (na) { - case 'b': - na = 'strong'; - break; - - case 'i': - na = 'em'; - break; - - case 'img': - if (v = DOM.getAttrib(n, 'src')) - ti += 'src: ' + v + ' '; - - break; - - case 'a': - if (v = DOM.getAttrib(n, 'name')) { - ti += 'name: ' + v + ' '; - na += '#' + v; - } - - if (v = DOM.getAttrib(n, 'href')) - ti += 'href: ' + v + ' '; - - break; - - case 'font': - if (v = DOM.getAttrib(n, 'face')) - ti += 'font: ' + v + ' '; - - if (v = DOM.getAttrib(n, 'size')) - ti += 'size: ' + v + ' '; - - if (v = DOM.getAttrib(n, 'color')) - ti += 'color: ' + v + ' '; - - break; - - case 'span': - if (v = DOM.getAttrib(n, 'style')) - ti += 'style: ' + v + ' '; - - break; - } - - if (v = DOM.getAttrib(n, 'id')) - ti += 'id: ' + v + ' '; - - if (v = n.className) { - v = v.replace(/\b\s*(webkit|mce|Apple-)\w+\s*\b/g, '') - - if (v) { - ti += 'class: ' + v + ' '; - - if (ed.dom.isBlock(n) || na == 'img' || na == 'span') - na += '.' + v; - } - } - - na = na.replace(/(html:)/g, ''); - na = {name : na, node : n, title : ti}; - t.onResolveName.dispatch(t, na); - ti = na.title; - na = na.name; - - //u = "javascript:tinymce.EditorManager.get('" + ed.id + "').theme._sel('" + (de++) + "');"; - pi = DOM.create('a', {'href' : "javascript:;", role: 'button', onmousedown : "return false;", title : ti, 'class' : 'mcePath_' + (de++)}, na); - - if (p.hasChildNodes()) { - p.insertBefore(DOM.create('span', {'aria-hidden': 'true'}, '\u00a0\u00bb '), p.firstChild); - p.insertBefore(pi, p.firstChild); - } else - p.appendChild(pi); - }, ed.getBody()); - - if (DOM.select('a', p).length > 0) { - t.statusKeyboardNavigation = new tinymce.ui.KeyboardNavigation({ - root: ed.id + "_path_row", - items: DOM.select('a', p), - excludeFromTabOrder: true, - onCancel: function() { - ed.focus(); - } - }, DOM); - } - } - }, - - // Commands gets called by execCommand - - _sel : function(v) { - this.editor.execCommand('mceSelectNodeDepth', false, v); - }, - - _mceInsertAnchor : function(ui, v) { - var ed = this.editor; - - ed.windowManager.open({ - url : this.url + '/anchor.htm', - width : 320 + parseInt(ed.getLang('advanced.anchor_delta_width', 0)), - height : 90 + parseInt(ed.getLang('advanced.anchor_delta_height', 0)), - inline : true - }, { - theme_url : this.url - }); - }, - - _mceCharMap : function() { - var ed = this.editor; - - ed.windowManager.open({ - url : this.url + '/charmap.htm', - width : 550 + parseInt(ed.getLang('advanced.charmap_delta_width', 0)), - height : 265 + parseInt(ed.getLang('advanced.charmap_delta_height', 0)), - inline : true - }, { - theme_url : this.url - }); - }, - - _mceHelp : function() { - var ed = this.editor; - - ed.windowManager.open({ - url : this.url + '/about.htm', - width : 480, - height : 380, - inline : true - }, { - theme_url : this.url - }); - }, - - _mceShortcuts : function() { - var ed = this.editor; - ed.windowManager.open({ - url: this.url + '/shortcuts.htm', - width: 480, - height: 380, - inline: true - }, { - theme_url: this.url - }); - }, - - _mceColorPicker : function(u, v) { - var ed = this.editor; - - v = v || {}; - - ed.windowManager.open({ - url : this.url + '/color_picker.htm', - width : 375 + parseInt(ed.getLang('advanced.colorpicker_delta_width', 0)), - height : 250 + parseInt(ed.getLang('advanced.colorpicker_delta_height', 0)), - close_previous : false, - inline : true - }, { - input_color : v.color, - func : v.func, - theme_url : this.url - }); - }, - - _mceCodeEditor : function(ui, val) { - var ed = this.editor; - - ed.windowManager.open({ - url : this.url + '/source_editor.htm', - width : parseInt(ed.getParam("theme_advanced_source_editor_width", 720)), - height : parseInt(ed.getParam("theme_advanced_source_editor_height", 580)), - inline : true, - resizable : true, - maximizable : true - }, { - theme_url : this.url - }); - }, - - _mceImage : function(ui, val) { - var ed = this.editor; - - // Internal image object like a flash placeholder - if (ed.dom.getAttrib(ed.selection.getNode(), 'class', '').indexOf('mceItem') != -1) - return; - - ed.windowManager.open({ - url : this.url + '/image.htm', - width : 355 + parseInt(ed.getLang('advanced.image_delta_width', 0)), - height : 275 + parseInt(ed.getLang('advanced.image_delta_height', 0)), - inline : true - }, { - theme_url : this.url - }); - }, - - _mceLink : function(ui, val) { - var ed = this.editor; - - ed.windowManager.open({ - url : this.url + '/link.htm', - width : 310 + parseInt(ed.getLang('advanced.link_delta_width', 0)), - height : 200 + parseInt(ed.getLang('advanced.link_delta_height', 0)), - inline : true - }, { - theme_url : this.url - }); - }, - - _mceNewDocument : function() { - var ed = this.editor; - - ed.windowManager.confirm('advanced.newdocument', function(s) { - if (s) - ed.execCommand('mceSetContent', false, ''); - }); - }, - - _mceForeColor : function() { - var t = this; - - this._mceColorPicker(0, { - color: t.fgColor, - func : function(co) { - t.fgColor = co; - t.editor.execCommand('ForeColor', false, co); - } - }); - }, - - _mceBackColor : function() { - var t = this; - - this._mceColorPicker(0, { - color: t.bgColor, - func : function(co) { - t.bgColor = co; - t.editor.execCommand('HiliteColor', false, co); - } - }); - }, - - _ufirst : function(s) { - return s.substring(0, 1).toUpperCase() + s.substring(1); - } - }); - - tinymce.ThemeManager.add('advanced', tinymce.themes.AdvancedTheme); -}(tinymce)); diff --git a/askbot/skins/common/media/js/tinymce/themes/advanced/image.htm b/askbot/skins/common/media/js/tinymce/themes/advanced/image.htm deleted file mode 100644 index b8ba729f..00000000 --- a/askbot/skins/common/media/js/tinymce/themes/advanced/image.htm +++ /dev/null @@ -1,80 +0,0 @@ - - - - {#advanced_dlg.image_title} - - - - - - -
    - - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - -
     
    - x -
    -
    -
    - -
    - - -
    -
    - - diff --git a/askbot/skins/common/media/js/tinymce/themes/advanced/img/colorpicker.jpg b/askbot/skins/common/media/js/tinymce/themes/advanced/img/colorpicker.jpg deleted file mode 100644 index b1a377ab..00000000 Binary files a/askbot/skins/common/media/js/tinymce/themes/advanced/img/colorpicker.jpg and /dev/null differ diff --git a/askbot/skins/common/media/js/tinymce/themes/advanced/img/flash.gif b/askbot/skins/common/media/js/tinymce/themes/advanced/img/flash.gif deleted file mode 100644 index dec3f7c7..00000000 Binary files a/askbot/skins/common/media/js/tinymce/themes/advanced/img/flash.gif and /dev/null differ diff --git a/askbot/skins/common/media/js/tinymce/themes/advanced/img/icons.gif b/askbot/skins/common/media/js/tinymce/themes/advanced/img/icons.gif deleted file mode 100644 index ca222490..00000000 Binary files a/askbot/skins/common/media/js/tinymce/themes/advanced/img/icons.gif and /dev/null differ diff --git a/askbot/skins/common/media/js/tinymce/themes/advanced/img/iframe.gif b/askbot/skins/common/media/js/tinymce/themes/advanced/img/iframe.gif deleted file mode 100644 index 410c7ad0..00000000 Binary files a/askbot/skins/common/media/js/tinymce/themes/advanced/img/iframe.gif and /dev/null differ diff --git a/askbot/skins/common/media/js/tinymce/themes/advanced/img/pagebreak.gif b/askbot/skins/common/media/js/tinymce/themes/advanced/img/pagebreak.gif deleted file mode 100644 index acdf4085..00000000 Binary files a/askbot/skins/common/media/js/tinymce/themes/advanced/img/pagebreak.gif and /dev/null differ diff --git a/askbot/skins/common/media/js/tinymce/themes/advanced/img/quicktime.gif b/askbot/skins/common/media/js/tinymce/themes/advanced/img/quicktime.gif deleted file mode 100644 index 8f10e7aa..00000000 Binary files a/askbot/skins/common/media/js/tinymce/themes/advanced/img/quicktime.gif and /dev/null differ diff --git a/askbot/skins/common/media/js/tinymce/themes/advanced/img/realmedia.gif b/askbot/skins/common/media/js/tinymce/themes/advanced/img/realmedia.gif deleted file mode 100644 index fdfe0b9a..00000000 Binary files a/askbot/skins/common/media/js/tinymce/themes/advanced/img/realmedia.gif and /dev/null differ diff --git a/askbot/skins/common/media/js/tinymce/themes/advanced/img/shockwave.gif b/askbot/skins/common/media/js/tinymce/themes/advanced/img/shockwave.gif deleted file mode 100644 index 9314d044..00000000 Binary files a/askbot/skins/common/media/js/tinymce/themes/advanced/img/shockwave.gif and /dev/null differ diff --git a/askbot/skins/common/media/js/tinymce/themes/advanced/img/trans.gif b/askbot/skins/common/media/js/tinymce/themes/advanced/img/trans.gif deleted file mode 100644 index 38848651..00000000 Binary files a/askbot/skins/common/media/js/tinymce/themes/advanced/img/trans.gif and /dev/null differ diff --git a/askbot/skins/common/media/js/tinymce/themes/advanced/img/video.gif b/askbot/skins/common/media/js/tinymce/themes/advanced/img/video.gif deleted file mode 100644 index 35701040..00000000 Binary files a/askbot/skins/common/media/js/tinymce/themes/advanced/img/video.gif and /dev/null differ diff --git a/askbot/skins/common/media/js/tinymce/themes/advanced/img/windowsmedia.gif b/askbot/skins/common/media/js/tinymce/themes/advanced/img/windowsmedia.gif deleted file mode 100644 index ab50f2d8..00000000 Binary files a/askbot/skins/common/media/js/tinymce/themes/advanced/img/windowsmedia.gif and /dev/null differ diff --git a/askbot/skins/common/media/js/tinymce/themes/advanced/js/about.js b/askbot/skins/common/media/js/tinymce/themes/advanced/js/about.js deleted file mode 100644 index 5b358457..00000000 --- a/askbot/skins/common/media/js/tinymce/themes/advanced/js/about.js +++ /dev/null @@ -1,73 +0,0 @@ -tinyMCEPopup.requireLangPack(); - -function init() { - var ed, tcont; - - tinyMCEPopup.resizeToInnerSize(); - ed = tinyMCEPopup.editor; - - // Give FF some time - window.setTimeout(insertHelpIFrame, 10); - - tcont = document.getElementById('plugintablecontainer'); - document.getElementById('plugins_tab').style.display = 'none'; - - var html = ""; - html += ''; - html += ''; - html += ''; - html += ''; - html += ''; - html += ''; - html += ''; - html += ''; - html += ''; - - tinymce.each(ed.plugins, function(p, n) { - var info; - - if (!p.getInfo) - return; - - html += ''; - - info = p.getInfo(); - - if (info.infourl != null && info.infourl != '') - html += ''; - else - html += ''; - - if (info.authorurl != null && info.authorurl != '') - html += ''; - else - html += ''; - - html += ''; - html += ''; - - document.getElementById('plugins_tab').style.display = ''; - - }); - - html += ''; - html += '
    ' + ed.getLang('advanced_dlg.about_plugin') + '' + ed.getLang('advanced_dlg.about_author') + '' + ed.getLang('advanced_dlg.about_version') + '
    ' + info.longname + '' + info.longname + '' + info.author + '' + info.author + '' + info.version + '
    '; - - tcont.innerHTML = html; - - tinyMCEPopup.dom.get('version').innerHTML = tinymce.majorVersion + "." + tinymce.minorVersion; - tinyMCEPopup.dom.get('date').innerHTML = tinymce.releaseDate; -} - -function insertHelpIFrame() { - var html; - - if (tinyMCEPopup.getParam('docs_url')) { - html = ''; - document.getElementById('iframecontainer').innerHTML = html; - document.getElementById('help_tab').style.display = 'block'; - document.getElementById('help_tab').setAttribute("aria-hidden", "false"); - } -} - -tinyMCEPopup.onInit.add(init); diff --git a/askbot/skins/common/media/js/tinymce/themes/advanced/js/anchor.js b/askbot/skins/common/media/js/tinymce/themes/advanced/js/anchor.js deleted file mode 100644 index 2909a3a4..00000000 --- a/askbot/skins/common/media/js/tinymce/themes/advanced/js/anchor.js +++ /dev/null @@ -1,56 +0,0 @@ -tinyMCEPopup.requireLangPack(); - -var AnchorDialog = { - init : function(ed) { - var action, elm, f = document.forms[0]; - - this.editor = ed; - elm = ed.dom.getParent(ed.selection.getNode(), 'A'); - v = ed.dom.getAttrib(elm, 'name') || ed.dom.getAttrib(elm, 'id'); - - if (v) { - this.action = 'update'; - f.anchorName.value = v; - } - - f.insert.value = ed.getLang(elm ? 'update' : 'insert'); - }, - - update : function() { - var ed = this.editor, elm, name = document.forms[0].anchorName.value, attribName; - - if (!name || !/^[a-z][a-z0-9\-\_:\.]*$/i.test(name)) { - tinyMCEPopup.alert('advanced_dlg.anchor_invalid'); - return; - } - - tinyMCEPopup.restoreSelection(); - - if (this.action != 'update') - ed.selection.collapse(1); - - var aRule = ed.schema.getElementRule('a'); - if (!aRule || aRule.attributes.name) { - attribName = 'name'; - } else { - attribName = 'id'; - } - - elm = ed.dom.getParent(ed.selection.getNode(), 'A'); - if (elm) { - elm.setAttribute(attribName, name); - elm[attribName] = name; - ed.undoManager.add(); - } else { - // create with zero-sized nbsp so that in Webkit where anchor is on last line by itself caret cannot be placed after it - var attrs = {'class' : 'mceItemAnchor'}; - attrs[attribName] = name; - ed.execCommand('mceInsertContent', 0, ed.dom.createHTML('a', attrs, '\uFEFF')); - ed.nodeChanged(); - } - - tinyMCEPopup.close(); - } -}; - -tinyMCEPopup.onInit.add(AnchorDialog.init, AnchorDialog); diff --git a/askbot/skins/common/media/js/tinymce/themes/advanced/js/charmap.js b/askbot/skins/common/media/js/tinymce/themes/advanced/js/charmap.js deleted file mode 100644 index bb186955..00000000 --- a/askbot/skins/common/media/js/tinymce/themes/advanced/js/charmap.js +++ /dev/null @@ -1,363 +0,0 @@ -/** - * charmap.js - * - * Copyright 2009, Moxiecode Systems AB - * Released under LGPL License. - * - * License: http://tinymce.moxiecode.com/license - * Contributing: http://tinymce.moxiecode.com/contributing - */ - -tinyMCEPopup.requireLangPack(); - -var charmap = [ - [' ', ' ', true, 'no-break space'], - ['&', '&', true, 'ampersand'], - ['"', '"', true, 'quotation mark'], -// finance - ['¢', '¢', true, 'cent sign'], - ['€', '€', true, 'euro sign'], - ['£', '£', true, 'pound sign'], - ['¥', '¥', true, 'yen sign'], -// signs - ['©', '©', true, 'copyright sign'], - ['®', '®', true, 'registered sign'], - ['™', '™', true, 'trade mark sign'], - ['‰', '‰', true, 'per mille sign'], - ['µ', 'µ', true, 'micro sign'], - ['·', '·', true, 'middle dot'], - ['•', '•', true, 'bullet'], - ['…', '…', true, 'three dot leader'], - ['′', '′', true, 'minutes / feet'], - ['″', '″', true, 'seconds / inches'], - ['§', '§', true, 'section sign'], - ['¶', '¶', true, 'paragraph sign'], - ['ß', 'ß', true, 'sharp s / ess-zed'], -// quotations - ['‹', '‹', true, 'single left-pointing angle quotation mark'], - ['›', '›', true, 'single right-pointing angle quotation mark'], - ['«', '«', true, 'left pointing guillemet'], - ['»', '»', true, 'right pointing guillemet'], - ['‘', '‘', true, 'left single quotation mark'], - ['’', '’', true, 'right single quotation mark'], - ['“', '“', true, 'left double quotation mark'], - ['”', '”', true, 'right double quotation mark'], - ['‚', '‚', true, 'single low-9 quotation mark'], - ['„', '„', true, 'double low-9 quotation mark'], - ['<', '<', true, 'less-than sign'], - ['>', '>', true, 'greater-than sign'], - ['≤', '≤', true, 'less-than or equal to'], - ['≥', '≥', true, 'greater-than or equal to'], - ['–', '–', true, 'en dash'], - ['—', '—', true, 'em dash'], - ['¯', '¯', true, 'macron'], - ['‾', '‾', true, 'overline'], - ['¤', '¤', true, 'currency sign'], - ['¦', '¦', true, 'broken bar'], - ['¨', '¨', true, 'diaeresis'], - ['¡', '¡', true, 'inverted exclamation mark'], - ['¿', '¿', true, 'turned question mark'], - ['ˆ', 'ˆ', true, 'circumflex accent'], - ['˜', '˜', true, 'small tilde'], - ['°', '°', true, 'degree sign'], - ['−', '−', true, 'minus sign'], - ['±', '±', true, 'plus-minus sign'], - ['÷', '÷', true, 'division sign'], - ['⁄', '⁄', true, 'fraction slash'], - ['×', '×', true, 'multiplication sign'], - ['¹', '¹', true, 'superscript one'], - ['²', '²', true, 'superscript two'], - ['³', '³', true, 'superscript three'], - ['¼', '¼', true, 'fraction one quarter'], - ['½', '½', true, 'fraction one half'], - ['¾', '¾', true, 'fraction three quarters'], -// math / logical - ['ƒ', 'ƒ', true, 'function / florin'], - ['∫', '∫', true, 'integral'], - ['∑', '∑', true, 'n-ary sumation'], - ['∞', '∞', true, 'infinity'], - ['√', '√', true, 'square root'], - ['∼', '∼', false,'similar to'], - ['≅', '≅', false,'approximately equal to'], - ['≈', '≈', true, 'almost equal to'], - ['≠', '≠', true, 'not equal to'], - ['≡', '≡', true, 'identical to'], - ['∈', '∈', false,'element of'], - ['∉', '∉', false,'not an element of'], - ['∋', '∋', false,'contains as member'], - ['∏', '∏', true, 'n-ary product'], - ['∧', '∧', false,'logical and'], - ['∨', '∨', false,'logical or'], - ['¬', '¬', true, 'not sign'], - ['∩', '∩', true, 'intersection'], - ['∪', '∪', false,'union'], - ['∂', '∂', true, 'partial differential'], - ['∀', '∀', false,'for all'], - ['∃', '∃', false,'there exists'], - ['∅', '∅', false,'diameter'], - ['∇', '∇', false,'backward difference'], - ['∗', '∗', false,'asterisk operator'], - ['∝', '∝', false,'proportional to'], - ['∠', '∠', false,'angle'], -// undefined - ['´', '´', true, 'acute accent'], - ['¸', '¸', true, 'cedilla'], - ['ª', 'ª', true, 'feminine ordinal indicator'], - ['º', 'º', true, 'masculine ordinal indicator'], - ['†', '†', true, 'dagger'], - ['‡', '‡', true, 'double dagger'], -// alphabetical special chars - ['À', 'À', true, 'A - grave'], - ['Á', 'Á', true, 'A - acute'], - ['Â', 'Â', true, 'A - circumflex'], - ['Ã', 'Ã', true, 'A - tilde'], - ['Ä', 'Ä', true, 'A - diaeresis'], - ['Å', 'Å', true, 'A - ring above'], - ['Æ', 'Æ', true, 'ligature AE'], - ['Ç', 'Ç', true, 'C - cedilla'], - ['È', 'È', true, 'E - grave'], - ['É', 'É', true, 'E - acute'], - ['Ê', 'Ê', true, 'E - circumflex'], - ['Ë', 'Ë', true, 'E - diaeresis'], - ['Ì', 'Ì', true, 'I - grave'], - ['Í', 'Í', true, 'I - acute'], - ['Î', 'Î', true, 'I - circumflex'], - ['Ï', 'Ï', true, 'I - diaeresis'], - ['Ð', 'Ð', true, 'ETH'], - ['Ñ', 'Ñ', true, 'N - tilde'], - ['Ò', 'Ò', true, 'O - grave'], - ['Ó', 'Ó', true, 'O - acute'], - ['Ô', 'Ô', true, 'O - circumflex'], - ['Õ', 'Õ', true, 'O - tilde'], - ['Ö', 'Ö', true, 'O - diaeresis'], - ['Ø', 'Ø', true, 'O - slash'], - ['Œ', 'Œ', true, 'ligature OE'], - ['Š', 'Š', true, 'S - caron'], - ['Ù', 'Ù', true, 'U - grave'], - ['Ú', 'Ú', true, 'U - acute'], - ['Û', 'Û', true, 'U - circumflex'], - ['Ü', 'Ü', true, 'U - diaeresis'], - ['Ý', 'Ý', true, 'Y - acute'], - ['Ÿ', 'Ÿ', true, 'Y - diaeresis'], - ['Þ', 'Þ', true, 'THORN'], - ['à', 'à', true, 'a - grave'], - ['á', 'á', true, 'a - acute'], - ['â', 'â', true, 'a - circumflex'], - ['ã', 'ã', true, 'a - tilde'], - ['ä', 'ä', true, 'a - diaeresis'], - ['å', 'å', true, 'a - ring above'], - ['æ', 'æ', true, 'ligature ae'], - ['ç', 'ç', true, 'c - cedilla'], - ['è', 'è', true, 'e - grave'], - ['é', 'é', true, 'e - acute'], - ['ê', 'ê', true, 'e - circumflex'], - ['ë', 'ë', true, 'e - diaeresis'], - ['ì', 'ì', true, 'i - grave'], - ['í', 'í', true, 'i - acute'], - ['î', 'î', true, 'i - circumflex'], - ['ï', 'ï', true, 'i - diaeresis'], - ['ð', 'ð', true, 'eth'], - ['ñ', 'ñ', true, 'n - tilde'], - ['ò', 'ò', true, 'o - grave'], - ['ó', 'ó', true, 'o - acute'], - ['ô', 'ô', true, 'o - circumflex'], - ['õ', 'õ', true, 'o - tilde'], - ['ö', 'ö', true, 'o - diaeresis'], - ['ø', 'ø', true, 'o slash'], - ['œ', 'œ', true, 'ligature oe'], - ['š', 'š', true, 's - caron'], - ['ù', 'ù', true, 'u - grave'], - ['ú', 'ú', true, 'u - acute'], - ['û', 'û', true, 'u - circumflex'], - ['ü', 'ü', true, 'u - diaeresis'], - ['ý', 'ý', true, 'y - acute'], - ['þ', 'þ', true, 'thorn'], - ['ÿ', 'ÿ', true, 'y - diaeresis'], - ['Α', 'Α', true, 'Alpha'], - ['Β', 'Β', true, 'Beta'], - ['Γ', 'Γ', true, 'Gamma'], - ['Δ', 'Δ', true, 'Delta'], - ['Ε', 'Ε', true, 'Epsilon'], - ['Ζ', 'Ζ', true, 'Zeta'], - ['Η', 'Η', true, 'Eta'], - ['Θ', 'Θ', true, 'Theta'], - ['Ι', 'Ι', true, 'Iota'], - ['Κ', 'Κ', true, 'Kappa'], - ['Λ', 'Λ', true, 'Lambda'], - ['Μ', 'Μ', true, 'Mu'], - ['Ν', 'Ν', true, 'Nu'], - ['Ξ', 'Ξ', true, 'Xi'], - ['Ο', 'Ο', true, 'Omicron'], - ['Π', 'Π', true, 'Pi'], - ['Ρ', 'Ρ', true, 'Rho'], - ['Σ', 'Σ', true, 'Sigma'], - ['Τ', 'Τ', true, 'Tau'], - ['Υ', 'Υ', true, 'Upsilon'], - ['Φ', 'Φ', true, 'Phi'], - ['Χ', 'Χ', true, 'Chi'], - ['Ψ', 'Ψ', true, 'Psi'], - ['Ω', 'Ω', true, 'Omega'], - ['α', 'α', true, 'alpha'], - ['β', 'β', true, 'beta'], - ['γ', 'γ', true, 'gamma'], - ['δ', 'δ', true, 'delta'], - ['ε', 'ε', true, 'epsilon'], - ['ζ', 'ζ', true, 'zeta'], - ['η', 'η', true, 'eta'], - ['θ', 'θ', true, 'theta'], - ['ι', 'ι', true, 'iota'], - ['κ', 'κ', true, 'kappa'], - ['λ', 'λ', true, 'lambda'], - ['μ', 'μ', true, 'mu'], - ['ν', 'ν', true, 'nu'], - ['ξ', 'ξ', true, 'xi'], - ['ο', 'ο', true, 'omicron'], - ['π', 'π', true, 'pi'], - ['ρ', 'ρ', true, 'rho'], - ['ς', 'ς', true, 'final sigma'], - ['σ', 'σ', true, 'sigma'], - ['τ', 'τ', true, 'tau'], - ['υ', 'υ', true, 'upsilon'], - ['φ', 'φ', true, 'phi'], - ['χ', 'χ', true, 'chi'], - ['ψ', 'ψ', true, 'psi'], - ['ω', 'ω', true, 'omega'], -// symbols - ['ℵ', 'ℵ', false,'alef symbol'], - ['ϖ', 'ϖ', false,'pi symbol'], - ['ℜ', 'ℜ', false,'real part symbol'], - ['ϑ','ϑ', false,'theta symbol'], - ['ϒ', 'ϒ', false,'upsilon - hook symbol'], - ['℘', '℘', false,'Weierstrass p'], - ['ℑ', 'ℑ', false,'imaginary part'], -// arrows - ['←', '←', true, 'leftwards arrow'], - ['↑', '↑', true, 'upwards arrow'], - ['→', '→', true, 'rightwards arrow'], - ['↓', '↓', true, 'downwards arrow'], - ['↔', '↔', true, 'left right arrow'], - ['↵', '↵', false,'carriage return'], - ['⇐', '⇐', false,'leftwards double arrow'], - ['⇑', '⇑', false,'upwards double arrow'], - ['⇒', '⇒', false,'rightwards double arrow'], - ['⇓', '⇓', false,'downwards double arrow'], - ['⇔', '⇔', false,'left right double arrow'], - ['∴', '∴', false,'therefore'], - ['⊂', '⊂', false,'subset of'], - ['⊃', '⊃', false,'superset of'], - ['⊄', '⊄', false,'not a subset of'], - ['⊆', '⊆', false,'subset of or equal to'], - ['⊇', '⊇', false,'superset of or equal to'], - ['⊕', '⊕', false,'circled plus'], - ['⊗', '⊗', false,'circled times'], - ['⊥', '⊥', false,'perpendicular'], - ['⋅', '⋅', false,'dot operator'], - ['⌈', '⌈', false,'left ceiling'], - ['⌉', '⌉', false,'right ceiling'], - ['⌊', '⌊', false,'left floor'], - ['⌋', '⌋', false,'right floor'], - ['⟨', '〈', false,'left-pointing angle bracket'], - ['⟩', '〉', false,'right-pointing angle bracket'], - ['◊', '◊', true, 'lozenge'], - ['♠', '♠', true, 'black spade suit'], - ['♣', '♣', true, 'black club suit'], - ['♥', '♥', true, 'black heart suit'], - ['♦', '♦', true, 'black diamond suit'], - [' ', ' ', false,'en space'], - [' ', ' ', false,'em space'], - [' ', ' ', false,'thin space'], - ['‌', '‌', false,'zero width non-joiner'], - ['‍', '‍', false,'zero width joiner'], - ['‎', '‎', false,'left-to-right mark'], - ['‏', '‏', false,'right-to-left mark'], - ['­', '­', false,'soft hyphen'] -]; - -tinyMCEPopup.onInit.add(function() { - tinyMCEPopup.dom.setHTML('charmapView', renderCharMapHTML()); - addKeyboardNavigation(); -}); - -function addKeyboardNavigation(){ - var tableElm, cells, settings; - - cells = tinyMCEPopup.dom.select("a.charmaplink", "charmapgroup"); - - settings ={ - root: "charmapgroup", - items: cells - }; - cells[0].tabindex=0; - tinyMCEPopup.dom.addClass(cells[0], "mceFocus"); - if (tinymce.isGecko) { - cells[0].focus(); - } else { - setTimeout(function(){ - cells[0].focus(); - }, 100); - } - tinyMCEPopup.editor.windowManager.createInstance('tinymce.ui.KeyboardNavigation', settings, tinyMCEPopup.dom); -} - -function renderCharMapHTML() { - var charsPerRow = 20, tdWidth=20, tdHeight=20, i; - var html = '
    '+ - ''; - var cols=-1; - - for (i=0; i' - + '' - + charmap[i][1] - + ''; - if ((cols+1) % charsPerRow == 0) - html += ''; - } - } - - if (cols % charsPerRow > 0) { - var padd = charsPerRow - (cols % charsPerRow); - for (var i=0; i '; - } - - html += '
    '; - html = html.replace(/<\/tr>/g, ''); - - return html; -} - -function insertChar(chr) { - tinyMCEPopup.execCommand('mceInsertContent', false, '&#' + chr + ';'); - - // Refocus in window - if (tinyMCEPopup.isWindow) - window.focus(); - - tinyMCEPopup.editor.focus(); - tinyMCEPopup.close(); -} - -function previewChar(codeA, codeB, codeN) { - var elmA = document.getElementById('codeA'); - var elmB = document.getElementById('codeB'); - var elmV = document.getElementById('codeV'); - var elmN = document.getElementById('codeN'); - - if (codeA=='#160;') { - elmV.innerHTML = '__'; - } else { - elmV.innerHTML = '&' + codeA; - } - - elmB.innerHTML = '&' + codeA; - elmA.innerHTML = '&' + codeB; - elmN.innerHTML = codeN; -} diff --git a/askbot/skins/common/media/js/tinymce/themes/advanced/js/color_picker.js b/askbot/skins/common/media/js/tinymce/themes/advanced/js/color_picker.js deleted file mode 100644 index cc891c17..00000000 --- a/askbot/skins/common/media/js/tinymce/themes/advanced/js/color_picker.js +++ /dev/null @@ -1,345 +0,0 @@ -tinyMCEPopup.requireLangPack(); - -var detail = 50, strhex = "0123456789abcdef", i, isMouseDown = false, isMouseOver = false; - -var colors = [ - "#000000","#000033","#000066","#000099","#0000cc","#0000ff","#330000","#330033", - "#330066","#330099","#3300cc","#3300ff","#660000","#660033","#660066","#660099", - "#6600cc","#6600ff","#990000","#990033","#990066","#990099","#9900cc","#9900ff", - "#cc0000","#cc0033","#cc0066","#cc0099","#cc00cc","#cc00ff","#ff0000","#ff0033", - "#ff0066","#ff0099","#ff00cc","#ff00ff","#003300","#003333","#003366","#003399", - "#0033cc","#0033ff","#333300","#333333","#333366","#333399","#3333cc","#3333ff", - "#663300","#663333","#663366","#663399","#6633cc","#6633ff","#993300","#993333", - "#993366","#993399","#9933cc","#9933ff","#cc3300","#cc3333","#cc3366","#cc3399", - "#cc33cc","#cc33ff","#ff3300","#ff3333","#ff3366","#ff3399","#ff33cc","#ff33ff", - "#006600","#006633","#006666","#006699","#0066cc","#0066ff","#336600","#336633", - "#336666","#336699","#3366cc","#3366ff","#666600","#666633","#666666","#666699", - "#6666cc","#6666ff","#996600","#996633","#996666","#996699","#9966cc","#9966ff", - "#cc6600","#cc6633","#cc6666","#cc6699","#cc66cc","#cc66ff","#ff6600","#ff6633", - "#ff6666","#ff6699","#ff66cc","#ff66ff","#009900","#009933","#009966","#009999", - "#0099cc","#0099ff","#339900","#339933","#339966","#339999","#3399cc","#3399ff", - "#669900","#669933","#669966","#669999","#6699cc","#6699ff","#999900","#999933", - "#999966","#999999","#9999cc","#9999ff","#cc9900","#cc9933","#cc9966","#cc9999", - "#cc99cc","#cc99ff","#ff9900","#ff9933","#ff9966","#ff9999","#ff99cc","#ff99ff", - "#00cc00","#00cc33","#00cc66","#00cc99","#00cccc","#00ccff","#33cc00","#33cc33", - "#33cc66","#33cc99","#33cccc","#33ccff","#66cc00","#66cc33","#66cc66","#66cc99", - "#66cccc","#66ccff","#99cc00","#99cc33","#99cc66","#99cc99","#99cccc","#99ccff", - "#cccc00","#cccc33","#cccc66","#cccc99","#cccccc","#ccccff","#ffcc00","#ffcc33", - "#ffcc66","#ffcc99","#ffcccc","#ffccff","#00ff00","#00ff33","#00ff66","#00ff99", - "#00ffcc","#00ffff","#33ff00","#33ff33","#33ff66","#33ff99","#33ffcc","#33ffff", - "#66ff00","#66ff33","#66ff66","#66ff99","#66ffcc","#66ffff","#99ff00","#99ff33", - "#99ff66","#99ff99","#99ffcc","#99ffff","#ccff00","#ccff33","#ccff66","#ccff99", - "#ccffcc","#ccffff","#ffff00","#ffff33","#ffff66","#ffff99","#ffffcc","#ffffff" -]; - -var named = { - '#F0F8FF':'Alice Blue','#FAEBD7':'Antique White','#00FFFF':'Aqua','#7FFFD4':'Aquamarine','#F0FFFF':'Azure','#F5F5DC':'Beige', - '#FFE4C4':'Bisque','#000000':'Black','#FFEBCD':'Blanched Almond','#0000FF':'Blue','#8A2BE2':'Blue Violet','#A52A2A':'Brown', - '#DEB887':'Burly Wood','#5F9EA0':'Cadet Blue','#7FFF00':'Chartreuse','#D2691E':'Chocolate','#FF7F50':'Coral','#6495ED':'Cornflower Blue', - '#FFF8DC':'Cornsilk','#DC143C':'Crimson','#00FFFF':'Cyan','#00008B':'Dark Blue','#008B8B':'Dark Cyan','#B8860B':'Dark Golden Rod', - '#A9A9A9':'Dark Gray','#A9A9A9':'Dark Grey','#006400':'Dark Green','#BDB76B':'Dark Khaki','#8B008B':'Dark Magenta','#556B2F':'Dark Olive Green', - '#FF8C00':'Darkorange','#9932CC':'Dark Orchid','#8B0000':'Dark Red','#E9967A':'Dark Salmon','#8FBC8F':'Dark Sea Green','#483D8B':'Dark Slate Blue', - '#2F4F4F':'Dark Slate Gray','#2F4F4F':'Dark Slate Grey','#00CED1':'Dark Turquoise','#9400D3':'Dark Violet','#FF1493':'Deep Pink','#00BFFF':'Deep Sky Blue', - '#696969':'Dim Gray','#696969':'Dim Grey','#1E90FF':'Dodger Blue','#B22222':'Fire Brick','#FFFAF0':'Floral White','#228B22':'Forest Green', - '#FF00FF':'Fuchsia','#DCDCDC':'Gainsboro','#F8F8FF':'Ghost White','#FFD700':'Gold','#DAA520':'Golden Rod','#808080':'Gray','#808080':'Grey', - '#008000':'Green','#ADFF2F':'Green Yellow','#F0FFF0':'Honey Dew','#FF69B4':'Hot Pink','#CD5C5C':'Indian Red','#4B0082':'Indigo','#FFFFF0':'Ivory', - '#F0E68C':'Khaki','#E6E6FA':'Lavender','#FFF0F5':'Lavender Blush','#7CFC00':'Lawn Green','#FFFACD':'Lemon Chiffon','#ADD8E6':'Light Blue', - '#F08080':'Light Coral','#E0FFFF':'Light Cyan','#FAFAD2':'Light Golden Rod Yellow','#D3D3D3':'Light Gray','#D3D3D3':'Light Grey','#90EE90':'Light Green', - '#FFB6C1':'Light Pink','#FFA07A':'Light Salmon','#20B2AA':'Light Sea Green','#87CEFA':'Light Sky Blue','#778899':'Light Slate Gray','#778899':'Light Slate Grey', - '#B0C4DE':'Light Steel Blue','#FFFFE0':'Light Yellow','#00FF00':'Lime','#32CD32':'Lime Green','#FAF0E6':'Linen','#FF00FF':'Magenta','#800000':'Maroon', - '#66CDAA':'Medium Aqua Marine','#0000CD':'Medium Blue','#BA55D3':'Medium Orchid','#9370D8':'Medium Purple','#3CB371':'Medium Sea Green','#7B68EE':'Medium Slate Blue', - '#00FA9A':'Medium Spring Green','#48D1CC':'Medium Turquoise','#C71585':'Medium Violet Red','#191970':'Midnight Blue','#F5FFFA':'Mint Cream','#FFE4E1':'Misty Rose','#FFE4B5':'Moccasin', - '#FFDEAD':'Navajo White','#000080':'Navy','#FDF5E6':'Old Lace','#808000':'Olive','#6B8E23':'Olive Drab','#FFA500':'Orange','#FF4500':'Orange Red','#DA70D6':'Orchid', - '#EEE8AA':'Pale Golden Rod','#98FB98':'Pale Green','#AFEEEE':'Pale Turquoise','#D87093':'Pale Violet Red','#FFEFD5':'Papaya Whip','#FFDAB9':'Peach Puff', - '#CD853F':'Peru','#FFC0CB':'Pink','#DDA0DD':'Plum','#B0E0E6':'Powder Blue','#800080':'Purple','#FF0000':'Red','#BC8F8F':'Rosy Brown','#4169E1':'Royal Blue', - '#8B4513':'Saddle Brown','#FA8072':'Salmon','#F4A460':'Sandy Brown','#2E8B57':'Sea Green','#FFF5EE':'Sea Shell','#A0522D':'Sienna','#C0C0C0':'Silver', - '#87CEEB':'Sky Blue','#6A5ACD':'Slate Blue','#708090':'Slate Gray','#708090':'Slate Grey','#FFFAFA':'Snow','#00FF7F':'Spring Green', - '#4682B4':'Steel Blue','#D2B48C':'Tan','#008080':'Teal','#D8BFD8':'Thistle','#FF6347':'Tomato','#40E0D0':'Turquoise','#EE82EE':'Violet', - '#F5DEB3':'Wheat','#FFFFFF':'White','#F5F5F5':'White Smoke','#FFFF00':'Yellow','#9ACD32':'Yellow Green' -}; - -var namedLookup = {}; - -function init() { - var inputColor = convertRGBToHex(tinyMCEPopup.getWindowArg('input_color')), key, value; - - tinyMCEPopup.resizeToInnerSize(); - - generatePicker(); - generateWebColors(); - generateNamedColors(); - - if (inputColor) { - changeFinalColor(inputColor); - - col = convertHexToRGB(inputColor); - - if (col) - updateLight(col.r, col.g, col.b); - } - - for (key in named) { - value = named[key]; - namedLookup[value.replace(/\s+/, '').toLowerCase()] = key.replace(/#/, '').toLowerCase(); - } -} - -function toHexColor(color) { - var matches, red, green, blue, toInt = parseInt; - - function hex(value) { - value = parseInt(value).toString(16); - - return value.length > 1 ? value : '0' + value; // Padd with leading zero - }; - - color = tinymce.trim(color); - color = color.replace(/^[#]/, '').toLowerCase(); // remove leading '#' - color = namedLookup[color] || color; - - matches = /^rgb\((\d{1,3}),(\d{1,3}),(\d{1,3})\)$/.exec(color); - - if (matches) { - red = toInt(matches[1]); - green = toInt(matches[2]); - blue = toInt(matches[3]); - } else { - matches = /^([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/.exec(color); - - if (matches) { - red = toInt(matches[1], 16); - green = toInt(matches[2], 16); - blue = toInt(matches[3], 16); - } else { - matches = /^([0-9a-f])([0-9a-f])([0-9a-f])$/.exec(color); - - if (matches) { - red = toInt(matches[1] + matches[1], 16); - green = toInt(matches[2] + matches[2], 16); - blue = toInt(matches[3] + matches[3], 16); - } else { - return ''; - } - } - } - - return '#' + hex(red) + hex(green) + hex(blue); -} - -function insertAction() { - var color = document.getElementById("color").value, f = tinyMCEPopup.getWindowArg('func'); - - var hexColor = toHexColor(color); - - if (hexColor === '') { - var text = tinyMCEPopup.editor.getLang('advanced_dlg.invalid_color_value'); - tinyMCEPopup.alert(text + ': ' + color); - } - else { - tinyMCEPopup.restoreSelection(); - - if (f) - f(hexColor); - - tinyMCEPopup.close(); - } -} - -function showColor(color, name) { - if (name) - document.getElementById("colorname").innerHTML = name; - - document.getElementById("preview").style.backgroundColor = color; - document.getElementById("color").value = color.toUpperCase(); -} - -function convertRGBToHex(col) { - var re = new RegExp("rgb\\s*\\(\\s*([0-9]+).*,\\s*([0-9]+).*,\\s*([0-9]+).*\\)", "gi"); - - if (!col) - return col; - - var rgb = col.replace(re, "$1,$2,$3").split(','); - if (rgb.length == 3) { - r = parseInt(rgb[0]).toString(16); - g = parseInt(rgb[1]).toString(16); - b = parseInt(rgb[2]).toString(16); - - r = r.length == 1 ? '0' + r : r; - g = g.length == 1 ? '0' + g : g; - b = b.length == 1 ? '0' + b : b; - - return "#" + r + g + b; - } - - return col; -} - -function convertHexToRGB(col) { - if (col.indexOf('#') != -1) { - col = col.replace(new RegExp('[^0-9A-F]', 'gi'), ''); - - r = parseInt(col.substring(0, 2), 16); - g = parseInt(col.substring(2, 4), 16); - b = parseInt(col.substring(4, 6), 16); - - return {r : r, g : g, b : b}; - } - - return null; -} - -function generatePicker() { - var el = document.getElementById('light'), h = '', i; - - for (i = 0; i < detail; i++){ - h += '
    '; - } - - el.innerHTML = h; -} - -function generateWebColors() { - var el = document.getElementById('webcolors'), h = '', i; - - if (el.className == 'generated') - return; - - // TODO: VoiceOver doesn't seem to support legend as a label referenced by labelledby. - h += '
    ' - + ''; - - for (i=0; i' - + ''; - if (tinyMCEPopup.editor.forcedHighContrastMode) { - h += ''; - } - h += ''; - h += ''; - if ((i+1) % 18 == 0) - h += ''; - } - - h += '
    '; - - el.innerHTML = h; - el.className = 'generated'; - - paintCanvas(el); - enableKeyboardNavigation(el.firstChild); -} - -function paintCanvas(el) { - tinyMCEPopup.getWin().tinymce.each(tinyMCEPopup.dom.select('canvas.mceColorSwatch', el), function(canvas) { - var context; - if (canvas.getContext && (context = canvas.getContext("2d"))) { - context.fillStyle = canvas.getAttribute('data-color'); - context.fillRect(0, 0, 10, 10); - } - }); -} -function generateNamedColors() { - var el = document.getElementById('namedcolors'), h = '', n, v, i = 0; - - if (el.className == 'generated') - return; - - for (n in named) { - v = named[n]; - h += ''; - if (tinyMCEPopup.editor.forcedHighContrastMode) { - h += ''; - } - h += ''; - h += ''; - i++; - } - - el.innerHTML = h; - el.className = 'generated'; - - paintCanvas(el); - enableKeyboardNavigation(el); -} - -function enableKeyboardNavigation(el) { - tinyMCEPopup.editor.windowManager.createInstance('tinymce.ui.KeyboardNavigation', { - root: el, - items: tinyMCEPopup.dom.select('a', el) - }, tinyMCEPopup.dom); -} - -function dechex(n) { - return strhex.charAt(Math.floor(n / 16)) + strhex.charAt(n % 16); -} - -function computeColor(e) { - var x, y, partWidth, partDetail, imHeight, r, g, b, coef, i, finalCoef, finalR, finalG, finalB, pos = tinyMCEPopup.dom.getPos(e.target); - - x = e.offsetX ? e.offsetX : (e.target ? e.clientX - pos.x : 0); - y = e.offsetY ? e.offsetY : (e.target ? e.clientY - pos.y : 0); - - partWidth = document.getElementById('colors').width / 6; - partDetail = detail / 2; - imHeight = document.getElementById('colors').height; - - r = (x >= 0)*(x < partWidth)*255 + (x >= partWidth)*(x < 2*partWidth)*(2*255 - x * 255 / partWidth) + (x >= 4*partWidth)*(x < 5*partWidth)*(-4*255 + x * 255 / partWidth) + (x >= 5*partWidth)*(x < 6*partWidth)*255; - g = (x >= 0)*(x < partWidth)*(x * 255 / partWidth) + (x >= partWidth)*(x < 3*partWidth)*255 + (x >= 3*partWidth)*(x < 4*partWidth)*(4*255 - x * 255 / partWidth); - b = (x >= 2*partWidth)*(x < 3*partWidth)*(-2*255 + x * 255 / partWidth) + (x >= 3*partWidth)*(x < 5*partWidth)*255 + (x >= 5*partWidth)*(x < 6*partWidth)*(6*255 - x * 255 / partWidth); - - coef = (imHeight - y) / imHeight; - r = 128 + (r - 128) * coef; - g = 128 + (g - 128) * coef; - b = 128 + (b - 128) * coef; - - changeFinalColor('#' + dechex(r) + dechex(g) + dechex(b)); - updateLight(r, g, b); -} - -function updateLight(r, g, b) { - var i, partDetail = detail / 2, finalCoef, finalR, finalG, finalB, color; - - for (i=0; i=0) && (i'); - }, - - init : function() { - var f = document.forms[0], ed = tinyMCEPopup.editor; - - // Setup browse button - document.getElementById('srcbrowsercontainer').innerHTML = getBrowserHTML('srcbrowser','src','image','theme_advanced_image'); - if (isVisible('srcbrowser')) - document.getElementById('src').style.width = '180px'; - - e = ed.selection.getNode(); - - this.fillFileList('image_list', tinyMCEPopup.getParam('external_image_list', 'tinyMCEImageList')); - - if (e.nodeName == 'IMG') { - f.src.value = ed.dom.getAttrib(e, 'src'); - f.alt.value = ed.dom.getAttrib(e, 'alt'); - f.border.value = this.getAttrib(e, 'border'); - f.vspace.value = this.getAttrib(e, 'vspace'); - f.hspace.value = this.getAttrib(e, 'hspace'); - f.width.value = ed.dom.getAttrib(e, 'width'); - f.height.value = ed.dom.getAttrib(e, 'height'); - f.insert.value = ed.getLang('update'); - this.styleVal = ed.dom.getAttrib(e, 'style'); - selectByValue(f, 'image_list', f.src.value); - selectByValue(f, 'align', this.getAttrib(e, 'align')); - this.updateStyle(); - } - }, - - fillFileList : function(id, l) { - var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl; - - l = typeof(l) === 'function' ? l() : window[l]; - - if (l && l.length > 0) { - lst.options[lst.options.length] = new Option('', ''); - - tinymce.each(l, function(o) { - lst.options[lst.options.length] = new Option(o[0], o[1]); - }); - } else - dom.remove(dom.getParent(id, 'tr')); - }, - - update : function() { - var f = document.forms[0], nl = f.elements, ed = tinyMCEPopup.editor, args = {}, el; - - tinyMCEPopup.restoreSelection(); - - if (f.src.value === '') { - if (ed.selection.getNode().nodeName == 'IMG') { - ed.dom.remove(ed.selection.getNode()); - ed.execCommand('mceRepaint'); - } - - tinyMCEPopup.close(); - return; - } - - if (!ed.settings.inline_styles) { - args = tinymce.extend(args, { - vspace : nl.vspace.value, - hspace : nl.hspace.value, - border : nl.border.value, - align : getSelectValue(f, 'align') - }); - } else - args.style = this.styleVal; - - tinymce.extend(args, { - src : f.src.value.replace(/ /g, '%20'), - alt : f.alt.value, - width : f.width.value, - height : f.height.value - }); - - el = ed.selection.getNode(); - - if (el && el.nodeName == 'IMG') { - ed.dom.setAttribs(el, args); - tinyMCEPopup.editor.execCommand('mceRepaint'); - tinyMCEPopup.editor.focus(); - } else { - tinymce.each(args, function(value, name) { - if (value === "") { - delete args[name]; - } - }); - - ed.execCommand('mceInsertContent', false, tinyMCEPopup.editor.dom.createHTML('img', args), {skip_undo : 1}); - ed.undoManager.add(); - } - - tinyMCEPopup.close(); - }, - - updateStyle : function() { - var dom = tinyMCEPopup.dom, st = {}, v, f = document.forms[0]; - - if (tinyMCEPopup.editor.settings.inline_styles) { - tinymce.each(tinyMCEPopup.dom.parseStyle(this.styleVal), function(value, key) { - st[key] = value; - }); - - // Handle align - v = getSelectValue(f, 'align'); - if (v) { - if (v == 'left' || v == 'right') { - st['float'] = v; - delete st['vertical-align']; - } else { - st['vertical-align'] = v; - delete st['float']; - } - } else { - delete st['float']; - delete st['vertical-align']; - } - - // Handle border - v = f.border.value; - if (v || v == '0') { - if (v == '0') - st['border'] = '0'; - else - st['border'] = v + 'px solid black'; - } else - delete st['border']; - - // Handle hspace - v = f.hspace.value; - if (v) { - delete st['margin']; - st['margin-left'] = v + 'px'; - st['margin-right'] = v + 'px'; - } else { - delete st['margin-left']; - delete st['margin-right']; - } - - // Handle vspace - v = f.vspace.value; - if (v) { - delete st['margin']; - st['margin-top'] = v + 'px'; - st['margin-bottom'] = v + 'px'; - } else { - delete st['margin-top']; - delete st['margin-bottom']; - } - - // Merge - st = tinyMCEPopup.dom.parseStyle(dom.serializeStyle(st), 'img'); - this.styleVal = dom.serializeStyle(st, 'img'); - } - }, - - getAttrib : function(e, at) { - var ed = tinyMCEPopup.editor, dom = ed.dom, v, v2; - - if (ed.settings.inline_styles) { - switch (at) { - case 'align': - if (v = dom.getStyle(e, 'float')) - return v; - - if (v = dom.getStyle(e, 'vertical-align')) - return v; - - break; - - case 'hspace': - v = dom.getStyle(e, 'margin-left') - v2 = dom.getStyle(e, 'margin-right'); - if (v && v == v2) - return parseInt(v.replace(/[^0-9]/g, '')); - - break; - - case 'vspace': - v = dom.getStyle(e, 'margin-top') - v2 = dom.getStyle(e, 'margin-bottom'); - if (v && v == v2) - return parseInt(v.replace(/[^0-9]/g, '')); - - break; - - case 'border': - v = 0; - - tinymce.each(['top', 'right', 'bottom', 'left'], function(sv) { - sv = dom.getStyle(e, 'border-' + sv + '-width'); - - // False or not the same as prev - if (!sv || (sv != v && v !== 0)) { - v = 0; - return false; - } - - if (sv) - v = sv; - }); - - if (v) - return parseInt(v.replace(/[^0-9]/g, '')); - - break; - } - } - - if (v = dom.getAttrib(e, at)) - return v; - - return ''; - }, - - resetImageData : function() { - var f = document.forms[0]; - - f.width.value = f.height.value = ""; - }, - - updateImageData : function() { - var f = document.forms[0], t = ImageDialog; - - if (f.width.value == "") - f.width.value = t.preloadImg.width; - - if (f.height.value == "") - f.height.value = t.preloadImg.height; - }, - - getImageData : function() { - var f = document.forms[0]; - - this.preloadImg = new Image(); - this.preloadImg.onload = this.updateImageData; - this.preloadImg.onerror = this.resetImageData; - this.preloadImg.src = tinyMCEPopup.editor.documentBaseURI.toAbsolute(f.src.value); - } -}; - -ImageDialog.preInit(); -tinyMCEPopup.onInit.add(ImageDialog.init, ImageDialog); diff --git a/askbot/skins/common/media/js/tinymce/themes/advanced/js/link.js b/askbot/skins/common/media/js/tinymce/themes/advanced/js/link.js deleted file mode 100644 index 8c1d73c5..00000000 --- a/askbot/skins/common/media/js/tinymce/themes/advanced/js/link.js +++ /dev/null @@ -1,159 +0,0 @@ -tinyMCEPopup.requireLangPack(); - -var LinkDialog = { - preInit : function() { - var url; - - if (url = tinyMCEPopup.getParam("external_link_list_url")) - document.write(''); - }, - - init : function() { - var f = document.forms[0], ed = tinyMCEPopup.editor; - - // Setup browse button - document.getElementById('hrefbrowsercontainer').innerHTML = getBrowserHTML('hrefbrowser', 'href', 'file', 'theme_advanced_link'); - if (isVisible('hrefbrowser')) - document.getElementById('href').style.width = '180px'; - - this.fillClassList('class_list'); - this.fillFileList('link_list', 'tinyMCELinkList'); - this.fillTargetList('target_list'); - - if (e = ed.dom.getParent(ed.selection.getNode(), 'A')) { - f.href.value = ed.dom.getAttrib(e, 'href'); - f.linktitle.value = ed.dom.getAttrib(e, 'title'); - f.insert.value = ed.getLang('update'); - selectByValue(f, 'link_list', f.href.value); - selectByValue(f, 'target_list', ed.dom.getAttrib(e, 'target')); - selectByValue(f, 'class_list', ed.dom.getAttrib(e, 'class')); - } - }, - - update : function() { - var f = document.forms[0], ed = tinyMCEPopup.editor, e, b, href = f.href.value.replace(/ /g, '%20'); - - tinyMCEPopup.restoreSelection(); - e = ed.dom.getParent(ed.selection.getNode(), 'A'); - - // Remove element if there is no href - if (!f.href.value) { - if (e) { - b = ed.selection.getBookmark(); - ed.dom.remove(e, 1); - ed.selection.moveToBookmark(b); - tinyMCEPopup.execCommand("mceEndUndoLevel"); - tinyMCEPopup.close(); - return; - } - } - - // Create new anchor elements - if (e == null) { - ed.getDoc().execCommand("unlink", false, null); - tinyMCEPopup.execCommand("mceInsertLink", false, "#mce_temp_url#", {skip_undo : 1}); - - tinymce.each(ed.dom.select("a"), function(n) { - if (ed.dom.getAttrib(n, 'href') == '#mce_temp_url#') { - e = n; - - ed.dom.setAttribs(e, { - href : href, - title : f.linktitle.value, - target : f.target_list ? getSelectValue(f, "target_list") : null, - 'class' : f.class_list ? getSelectValue(f, "class_list") : null - }); - } - }); - } else { - ed.dom.setAttribs(e, { - href : href, - title : f.linktitle.value - }); - - if (f.target_list) { - ed.dom.setAttrib(e, 'target', getSelectValue(f, "target_list")); - } - - if (f.class_list) { - ed.dom.setAttrib(e, 'class', getSelectValue(f, "class_list")); - } - } - - // Don't move caret if selection was image - if (e.childNodes.length != 1 || e.firstChild.nodeName != 'IMG') { - ed.focus(); - ed.selection.select(e); - ed.selection.collapse(0); - tinyMCEPopup.storeSelection(); - } - - tinyMCEPopup.execCommand("mceEndUndoLevel"); - tinyMCEPopup.close(); - }, - - checkPrefix : function(n) { - if (n.value && Validator.isEmail(n) && !/^\s*mailto:/i.test(n.value) && confirm(tinyMCEPopup.getLang('advanced_dlg.link_is_email'))) - n.value = 'mailto:' + n.value; - - if (/^\s*www\./i.test(n.value) && confirm(tinyMCEPopup.getLang('advanced_dlg.link_is_external'))) - n.value = 'http://' + n.value; - }, - - fillFileList : function(id, l) { - var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl; - - l = window[l]; - - if (l && l.length > 0) { - lst.options[lst.options.length] = new Option('', ''); - - tinymce.each(l, function(o) { - lst.options[lst.options.length] = new Option(o[0], o[1]); - }); - } else - dom.remove(dom.getParent(id, 'tr')); - }, - - fillClassList : function(id) { - var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl; - - if (v = tinyMCEPopup.getParam('theme_advanced_styles')) { - cl = []; - - tinymce.each(v.split(';'), function(v) { - var p = v.split('='); - - cl.push({'title' : p[0], 'class' : p[1]}); - }); - } else - cl = tinyMCEPopup.editor.dom.getClasses(); - - if (cl.length > 0) { - lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('not_set'), ''); - - tinymce.each(cl, function(o) { - lst.options[lst.options.length] = new Option(o.title || o['class'], o['class']); - }); - } else - dom.remove(dom.getParent(id, 'tr')); - }, - - fillTargetList : function(id) { - var dom = tinyMCEPopup.dom, lst = dom.get(id), v; - - lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('not_set'), ''); - lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('advanced_dlg.link_target_same'), '_self'); - lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('advanced_dlg.link_target_blank'), '_blank'); - - if (v = tinyMCEPopup.getParam('theme_advanced_link_targets')) { - tinymce.each(v.split(','), function(v) { - v = v.split('='); - lst.options[lst.options.length] = new Option(v[0], v[1]); - }); - } - } -}; - -LinkDialog.preInit(); -tinyMCEPopup.onInit.add(LinkDialog.init, LinkDialog); diff --git a/askbot/skins/common/media/js/tinymce/themes/advanced/js/source_editor.js b/askbot/skins/common/media/js/tinymce/themes/advanced/js/source_editor.js deleted file mode 100644 index dd5e366f..00000000 --- a/askbot/skins/common/media/js/tinymce/themes/advanced/js/source_editor.js +++ /dev/null @@ -1,78 +0,0 @@ -tinyMCEPopup.requireLangPack(); -tinyMCEPopup.onInit.add(onLoadInit); - -function saveContent() { - tinyMCEPopup.editor.setContent(document.getElementById('htmlSource').value, {source_view : true}); - tinyMCEPopup.close(); -} - -function onLoadInit() { - tinyMCEPopup.resizeToInnerSize(); - - // Remove Gecko spellchecking - if (tinymce.isGecko) - document.body.spellcheck = tinyMCEPopup.editor.getParam("gecko_spellcheck"); - - document.getElementById('htmlSource').value = tinyMCEPopup.editor.getContent({source_view : true}); - - if (tinyMCEPopup.editor.getParam("theme_advanced_source_editor_wrap", true)) { - turnWrapOn(); - document.getElementById('wraped').checked = true; - } - - resizeInputs(); -} - -function setWrap(val) { - var v, n, s = document.getElementById('htmlSource'); - - s.wrap = val; - - if (!tinymce.isIE) { - v = s.value; - n = s.cloneNode(false); - n.setAttribute("wrap", val); - s.parentNode.replaceChild(n, s); - n.value = v; - } -} - -function setWhiteSpaceCss(value) { - var el = document.getElementById('htmlSource'); - tinymce.DOM.setStyle(el, 'white-space', value); -} - -function turnWrapOff() { - if (tinymce.isWebKit) { - setWhiteSpaceCss('pre'); - } else { - setWrap('off'); - } -} - -function turnWrapOn() { - if (tinymce.isWebKit) { - setWhiteSpaceCss('pre-wrap'); - } else { - setWrap('soft'); - } -} - -function toggleWordWrap(elm) { - if (elm.checked) { - turnWrapOn(); - } else { - turnWrapOff(); - } -} - -function resizeInputs() { - var vp = tinyMCEPopup.dom.getViewPort(window), el; - - el = document.getElementById('htmlSource'); - - if (el) { - el.style.width = (vp.w - 20) + 'px'; - el.style.height = (vp.h - 65) + 'px'; - } -} diff --git a/askbot/skins/common/media/js/tinymce/themes/advanced/langs/en.js b/askbot/skins/common/media/js/tinymce/themes/advanced/langs/en.js deleted file mode 100644 index 6e584818..00000000 --- a/askbot/skins/common/media/js/tinymce/themes/advanced/langs/en.js +++ /dev/null @@ -1 +0,0 @@ -tinyMCE.addI18n('en.advanced',{"underline_desc":"Underline (Ctrl+U)","italic_desc":"Italic (Ctrl+I)","bold_desc":"Bold (Ctrl+B)",dd:"Definition Description",dt:"Definition Term ",samp:"Code Sample",code:"Code",blockquote:"Block Quote",h6:"Heading 6",h5:"Heading 5",h4:"Heading 4",h3:"Heading 3",h2:"Heading 2",h1:"Heading 1",pre:"Preformatted",address:"Address",div:"DIV",paragraph:"Paragraph",block:"Format",fontdefault:"Font Family","font_size":"Font Size","style_select":"Styles","anchor_delta_height":"","anchor_delta_width":"","charmap_delta_height":"","charmap_delta_width":"","colorpicker_delta_height":"","colorpicker_delta_width":"","link_delta_height":"","link_delta_width":"","image_delta_height":"","image_delta_width":"","more_colors":"More Colors...","toolbar_focus":"Jump to tool buttons - Alt+Q, Jump to editor - Alt-Z, Jump to element path - Alt-X",newdocument:"Are you sure you want clear all contents?",path:"Path","clipboard_msg":"Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?","blockquote_desc":"Block Quote","help_desc":"Help","newdocument_desc":"New Document","image_props_desc":"Image Properties","paste_desc":"Paste (Ctrl+V)","copy_desc":"Copy (Ctrl+C)","cut_desc":"Cut (Ctrl+X)","anchor_desc":"Insert/Edit Anchor","visualaid_desc":"show/Hide Guidelines/Invisible Elements","charmap_desc":"Insert Special Character","backcolor_desc":"Select Background Color","forecolor_desc":"Select Text Color","custom1_desc":"Your Custom Description Here","removeformat_desc":"Remove Formatting","hr_desc":"Insert Horizontal Line","sup_desc":"Superscript","sub_desc":"Subscript","code_desc":"Edit HTML Source","cleanup_desc":"Cleanup Messy Code","image_desc":"Insert/Edit Image","unlink_desc":"Unlink","link_desc":"Insert/Edit Link","redo_desc":"Redo (Ctrl+Y)","undo_desc":"Undo (Ctrl+Z)","indent_desc":"Increase Indent","outdent_desc":"Decrease Indent","numlist_desc":"Insert/Remove Numbered List","bullist_desc":"Insert/Remove Bulleted List","justifyfull_desc":"Align Full","justifyright_desc":"Align Right","justifycenter_desc":"Align Center","justifyleft_desc":"Align Left","striketrough_desc":"Strikethrough","help_shortcut":"Press ALT-F10 for toolbar. Press ALT-0 for help","rich_text_area":"Rich Text Area","shortcuts_desc":"Accessability Help",toolbar:"Toolbar"}); \ No newline at end of file diff --git a/askbot/skins/common/media/js/tinymce/themes/advanced/langs/en_dlg.js b/askbot/skins/common/media/js/tinymce/themes/advanced/langs/en_dlg.js deleted file mode 100644 index 50cd87e3..00000000 --- a/askbot/skins/common/media/js/tinymce/themes/advanced/langs/en_dlg.js +++ /dev/null @@ -1 +0,0 @@ -tinyMCE.addI18n('en.advanced_dlg', {"link_list":"Link List","link_is_external":"The URL you entered seems to be an external link. Do you want to add the required http:// prefix?","link_is_email":"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?","link_titlefield":"Title","link_target_blank":"Open Link in a New Window","link_target_same":"Open Link in the Same Window","link_target":"Target","link_url":"Link URL","link_title":"Insert/Edit Link","image_align_right":"Right","image_align_left":"Left","image_align_textbottom":"Text Bottom","image_align_texttop":"Text Top","image_align_bottom":"Bottom","image_align_middle":"Middle","image_align_top":"Top","image_align_baseline":"Baseline","image_align":"Alignment","image_hspace":"Horizontal Space","image_vspace":"Vertical Space","image_dimensions":"Dimensions","image_alt":"Image Description","image_list":"Image List","image_border":"Border","image_src":"Image URL","image_title":"Insert/Edit Image","charmap_title":"Select Special Character", "charmap_usage":"Use left and right arrows to navigate.","colorpicker_name":"Name:","colorpicker_color":"Color:","colorpicker_named_title":"Named Colors","colorpicker_named_tab":"Named","colorpicker_palette_title":"Palette Colors","colorpicker_palette_tab":"Palette","colorpicker_picker_title":"Color Picker","colorpicker_picker_tab":"Picker","colorpicker_title":"Select a Color","code_wordwrap":"Word Wrap","code_title":"HTML Source Editor","anchor_name":"Anchor Name","anchor_title":"Insert/Edit Anchor","about_loaded":"Loaded Plugins","about_version":"Version","about_author":"Author","about_plugin":"Plugin","about_plugins":"Plugins","about_license":"License","about_help":"Help","about_general":"About","about_title":"About TinyMCE","anchor_invalid":"Please specify a valid anchor name.","accessibility_help":"Accessibility Help","accessibility_usage_title":"General Usage","invalid_color_value":"Invalid color value","":""}); diff --git a/askbot/skins/common/media/js/tinymce/themes/advanced/link.htm b/askbot/skins/common/media/js/tinymce/themes/advanced/link.htm deleted file mode 100644 index 5d9dea9b..00000000 --- a/askbot/skins/common/media/js/tinymce/themes/advanced/link.htm +++ /dev/null @@ -1,57 +0,0 @@ - - - - {#advanced_dlg.link_title} - - - - - - - -
    - - -
    -
    - - - - - - - - - - - - - - - - - - - - - -
    - - - - -
     
    -
    -
    - -
    - - -
    -
    - - diff --git a/askbot/skins/common/media/js/tinymce/themes/advanced/shortcuts.htm b/askbot/skins/common/media/js/tinymce/themes/advanced/shortcuts.htm deleted file mode 100644 index 20ec2f5a..00000000 --- a/askbot/skins/common/media/js/tinymce/themes/advanced/shortcuts.htm +++ /dev/null @@ -1,47 +0,0 @@ - - - - {#advanced_dlg.accessibility_help} - - - - -

    {#advanced_dlg.accessibility_usage_title}

    -

    Toolbars

    -

    Press ALT-F10 to move focus to the toolbars. Navigate through the buttons using the arrow keys. - Press enter to activate a button and return focus to the editor. - Press escape to return focus to the editor without performing any actions.

    - -

    Status Bar

    -

    To access the editor status bar, press ALT-F11. Use the left and right arrow keys to navigate between elements in the path. - Press enter or space to select an element. Press escape to return focus to the editor without changing the selection.

    - -

    Context Menu

    -

    Press shift-F10 to activate the context menu. Use the up and down arrow keys to move between menu items. To open sub-menus press the right arrow key. - To close submenus press the left arrow key. Press escape to close the context menu.

    - -

    Keyboard Shortcuts

    - - - - - - - - - - - - - - - - - - - - - -
    KeystrokeFunction
    Control-BBold
    Control-IItalic
    Control-ZUndo
    Control-YRedo
    - - diff --git a/askbot/skins/common/media/js/tinymce/themes/advanced/skins/default/content.css b/askbot/skins/common/media/js/tinymce/themes/advanced/skins/default/content.css deleted file mode 100644 index 2fd94a1f..00000000 --- a/askbot/skins/common/media/js/tinymce/themes/advanced/skins/default/content.css +++ /dev/null @@ -1,50 +0,0 @@ -body, td, pre {color:#000; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px; margin:8px;} -body {background:#FFF;} -body.mceForceColors {background:#FFF; color:#000;} -body.mceBrowserDefaults {background:transparent; color:inherit; font-size:inherit; font-family:inherit;} -h1 {font-size: 2em} -h2 {font-size: 1.5em} -h3 {font-size: 1.17em} -h4 {font-size: 1em} -h5 {font-size: .83em} -h6 {font-size: .75em} -.mceItemTable, .mceItemTable td, .mceItemTable th, .mceItemTable caption, .mceItemVisualAid {border: 1px dashed #BBB;} -a.mceItemAnchor {display:inline-block; -webkit-user-select:all; -webkit-user-modify:read-only; -moz-user-select:all; -moz-user-modify:read-only; width:11px !important; height:11px !important; background:url(img/items.gif) no-repeat center center} -span.mceItemNbsp {background: #DDD} -td.mceSelected, th.mceSelected {background-color:#3399ff !important} -img {border:0;} -table, img, hr, .mceItemAnchor {cursor:default} -table td, table th {cursor:text} -ins {border-bottom:1px solid green; text-decoration: none; color:green} -del {color:red; text-decoration:line-through} -cite {border-bottom:1px dashed blue} -acronym {border-bottom:1px dotted #CCC; cursor:help} -abbr {border-bottom:1px dashed #CCC; cursor:help} - -/* IE */ -* html body { -scrollbar-3dlight-color:#F0F0EE; -scrollbar-arrow-color:#676662; -scrollbar-base-color:#F0F0EE; -scrollbar-darkshadow-color:#DDD; -scrollbar-face-color:#E0E0DD; -scrollbar-highlight-color:#F0F0EE; -scrollbar-shadow-color:#F0F0EE; -scrollbar-track-color:#F5F5F5; -} - -img:-moz-broken {-moz-force-broken-image-icon:1; width:24px; height:24px} -font[face=mceinline] {font-family:inherit !important} -*[contentEditable]:focus {outline:0} - -.mceItemMedia {border:1px dotted #cc0000; background-position:center; background-repeat:no-repeat; background-color:#ffffcc} -.mceItemShockWave {background-image:url(../../img/shockwave.gif)} -.mceItemFlash {background-image:url(../../img/flash.gif)} -.mceItemQuickTime {background-image:url(../../img/quicktime.gif)} -.mceItemWindowsMedia {background-image:url(../../img/windowsmedia.gif)} -.mceItemRealMedia {background-image:url(../../img/realmedia.gif)} -.mceItemVideo {background-image:url(../../img/video.gif)} -.mceItemAudio {background-image:url(../../img/video.gif)} -.mceItemEmbeddedAudio {background-image:url(../../img/video.gif)} -.mceItemIframe {background-image:url(../../img/iframe.gif)} -.mcePageBreak {display:block;border:0;width:100%;height:12px;border-top:1px dotted #ccc;margin-top:15px;background:#fff url(../../img/pagebreak.gif) no-repeat center top;} diff --git a/askbot/skins/common/media/js/tinymce/themes/advanced/skins/default/dialog.css b/askbot/skins/common/media/js/tinymce/themes/advanced/skins/default/dialog.css deleted file mode 100644 index 879786fc..00000000 --- a/askbot/skins/common/media/js/tinymce/themes/advanced/skins/default/dialog.css +++ /dev/null @@ -1,118 +0,0 @@ -/* Generic */ -body { -font-family:Verdana, Arial, Helvetica, sans-serif; font-size:11px; -scrollbar-3dlight-color:#F0F0EE; -scrollbar-arrow-color:#676662; -scrollbar-base-color:#F0F0EE; -scrollbar-darkshadow-color:#DDDDDD; -scrollbar-face-color:#E0E0DD; -scrollbar-highlight-color:#F0F0EE; -scrollbar-shadow-color:#F0F0EE; -scrollbar-track-color:#F5F5F5; -background:#F0F0EE; -padding:0; -margin:8px 8px 0 8px; -} - -html {background:#F0F0EE;} -td {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;} -textarea {resize:none;outline:none;} -a:link, a:visited {color:black;} -a:hover {color:#2B6FB6;} -.nowrap {white-space: nowrap} - -/* Forms */ -fieldset {margin:0; padding:4px; border:1px solid #919B9C; font-family:Verdana, Arial; font-size:10px;} -legend {color:#2B6FB6; font-weight:bold;} -label.msg {display:none;} -label.invalid {color:#EE0000; display:inline;} -input.invalid {border:1px solid #EE0000;} -input {background:#FFF; border:1px solid #CCC;} -input, select, textarea {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;} -input, select, textarea {border:1px solid #808080;} -input.radio {border:1px none #000000; background:transparent; vertical-align:middle;} -input.checkbox {border:1px none #000000; background:transparent; vertical-align:middle;} -.input_noborder {border:0;} - -/* Buttons */ -#insert, #cancel, input.button, .updateButton { -border:0; margin:0; padding:0; -font-weight:bold; -width:94px; height:26px; -background:url(img/buttons.png) 0 -26px; -cursor:pointer; -padding-bottom:2px; -float:left; -} - -#insert {background:url(img/buttons.png) 0 -52px} -#cancel {background:url(img/buttons.png) 0 0; float:right} - -/* Browse */ -a.pickcolor, a.browse {text-decoration:none} -a.browse span {display:block; width:20px; height:18px; background:url(../../img/icons.gif) -860px 0; border:1px solid #FFF; margin-left:1px;} -.mceOldBoxModel a.browse span {width:22px; height:20px;} -a.browse:hover span {border:1px solid #0A246A; background-color:#B2BBD0;} -a.browse span.disabled {border:1px solid white; opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)} -a.browse:hover span.disabled {border:1px solid white; background-color:transparent;} -a.pickcolor span {display:block; width:20px; height:16px; background:url(../../img/icons.gif) -840px 0; margin-left:2px;} -.mceOldBoxModel a.pickcolor span {width:21px; height:17px;} -a.pickcolor:hover span {background-color:#B2BBD0;} -a.pickcolor:hover span.disabled {} - -/* Charmap */ -table.charmap {border:1px solid #AAA; text-align:center} -td.charmap, #charmap a {width:18px; height:18px; color:#000; border:1px solid #AAA; text-align:center; font-size:12px; vertical-align:middle; line-height: 18px;} -#charmap a {display:block; color:#000; text-decoration:none; border:0} -#charmap a:hover {background:#CCC;color:#2B6FB6} -#charmap #codeN {font-size:10px; font-family:Arial,Helvetica,sans-serif; text-align:center} -#charmap #codeV {font-size:40px; height:80px; border:1px solid #AAA; text-align:center} - -/* Source */ -.wordWrapCode {vertical-align:middle; border:1px none #000000; background:transparent;} -.mceActionPanel {margin-top:5px;} - -/* Tabs classes */ -.tabs {width:100%; height:18px; line-height:normal; background:url(img/tabs.gif) repeat-x 0 -72px;} -.tabs ul {margin:0; padding:0; list-style:none;} -.tabs li {float:left; background:url(img/tabs.gif) no-repeat 0 0; margin:0 2px 0 0; padding:0 0 0 10px; line-height:17px; height:18px; display:block;} -.tabs li.current {background:url(img/tabs.gif) no-repeat 0 -18px; margin-right:2px;} -.tabs span {float:left; display:block; background:url(img/tabs.gif) no-repeat right -36px; padding:0px 10px 0 0;} -.tabs .current span {background:url(img/tabs.gif) no-repeat right -54px;} -.tabs a {text-decoration:none; font-family:Verdana, Arial; font-size:10px;} -.tabs a:link, .tabs a:visited, .tabs a:hover {color:black;} - -/* Panels */ -.panel_wrapper div.panel {display:none;} -.panel_wrapper div.current {display:block; width:100%; height:300px; overflow:visible;} -.panel_wrapper {border:1px solid #919B9C; border-top:0px; padding:10px; padding-top:5px; clear:both; background:white;} - -/* Columns */ -.column {float:left;} -.properties {width:100%;} -.properties .column1 {} -.properties .column2 {text-align:left;} - -/* Titles */ -h1, h2, h3, h4 {color:#2B6FB6; margin:0; padding:0; padding-top:5px;} -h3 {font-size:14px;} -.title {font-size:12px; font-weight:bold; color:#2B6FB6;} - -/* Dialog specific */ -#link .panel_wrapper, #link div.current {height:125px;} -#image .panel_wrapper, #image div.current {height:200px;} -#plugintable thead {font-weight:bold; background:#DDD;} -#plugintable, #about #plugintable td {border:1px solid #919B9C;} -#plugintable {width:96%; margin-top:10px;} -#pluginscontainer {height:290px; overflow:auto;} -#colorpicker #preview {display:inline-block; padding-left:40px; height:14px; border:1px solid black; margin-left:5px; margin-right: 5px} -#colorpicker #previewblock {position: relative; top: -3px; padding-left:5px; padding-top: 0px; display:inline} -#colorpicker #preview_wrapper { text-align:center; padding-top:4px; white-space: nowrap} -#colorpicker #colors {float:left; border:1px solid gray; cursor:crosshair;} -#colorpicker #light {border:1px solid gray; margin-left:5px; float:left;width:15px; height:150px; cursor:crosshair;} -#colorpicker #light div {overflow:hidden;} -#colorpicker .panel_wrapper div.current {height:175px;} -#colorpicker #namedcolors {width:150px;} -#colorpicker #namedcolors a {display:block; float:left; width:10px; height:10px; margin:1px 1px 0 0; overflow:hidden;} -#colorpicker #colornamecontainer {margin-top:5px;} -#colorpicker #picker_panel fieldset {margin:auto;width:325px;} diff --git a/askbot/skins/common/media/js/tinymce/themes/advanced/skins/default/img/buttons.png b/askbot/skins/common/media/js/tinymce/themes/advanced/skins/default/img/buttons.png deleted file mode 100644 index 1e53560e..00000000 Binary files a/askbot/skins/common/media/js/tinymce/themes/advanced/skins/default/img/buttons.png and /dev/null differ diff --git a/askbot/skins/common/media/js/tinymce/themes/advanced/skins/default/img/items.gif b/askbot/skins/common/media/js/tinymce/themes/advanced/skins/default/img/items.gif deleted file mode 100644 index d2f93671..00000000 Binary files a/askbot/skins/common/media/js/tinymce/themes/advanced/skins/default/img/items.gif and /dev/null differ diff --git a/askbot/skins/common/media/js/tinymce/themes/advanced/skins/default/img/menu_arrow.gif b/askbot/skins/common/media/js/tinymce/themes/advanced/skins/default/img/menu_arrow.gif deleted file mode 100644 index 85e31dfb..00000000 Binary files a/askbot/skins/common/media/js/tinymce/themes/advanced/skins/default/img/menu_arrow.gif and /dev/null differ diff --git a/askbot/skins/common/media/js/tinymce/themes/advanced/skins/default/img/menu_check.gif b/askbot/skins/common/media/js/tinymce/themes/advanced/skins/default/img/menu_check.gif deleted file mode 100644 index adfdddcc..00000000 Binary files a/askbot/skins/common/media/js/tinymce/themes/advanced/skins/default/img/menu_check.gif and /dev/null differ diff --git a/askbot/skins/common/media/js/tinymce/themes/advanced/skins/default/img/progress.gif b/askbot/skins/common/media/js/tinymce/themes/advanced/skins/default/img/progress.gif deleted file mode 100644 index 5bb90fd6..00000000 Binary files a/askbot/skins/common/media/js/tinymce/themes/advanced/skins/default/img/progress.gif and /dev/null differ diff --git a/askbot/skins/common/media/js/tinymce/themes/advanced/skins/default/img/tabs.gif b/askbot/skins/common/media/js/tinymce/themes/advanced/skins/default/img/tabs.gif deleted file mode 100644 index 06812cb4..00000000 Binary files a/askbot/skins/common/media/js/tinymce/themes/advanced/skins/default/img/tabs.gif and /dev/null differ diff --git a/askbot/skins/common/media/js/tinymce/themes/advanced/skins/default/ui.css b/askbot/skins/common/media/js/tinymce/themes/advanced/skins/default/ui.css deleted file mode 100644 index 77083f31..00000000 --- a/askbot/skins/common/media/js/tinymce/themes/advanced/skins/default/ui.css +++ /dev/null @@ -1,219 +0,0 @@ -/* Reset */ -.defaultSkin table, .defaultSkin tbody, .defaultSkin a, .defaultSkin img, .defaultSkin tr, .defaultSkin div, .defaultSkin td, .defaultSkin iframe, .defaultSkin span, .defaultSkin *, .defaultSkin .mceText {border:0; margin:0; padding:0; background:transparent; white-space:nowrap; text-decoration:none; font-weight:normal; cursor:default; color:#000; vertical-align:baseline; width:auto; border-collapse:separate; text-align:left} -.defaultSkin a:hover, .defaultSkin a:link, .defaultSkin a:visited, .defaultSkin a:active {text-decoration:none; font-weight:normal; cursor:default; color:#000} -.defaultSkin table td {vertical-align:middle} - -/* Containers */ -.defaultSkin table {direction:ltr;background:transparent} -.defaultSkin iframe {display:block;} -.defaultSkin .mceToolbar {height:26px} -.defaultSkin .mceLeft {text-align:left} -.defaultSkin .mceRight {text-align:right} - -/* External */ -.defaultSkin .mceExternalToolbar {position:absolute; border:1px solid #CCC; border-bottom:0; display:none;} -.defaultSkin .mceExternalToolbar td.mceToolbar {padding-right:13px;} -.defaultSkin .mceExternalClose {position:absolute; top:3px; right:3px; width:7px; height:7px; background:url(../../img/icons.gif) -820px 0} - -/* Layout */ -.defaultSkin table.mceLayout {border:0; border-left:1px solid #CCC; border-right:1px solid #CCC} -.defaultSkin table.mceLayout tr.mceFirst td {border-top:1px solid #CCC} -.defaultSkin table.mceLayout tr.mceLast td {border-bottom:1px solid #CCC} -.defaultSkin table.mceToolbar, .defaultSkin tr.mceFirst .mceToolbar tr td, .defaultSkin tr.mceLast .mceToolbar tr td {border:0; margin:0; padding:0;} -.defaultSkin td.mceToolbar {background:#F0F0EE; padding-top:1px; vertical-align:top} -.defaultSkin .mceIframeContainer {border-top:1px solid #CCC; border-bottom:1px solid #CCC} -.defaultSkin .mceStatusbar {background:#F0F0EE; font-family:'MS Sans Serif',sans-serif,Verdana,Arial; font-size:9pt; line-height:16px; overflow:visible; color:#000; display:block; height:20px} -.defaultSkin .mceStatusbar div {float:left; margin:2px} -.defaultSkin .mceStatusbar a.mceResize {display:block; float:right; background:url(../../img/icons.gif) -800px 0; width:20px; height:20px; cursor:se-resize; outline:0} -.defaultSkin .mceStatusbar a:hover {text-decoration:underline} -.defaultSkin table.mceToolbar {margin-left:3px} -.defaultSkin span.mceIcon, .defaultSkin img.mceIcon {display:block; width:20px; height:20px} -.defaultSkin .mceIcon {background:url(../../img/icons.gif) no-repeat 20px 20px} -.defaultSkin td.mceCenter {text-align:center;} -.defaultSkin td.mceCenter table {margin:0 auto; text-align:left;} -.defaultSkin td.mceRight table {margin:0 0 0 auto;} - -/* Button */ -.defaultSkin .mceButton {display:block; border:1px solid #F0F0EE; width:20px; height:20px; margin-right:1px} -.defaultSkin a.mceButtonEnabled:hover {border:1px solid #0A246A; background-color:#B2BBD0} -.defaultSkin a.mceButtonActive, .defaultSkin a.mceButtonSelected {border:1px solid #0A246A; background-color:#C2CBE0} -.defaultSkin .mceButtonDisabled .mceIcon {opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)} -.defaultSkin .mceButtonLabeled {width:auto} -.defaultSkin .mceButtonLabeled span.mceIcon {float:left} -.defaultSkin span.mceButtonLabel {display:block; font-size:10px; padding:4px 6px 0 22px; font-family:Tahoma,Verdana,Arial,Helvetica} -.defaultSkin .mceButtonDisabled .mceButtonLabel {color:#888} - -/* Separator */ -.defaultSkin .mceSeparator {display:block; background:url(../../img/icons.gif) -180px 0; width:2px; height:20px; margin:2px 2px 0 4px} - -/* ListBox */ -.defaultSkin .mceListBox, .defaultSkin .mceListBox a {display:block} -.defaultSkin .mceListBox .mceText {padding-left:4px; width:70px; text-align:left; border:1px solid #CCC; border-right:0; background:#FFF; font-family:Tahoma,Verdana,Arial,Helvetica; font-size:11px; height:20px; line-height:20px; overflow:hidden} -.defaultSkin .mceListBox .mceOpen {width:9px; height:20px; background:url(../../img/icons.gif) -741px 0; margin-right:2px; border:1px solid #CCC;} -.defaultSkin table.mceListBoxEnabled:hover .mceText, .defaultSkin .mceListBoxHover .mceText, .defaultSkin .mceListBoxSelected .mceText {border:1px solid #A2ABC0; border-right:0; background:#FFF} -.defaultSkin table.mceListBoxEnabled:hover .mceOpen, .defaultSkin .mceListBoxHover .mceOpen, .defaultSkin .mceListBoxSelected .mceOpen {background-color:#FFF; border:1px solid #A2ABC0} -.defaultSkin .mceListBoxDisabled a.mceText {color:gray; background-color:transparent;} -.defaultSkin .mceListBoxMenu {overflow:auto; overflow-x:hidden} -.defaultSkin .mceOldBoxModel .mceListBox .mceText {height:22px} -.defaultSkin .mceOldBoxModel .mceListBox .mceOpen {width:11px; height:22px;} -.defaultSkin select.mceNativeListBox {font-family:'MS Sans Serif',sans-serif,Verdana,Arial; font-size:7pt; background:#F0F0EE; border:1px solid gray; margin-right:2px;} - -/* SplitButton */ -.defaultSkin .mceSplitButton {width:32px; height:20px; direction:ltr} -.defaultSkin .mceSplitButton a, .defaultSkin .mceSplitButton span {height:20px; display:block} -.defaultSkin .mceSplitButton a.mceAction {width:20px; border:1px solid #F0F0EE; border-right:0;} -.defaultSkin .mceSplitButton span.mceAction {width:20px; background-image:url(../../img/icons.gif);} -.defaultSkin .mceSplitButton a.mceOpen {width:9px; background:url(../../img/icons.gif) -741px 0; border:1px solid #F0F0EE;} -.defaultSkin .mceSplitButton span.mceOpen {display:none} -.defaultSkin table.mceSplitButtonEnabled:hover a.mceAction, .defaultSkin .mceSplitButtonHover a.mceAction, .defaultSkin .mceSplitButtonSelected a.mceAction {border:1px solid #0A246A; border-right:0; background-color:#B2BBD0} -.defaultSkin table.mceSplitButtonEnabled:hover a.mceOpen, .defaultSkin .mceSplitButtonHover a.mceOpen, .defaultSkin .mceSplitButtonSelected a.mceOpen {background-color:#B2BBD0; border:1px solid #0A246A;} -.defaultSkin .mceSplitButtonDisabled .mceAction, .defaultSkin .mceSplitButtonDisabled a.mceOpen {opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)} -.defaultSkin .mceSplitButtonActive a.mceAction {border:1px solid #0A246A; background-color:#C2CBE0} -.defaultSkin .mceSplitButtonActive a.mceOpen {border-left:0;} - -/* ColorSplitButton */ -.defaultSkin div.mceColorSplitMenu table {background:#FFF; border:1px solid gray} -.defaultSkin .mceColorSplitMenu td {padding:2px} -.defaultSkin .mceColorSplitMenu a {display:block; width:9px; height:9px; overflow:hidden; border:1px solid #808080} -.defaultSkin .mceColorSplitMenu td.mceMoreColors {padding:1px 3px 1px 1px} -.defaultSkin .mceColorSplitMenu a.mceMoreColors {width:100%; height:auto; text-align:center; font-family:Tahoma,Verdana,Arial,Helvetica; font-size:11px; line-height:20px; border:1px solid #FFF} -.defaultSkin .mceColorSplitMenu a.mceMoreColors:hover {border:1px solid #0A246A; background-color:#B6BDD2} -.defaultSkin a.mceMoreColors:hover {border:1px solid #0A246A} -.defaultSkin .mceColorPreview {margin-left:2px; width:16px; height:4px; overflow:hidden; background:#9a9b9a} -.defaultSkin .mce_forecolor span.mceAction, .defaultSkin .mce_backcolor span.mceAction {overflow:hidden; height:16px} - -/* Menu */ -.defaultSkin .mceMenu {position:absolute; left:0; top:0; z-index:1000; border:1px solid #D4D0C8; direction:ltr} -.defaultSkin .mceNoIcons span.mceIcon {width:0;} -.defaultSkin .mceNoIcons a .mceText {padding-left:10px} -.defaultSkin .mceMenu table {background:#FFF} -.defaultSkin .mceMenu a, .defaultSkin .mceMenu span, .defaultSkin .mceMenu {display:block} -.defaultSkin .mceMenu td {height:20px} -.defaultSkin .mceMenu a {position:relative;padding:3px 0 4px 0} -.defaultSkin .mceMenu .mceText {position:relative; display:block; font-family:Tahoma,Verdana,Arial,Helvetica; color:#000; cursor:default; margin:0; padding:0 25px 0 25px; display:block} -.defaultSkin .mceMenu span.mceText, .defaultSkin .mceMenu .mcePreview {font-size:11px} -.defaultSkin .mceMenu pre.mceText {font-family:Monospace} -.defaultSkin .mceMenu .mceIcon {position:absolute; top:0; left:0; width:22px;} -.defaultSkin .mceMenu .mceMenuItemEnabled a:hover, .defaultSkin .mceMenu .mceMenuItemActive {background-color:#dbecf3} -.defaultSkin td.mceMenuItemSeparator {background:#DDD; height:1px} -.defaultSkin .mceMenuItemTitle a {border:0; background:#EEE; border-bottom:1px solid #DDD} -.defaultSkin .mceMenuItemTitle span.mceText {color:#000; font-weight:bold; padding-left:4px} -.defaultSkin .mceMenuItemDisabled .mceText {color:#888} -.defaultSkin .mceMenuItemSelected .mceIcon {background:url(img/menu_check.gif)} -.defaultSkin .mceNoIcons .mceMenuItemSelected a {background:url(img/menu_arrow.gif) no-repeat -6px center} -.defaultSkin .mceMenu span.mceMenuLine {display:none} -.defaultSkin .mceMenuItemSub a {background:url(img/menu_arrow.gif) no-repeat top right;} -.defaultSkin .mceMenuItem td, .defaultSkin .mceMenuItem th {line-height: normal} - -/* Progress,Resize */ -.defaultSkin .mceBlocker {position:absolute; left:0; top:0; z-index:1000; opacity:0.5; -ms-filter:'alpha(opacity=50)'; filter:alpha(opacity=50); background:#FFF} -.defaultSkin .mceProgress {position:absolute; left:0; top:0; z-index:1001; background:url(img/progress.gif) no-repeat; width:32px; height:32px; margin:-16px 0 0 -16px} - -/* Rtl */ -.mceRtl .mceListBox .mceText {text-align: right; padding: 0 4px 0 0} -.mceRtl .mceMenuItem .mceText {text-align: right} - -/* Formats */ -.defaultSkin .mce_formatPreview a {font-size:10px} -.defaultSkin .mce_p span.mceText {} -.defaultSkin .mce_address span.mceText {font-style:italic} -.defaultSkin .mce_pre span.mceText {font-family:monospace} -.defaultSkin .mce_h1 span.mceText {font-weight:bolder; font-size: 2em} -.defaultSkin .mce_h2 span.mceText {font-weight:bolder; font-size: 1.5em} -.defaultSkin .mce_h3 span.mceText {font-weight:bolder; font-size: 1.17em} -.defaultSkin .mce_h4 span.mceText {font-weight:bolder; font-size: 1em} -.defaultSkin .mce_h5 span.mceText {font-weight:bolder; font-size: .83em} -.defaultSkin .mce_h6 span.mceText {font-weight:bolder; font-size: .75em} - -/* Theme */ -.defaultSkin span.mce_bold {background-position:0 0} -.defaultSkin span.mce_italic {background-position:-60px 0} -.defaultSkin span.mce_underline {background-position:-140px 0} -.defaultSkin span.mce_strikethrough {background-position:-120px 0} -.defaultSkin span.mce_undo {background-position:-160px 0} -.defaultSkin span.mce_redo {background-position:-100px 0} -.defaultSkin span.mce_cleanup {background-position:-40px 0} -.defaultSkin span.mce_bullist {background-position:-20px 0} -.defaultSkin span.mce_numlist {background-position:-80px 0} -.defaultSkin span.mce_justifyleft {background-position:-460px 0} -.defaultSkin span.mce_justifyright {background-position:-480px 0} -.defaultSkin span.mce_justifycenter {background-position:-420px 0} -.defaultSkin span.mce_justifyfull {background-position:-440px 0} -.defaultSkin span.mce_anchor {background-position:-200px 0} -.defaultSkin span.mce_indent {background-position:-400px 0} -.defaultSkin span.mce_outdent {background-position:-540px 0} -.defaultSkin span.mce_link {background-position:-500px 0} -.defaultSkin span.mce_unlink {background-position:-640px 0} -.defaultSkin span.mce_sub {background-position:-600px 0} -.defaultSkin span.mce_sup {background-position:-620px 0} -.defaultSkin span.mce_removeformat {background-position:-580px 0} -.defaultSkin span.mce_newdocument {background-position:-520px 0} -.defaultSkin span.mce_image {background-position:-380px 0} -.defaultSkin span.mce_help {background-position:-340px 0} -.defaultSkin span.mce_code {background-position:-260px 0} -.defaultSkin span.mce_hr {background-position:-360px 0} -.defaultSkin span.mce_visualaid {background-position:-660px 0} -.defaultSkin span.mce_charmap {background-position:-240px 0} -.defaultSkin span.mce_paste {background-position:-560px 0} -.defaultSkin span.mce_copy {background-position:-700px 0} -.defaultSkin span.mce_cut {background-position:-680px 0} -.defaultSkin span.mce_blockquote {background-position:-220px 0} -.defaultSkin .mce_forecolor span.mceAction {background-position:-720px 0} -.defaultSkin .mce_backcolor span.mceAction {background-position:-760px 0} -.defaultSkin span.mce_forecolorpicker {background-position:-720px 0} -.defaultSkin span.mce_backcolorpicker {background-position:-760px 0} - -/* Plugins */ -.defaultSkin span.mce_advhr {background-position:-0px -20px} -.defaultSkin span.mce_ltr {background-position:-20px -20px} -.defaultSkin span.mce_rtl {background-position:-40px -20px} -.defaultSkin span.mce_emotions {background-position:-60px -20px} -.defaultSkin span.mce_fullpage {background-position:-80px -20px} -.defaultSkin span.mce_fullscreen {background-position:-100px -20px} -.defaultSkin span.mce_iespell {background-position:-120px -20px} -.defaultSkin span.mce_insertdate {background-position:-140px -20px} -.defaultSkin span.mce_inserttime {background-position:-160px -20px} -.defaultSkin span.mce_absolute {background-position:-180px -20px} -.defaultSkin span.mce_backward {background-position:-200px -20px} -.defaultSkin span.mce_forward {background-position:-220px -20px} -.defaultSkin span.mce_insert_layer {background-position:-240px -20px} -.defaultSkin span.mce_insertlayer {background-position:-260px -20px} -.defaultSkin span.mce_movebackward {background-position:-280px -20px} -.defaultSkin span.mce_moveforward {background-position:-300px -20px} -.defaultSkin span.mce_media {background-position:-320px -20px} -.defaultSkin span.mce_nonbreaking {background-position:-340px -20px} -.defaultSkin span.mce_pastetext {background-position:-360px -20px} -.defaultSkin span.mce_pasteword {background-position:-380px -20px} -.defaultSkin span.mce_selectall {background-position:-400px -20px} -.defaultSkin span.mce_preview {background-position:-420px -20px} -.defaultSkin span.mce_print {background-position:-440px -20px} -.defaultSkin span.mce_cancel {background-position:-460px -20px} -.defaultSkin span.mce_save {background-position:-480px -20px} -.defaultSkin span.mce_replace {background-position:-500px -20px} -.defaultSkin span.mce_search {background-position:-520px -20px} -.defaultSkin span.mce_styleprops {background-position:-560px -20px} -.defaultSkin span.mce_table {background-position:-580px -20px} -.defaultSkin span.mce_cell_props {background-position:-600px -20px} -.defaultSkin span.mce_delete_table {background-position:-620px -20px} -.defaultSkin span.mce_delete_col {background-position:-640px -20px} -.defaultSkin span.mce_delete_row {background-position:-660px -20px} -.defaultSkin span.mce_col_after {background-position:-680px -20px} -.defaultSkin span.mce_col_before {background-position:-700px -20px} -.defaultSkin span.mce_row_after {background-position:-720px -20px} -.defaultSkin span.mce_row_before {background-position:-740px -20px} -.defaultSkin span.mce_merge_cells {background-position:-760px -20px} -.defaultSkin span.mce_table_props {background-position:-980px -20px} -.defaultSkin span.mce_row_props {background-position:-780px -20px} -.defaultSkin span.mce_split_cells {background-position:-800px -20px} -.defaultSkin span.mce_template {background-position:-820px -20px} -.defaultSkin span.mce_visualchars {background-position:-840px -20px} -.defaultSkin span.mce_abbr {background-position:-860px -20px} -.defaultSkin span.mce_acronym {background-position:-880px -20px} -.defaultSkin span.mce_attribs {background-position:-900px -20px} -.defaultSkin span.mce_cite {background-position:-920px -20px} -.defaultSkin span.mce_del {background-position:-940px -20px} -.defaultSkin span.mce_ins {background-position:-960px -20px} -.defaultSkin span.mce_pagebreak {background-position:0 -40px} -.defaultSkin span.mce_restoredraft {background-position:-20px -40px} -.defaultSkin span.mce_spellchecker {background-position:-540px -20px} -.defaultSkin span.mce_visualblocks {background-position: -40px -40px} diff --git a/askbot/skins/common/media/js/tinymce/themes/advanced/skins/highcontrast/content.css b/askbot/skins/common/media/js/tinymce/themes/advanced/skins/highcontrast/content.css deleted file mode 100644 index cbce6c6a..00000000 --- a/askbot/skins/common/media/js/tinymce/themes/advanced/skins/highcontrast/content.css +++ /dev/null @@ -1,24 +0,0 @@ -body, td, pre { margin:8px;} -body.mceForceColors {background:#FFF; color:#000;} -h1 {font-size: 2em} -h2 {font-size: 1.5em} -h3 {font-size: 1.17em} -h4 {font-size: 1em} -h5 {font-size: .83em} -h6 {font-size: .75em} -.mceItemTable, .mceItemTable td, .mceItemTable th, .mceItemTable caption, .mceItemVisualAid {border: 1px dashed #BBB;} -a.mceItemAnchor {display:inline-block; width:11px !important; height:11px !important; background:url(../default/img/items.gif) no-repeat 0 0;} -span.mceItemNbsp {background: #DDD} -td.mceSelected, th.mceSelected {background-color:#3399ff !important} -img {border:0;} -table, img, hr, .mceItemAnchor {cursor:default} -table td, table th {cursor:text} -ins {border-bottom:1px solid green; text-decoration: none; color:green} -del {color:red; text-decoration:line-through} -cite {border-bottom:1px dashed blue} -acronym {border-bottom:1px dotted #CCC; cursor:help} -abbr {border-bottom:1px dashed #CCC; cursor:help} - -img:-moz-broken {-moz-force-broken-image-icon:1; width:24px; height:24px} -font[face=mceinline] {font-family:inherit !important} -*[contentEditable]:focus {outline:0} diff --git a/askbot/skins/common/media/js/tinymce/themes/advanced/skins/highcontrast/dialog.css b/askbot/skins/common/media/js/tinymce/themes/advanced/skins/highcontrast/dialog.css deleted file mode 100644 index 6d9fc8dd..00000000 --- a/askbot/skins/common/media/js/tinymce/themes/advanced/skins/highcontrast/dialog.css +++ /dev/null @@ -1,106 +0,0 @@ -/* Generic */ -body { -font-family:Verdana, Arial, Helvetica, sans-serif; font-size:11px; -background:#F0F0EE; -color: black; -padding:0; -margin:8px 8px 0 8px; -} - -html {background:#F0F0EE; color:#000;} -td {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;} -textarea {resize:none;outline:none;} -a:link, a:visited {color:black;background-color:transparent;} -a:hover {color:#2B6FB6;background-color:transparent;} -.nowrap {white-space: nowrap} - -/* Forms */ -fieldset {margin:0; padding:4px; border:1px solid #919B9C; font-family:Verdana, Arial; font-size:10px;} -legend {color:#2B6FB6; font-weight:bold;} -label.msg {display:none;} -label.invalid {color:#EE0000; display:inline;background-color:transparent;} -input.invalid {border:1px solid #EE0000;background-color:transparent;} -input {background:#FFF; border:1px solid #CCC;color:black;} -input, select, textarea {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;} -input, select, textarea {border:1px solid #808080;} -input.radio {border:1px none #000000; background:transparent; vertical-align:middle;} -input.checkbox {border:1px none #000000; background:transparent; vertical-align:middle;} -.input_noborder {border:0;} - -/* Buttons */ -#insert, #cancel, input.button, .updateButton { -font-weight:bold; -width:94px; height:23px; -cursor:pointer; -padding-bottom:2px; -float:left; -} - -#cancel {float:right} - -/* Browse */ -a.pickcolor, a.browse {text-decoration:none} -a.browse span {display:block; width:20px; height:18px; background:url(../../img/icons.gif) -860px 0; border:1px solid #FFF; margin-left:1px;} -.mceOldBoxModel a.browse span {width:22px; height:20px;} -a.browse:hover span {border:1px solid #0A246A; background-color:#B2BBD0;} -a.browse span.disabled {border:1px solid white; opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)} -a.browse:hover span.disabled {border:1px solid white; background-color:transparent;} -a.pickcolor span {display:block; width:20px; height:16px; background:url(../../img/icons.gif) -840px 0; margin-left:2px;} -.mceOldBoxModel a.pickcolor span {width:21px; height:17px;} -a.pickcolor:hover span {background-color:#B2BBD0;} -a.pickcolor:hover span.disabled {} - -/* Charmap */ -table.charmap {border:1px solid #AAA; text-align:center} -td.charmap, #charmap a {width:18px; height:18px; color:#000; border:1px solid #AAA; text-align:center; font-size:12px; vertical-align:middle; line-height: 18px;} -#charmap a {display:block; color:#000; text-decoration:none; border:0} -#charmap a:hover {background:#CCC;color:#2B6FB6} -#charmap #codeN {font-size:10px; font-family:Arial,Helvetica,sans-serif; text-align:center} -#charmap #codeV {font-size:40px; height:80px; border:1px solid #AAA; text-align:center} - -/* Source */ -.wordWrapCode {vertical-align:middle; border:1px none #000000; background:transparent;} -.mceActionPanel {margin-top:5px;} - -/* Tabs classes */ -.tabs {width:100%; height:18px; line-height:normal;} -.tabs ul {margin:0; padding:0; list-style:none;} -.tabs li {float:left; border: 1px solid black; border-bottom:0; margin:0 2px 0 0; padding:0 0 0 10px; line-height:17px; height:18px; display:block; cursor:pointer;} -.tabs li.current {font-weight: bold; margin-right:2px;} -.tabs span {float:left; display:block; padding:0px 10px 0 0;} -.tabs a {text-decoration:none; font-family:Verdana, Arial; font-size:10px;} -.tabs a:link, .tabs a:visited, .tabs a:hover {color:black;} - -/* Panels */ -.panel_wrapper div.panel {display:none;} -.panel_wrapper div.current {display:block; width:100%; height:300px; overflow:visible;} -.panel_wrapper {border:1px solid #919B9C; padding:10px; padding-top:5px; clear:both; background:white;} - -/* Columns */ -.column {float:left;} -.properties {width:100%;} -.properties .column1 {} -.properties .column2 {text-align:left;} - -/* Titles */ -h1, h2, h3, h4 {color:#2B6FB6; margin:0; padding:0; padding-top:5px;} -h3 {font-size:14px;} -.title {font-size:12px; font-weight:bold; color:#2B6FB6;} - -/* Dialog specific */ -#link .panel_wrapper, #link div.current {height:125px;} -#image .panel_wrapper, #image div.current {height:200px;} -#plugintable thead {font-weight:bold; background:#DDD;} -#plugintable, #about #plugintable td {border:1px solid #919B9C;} -#plugintable {width:96%; margin-top:10px;} -#pluginscontainer {height:290px; overflow:auto;} -#colorpicker #preview {display:inline-block; padding-left:40px; height:14px; border:1px solid black; margin-left:5px; margin-right: 5px} -#colorpicker #previewblock {position: relative; top: -3px; padding-left:5px; padding-top: 0px; display:inline} -#colorpicker #preview_wrapper { text-align:center; padding-top:4px; white-space: nowrap} -#colorpicker #colors {float:left; border:1px solid gray; cursor:crosshair;} -#colorpicker #light {border:1px solid gray; margin-left:5px; float:left;width:15px; height:150px; cursor:crosshair;} -#colorpicker #light div {overflow:hidden;} -#colorpicker .panel_wrapper div.current {height:175px;} -#colorpicker #namedcolors {width:150px;} -#colorpicker #namedcolors a {display:block; float:left; width:10px; height:10px; margin:1px 1px 0 0; overflow:hidden;} -#colorpicker #colornamecontainer {margin-top:5px;} diff --git a/askbot/skins/common/media/js/tinymce/themes/advanced/skins/highcontrast/ui.css b/askbot/skins/common/media/js/tinymce/themes/advanced/skins/highcontrast/ui.css deleted file mode 100644 index effbbe15..00000000 --- a/askbot/skins/common/media/js/tinymce/themes/advanced/skins/highcontrast/ui.css +++ /dev/null @@ -1,106 +0,0 @@ -/* Reset */ -.highcontrastSkin table, .highcontrastSkin tbody, .highcontrastSkin a, .highcontrastSkin img, .highcontrastSkin tr, .highcontrastSkin div, .highcontrastSkin td, .highcontrastSkin iframe, .highcontrastSkin span, .highcontrastSkin *, .highcontrastSkin .mceText {border:0; margin:0; padding:0; vertical-align:baseline; border-collapse:separate;} -.highcontrastSkin a:hover, .highcontrastSkin a:link, .highcontrastSkin a:visited, .highcontrastSkin a:active {text-decoration:none; font-weight:normal; cursor:default;} -.highcontrastSkin table td {vertical-align:middle} - -.highcontrastSkin .mceIconOnly {display: block !important;} - -/* External */ -.highcontrastSkin .mceExternalToolbar {position:absolute; border:1px solid; border-bottom:0; display:none; background-color: white;} -.highcontrastSkin .mceExternalToolbar td.mceToolbar {padding-right:13px;} -.highcontrastSkin .mceExternalClose {position:absolute; top:3px; right:3px; width:7px; height:7px;} - -/* Layout */ -.highcontrastSkin table.mceLayout {border: 1px solid;} -.highcontrastSkin .mceIframeContainer {border-top:1px solid; border-bottom:1px solid} -.highcontrastSkin .mceStatusbar a:hover {text-decoration:underline} -.highcontrastSkin .mceStatusbar {display:block; line-height:1.5em; overflow:visible;} -.highcontrastSkin .mceStatusbar div {float:left} -.highcontrastSkin .mceStatusbar a.mceResize {display:block; float:right; width:20px; height:20px; cursor:se-resize; outline:0} - -.highcontrastSkin .mceToolbar td { display: inline-block; float: left;} -.highcontrastSkin .mceToolbar tr { display: block;} -.highcontrastSkin .mceToolbar table { display: block; } - -/* Button */ - -.highcontrastSkin .mceButton { display:block; margin: 2px; padding: 5px 10px;border: 1px solid; border-radius: 3px; -moz-border-radius: 3px; -webkit-border-radius: 3px; -ms-border-radius: 3px; height: 2em;} -.highcontrastSkin .mceButton .mceVoiceLabel { height: 100%; vertical-align: center; line-height: 2em} -.highcontrastSkin .mceButtonDisabled .mceVoiceLabel { opacity:0.6; -ms-filter:'alpha(opacity=60)'; filter:alpha(opacity=60);} -.highcontrastSkin .mceButtonActive, .highcontrastSkin .mceButton:focus, .highcontrastSkin .mceButton:active { border: 5px solid; padding: 1px 6px;-webkit-focus-ring-color:none;outline:none;} - -/* Separator */ -.highcontrastSkin .mceSeparator {display:block; width:16px; height:26px;} - -/* ListBox */ -.highcontrastSkin .mceListBox { display: block; margin:2px;-webkit-focus-ring-color:none;outline:none;} -.highcontrastSkin .mceListBox .mceText {padding: 5px 6px; line-height: 2em; width: 15ex; overflow: hidden;} -.highcontrastSkin .mceListBoxDisabled .mceText { opacity:0.6; -ms-filter:'alpha(opacity=60)'; filter:alpha(opacity=60);} -.highcontrastSkin .mceListBox a.mceText { padding: 5px 10px; display: block; height: 2em; line-height: 2em; border: 1px solid; border-right: 0; border-radius: 3px 0px 0px 3px; -moz-border-radius: 3px 0px 0px 3px; -webkit-border-radius: 3px 0px 0px 3px; -ms-border-radius: 3px 0px 0px 3px;} -.highcontrastSkin .mceListBox a.mceOpen { padding: 5px 4px; display: block; height: 2em; line-height: 2em; border: 1px solid; border-left: 0; border-radius: 0px 3px 3px 0px; -moz-border-radius: 0px 3px 3px 0px; -webkit-border-radius: 0px 3px 3px 0px; -ms-border-radius: 0px 3px 3px 0px;} -.highcontrastSkin .mceListBox:focus a.mceText, .highcontrastSkin .mceListBox:active a.mceText { border-width: 5px; padding: 1px 10px 1px 6px;} -.highcontrastSkin .mceListBox:focus a.mceOpen, .highcontrastSkin .mceListBox:active a.mceOpen { border-width: 5px; padding: 1px 0px 1px 4px;} - -.highcontrastSkin .mceListBoxMenu {overflow-y:auto} - -/* SplitButton */ -.highcontrastSkin .mceSplitButtonDisabled .mceAction {opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)} - -.highcontrastSkin .mceSplitButton { border-collapse: collapse; margin: 2px; height: 2em; line-height: 2em;-webkit-focus-ring-color:none;outline:none;} -.highcontrastSkin .mceSplitButton td { display: table-cell; float: none; margin: 0; padding: 0; height: 2em;} -.highcontrastSkin .mceSplitButton tr { display: table-row; } -.highcontrastSkin table.mceSplitButton { display: table; } -.highcontrastSkin .mceSplitButton a.mceAction { padding: 5px 10px; display: block; height: 2em; line-height: 2em; overflow: hidden; border: 1px solid; border-right: 0; border-radius: 3px 0px 0px 3px; -moz-border-radius: 3px 0px 0px 3px; -webkit-border-radius: 3px 0px 0px 3px; -ms-border-radius: 3px 0px 0px 3px;} -.highcontrastSkin .mceSplitButton a.mceOpen { padding: 5px 4px; display: block; height: 2em; line-height: 2em; border: 1px solid; border-radius: 0px 3px 3px 0px; -moz-border-radius: 0px 3px 3px 0px; -webkit-border-radius: 0px 3px 3px 0px; -ms-border-radius: 0px 3px 3px 0px;} -.highcontrastSkin .mceSplitButton .mceVoiceLabel { height: 2em; vertical-align: center; line-height: 2em; } -.highcontrastSkin .mceSplitButton:focus a.mceAction, .highcontrastSkin .mceSplitButton:active a.mceAction { border-width: 5px; border-right-width: 1px; padding: 1px 10px 1px 6px;-webkit-focus-ring-color:none;outline:none;} -.highcontrastSkin .mceSplitButton:focus a.mceOpen, .highcontrastSkin .mceSplitButton:active a.mceOpen { border-width: 5px; border-left-width: 1px; padding: 1px 0px 1px 4px;-webkit-focus-ring-color:none;outline:none;} - -/* Menu */ -.highcontrastSkin .mceNoIcons span.mceIcon {width:0;} -.highcontrastSkin .mceMenu {position:absolute; left:0; top:0; z-index:1000; border:1px solid; direction:ltr} -.highcontrastSkin .mceMenu table {background:white; color: black} -.highcontrastSkin .mceNoIcons a .mceText {padding-left:10px} -.highcontrastSkin .mceMenu a, .highcontrastSkin .mceMenu span, .highcontrastSkin .mceMenu {display:block;background:white; color: black} -.highcontrastSkin .mceMenu td {height:2em} -.highcontrastSkin .mceMenu a {position:relative;padding:3px 0 4px 0; display: block;} -.highcontrastSkin .mceMenu .mceText {position:relative; display:block; cursor:default; margin:0; padding:0 25px 0 25px;} -.highcontrastSkin .mceMenu pre.mceText {font-family:Monospace} -.highcontrastSkin .mceMenu .mceIcon {position:absolute; top:0; left:0; width:26px;} -.highcontrastSkin td.mceMenuItemSeparator {border-top:1px solid; height:1px} -.highcontrastSkin .mceMenuItemTitle a {border:0; border-bottom:1px solid} -.highcontrastSkin .mceMenuItemTitle span.mceText {font-weight:bold; padding-left:4px} -.highcontrastSkin .mceNoIcons .mceMenuItemSelected span.mceText:before {content: "\2713\A0";} -.highcontrastSkin .mceMenu span.mceMenuLine {display:none} -.highcontrastSkin .mceMenuItemSub a .mceText:after {content: "\A0\25B8"} -.highcontrastSkin .mceMenuItem td, .highcontrastSkin .mceMenuItem th {line-height: normal} - -/* ColorSplitButton */ -.highcontrastSkin div.mceColorSplitMenu table {background:#FFF; border:1px solid; color: #000} -.highcontrastSkin .mceColorSplitMenu td {padding:2px} -.highcontrastSkin .mceColorSplitMenu a {display:block; width:16px; height:16px; overflow:hidden; color:#000; margin: 0; padding: 0;} -.highcontrastSkin .mceColorSplitMenu td.mceMoreColors {padding:1px 3px 1px 1px} -.highcontrastSkin .mceColorSplitMenu a.mceMoreColors {width:100%; height:auto; text-align:center; font-family:Tahoma,Verdana,Arial,Helvetica; font-size:11px; line-height:20px; border:1px solid #FFF} -.highcontrastSkin .mceColorSplitMenu a.mceMoreColors:hover {border:1px solid; background-color:#B6BDD2} -.highcontrastSkin a.mceMoreColors:hover {border:1px solid #0A246A; color: #000;} -.highcontrastSkin .mceColorPreview {display:none;} -.highcontrastSkin .mce_forecolor span.mceAction, .highcontrastSkin .mce_backcolor span.mceAction {height:17px;overflow:hidden} - -/* Progress,Resize */ -.highcontrastSkin .mceBlocker {position:absolute; left:0; top:0; z-index:1000; opacity:0.5; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=50); background:#FFF} -.highcontrastSkin .mceProgress {position:absolute; left:0; top:0; z-index:1001; background:url(../default/img/progress.gif) no-repeat; width:32px; height:32px; margin:-16px 0 0 -16px} - -/* Rtl */ -.mceRtl .mceListBox .mceText {text-align: right; padding: 0 4px 0 0} -.mceRtl .mceMenuItem .mceText {text-align: right} - -/* Formats */ -.highcontrastSkin .mce_p span.mceText {} -.highcontrastSkin .mce_address span.mceText {font-style:italic} -.highcontrastSkin .mce_pre span.mceText {font-family:monospace} -.highcontrastSkin .mce_h1 span.mceText {font-weight:bolder; font-size: 2em} -.highcontrastSkin .mce_h2 span.mceText {font-weight:bolder; font-size: 1.5em} -.highcontrastSkin .mce_h3 span.mceText {font-weight:bolder; font-size: 1.17em} -.highcontrastSkin .mce_h4 span.mceText {font-weight:bolder; font-size: 1em} -.highcontrastSkin .mce_h5 span.mceText {font-weight:bolder; font-size: .83em} -.highcontrastSkin .mce_h6 span.mceText {font-weight:bolder; font-size: .75em} diff --git a/askbot/skins/common/media/js/tinymce/themes/advanced/skins/o2k7/content.css b/askbot/skins/common/media/js/tinymce/themes/advanced/skins/o2k7/content.css deleted file mode 100644 index a1a8f9bd..00000000 --- a/askbot/skins/common/media/js/tinymce/themes/advanced/skins/o2k7/content.css +++ /dev/null @@ -1,48 +0,0 @@ -body, td, pre {color:#000; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px; margin:8px;} -body {background:#FFF;} -body.mceForceColors {background:#FFF; color:#000;} -h1 {font-size: 2em} -h2 {font-size: 1.5em} -h3 {font-size: 1.17em} -h4 {font-size: 1em} -h5 {font-size: .83em} -h6 {font-size: .75em} -.mceItemTable, .mceItemTable td, .mceItemTable th, .mceItemTable caption, .mceItemVisualAid {border: 1px dashed #BBB;} -a.mceItemAnchor {display:inline-block; width:11px !important; height:11px !important; background:url(../default/img/items.gif) no-repeat 0 0;} -span.mceItemNbsp {background: #DDD} -td.mceSelected, th.mceSelected {background-color:#3399ff !important} -img {border:0;} -table, img, hr, .mceItemAnchor {cursor:default} -table td, table th {cursor:text} -ins {border-bottom:1px solid green; text-decoration: none; color:green} -del {color:red; text-decoration:line-through} -cite {border-bottom:1px dashed blue} -acronym {border-bottom:1px dotted #CCC; cursor:help} -abbr {border-bottom:1px dashed #CCC; cursor:help} - -/* IE */ -* html body { -scrollbar-3dlight-color:#F0F0EE; -scrollbar-arrow-color:#676662; -scrollbar-base-color:#F0F0EE; -scrollbar-darkshadow-color:#DDD; -scrollbar-face-color:#E0E0DD; -scrollbar-highlight-color:#F0F0EE; -scrollbar-shadow-color:#F0F0EE; -scrollbar-track-color:#F5F5F5; -} - -img:-moz-broken {-moz-force-broken-image-icon:1; width:24px; height:24px} -font[face=mceinline] {font-family:inherit !important} -*[contentEditable]:focus {outline:0} - -.mceItemMedia {border:1px dotted #cc0000; background-position:center; background-repeat:no-repeat; background-color:#ffffcc} -.mceItemShockWave {background-image:url(../../img/shockwave.gif)} -.mceItemFlash {background-image:url(../../img/flash.gif)} -.mceItemQuickTime {background-image:url(../../img/quicktime.gif)} -.mceItemWindowsMedia {background-image:url(../../img/windowsmedia.gif)} -.mceItemRealMedia {background-image:url(../../img/realmedia.gif)} -.mceItemVideo {background-image:url(../../img/video.gif)} -.mceItemAudio {background-image:url(../../img/video.gif)} -.mceItemIframe {background-image:url(../../img/iframe.gif)} -.mcePageBreak {display:block;border:0;width:100%;height:12px;border-top:1px dotted #ccc;margin-top:15px;background:#fff url(../../img/pagebreak.gif) no-repeat center top;} diff --git a/askbot/skins/common/media/js/tinymce/themes/advanced/skins/o2k7/dialog.css b/askbot/skins/common/media/js/tinymce/themes/advanced/skins/o2k7/dialog.css deleted file mode 100644 index a54db98d..00000000 --- a/askbot/skins/common/media/js/tinymce/themes/advanced/skins/o2k7/dialog.css +++ /dev/null @@ -1,118 +0,0 @@ -/* Generic */ -body { -font-family:Verdana, Arial, Helvetica, sans-serif; font-size:11px; -scrollbar-3dlight-color:#F0F0EE; -scrollbar-arrow-color:#676662; -scrollbar-base-color:#F0F0EE; -scrollbar-darkshadow-color:#DDDDDD; -scrollbar-face-color:#E0E0DD; -scrollbar-highlight-color:#F0F0EE; -scrollbar-shadow-color:#F0F0EE; -scrollbar-track-color:#F5F5F5; -background:#F0F0EE; -padding:0; -margin:8px 8px 0 8px; -} - -html {background:#F0F0EE;} -td {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;} -textarea {resize:none;outline:none;} -a:link, a:visited {color:black;} -a:hover {color:#2B6FB6;} -.nowrap {white-space: nowrap} - -/* Forms */ -fieldset {margin:0; padding:4px; border:1px solid #919B9C; font-family:Verdana, Arial; font-size:10px;} -legend {color:#2B6FB6; font-weight:bold;} -label.msg {display:none;} -label.invalid {color:#EE0000; display:inline;} -input.invalid {border:1px solid #EE0000;} -input {background:#FFF; border:1px solid #CCC;} -input, select, textarea {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;} -input, select, textarea {border:1px solid #808080;} -input.radio {border:1px none #000000; background:transparent; vertical-align:middle;} -input.checkbox {border:1px none #000000; background:transparent; vertical-align:middle;} -.input_noborder {border:0;} - -/* Buttons */ -#insert, #cancel, input.button, .updateButton { -border:0; margin:0; padding:0; -font-weight:bold; -width:94px; height:26px; -background:url(../default/img/buttons.png) 0 -26px; -cursor:pointer; -padding-bottom:2px; -float:left; -} - -#insert {background:url(../default/img/buttons.png) 0 -52px} -#cancel {background:url(../default/img/buttons.png) 0 0; float:right} - -/* Browse */ -a.pickcolor, a.browse {text-decoration:none} -a.browse span {display:block; width:20px; height:18px; background:url(../../img/icons.gif) -860px 0; border:1px solid #FFF; margin-left:1px;} -.mceOldBoxModel a.browse span {width:22px; height:20px;} -a.browse:hover span {border:1px solid #0A246A; background-color:#B2BBD0;} -a.browse span.disabled {border:1px solid white; opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)} -a.browse:hover span.disabled {border:1px solid white; background-color:transparent;} -a.pickcolor span {display:block; width:20px; height:16px; background:url(../../img/icons.gif) -840px 0; margin-left:2px;} -.mceOldBoxModel a.pickcolor span {width:21px; height:17px;} -a.pickcolor:hover span {background-color:#B2BBD0;} -a.pickcolor:hover span.disabled {} - -/* Charmap */ -table.charmap {border:1px solid #AAA; text-align:center} -td.charmap, #charmap a {width:18px; height:18px; color:#000; border:1px solid #AAA; text-align:center; font-size:12px; vertical-align:middle; line-height: 18px;} -#charmap a {display:block; color:#000; text-decoration:none; border:0} -#charmap a:hover {background:#CCC;color:#2B6FB6} -#charmap #codeN {font-size:10px; font-family:Arial,Helvetica,sans-serif; text-align:center} -#charmap #codeV {font-size:40px; height:80px; border:1px solid #AAA; text-align:center} - -/* Source */ -.wordWrapCode {vertical-align:middle; border:1px none #000000; background:transparent;} -.mceActionPanel {margin-top:5px;} - -/* Tabs classes */ -.tabs {width:100%; height:18px; line-height:normal; background:url(../default/img/tabs.gif) repeat-x 0 -72px;} -.tabs ul {margin:0; padding:0; list-style:none;} -.tabs li {float:left; background:url(../default/img/tabs.gif) no-repeat 0 0; margin:0 2px 0 0; padding:0 0 0 10px; line-height:17px; height:18px; display:block;} -.tabs li.current {background:url(../default/img/tabs.gif) no-repeat 0 -18px; margin-right:2px;} -.tabs span {float:left; display:block; background:url(../default/img/tabs.gif) no-repeat right -36px; padding:0px 10px 0 0;} -.tabs .current span {background:url(../default/img/tabs.gif) no-repeat right -54px;} -.tabs a {text-decoration:none; font-family:Verdana, Arial; font-size:10px;} -.tabs a:link, .tabs a:visited, .tabs a:hover {color:black;} - -/* Panels */ -.panel_wrapper div.panel {display:none;} -.panel_wrapper div.current {display:block; width:100%; height:300px; overflow:visible;} -.panel_wrapper {border:1px solid #919B9C; border-top:0px; padding:10px; padding-top:5px; clear:both; background:white;} - -/* Columns */ -.column {float:left;} -.properties {width:100%;} -.properties .column1 {} -.properties .column2 {text-align:left;} - -/* Titles */ -h1, h2, h3, h4 {color:#2B6FB6; margin:0; padding:0; padding-top:5px;} -h3 {font-size:14px;} -.title {font-size:12px; font-weight:bold; color:#2B6FB6;} - -/* Dialog specific */ -#link .panel_wrapper, #link div.current {height:125px;} -#image .panel_wrapper, #image div.current {height:200px;} -#plugintable thead {font-weight:bold; background:#DDD;} -#plugintable, #about #plugintable td {border:1px solid #919B9C;} -#plugintable {width:96%; margin-top:10px;} -#pluginscontainer {height:290px; overflow:auto;} -#colorpicker #preview {display:inline-block; padding-left:40px; height:14px; border:1px solid black; margin-left:5px; margin-right: 5px} -#colorpicker #previewblock {position: relative; top: -3px; padding-left:5px; padding-top: 0px; display:inline} -#colorpicker #preview_wrapper { text-align:center; padding-top:4px; white-space: nowrap} -#colorpicker #colors {float:left; border:1px solid gray; cursor:crosshair;} -#colorpicker #light {border:1px solid gray; margin-left:5px; float:left;width:15px; height:150px; cursor:crosshair;} -#colorpicker #light div {overflow:hidden;} -#colorpicker .panel_wrapper div.current {height:175px;} -#colorpicker #namedcolors {width:150px;} -#colorpicker #namedcolors a {display:block; float:left; width:10px; height:10px; margin:1px 1px 0 0; overflow:hidden;} -#colorpicker #colornamecontainer {margin-top:5px;} -#colorpicker #picker_panel fieldset {margin:auto;width:325px;} diff --git a/askbot/skins/common/media/js/tinymce/themes/advanced/skins/o2k7/img/button_bg.png b/askbot/skins/common/media/js/tinymce/themes/advanced/skins/o2k7/img/button_bg.png deleted file mode 100644 index 13a5cb03..00000000 Binary files a/askbot/skins/common/media/js/tinymce/themes/advanced/skins/o2k7/img/button_bg.png and /dev/null differ diff --git a/askbot/skins/common/media/js/tinymce/themes/advanced/skins/o2k7/img/button_bg_black.png b/askbot/skins/common/media/js/tinymce/themes/advanced/skins/o2k7/img/button_bg_black.png deleted file mode 100644 index 7fc57f2b..00000000 Binary files a/askbot/skins/common/media/js/tinymce/themes/advanced/skins/o2k7/img/button_bg_black.png and /dev/null differ diff --git a/askbot/skins/common/media/js/tinymce/themes/advanced/skins/o2k7/img/button_bg_silver.png b/askbot/skins/common/media/js/tinymce/themes/advanced/skins/o2k7/img/button_bg_silver.png deleted file mode 100644 index c0dcc6ca..00000000 Binary files a/askbot/skins/common/media/js/tinymce/themes/advanced/skins/o2k7/img/button_bg_silver.png and /dev/null differ diff --git a/askbot/skins/common/media/js/tinymce/themes/advanced/skins/o2k7/ui.css b/askbot/skins/common/media/js/tinymce/themes/advanced/skins/o2k7/ui.css deleted file mode 100644 index a3102237..00000000 --- a/askbot/skins/common/media/js/tinymce/themes/advanced/skins/o2k7/ui.css +++ /dev/null @@ -1,222 +0,0 @@ -/* Reset */ -.o2k7Skin table, .o2k7Skin tbody, .o2k7Skin a, .o2k7Skin img, .o2k7Skin tr, .o2k7Skin div, .o2k7Skin td, .o2k7Skin iframe, .o2k7Skin span, .o2k7Skin *, .o2k7Skin .mceText {border:0; margin:0; padding:0; background:transparent; white-space:nowrap; text-decoration:none; font-weight:normal; cursor:default; color:#000; vertical-align:baseline; width:auto; border-collapse:separate; text-align:left} -.o2k7Skin a:hover, .o2k7Skin a:link, .o2k7Skin a:visited, .o2k7Skin a:active {text-decoration:none; font-weight:normal; cursor:default; color:#000} -.o2k7Skin table td {vertical-align:middle} - -/* Containers */ -.o2k7Skin table {background:transparent} -.o2k7Skin iframe {display:block;} -.o2k7Skin .mceToolbar {height:26px} - -/* External */ -.o2k7Skin .mceExternalToolbar {position:absolute; border:1px solid #ABC6DD; border-bottom:0; display:none} -.o2k7Skin .mceExternalToolbar td.mceToolbar {padding-right:13px;} -.o2k7Skin .mceExternalClose {position:absolute; top:3px; right:3px; width:7px; height:7px; background:url(../../img/icons.gif) -820px 0} - -/* Layout */ -.o2k7Skin table.mceLayout {border:0; border-left:1px solid #ABC6DD; border-right:1px solid #ABC6DD} -.o2k7Skin table.mceLayout tr.mceFirst td {border-top:1px solid #ABC6DD} -.o2k7Skin table.mceLayout tr.mceLast td {border-bottom:1px solid #ABC6DD} -.o2k7Skin table.mceToolbar, .o2k7Skin tr.mceFirst .mceToolbar tr td, .o2k7Skin tr.mceLast .mceToolbar tr td {border:0; margin:0; padding:0} -.o2k7Skin .mceIframeContainer {border-top:1px solid #ABC6DD; border-bottom:1px solid #ABC6DD} -.o2k7Skin td.mceToolbar{background:#E5EFFD} -.o2k7Skin .mceStatusbar {background:#E5EFFD; display:block; font-family:'MS Sans Serif',sans-serif,Verdana,Arial; font-size:9pt; line-height:16px; overflow:visible; color:#000; height:20px} -.o2k7Skin .mceStatusbar div {float:left; padding:2px} -.o2k7Skin .mceStatusbar a.mceResize {display:block; float:right; background:url(../../img/icons.gif) -800px 0; width:20px; height:20px; cursor:se-resize; outline:0} -.o2k7Skin .mceStatusbar a:hover {text-decoration:underline} -.o2k7Skin table.mceToolbar {margin-left:3px} -.o2k7Skin .mceToolbar .mceToolbarStart span {display:block; background:url(img/button_bg.png) -22px 0; width:1px; height:22px; margin-left:3px;} -.o2k7Skin .mceToolbar td.mceFirst span {margin:0} -.o2k7Skin .mceToolbar .mceToolbarEnd span {display:block; background:url(img/button_bg.png) -22px 0; width:1px; height:22px} -.o2k7Skin .mceToolbar .mceToolbarEndListBox span, .o2k7Skin .mceToolbar .mceToolbarStartListBox span {display:none} -.o2k7Skin span.mceIcon, .o2k7Skin img.mceIcon {display:block; width:20px; height:20px} -.o2k7Skin .mceIcon {background:url(../../img/icons.gif) no-repeat 20px 20px} -.o2k7Skin td.mceCenter {text-align:center;} -.o2k7Skin td.mceCenter table {margin:0 auto; text-align:left;} -.o2k7Skin td.mceRight table {margin:0 0 0 auto;} - -/* Button */ -.o2k7Skin .mceButton {display:block; background:url(img/button_bg.png); width:22px; height:22px} -.o2k7Skin a.mceButton span, .o2k7Skin a.mceButton img {margin-left:1px} -.o2k7Skin .mceOldBoxModel a.mceButton span, .o2k7Skin .mceOldBoxModel a.mceButton img {margin:0 0 0 1px} -.o2k7Skin a.mceButtonEnabled:hover {background-color:#B2BBD0; background-position:0 -22px} -.o2k7Skin a.mceButtonActive, .o2k7Skin a.mceButtonSelected {background-position:0 -44px} -.o2k7Skin .mceButtonDisabled .mceIcon {opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)} -.o2k7Skin .mceButtonLabeled {width:auto} -.o2k7Skin .mceButtonLabeled span.mceIcon {float:left} -.o2k7Skin span.mceButtonLabel {display:block; font-size:10px; padding:4px 6px 0 22px; font-family:Tahoma,Verdana,Arial,Helvetica} -.o2k7Skin .mceButtonDisabled .mceButtonLabel {color:#888} - -/* Separator */ -.o2k7Skin .mceSeparator {display:block; background:url(img/button_bg.png) -22px 0; width:5px; height:22px} - -/* ListBox */ -.o2k7Skin .mceListBox {padding-left: 3px} -.o2k7Skin .mceListBox, .o2k7Skin .mceListBox a {display:block} -.o2k7Skin .mceListBox .mceText {padding-left:4px; text-align:left; width:70px; border:1px solid #b3c7e1; border-right:0; background:#eaf2fb; font-family:Tahoma,Verdana,Arial,Helvetica; font-size:11px; height:20px; line-height:20px; overflow:hidden} -.o2k7Skin .mceListBox .mceOpen {width:14px; height:22px; background:url(img/button_bg.png) -66px 0} -.o2k7Skin table.mceListBoxEnabled:hover .mceText, .o2k7Skin .mceListBoxHover .mceText, .o2k7Skin .mceListBoxSelected .mceText {background:#FFF} -.o2k7Skin table.mceListBoxEnabled:hover .mceOpen, .o2k7Skin .mceListBoxHover .mceOpen, .o2k7Skin .mceListBoxSelected .mceOpen {background-position:-66px -22px} -.o2k7Skin .mceListBoxDisabled .mceText {color:gray} -.o2k7Skin .mceListBoxMenu {overflow:auto; overflow-x:hidden; margin-left:3px} -.o2k7Skin .mceOldBoxModel .mceListBox .mceText {height:22px} -.o2k7Skin select.mceListBox {font-family:Tahoma,Verdana,Arial,Helvetica; font-size:12px; border:1px solid #b3c7e1; background:#FFF;} - -/* SplitButton */ -.o2k7Skin .mceSplitButton, .o2k7Skin .mceSplitButton a, .o2k7Skin .mceSplitButton span {display:block; height:22px; direction:ltr} -.o2k7Skin .mceSplitButton {background:url(img/button_bg.png)} -.o2k7Skin .mceSplitButton a.mceAction {width:22px} -.o2k7Skin .mceSplitButton span.mceAction {width:22px; background-image:url(../../img/icons.gif)} -.o2k7Skin .mceSplitButton a.mceOpen {width:10px; background:url(img/button_bg.png) -44px 0} -.o2k7Skin .mceSplitButton span.mceOpen {display:none} -.o2k7Skin table.mceSplitButtonEnabled:hover a.mceAction, .o2k7Skin .mceSplitButtonHover a.mceAction, .o2k7Skin .mceSplitButtonSelected {background:url(img/button_bg.png) 0 -22px} -.o2k7Skin table.mceSplitButtonEnabled:hover a.mceOpen, .o2k7Skin .mceSplitButtonHover a.mceOpen, .o2k7Skin .mceSplitButtonSelected a.mceOpen {background-position:-44px -44px} -.o2k7Skin .mceSplitButtonDisabled .mceAction {opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)} -.o2k7Skin .mceSplitButtonActive {background-position:0 -44px} - -/* ColorSplitButton */ -.o2k7Skin div.mceColorSplitMenu table {background:#FFF; border:1px solid gray} -.o2k7Skin .mceColorSplitMenu td {padding:2px} -.o2k7Skin .mceColorSplitMenu a {display:block; width:9px; height:9px; overflow:hidden; border:1px solid #808080} -.o2k7Skin .mceColorSplitMenu td.mceMoreColors {padding:1px 3px 1px 1px} -.o2k7Skin .mceColorSplitMenu a.mceMoreColors {width:100%; height:auto; text-align:center; font-family:Tahoma,Verdana,Arial,Helvetica; font-size:11px; line-height:20px; border:1px solid #FFF} -.o2k7Skin .mceColorSplitMenu a.mceMoreColors:hover {border:1px solid #0A246A; background-color:#B6BDD2} -.o2k7Skin a.mceMoreColors:hover {border:1px solid #0A246A} -.o2k7Skin .mceColorPreview {margin-left:2px; width:16px; height:4px; overflow:hidden; background:#9a9b9a;overflow:hidden} -.o2k7Skin .mce_forecolor span.mceAction, .o2k7Skin .mce_backcolor span.mceAction {height:15px;overflow:hidden} - -/* Menu */ -.o2k7Skin .mceMenu {position:absolute; left:0; top:0; z-index:1000; border:1px solid #ABC6DD; direction:ltr} -.o2k7Skin .mceNoIcons span.mceIcon {width:0;} -.o2k7Skin .mceNoIcons a .mceText {padding-left:10px} -.o2k7Skin .mceMenu table {background:#FFF} -.o2k7Skin .mceMenu a, .o2k7Skin .mceMenu span, .o2k7Skin .mceMenu {display:block} -.o2k7Skin .mceMenu td {height:20px} -.o2k7Skin .mceMenu a {position:relative;padding:3px 0 4px 0} -.o2k7Skin .mceMenu .mceText {position:relative; display:block; font-family:Tahoma,Verdana,Arial,Helvetica; color:#000; cursor:default; margin:0; padding:0 25px 0 25px; display:block} -.o2k7Skin .mceMenu span.mceText, .o2k7Skin .mceMenu .mcePreview {font-size:11px} -.o2k7Skin .mceMenu pre.mceText {font-family:Monospace} -.o2k7Skin .mceMenu .mceIcon {position:absolute; top:0; left:0; width:22px;} -.o2k7Skin .mceMenu .mceMenuItemEnabled a:hover, .o2k7Skin .mceMenu .mceMenuItemActive {background-color:#dbecf3} -.o2k7Skin td.mceMenuItemSeparator {background:#DDD; height:1px} -.o2k7Skin .mceMenuItemTitle a {border:0; background:#E5EFFD; border-bottom:1px solid #ABC6DD} -.o2k7Skin .mceMenuItemTitle span.mceText {color:#000; font-weight:bold; padding-left:4px} -.o2k7Skin .mceMenuItemDisabled .mceText {color:#888} -.o2k7Skin .mceMenuItemSelected .mceIcon {background:url(../default/img/menu_check.gif)} -.o2k7Skin .mceNoIcons .mceMenuItemSelected a {background:url(../default/img/menu_arrow.gif) no-repeat -6px center} -.o2k7Skin .mceMenu span.mceMenuLine {display:none} -.o2k7Skin .mceMenuItemSub a {background:url(../default/img/menu_arrow.gif) no-repeat top right;} -.o2k7Skin .mceMenuItem td, .o2k7Skin .mceMenuItem th {line-height: normal} - -/* Progress,Resize */ -.o2k7Skin .mceBlocker {position:absolute; left:0; top:0; z-index:1000; opacity:0.5; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=50); background:#FFF} -.o2k7Skin .mceProgress {position:absolute; left:0; top:0; z-index:1001; background:url(../default/img/progress.gif) no-repeat; width:32px; height:32px; margin:-16px 0 0 -16px} - -/* Rtl */ -.mceRtl .mceListBox .mceText {text-align: right; padding: 0 4px 0 0} -.mceRtl .mceMenuItem .mceText {text-align: right} - -/* Formats */ -.o2k7Skin .mce_formatPreview a {font-size:10px} -.o2k7Skin .mce_p span.mceText {} -.o2k7Skin .mce_address span.mceText {font-style:italic} -.o2k7Skin .mce_pre span.mceText {font-family:monospace} -.o2k7Skin .mce_h1 span.mceText {font-weight:bolder; font-size: 2em} -.o2k7Skin .mce_h2 span.mceText {font-weight:bolder; font-size: 1.5em} -.o2k7Skin .mce_h3 span.mceText {font-weight:bolder; font-size: 1.17em} -.o2k7Skin .mce_h4 span.mceText {font-weight:bolder; font-size: 1em} -.o2k7Skin .mce_h5 span.mceText {font-weight:bolder; font-size: .83em} -.o2k7Skin .mce_h6 span.mceText {font-weight:bolder; font-size: .75em} - -/* Theme */ -.o2k7Skin span.mce_bold {background-position:0 0} -.o2k7Skin span.mce_italic {background-position:-60px 0} -.o2k7Skin span.mce_underline {background-position:-140px 0} -.o2k7Skin span.mce_strikethrough {background-position:-120px 0} -.o2k7Skin span.mce_undo {background-position:-160px 0} -.o2k7Skin span.mce_redo {background-position:-100px 0} -.o2k7Skin span.mce_cleanup {background-position:-40px 0} -.o2k7Skin span.mce_bullist {background-position:-20px 0} -.o2k7Skin span.mce_numlist {background-position:-80px 0} -.o2k7Skin span.mce_justifyleft {background-position:-460px 0} -.o2k7Skin span.mce_justifyright {background-position:-480px 0} -.o2k7Skin span.mce_justifycenter {background-position:-420px 0} -.o2k7Skin span.mce_justifyfull {background-position:-440px 0} -.o2k7Skin span.mce_anchor {background-position:-200px 0} -.o2k7Skin span.mce_indent {background-position:-400px 0} -.o2k7Skin span.mce_outdent {background-position:-540px 0} -.o2k7Skin span.mce_link {background-position:-500px 0} -.o2k7Skin span.mce_unlink {background-position:-640px 0} -.o2k7Skin span.mce_sub {background-position:-600px 0} -.o2k7Skin span.mce_sup {background-position:-620px 0} -.o2k7Skin span.mce_removeformat {background-position:-580px 0} -.o2k7Skin span.mce_newdocument {background-position:-520px 0} -.o2k7Skin span.mce_image {background-position:-380px 0} -.o2k7Skin span.mce_help {background-position:-340px 0} -.o2k7Skin span.mce_code {background-position:-260px 0} -.o2k7Skin span.mce_hr {background-position:-360px 0} -.o2k7Skin span.mce_visualaid {background-position:-660px 0} -.o2k7Skin span.mce_charmap {background-position:-240px 0} -.o2k7Skin span.mce_paste {background-position:-560px 0} -.o2k7Skin span.mce_copy {background-position:-700px 0} -.o2k7Skin span.mce_cut {background-position:-680px 0} -.o2k7Skin span.mce_blockquote {background-position:-220px 0} -.o2k7Skin .mce_forecolor span.mceAction {background-position:-720px 0} -.o2k7Skin .mce_backcolor span.mceAction {background-position:-760px 0} -.o2k7Skin span.mce_forecolorpicker {background-position:-720px 0} -.o2k7Skin span.mce_backcolorpicker {background-position:-760px 0} - -/* Plugins */ -.o2k7Skin span.mce_advhr {background-position:-0px -20px} -.o2k7Skin span.mce_ltr {background-position:-20px -20px} -.o2k7Skin span.mce_rtl {background-position:-40px -20px} -.o2k7Skin span.mce_emotions {background-position:-60px -20px} -.o2k7Skin span.mce_fullpage {background-position:-80px -20px} -.o2k7Skin span.mce_fullscreen {background-position:-100px -20px} -.o2k7Skin span.mce_iespell {background-position:-120px -20px} -.o2k7Skin span.mce_insertdate {background-position:-140px -20px} -.o2k7Skin span.mce_inserttime {background-position:-160px -20px} -.o2k7Skin span.mce_absolute {background-position:-180px -20px} -.o2k7Skin span.mce_backward {background-position:-200px -20px} -.o2k7Skin span.mce_forward {background-position:-220px -20px} -.o2k7Skin span.mce_insert_layer {background-position:-240px -20px} -.o2k7Skin span.mce_insertlayer {background-position:-260px -20px} -.o2k7Skin span.mce_movebackward {background-position:-280px -20px} -.o2k7Skin span.mce_moveforward {background-position:-300px -20px} -.o2k7Skin span.mce_media {background-position:-320px -20px} -.o2k7Skin span.mce_nonbreaking {background-position:-340px -20px} -.o2k7Skin span.mce_pastetext {background-position:-360px -20px} -.o2k7Skin span.mce_pasteword {background-position:-380px -20px} -.o2k7Skin span.mce_selectall {background-position:-400px -20px} -.o2k7Skin span.mce_preview {background-position:-420px -20px} -.o2k7Skin span.mce_print {background-position:-440px -20px} -.o2k7Skin span.mce_cancel {background-position:-460px -20px} -.o2k7Skin span.mce_save {background-position:-480px -20px} -.o2k7Skin span.mce_replace {background-position:-500px -20px} -.o2k7Skin span.mce_search {background-position:-520px -20px} -.o2k7Skin span.mce_styleprops {background-position:-560px -20px} -.o2k7Skin span.mce_table {background-position:-580px -20px} -.o2k7Skin span.mce_cell_props {background-position:-600px -20px} -.o2k7Skin span.mce_delete_table {background-position:-620px -20px} -.o2k7Skin span.mce_delete_col {background-position:-640px -20px} -.o2k7Skin span.mce_delete_row {background-position:-660px -20px} -.o2k7Skin span.mce_col_after {background-position:-680px -20px} -.o2k7Skin span.mce_col_before {background-position:-700px -20px} -.o2k7Skin span.mce_row_after {background-position:-720px -20px} -.o2k7Skin span.mce_row_before {background-position:-740px -20px} -.o2k7Skin span.mce_merge_cells {background-position:-760px -20px} -.o2k7Skin span.mce_table_props {background-position:-980px -20px} -.o2k7Skin span.mce_row_props {background-position:-780px -20px} -.o2k7Skin span.mce_split_cells {background-position:-800px -20px} -.o2k7Skin span.mce_template {background-position:-820px -20px} -.o2k7Skin span.mce_visualchars {background-position:-840px -20px} -.o2k7Skin span.mce_abbr {background-position:-860px -20px} -.o2k7Skin span.mce_acronym {background-position:-880px -20px} -.o2k7Skin span.mce_attribs {background-position:-900px -20px} -.o2k7Skin span.mce_cite {background-position:-920px -20px} -.o2k7Skin span.mce_del {background-position:-940px -20px} -.o2k7Skin span.mce_ins {background-position:-960px -20px} -.o2k7Skin span.mce_pagebreak {background-position:0 -40px} -.o2k7Skin span.mce_restoredraft {background-position:-20px -40px} -.o2k7Skin span.mce_spellchecker {background-position:-540px -20px} -.o2k7Skin span.mce_visualblocks {background-position: -40px -40px} diff --git a/askbot/skins/common/media/js/tinymce/themes/advanced/skins/o2k7/ui_black.css b/askbot/skins/common/media/js/tinymce/themes/advanced/skins/o2k7/ui_black.css deleted file mode 100644 index 50c9b76a..00000000 --- a/askbot/skins/common/media/js/tinymce/themes/advanced/skins/o2k7/ui_black.css +++ /dev/null @@ -1,8 +0,0 @@ -/* Black */ -.o2k7SkinBlack .mceToolbar .mceToolbarStart span, .o2k7SkinBlack .mceToolbar .mceToolbarEnd span, .o2k7SkinBlack .mceButton, .o2k7SkinBlack .mceSplitButton, .o2k7SkinBlack .mceSeparator, .o2k7SkinBlack .mceSplitButton a.mceOpen, .o2k7SkinBlack .mceListBox a.mceOpen {background-image:url(img/button_bg_black.png)} -.o2k7SkinBlack td.mceToolbar, .o2k7SkinBlack td.mceStatusbar, .o2k7SkinBlack .mceMenuItemTitle a, .o2k7SkinBlack .mceMenuItemTitle span.mceText, .o2k7SkinBlack .mceStatusbar div, .o2k7SkinBlack .mceStatusbar span, .o2k7SkinBlack .mceStatusbar a {background:#535353; color:#FFF} -.o2k7SkinBlack table.mceListBoxEnabled .mceText, o2k7SkinBlack .mceListBox .mceText {background:#FFF; border:1px solid #CBCFD4; border-bottom-color:#989FA9; border-right:0} -.o2k7SkinBlack table.mceListBoxEnabled:hover .mceText, .o2k7SkinBlack .mceListBoxHover .mceText, .o2k7SkinBlack .mceListBoxSelected .mceText {background:#FFF; border:1px solid #FFBD69; border-right:0} -.o2k7SkinBlack .mceExternalToolbar, .o2k7SkinBlack .mceListBox .mceText, .o2k7SkinBlack div.mceMenu, .o2k7SkinBlack table.mceLayout, .o2k7SkinBlack .mceMenuItemTitle a, .o2k7SkinBlack table.mceLayout tr.mceFirst td, .o2k7SkinBlack table.mceLayout, .o2k7SkinBlack .mceMenuItemTitle a, .o2k7SkinBlack table.mceLayout tr.mceLast td, .o2k7SkinBlack .mceIframeContainer {border-color: #535353;} -.o2k7SkinBlack table.mceSplitButtonEnabled:hover a.mceAction, .o2k7SkinBlack .mceSplitButtonHover a.mceAction, .o2k7SkinBlack .mceSplitButtonSelected {background-image:url(img/button_bg_black.png)} -.o2k7SkinBlack .mceMenu .mceMenuItemEnabled a:hover, .o2k7SkinBlack .mceMenu .mceMenuItemActive {background-color:#FFE7A1} \ No newline at end of file diff --git a/askbot/skins/common/media/js/tinymce/themes/advanced/skins/o2k7/ui_silver.css b/askbot/skins/common/media/js/tinymce/themes/advanced/skins/o2k7/ui_silver.css deleted file mode 100644 index 960a8e47..00000000 --- a/askbot/skins/common/media/js/tinymce/themes/advanced/skins/o2k7/ui_silver.css +++ /dev/null @@ -1,5 +0,0 @@ -/* Silver */ -.o2k7SkinSilver .mceToolbar .mceToolbarStart span, .o2k7SkinSilver .mceButton, .o2k7SkinSilver .mceSplitButton, .o2k7SkinSilver .mceSeparator, .o2k7SkinSilver .mceSplitButton a.mceOpen, .o2k7SkinSilver .mceListBox a.mceOpen {background-image:url(img/button_bg_silver.png)} -.o2k7SkinSilver td.mceToolbar, .o2k7SkinSilver td.mceStatusbar, .o2k7SkinSilver .mceMenuItemTitle a {background:#eee} -.o2k7SkinSilver .mceListBox .mceText {background:#FFF} -.o2k7SkinSilver .mceExternalToolbar, .o2k7SkinSilver .mceListBox .mceText, .o2k7SkinSilver div.mceMenu, .o2k7SkinSilver table.mceLayout, .o2k7SkinSilver .mceMenuItemTitle a, .o2k7SkinSilver table.mceLayout tr.mceFirst td, .o2k7SkinSilver table.mceLayout, .o2k7SkinSilver .mceMenuItemTitle a, .o2k7SkinSilver table.mceLayout tr.mceLast td, .o2k7SkinSilver .mceIframeContainer {border-color: #bbb} diff --git a/askbot/skins/common/media/js/tinymce/themes/advanced/source_editor.htm b/askbot/skins/common/media/js/tinymce/themes/advanced/source_editor.htm deleted file mode 100644 index dd973fcc..00000000 --- a/askbot/skins/common/media/js/tinymce/themes/advanced/source_editor.htm +++ /dev/null @@ -1,25 +0,0 @@ - - - {#advanced_dlg.code_title} - - - - -
    -
    - -
    - -
    - -
    - - - -
    - - -
    -
    - - diff --git a/askbot/skins/common/media/js/tinymce/themes/simple/editor_template.js b/askbot/skins/common/media/js/tinymce/themes/simple/editor_template.js deleted file mode 100644 index 4b3209cc..00000000 --- a/askbot/skins/common/media/js/tinymce/themes/simple/editor_template.js +++ /dev/null @@ -1 +0,0 @@ -(function(){var a=tinymce.DOM;tinymce.ThemeManager.requireLangPack("simple");tinymce.create("tinymce.themes.SimpleTheme",{init:function(c,d){var e=this,b=["Bold","Italic","Underline","Strikethrough","InsertUnorderedList","InsertOrderedList"],f=c.settings;e.editor=c;c.contentCSS.push(d+"/skins/"+f.skin+"/content.css");c.onInit.add(function(){c.onNodeChange.add(function(h,g){tinymce.each(b,function(i){g.get(i.toLowerCase()).setActive(h.queryCommandState(i))})})});a.loadCSS((f.editor_css?c.documentBaseURI.toAbsolute(f.editor_css):"")||d+"/skins/"+f.skin+"/ui.css")},renderUI:function(h){var e=this,i=h.targetNode,b,c,d=e.editor,f=d.controlManager,g;i=a.insertAfter(a.create("span",{id:d.id+"_container","class":"mceEditor "+d.settings.skin+"SimpleSkin"}),i);i=g=a.add(i,"table",{cellPadding:0,cellSpacing:0,"class":"mceLayout"});i=c=a.add(i,"tbody");i=a.add(c,"tr");i=b=a.add(a.add(i,"td"),"div",{"class":"mceIframeContainer"});i=a.add(a.add(c,"tr",{"class":"last"}),"td",{"class":"mceToolbar mceLast",align:"center"});c=e.toolbar=f.createToolbar("tools1");c.add(f.createButton("bold",{title:"simple.bold_desc",cmd:"Bold"}));c.add(f.createButton("italic",{title:"simple.italic_desc",cmd:"Italic"}));c.add(f.createButton("underline",{title:"simple.underline_desc",cmd:"Underline"}));c.add(f.createButton("strikethrough",{title:"simple.striketrough_desc",cmd:"Strikethrough"}));c.add(f.createSeparator());c.add(f.createButton("undo",{title:"simple.undo_desc",cmd:"Undo"}));c.add(f.createButton("redo",{title:"simple.redo_desc",cmd:"Redo"}));c.add(f.createSeparator());c.add(f.createButton("cleanup",{title:"simple.cleanup_desc",cmd:"mceCleanup"}));c.add(f.createSeparator());c.add(f.createButton("insertunorderedlist",{title:"simple.bullist_desc",cmd:"InsertUnorderedList"}));c.add(f.createButton("insertorderedlist",{title:"simple.numlist_desc",cmd:"InsertOrderedList"}));c.renderTo(i);return{iframeContainer:b,editorContainer:d.id+"_container",sizeContainer:g,deltaHeight:-20}},getInfo:function(){return{longname:"Simple theme",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.ThemeManager.add("simple",tinymce.themes.SimpleTheme)})(); \ No newline at end of file diff --git a/askbot/skins/common/media/js/tinymce/themes/simple/editor_template_src.js b/askbot/skins/common/media/js/tinymce/themes/simple/editor_template_src.js deleted file mode 100644 index 01ce87c5..00000000 --- a/askbot/skins/common/media/js/tinymce/themes/simple/editor_template_src.js +++ /dev/null @@ -1,84 +0,0 @@ -/** - * editor_template_src.js - * - * Copyright 2009, Moxiecode Systems AB - * Released under LGPL License. - * - * License: http://tinymce.moxiecode.com/license - * Contributing: http://tinymce.moxiecode.com/contributing - */ - -(function() { - var DOM = tinymce.DOM; - - // Tell it to load theme specific language pack(s) - tinymce.ThemeManager.requireLangPack('simple'); - - tinymce.create('tinymce.themes.SimpleTheme', { - init : function(ed, url) { - var t = this, states = ['Bold', 'Italic', 'Underline', 'Strikethrough', 'InsertUnorderedList', 'InsertOrderedList'], s = ed.settings; - - t.editor = ed; - ed.contentCSS.push(url + "/skins/" + s.skin + "/content.css"); - - ed.onInit.add(function() { - ed.onNodeChange.add(function(ed, cm) { - tinymce.each(states, function(c) { - cm.get(c.toLowerCase()).setActive(ed.queryCommandState(c)); - }); - }); - }); - - DOM.loadCSS((s.editor_css ? ed.documentBaseURI.toAbsolute(s.editor_css) : '') || url + "/skins/" + s.skin + "/ui.css"); - }, - - renderUI : function(o) { - var t = this, n = o.targetNode, ic, tb, ed = t.editor, cf = ed.controlManager, sc; - - n = DOM.insertAfter(DOM.create('span', {id : ed.id + '_container', 'class' : 'mceEditor ' + ed.settings.skin + 'SimpleSkin'}), n); - n = sc = DOM.add(n, 'table', {cellPadding : 0, cellSpacing : 0, 'class' : 'mceLayout'}); - n = tb = DOM.add(n, 'tbody'); - - // Create iframe container - n = DOM.add(tb, 'tr'); - n = ic = DOM.add(DOM.add(n, 'td'), 'div', {'class' : 'mceIframeContainer'}); - - // Create toolbar container - n = DOM.add(DOM.add(tb, 'tr', {'class' : 'last'}), 'td', {'class' : 'mceToolbar mceLast', align : 'center'}); - - // Create toolbar - tb = t.toolbar = cf.createToolbar("tools1"); - tb.add(cf.createButton('bold', {title : 'simple.bold_desc', cmd : 'Bold'})); - tb.add(cf.createButton('italic', {title : 'simple.italic_desc', cmd : 'Italic'})); - tb.add(cf.createButton('underline', {title : 'simple.underline_desc', cmd : 'Underline'})); - tb.add(cf.createButton('strikethrough', {title : 'simple.striketrough_desc', cmd : 'Strikethrough'})); - tb.add(cf.createSeparator()); - tb.add(cf.createButton('undo', {title : 'simple.undo_desc', cmd : 'Undo'})); - tb.add(cf.createButton('redo', {title : 'simple.redo_desc', cmd : 'Redo'})); - tb.add(cf.createSeparator()); - tb.add(cf.createButton('cleanup', {title : 'simple.cleanup_desc', cmd : 'mceCleanup'})); - tb.add(cf.createSeparator()); - tb.add(cf.createButton('insertunorderedlist', {title : 'simple.bullist_desc', cmd : 'InsertUnorderedList'})); - tb.add(cf.createButton('insertorderedlist', {title : 'simple.numlist_desc', cmd : 'InsertOrderedList'})); - tb.renderTo(n); - - return { - iframeContainer : ic, - editorContainer : ed.id + '_container', - sizeContainer : sc, - deltaHeight : -20 - }; - }, - - getInfo : function() { - return { - longname : 'Simple theme', - author : 'Moxiecode Systems AB', - authorurl : 'http://tinymce.moxiecode.com', - version : tinymce.majorVersion + "." + tinymce.minorVersion - } - } - }); - - tinymce.ThemeManager.add('simple', tinymce.themes.SimpleTheme); -})(); \ No newline at end of file diff --git a/askbot/skins/common/media/js/tinymce/themes/simple/img/icons.gif b/askbot/skins/common/media/js/tinymce/themes/simple/img/icons.gif deleted file mode 100644 index 6fcbcb5d..00000000 Binary files a/askbot/skins/common/media/js/tinymce/themes/simple/img/icons.gif and /dev/null differ diff --git a/askbot/skins/common/media/js/tinymce/themes/simple/langs/en.js b/askbot/skins/common/media/js/tinymce/themes/simple/langs/en.js deleted file mode 100644 index 088ed0fc..00000000 --- a/askbot/skins/common/media/js/tinymce/themes/simple/langs/en.js +++ /dev/null @@ -1 +0,0 @@ -tinyMCE.addI18n('en.simple',{"cleanup_desc":"Cleanup Messy Code","redo_desc":"Redo (Ctrl+Y)","undo_desc":"Undo (Ctrl+Z)","numlist_desc":"Insert/Remove Numbered List","bullist_desc":"Insert/Remove Bulleted List","striketrough_desc":"Strikethrough","underline_desc":"Underline (Ctrl+U)","italic_desc":"Italic (Ctrl+I)","bold_desc":"Bold (Ctrl+B)"}); \ No newline at end of file diff --git a/askbot/skins/common/media/js/tinymce/themes/simple/skins/default/content.css b/askbot/skins/common/media/js/tinymce/themes/simple/skins/default/content.css deleted file mode 100644 index 2506c807..00000000 --- a/askbot/skins/common/media/js/tinymce/themes/simple/skins/default/content.css +++ /dev/null @@ -1,25 +0,0 @@ -body, td, pre { - font-family: Verdana, Arial, Helvetica, sans-serif; - font-size: 10px; -} - -body { - background-color: #FFFFFF; -} - -.mceVisualAid { - border: 1px dashed #BBBBBB; -} - -/* MSIE specific */ - -* html body { - scrollbar-3dlight-color: #F0F0EE; - scrollbar-arrow-color: #676662; - scrollbar-base-color: #F0F0EE; - scrollbar-darkshadow-color: #DDDDDD; - scrollbar-face-color: #E0E0DD; - scrollbar-highlight-color: #F0F0EE; - scrollbar-shadow-color: #F0F0EE; - scrollbar-track-color: #F5F5F5; -} diff --git a/askbot/skins/common/media/js/tinymce/themes/simple/skins/default/ui.css b/askbot/skins/common/media/js/tinymce/themes/simple/skins/default/ui.css deleted file mode 100644 index 076fe84e..00000000 --- a/askbot/skins/common/media/js/tinymce/themes/simple/skins/default/ui.css +++ /dev/null @@ -1,32 +0,0 @@ -/* Reset */ -.defaultSimpleSkin table, .defaultSimpleSkin tbody, .defaultSimpleSkin a, .defaultSimpleSkin img, .defaultSimpleSkin tr, .defaultSimpleSkin div, .defaultSimpleSkin td, .defaultSimpleSkin iframe, .defaultSimpleSkin span, .defaultSimpleSkin * {border:0; margin:0; padding:0; background:transparent; white-space:nowrap; text-decoration:none; font-weight:normal; cursor:default; color:#000} - -/* Containers */ -.defaultSimpleSkin {position:relative} -.defaultSimpleSkin table.mceLayout {background:#F0F0EE; border:1px solid #CCC;} -.defaultSimpleSkin iframe {display:block; background:#FFF; border-bottom:1px solid #CCC;} -.defaultSimpleSkin .mceToolbar {height:24px;} - -/* Layout */ -.defaultSimpleSkin span.mceIcon, .defaultSimpleSkin img.mceIcon {display:block; width:20px; height:20px} -.defaultSimpleSkin .mceIcon {background:url(../../img/icons.gif) no-repeat 20px 20px} - -/* Button */ -.defaultSimpleSkin .mceButton {display:block; border:1px solid #F0F0EE; width:20px; height:20px} -.defaultSimpleSkin a.mceButtonEnabled:hover {border:1px solid #0A246A; background-color:#B2BBD0} -.defaultSimpleSkin a.mceButtonActive {border:1px solid #0A246A; background-color:#C2CBE0} -.defaultSimpleSkin .mceButtonDisabled span {opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)} - -/* Separator */ -.defaultSimpleSkin .mceSeparator {display:block; background:url(../../img/icons.gif) -180px 0; width:2px; height:20px; margin:0 2px 0 4px} - -/* Theme */ -.defaultSimpleSkin span.mce_bold {background-position:0 0} -.defaultSimpleSkin span.mce_italic {background-position:-60px 0} -.defaultSimpleSkin span.mce_underline {background-position:-140px 0} -.defaultSimpleSkin span.mce_strikethrough {background-position:-120px 0} -.defaultSimpleSkin span.mce_undo {background-position:-160px 0} -.defaultSimpleSkin span.mce_redo {background-position:-100px 0} -.defaultSimpleSkin span.mce_cleanup {background-position:-40px 0} -.defaultSimpleSkin span.mce_insertunorderedlist {background-position:-20px 0} -.defaultSimpleSkin span.mce_insertorderedlist {background-position:-80px 0} diff --git a/askbot/skins/common/media/js/tinymce/themes/simple/skins/o2k7/content.css b/askbot/skins/common/media/js/tinymce/themes/simple/skins/o2k7/content.css deleted file mode 100644 index 595809fa..00000000 --- a/askbot/skins/common/media/js/tinymce/themes/simple/skins/o2k7/content.css +++ /dev/null @@ -1,17 +0,0 @@ -body, td, pre {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;} - -body {background: #FFF;} -.mceVisualAid {border: 1px dashed #BBB;} - -/* IE */ - -* html body { -scrollbar-3dlight-color: #F0F0EE; -scrollbar-arrow-color: #676662; -scrollbar-base-color: #F0F0EE; -scrollbar-darkshadow-color: #DDDDDD; -scrollbar-face-color: #E0E0DD; -scrollbar-highlight-color: #F0F0EE; -scrollbar-shadow-color: #F0F0EE; -scrollbar-track-color: #F5F5F5; -} diff --git a/askbot/skins/common/media/js/tinymce/themes/simple/skins/o2k7/img/button_bg.png b/askbot/skins/common/media/js/tinymce/themes/simple/skins/o2k7/img/button_bg.png deleted file mode 100644 index 527e3495..00000000 Binary files a/askbot/skins/common/media/js/tinymce/themes/simple/skins/o2k7/img/button_bg.png and /dev/null differ diff --git a/askbot/skins/common/media/js/tinymce/themes/simple/skins/o2k7/ui.css b/askbot/skins/common/media/js/tinymce/themes/simple/skins/o2k7/ui.css deleted file mode 100644 index cf6c35d1..00000000 --- a/askbot/skins/common/media/js/tinymce/themes/simple/skins/o2k7/ui.css +++ /dev/null @@ -1,35 +0,0 @@ -/* Reset */ -.o2k7SimpleSkin table, .o2k7SimpleSkin tbody, .o2k7SimpleSkin a, .o2k7SimpleSkin img, .o2k7SimpleSkin tr, .o2k7SimpleSkin div, .o2k7SimpleSkin td, .o2k7SimpleSkin iframe, .o2k7SimpleSkin span, .o2k7SimpleSkin * {border:0; margin:0; padding:0; background:transparent; white-space:nowrap; text-decoration:none; font-weight:normal; cursor:default; color:#000} - -/* Containers */ -.o2k7SimpleSkin {position:relative} -.o2k7SimpleSkin table.mceLayout {background:#E5EFFD; border:1px solid #ABC6DD;} -.o2k7SimpleSkin iframe {display:block; background:#FFF; border-bottom:1px solid #ABC6DD;} -.o2k7SimpleSkin .mceToolbar {height:26px;} - -/* Layout */ -.o2k7SimpleSkin .mceToolbar .mceToolbarStart span {display:block; background:url(img/button_bg.png) -22px 0; width:1px; height:22px; } -.o2k7SimpleSkin .mceToolbar .mceToolbarEnd span {display:block; background:url(img/button_bg.png) -22px 0; width:1px; height:22px} -.o2k7SimpleSkin span.mceIcon, .o2k7SimpleSkin img.mceIcon {display:block; width:20px; height:20px} -.o2k7SimpleSkin .mceIcon {background:url(../../img/icons.gif) no-repeat 20px 20px} - -/* Button */ -.o2k7SimpleSkin .mceButton {display:block; background:url(img/button_bg.png); width:22px; height:22px} -.o2k7SimpleSkin a.mceButton span, .o2k7SimpleSkin a.mceButton img {margin:1px 0 0 1px} -.o2k7SimpleSkin a.mceButtonEnabled:hover {background-color:#B2BBD0; background-position:0 -22px} -.o2k7SimpleSkin a.mceButtonActive {background-position:0 -44px} -.o2k7SimpleSkin .mceButtonDisabled span {opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)} - -/* Separator */ -.o2k7SimpleSkin .mceSeparator {display:block; background:url(img/button_bg.png) -22px 0; width:5px; height:22px} - -/* Theme */ -.o2k7SimpleSkin span.mce_bold {background-position:0 0} -.o2k7SimpleSkin span.mce_italic {background-position:-60px 0} -.o2k7SimpleSkin span.mce_underline {background-position:-140px 0} -.o2k7SimpleSkin span.mce_strikethrough {background-position:-120px 0} -.o2k7SimpleSkin span.mce_undo {background-position:-160px 0} -.o2k7SimpleSkin span.mce_redo {background-position:-100px 0} -.o2k7SimpleSkin span.mce_cleanup {background-position:-40px 0} -.o2k7SimpleSkin span.mce_insertunorderedlist {background-position:-20px 0} -.o2k7SimpleSkin span.mce_insertorderedlist {background-position:-80px 0} diff --git a/askbot/skins/common/media/js/tinymce/tiny_mce.js b/askbot/skins/common/media/js/tinymce/tiny_mce.js deleted file mode 100644 index ef712d82..00000000 --- a/askbot/skins/common/media/js/tinymce/tiny_mce.js +++ /dev/null @@ -1 +0,0 @@ -(function(e){var a=/^\s*|\s*$/g,b,d="B".replace(/A(.)|B/,"$1")==="$1";var c={majorVersion:"3",minorVersion:"5.3",releaseDate:"2012-06-19",_init:function(){var s=this,q=document,o=navigator,g=o.userAgent,m,f,l,k,j,r;s.isOpera=e.opera&&opera.buildNumber;s.isWebKit=/WebKit/.test(g);s.isIE=!s.isWebKit&&!s.isOpera&&(/MSIE/gi).test(g)&&(/Explorer/gi).test(o.appName);s.isIE6=s.isIE&&/MSIE [56]/.test(g);s.isIE7=s.isIE&&/MSIE [7]/.test(g);s.isIE8=s.isIE&&/MSIE [8]/.test(g);s.isIE9=s.isIE&&/MSIE [9]/.test(g);s.isGecko=!s.isWebKit&&/Gecko/.test(g);s.isMac=g.indexOf("Mac")!=-1;s.isAir=/adobeair/i.test(g);s.isIDevice=/(iPad|iPhone)/.test(g);s.isIOS5=s.isIDevice&&g.match(/AppleWebKit\/(\d*)/)[1]>=534;if(e.tinyMCEPreInit){s.suffix=tinyMCEPreInit.suffix;s.baseURL=tinyMCEPreInit.base;s.query=tinyMCEPreInit.query;return}s.suffix="";f=q.getElementsByTagName("base");for(m=0;m0?b:[f.scope]);if(e===false){break}}a.inDispatch=false;return e}});(function(){var a=tinymce.each;tinymce.create("tinymce.util.URI",{URI:function(e,g){var f=this,i,d,c,h;e=tinymce.trim(e);g=f.settings=g||{};if(/^([\w\-]+):([^\/]{2})/i.test(e)||/^\s*#/.test(e)){f.source=e;return}if(e.indexOf("/")===0&&e.indexOf("//")!==0){e=(g.base_uri?g.base_uri.protocol||"http":"http")+"://mce_host"+e}if(!/^[\w\-]*:?\/\//.test(e)){h=g.base_uri?g.base_uri.path:new tinymce.util.URI(location.href).directory;e=((g.base_uri&&g.base_uri.protocol)||"http")+"://mce_host"+f.toAbsPath(h,e)}e=e.replace(/@@/g,"(mce_at)");e=/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@\/]*):?([^:@\/]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(e);a(["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],function(b,j){var k=e[j];if(k){k=k.replace(/\(mce_at\)/g,"@@")}f[b]=k});c=g.base_uri;if(c){if(!f.protocol){f.protocol=c.protocol}if(!f.userInfo){f.userInfo=c.userInfo}if(!f.port&&f.host==="mce_host"){f.port=c.port}if(!f.host||f.host==="mce_host"){f.host=c.host}f.source=""}},setPath:function(c){var b=this;c=/^(.*?)\/?(\w+)?$/.exec(c);b.path=c[0];b.directory=c[1];b.file=c[2];b.source="";b.getURI()},toRelative:function(b){var d=this,f;if(b==="./"){return b}b=new tinymce.util.URI(b,{base_uri:d});if((b.host!="mce_host"&&d.host!=b.host&&b.host)||d.port!=b.port||d.protocol!=b.protocol){return b.getURI()}var c=d.getURI(),e=b.getURI();if(c==e||(c.charAt(c.length-1)=="/"&&c.substr(0,c.length-1)==e)){return c}f=d.toRelPath(d.path,b.path);if(b.query){f+="?"+b.query}if(b.anchor){f+="#"+b.anchor}return f},toAbsolute:function(b,c){b=new tinymce.util.URI(b,{base_uri:this});return b.getURI(this.host==b.host&&this.protocol==b.protocol?c:0)},toRelPath:function(g,h){var c,f=0,d="",e,b;g=g.substring(0,g.lastIndexOf("/"));g=g.split("/");c=h.split("/");if(g.length>=c.length){for(e=0,b=g.length;e=c.length||g[e]!=c[e]){f=e+1;break}}}if(g.length=g.length||g[e]!=c[e]){f=e+1;break}}}if(f===1){return h}for(e=0,b=g.length-(f-1);e=0;c--){if(f[c].length===0||f[c]==="."){continue}if(f[c]===".."){b++;continue}if(b>0){b--;continue}h.push(f[c])}c=e.length-b;if(c<=0){g=h.reverse().join("/")}else{g=e.slice(0,c).join("/")+"/"+h.reverse().join("/")}if(g.indexOf("/")!==0){g="/"+g}if(d&&g.lastIndexOf("/")!==g.length-1){g+=d}return g},getURI:function(d){var c,b=this;if(!b.source||d){c="";if(!d){if(b.protocol){c+=b.protocol+"://"}if(b.userInfo){c+=b.userInfo+"@"}if(b.host){c+=b.host}if(b.port){c+=":"+b.port}}if(b.path){c+=b.path}if(b.query){c+="?"+b.query}if(b.anchor){c+="#"+b.anchor}b.source=c}return b.source}})})();(function(){var a=tinymce.each;tinymce.create("static tinymce.util.Cookie",{getHash:function(d){var b=this.get(d),c;if(b){a(b.split("&"),function(e){e=e.split("=");c=c||{};c[unescape(e[0])]=unescape(e[1])})}return c},setHash:function(j,b,g,f,i,c){var h="";a(b,function(e,d){h+=(!h?"":"&")+escape(d)+"="+escape(e)});this.set(j,h,g,f,i,c)},get:function(i){var h=document.cookie,g,f=i+"=",d;if(!h){return}d=h.indexOf("; "+f);if(d==-1){d=h.indexOf(f);if(d!==0){return null}}else{d+=2}g=h.indexOf(";",d);if(g==-1){g=h.length}return unescape(h.substring(d+f.length,g))},set:function(i,b,g,f,h,c){document.cookie=i+"="+escape(b)+((g)?"; expires="+g.toGMTString():"")+((f)?"; path="+escape(f):"")+((h)?"; domain="+h:"")+((c)?"; secure":"")},remove:function(c,e,d){var b=new Date();b.setTime(b.getTime()-1000);this.set(c,"",b,e,d)}})})();(function(){function serialize(o,quote){var i,v,t,name;quote=quote||'"';if(o==null){return"null"}t=typeof o;if(t=="string"){v="\bb\tt\nn\ff\rr\"\"''\\\\";return quote+o.replace(/([\u0080-\uFFFF\x00-\x1f\"\'\\])/g,function(a,b){if(quote==='"'&&a==="'"){return a}i=v.indexOf(b);if(i+1){return"\\"+v.charAt(i+1)}a=b.charCodeAt().toString(16);return"\\u"+"0000".substring(a.length)+a})+quote}if(t=="object"){if(o.hasOwnProperty&&o instanceof Array){for(i=0,v="[";i0?",":"")+serialize(o[i],quote)}return v+"]"}v="{";for(name in o){if(o.hasOwnProperty(name)){v+=typeof o[name]!="function"?(v.length>1?","+quote:quote)+name+quote+":"+serialize(o[name],quote):""}}return v+"}"}return""+o}tinymce.util.JSON={serialize:serialize,parse:function(s){try{return eval("("+s+")")}catch(ex){}}}})();tinymce.create("static tinymce.util.XHR",{send:function(g){var a,e,b=window,h=0;function f(){if(!g.async||a.readyState==4||h++>10000){if(g.success&&h<10000&&a.status==200){g.success.call(g.success_scope,""+a.responseText,a,g)}else{if(g.error){g.error.call(g.error_scope,h>10000?"TIMED_OUT":"GENERAL",a,g)}}a=null}else{b.setTimeout(f,10)}}g.scope=g.scope||this;g.success_scope=g.success_scope||g.scope;g.error_scope=g.error_scope||g.scope;g.async=g.async===false?false:true;g.data=g.data||"";function d(i){a=0;try{a=new ActiveXObject(i)}catch(c){}return a}a=b.XMLHttpRequest?new XMLHttpRequest():d("Microsoft.XMLHTTP")||d("Msxml2.XMLHTTP");if(a){if(a.overrideMimeType){a.overrideMimeType(g.content_type)}a.open(g.type||(g.data?"POST":"GET"),g.url,g.async);if(g.content_type){a.setRequestHeader("Content-Type",g.content_type)}a.setRequestHeader("X-Requested-With","XMLHttpRequest");a.send(g.data);if(!g.async){return f()}e=b.setTimeout(f,10)}}});(function(){var c=tinymce.extend,b=tinymce.util.JSON,a=tinymce.util.XHR;tinymce.create("tinymce.util.JSONRequest",{JSONRequest:function(d){this.settings=c({},d);this.count=0},send:function(f){var e=f.error,d=f.success;f=c(this.settings,f);f.success=function(h,g){h=b.parse(h);if(typeof(h)=="undefined"){h={error:"JSON Parse error."}}if(h.error){e.call(f.error_scope||f.scope,h.error,g)}else{d.call(f.success_scope||f.scope,h.result)}};f.error=function(h,g){if(e){e.call(f.error_scope||f.scope,h,g)}};f.data=b.serialize({id:f.id||"c"+(this.count++),method:f.method,params:f.params});f.content_type="application/json";a.send(f)},"static":{sendRPC:function(d){return new tinymce.util.JSONRequest().send(d)}}})}());(function(a){a.VK={BACKSPACE:8,DELETE:46,DOWN:40,ENTER:13,LEFT:37,RIGHT:39,SPACEBAR:32,TAB:9,UP:38,modifierPressed:function(b){return b.shiftKey||b.ctrlKey||b.altKey}}})(tinymce);tinymce.util.Quirks=function(d){var l=tinymce.VK,s=l.BACKSPACE,t=l.DELETE,o=d.dom,C=d.selection,r=d.settings;function c(G,F){try{d.getDoc().execCommand(G,false,F)}catch(E){}}function x(){var E=d.getDoc().documentMode;return E?E:6}function i(){function E(H){var F,J,G,I;F=C.getRng();J=o.getParent(F.startContainer,o.isBlock);if(H){J=o.getNext(J,o.isBlock)}if(J){G=J.firstChild;while(G&&G.nodeType==3&&G.nodeValue.length===0){G=G.nextSibling}if(G&&G.nodeName==="SPAN"){I=G.cloneNode(false)}}d.getDoc().execCommand(H?"ForwardDelete":"Delete",false,null);J=o.getParent(F.startContainer,o.isBlock);tinymce.each(o.select("span.Apple-style-span,font.Apple-style-span",J),function(K){var L=C.getBookmark();if(I){o.replace(I.cloneNode(false),K,true)}else{o.remove(K,true)}C.moveToBookmark(L)})}d.onKeyDown.add(function(F,H){var G;G=H.keyCode==t;if(!H.isDefaultPrevented()&&(G||H.keyCode==s)&&!l.modifierPressed(H)){H.preventDefault();E(G)}});d.addCommand("Delete",function(){E()})}function D(){function F(H,K){var G,J,I=K?"start":"end";G=H[I+"Container"];J=H[I+"Offset"];if(G.nodeType==1&&G.hasChildNodes()){G=G.childNodes[Math.min(K?J:(J>0?J-1:0),G.childNodes.length-1)]}return G}function E(J,N){var I,M,H,K,L=N?"start":"end",G;I=J[L+"Container"];M=J[L+"Offset"];H=o.getRoot();if(I.nodeType==1){G=M>=I.childNodes.length;I=F(J,N);if(I.nodeType==3){M=N&&!G?0:I.nodeValue.length}}if(I.nodeType==3&&((N&&M>0)||(!N&&M7){return}c("RespectVisibilityInDesign",true);d.contentStyles.push(".mceHideBrInPre pre br {display: none}");o.addClass(d.getBody(),"mceHideBrInPre");d.parser.addNodeFilter("pre",function(E,G){var H=E.length,J,F,K,I;while(H--){J=E[H].getAll("br");F=J.length;while(F--){K=J[F];I=K.prev;if(I&&I.type===3&&I.value.charAt(I.value-1)!="\n"){I.value+="\n"}else{K.parent.insert(new tinymce.html.Node("#text",3),K,true).value="\n"}}}});d.serializer.addNodeFilter("pre",function(E,G){var H=E.length,J,F,K,I;while(H--){J=E[H].getAll("br");F=J.length;while(F--){K=J[F];I=K.prev;if(I&&I.type==3){I.value=I.value.replace(/\r?\n$/,"")}}}})}function f(){o.bind(d.getBody(),"mouseup",function(G){var F,E=C.getNode();if(E.nodeName=="IMG"){if(F=o.getStyle(E,"width")){o.setAttrib(E,"width",F.replace(/[^0-9%]+/g,""));o.setStyle(E,"width","")}if(F=o.getStyle(E,"height")){o.setAttrib(E,"height",F.replace(/[^0-9%]+/g,""));o.setStyle(E,"height","")}}})}function q(){d.onKeyDown.add(function(K,L){var J,E,F,H,I,M,G;J=L.keyCode==t;if(!L.isDefaultPrevented()&&(J||L.keyCode==s)&&!l.modifierPressed(L)){E=C.getRng();F=E.startContainer;H=E.startOffset;G=E.collapsed;if(F.nodeType==3&&F.nodeValue.length>0&&((H===0&&!G)||(G&&H===(J?0:1)))){nonEmptyElements=K.schema.getNonEmptyElements();L.preventDefault();I=o.create("br",{id:"__tmp"});F.parentNode.insertBefore(I,F);K.getDoc().execCommand(J?"ForwardDelete":"Delete",false,null);F=C.getRng().startContainer;M=F.previousSibling;if(M&&M.nodeType==1&&!o.isBlock(M)&&o.isEmpty(M)&&!nonEmptyElements[M.nodeName.toLowerCase()]){o.remove(M)}o.remove("__tmp")}}})}function e(){d.onKeyDown.add(function(I,J){var G,F,K,E,H;if(J.isDefaultPrevented()||J.keyCode!=l.BACKSPACE){return}G=C.getRng();F=G.startContainer;K=G.startOffset;E=o.getRoot();H=F;if(!G.collapsed||K!==0){return}while(H&&H.parentNode&&H.parentNode.firstChild==H&&H.parentNode!=E){H=H.parentNode}if(H.tagName==="BLOCKQUOTE"){I.formatter.toggle("blockquote",null,H);G.setStart(F,0);G.setEnd(F,0);C.setRng(G);C.collapse(false)}})}function k(){function E(){d._refreshContentEditable();c("StyleWithCSS",false);c("enableInlineTableEditing",false);if(!r.object_resizing){c("enableObjectResizing",false)}}if(!r.readonly){d.onBeforeExecCommand.add(E);d.onMouseDown.add(E)}}function n(){function E(F,G){tinymce.each(o.select("a"),function(J){var H=J.parentNode,I=o.getRoot();if(H.lastChild===J){while(H&&!o.isBlock(H)){if(H.parentNode.lastChild!==H||H===I){return}H=H.parentNode}o.add(H,"br",{"data-mce-bogus":1})}})}d.onExecCommand.add(function(F,G){if(G==="CreateLink"){E(F)}});d.onSetContent.add(C.onSetContent.add(E))}function u(){if(r.forced_root_block){d.onInit.add(function(){c("DefaultParagraphSeparator",r.forced_root_block)})}}function a(){function E(G,F){if(!G||!F.initial){d.execCommand("mceRepaint")}}d.onUndo.add(E);d.onRedo.add(E);d.onSetContent.add(E)}function p(){d.onKeyDown.add(function(F,G){var E;if(!G.isDefaultPrevented()&&G.keyCode==s){E=F.getDoc().selection.createRange();if(E&&E.item){G.preventDefault();F.undoManager.beforeChange();o.remove(E.item(0));F.undoManager.add()}}})}function h(){var E;if(x()>=10){E="";tinymce.each("p div h1 h2 h3 h4 h5 h6".split(" "),function(F,G){E+=(G>0?",":"")+F+":empty"});d.contentStyles.push(E+"{padding-right: 1px !important}")}}y();e();D();if(tinymce.isWebKit){q();i();v();z();u();if(tinymce.isIDevice){j()}}if(tinymce.isIE){m();B();g();f();p();h()}if(tinymce.isGecko){m();b();A();k();n();a()}};(function(j){var a,g,d,k=/[&<>\"\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,b=/[<>&\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,f=/[<>&\"\']/g,c=/&(#x|#)?([\w]+);/g,i={128:"\u20AC",130:"\u201A",131:"\u0192",132:"\u201E",133:"\u2026",134:"\u2020",135:"\u2021",136:"\u02C6",137:"\u2030",138:"\u0160",139:"\u2039",140:"\u0152",142:"\u017D",145:"\u2018",146:"\u2019",147:"\u201C",148:"\u201D",149:"\u2022",150:"\u2013",151:"\u2014",152:"\u02DC",153:"\u2122",154:"\u0161",155:"\u203A",156:"\u0153",158:"\u017E",159:"\u0178"};g={'"':""","'":"'","<":"<",">":">","&":"&"};d={"<":"<",">":">","&":"&",""":'"',"'":"'"};function h(l){var m;m=document.createElement("div");m.innerHTML=l;return m.textContent||m.innerText||l}function e(m,p){var n,o,l,q={};if(m){m=m.split(",");p=p||10;for(n=0;n1){return"&#"+(((n.charCodeAt(0)-55296)*1024)+(n.charCodeAt(1)-56320)+65536)+";"}return g[n]||"&#"+n.charCodeAt(0)+";"})},encodeNamed:function(n,l,m){m=m||a;return n.replace(l?k:b,function(o){return g[o]||m[o]||o})},getEncodeFunc:function(l,o){var p=j.html.Entities;o=e(o)||a;function m(r,q){return r.replace(q?k:b,function(s){return g[s]||o[s]||"&#"+s.charCodeAt(0)+";"||s})}function n(r,q){return p.encodeNamed(r,q,o)}l=j.makeMap(l.replace(/\+/g,","));if(l.named&&l.numeric){return m}if(l.named){if(o){return n}return p.encodeNamed}if(l.numeric){return p.encodeNumeric}return p.encodeRaw},decode:function(l){return l.replace(c,function(n,m,o){if(m){o=parseInt(o,m.length===2?16:10);if(o>65535){o-=65536;return String.fromCharCode(55296+(o>>10),56320+(o&1023))}else{return i[o]||String.fromCharCode(o)}}return d[n]||a[n]||h(n)})}}})(tinymce);tinymce.html.Styles=function(d,f){var k=/rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)/gi,h=/(?:url(?:(?:\(\s*\"([^\"]+)\"\s*\))|(?:\(\s*\'([^\']+)\'\s*\))|(?:\(\s*([^)\s]+)\s*\))))|(?:\'([^\']+)\')|(?:\"([^\"]+)\")/gi,b=/\s*([^:]+):\s*([^;]+);?/g,l=/\s+$/,m=/rgb/,e,g,a={},j;d=d||{};j="\\\" \\' \\; \\: ; : \uFEFF".split(" ");for(g=0;g1?r:"0"+r}return"#"+o(q)+o(p)+o(i)}return{toHex:function(i){return i.replace(k,c)},parse:function(s){var z={},q,n,x,r,v=d.url_converter,y=d.url_converter_scope||this;function p(D,G){var F,C,B,E;F=z[D+"-top"+G];if(!F){return}C=z[D+"-right"+G];if(F!=C){return}B=z[D+"-bottom"+G];if(C!=B){return}E=z[D+"-left"+G];if(B!=E){return}z[D+G]=E;delete z[D+"-top"+G];delete z[D+"-right"+G];delete z[D+"-bottom"+G];delete z[D+"-left"+G]}function u(C){var D=z[C],B;if(!D||D.indexOf(" ")<0){return}D=D.split(" ");B=D.length;while(B--){if(D[B]!==D[0]){return false}}z[C]=D[0];return true}function A(D,C,B,E){if(!u(C)){return}if(!u(B)){return}if(!u(E)){return}z[D]=z[C]+" "+z[B]+" "+z[E];delete z[C];delete z[B];delete z[E]}function t(B){r=true;return a[B]}function i(C,B){if(r){C=C.replace(/\uFEFF[0-9]/g,function(D){return a[D]})}if(!B){C=C.replace(/\\([\'\";:])/g,"$1")}return C}function o(C,B,F,E,G,D){G=G||D;if(G){G=i(G);return"'"+G.replace(/\'/g,"\\'")+"'"}B=i(B||F||E);if(v){B=v.call(y,B,"style")}return"url('"+B.replace(/\'/g,"\\'")+"')"}if(s){s=s.replace(/\\[\"\';:\uFEFF]/g,t).replace(/\"[^\"]+\"|\'[^\']+\'/g,function(B){return B.replace(/[;:]/g,t)});while(q=b.exec(s)){n=q[1].replace(l,"").toLowerCase();x=q[2].replace(l,"");if(n&&x.length>0){if(n==="font-weight"&&x==="700"){x="bold"}else{if(n==="color"||n==="background-color"){x=x.toLowerCase()}}x=x.replace(k,c);x=x.replace(h,o);z[n]=r?i(x,true):x}b.lastIndex=q.index+q[0].length}p("border","");p("border","-width");p("border","-color");p("border","-style");p("padding","");p("margin","");A("border","border-width","border-style","border-color");if(z.border==="medium none"){delete z.border}}return z},serialize:function(p,r){var o="",n,q;function i(t){var x,u,s,v;x=f.styles[t];if(x){for(u=0,s=x.length;u0){o+=(o.length>0?" ":"")+t+": "+v+";"}}}}if(r&&f&&f.styles){i("*");i(r)}else{for(n in p){q=p[n];if(q!==e&&q.length>0){o+=(o.length>0?" ":"")+n+": "+q+";"}}}return o}}};(function(f){var a={},e=f.makeMap,g=f.each;function d(j,i){return j.split(i||",")}function h(m,l){var j,k={};function i(n){return n.replace(/[A-Z]+/g,function(o){return i(m[o])})}for(j in m){if(m.hasOwnProperty(j)){m[j]=i(m[j])}}i(l).replace(/#/g,"#text").replace(/(\w+)\[([^\]]+)\]\[([^\]]*)\]/g,function(q,o,n,p){n=d(n,"|");k[o]={attributes:e(n),attributesOrder:n,children:e(p,"|",{"#comment":{}})}});return k}function b(){var i=a.html5;if(!i){i=a.html5=h({A:"id|accesskey|class|dir|draggable|item|hidden|itemprop|role|spellcheck|style|subject|title",B:"#|a|abbr|area|audio|b|bdo|br|button|canvas|cite|code|command|datalist|del|dfn|em|embed|i|iframe|img|input|ins|kbd|keygen|label|link|map|mark|meta|meter|noscript|object|output|progress|q|ruby|samp|script|select|small|span|strong|sub|sup|svg|textarea|time|var|video|wbr",C:"#|a|abbr|area|address|article|aside|audio|b|bdo|blockquote|br|button|canvas|cite|code|command|datalist|del|details|dfn|dialog|div|dl|em|embed|fieldset|figure|footer|form|h1|h2|h3|h4|h5|h6|header|hgroup|hr|i|iframe|img|input|ins|kbd|keygen|label|link|map|mark|menu|meta|meter|nav|noscript|ol|object|output|p|pre|progress|q|ruby|samp|script|section|select|small|span|strong|style|sub|sup|svg|table|textarea|time|ul|var|video"},"html[A|manifest][body|head]head[A][base|command|link|meta|noscript|script|style|title]title[A][#]base[A|href|target][]link[A|href|rel|media|type|sizes][]meta[A|http-equiv|name|content|charset][]style[A|type|media|scoped][#]script[A|charset|type|src|defer|async][#]noscript[A][C]body[A][C]section[A][C]nav[A][C]article[A][C]aside[A][C]h1[A][B]h2[A][B]h3[A][B]h4[A][B]h5[A][B]h6[A][B]hgroup[A][h1|h2|h3|h4|h5|h6]header[A][C]footer[A][C]address[A][C]p[A][B]br[A][]pre[A][B]dialog[A][dd|dt]blockquote[A|cite][C]ol[A|start|reversed][li]ul[A][li]li[A|value][C]dl[A][dd|dt]dt[A][B]dd[A][C]a[A|href|target|ping|rel|media|type][B]em[A][B]strong[A][B]small[A][B]cite[A][B]q[A|cite][B]dfn[A][B]abbr[A][B]code[A][B]var[A][B]samp[A][B]kbd[A][B]sub[A][B]sup[A][B]i[A][B]b[A][B]mark[A][B]progress[A|value|max][B]meter[A|value|min|max|low|high|optimum][B]time[A|datetime][B]ruby[A][B|rt|rp]rt[A][B]rp[A][B]bdo[A][B]span[A][B]ins[A|cite|datetime][B]del[A|cite|datetime][B]figure[A][C|legend|figcaption]figcaption[A][C]img[A|alt|src|height|width|usemap|ismap][]iframe[A|name|src|height|width|sandbox|seamless][]embed[A|src|height|width|type][]object[A|data|type|height|width|usemap|name|form|classid][param]param[A|name|value][]details[A|open][C|legend]command[A|type|label|icon|disabled|checked|radiogroup][]menu[A|type|label][C|li]legend[A][C|B]div[A][C]source[A|src|type|media][]audio[A|src|autobuffer|autoplay|loop|controls][source]video[A|src|autobuffer|autoplay|loop|controls|width|height|poster][source]hr[A][]form[A|accept-charset|action|autocomplete|enctype|method|name|novalidate|target][C]fieldset[A|disabled|form|name][C|legend]label[A|form|for][B]input[A|type|accept|alt|autocomplete|checked|disabled|form|formaction|formenctype|formmethod|formnovalidate|formtarget|height|list|max|maxlength|min|multiple|pattern|placeholder|readonly|required|size|src|step|width|files|value|name][]button[A|autofocus|disabled|form|formaction|formenctype|formmethod|formnovalidate|formtarget|name|value|type][B]select[A|autofocus|disabled|form|multiple|name|size][option|optgroup]datalist[A][B|option]optgroup[A|disabled|label][option]option[A|disabled|selected|label|value][]textarea[A|autofocus|disabled|form|maxlength|name|placeholder|readonly|required|rows|cols|wrap][]keygen[A|autofocus|challenge|disabled|form|keytype|name][]output[A|for|form|name][B]canvas[A|width|height][]map[A|name][B|C]area[A|shape|coords|href|alt|target|media|rel|ping|type][]mathml[A][]svg[A][]table[A|border][caption|colgroup|thead|tfoot|tbody|tr]caption[A][C]colgroup[A|span][col]col[A|span][]thead[A][tr]tfoot[A][tr]tbody[A][tr]tr[A][th|td]th[A|headers|rowspan|colspan|scope][B]td[A|headers|rowspan|colspan][C]wbr[A][]")}return i}function c(){var i=a.html4;if(!i){i=a.html4=h({Z:"H|K|N|O|P",Y:"X|form|R|Q",ZG:"E|span|width|align|char|charoff|valign",X:"p|T|div|U|W|isindex|fieldset|table",ZF:"E|align|char|charoff|valign",W:"pre|hr|blockquote|address|center|noframes",ZE:"abbr|axis|headers|scope|rowspan|colspan|align|char|charoff|valign|nowrap|bgcolor|width|height",ZD:"[E][S]",U:"ul|ol|dl|menu|dir",ZC:"p|Y|div|U|W|table|br|span|bdo|object|applet|img|map|K|N|Q",T:"h1|h2|h3|h4|h5|h6",ZB:"X|S|Q",S:"R|P",ZA:"a|G|J|M|O|P",R:"a|H|K|N|O",Q:"noscript|P",P:"ins|del|script",O:"input|select|textarea|label|button",N:"M|L",M:"em|strong|dfn|code|q|samp|kbd|var|cite|abbr|acronym",L:"sub|sup",K:"J|I",J:"tt|i|b|u|s|strike",I:"big|small|font|basefont",H:"G|F",G:"br|span|bdo",F:"object|applet|img|map|iframe",E:"A|B|C",D:"accesskey|tabindex|onfocus|onblur",C:"onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup",B:"lang|xml:lang|dir",A:"id|class|style|title"},"script[id|charset|type|language|src|defer|xml:space][]style[B|id|type|media|title|xml:space][]object[E|declare|classid|codebase|data|type|codetype|archive|standby|width|height|usemap|name|tabindex|align|border|hspace|vspace][#|param|Y]param[id|name|value|valuetype|type][]p[E|align][#|S]a[E|D|charset|type|name|href|hreflang|rel|rev|shape|coords|target][#|Z]br[A|clear][]span[E][#|S]bdo[A|C|B][#|S]applet[A|codebase|archive|code|object|alt|name|width|height|align|hspace|vspace][#|param|Y]h1[E|align][#|S]img[E|src|alt|name|longdesc|width|height|usemap|ismap|align|border|hspace|vspace][]map[B|C|A|name][X|form|Q|area]h2[E|align][#|S]iframe[A|longdesc|name|src|frameborder|marginwidth|marginheight|scrolling|align|width|height][#|Y]h3[E|align][#|S]tt[E][#|S]i[E][#|S]b[E][#|S]u[E][#|S]s[E][#|S]strike[E][#|S]big[E][#|S]small[E][#|S]font[A|B|size|color|face][#|S]basefont[id|size|color|face][]em[E][#|S]strong[E][#|S]dfn[E][#|S]code[E][#|S]q[E|cite][#|S]samp[E][#|S]kbd[E][#|S]var[E][#|S]cite[E][#|S]abbr[E][#|S]acronym[E][#|S]sub[E][#|S]sup[E][#|S]input[E|D|type|name|value|checked|disabled|readonly|size|maxlength|src|alt|usemap|onselect|onchange|accept|align][]select[E|name|size|multiple|disabled|tabindex|onfocus|onblur|onchange][optgroup|option]optgroup[E|disabled|label][option]option[E|selected|disabled|label|value][]textarea[E|D|name|rows|cols|disabled|readonly|onselect|onchange][]label[E|for|accesskey|onfocus|onblur][#|S]button[E|D|name|value|type|disabled][#|p|T|div|U|W|table|G|object|applet|img|map|K|N|Q]h4[E|align][#|S]ins[E|cite|datetime][#|Y]h5[E|align][#|S]del[E|cite|datetime][#|Y]h6[E|align][#|S]div[E|align][#|Y]ul[E|type|compact][li]li[E|type|value][#|Y]ol[E|type|compact|start][li]dl[E|compact][dt|dd]dt[E][#|S]dd[E][#|Y]menu[E|compact][li]dir[E|compact][li]pre[E|width|xml:space][#|ZA]hr[E|align|noshade|size|width][]blockquote[E|cite][#|Y]address[E][#|S|p]center[E][#|Y]noframes[E][#|Y]isindex[A|B|prompt][]fieldset[E][#|legend|Y]legend[E|accesskey|align][#|S]table[E|summary|width|border|frame|rules|cellspacing|cellpadding|align|bgcolor][caption|col|colgroup|thead|tfoot|tbody|tr]caption[E|align][#|S]col[ZG][]colgroup[ZG][col]thead[ZF][tr]tr[ZF|bgcolor][th|td]th[E|ZE][#|Y]form[E|action|method|name|enctype|onsubmit|onreset|accept|accept-charset|target][#|X|R|Q]noscript[E][#|Y]td[E|ZE][#|Y]tfoot[ZF][tr]tbody[ZF][tr]area[E|D|shape|coords|href|nohref|alt|target][]base[id|href|target][]body[E|onload|onunload|background|bgcolor|text|link|vlink|alink][#|Y]")}return i}f.html.Schema=function(A){var u=this,s={},k={},j=[],D,y;var o,q,z,r,v,n,p={};function m(F,E,H){var G=A[F];if(!G){G=a[F];if(!G){G=e(E," ",e(E.toUpperCase()," "));G=f.extend(G,H);a[F]=G}}else{G=e(G,",",e(G.toUpperCase()," "))}return G}A=A||{};y=A.schema=="html5"?b():c();if(A.verify_html===false){A.valid_elements="*[*]"}if(A.valid_styles){D={};g(A.valid_styles,function(F,E){D[E]=f.explode(F)})}o=m("whitespace_elements","pre script style textarea");q=m("self_closing_elements","colgroup dd dt li option p td tfoot th thead tr");z=m("short_ended_elements","area base basefont br col frame hr img input isindex link meta param embed source wbr");r=m("boolean_attributes","checked compact declare defer disabled ismap multiple nohref noresize noshade nowrap readonly selected autoplay loop controls");n=m("non_empty_elements","td th iframe video audio object",z);v=m("block_elements","h1 h2 h3 h4 h5 h6 hr p div address pre form table tbody thead tfoot th tr td li ol ul caption blockquote center dl dt dd dir fieldset noscript menu isindex samp header footer article section hgroup aside nav figure option datalist select optgroup");function i(E){return new RegExp("^"+E.replace(/([?+*])/g,".$1")+"$")}function C(L){var K,G,Z,V,aa,F,I,U,X,Q,Y,ac,O,J,W,E,S,H,ab,ad,P,T,N=/^([#+\-])?([^\[\/]+)(?:\/([^\[]+))?(?:\[([^\]]+)\])?$/,R=/^([!\-])?(\w+::\w+|[^=:<]+)?(?:([=:<])(.*))?$/,M=/[*?+]/;if(L){L=d(L);if(s["@"]){S=s["@"].attributes;H=s["@"].attributesOrder}for(K=0,G=L.length;K=0){for(U=A.length-1;U>=V;U--){T=A[U];if(T.valid){n.end(T.name)}}A.length=V}}function p(U,T,Y,X,W){var Z,V;T=T.toLowerCase();Y=T in H?T:j(Y||X||W||"");if(v&&!z&&T.indexOf("data-")!==0){Z=P[T];if(!Z&&F){V=F.length;while(V--){Z=F[V];if(Z.pattern.test(T)){break}}if(V===-1){Z=null}}if(!Z){return}if(Z.validValues&&!(Y in Z.validValues)){return}}N.map[T]=Y;N.push({name:T,value:Y})}l=new RegExp("<(?:(?:!--([\\w\\W]*?)-->)|(?:!\\[CDATA\\[([\\w\\W]*?)\\]\\]>)|(?:!DOCTYPE([\\w\\W]*?)>)|(?:\\?([^\\s\\/<>]+) ?([\\w\\W]*?)[?/]>)|(?:\\/([^>]+)>)|(?:([A-Za-z0-9\\-\\:]+)((?:\\s+[^\"'>]+(?:(?:\"[^\"]*\")|(?:'[^']*')|[^>]*))*|\\/|\\s+)>))","g");D=/([\w:\-]+)(?:\s*=\s*(?:(?:\"((?:\\.|[^\"])*)\")|(?:\'((?:\\.|[^\'])*)\')|([^>\s]+)))?/g;K={script:/<\/script[^>]*>/gi,style:/<\/style[^>]*>/gi,noscript:/<\/noscript[^>]*>/gi};M=e.getShortEndedElements();J=c.self_closing_elements||e.getSelfClosingElements();H=e.getBoolAttrs();v=c.validate;s=c.remove_internals;y=c.fix_self_closing;q=a.isIE;o=/^:/;while(g=l.exec(E)){if(G0&&A[A.length-1].name===I){u(I)}if(!v||(m=e.getElementRule(I))){k=true;if(v){P=m.attributes;F=m.attributePatterns}if(R=g[8]){z=R.indexOf("data-mce-type")!==-1;if(z&&s){k=false}N=[];N.map={};R.replace(D,p)}else{N=[];N.map={}}if(v&&!z){S=m.attributesRequired;L=m.attributesDefault;f=m.attributesForced;if(f){Q=f.length;while(Q--){t=f[Q];r=t.name;h=t.value;if(h==="{$uid}"){h="mce_"+x++}N.map[r]=h;N.push({name:r,value:h})}}if(L){Q=L.length;while(Q--){t=L[Q];r=t.name;if(!(r in N.map)){h=t.value;if(h==="{$uid}"){h="mce_"+x++}N.map[r]=h;N.push({name:r,value:h})}}}if(S){Q=S.length;while(Q--){if(S[Q] in N.map){break}}if(Q===-1){k=false}}if(N.map["data-mce-bogus"]){k=false}}if(k){n.start(I,N,O)}}else{k=false}if(B=K[I]){B.lastIndex=G=g.index+g[0].length;if(g=B.exec(E)){if(k){C=E.substr(G,g.index-G)}G=g.index+g[0].length}else{C=E.substr(G);G=E.length}if(k&&C.length>0){n.text(C,true)}if(k){n.end(I)}l.lastIndex=G;continue}if(!O){if(!R||R.indexOf("/")!=R.length-1){A.push({name:I,valid:k})}else{if(k){n.end(I)}}}}else{if(I=g[1]){n.comment(I)}else{if(I=g[2]){n.cdata(I)}else{if(I=g[3]){n.doctype(I)}else{if(I=g[4]){n.pi(I,g[5])}}}}}}G=g.index+g[0].length}if(G=0;Q--){I=A[Q];if(I.valid){n.end(I.name)}}}}})(tinymce);(function(d){var c=/^[ \t\r\n]*$/,e={"#text":3,"#comment":8,"#cdata":4,"#pi":7,"#doctype":10,"#document-fragment":11};function a(k,l,j){var i,h,f=j?"lastChild":"firstChild",g=j?"prev":"next";if(k[f]){return k[f]}if(k!==l){i=k[g];if(i){return i}for(h=k.parent;h&&h!==l;h=h.parent){i=h[g];if(i){return i}}}}function b(f,g){this.name=f;this.type=g;if(g===1){this.attributes=[];this.attributes.map={}}}d.extend(b.prototype,{replace:function(g){var f=this;if(g.parent){g.remove()}f.insert(g,f);f.remove();return f},attr:function(h,l){var f=this,g,j,k;if(typeof h!=="string"){for(j in h){f.attr(j,h[j])}return f}if(g=f.attributes){if(l!==k){if(l===null){if(h in g.map){delete g.map[h];j=g.length;while(j--){if(g[j].name===h){g=g.splice(j,1);return f}}}return f}if(h in g.map){j=g.length;while(j--){if(g[j].name===h){g[j].value=l;break}}}else{g.push({name:h,value:l})}g.map[h]=l;return f}else{return g.map[h]}}},clone:function(){var g=this,n=new b(g.name,g.type),h,f,m,j,k;if(m=g.attributes){k=[];k.map={};for(h=0,f=m.length;h1){v.reverse();z=n=f.filterNode(v[0].clone());for(t=0;t0){Q.value=l;Q=Q.prev}else{O=Q.prev;Q.remove();Q=O}}}function H(O){var P,l={};for(P in O){if(P!=="li"&&P!="p"){l[P]=O[P]}}return l}n=new b.html.SaxParser({validate:z,self_closing_elements:H(h.getSelfClosingElements()),cdata:function(l){B.append(K("#cdata",4)).value=l},text:function(P,l){var O;if(!L){P=P.replace(k," ");if(B.lastChild&&o[B.lastChild.name]){P=P.replace(E,"")}}if(P.length!==0){O=K("#text",3);O.raw=!!l;B.append(O).value=P}},comment:function(l){B.append(K("#comment",8)).value=l},pi:function(l,O){B.append(K(l,7)).value=O;I(B)},doctype:function(O){var l;l=B.append(K("#doctype",10));l.value=O;I(B)},start:function(l,W,P){var U,R,Q,O,S,X,V,T;Q=z?h.getElementRule(l):{};if(Q){U=K(Q.outputName||l,1);U.attributes=W;U.shortEnded=P;B.append(U);T=p[B.name];if(T&&p[U.name]&&!T[U.name]){M.push(U)}R=d.length;while(R--){S=d[R].name;if(S in W.map){F=c[S];if(F){F.push(U)}else{c[S]=[U]}}}if(o[l]){I(U)}if(!P){B=U}if(!L&&s[l]){L=true}}},end:function(l){var S,P,R,O,Q;P=z?h.getElementRule(l):{};if(P){if(o[l]){if(!L){S=B.firstChild;if(S&&S.type===3){R=S.value.replace(E,"");if(R.length>0){S.value=R;S=S.next}else{O=S.next;S.remove();S=O}while(S&&S.type===3){R=S.value;O=S.next;if(R.length===0||y.test(R)){S.remove();S=O}S=O}}S=B.lastChild;if(S&&S.type===3){R=S.value.replace(t,"");if(R.length>0){S.value=R;S=S.prev}else{O=S.prev;S.remove();S=O}while(S&&S.type===3){R=S.value;O=S.prev;if(R.length===0||y.test(R)){S.remove();S=O}S=O}}}S=B.prev;if(S&&S.type===3){R=S.value.replace(E,"");if(R.length>0){S.value=R}else{S.remove()}}}if(L&&s[l]){L=false}if(P.removeEmpty||P.paddEmpty){if(B.isEmpty(u)){if(P.paddEmpty){B.empty().append(new a("#text","3")).value="\u00a0"}else{if(!B.attributes.map.name&&!B.attributes.map.id){Q=B.parent;B.empty().remove();B=Q;return}}}}B=B.parent}}},h);J=B=new a(m.context||g.root_name,11);n.parse(v);if(z&&M.length){if(!m.context){j(M)}else{m.invalid=true}}if(q&&J.name=="body"){G()}if(!m.invalid){for(N in i){F=e[N];A=i[N];x=A.length;while(x--){if(!A[x].parent){A.splice(x,1)}}for(D=0,C=F.length;D0){o=c[c.length-1];if(o.length>0&&o!=="\n"){c.push("\n")}}c.push("<",m);if(k){for(n=0,j=k.length;n0){o=c[c.length-1];if(o.length>0&&o!=="\n"){c.push("\n")}}},end:function(h){var i;c.push("");if(a&&d[h]&&c.length>0){i=c[c.length-1];if(i.length>0&&i!=="\n"){c.push("\n")}}},text:function(i,h){if(i.length>0){c[c.length]=h?i:f(i)}},cdata:function(h){c.push("")},comment:function(h){c.push("")},pi:function(h,i){if(i){c.push("")}else{c.push("")}if(a){c.push("\n")}},doctype:function(h){c.push("",a?"\n":"")},reset:function(){c.length=0},getContent:function(){return c.join("").replace(/\n$/,"")}}};(function(a){a.html.Serializer=function(c,d){var b=this,e=new a.html.Writer(c);c=c||{};c.validate="validate" in c?c.validate:true;b.schema=d=d||new a.html.Schema();b.writer=e;b.serialize=function(h){var g,i;i=c.validate;g={3:function(k,j){e.text(k.value,k.raw)},8:function(j){e.comment(j.value)},7:function(j){e.pi(j.name,j.value)},10:function(j){e.doctype(j.value)},4:function(j){e.cdata(j.value)},11:function(j){if((j=j.firstChild)){do{f(j)}while(j=j.next)}}};e.reset();function f(k){var t=g[k.type],j,o,s,r,p,u,n,m,q;if(!t){j=k.name;o=k.shortEnded;s=k.attributes;if(i&&s&&s.length>1){u=[];u.map={};q=d.getElementRule(k.name);for(n=0,m=q.attributesOrder.length;n=8;k.boxModel=!e.isIE||o.compatMode=="CSS1Compat"||k.stdMode;k.hasOuterHTML="outerHTML" in o.createElement("a");k.settings=l=e.extend({keep_values:false,hex_colors:1},l);k.schema=l.schema;k.styles=new e.html.Styles({url_converter:l.url_converter,url_converter_scope:l.url_converter_scope},l.schema);if(e.isIE6){try{o.execCommand("BackgroundImageCache",false,true)}catch(m){k.cssFlicker=true}}k.fixDoc(o);k.events=l.ownEvents?new e.dom.EventUtils(l.proxy):e.dom.Event;e.addUnload(k.destroy,k);n=l.schema?l.schema.getBlockElements():{};k.isBlock=function(q){var p=q.nodeType;if(p){return !!(p===1&&n[q.nodeName])}return !!n[q]}},fixDoc:function(k){var j=this.settings,i;if(b&&j.schema){("abbr article aside audio canvas details figcaption figure footer header hgroup mark menu meter nav output progress section summary time video").replace(/\w+/g,function(l){k.createElement(l)});for(i in j.schema.getCustomElements()){k.createElement(i)}}},clone:function(k,i){var j=this,m,l;if(!b||k.nodeType!==1||i){return k.cloneNode(i)}l=j.doc;if(!i){m=l.createElement(k.nodeName);g(j.getAttribs(k),function(n){j.setAttrib(m,n.nodeName,j.getAttrib(k,n.nodeName))});return m}return m.firstChild},getRoot:function(){var i=this,j=i.settings;return(j&&i.get(j.root_element))||i.doc.body},getViewPort:function(j){var k,i;j=!j?this.win:j;k=j.document;i=this.boxModel?k.documentElement:k.body;return{x:j.pageXOffset||i.scrollLeft,y:j.pageYOffset||i.scrollTop,w:j.innerWidth||i.clientWidth,h:j.innerHeight||i.clientHeight}},getRect:function(l){var k,i=this,j;l=i.get(l);k=i.getPos(l);j=i.getSize(l);return{x:k.x,y:k.y,w:j.w,h:j.h}},getSize:function(l){var j=this,i,k;l=j.get(l);i=j.getStyle(l,"width");k=j.getStyle(l,"height");if(i.indexOf("px")===-1){i=0}if(k.indexOf("px")===-1){k=0}return{w:parseInt(i,10)||l.offsetWidth||l.clientWidth,h:parseInt(k,10)||l.offsetHeight||l.clientHeight}},getParent:function(k,j,i){return this.getParents(k,j,i,false)},getParents:function(s,m,k,q){var j=this,i,l=j.settings,p=[];s=j.get(s);q=q===undefined;if(l.strict_root){k=k||j.getRoot()}if(d(m,"string")){i=m;if(m==="*"){m=function(o){return o.nodeType==1}}else{m=function(o){return j.is(o,i)}}}while(s){if(s==k||!s.nodeType||s.nodeType===9){break}if(!m||m(s)){if(q){p.push(s)}else{return s}}s=s.parentNode}return q?p:null},get:function(i){var j;if(i&&this.doc&&typeof(i)=="string"){j=i;i=this.doc.getElementById(i);if(i&&i.id!==j){return this.doc.getElementsByName(j)[1]}}return i},getNext:function(j,i){return this._findSib(j,i,"nextSibling")},getPrev:function(j,i){return this._findSib(j,i,"previousSibling")},select:function(k,j){var i=this;return e.dom.Sizzle(k,i.get(j)||i.get(i.settings.root_element)||i.doc,[])},is:function(l,j){var k;if(l.length===undefined){if(j==="*"){return l.nodeType==1}if(c.test(j)){j=j.toLowerCase().split(/,/);l=l.nodeName.toLowerCase();for(k=j.length-1;k>=0;k--){if(j[k]==l){return true}}return false}}return e.dom.Sizzle.matches(j,l.nodeType?[l]:l).length>0},add:function(l,o,i,k,m){var j=this;return this.run(l,function(r){var q,n;q=d(o,"string")?j.doc.createElement(o):o;j.setAttribs(q,i);if(k){if(k.nodeType){q.appendChild(k)}else{j.setHTML(q,k)}}return !m?r.appendChild(q):q})},create:function(k,i,j){return this.add(this.doc.createElement(k),k,i,j,1)},createHTML:function(q,i,m){var p="",l=this,j;p+="<"+q;for(j in i){if(i.hasOwnProperty(j)){p+=" "+j+'="'+l.encode(i[j])+'"'}}if(typeof(m)!="undefined"){return p+">"+m+""}return p+" />"},remove:function(i,j){return this.run(i,function(l){var m,k=l.parentNode;if(!k){return null}if(j){while(m=l.firstChild){if(!e.isIE||m.nodeType!==3||m.nodeValue){k.insertBefore(m,l)}else{l.removeChild(m)}}}return k.removeChild(l)})},setStyle:function(l,i,j){var k=this;return k.run(l,function(o){var n,m;n=o.style;i=i.replace(/-(\D)/g,function(q,p){return p.toUpperCase()});if(k.pixelStyles.test(i)&&(e.is(j,"number")||/^[\-0-9\.]+$/.test(j))){j+="px"}switch(i){case"opacity":if(b){n.filter=j===""?"":"alpha(opacity="+(j*100)+")";if(!l.currentStyle||!l.currentStyle.hasLayout){n.display="inline-block"}}n[i]=n["-moz-opacity"]=n["-khtml-opacity"]=j||"";break;case"float":b?n.styleFloat=j:n.cssFloat=j;break;default:n[i]=j||""}if(k.settings.update_styles){k.setAttrib(o,"data-mce-style")}})},getStyle:function(l,i,k){l=this.get(l);if(!l){return}if(this.doc.defaultView&&k){i=i.replace(/[A-Z]/g,function(m){return"-"+m});try{return this.doc.defaultView.getComputedStyle(l,null).getPropertyValue(i)}catch(j){return null}}i=i.replace(/-(\D)/g,function(n,m){return m.toUpperCase()});if(i=="float"){i=b?"styleFloat":"cssFloat"}if(l.currentStyle&&k){return l.currentStyle[i]}return l.style?l.style[i]:undefined},setStyles:function(l,m){var j=this,k=j.settings,i;i=k.update_styles;k.update_styles=0;g(m,function(o,p){j.setStyle(l,p,o)});k.update_styles=i;if(k.update_styles){j.setAttrib(l,k.cssText)}},removeAllAttribs:function(i){return this.run(i,function(l){var k,j=l.attributes;for(k=j.length-1;k>=0;k--){l.removeAttributeNode(j.item(k))}})},setAttrib:function(k,l,i){var j=this;if(!k||!l){return}if(j.settings.strict){l=l.toLowerCase()}return this.run(k,function(p){var o=j.settings;var m=p.getAttribute(l);if(i!==null){switch(l){case"style":if(!d(i,"string")){g(i,function(q,r){j.setStyle(p,r,q)});return}if(o.keep_values){if(i&&!j._isRes(i)){p.setAttribute("data-mce-style",i,2)}else{p.removeAttribute("data-mce-style",2)}}p.style.cssText=i;break;case"class":p.className=i||"";break;case"src":case"href":if(o.keep_values){if(o.url_converter){i=o.url_converter.call(o.url_converter_scope||j,i,l,p)}j.setAttrib(p,"data-mce-"+l,i,2)}break;case"shape":p.setAttribute("data-mce-style",i);break}}if(d(i)&&i!==null&&i.length!==0){p.setAttribute(l,""+i,2)}else{p.removeAttribute(l,2)}if(tinyMCE.activeEditor&&m!=i){var n=tinyMCE.activeEditor;n.onSetAttrib.dispatch(n,p,l,i)}})},setAttribs:function(j,k){var i=this;return this.run(j,function(l){g(k,function(m,o){i.setAttrib(l,o,m)})})},getAttrib:function(m,o,k){var i,j=this,l;m=j.get(m);if(!m||m.nodeType!==1){return k===l?false:k}if(!d(k)){k=""}if(/^(src|href|style|coords|shape)$/.test(o)){i=m.getAttribute("data-mce-"+o);if(i){return i}}if(b&&j.props[o]){i=m[j.props[o]];i=i&&i.nodeValue?i.nodeValue:i}if(!i){i=m.getAttribute(o,2)}if(/^(checked|compact|declare|defer|disabled|ismap|multiple|nohref|noshade|nowrap|readonly|selected)$/.test(o)){if(m[j.props[o]]===true&&i===""){return o}return i?o:""}if(m.nodeName==="FORM"&&m.getAttributeNode(o)){return m.getAttributeNode(o).nodeValue}if(o==="style"){i=i||m.style.cssText;if(i){i=j.serializeStyle(j.parseStyle(i),m.nodeName);if(j.settings.keep_values&&!j._isRes(i)){m.setAttribute("data-mce-style",i)}}}if(f&&o==="class"&&i){i=i.replace(/(apple|webkit)\-[a-z\-]+/gi,"")}if(b){switch(o){case"rowspan":case"colspan":if(i===1){i=""}break;case"size":if(i==="+0"||i===20||i===0){i=""}break;case"width":case"height":case"vspace":case"checked":case"disabled":case"readonly":if(i===0){i=""}break;case"hspace":if(i===-1){i=""}break;case"maxlength":case"tabindex":if(i===32768||i===2147483647||i==="32768"){i=""}break;case"multiple":case"compact":case"noshade":case"nowrap":if(i===65535){return o}return k;case"shape":i=i.toLowerCase();break;default:if(o.indexOf("on")===0&&i){i=e._replace(/^function\s+\w+\(\)\s+\{\s+(.*)\s+\}$/,"$1",""+i)}}}return(i!==l&&i!==null&&i!=="")?""+i:k},getPos:function(q,l){var j=this,i=0,p=0,m,o=j.doc,k;q=j.get(q);l=l||o.body;if(q){if(q.getBoundingClientRect){q=q.getBoundingClientRect();m=j.boxModel?o.documentElement:o.body;i=q.left+(o.documentElement.scrollLeft||o.body.scrollLeft)-m.clientTop;p=q.top+(o.documentElement.scrollTop||o.body.scrollTop)-m.clientLeft;return{x:i,y:p}}k=q;while(k&&k!=l&&k.nodeType){i+=k.offsetLeft||0;p+=k.offsetTop||0;k=k.offsetParent}k=q.parentNode;while(k&&k!=l&&k.nodeType){i-=k.scrollLeft||0;p-=k.scrollTop||0;k=k.parentNode}}return{x:i,y:p}},parseStyle:function(i){return this.styles.parse(i)},serializeStyle:function(j,i){return this.styles.serialize(j,i)},addStyle:function(j){var k=this.doc,i;styleElm=k.getElementById("mceDefaultStyles");if(!styleElm){styleElm=k.createElement("style"),styleElm.id="mceDefaultStyles";styleElm.type="text/css";i=k.getElementsByTagName("head")[0];if(i.firstChild){i.insertBefore(styleElm,i.firstChild)}else{i.appendChild(styleElm)}}if(styleElm.styleSheet){styleElm.styleSheet.cssText+=j}else{styleElm.appendChild(k.createTextNode(j))}},loadCSS:function(i){var k=this,l=k.doc,j;if(!i){i=""}j=l.getElementsByTagName("head")[0];g(i.split(","),function(m){var n;if(k.files[m]){return}k.files[m]=true;n=k.create("link",{rel:"stylesheet",href:e._addVer(m)});if(b&&l.documentMode&&l.recalc){n.onload=function(){if(l.recalc){l.recalc()}n.onload=null}}j.appendChild(n)})},addClass:function(i,j){return this.run(i,function(k){var l;if(!j){return 0}if(this.hasClass(k,j)){return k.className}l=this.removeClass(k,j);return k.className=(l!=""?(l+" "):"")+j})},removeClass:function(k,l){var i=this,j;return i.run(k,function(n){var m;if(i.hasClass(n,l)){if(!j){j=new RegExp("(^|\\s+)"+l+"(\\s+|$)","g")}m=n.className.replace(j," ");m=e.trim(m!=" "?m:"");n.className=m;if(!m){n.removeAttribute("class");n.removeAttribute("className")}return m}return n.className})},hasClass:function(j,i){j=this.get(j);if(!j||!i){return false}return(" "+j.className+" ").indexOf(" "+i+" ")!==-1},show:function(i){return this.setStyle(i,"display","block")},hide:function(i){return this.setStyle(i,"display","none")},isHidden:function(i){i=this.get(i);return !i||i.style.display=="none"||this.getStyle(i,"display")=="none"},uniqueId:function(i){return(!i?"mce_":i)+(this.counter++)},setHTML:function(k,j){var i=this;return i.run(k,function(m){if(b){while(m.firstChild){m.removeChild(m.firstChild)}try{m.innerHTML="
    "+j;m.removeChild(m.firstChild)}catch(l){var n=i.create("div");n.innerHTML="
    "+j;g(e.grep(n.childNodes),function(p,o){if(o&&m.canHaveHTML){m.appendChild(p)}})}}else{m.innerHTML=j}return j})},getOuterHTML:function(k){var j,i=this;k=i.get(k);if(!k){return null}if(k.nodeType===1&&i.hasOuterHTML){return k.outerHTML}j=(k.ownerDocument||i.doc).createElement("body");j.appendChild(k.cloneNode(true));return j.innerHTML},setOuterHTML:function(l,j,m){var i=this;function k(p,o,r){var s,q;q=r.createElement("body");q.innerHTML=o;s=q.lastChild;while(s){i.insertAfter(s.cloneNode(true),p);s=s.previousSibling}i.remove(p)}return this.run(l,function(o){o=i.get(o);if(o.nodeType==1){m=m||o.ownerDocument||i.doc;if(b){try{if(b&&o.nodeType==1){o.outerHTML=j}else{k(o,j,m)}}catch(n){k(o,j,m)}}else{k(o,j,m)}}})},decode:h.decode,encode:h.encodeAllRaw,insertAfter:function(i,j){j=this.get(j);return this.run(i,function(l){var k,m;k=j.parentNode;m=j.nextSibling;if(m){k.insertBefore(l,m)}else{k.appendChild(l)}return l})},replace:function(m,l,i){var j=this;if(d(l,"array")){m=m.cloneNode(true)}return j.run(l,function(k){if(i){g(e.grep(k.childNodes),function(n){m.appendChild(n)})}return k.parentNode.replaceChild(m,k)})},rename:function(l,i){var k=this,j;if(l.nodeName!=i.toUpperCase()){j=k.create(i);g(k.getAttribs(l),function(m){k.setAttrib(j,m.nodeName,k.getAttrib(l,m.nodeName))});k.replace(j,l,1)}return j||l},findCommonAncestor:function(k,i){var l=k,j;while(l){j=i;while(j&&l!=j){j=j.parentNode}if(l==j){break}l=l.parentNode}if(!l&&k.ownerDocument){return k.ownerDocument.documentElement}return l},toHex:function(i){var k=/^\s*rgb\s*?\(\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?\)\s*$/i.exec(i);function j(l){l=parseInt(l,10).toString(16);return l.length>1?l:"0"+l}if(k){i="#"+j(k[1])+j(k[2])+j(k[3]);return i}return i},getClasses:function(){var n=this,j=[],m,o={},p=n.settings.class_filter,l;if(n.classes){return n.classes}function q(i){g(i.imports,function(s){q(s)});g(i.cssRules||i.rules,function(s){switch(s.type||1){case 1:if(s.selectorText){g(s.selectorText.split(","),function(r){r=r.replace(/^\s*|\s*$|^\s\./g,"");if(/\.mce/.test(r)||!/\.[\w\-]+$/.test(r)){return}l=r;r=e._replace(/.*\.([a-z0-9_\-]+).*/i,"$1",r);if(p&&!(r=p(r,l))){return}if(!o[r]){j.push({"class":r});o[r]=1}})}break;case 3:q(s.styleSheet);break}})}try{g(n.doc.styleSheets,q)}catch(k){}if(j.length>0){n.classes=j}return j},run:function(l,k,j){var i=this,m;if(i.doc&&typeof(l)==="string"){l=i.get(l)}if(!l){return false}j=j||this;if(!l.nodeType&&(l.length||l.length===0)){m=[];g(l,function(o,n){if(o){if(typeof(o)=="string"){o=i.doc.getElementById(o)}m.push(k.call(j,o,n))}});return m}return k.call(j,l)},getAttribs:function(j){var i;j=this.get(j);if(!j){return[]}if(b){i=[];if(j.nodeName=="OBJECT"){return j.attributes}if(j.nodeName==="OPTION"&&this.getAttrib(j,"selected")){i.push({specified:1,nodeName:"selected"})}j.cloneNode(false).outerHTML.replace(/<\/?[\w:\-]+ ?|=[\"][^\"]+\"|=\'[^\']+\'|=[\w\-]+|>/gi,"").replace(/[\w:\-]+/gi,function(k){i.push({specified:1,nodeName:k})});return i}return j.attributes},isEmpty:function(m,k){var r=this,o,n,q,j,l,p=0;m=m.firstChild;if(m){j=new e.dom.TreeWalker(m,m.parentNode);k=k||r.schema?r.schema.getNonEmptyElements():null;do{q=m.nodeType;if(q===1){if(m.getAttribute("data-mce-bogus")){continue}l=m.nodeName.toLowerCase();if(k&&k[l]){if(l==="br"){p++;continue}return false}n=r.getAttribs(m);o=m.attributes.length;while(o--){l=m.attributes[o].nodeName;if(l==="name"||l==="data-mce-bookmark"){return false}}}if(q==8){return false}if((q===3&&!a.test(m.nodeValue))){return false}}while(m=j.next())}return p<=1},destroy:function(j){var i=this;i.win=i.doc=i.root=i.events=i.frag=null;if(!j){e.removeUnload(i.destroy)}},createRng:function(){var i=this.doc;return i.createRange?i.createRange():new e.dom.Range(this)},nodeIndex:function(m,n){var i=0,k,l,j;if(m){for(k=m.nodeType,m=m.previousSibling,l=m;m;m=m.previousSibling){j=m.nodeType;if(n&&j==3){if(j==k||!m.nodeValue.length){continue}}i++;k=j}}return i},split:function(m,l,p){var q=this,i=q.createRng(),n,k,o;function j(v){var t,s=v.childNodes,u=v.nodeType;function x(A){var z=A.previousSibling&&A.previousSibling.nodeName=="SPAN";var y=A.nextSibling&&A.nextSibling.nodeName=="SPAN";return z&&y}if(u==1&&v.getAttribute("data-mce-type")=="bookmark"){return}for(t=s.length-1;t>=0;t--){j(s[t])}if(u!=9){if(u==3&&v.nodeValue.length>0){var r=e.trim(v.nodeValue).length;if(!q.isBlock(v.parentNode)||r>0||r===0&&x(v)){return}}else{if(u==1){s=v.childNodes;if(s.length==1&&s[0]&&s[0].nodeType==1&&s[0].getAttribute("data-mce-type")=="bookmark"){v.parentNode.insertBefore(s[0],v)}if(s.length||/^(br|hr|input|img)$/i.test(v.nodeName)){return}}}q.remove(v)}return v}if(m&&l){i.setStart(m.parentNode,q.nodeIndex(m));i.setEnd(l.parentNode,q.nodeIndex(l));n=i.extractContents();i=q.createRng();i.setStart(l.parentNode,q.nodeIndex(l)+1);i.setEnd(m.parentNode,q.nodeIndex(m)+1);k=i.extractContents();o=m.parentNode;o.insertBefore(j(n),m);if(p){o.replaceChild(p,l)}else{o.insertBefore(l,m)}o.insertBefore(j(k),m);q.remove(m);return p||l}},bind:function(l,i,k,j){return this.events.add(l,i,k,j||this)},unbind:function(k,i,j){return this.events.remove(k,i,j)},fire:function(k,j,i){return this.events.fire(k,j,i)},getContentEditable:function(j){var i;if(j.nodeType!=1){return null}i=j.getAttribute("data-mce-contenteditable");if(i&&i!=="inherit"){return i}return j.contentEditable!=="inherit"?j.contentEditable:null},_findSib:function(l,i,j){var k=this,m=i;if(l){if(d(m,"string")){m=function(n){return k.is(n,i)}}for(l=l[j];l;l=l[j]){if(m(l)){return l}}}return null},_isRes:function(i){return/^(top|left|bottom|right|width|height)/i.test(i)||/;\s*(top|left|bottom|right|width|height)/i.test(i)}});e.DOM=new e.dom.DOMUtils(document,{process_html:0})})(tinymce);(function(a){function b(c){var O=this,e=c.doc,U=0,F=1,j=2,E=true,S=false,W="startOffset",h="startContainer",Q="endContainer",A="endOffset",k=tinymce.extend,n=c.nodeIndex;k(O,{startContainer:e,startOffset:0,endContainer:e,endOffset:0,collapsed:E,commonAncestorContainer:e,START_TO_START:0,START_TO_END:1,END_TO_END:2,END_TO_START:3,setStart:q,setEnd:s,setStartBefore:g,setStartAfter:J,setEndBefore:K,setEndAfter:u,collapse:B,selectNode:y,selectNodeContents:G,compareBoundaryPoints:v,deleteContents:p,extractContents:I,cloneContents:d,insertNode:D,surroundContents:N,cloneRange:L,toStringIE:T});function x(){return e.createDocumentFragment()}function q(X,t){C(E,X,t)}function s(X,t){C(S,X,t)}function g(t){q(t.parentNode,n(t))}function J(t){q(t.parentNode,n(t)+1)}function K(t){s(t.parentNode,n(t))}function u(t){s(t.parentNode,n(t)+1)}function B(t){if(t){O[Q]=O[h];O[A]=O[W]}else{O[h]=O[Q];O[W]=O[A]}O.collapsed=E}function y(t){g(t);u(t)}function G(t){q(t,0);s(t,t.nodeType===1?t.childNodes.length:t.nodeValue.length)}function v(aa,t){var ad=O[h],Y=O[W],ac=O[Q],X=O[A],ab=t.startContainer,af=t.startOffset,Z=t.endContainer,ae=t.endOffset;if(aa===0){return H(ad,Y,ab,af)}if(aa===1){return H(ac,X,ab,af)}if(aa===2){return H(ac,X,Z,ae)}if(aa===3){return H(ad,Y,Z,ae)}}function p(){l(j)}function I(){return l(U)}function d(){return l(F)}function D(aa){var X=this[h],t=this[W],Z,Y;if((X.nodeType===3||X.nodeType===4)&&X.nodeValue){if(!t){X.parentNode.insertBefore(aa,X)}else{if(t>=X.nodeValue.length){c.insertAfter(aa,X)}else{Z=X.splitText(t);X.parentNode.insertBefore(aa,Z)}}}else{if(X.childNodes.length>0){Y=X.childNodes[t]}if(Y){X.insertBefore(aa,Y)}else{X.appendChild(aa)}}}function N(X){var t=O.extractContents();O.insertNode(X);X.appendChild(t);O.selectNode(X)}function L(){return k(new b(c),{startContainer:O[h],startOffset:O[W],endContainer:O[Q],endOffset:O[A],collapsed:O.collapsed,commonAncestorContainer:O.commonAncestorContainer})}function P(t,X){var Y;if(t.nodeType==3){return t}if(X<0){return t}Y=t.firstChild;while(Y&&X>0){--X;Y=Y.nextSibling}if(Y){return Y}return t}function m(){return(O[h]==O[Q]&&O[W]==O[A])}function H(Z,ab,X,aa){var ac,Y,t,ad,af,ae;if(Z==X){if(ab==aa){return 0}if(ab0){O.collapse(X)}}else{O.collapse(X)}O.collapsed=m();O.commonAncestorContainer=c.findCommonAncestor(O[h],O[Q])}function l(ad){var ac,Z=0,af=0,X,ab,Y,aa,t,ae;if(O[h]==O[Q]){return f(ad)}for(ac=O[Q],X=ac.parentNode;X;ac=X,X=X.parentNode){if(X==O[h]){return r(ac,ad)}++Z}for(ac=O[h],X=ac.parentNode;X;ac=X,X=X.parentNode){if(X==O[Q]){return V(ac,ad)}++af}ab=af-Z;Y=O[h];while(ab>0){Y=Y.parentNode;ab--}aa=O[Q];while(ab<0){aa=aa.parentNode;ab++}for(t=Y.parentNode,ae=aa.parentNode;t!=ae;t=t.parentNode,ae=ae.parentNode){Y=t;aa=ae}return o(Y,aa,ad)}function f(ac){var ae,af,t,Y,Z,ad,aa,X,ab;if(ac!=j){ae=x()}if(O[W]==O[A]){return ae}if(O[h].nodeType==3){af=O[h].nodeValue;t=af.substring(O[W],O[A]);if(ac!=F){Y=O[h];X=O[W];ab=O[A]-O[W];if(X===0&&ab>=Y.nodeValue.length-1){Y.parentNode.removeChild(Y)}else{Y.deleteData(X,ab)}O.collapse(E)}if(ac==j){return}if(t.length>0){ae.appendChild(e.createTextNode(t))}return ae}Y=P(O[h],O[W]);Z=O[A]-O[W];while(Y&&Z>0){ad=Y.nextSibling;aa=z(Y,ac);if(ae){ae.appendChild(aa)}--Z;Y=ad}if(ac!=F){O.collapse(E)}return ae}function r(ad,aa){var ac,ab,X,t,Z,Y;if(aa!=j){ac=x()}ab=i(ad,aa);if(ac){ac.appendChild(ab)}X=n(ad);t=X-O[W];if(t<=0){if(aa!=F){O.setEndBefore(ad);O.collapse(S)}return ac}ab=ad.previousSibling;while(t>0){Z=ab.previousSibling;Y=z(ab,aa);if(ac){ac.insertBefore(Y,ac.firstChild)}--t;ab=Z}if(aa!=F){O.setEndBefore(ad);O.collapse(S)}return ac}function V(ab,aa){var ad,X,ac,t,Z,Y;if(aa!=j){ad=x()}ac=R(ab,aa);if(ad){ad.appendChild(ac)}X=n(ab);++X;t=O[A]-X;ac=ab.nextSibling;while(ac&&t>0){Z=ac.nextSibling;Y=z(ac,aa);if(ad){ad.appendChild(Y)}--t;ac=Z}if(aa!=F){O.setStartAfter(ab);O.collapse(E)}return ad}function o(ab,t,ae){var Y,ag,aa,ac,ad,X,af,Z;if(ae!=j){ag=x()}Y=R(ab,ae);if(ag){ag.appendChild(Y)}aa=ab.parentNode;ac=n(ab);ad=n(t);++ac;X=ad-ac;af=ab.nextSibling;while(X>0){Z=af.nextSibling;Y=z(af,ae);if(ag){ag.appendChild(Y)}af=Z;--X}Y=i(t,ae);if(ag){ag.appendChild(Y)}if(ae!=F){O.setStartAfter(ab);O.collapse(E)}return ag}function i(ac,ad){var Y=P(O[Q],O[A]-1),ae,ab,aa,t,X,Z=Y!=O[Q];if(Y==ac){return M(Y,Z,S,ad)}ae=Y.parentNode;ab=M(ae,S,S,ad);while(ae){while(Y){aa=Y.previousSibling;t=M(Y,Z,S,ad);if(ad!=j){ab.insertBefore(t,ab.firstChild)}Z=E;Y=aa}if(ae==ac){return ab}Y=ae.previousSibling;ae=ae.parentNode;X=M(ae,S,S,ad);if(ad!=j){X.appendChild(ab)}ab=X}}function R(ac,ad){var Z=P(O[h],O[W]),aa=Z!=O[h],ae,ab,Y,t,X;if(Z==ac){return M(Z,aa,E,ad)}ae=Z.parentNode;ab=M(ae,S,E,ad);while(ae){while(Z){Y=Z.nextSibling;t=M(Z,aa,E,ad);if(ad!=j){ab.appendChild(t)}aa=E;Z=Y}if(ae==ac){return ab}Z=ae.nextSibling;ae=ae.parentNode;X=M(ae,S,E,ad);if(ad!=j){X.appendChild(ab)}ab=X}}function M(t,aa,ad,ae){var Z,Y,ab,X,ac;if(aa){return z(t,ae)}if(t.nodeType==3){Z=t.nodeValue;if(ad){X=O[W];Y=Z.substring(X);ab=Z.substring(0,X)}else{X=O[A];Y=Z.substring(0,X);ab=Z.substring(X)}if(ae!=F){t.nodeValue=ab}if(ae==j){return}ac=c.clone(t,S);ac.nodeValue=Y;return ac}if(ae==j){return}return c.clone(t,S)}function z(X,t){if(t!=j){return t==F?c.clone(X,E):X}X.parentNode.removeChild(X)}function T(){return c.create("body",null,d()).outerText}return O}a.Range=b;b.prototype.toString=function(){return this.toStringIE()}})(tinymce.dom);(function(){function a(d){var b=this,h=d.dom,c=true,f=false;function e(i,j){var k,t=0,q,n,m,l,o,r,p=-1,s;k=i.duplicate();k.collapse(j);s=k.parentElement();if(s.ownerDocument!==d.dom.doc){return}while(s.contentEditable==="false"){s=s.parentNode}if(!s.hasChildNodes()){return{node:s,inside:1}}m=s.children;q=m.length-1;while(t<=q){r=Math.floor((t+q)/2);l=m[r];k.moveToElementText(l);p=k.compareEndPoints(j?"StartToStart":"EndToEnd",i);if(p>0){q=r-1}else{if(p<0){t=r+1}else{return{node:l}}}}if(p<0){if(!l){k.moveToElementText(s);k.collapse(true);l=s;n=true}else{k.collapse(false)}o=0;while(k.compareEndPoints(j?"StartToStart":"StartToEnd",i)!==0){if(k.move("character",1)===0||s!=k.parentElement()){break}o++}}else{k.collapse(true);o=0;while(k.compareEndPoints(j?"StartToStart":"StartToEnd",i)!==0){if(k.move("character",-1)===0||s!=k.parentElement()){break}o++}}return{node:l,position:p,offset:o,inside:n}}function g(){var i=d.getRng(),r=h.createRng(),l,k,p,q,m,j;l=i.item?i.item(0):i.parentElement();if(l.ownerDocument!=h.doc){return r}k=d.isCollapsed();if(i.item){r.setStart(l.parentNode,h.nodeIndex(l));r.setEnd(r.startContainer,r.startOffset+1);return r}function o(A){var u=e(i,A),s,y,z=0,x,v,t;s=u.node;y=u.offset;if(u.inside&&!s.hasChildNodes()){r[A?"setStart":"setEnd"](s,0);return}if(y===v){r[A?"setStartBefore":"setEndAfter"](s);return}if(u.position<0){x=u.inside?s.firstChild:s.nextSibling;if(!x){r[A?"setStartAfter":"setEndAfter"](s);return}if(!y){if(x.nodeType==3){r[A?"setStart":"setEnd"](x,0)}else{r[A?"setStartBefore":"setEndBefore"](x)}return}while(x){t=x.nodeValue;z+=t.length;if(z>=y){s=x;z-=y;z=t.length-z;break}x=x.nextSibling}}else{x=s.previousSibling;if(!x){return r[A?"setStartBefore":"setEndBefore"](s)}if(!y){if(s.nodeType==3){r[A?"setStart":"setEnd"](x,s.nodeValue.length)}else{r[A?"setStartAfter":"setEndAfter"](x)}return}while(x){z+=x.nodeValue.length;if(z>=y){s=x;z-=y;break}x=x.previousSibling}}r[A?"setStart":"setEnd"](s,z)}try{o(true);if(!k){o()}}catch(n){if(n.number==-2147024809){m=b.getBookmark(2);p=i.duplicate();p.collapse(true);l=p.parentElement();if(!k){p=i.duplicate();p.collapse(false);q=p.parentElement();q.innerHTML=q.innerHTML}l.innerHTML=l.innerHTML;b.moveToBookmark(m);i=d.getRng();o(true);if(!k){o()}}else{throw n}}return r}this.getBookmark=function(m){var j=d.getRng(),o,i,l={};function n(u){var t,p,s,r,q=[];t=u.parentNode;p=h.getRoot().parentNode;while(t!=p&&t.nodeType!==9){s=t.children;r=s.length;while(r--){if(u===s[r]){q.push(r);break}}u=t;t=t.parentNode}return q}function k(q){var p;p=e(j,q);if(p){return{position:p.position,offset:p.offset,indexes:n(p.node),inside:p.inside}}}if(m===2){if(!j.item){l.start=k(true);if(!d.isCollapsed()){l.end=k()}}else{l.start={ctrl:true,indexes:n(j.item(0))}}}return l};this.moveToBookmark=function(k){var j,i=h.doc.body;function m(o){var r,q,n,p;r=h.getRoot();for(q=o.length-1;q>=0;q--){p=r.children;n=o[q];if(n<=p.length-1){r=p[n]}}return r}function l(r){var n=k[r?"start":"end"],q,p,o;if(n){q=n.position>0;p=i.createTextRange();p.moveToElementText(m(n.indexes));offset=n.offset;if(offset!==o){p.collapse(n.inside||q);p.moveStart("character",q?-offset:offset)}else{p.collapse(r)}j.setEndPoint(r?"StartToStart":"EndToStart",p);if(r){j.collapse(true)}}}if(k.start){if(k.start.ctrl){j=i.createControlRange();j.addElement(m(k.start.indexes));j.select()}else{j=i.createTextRange();l(true);l();j.select()}}};this.addRange=function(i){var n,l,k,p,t,q,s,r=d.dom.doc,m=r.body;function j(A){var v,z,u,y,x;u=h.create("a");v=A?k:t;z=A?p:q;y=n.duplicate();if(v==r||v==r.documentElement){v=m;z=0}if(v.nodeType==3){v.parentNode.insertBefore(u,v);y.moveToElementText(u);y.moveStart("character",z);h.remove(u);n.setEndPoint(A?"StartToStart":"EndToEnd",y)}else{x=v.childNodes;if(x.length){if(z>=x.length){h.insertAfter(u,x[x.length-1])}else{v.insertBefore(u,x[z])}y.moveToElementText(u)}else{if(v.canHaveHTML){v.innerHTML="\uFEFF";u=v.firstChild;y.moveToElementText(u);y.collapse(f)}}n.setEndPoint(A?"StartToStart":"EndToEnd",y);h.remove(u)}}k=i.startContainer;p=i.startOffset;t=i.endContainer;q=i.endOffset;n=m.createTextRange();if(k==t&&k.nodeType==1){if(p==q&&!k.hasChildNodes()){if(k.canHaveHTML){s=k.previousSibling;if(s&&!s.hasChildNodes()&&h.isBlock(s)){s.innerHTML="\uFEFF"}else{s=null}k.innerHTML="\uFEFF\uFEFF";n.moveToElementText(k.lastChild);n.select();h.doc.selection.clear();k.innerHTML="";if(s){s.innerHTML=""}return}else{p=h.nodeIndex(k);k=k.parentNode}}if(p==q-1){try{l=m.createControlRange();l.addElement(k.childNodes[p]);l.select();return}catch(o){}}}j(true);j();n.select()};this.getRangeAt=g}tinymce.dom.TridentSelection=a})();(function(){var n=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,i="sizcache",o=0,r=Object.prototype.toString,h=false,g=true,q=/\\/g,u=/\r\n/g,x=/\W/;[0,0].sort(function(){g=false;return 0});var d=function(C,e,F,G){F=F||[];e=e||document;var I=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!C||typeof C!=="string"){return F}var z,K,N,y,J,M,L,E,B=true,A=d.isXML(e),D=[],H=C;do{n.exec("");z=n.exec(H);if(z){H=z[3];D.push(z[1]);if(z[2]){y=z[3];break}}}while(z);if(D.length>1&&j.exec(C)){if(D.length===2&&k.relative[D[0]]){K=s(D[0]+D[1],e,G)}else{K=k.relative[D[0]]?[e]:d(D.shift(),e);while(D.length){C=D.shift();if(k.relative[C]){C+=D.shift()}K=s(C,K,G)}}}else{if(!G&&D.length>1&&e.nodeType===9&&!A&&k.match.ID.test(D[0])&&!k.match.ID.test(D[D.length-1])){J=d.find(D.shift(),e,A);e=J.expr?d.filter(J.expr,J.set)[0]:J.set[0]}if(e){J=G?{expr:D.pop(),set:l(G)}:d.find(D.pop(),D.length===1&&(D[0]==="~"||D[0]==="+")&&e.parentNode?e.parentNode:e,A);K=J.expr?d.filter(J.expr,J.set):J.set;if(D.length>0){N=l(K)}else{B=false}while(D.length){M=D.pop();L=M;if(!k.relative[M]){M=""}else{L=D.pop()}if(L==null){L=e}k.relative[M](N,L,A)}}else{N=D=[]}}if(!N){N=K}if(!N){d.error(M||C)}if(r.call(N)==="[object Array]"){if(!B){F.push.apply(F,N)}else{if(e&&e.nodeType===1){for(E=0;N[E]!=null;E++){if(N[E]&&(N[E]===true||N[E].nodeType===1&&d.contains(e,N[E]))){F.push(K[E])}}}else{for(E=0;N[E]!=null;E++){if(N[E]&&N[E].nodeType===1){F.push(K[E])}}}}}else{l(N,F)}if(y){d(y,I,F,G);d.uniqueSort(F)}return F};d.uniqueSort=function(y){if(p){h=g;y.sort(p);if(h){for(var e=1;e0};d.find=function(E,e,F){var D,z,B,A,C,y;if(!E){return[]}for(z=0,B=k.order.length;z":function(D,y){var C,B=typeof y==="string",z=0,e=D.length;if(B&&!x.test(y)){y=y.toLowerCase();for(;z=0)){if(!z){e.push(C)}}else{if(z){y[B]=false}}}}return false},ID:function(e){return e[1].replace(q,"")},TAG:function(y,e){return y[1].replace(q,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){if(!e[2]){d.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g,"");var y=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(y[1]+(y[2]||1))-0;e[3]=y[3]-0}else{if(e[2]){d.error(e[0])}}e[0]=o++;return e},ATTR:function(B,y,z,e,C,D){var A=B[1]=B[1].replace(q,"");if(!D&&k.attrMap[A]){B[1]=k.attrMap[A]}B[4]=(B[4]||B[5]||"").replace(q,"");if(B[2]==="~="){B[4]=" "+B[4]+" "}return B},PSEUDO:function(B,y,z,e,C){if(B[1]==="not"){if((n.exec(B[3])||"").length>1||/^\w/.test(B[3])){B[3]=d(B[3],null,null,y)}else{var A=d.filter(B[3],y,z,true^C);if(!z){e.push.apply(e,A)}return false}}else{if(k.match.POS.test(B[0])||k.match.CHILD.test(B[0])){return true}}return B},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(z,y,e){return !!d(e[3],z).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(z){var e=z.getAttribute("type"),y=z.type;return z.nodeName.toLowerCase()==="input"&&"text"===y&&(e===y||e===null)},radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type},file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type},password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type},submit:function(y){var e=y.nodeName.toLowerCase();return(e==="input"||e==="button")&&"submit"===y.type},image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type},reset:function(y){var e=y.nodeName.toLowerCase();return(e==="input"||e==="button")&&"reset"===y.type},button:function(y){var e=y.nodeName.toLowerCase();return e==="input"&&"button"===y.type||e==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(y,e){return e===0},last:function(z,y,e,A){return y===A.length-1},even:function(y,e){return e%2===0},odd:function(y,e){return e%2===1},lt:function(z,y,e){return ye[3]-0},nth:function(z,y,e){return e[3]-0===y},eq:function(z,y,e){return e[3]-0===y}},filter:{PSEUDO:function(z,E,D,F){var e=E[1],y=k.filters[e];if(y){return y(z,D,E,F)}else{if(e==="contains"){return(z.textContent||z.innerText||b([z])||"").indexOf(E[3])>=0}else{if(e==="not"){var A=E[3];for(var C=0,B=A.length;C=0)}}},ID:function(y,e){return y.nodeType===1&&y.getAttribute("id")===e},TAG:function(y,e){return(e==="*"&&y.nodeType===1)||!!y.nodeName&&y.nodeName.toLowerCase()===e},CLASS:function(y,e){return(" "+(y.className||y.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(C,A){var z=A[1],e=d.attr?d.attr(C,z):k.attrHandle[z]?k.attrHandle[z](C):C[z]!=null?C[z]:C.getAttribute(z),D=e+"",B=A[2],y=A[4];return e==null?B==="!=":!B&&d.attr?e!=null:B==="="?D===y:B==="*="?D.indexOf(y)>=0:B==="~="?(" "+D+" ").indexOf(y)>=0:!y?D&&e!==false:B==="!="?D!==y:B==="^="?D.indexOf(y)===0:B==="$="?D.substr(D.length-y.length)===y:B==="|="?D===y||D.substr(0,y.length+1)===y+"-":false},POS:function(B,y,z,C){var e=y[2],A=k.setFilters[e];if(A){return A(B,z,y,C)}}}};var j=k.match.POS,c=function(y,e){return"\\"+(e-0+1)};for(var f in k.match){k.match[f]=new RegExp(k.match[f].source+(/(?![^\[]*\])(?![^\(]*\))/.source));k.leftMatch[f]=new RegExp(/(^(?:.|\r|\n)*?)/.source+k.match[f].source.replace(/\\(\d+)/g,c))}k.match.globalPOS=j;var l=function(y,e){y=Array.prototype.slice.call(y,0);if(e){e.push.apply(e,y);return e}return y};try{Array.prototype.slice.call(document.documentElement.childNodes,0)[0].nodeType}catch(v){l=function(B,A){var z=0,y=A||[];if(r.call(B)==="[object Array]"){Array.prototype.push.apply(y,B)}else{if(typeof B.length==="number"){for(var e=B.length;z";e.insertBefore(y,e.firstChild);if(document.getElementById(z)){k.find.ID=function(B,C,D){if(typeof C.getElementById!=="undefined"&&!D){var A=C.getElementById(B[1]);return A?A.id===B[1]||typeof A.getAttributeNode!=="undefined"&&A.getAttributeNode("id").nodeValue===B[1]?[A]:undefined:[]}};k.filter.ID=function(C,A){var B=typeof C.getAttributeNode!=="undefined"&&C.getAttributeNode("id");return C.nodeType===1&&B&&B.nodeValue===A}}e.removeChild(y);e=y=null})();(function(){var e=document.createElement("div");e.appendChild(document.createComment(""));if(e.getElementsByTagName("*").length>0){k.find.TAG=function(y,C){var B=C.getElementsByTagName(y[1]);if(y[1]==="*"){var A=[];for(var z=0;B[z];z++){if(B[z].nodeType===1){A.push(B[z])}}B=A}return B}}e.innerHTML="";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){k.attrHandle.href=function(y){return y.getAttribute("href",2)}}e=null})();if(document.querySelectorAll){(function(){var e=d,A=document.createElement("div"),z="__sizzle__";A.innerHTML="

    ";if(A.querySelectorAll&&A.querySelectorAll(".TEST").length===0){return}d=function(L,C,G,K){C=C||document;if(!K&&!d.isXML(C)){var J=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(L);if(J&&(C.nodeType===1||C.nodeType===9)){if(J[1]){return l(C.getElementsByTagName(L),G)}else{if(J[2]&&k.find.CLASS&&C.getElementsByClassName){return l(C.getElementsByClassName(J[2]),G)}}}if(C.nodeType===9){if(L==="body"&&C.body){return l([C.body],G)}else{if(J&&J[3]){var F=C.getElementById(J[3]);if(F&&F.parentNode){if(F.id===J[3]){return l([F],G)}}else{return l([],G)}}}try{return l(C.querySelectorAll(L),G)}catch(H){}}else{if(C.nodeType===1&&C.nodeName.toLowerCase()!=="object"){var D=C,E=C.getAttribute("id"),B=E||z,N=C.parentNode,M=/^\s*[+~]/.test(L);if(!E){C.setAttribute("id",B)}else{B=B.replace(/'/g,"\\$&")}if(M&&N){C=C.parentNode}try{if(!M||N){return l(C.querySelectorAll("[id='"+B+"'] "+L),G)}}catch(I){}finally{if(!E){D.removeAttribute("id")}}}}}return e(L,C,G,K)};for(var y in e){d[y]=e[y]}A=null})()}(function(){var e=document.documentElement,z=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(z){var B=!z.call(document.createElement("div"),"div"),y=false;try{z.call(document.documentElement,"[test!='']:sizzle")}catch(A){y=true}d.matchesSelector=function(D,F){F=F.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!d.isXML(D)){try{if(y||!k.match.PSEUDO.test(F)&&!/!=/.test(F)){var C=z.call(D,F);if(C||!B||D.document&&D.document.nodeType!==11){return C}}}catch(E){}}return d(F,null,null,[D]).length>0}}})();(function(){var e=document.createElement("div");e.innerHTML="
    ";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}k.order.splice(1,0,"CLASS");k.find.CLASS=function(y,z,A){if(typeof z.getElementsByClassName!=="undefined"&&!A){return z.getElementsByClassName(y[1])}};e=null})();function a(y,D,C,G,E,F){for(var A=0,z=G.length;A0){B=e;break}}}e=e[y]}G[A]=B}}}if(document.documentElement.contains){d.contains=function(y,e){return y!==e&&(y.contains?y.contains(e):true)}}else{if(document.documentElement.compareDocumentPosition){d.contains=function(y,e){return !!(y.compareDocumentPosition(e)&16)}}else{d.contains=function(){return false}}}d.isXML=function(e){var y=(e?e.ownerDocument||e:0).documentElement;return y?y.nodeName!=="HTML":false};var s=function(z,e,D){var C,E=[],B="",F=e.nodeType?[e]:e;while((C=k.match.PSEUDO.exec(z))){B+=C[0];z=z.replace(k.match.PSEUDO,"")}z=k.relative[z]?z+"*":z;for(var A=0,y=F.length;A"+(i.item?i.item(0).outerHTML:i.htmlText);m.removeChild(m.firstChild)}else{m.innerHTML=i.toString()}}if(/^\s/.test(m.innerHTML)){j=" "}if(/\s+$/.test(m.innerHTML)){l=" "}h.getInner=true;h.content=g.isCollapsed()?"":j+g.serializer.serialize(m,h)+l;g.onGetContent.dispatch(g,h);return h.content},setContent:function(h,j){var o=this,g=o.getRng(),k,l=o.win.document,n,m;j=j||{format:"html"};j.set=true;h=j.content=h;if(!j.no_events){o.onBeforeSetContent.dispatch(o,j)}h=j.content;if(g.insertNode){h+='_';if(g.startContainer==l&&g.endContainer==l){l.body.innerHTML=h}else{g.deleteContents();if(l.body.childNodes.length===0){l.body.innerHTML=h}else{if(g.createContextualFragment){g.insertNode(g.createContextualFragment(h))}else{n=l.createDocumentFragment();m=l.createElement("div");n.appendChild(m);m.outerHTML=h;g.insertNode(n)}}}k=o.dom.get("__caret");g=l.createRange();g.setStartBefore(k);g.setEndBefore(k);o.setRng(g);o.dom.remove("__caret");try{o.setRng(g)}catch(i){}}else{if(g.item){l.execCommand("Delete",false,null);g=o.getRng()}if(/^\s+/.test(h)){g.pasteHTML('_'+h);o.dom.remove("__mce_tmp")}else{g.pasteHTML(h)}}if(!j.no_events){o.onSetContent.dispatch(o,j)}},getStart:function(){var i=this,h=i.getRng(),j,g,l,k;if(h.duplicate||h.item){if(h.item){return h.item(0)}l=h.duplicate();l.collapse(1);j=l.parentElement();if(j.ownerDocument!==i.dom.doc){j=i.dom.getRoot()}g=k=h.parentElement();while(k=k.parentNode){if(k==j){j=g;break}}return j}else{j=h.startContainer;if(j.nodeType==1&&j.hasChildNodes()){j=j.childNodes[Math.min(j.childNodes.length-1,h.startOffset)]}if(j&&j.nodeType==3){return j.parentNode}return j}},getEnd:function(){var h=this,g=h.getRng(),j,i;if(g.duplicate||g.item){if(g.item){return g.item(0)}g=g.duplicate();g.collapse(0);j=g.parentElement();if(j.ownerDocument!==h.dom.doc){j=h.dom.getRoot()}if(j&&j.nodeName=="BODY"){return j.lastChild||j}return j}else{j=g.endContainer;i=g.endOffset;if(j.nodeType==1&&j.hasChildNodes()){j=j.childNodes[i>0?i-1:i]}if(j&&j.nodeType==3){return j.parentNode}return j}},getBookmark:function(s,v){var y=this,n=y.dom,h,k,j,o,i,p,q,m="\uFEFF",x;function g(z,A){var t=0;e(n.select(z),function(C,B){if(C==A){t=B}});return t}function u(t){function z(E){var A,D,C,B=E?"start":"end";A=t[B+"Container"];D=t[B+"Offset"];if(A.nodeType==1&&A.nodeName=="TR"){C=A.childNodes;A=C[Math.min(E?D:D-1,C.length-1)];if(A){D=E?0:A.childNodes.length;t["set"+(E?"Start":"End")](A,D)}}}z(true);z();return t}function l(){var z=y.getRng(true),t=n.getRoot(),A={};function B(E,J){var D=E[J?"startContainer":"endContainer"],I=E[J?"startOffset":"endOffset"],C=[],F,H,G=0;if(D.nodeType==3){if(v){for(F=D.previousSibling;F&&F.nodeType==3;F=F.previousSibling){I+=F.nodeValue.length}}C.push(I)}else{H=D.childNodes;if(I>=H.length&&H.length){G=1;I=Math.max(0,H.length-1)}C.push(y.dom.nodeIndex(H[I],v)+G)}for(;D&&D!=t;D=D.parentNode){C.push(y.dom.nodeIndex(D,v))}return C}A.start=B(z,true);if(!y.isCollapsed()){A.end=B(z)}return A}if(s==2){if(y.tridentSel){return y.tridentSel.getBookmark(s)}return l()}if(s){return{rng:y.getRng()}}h=y.getRng();j=n.uniqueId();o=tinyMCE.activeEditor.selection.isCollapsed();x="overflow:hidden;line-height:0px";if(h.duplicate||h.item){if(!h.item){k=h.duplicate();try{h.collapse();h.pasteHTML(''+m+"");if(!o){k.collapse(false);h.moveToElementText(k.parentElement());if(h.compareEndPoints("StartToEnd",k)===0){k.move("character",-1)}k.pasteHTML(''+m+"")}}catch(r){return null}}else{p=h.item(0);i=p.nodeName;return{name:i,index:g(i,p)}}}else{p=y.getNode();i=p.nodeName;if(i=="IMG"){return{name:i,index:g(i,p)}}k=u(h.cloneRange());if(!o){k.collapse(false);k.insertNode(n.create("span",{"data-mce-type":"bookmark",id:j+"_end",style:x},m))}h=u(h);h.collapse(true);h.insertNode(n.create("span",{"data-mce-type":"bookmark",id:j+"_start",style:x},m))}y.moveToBookmark({id:j,keep:1});return{id:j}},moveToBookmark:function(o){var s=this,m=s.dom,j,i,g,r,k,u,p,q;function h(A){var t=o[A?"start":"end"],x,y,z,v;if(t){z=t[0];for(y=r,x=t.length-1;x>=1;x--){v=y.childNodes;if(t[x]>v.length-1){return}y=v[t[x]]}if(y.nodeType===3){z=Math.min(t[0],y.nodeValue.length)}if(y.nodeType===1){z=Math.min(t[0],y.childNodes.length)}if(A){g.setStart(y,z)}else{g.setEnd(y,z)}}return true}function l(B){var v=m.get(o.id+"_"+B),A,t,y,z,x=o.keep;if(v){A=v.parentNode;if(B=="start"){if(!x){t=m.nodeIndex(v)}else{A=v.firstChild;t=1}k=u=A;p=q=t}else{if(!x){t=m.nodeIndex(v)}else{A=v.firstChild;t=1}u=A;q=t}if(!x){z=v.previousSibling;y=v.nextSibling;e(d.grep(v.childNodes),function(C){if(C.nodeType==3){C.nodeValue=C.nodeValue.replace(/\uFEFF/g,"")}});while(v=m.get(o.id+"_"+B)){m.remove(v,1)}if(z&&y&&z.nodeType==y.nodeType&&z.nodeType==3&&!d.isOpera){t=z.nodeValue.length;z.appendData(y.nodeValue);m.remove(y);if(B=="start"){k=u=z;p=q=t}else{u=z;q=t}}}}}function n(t){if(m.isBlock(t)&&!t.innerHTML&&!b){t.innerHTML='
    '}return t}if(o){if(o.start){g=m.createRng();r=m.getRoot();if(s.tridentSel){return s.tridentSel.moveToBookmark(o)}if(h(true)&&h()){s.setRng(g)}}else{if(o.id){l("start");l("end");if(k){g=m.createRng();g.setStart(n(k),p);g.setEnd(n(u),q);s.setRng(g)}}else{if(o.name){s.select(m.select(o.name)[o.index])}else{if(o.rng){s.setRng(o.rng)}}}}}},select:function(l,k){var j=this,m=j.dom,h=m.createRng(),g;function i(n,p){var o=new a(n,n);do{if(n.nodeType==3&&d.trim(n.nodeValue).length!==0){if(p){h.setStart(n,0)}else{h.setEnd(n,n.nodeValue.length)}return}if(n.nodeName=="BR"){if(p){h.setStartBefore(n)}else{h.setEndBefore(n)}return}}while(n=(p?o.next():o.prev()))}if(l){g=m.nodeIndex(l);h.setStart(l.parentNode,g);h.setEnd(l.parentNode,g+1);if(k){i(l,1);i(l)}j.setRng(h)}return l},isCollapsed:function(){var g=this,i=g.getRng(),h=g.getSel();if(!i||i.item){return false}if(i.compareEndPoints){return i.compareEndPoints("StartToEnd",i)===0}return !h||i.collapsed},collapse:function(g){var i=this,h=i.getRng(),j;if(h.item){j=h.item(0);h=i.win.document.body.createTextRange();h.moveToElementText(j)}h.collapse(!!g);i.setRng(h)},getSel:function(){var h=this,g=this.win;return g.getSelection?g.getSelection():g.document.selection},getRng:function(m){var h=this,j,g,l,k=h.win.document;if(m&&h.tridentSel){return h.tridentSel.getRangeAt(0)}try{if(j=h.getSel()){g=j.rangeCount>0?j.getRangeAt(0):(j.createRange?j.createRange():k.createRange())}}catch(i){}if(d.isIE&&g&&g.setStart&&k.selection.createRange().item){l=k.selection.createRange().item(0);g=k.createRange();g.setStartBefore(l);g.setEndAfter(l)}if(!g){g=k.createRange?k.createRange():k.body.createTextRange()}if(g.setStart&&g.startContainer.nodeType===9&&g.collapsed){l=h.dom.getRoot();g.setStart(l,0);g.setEnd(l,0)}if(h.selectedRange&&h.explicitRange){if(g.compareBoundaryPoints(g.START_TO_START,h.selectedRange)===0&&g.compareBoundaryPoints(g.END_TO_END,h.selectedRange)===0){g=h.explicitRange}else{h.selectedRange=null;h.explicitRange=null}}return g},setRng:function(k,g){var j,i=this;if(!i.tridentSel){j=i.getSel();if(j){i.explicitRange=k;try{j.removeAllRanges()}catch(h){}j.addRange(k);if(g===false&&j.extend){j.collapse(k.endContainer,k.endOffset);j.extend(k.startContainer,k.startOffset)}i.selectedRange=j.rangeCount>0?j.getRangeAt(0):null}}else{if(k.cloneRange){try{i.tridentSel.addRange(k);return}catch(h){}}try{k.select()}catch(h){}}},setNode:function(h){var g=this;g.setContent(g.dom.getOuterHTML(h));return h},getNode:function(){var i=this,h=i.getRng(),j=i.getSel(),m,l=h.startContainer,g=h.endContainer;function k(q,o){var p=q;while(q&&q.nodeType===3&&q.length===0){q=o?q.nextSibling:q.previousSibling}return q||p}if(!h){return i.dom.getRoot()}if(h.setStart){m=h.commonAncestorContainer;if(!h.collapsed){if(h.startContainer==h.endContainer){if(h.endOffset-h.startOffset<2){if(h.startContainer.hasChildNodes()){m=h.startContainer.childNodes[h.startOffset]}}}if(l.nodeType===3&&g.nodeType===3){if(l.length===h.startOffset){l=k(l.nextSibling,true)}else{l=l.parentNode}if(h.endOffset===0){g=k(g.previousSibling,false)}else{g=g.parentNode}if(l&&l===g){return l}}}if(m&&m.nodeType==3){return m.parentNode}return m}return h.item?h.item(0):h.parentElement()},getSelectedBlocks:function(p,h){var o=this,k=o.dom,m,l,i,j=[];m=k.getParent(p||o.getStart(),k.isBlock);l=k.getParent(h||o.getEnd(),k.isBlock);if(m){j.push(m)}if(m&&l&&m!=l){i=m;var g=new a(m,k.getRoot());while((i=g.next())&&i!=l){if(k.isBlock(i)){j.push(i)}}}if(l&&m!=l){j.push(l)}return j},isForward:function(){var i=this.dom,g=this.getSel(),j,h;if(!g||g.anchorNode==null||g.focusNode==null){return true}j=i.createRng();j.setStart(g.anchorNode,g.anchorOffset);j.collapse(true);h=i.createRng();h.setStart(g.focusNode,g.focusOffset);h.collapse(true);return j.compareBoundaryPoints(j.START_TO_START,h)<=0},normalize:function(){var h=this,g,m,l,j,i;function k(p){var o,r,n,s=h.dom,u=s.getRoot(),q,t,v;function y(z,A){var B=new a(z,s.getParent(z.parentNode,s.isBlock)||u);while(z=B[A?"prev":"next"]()){if(z.nodeName==="BR"){return true}}}function x(B,z){var C,A;z=z||o;C=new a(z,s.getParent(z.parentNode,s.isBlock)||u);while(q=C[B?"prev":"next"]()){if(q.nodeType===3&&q.nodeValue.length>0){o=q;r=B?q.nodeValue.length:0;m=true;return}if(s.isBlock(q)||t[q.nodeName.toLowerCase()]){return}A=q}if(l&&A){o=A;m=true;r=0}}o=g[(p?"start":"end")+"Container"];r=g[(p?"start":"end")+"Offset"];t=s.schema.getNonEmptyElements();if(o.nodeType===9){o=s.getRoot();r=0}if(o===u){if(p){q=o.childNodes[r>0?r-1:0];if(q){v=q.nodeName.toLowerCase();if(t[q.nodeName]||q.nodeName=="TABLE"){return}}}if(o.hasChildNodes()){o=o.childNodes[Math.min(!p&&r>0?r-1:r,o.childNodes.length-1)];r=0;if(o.hasChildNodes()&&!/TABLE/.test(o.nodeName)){q=o;n=new a(o,u);do{if(q.nodeType===3&&q.nodeValue.length>0){r=p?0:q.nodeValue.length;o=q;m=true;break}if(t[q.nodeName.toLowerCase()]){r=s.nodeIndex(q);o=q.parentNode;if(q.nodeName=="IMG"&&!p){r++}m=true;break}}while(q=(p?n.next():n.prev()))}}}if(l){if(o.nodeType===3&&r===0){x(true)}if(o.nodeType===1){q=o.childNodes[r];if(q&&q.nodeName==="BR"&&!y(q)&&!y(q,true)){x(true,o.childNodes[r])}}}if(p&&!l&&o.nodeType===3&&r===o.nodeValue.length){x(false)}if(m){g["set"+(p?"Start":"End")](o,r)}}if(d.isIE){return}g=h.getRng();l=g.collapsed;k(true);if(!l){k()}if(m){if(l){g.collapse(true)}h.setRng(g,h.isForward())}},selectorChanged:function(g,j){var h=this,i;if(!h.selectorChangedData){h.selectorChangedData={};i={};h.editor.onNodeChange.addToTop(function(l,k,o){var p=h.dom,m=p.getParents(o,null,p.getRoot()),n={};e(h.selectorChangedData,function(r,q){e(m,function(s){if(p.is(s,q)){if(!i[q]){e(r,function(t){t(true,{node:s,selector:q,parents:m})});i[q]=r}n[q]=r;return false}})});e(i,function(r,q){if(!n[q]){delete i[q];e(r,function(s){s(false,{node:o,selector:q,parents:m})})}})})}if(!h.selectorChangedData[g]){h.selectorChangedData[g]=[]}h.selectorChangedData[g].push(j);return h},destroy:function(h){var g=this;g.win=null;if(!h){d.removeUnload(g.destroy)}},_fixIESelection:function(){var h=this.dom,n=h.doc,i=n.body,k,o,g;function j(p,s){var q=i.createTextRange();try{q.moveToPoint(p,s)}catch(r){q=null}return q}function m(q){var p;if(q.button){p=j(q.x,q.y);if(p){if(p.compareEndPoints("StartToStart",o)>0){p.setEndPoint("StartToStart",o)}else{p.setEndPoint("EndToEnd",o)}p.select()}}else{l()}}function l(){var p=n.selection.createRange();if(o&&!p.item&&p.compareEndPoints("StartToEnd",p)===0){o.select()}h.unbind(n,"mouseup",l);h.unbind(n,"mousemove",m);o=k=0}n.documentElement.unselectable=true;h.bind(n,["mousedown","contextmenu"],function(p){if(p.target.nodeName==="HTML"){if(k){l()}g=n.documentElement;if(g.scrollHeight>g.clientHeight){return}k=1;o=j(p.x,p.y);if(o){h.bind(n,"mouseup",l);h.bind(n,"mousemove",m);h.win.focus();o.select()}}})}})})(tinymce);(function(a){a.dom.Serializer=function(e,i,f){var h,b,d=a.isIE,g=a.each,c;if(!e.apply_source_formatting){e.indent=false}i=i||a.DOM;f=f||new a.html.Schema(e);e.entity_encoding=e.entity_encoding||"named";e.remove_trailing_brs="remove_trailing_brs" in e?e.remove_trailing_brs:true;h=new a.util.Dispatcher(self);b=new a.util.Dispatcher(self);c=new a.html.DomParser(e,f);c.addAttributeFilter("src,href,style",function(k,j){var o=k.length,l,q,n="data-mce-"+j,p=e.url_converter,r=e.url_converter_scope,m;while(o--){l=k[o];q=l.attributes.map[n];if(q!==m){l.attr(j,q.length>0?q:null);l.attr(n,null)}else{q=l.attributes.map[j];if(j==="style"){q=i.serializeStyle(i.parseStyle(q),l.name)}else{if(p){q=p.call(r,q,j,l.name)}}l.attr(j,q.length>0?q:null)}}});c.addAttributeFilter("class",function(j,k){var l=j.length,m,n;while(l--){m=j[l];n=m.attr("class").replace(/(?:^|\s)mce(Item\w+|Selected)(?!\S)/g,"");m.attr("class",n.length>0?n:null)}});c.addAttributeFilter("data-mce-type",function(j,l,k){var m=j.length,n;while(m--){n=j[m];if(n.attributes.map["data-mce-type"]==="bookmark"&&!k.cleanup){n.remove()}}});c.addAttributeFilter("data-mce-expando",function(j,l,k){var m=j.length;while(m--){j[m].attr(l,null)}});c.addNodeFilter("script,style",function(k,l){var m=k.length,n,o;function j(p){return p.replace(/()/g,"\n").replace(/^[\r\n]*|[\r\n]*$/g,"").replace(/^\s*(()?|\s*\/\/\s*\]\]>(-->)?|\/\/\s*(-->)?|\]\]>|\/\*\s*-->\s*\*\/|\s*-->\s*)\s*$/g,"")}while(m--){n=k[m];o=n.firstChild?n.firstChild.value:"";if(l==="script"){n.attr("type",(n.attr("type")||"text/javascript").replace(/^mce\-/,""));if(o.length>0){n.firstChild.value="// "}}else{if(o.length>0){n.firstChild.value=""}}}});c.addNodeFilter("#comment",function(j,k){var l=j.length,m;while(l--){m=j[l];if(m.value.indexOf("[CDATA[")===0){m.name="#cdata";m.type=4;m.value=m.value.replace(/^\[CDATA\[|\]\]$/g,"")}else{if(m.value.indexOf("mce:protected ")===0){m.name="#text";m.type=3;m.raw=true;m.value=unescape(m.value).substr(14)}}}});c.addNodeFilter("xml:namespace,input",function(j,k){var l=j.length,m;while(l--){m=j[l];if(m.type===7){m.remove()}else{if(m.type===1){if(k==="input"&&!("type" in m.attributes.map)){m.attr("type","text")}}}}});if(e.fix_list_elements){c.addNodeFilter("ul,ol",function(k,l){var m=k.length,n,j;while(m--){n=k[m];j=n.parent;if(j.name==="ul"||j.name==="ol"){if(n.prev&&n.prev.name==="li"){n.prev.append(n)}}}})}c.addAttributeFilter("data-mce-src,data-mce-href,data-mce-style",function(j,k){var l=j.length;while(l--){j[l].attr(k,null)}});return{schema:f,addNodeFilter:c.addNodeFilter,addAttributeFilter:c.addAttributeFilter,onPreProcess:h,onPostProcess:b,serialize:function(o,m){var l,p,k,j,n;if(d&&i.select("script,style,select,map").length>0){n=o.innerHTML;o=o.cloneNode(false);i.setHTML(o,n)}else{o=o.cloneNode(true)}l=o.ownerDocument.implementation;if(l.createHTMLDocument){p=l.createHTMLDocument("");g(o.nodeName=="BODY"?o.childNodes:[o],function(q){p.body.appendChild(p.importNode(q,true))});if(o.nodeName!="BODY"){o=p.body.firstChild}else{o=p.body}k=i.doc;i.doc=p}m=m||{};m.format=m.format||"html";if(!m.no_events){m.node=o;h.dispatch(self,m)}j=new a.html.Serializer(e,f);m.content=j.serialize(c.parse(a.trim(m.getInner?o.innerHTML:i.getOuterHTML(o)),m));if(!m.cleanup){m.content=m.content.replace(/\uFEFF|\u200B/g,"")}if(!m.no_events){b.dispatch(self,m)}if(k){i.doc=k}m.node=null;return m.content},addRules:function(j){f.addValidElements(j)},setRules:function(j){f.setValidElements(j)}}}})(tinymce);(function(a){a.dom.ScriptLoader=function(h){var c=0,k=1,i=2,l={},j=[],e={},d=[],g=0,f;function b(m,v){var x=this,q=a.DOM,s,o,r,n;function p(){q.remove(n);if(s){s.onreadystatechange=s.onload=s=null}v()}function u(){if(typeof(console)!=="undefined"&&console.log){console.log("Failed to load: "+m)}}n=q.uniqueId();if(a.isIE6){o=new a.util.URI(m);r=location;if(o.host==r.hostname&&o.port==r.port&&(o.protocol+":")==r.protocol&&o.protocol.toLowerCase()!="file"){a.util.XHR.send({url:a._addVer(o.getURI()),success:function(y){var t=q.create("script",{type:"text/javascript"});t.text=y;document.getElementsByTagName("head")[0].appendChild(t);q.remove(t);p()},error:u});return}}s=document.createElement("script");s.id=n;s.type="text/javascript";s.src=a._addVer(m);if(!a.isIE){s.onload=p}s.onerror=u;if(!a.isOpera){s.onreadystatechange=function(){var t=s.readyState;if(t=="complete"||t=="loaded"){p()}}}(document.getElementsByTagName("head")[0]||document.body).appendChild(s)}this.isDone=function(m){return l[m]==i};this.markDone=function(m){l[m]=i};this.add=this.load=function(m,q,n){var o,p=l[m];if(p==f){j.push(m);l[m]=c}if(q){if(!e[m]){e[m]=[]}e[m].push({func:q,scope:n||this})}};this.loadQueue=function(n,m){this.loadScripts(j,n,m)};this.loadScripts=function(m,q,p){var o;function n(r){a.each(e[r],function(s){s.func.call(s.scope)});e[r]=f}d.push({func:q,scope:p||this});o=function(){var r=a.grep(m);m.length=0;a.each(r,function(s){if(l[s]==i){n(s);return}if(l[s]!=k){l[s]=k;g++;b(s,function(){l[s]=i;g--;n(s);o()})}});if(!g){a.each(d,function(s){s.func.call(s.scope)});d.length=0}};o()}};a.ScriptLoader=new a.dom.ScriptLoader()})(tinymce);(function(a){a.dom.RangeUtils=function(c){var b="\uFEFF";this.walk=function(d,s){var i=d.startContainer,l=d.startOffset,t=d.endContainer,m=d.endOffset,j,g,o,h,r,q,e;e=c.select("td.mceSelected,th.mceSelected");if(e.length>0){a.each(e,function(u){s([u])});return}function f(u){var v;v=u[0];if(v.nodeType===3&&v===i&&l>=v.nodeValue.length){u.splice(0,1)}v=u[u.length-1];if(m===0&&u.length>0&&v===t&&v.nodeType===3){u.splice(u.length-1,1)}return u}function p(x,v,u){var y=[];for(;x&&x!=u;x=x[v]){y.push(x)}return y}function n(v,u){do{if(v.parentNode==u){return v}v=v.parentNode}while(v)}function k(x,v,y){var u=y?"nextSibling":"previousSibling";for(h=x,r=h.parentNode;h&&h!=v;h=r){r=h.parentNode;q=p(h==x?h:h[u],u);if(q.length){if(!y){q.reverse()}s(f(q))}}}if(i.nodeType==1&&i.hasChildNodes()){i=i.childNodes[l]}if(t.nodeType==1&&t.hasChildNodes()){t=t.childNodes[Math.min(m-1,t.childNodes.length-1)]}if(i==t){return s(f([i]))}j=c.findCommonAncestor(i,t);for(h=i;h;h=h.parentNode){if(h===t){return k(i,j,true)}if(h===j){break}}for(h=t;h;h=h.parentNode){if(h===i){return k(t,j)}if(h===j){break}}g=n(i,j)||i;o=n(t,j)||t;k(i,g,true);q=p(g==i?g:g.nextSibling,"nextSibling",o==t?o.nextSibling:o);if(q.length){s(f(q))}k(t,o)};this.split=function(e){var h=e.startContainer,d=e.startOffset,i=e.endContainer,g=e.endOffset;function f(j,k){return j.splitText(k)}if(h==i&&h.nodeType==3){if(d>0&&dd){g=g-d;h=i=f(i,g).previousSibling;g=i.nodeValue.length;d=0}else{g=0}}}else{if(h.nodeType==3&&d>0&&d0&&g=m.length){r=0}}t=m[r];f.setAttrib(g,"tabindex","-1");f.setAttrib(t.id,"tabindex","0");f.get(t.id).focus();if(e.actOnFocus){e.onAction(t.id)}if(s){a.cancel(s)}};p=function(z){var v=37,u=39,y=38,A=40,r=27,t=14,s=13,x=32;switch(z.keyCode){case v:if(i){q.moveFocus(-1)}break;case u:if(i){q.moveFocus(1)}break;case y:if(o){q.moveFocus(-1)}break;case A:if(o){q.moveFocus(1)}break;case r:if(e.onCancel){e.onCancel();a.cancel(z)}break;case t:case s:case x:if(e.onAction){e.onAction(g);a.cancel(z)}break}};c(m,function(t,r){var s,u;if(!t.id){t.id=f.uniqueId("_mce_item_")}u=f.get(t.id);if(l){f.bind(u,"blur",h);s="-1"}else{s=(r===0?"0":"-1")}u.setAttribute("tabindex",s);f.bind(u,"focus",k)});if(m[0]){g=m[0].id}f.setAttrib(n,"tabindex","-1");var j=f.get(n);f.bind(j,"focus",d);f.bind(j,"keydown",p)}})})(tinymce);(function(c){var b=c.DOM,a=c.is;c.create("tinymce.ui.Control",{Control:function(f,e,d){this.id=f;this.settings=e=e||{};this.rendered=false;this.onRender=new c.util.Dispatcher(this);this.classPrefix="";this.scope=e.scope||this;this.disabled=0;this.active=0;this.editor=d},setAriaProperty:function(f,e){var d=b.get(this.id+"_aria")||b.get(this.id);if(d){b.setAttrib(d,"aria-"+f,!!e)}},focus:function(){b.get(this.id).focus()},setDisabled:function(d){if(d!=this.disabled){this.setAriaProperty("disabled",d);this.setState("Disabled",d);this.setState("Enabled",!d);this.disabled=d}},isDisabled:function(){return this.disabled},setActive:function(d){if(d!=this.active){this.setState("Active",d);this.active=d;this.setAriaProperty("pressed",d)}},isActive:function(){return this.active},setState:function(f,d){var e=b.get(this.id);f=this.classPrefix+f;if(d){b.addClass(e,f)}else{b.removeClass(e,f)}},isRendered:function(){return this.rendered},renderHTML:function(){},renderTo:function(d){b.setHTML(d,this.renderHTML())},postRender:function(){var e=this,d;if(a(e.disabled)){d=e.disabled;e.disabled=-1;e.setDisabled(d)}if(a(e.active)){d=e.active;e.active=-1;e.setActive(d)}},remove:function(){b.remove(this.id);this.destroy()},destroy:function(){c.dom.Event.clear(this.id)}})})(tinymce);tinymce.create("tinymce.ui.Container:tinymce.ui.Control",{Container:function(c,b,a){this.parent(c,b,a);this.controls=[];this.lookup={}},add:function(a){this.lookup[a.id]=a;this.controls.push(a);return a},get:function(a){return this.lookup[a]}});tinymce.create("tinymce.ui.Separator:tinymce.ui.Control",{Separator:function(b,a){this.parent(b,a);this.classPrefix="mceSeparator";this.setDisabled(true)},renderHTML:function(){return tinymce.DOM.createHTML("span",{"class":this.classPrefix,role:"separator","aria-orientation":"vertical",tabindex:"-1"})}});(function(d){var c=d.is,b=d.DOM,e=d.each,a=d.walk;d.create("tinymce.ui.MenuItem:tinymce.ui.Control",{MenuItem:function(g,f){this.parent(g,f);this.classPrefix="mceMenuItem"},setSelected:function(f){this.setState("Selected",f);this.setAriaProperty("checked",!!f);this.selected=f},isSelected:function(){return this.selected},postRender:function(){var f=this;f.parent();if(c(f.selected)){f.setSelected(f.selected)}}})})(tinymce);(function(d){var c=d.is,b=d.DOM,e=d.each,a=d.walk;d.create("tinymce.ui.Menu:tinymce.ui.MenuItem",{Menu:function(h,g){var f=this;f.parent(h,g);f.items={};f.collapsed=false;f.menuCount=0;f.onAddItem=new d.util.Dispatcher(this)},expand:function(g){var f=this;if(g){a(f,function(h){if(h.expand){h.expand()}},"items",f)}f.collapsed=false},collapse:function(g){var f=this;if(g){a(f,function(h){if(h.collapse){h.collapse()}},"items",f)}f.collapsed=true},isCollapsed:function(){return this.collapsed},add:function(f){if(!f.settings){f=new d.ui.MenuItem(f.id||b.uniqueId(),f)}this.onAddItem.dispatch(this,f);return this.items[f.id]=f},addSeparator:function(){return this.add({separator:true})},addMenu:function(f){if(!f.collapse){f=this.createMenu(f)}this.menuCount++;return this.add(f)},hasMenus:function(){return this.menuCount!==0},remove:function(f){delete this.items[f.id]},removeAll:function(){var f=this;a(f,function(g){if(g.removeAll){g.removeAll()}else{g.remove()}g.destroy()},"items",f);f.items={}},createMenu:function(g){var f=new d.ui.Menu(g.id||b.uniqueId(),g);f.onAddItem.add(this.onAddItem.dispatch,this.onAddItem);return f}})})(tinymce);(function(e){var d=e.is,c=e.DOM,f=e.each,a=e.dom.Event,b=e.dom.Element;e.create("tinymce.ui.DropMenu:tinymce.ui.Menu",{DropMenu:function(h,g){g=g||{};g.container=g.container||c.doc.body;g.offset_x=g.offset_x||0;g.offset_y=g.offset_y||0;g.vp_offset_x=g.vp_offset_x||0;g.vp_offset_y=g.vp_offset_y||0;if(d(g.icons)&&!g.icons){g["class"]+=" mceNoIcons"}this.parent(h,g);this.onShowMenu=new e.util.Dispatcher(this);this.onHideMenu=new e.util.Dispatcher(this);this.classPrefix="mceMenu"},createMenu:function(j){var h=this,i=h.settings,g;j.container=j.container||i.container;j.parent=h;j.constrain=j.constrain||i.constrain;j["class"]=j["class"]||i["class"];j.vp_offset_x=j.vp_offset_x||i.vp_offset_x;j.vp_offset_y=j.vp_offset_y||i.vp_offset_y;j.keyboard_focus=i.keyboard_focus;g=new e.ui.DropMenu(j.id||c.uniqueId(),j);g.onAddItem.add(h.onAddItem.dispatch,h.onAddItem);return g},focus:function(){var g=this;if(g.keyboardNav){g.keyboardNav.focus()}},update:function(){var i=this,j=i.settings,g=c.get("menu_"+i.id+"_tbl"),l=c.get("menu_"+i.id+"_co"),h,k;h=j.max_width?Math.min(g.offsetWidth,j.max_width):g.offsetWidth;k=j.max_height?Math.min(g.offsetHeight,j.max_height):g.offsetHeight;if(!c.boxModel){i.element.setStyles({width:h+2,height:k+2})}else{i.element.setStyles({width:h,height:k})}if(j.max_width){c.setStyle(l,"width",h)}if(j.max_height){c.setStyle(l,"height",k);if(g.clientHeightv){p=r?r-u:Math.max(0,(v-A.vp_offset_x)-u)}if((n+A.vp_offset_y+l)>q){n=Math.max(0,(q-A.vp_offset_y)-l)}}c.setStyles(o,{left:p,top:n});z.element.update();z.isMenuVisible=1;z.mouseClickFunc=a.add(o,"click",function(s){var h;s=s.target;if(s&&(s=c.getParent(s,"tr"))&&!c.hasClass(s,m+"ItemSub")){h=z.items[s.id];if(h.isDisabled()){return}k=z;while(k){if(k.hideMenu){k.hideMenu()}k=k.settings.parent}if(h.settings.onclick){h.settings.onclick(s)}return false}});if(z.hasMenus()){z.mouseOverFunc=a.add(o,"mouseover",function(x){var h,t,s;x=x.target;if(x&&(x=c.getParent(x,"tr"))){h=z.items[x.id];if(z.lastMenu){z.lastMenu.collapse(1)}if(h.isDisabled()){return}if(x&&c.hasClass(x,m+"ItemSub")){t=c.getRect(x);h.showMenu((t.x+t.w-i),t.y-i,t.x);z.lastMenu=h;c.addClass(c.get(h.id).firstChild,m+"ItemActive")}}})}a.add(o,"keydown",z._keyHandler,z);z.onShowMenu.dispatch(z);if(A.keyboard_focus){z._setupKeyboardNav()}},hideMenu:function(j){var g=this,i=c.get("menu_"+g.id),h;if(!g.isMenuVisible){return}if(g.keyboardNav){g.keyboardNav.destroy()}a.remove(i,"mouseover",g.mouseOverFunc);a.remove(i,"click",g.mouseClickFunc);a.remove(i,"keydown",g._keyHandler);c.hide(i);g.isMenuVisible=0;if(!j){g.collapse(1)}if(g.element){g.element.hide()}if(h=c.get(g.id)){c.removeClass(h.firstChild,g.classPrefix+"ItemActive")}g.onHideMenu.dispatch(g)},add:function(i){var g=this,h;i=g.parent(i);if(g.isRendered&&(h=c.get("menu_"+g.id))){g._add(c.select("tbody",h)[0],i)}return i},collapse:function(g){this.parent(g);this.hideMenu(1)},remove:function(g){c.remove(g.id);this.destroy();return this.parent(g)},destroy:function(){var g=this,h=c.get("menu_"+g.id);if(g.keyboardNav){g.keyboardNav.destroy()}a.remove(h,"mouseover",g.mouseOverFunc);a.remove(c.select("a",h),"focus",g.mouseOverFunc);a.remove(h,"click",g.mouseClickFunc);a.remove(h,"keydown",g._keyHandler);if(g.element){g.element.remove()}c.remove(h)},renderNode:function(){var i=this,j=i.settings,l,h,k,g;g=c.create("div",{role:"listbox",id:"menu_"+i.id,"class":j["class"],style:"position:absolute;left:0;top:0;z-index:200000;outline:0"});if(i.settings.parent){c.setAttrib(g,"aria-parent","menu_"+i.settings.parent.id)}k=c.add(g,"div",{role:"presentation",id:"menu_"+i.id+"_co","class":i.classPrefix+(j["class"]?" "+j["class"]:"")});i.element=new b("menu_"+i.id,{blocker:1,container:j.container});if(j.menu_line){c.add(k,"span",{"class":i.classPrefix+"Line"})}l=c.add(k,"table",{role:"presentation",id:"menu_"+i.id+"_tbl",border:0,cellPadding:0,cellSpacing:0});h=c.add(l,"tbody");f(i.items,function(m){i._add(h,m)});i.rendered=true;return g},_setupKeyboardNav:function(){var i,h,g=this;i=c.get("menu_"+g.id);h=c.select("a[role=option]","menu_"+g.id);h.splice(0,0,i);g.keyboardNav=new e.ui.KeyboardNavigation({root:"menu_"+g.id,items:h,onCancel:function(){g.hideMenu()},enableUpDown:true});i.focus()},_keyHandler:function(g){var h=this,i;switch(g.keyCode){case 37:if(h.settings.parent){h.hideMenu();h.settings.parent.focus();a.cancel(g)}break;case 39:if(h.mouseOverFunc){h.mouseOverFunc(g)}break}},_add:function(j,h){var i,q=h.settings,p,l,k,m=this.classPrefix,g;if(q.separator){l=c.add(j,"tr",{id:h.id,"class":m+"ItemSeparator"});c.add(l,"td",{"class":m+"ItemSeparator"});if(i=l.previousSibling){c.addClass(i,"mceLast")}return}i=l=c.add(j,"tr",{id:h.id,"class":m+"Item "+m+"ItemEnabled"});i=k=c.add(i,q.titleItem?"th":"td");i=p=c.add(i,"a",{id:h.id+"_aria",role:q.titleItem?"presentation":"option",href:"javascript:;",onclick:"return false;",onmousedown:"return false;"});if(q.parent){c.setAttrib(p,"aria-haspopup","true");c.setAttrib(p,"aria-owns","menu_"+h.id)}c.addClass(k,q["class"]);g=c.add(i,"span",{"class":"mceIcon"+(q.icon?" mce_"+q.icon:"")});if(q.icon_src){c.add(g,"img",{src:q.icon_src})}i=c.add(i,q.element||"span",{"class":"mceText",title:h.settings.title},h.settings.title);if(h.settings.style){if(typeof h.settings.style=="function"){h.settings.style=h.settings.style()}c.setAttrib(i,"style",h.settings.style)}if(j.childNodes.length==1){c.addClass(l,"mceFirst")}if((i=l.previousSibling)&&c.hasClass(i,m+"ItemSeparator")){c.addClass(l,"mceFirst")}if(h.collapse){c.addClass(l,m+"ItemSub")}if(i=l.previousSibling){c.removeClass(i,"mceLast")}c.addClass(l,"mceLast")}})})(tinymce);(function(b){var a=b.DOM;b.create("tinymce.ui.Button:tinymce.ui.Control",{Button:function(e,d,c){this.parent(e,d,c);this.classPrefix="mceButton"},renderHTML:function(){var f=this.classPrefix,e=this.settings,d,c;c=a.encode(e.label||"");d='';if(e.image&&!(this.editor&&this.editor.forcedHighContrastMode)){d+=''+a.encode(e.title)+''+(c?''+c+"":"")}else{d+=''+(c?''+c+"":"")}d+='";d+="";return d},postRender:function(){var d=this,e=d.settings,c;if(b.isIE&&d.editor){b.dom.Event.add(d.id,"mousedown",function(f){var g=d.editor.selection.getNode().nodeName;c=g==="IMG"?d.editor.selection.getBookmark():null})}b.dom.Event.add(d.id,"click",function(f){if(!d.isDisabled()){if(b.isIE&&d.editor&&c!==null){d.editor.selection.moveToBookmark(c)}return e.onclick.call(e.scope,f)}});b.dom.Event.add(d.id,"keyup",function(f){if(!d.isDisabled()&&f.keyCode==b.VK.SPACEBAR){return e.onclick.call(e.scope,f)}})}})})(tinymce);(function(e){var d=e.DOM,b=e.dom.Event,f=e.each,a=e.util.Dispatcher,c;e.create("tinymce.ui.ListBox:tinymce.ui.Control",{ListBox:function(j,i,g){var h=this;h.parent(j,i,g);h.items=[];h.onChange=new a(h);h.onPostRender=new a(h);h.onAdd=new a(h);h.onRenderMenu=new e.util.Dispatcher(this);h.classPrefix="mceListBox";h.marked={}},select:function(h){var g=this,j,i;g.marked={};if(h==c){return g.selectByIndex(-1)}if(h&&typeof(h)=="function"){i=h}else{i=function(k){return k==h}}if(h!=g.selectedValue){f(g.items,function(l,k){if(i(l.value)){j=1;g.selectByIndex(k);return false}});if(!j){g.selectByIndex(-1)}}},selectByIndex:function(g){var i=this,j,k,h;i.marked={};if(g!=i.selectedIndex){j=d.get(i.id+"_text");h=d.get(i.id+"_voiceDesc");k=i.items[g];if(k){i.selectedValue=k.value;i.selectedIndex=g;d.setHTML(j,d.encode(k.title));d.setHTML(h,i.settings.title+" - "+k.title);d.removeClass(j,"mceTitle");d.setAttrib(i.id,"aria-valuenow",k.title)}else{d.setHTML(j,d.encode(i.settings.title));d.setHTML(h,d.encode(i.settings.title));d.addClass(j,"mceTitle");i.selectedValue=i.selectedIndex=null;d.setAttrib(i.id,"aria-valuenow",i.settings.title)}j=0}},mark:function(g){this.marked[g]=true},add:function(j,g,i){var h=this;i=i||{};i=e.extend(i,{title:j,value:g});h.items.push(i);h.onAdd.dispatch(h,i)},getLength:function(){return this.items.length},renderHTML:function(){var j="",g=this,i=g.settings,k=g.classPrefix;j='';j+="";j+="";j+="";return j},showMenu:function(){var h=this,j,i=d.get(this.id),g;if(h.isDisabled()||h.items.length===0){return}if(h.menu&&h.menu.isMenuVisible){return h.hideMenu()}if(!h.isMenuRendered){h.renderMenu();h.isMenuRendered=true}j=d.getPos(i);g=h.menu;g.settings.offset_x=j.x;g.settings.offset_y=j.y;g.settings.keyboard_focus=!e.isOpera;f(h.items,function(k){if(g.items[k.id]){g.items[k.id].setSelected(0)}});f(h.items,function(k){if(g.items[k.id]&&h.marked[k.value]){g.items[k.id].setSelected(1)}if(k.value===h.selectedValue){g.items[k.id].setSelected(1)}});g.showMenu(0,i.clientHeight);b.add(d.doc,"mousedown",h.hideMenu,h);d.addClass(h.id,h.classPrefix+"Selected")},hideMenu:function(h){var g=this;if(g.menu&&g.menu.isMenuVisible){d.removeClass(g.id,g.classPrefix+"Selected");if(h&&h.type=="mousedown"&&(h.target.id==g.id+"_text"||h.target.id==g.id+"_open")){return}if(!h||!d.getParent(h.target,".mceMenu")){d.removeClass(g.id,g.classPrefix+"Selected");b.remove(d.doc,"mousedown",g.hideMenu,g);g.menu.hideMenu()}}},renderMenu:function(){var h=this,g;g=h.settings.control_manager.createDropMenu(h.id+"_menu",{menu_line:1,"class":h.classPrefix+"Menu mceNoIcons",max_width:250,max_height:150});g.onHideMenu.add(function(){h.hideMenu();h.focus()});g.add({title:h.settings.title,"class":"mceMenuItemTitle",onclick:function(){if(h.settings.onselect("")!==false){h.select("")}}});f(h.items,function(i){if(i.value===c){g.add({title:i.title,role:"option","class":"mceMenuItemTitle",onclick:function(){if(h.settings.onselect("")!==false){h.select("")}}})}else{i.id=d.uniqueId();i.role="option";i.onclick=function(){if(h.settings.onselect(i.value)!==false){h.select(i.value)}};g.add(i)}});h.onRenderMenu.dispatch(h,g);h.menu=g},postRender:function(){var g=this,h=g.classPrefix;b.add(g.id,"click",g.showMenu,g);b.add(g.id,"keydown",function(i){if(i.keyCode==32){g.showMenu(i);b.cancel(i)}});b.add(g.id,"focus",function(){if(!g._focused){g.keyDownHandler=b.add(g.id,"keydown",function(i){if(i.keyCode==40){g.showMenu();b.cancel(i)}});g.keyPressHandler=b.add(g.id,"keypress",function(j){var i;if(j.keyCode==13){i=g.selectedValue;g.selectedValue=null;b.cancel(j);g.settings.onselect(i)}})}g._focused=1});b.add(g.id,"blur",function(){b.remove(g.id,"keydown",g.keyDownHandler);b.remove(g.id,"keypress",g.keyPressHandler);g._focused=0});if(e.isIE6||!d.boxModel){b.add(g.id,"mouseover",function(){if(!d.hasClass(g.id,h+"Disabled")){d.addClass(g.id,h+"Hover")}});b.add(g.id,"mouseout",function(){if(!d.hasClass(g.id,h+"Disabled")){d.removeClass(g.id,h+"Hover")}})}g.onPostRender.dispatch(g,d.get(g.id))},destroy:function(){this.parent();b.clear(this.id+"_text");b.clear(this.id+"_open")}})})(tinymce);(function(e){var d=e.DOM,b=e.dom.Event,f=e.each,a=e.util.Dispatcher,c;e.create("tinymce.ui.NativeListBox:tinymce.ui.ListBox",{NativeListBox:function(h,g){this.parent(h,g);this.classPrefix="mceNativeListBox"},setDisabled:function(g){d.get(this.id).disabled=g;this.setAriaProperty("disabled",g)},isDisabled:function(){return d.get(this.id).disabled},select:function(h){var g=this,j,i;if(h==c){return g.selectByIndex(-1)}if(h&&typeof(h)=="function"){i=h}else{i=function(k){return k==h}}if(h!=g.selectedValue){f(g.items,function(l,k){if(i(l.value)){j=1;g.selectByIndex(k);return false}});if(!j){g.selectByIndex(-1)}}},selectByIndex:function(g){d.get(this.id).selectedIndex=g+1;this.selectedValue=this.items[g]?this.items[g].value:null},add:function(k,h,g){var j,i=this;g=g||{};g.value=h;if(i.isRendered()){d.add(d.get(this.id),"option",g,k)}j={title:k,value:h,attribs:g};i.items.push(j);i.onAdd.dispatch(i,j)},getLength:function(){return this.items.length},renderHTML:function(){var i,g=this;i=d.createHTML("option",{value:""},"-- "+g.settings.title+" --");f(g.items,function(h){i+=d.createHTML("option",{value:h.value},h.title)});i=d.createHTML("select",{id:g.id,"class":"mceNativeListBox","aria-labelledby":g.id+"_aria"},i);i+=d.createHTML("span",{id:g.id+"_aria",style:"display: none"},g.settings.title);return i},postRender:function(){var h=this,i,j=true;h.rendered=true;function g(l){var k=h.items[l.target.selectedIndex-1];if(k&&(k=k.value)){h.onChange.dispatch(h,k);if(h.settings.onselect){h.settings.onselect(k)}}}b.add(h.id,"change",g);b.add(h.id,"keydown",function(l){var k;b.remove(h.id,"change",i);j=false;k=b.add(h.id,"blur",function(){if(j){return}j=true;b.add(h.id,"change",g);b.remove(h.id,"blur",k)});if(e.isWebKit&&(l.keyCode==37||l.keyCode==39)){return b.prevent(l)}if(l.keyCode==13||l.keyCode==32){g(l);return b.cancel(l)}});h.onPostRender.dispatch(h,d.get(h.id))}})})(tinymce);(function(c){var b=c.DOM,a=c.dom.Event,d=c.each;c.create("tinymce.ui.MenuButton:tinymce.ui.Button",{MenuButton:function(g,f,e){this.parent(g,f,e);this.onRenderMenu=new c.util.Dispatcher(this);f.menu_container=f.menu_container||b.doc.body},showMenu:function(){var g=this,j,i,h=b.get(g.id),f;if(g.isDisabled()){return}if(!g.isMenuRendered){g.renderMenu();g.isMenuRendered=true}if(g.isMenuVisible){return g.hideMenu()}j=b.getPos(g.settings.menu_container);i=b.getPos(h);f=g.menu;f.settings.offset_x=i.x;f.settings.offset_y=i.y;f.settings.vp_offset_x=i.x;f.settings.vp_offset_y=i.y;f.settings.keyboard_focus=g._focused;f.showMenu(0,h.firstChild.clientHeight);a.add(b.doc,"mousedown",g.hideMenu,g);g.setState("Selected",1);g.isMenuVisible=1},renderMenu:function(){var f=this,e;e=f.settings.control_manager.createDropMenu(f.id+"_menu",{menu_line:1,"class":this.classPrefix+"Menu",icons:f.settings.icons});e.onHideMenu.add(function(){f.hideMenu();f.focus()});f.onRenderMenu.dispatch(f,e);f.menu=e},hideMenu:function(g){var f=this;if(g&&g.type=="mousedown"&&b.getParent(g.target,function(h){return h.id===f.id||h.id===f.id+"_open"})){return}if(!g||!b.getParent(g.target,".mceMenu")){f.setState("Selected",0);a.remove(b.doc,"mousedown",f.hideMenu,f);if(f.menu){f.menu.hideMenu()}}f.isMenuVisible=0},postRender:function(){var e=this,f=e.settings;a.add(e.id,"click",function(){if(!e.isDisabled()){if(f.onclick){f.onclick(e.value)}e.showMenu()}})}})})(tinymce);(function(c){var b=c.DOM,a=c.dom.Event,d=c.each;c.create("tinymce.ui.SplitButton:tinymce.ui.MenuButton",{SplitButton:function(g,f,e){this.parent(g,f,e);this.classPrefix="mceSplitButton"},renderHTML:function(){var i,f=this,g=f.settings,e;i="";if(g.image){e=b.createHTML("img ",{src:g.image,role:"presentation","class":"mceAction "+g["class"]})}else{e=b.createHTML("span",{"class":"mceAction "+g["class"]},"")}e+=b.createHTML("span",{"class":"mceVoiceLabel mceIconOnly",id:f.id+"_voice",style:"display:none;"},g.title);i+=""+b.createHTML("a",{role:"button",id:f.id+"_action",tabindex:"-1",href:"javascript:;","class":"mceAction "+g["class"],onclick:"return false;",onmousedown:"return false;",title:g.title},e)+"";e=b.createHTML("span",{"class":"mceOpen "+g["class"]},'');i+=""+b.createHTML("a",{role:"button",id:f.id+"_open",tabindex:"-1",href:"javascript:;","class":"mceOpen "+g["class"],onclick:"return false;",onmousedown:"return false;",title:g.title},e)+"";i+="";i=b.createHTML("table",{role:"presentation","class":"mceSplitButton mceSplitButtonEnabled "+g["class"],cellpadding:"0",cellspacing:"0",title:g.title},i);return b.createHTML("div",{id:f.id,role:"button",tabindex:"0","aria-labelledby":f.id+"_voice","aria-haspopup":"true"},i)},postRender:function(){var e=this,g=e.settings,f;if(g.onclick){f=function(h){if(!e.isDisabled()){g.onclick(e.value);a.cancel(h)}};a.add(e.id+"_action","click",f);a.add(e.id,["click","keydown"],function(h){var k=32,m=14,i=13,j=38,l=40;if((h.keyCode===32||h.keyCode===13||h.keyCode===14)&&!h.altKey&&!h.ctrlKey&&!h.metaKey){f();a.cancel(h)}else{if(h.type==="click"||h.keyCode===l){e.showMenu();a.cancel(h)}}})}a.add(e.id+"_open","click",function(h){e.showMenu();a.cancel(h)});a.add([e.id,e.id+"_open"],"focus",function(){e._focused=1});a.add([e.id,e.id+"_open"],"blur",function(){e._focused=0});if(c.isIE6||!b.boxModel){a.add(e.id,"mouseover",function(){if(!b.hasClass(e.id,"mceSplitButtonDisabled")){b.addClass(e.id,"mceSplitButtonHover")}});a.add(e.id,"mouseout",function(){if(!b.hasClass(e.id,"mceSplitButtonDisabled")){b.removeClass(e.id,"mceSplitButtonHover")}})}},destroy:function(){this.parent();a.clear(this.id+"_action");a.clear(this.id+"_open");a.clear(this.id)}})})(tinymce);(function(d){var c=d.DOM,a=d.dom.Event,b=d.is,e=d.each;d.create("tinymce.ui.ColorSplitButton:tinymce.ui.SplitButton",{ColorSplitButton:function(i,h,f){var g=this;g.parent(i,h,f);g.settings=h=d.extend({colors:"000000,993300,333300,003300,003366,000080,333399,333333,800000,FF6600,808000,008000,008080,0000FF,666699,808080,FF0000,FF9900,99CC00,339966,33CCCC,3366FF,800080,999999,FF00FF,FFCC00,FFFF00,00FF00,00FFFF,00CCFF,993366,C0C0C0,FF99CC,FFCC99,FFFF99,CCFFCC,CCFFFF,99CCFF,CC99FF,FFFFFF",grid_width:8,default_color:"#888888"},g.settings);g.onShowMenu=new d.util.Dispatcher(g);g.onHideMenu=new d.util.Dispatcher(g);g.value=h.default_color},showMenu:function(){var f=this,g,j,i,h;if(f.isDisabled()){return}if(!f.isMenuRendered){f.renderMenu();f.isMenuRendered=true}if(f.isMenuVisible){return f.hideMenu()}i=c.get(f.id);c.show(f.id+"_menu");c.addClass(i,"mceSplitButtonSelected");h=c.getPos(i);c.setStyles(f.id+"_menu",{left:h.x,top:h.y+i.firstChild.clientHeight,zIndex:200000});i=0;a.add(c.doc,"mousedown",f.hideMenu,f);f.onShowMenu.dispatch(f);if(f._focused){f._keyHandler=a.add(f.id+"_menu","keydown",function(k){if(k.keyCode==27){f.hideMenu()}});c.select("a",f.id+"_menu")[0].focus()}f.keyboardNav=new d.ui.KeyboardNavigation({root:f.id+"_menu",items:c.select("a",f.id+"_menu"),onCancel:function(){f.hideMenu();f.focus()}});f.keyboardNav.focus();f.isMenuVisible=1},hideMenu:function(g){var f=this;if(f.isMenuVisible){if(g&&g.type=="mousedown"&&c.getParent(g.target,function(h){return h.id===f.id+"_open"})){return}if(!g||!c.getParent(g.target,".mceSplitButtonMenu")){c.removeClass(f.id,"mceSplitButtonSelected");a.remove(c.doc,"mousedown",f.hideMenu,f);a.remove(f.id+"_menu","keydown",f._keyHandler);c.hide(f.id+"_menu")}f.isMenuVisible=0;f.onHideMenu.dispatch();f.keyboardNav.destroy()}},renderMenu:function(){var p=this,h,k=0,q=p.settings,g,j,l,o,f;o=c.add(q.menu_container,"div",{role:"listbox",id:p.id+"_menu","class":q.menu_class+" "+q["class"],style:"position:absolute;left:0;top:-1000px;"});h=c.add(o,"div",{"class":q["class"]+" mceSplitButtonMenu"});c.add(h,"span",{"class":"mceMenuLine"});g=c.add(h,"table",{role:"presentation","class":"mceColorSplitMenu"});j=c.add(g,"tbody");k=0;e(b(q.colors,"array")?q.colors:q.colors.split(","),function(m){m=m.replace(/^#/,"");if(!k--){l=c.add(j,"tr");k=q.grid_width-1}g=c.add(l,"td");var i={href:"javascript:;",style:{backgroundColor:"#"+m},title:p.editor.getLang("colors."+m,m),"data-mce-color":"#"+m};if(!d.isIE){i.role="option"}g=c.add(g,"a",i);if(p.editor.forcedHighContrastMode){g=c.add(g,"canvas",{width:16,height:16,"aria-hidden":"true"});if(g.getContext&&(f=g.getContext("2d"))){f.fillStyle="#"+m;f.fillRect(0,0,16,16)}else{c.remove(g)}}});if(q.more_colors_func){g=c.add(j,"tr");g=c.add(g,"td",{colspan:q.grid_width,"class":"mceMoreColors"});g=c.add(g,"a",{role:"option",id:p.id+"_more",href:"javascript:;",onclick:"return false;","class":"mceMoreColors"},q.more_colors_title);a.add(g,"click",function(i){q.more_colors_func.call(q.more_colors_scope||this);return a.cancel(i)})}c.addClass(h,"mceColorSplitMenu");a.add(p.id+"_menu","mousedown",function(i){return a.cancel(i)});a.add(p.id+"_menu","click",function(i){var m;i=c.getParent(i.target,"a",j);if(i&&i.nodeName.toLowerCase()=="a"&&(m=i.getAttribute("data-mce-color"))){p.setColor(m)}return false});return o},setColor:function(f){this.displayColor(f);this.hideMenu();this.settings.onselect(f)},displayColor:function(g){var f=this;c.setStyle(f.id+"_preview","backgroundColor",g);f.value=g},postRender:function(){var f=this,g=f.id;f.parent();c.add(g+"_action","div",{id:g+"_preview","class":"mceColorPreview"});c.setStyle(f.id+"_preview","backgroundColor",f.value)},destroy:function(){var f=this;f.parent();a.clear(f.id+"_menu");a.clear(f.id+"_more");c.remove(f.id+"_menu");if(f.keyboardNav){f.keyboardNav.destroy()}}})})(tinymce);(function(b){var d=b.DOM,c=b.each,a=b.dom.Event;b.create("tinymce.ui.ToolbarGroup:tinymce.ui.Container",{renderHTML:function(){var f=this,i=[],e=f.controls,j=b.each,g=f.settings;i.push('
    ');i.push("");i.push('");j(e,function(h){i.push(h.renderHTML())});i.push("");i.push("
    ");return i.join("")},focus:function(){var e=this;d.get(e.id).focus()},postRender:function(){var f=this,e=[];c(f.controls,function(g){c(g.controls,function(h){if(h.id){e.push(h)}})});f.keyNav=new b.ui.KeyboardNavigation({root:f.id,items:e,onCancel:function(){if(b.isWebKit){d.get(f.editor.id+"_ifr").focus()}f.editor.focus()},excludeFromTabOrder:!f.settings.tab_focus_toolbar})},destroy:function(){var e=this;e.parent();e.keyNav.destroy();a.clear(e.id)}})})(tinymce);(function(a){var c=a.DOM,b=a.each;a.create("tinymce.ui.Toolbar:tinymce.ui.Container",{renderHTML:function(){var m=this,f="",j,k,n=m.settings,e,d,g,l;l=m.controls;for(e=0;e"))}if(d&&k.ListBox){if(d.Button||d.SplitButton){f+=c.createHTML("td",{"class":"mceToolbarEnd"},c.createHTML("span",null,""))}}if(c.stdMode){f+=''+k.renderHTML()+""}else{f+=""+k.renderHTML()+""}if(g&&k.ListBox){if(g.Button||g.SplitButton){f+=c.createHTML("td",{"class":"mceToolbarStart"},c.createHTML("span",null,""))}}}j="mceToolbarEnd";if(k.Button){j+=" mceToolbarEndButton"}else{if(k.SplitButton){j+=" mceToolbarEndSplitButton"}else{if(k.ListBox){j+=" mceToolbarEndListBox"}}}f+=c.createHTML("td",{"class":j},c.createHTML("span",null,""));return c.createHTML("table",{id:m.id,"class":"mceToolbar"+(n["class"]?" "+n["class"]:""),cellpadding:"0",cellspacing:"0",align:m.settings.align||"",role:"presentation",tabindex:"-1"},""+f+"")}})})(tinymce);(function(b){var a=b.util.Dispatcher,c=b.each;b.create("tinymce.AddOnManager",{AddOnManager:function(){var d=this;d.items=[];d.urls={};d.lookup={};d.onAdd=new a(d)},get:function(d){if(this.lookup[d]){return this.lookup[d].instance}else{return undefined}},dependencies:function(e){var d;if(this.lookup[e]){d=this.lookup[e].dependencies}return d||[]},requireLangPack:function(e){var d=b.settings;if(d&&d.language&&d.language_load!==false){b.ScriptLoader.add(this.urls[e]+"/langs/"+d.language+".js")}},add:function(f,e,d){this.items.push(e);this.lookup[f]={instance:e,dependencies:d};this.onAdd.dispatch(this,f,e);return e},createUrl:function(d,e){if(typeof e==="object"){return e}else{return{prefix:d.prefix,resource:e,suffix:d.suffix}}},addComponents:function(f,d){var e=this.urls[f];b.each(d,function(g){b.ScriptLoader.add(e+"/"+g)})},load:function(j,f,d,h){var g=this,e=f;function i(){var k=g.dependencies(j);b.each(k,function(m){var l=g.createUrl(f,m);g.load(l.resource,l,undefined,undefined)});if(d){if(h){d.call(h)}else{d.call(b.ScriptLoader)}}}if(g.urls[j]){return}if(typeof f==="object"){e=f.prefix+f.resource+f.suffix}if(e.indexOf("/")!==0&&e.indexOf("://")==-1){e=b.baseURL+"/"+e}g.urls[j]=e.substring(0,e.lastIndexOf("/"));if(g.lookup[j]){i()}else{b.ScriptLoader.add(e,i,h)}}});b.PluginManager=new b.AddOnManager();b.ThemeManager=new b.AddOnManager()}(tinymce));(function(j){var g=j.each,d=j.extend,k=j.DOM,i=j.dom.Event,f=j.ThemeManager,b=j.PluginManager,e=j.explode,h=j.util.Dispatcher,a,c=0;j.documentBaseURL=window.location.href.replace(/[\?#].*$/,"").replace(/[\/\\][^\/]+$/,"");if(!/[\/\\]$/.test(j.documentBaseURL)){j.documentBaseURL+="/"}j.baseURL=new j.util.URI(j.documentBaseURL).toAbsolute(j.baseURL);j.baseURI=new j.util.URI(j.baseURL);j.onBeforeUnload=new h(j);i.add(window,"beforeunload",function(l){j.onBeforeUnload.dispatch(j,l)});j.onAddEditor=new h(j);j.onRemoveEditor=new h(j);j.EditorManager=d(j,{editors:[],i18n:{},activeEditor:null,init:function(x){var v=this,o,n=j.ScriptLoader,u,l=[],r;function q(t){var s=t.id;if(!s){s=t.name;if(s&&!k.get(s)){s=t.name}else{s=k.uniqueId()}t.setAttribute("id",s)}return s}function m(z,A,t){var y=z[A];if(!y){return}if(j.is(y,"string")){t=y.replace(/\.\w+$/,"");t=t?j.resolve(t):0;y=j.resolve(y)}return y.apply(t||this,Array.prototype.slice.call(arguments,2))}function p(t,s){return s.constructor===RegExp?s.test(t.className):k.hasClass(t,s)}v.settings=x;i.bind(window,"ready",function(){var s,t;m(x,"onpageload");switch(x.mode){case"exact":s=x.elements||"";if(s.length>0){g(e(s),function(y){if(k.get(y)){r=new j.Editor(y,x);l.push(r);r.render(1)}else{g(document.forms,function(z){g(z.elements,function(A){if(A.name===y){y="mce_editor_"+c++;k.setAttrib(A,"id",y);r=new j.Editor(y,x);l.push(r);r.render(1)}})})}})}break;case"textareas":case"specific_textareas":g(k.select("textarea"),function(y){if(x.editor_deselector&&p(y,x.editor_deselector)){return}if(!x.editor_selector||p(y,x.editor_selector)){r=new j.Editor(q(y),x);l.push(r);r.render(1)}});break;default:if(x.types){g(x.types,function(y){g(k.select(y.selector),function(A){var z=new j.Editor(q(A),j.extend({},x,y));l.push(z);z.render(1)})})}else{if(x.selector){g(k.select(x.selector),function(z){var y=new j.Editor(q(z),x);l.push(y);y.render(1)})}}}if(x.oninit){s=t=0;g(l,function(y){t++;if(!y.initialized){y.onInit.add(function(){s++;if(s==t){m(x,"oninit")}})}else{s++}if(s==t){m(x,"oninit")}})}})},get:function(l){if(l===a){return this.editors}return this.editors[l]},getInstanceById:function(l){return this.get(l)},add:function(m){var l=this,n=l.editors;n[m.id]=m;n.push(m);l._setActive(m);l.onAddEditor.dispatch(l,m);return m},remove:function(n){var m=this,l,o=m.editors;if(!o[n.id]){return null}delete o[n.id];for(l=0;l':"",visual:n,font_size_style_values:"xx-small,x-small,small,medium,large,x-large,xx-large",font_size_legacy_values:"xx-small,small,medium,large,x-large,xx-large,300%",apply_source_formatting:n,directionality:"ltr",forced_root_block:"p",hidden_input:n,padd_empty_editor:n,render_ui:n,indentation:"30px",fix_table_elements:n,inline_styles:n,convert_fonts_to_spans:n,indent:"simple",indent_before:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,ul,li,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,option,optgroup,datalist",indent_after:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,ul,li,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,option,optgroup,datalist",validate:n,entity_encoding:"named",url_converter:m.convertURL,url_converter_scope:m,ie7_compat:n},o);m.id=m.editorId=p;m.isNotDirty=false;m.plugins={};m.documentBaseURI=new k.util.URI(o.document_base_url||k.documentBaseURL,{base_uri:tinyMCE.baseURI});m.baseURI=k.baseURI;m.contentCSS=[];m.contentStyles=[];m.setupEvents();m.execCommands={};m.queryStateCommands={};m.queryValueCommands={};m.execCallback("setup",m)},render:function(o){var p=this,q=p.settings,r=p.id,m=k.ScriptLoader;if(!j.domLoaded){j.add(window,"ready",function(){p.render()});return}tinyMCE.settings=q;if(!p.getElement()){return}if(k.isIDevice&&!k.isIOS5){return}if(!/TEXTAREA|INPUT/i.test(p.getElement().nodeName)&&q.hidden_input&&l.getParent(r,"form")){l.insertAfter(l.create("input",{type:"hidden",name:r}),r)}if(!q.content_editable){p.orgVisibility=p.getElement().style.visibility;p.getElement().style.visibility="hidden"}if(k.WindowManager){p.windowManager=new k.WindowManager(p)}if(q.encoding=="xml"){p.onGetContent.add(function(s,t){if(t.save){t.content=l.encode(t.content)}})}if(q.add_form_submit_trigger){p.onSubmit.addToTop(function(){if(p.initialized){p.save();p.isNotDirty=1}})}if(q.add_unload_trigger){p._beforeUnload=tinyMCE.onBeforeUnload.add(function(){if(p.initialized&&!p.destroyed&&!p.isHidden()){p.save({format:"raw",no_events:true})}})}k.addUnload(p.destroy,p);if(q.submit_patch){p.onBeforeRenderUI.add(function(){var s=p.getElement().form;if(!s){return}if(s._mceOldSubmit){return}if(!s.submit.nodeType&&!s.submit.length){p.formElement=s;s._mceOldSubmit=s.submit;s.submit=function(){k.triggerSave();p.isNotDirty=1;return p.formElement._mceOldSubmit(p.formElement)}}s=null})}function n(){if(q.language&&q.language_load!==false){m.add(k.baseURL+"/langs/"+q.language+".js")}if(q.theme&&typeof q.theme!="function"&&q.theme.charAt(0)!="-"&&!h.urls[q.theme]){h.load(q.theme,"themes/"+q.theme+"/editor_template"+k.suffix+".js")}i(g(q.plugins),function(t){if(t&&!c.urls[t]){if(t.charAt(0)=="-"){t=t.substr(1,t.length);var s=c.dependencies(t);i(s,function(v){var u={prefix:"plugins/",resource:v,suffix:"/editor_plugin"+k.suffix+".js"};v=c.createUrl(u,v);c.load(v.resource,v)})}else{if(t=="safari"){return}c.load(t,{prefix:"plugins/",resource:t,suffix:"/editor_plugin"+k.suffix+".js"})}}});m.loadQueue(function(){if(!p.removed){p.init()}})}n()},init:function(){var q,G=this,H=G.settings,D,y,z,C=G.getElement(),p,m,E,v,B,F,x,r=[];k.add(G);H.aria_label=H.aria_label||l.getAttrib(C,"aria-label",G.getLang("aria.rich_text_area"));if(H.theme){if(typeof H.theme!="function"){H.theme=H.theme.replace(/-/,"");p=h.get(H.theme);G.theme=new p();if(G.theme.init){G.theme.init(G,h.urls[H.theme]||k.documentBaseURL.replace(/\/$/,""))}}else{G.theme=H.theme}}function A(s){var t=c.get(s),o=c.urls[s]||k.documentBaseURL.replace(/\/$/,""),n;if(t&&k.inArray(r,s)===-1){i(c.dependencies(s),function(u){A(u)});n=new t(G,o);G.plugins[s]=n;if(n.init){n.init(G,o);r.push(s)}}}i(g(H.plugins.replace(/\-/g,"")),A);if(H.popup_css!==false){if(H.popup_css){H.popup_css=G.documentBaseURI.toAbsolute(H.popup_css)}else{H.popup_css=G.baseURI.toAbsolute("themes/"+H.theme+"/skins/"+H.skin+"/dialog.css")}}if(H.popup_css_add){H.popup_css+=","+G.documentBaseURI.toAbsolute(H.popup_css_add)}G.controlManager=new k.ControlManager(G);G.onBeforeRenderUI.dispatch(G,G.controlManager);if(H.render_ui&&G.theme){G.orgDisplay=C.style.display;if(typeof H.theme!="function"){D=H.width||C.style.width||C.offsetWidth;y=H.height||C.style.height||C.offsetHeight;z=H.min_height||100;F=/^[0-9\.]+(|px)$/i;if(F.test(""+D)){D=Math.max(parseInt(D,10)+(p.deltaWidth||0),100)}if(F.test(""+y)){y=Math.max(parseInt(y,10)+(p.deltaHeight||0),z)}p=G.theme.renderUI({targetNode:C,width:D,height:y,deltaWidth:H.delta_width,deltaHeight:H.delta_height});l.setStyles(p.sizeContainer||p.editorContainer,{width:D,height:y});y=(p.iframeHeight||y)+(typeof(y)=="number"?(p.deltaHeight||0):"");if(y';if(H.document_base_url!=k.documentBaseURL){G.iframeHTML+=''}if(H.ie7_compat){G.iframeHTML+=''}else{G.iframeHTML+=''}G.iframeHTML+='';for(x=0;x'}G.contentCSS=[];v=H.body_id||"tinymce";if(v.indexOf("=")!=-1){v=G.getParam("body_id","","hash");v=v[G.id]||v}B=H.body_class||"";if(B.indexOf("=")!=-1){B=G.getParam("body_class","","hash");B=B[G.id]||""}G.iframeHTML+='
    ";if(k.relaxedDomain&&(b||(k.isOpera&&parseFloat(opera.version())<11))){E='javascript:(function(){document.open();document.domain="'+document.domain+'";var ed = window.parent.tinyMCE.get("'+G.id+'");document.write(ed.iframeHTML);document.close();ed.initContentBody();})()'}q=l.add(p.iframeContainer,"iframe",{id:G.id+"_ifr",src:E||'javascript:""',frameBorder:"0",allowTransparency:"true",title:H.aria_label,style:{width:"100%",height:y,display:"block"}});G.contentAreaContainer=p.iframeContainer;if(p.editorContainer){l.get(p.editorContainer).style.display=G.orgDisplay}C.style.visibility=G.orgVisibility;l.get(G.id).style.display="none";l.setAttrib(G.id,"aria-hidden",true);if(!k.relaxedDomain||!E){G.initContentBody()}C=q=p=null},initContentBody:function(){var n=this,p=n.settings,q=l.get(n.id),r=n.getDoc(),o,m,s;if((!b||!k.relaxedDomain)&&!p.content_editable){r.open();r.write(n.iframeHTML);r.close();if(k.relaxedDomain){r.domain=k.relaxedDomain}}if(p.content_editable){l.addClass(q,"mceContentBody");n.contentDocument=r=p.content_document||document;n.contentWindow=p.content_window||window;n.bodyElement=q;p.content_document=p.content_window=null}m=n.getBody();m.disabled=true;if(!p.readonly){m.contentEditable=n.getParam("content_editable_state",true)}m.disabled=false;n.schema=new k.html.Schema(p);n.dom=new k.dom.DOMUtils(r,{keep_values:true,url_converter:n.convertURL,url_converter_scope:n,hex_colors:p.force_hex_style_colors,class_filter:p.class_filter,update_styles:true,root_element:p.content_editable?n.id:null,schema:n.schema});n.parser=new k.html.DomParser(p,n.schema);n.parser.addAttributeFilter("src,href,style",function(t,u){var v=t.length,y,A=n.dom,z,x;while(v--){y=t[v];z=y.attr(u);x="data-mce-"+u;if(!y.attributes.map[x]){if(u==="style"){y.attr(x,A.serializeStyle(A.parseStyle(z),y.name))}else{y.attr(x,n.convertURL(z,u,y.name))}}}});n.parser.addNodeFilter("script",function(t,u){var v=t.length,x;while(v--){x=t[v];x.attr("type","mce-"+(x.attr("type")||"text/javascript"))}});n.parser.addNodeFilter("#cdata",function(t,u){var v=t.length,x;while(v--){x=t[v];x.type=8;x.name="#comment";x.value="[CDATA["+x.value+"]]"}});n.parser.addNodeFilter("p,h1,h2,h3,h4,h5,h6,div",function(u,v){var x=u.length,y,t=n.schema.getNonEmptyElements();while(x--){y=u[x];if(y.isEmpty(t)){y.empty().append(new k.html.Node("br",1)).shortEnded=true}}});n.serializer=new k.dom.Serializer(p,n.dom,n.schema);n.selection=new k.dom.Selection(n.dom,n.getWin(),n.serializer,n);n.formatter=new k.Formatter(n);n.undoManager=new k.UndoManager(n);n.forceBlocks=new k.ForceBlocks(n);n.enterKey=new k.EnterKey(n);n.editorCommands=new k.EditorCommands(n);n.onExecCommand.add(function(t,u){if(!/^(FontName|FontSize)$/.test(u)){n.nodeChanged()}});n.serializer.onPreProcess.add(function(t,u){return n.onPreProcess.dispatch(n,u,t)});n.serializer.onPostProcess.add(function(t,u){return n.onPostProcess.dispatch(n,u,t)});n.onPreInit.dispatch(n);if(!p.browser_spellcheck&&!p.gecko_spellcheck){r.body.spellcheck=false}if(!p.readonly){n.bindNativeEvents()}n.controlManager.onPostRender.dispatch(n,n.controlManager);n.onPostRender.dispatch(n);n.quirks=k.util.Quirks(n);if(p.directionality){m.dir=p.directionality}if(p.nowrap){m.style.whiteSpace="nowrap"}if(p.protect){n.onBeforeSetContent.add(function(t,u){i(p.protect,function(v){u.content=u.content.replace(v,function(x){return""})})})}n.onSetContent.add(function(){n.addVisual(n.getBody())});if(p.padd_empty_editor){n.onPostProcess.add(function(t,u){u.content=u.content.replace(/^(]*>( | |\s|\u00a0|)<\/p>[\r\n]*|
    [\r\n]*)$/,"")})}n.load({initial:true,format:"html"});n.startContent=n.getContent({format:"raw"});n.initialized=true;n.onInit.dispatch(n);n.execCallback("setupcontent_callback",n.id,m,r);n.execCallback("init_instance_callback",n);n.focus(true);n.nodeChanged({initial:true});if(n.contentStyles.length>0){s="";i(n.contentStyles,function(t){s+=t+"\r\n"});n.dom.addStyle(s)}i(n.contentCSS,function(t){n.dom.loadCSS(t)});if(p.auto_focus){setTimeout(function(){var t=k.get(p.auto_focus);t.selection.select(t.getBody(),1);t.selection.collapse(1);t.getBody().focus();t.getWin().focus()},100)}q=r=m=null},focus:function(p){var o,u=this,t=u.selection,q=u.settings.content_editable,n,r,s=u.getDoc(),m;if(!p){if(u.lastIERng){t.setRng(u.lastIERng)}n=t.getRng();if(n.item){r=n.item(0)}u._refreshContentEditable();if(!q){u.getWin().focus()}if(k.isGecko||q){m=u.getBody();if(m.setActive){m.setActive()}else{m.focus()}if(q){t.normalize()}}if(r&&r.ownerDocument==s){n=s.body.createControlRange();n.addElement(r);n.select()}}if(k.activeEditor!=u){if((o=k.activeEditor)!=null){o.onDeactivate.dispatch(o,u)}u.onActivate.dispatch(u,o)}k._setActive(u)},execCallback:function(q){var m=this,p=m.settings[q],o;if(!p){return}if(m.callbackLookup&&(o=m.callbackLookup[q])){p=o.func;o=o.scope}if(d(p,"string")){o=p.replace(/\.\w+$/,"");o=o?k.resolve(o):0;p=k.resolve(p);m.callbackLookup=m.callbackLookup||{};m.callbackLookup[q]={func:p,scope:o}}return p.apply(o||m,Array.prototype.slice.call(arguments,1))},translate:function(m){var o=this.settings.language||"en",n=k.i18n;if(!m){return""}return n[o+"."+m]||m.replace(/\{\#([^\}]+)\}/g,function(q,p){return n[o+"."+p]||"{#"+p+"}"})},getLang:function(o,m){return k.i18n[(this.settings.language||"en")+"."+o]||(d(m)?m:"{#"+o+"}")},getParam:function(t,q,m){var r=k.trim,p=d(this.settings[t])?this.settings[t]:q,s;if(m==="hash"){s={};if(d(p,"string")){i(p.indexOf("=")>0?p.split(/[;,](?![^=;,]*(?:[;,]|$))/):p.split(","),function(n){n=n.split("=");if(n.length>1){s[r(n[0])]=r(n[1])}else{s[r(n[0])]=r(n)}})}else{s=p}return s}return p},nodeChanged:function(q){var m=this,n=m.selection,p;if(m.initialized){q=q||{};p=n.getStart()||m.getBody();p=b&&p.ownerDocument!=m.getDoc()?m.getBody():p;q.parents=[];m.dom.getParent(p,function(o){if(o.nodeName=="BODY"){return true}q.parents.push(o)});m.onNodeChange.dispatch(m,q?q.controlManager||m.controlManager:m.controlManager,p,n.isCollapsed(),q)}},addButton:function(n,o){var m=this;m.buttons=m.buttons||{};m.buttons[n]=o},addCommand:function(m,o,n){this.execCommands[m]={func:o,scope:n||this}},addQueryStateHandler:function(m,o,n){this.queryStateCommands[m]={func:o,scope:n||this}},addQueryValueHandler:function(m,o,n){this.queryValueCommands[m]={func:o,scope:n||this}},addShortcut:function(o,q,m,p){var n=this,r;if(n.settings.custom_shortcuts===false){return false}n.shortcuts=n.shortcuts||{};if(d(m,"string")){r=m;m=function(){n.execCommand(r,false,null)}}if(d(m,"object")){r=m;m=function(){n.execCommand(r[0],r[1],r[2])}}i(g(o),function(s){var t={func:m,scope:p||this,desc:n.translate(q),alt:false,ctrl:false,shift:false};i(g(s,"+"),function(u){switch(u){case"alt":case"ctrl":case"shift":t[u]=true;break;default:t.charCode=u.charCodeAt(0);t.keyCode=u.toUpperCase().charCodeAt(0)}});n.shortcuts[(t.ctrl?"ctrl":"")+","+(t.alt?"alt":"")+","+(t.shift?"shift":"")+","+t.keyCode]=t});return true},execCommand:function(u,r,x,m){var p=this,q=0,v,n;if(!/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint|SelectAll)$/.test(u)&&(!m||!m.skip_focus)){p.focus()}m=f({},m);p.onBeforeExecCommand.dispatch(p,u,r,x,m);if(m.terminate){return false}if(p.execCallback("execcommand_callback",p.id,p.selection.getNode(),u,r,x)){p.onExecCommand.dispatch(p,u,r,x,m);return true}if(v=p.execCommands[u]){n=v.func.call(v.scope,r,x);if(n!==true){p.onExecCommand.dispatch(p,u,r,x,m);return n}}i(p.plugins,function(o){if(o.execCommand&&o.execCommand(u,r,x)){p.onExecCommand.dispatch(p,u,r,x,m);q=1;return false}});if(q){return true}if(p.theme&&p.theme.execCommand&&p.theme.execCommand(u,r,x)){p.onExecCommand.dispatch(p,u,r,x,m);return true}if(p.editorCommands.execCommand(u,r,x)){p.onExecCommand.dispatch(p,u,r,x,m);return true}p.getDoc().execCommand(u,r,x);p.onExecCommand.dispatch(p,u,r,x,m)},queryCommandState:function(q){var n=this,r,p;if(n._isHidden()){return}if(r=n.queryStateCommands[q]){p=r.func.call(r.scope);if(p!==true){return p}}r=n.editorCommands.queryCommandState(q);if(r!==-1){return r}try{return this.getDoc().queryCommandState(q)}catch(m){}},queryCommandValue:function(r){var n=this,q,p;if(n._isHidden()){return}if(q=n.queryValueCommands[r]){p=q.func.call(q.scope);if(p!==true){return p}}q=n.editorCommands.queryCommandValue(r);if(d(q)){return q}try{return this.getDoc().queryCommandValue(r)}catch(m){}},show:function(){var m=this;l.show(m.getContainer());l.hide(m.id);m.load()},hide:function(){var m=this,n=m.getDoc();if(b&&n){n.execCommand("SelectAll")}m.save();l.hide(m.getContainer());l.setStyle(m.id,"display",m.orgDisplay)},isHidden:function(){return !l.isHidden(this.id)},setProgressState:function(m,n,p){this.onSetProgressState.dispatch(this,m,n,p);return m},load:function(q){var m=this,p=m.getElement(),n;if(p){q=q||{};q.load=true;n=m.setContent(d(p.value)?p.value:p.innerHTML,q);q.element=p;if(!q.no_events){m.onLoadContent.dispatch(m,q)}q.element=p=null;return n}},save:function(r){var m=this,q=m.getElement(),n,p;if(!q||!m.initialized){return}r=r||{};r.save=true;r.element=q;n=r.content=m.getContent(r);if(!r.no_events){m.onSaveContent.dispatch(m,r)}n=r.content;if(!/TEXTAREA|INPUT/i.test(q.nodeName)){q.innerHTML=n;if(p=l.getParent(m.id,"form")){i(p.elements,function(o){if(o.name==m.id){o.value=n;return false}})}}else{q.value=n}r.element=q=null;return n},setContent:function(r,p){var o=this,n,m=o.getBody(),q;p=p||{};p.format=p.format||"html";p.set=true;p.content=r;if(!p.no_events){o.onBeforeSetContent.dispatch(o,p)}r=p.content;if(!k.isIE&&(r.length===0||/^\s+$/.test(r))){q=o.settings.forced_root_block;if(q){r="<"+q+'>
    "}else{r='
    '}m.innerHTML=r;o.selection.select(m,true);o.selection.collapse(true);return}if(p.format!=="raw"){r=new k.html.Serializer({},o.schema).serialize(o.parser.parse(r))}p.content=k.trim(r);o.dom.setHTML(m,p.content);if(!p.no_events){o.onSetContent.dispatch(o,p)}if(!o.settings.content_editable||document.activeElement===o.getBody()){o.selection.normalize()}return p.content},getContent:function(n){var m=this,o;n=n||{};n.format=n.format||"html";n.get=true;n.getInner=true;if(!n.no_events){m.onBeforeGetContent.dispatch(m,n)}if(n.format=="raw"){o=m.getBody().innerHTML}else{o=m.serializer.serialize(m.getBody(),n)}n.content=k.trim(o);if(!n.no_events){m.onGetContent.dispatch(m,n)}return n.content},isDirty:function(){var m=this;return k.trim(m.startContent)!=k.trim(m.getContent({format:"raw",no_events:1}))&&!m.isNotDirty},getContainer:function(){var m=this;if(!m.container){m.container=l.get(m.editorContainer||m.id+"_parent")}return m.container},getContentAreaContainer:function(){return this.contentAreaContainer},getElement:function(){return l.get(this.settings.content_element||this.id)},getWin:function(){var m=this,n;if(!m.contentWindow){n=l.get(m.id+"_ifr");if(n){m.contentWindow=n.contentWindow}}return m.contentWindow},getDoc:function(){var m=this,n;if(!m.contentDocument){n=m.getWin();if(n){m.contentDocument=n.document}}return m.contentDocument},getBody:function(){return this.bodyElement||this.getDoc().body},convertURL:function(o,n,q){var m=this,p=m.settings;if(p.urlconverter_callback){return m.execCallback("urlconverter_callback",o,q,true,n)}if(!p.convert_urls||(q&&q.nodeName=="LINK")||o.indexOf("file:")===0){return o}if(p.relative_urls){return m.documentBaseURI.toRelative(o)}o=m.documentBaseURI.toAbsolute(o,p.remove_script_host);return o},addVisual:function(q){var n=this,o=n.settings,p=n.dom,m;q=q||n.getBody();if(!d(n.hasVisual)){n.hasVisual=o.visual}i(p.select("table,a",q),function(s){var r;switch(s.nodeName){case"TABLE":m=o.visual_table_class||"mceItemTable";r=p.getAttrib(s,"border");if(!r||r=="0"){if(n.hasVisual){p.addClass(s,m)}else{p.removeClass(s,m)}}return;case"A":if(!p.getAttrib(s,"href",false)){r=p.getAttrib(s,"name")||s.id;m="mceItemAnchor";if(r){if(n.hasVisual){p.addClass(s,m)}else{p.removeClass(s,m)}}}return}});n.onVisualAid.dispatch(n,q,n.hasVisual)},remove:function(){var m=this,n=m.getContainer();if(!m.removed){m.removed=1;m.hide();if(!m.settings.content_editable){j.unbind(m.getWin());j.unbind(m.getDoc())}j.unbind(m.getBody());j.clear(n);m.execCallback("remove_instance_callback",m);m.onRemove.dispatch(m);m.onExecCommand.listeners=[];k.remove(m);l.remove(n)}},destroy:function(n){var m=this;if(m.destroyed){return}if(a){j.unbind(m.getDoc());j.unbind(m.getWin());j.unbind(m.getBody())}if(!n){k.removeUnload(m.destroy);tinyMCE.onBeforeUnload.remove(m._beforeUnload);if(m.theme&&m.theme.destroy){m.theme.destroy()}m.controlManager.destroy();m.selection.destroy();m.dom.destroy()}if(m.formElement){m.formElement.submit=m.formElement._mceOldSubmit;m.formElement._mceOldSubmit=null}m.contentAreaContainer=m.formElement=m.container=m.settings.content_element=m.bodyElement=m.contentDocument=m.contentWindow=null;if(m.selection){m.selection=m.selection.win=m.selection.dom=m.selection.dom.doc=null}m.destroyed=1},_refreshContentEditable:function(){var n=this,m,o;if(n._isHidden()){m=n.getBody();o=m.parentNode;o.removeChild(m);o.appendChild(m);m.focus()}},_isHidden:function(){var m;if(!a){return 0}m=this.selection.getSel();return(!m||!m.rangeCount||m.rangeCount===0)}})})(tinymce);(function(a){var b=a.each;a.Editor.prototype.setupEvents=function(){var c=this,d=c.settings;b(["onPreInit","onBeforeRenderUI","onPostRender","onLoad","onInit","onRemove","onActivate","onDeactivate","onClick","onEvent","onMouseUp","onMouseDown","onDblClick","onKeyDown","onKeyUp","onKeyPress","onContextMenu","onSubmit","onReset","onPaste","onPreProcess","onPostProcess","onBeforeSetContent","onBeforeGetContent","onSetContent","onGetContent","onLoadContent","onSaveContent","onNodeChange","onChange","onBeforeExecCommand","onExecCommand","onUndo","onRedo","onVisualAid","onSetProgressState","onSetAttrib"],function(e){c[e]=new a.util.Dispatcher(c)});if(d.cleanup_callback){c.onBeforeSetContent.add(function(e,f){f.content=e.execCallback("cleanup_callback","insert_to_editor",f.content,f)});c.onPreProcess.add(function(e,f){if(f.set){e.execCallback("cleanup_callback","insert_to_editor_dom",f.node,f)}if(f.get){e.execCallback("cleanup_callback","get_from_editor_dom",f.node,f)}});c.onPostProcess.add(function(e,f){if(f.set){f.content=e.execCallback("cleanup_callback","insert_to_editor",f.content,f)}if(f.get){f.content=e.execCallback("cleanup_callback","get_from_editor",f.content,f)}})}if(d.save_callback){c.onGetContent.add(function(e,f){if(f.save){f.content=e.execCallback("save_callback",e.id,f.content,e.getBody())}})}if(d.handle_event_callback){c.onEvent.add(function(f,g,h){if(c.execCallback("handle_event_callback",g,f,h)===false){g.preventDefault();g.stopPropagation()}})}if(d.handle_node_change_callback){c.onNodeChange.add(function(f,e,g){f.execCallback("handle_node_change_callback",f.id,g,-1,-1,true,f.selection.isCollapsed())})}if(d.save_callback){c.onSaveContent.add(function(e,g){var f=e.execCallback("save_callback",e.id,g.content,e.getBody());if(f){g.content=f}})}if(d.onchange_callback){c.onChange.add(function(f,e){f.execCallback("onchange_callback",f,e)})}};a.Editor.prototype.bindNativeEvents=function(){var l=this,f,d=l.settings,e=l.dom,h;h={mouseup:"onMouseUp",mousedown:"onMouseDown",click:"onClick",keyup:"onKeyUp",keydown:"onKeyDown",keypress:"onKeyPress",submit:"onSubmit",reset:"onReset",contextmenu:"onContextMenu",dblclick:"onDblClick",paste:"onPaste"};function c(i,m){var n=i.type;if(l.removed){return}if(l.onEvent.dispatch(l,i,m)!==false){l[h[i.fakeType||i.type]].dispatch(l,i,m)}}function j(i){l.focus(true)}function k(){l.selection.normalize();l.nodeChanged()}b(h,function(m,n){var i=d.content_editable?l.getBody():l.getDoc();switch(n){case"contextmenu":e.bind(i,n,c);break;case"paste":e.bind(l.getBody(),n,c);break;case"submit":case"reset":e.bind(l.getElement().form||a.DOM.getParent(l.id,"form"),n,c);break;default:e.bind(i,n,c)}});e.bind(d.content_editable?l.getBody():(a.isGecko?l.getDoc():l.getWin()),"focus",function(i){l.focus(true)});if(d.content_editable&&a.isOpera){e.bind(l.getBody(),"click",j);e.bind(l.getBody(),"keydown",j)}l.onMouseUp.add(k);l.onKeyUp.add(function(i,n){var m=n.keyCode;if((m>=33&&m<=36)||(m>=37&&m<=40)||m==13||m==45||m==46||m==8||(a.isMac&&(m==91||m==93))||n.ctrlKey){k()}});l.onReset.add(function(){l.setContent(l.startContent,{format:"raw"})});function g(m,i){if(m.altKey||m.ctrlKey||m.metaKey){b(l.shortcuts,function(n){var o=a.isMac?m.metaKey:m.ctrlKey;if(n.ctrl!=o||n.alt!=m.altKey||n.shift!=m.shiftKey){return}if(m.keyCode==n.keyCode||(m.charCode&&m.charCode==n.charCode)){m.preventDefault();if(i){n.func.call(n.scope)}return true}})}}l.onKeyUp.add(function(i,m){g(m)});l.onKeyPress.add(function(i,m){g(m)});l.onKeyDown.add(function(i,m){g(m,true)});if(a.isOpera){l.onClick.add(function(i,m){m.preventDefault()})}}})(tinymce);(function(d){var e=d.each,b,a=true,c=false;d.EditorCommands=function(n){var m=n.dom,p=n.selection,j={state:{},exec:{},value:{}},k=n.settings,q=n.formatter,o;function r(z,y,x){var v;z=z.toLowerCase();if(v=j.exec[z]){v(z,y,x);return a}return c}function l(x){var v;x=x.toLowerCase();if(v=j.state[x]){return v(x)}return -1}function h(x){var v;x=x.toLowerCase();if(v=j.value[x]){return v(x)}return c}function u(v,x){x=x||"exec";e(v,function(z,y){e(y.toLowerCase().split(","),function(A){j[x][A]=z})})}d.extend(this,{execCommand:r,queryCommandState:l,queryCommandValue:h,addCommands:u});function f(y,x,v){if(x===b){x=c}if(v===b){v=null}return n.getDoc().execCommand(y,x,v)}function t(v){return q.match(v)}function s(v,x){q.toggle(v,x?{value:x}:b)}function i(v){o=p.getBookmark(v)}function g(){p.moveToBookmark(o)}u({"mceResetDesignMode,mceBeginUndoLevel":function(){},"mceEndUndoLevel,mceAddUndoLevel":function(){n.undoManager.add()},"Cut,Copy,Paste":function(z){var y=n.getDoc(),v;try{f(z)}catch(x){v=a}if(v||!y.queryCommandSupported(z)){if(d.isGecko){n.windowManager.confirm(n.getLang("clipboard_msg"),function(A){if(A){open("http://www.mozilla.org/editor/midasdemo/securityprefs.html","_blank")}})}else{n.windowManager.alert(n.getLang("clipboard_no_support"))}}},unlink:function(v){if(p.isCollapsed()){p.select(p.getNode())}f(v);p.collapse(c)},"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull":function(v){var x=v.substring(7);e("left,center,right,full".split(","),function(y){if(x!=y){q.remove("align"+y)}});s("align"+x);r("mceRepaint")},"InsertUnorderedList,InsertOrderedList":function(y){var v,x;f(y);v=m.getParent(p.getNode(),"ol,ul");if(v){x=v.parentNode;if(/^(H[1-6]|P|ADDRESS|PRE)$/.test(x.nodeName)){i();m.split(x,v);g()}}},"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(v){s(v)},"ForeColor,HiliteColor,FontName":function(y,x,v){s(y,v)},FontSize:function(z,y,x){var v,A;if(x>=1&&x<=7){A=d.explode(k.font_size_style_values);v=d.explode(k.font_size_classes);if(v){x=v[x-1]||x}else{x=A[x-1]||x}}s(z,x)},RemoveFormat:function(v){q.remove(v)},mceBlockQuote:function(v){s("blockquote")},FormatBlock:function(y,x,v){return s(v||"p")},mceCleanup:function(){var v=p.getBookmark();n.setContent(n.getContent({cleanup:a}),{cleanup:a});p.moveToBookmark(v)},mceRemoveNode:function(z,y,x){var v=x||p.getNode();if(v!=n.getBody()){i();n.dom.remove(v,a);g()}},mceSelectNodeDepth:function(z,y,x){var v=0;m.getParent(p.getNode(),function(A){if(A.nodeType==1&&v++==x){p.select(A);return c}},n.getBody())},mceSelectNode:function(y,x,v){p.select(v)},mceInsertContent:function(B,I,K){var y,J,E,z,F,G,D,C,L,x,A,M,v,H;y=n.parser;J=new d.html.Serializer({},n.schema);v='\uFEFF';G={content:K,format:"html"};p.onBeforeSetContent.dispatch(p,G);K=G.content;if(K.indexOf("{$caret}")==-1){K+="{$caret}"}K=K.replace(/\{\$caret\}/,v);if(!p.isCollapsed()){n.getDoc().execCommand("Delete",false,null)}E=p.getNode();G={context:E.nodeName.toLowerCase()};F=y.parse(K,G);A=F.lastChild;if(A.attr("id")=="mce_marker"){D=A;for(A=A.prev;A;A=A.walk(true)){if(A.type==3||!m.isBlock(A.name)){A.parent.insert(D,A,A.name==="br");break}}}if(!G.invalid){K=J.serialize(F);A=E.firstChild;M=E.lastChild;if(!A||(A===M&&A.nodeName==="BR")){m.setHTML(E,K)}else{p.setContent(K)}}else{p.setContent(v);E=n.selection.getNode();z=n.getBody();if(E.nodeType==9){E=A=z}else{A=E}while(A!==z){E=A;A=A.parentNode}K=E==z?z.innerHTML:m.getOuterHTML(E);K=J.serialize(y.parse(K.replace(//i,function(){return J.serialize(F)})));if(E==z){m.setHTML(z,K)}else{m.setOuterHTML(E,K)}}D=m.get("mce_marker");C=m.getRect(D);L=m.getViewPort(n.getWin());if((C.y+C.h>L.y+L.h||C.yL.x+L.w||C.x")},mceToggleVisualAid:function(){n.hasVisual=!n.hasVisual;n.addVisual()},mceReplaceContent:function(y,x,v){n.execCommand("mceInsertContent",false,v.replace(/\{\$selection\}/g,p.getContent({format:"text"})))},mceInsertLink:function(z,y,x){var v;if(typeof(x)=="string"){x={href:x}}v=m.getParent(p.getNode(),"a");x.href=x.href.replace(" ","%20");if(!v||!x.href){q.remove("link")}if(x.href){q.apply("link",x,v)}},selectAll:function(){var x=m.getRoot(),v=m.createRng();v.setStart(x,0);v.setEnd(x,x.childNodes.length);n.selection.setRng(v)}});u({"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull":function(z){var x="align"+z.substring(7);var v=p.isCollapsed()?[m.getParent(p.getNode(),m.isBlock)]:p.getSelectedBlocks();var y=d.map(v,function(A){return !!q.matchNode(A,x)});return d.inArray(y,a)!==-1},"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(v){return t(v)},mceBlockQuote:function(){return t("blockquote")},Outdent:function(){var v;if(k.inline_styles){if((v=m.getParent(p.getStart(),m.isBlock))&&parseInt(v.style.paddingLeft)>0){return a}if((v=m.getParent(p.getEnd(),m.isBlock))&&parseInt(v.style.paddingLeft)>0){return a}}return l("InsertUnorderedList")||l("InsertOrderedList")||(!k.inline_styles&&!!m.getParent(p.getNode(),"BLOCKQUOTE"))},"InsertUnorderedList,InsertOrderedList":function(v){return m.getParent(p.getNode(),v=="insertunorderedlist"?"UL":"OL")}},"state");u({"FontSize,FontName":function(y){var x=0,v;if(v=m.getParent(p.getNode(),"span")){if(y=="fontsize"){x=v.style.fontSize}else{x=v.style.fontFamily.replace(/, /g,",").replace(/[\'\"]/g,"").toLowerCase()}}return x}},"value");u({Undo:function(){n.undoManager.undo()},Redo:function(){n.undoManager.redo()}})}})(tinymce);(function(b){var a=b.util.Dispatcher;b.UndoManager=function(h){var l,i=0,e=[],g,k,j,f;function c(){return b.trim(h.getContent({format:"raw",no_events:1}).replace(/]+data-mce-bogus[^>]+>[\u200B\uFEFF]+<\/span>/g,""))}function d(){l.typing=false;l.add()}onBeforeAdd=new a(l);k=new a(l);j=new a(l);f=new a(l);k.add(function(m,n){if(m.hasUndo()){return h.onChange.dispatch(h,n,m)}});j.add(function(m,n){return h.onUndo.dispatch(h,n,m)});f.add(function(m,n){return h.onRedo.dispatch(h,n,m)});h.onInit.add(function(){l.add()});h.onBeforeExecCommand.add(function(m,p,o,q,n){if(p!="Undo"&&p!="Redo"&&p!="mceRepaint"&&(!n||!n.skip_undo)){l.beforeChange()}});h.onExecCommand.add(function(m,p,o,q,n){if(p!="Undo"&&p!="Redo"&&p!="mceRepaint"&&(!n||!n.skip_undo)){l.add()}});h.onSaveContent.add(d);h.dom.bind(h.dom.getRoot(),"dragend",d);h.dom.bind(h.getDoc(),b.isGecko?"blur":"focusout",function(m){if(!h.removed&&l.typing){d()}});h.onKeyUp.add(function(m,o){var n=o.keyCode;if((n>=33&&n<=36)||(n>=37&&n<=40)||n==45||n==13||o.ctrlKey){d()}});h.onKeyDown.add(function(m,o){var n=o.keyCode;if((n>=33&&n<=36)||(n>=37&&n<=40)||n==45){if(l.typing){d()}return}if((n<16||n>20)&&n!=224&&n!=91&&!l.typing){l.beforeChange();l.typing=true;l.add()}});h.onMouseDown.add(function(m,n){if(l.typing){d()}});h.addShortcut("ctrl+z","undo_desc","Undo");h.addShortcut("ctrl+y","redo_desc","Redo");l={data:e,typing:false,onBeforeAdd:onBeforeAdd,onAdd:k,onUndo:j,onRedo:f,beforeChange:function(){g=h.selection.getBookmark(2,true)},add:function(p){var m,n=h.settings,o;p=p||{};p.content=c();l.onBeforeAdd.dispatch(l,p);o=e[i];if(o&&o.content==p.content){return null}if(e[i]){e[i].beforeBookmark=g}if(n.custom_undo_redo_levels){if(e.length>n.custom_undo_redo_levels){for(m=0;m0){n=e[--i];h.setContent(n.content,{format:"raw"});h.selection.moveToBookmark(n.beforeBookmark);l.onUndo.dispatch(l,n)}return n},redo:function(){var m;if(i0||this.typing},hasRedo:function(){return i0){g.moveEnd("character",q)}g.select()}catch(n){}}}c.nodeChanged()}}if(b.forced_root_block){c.onKeyUp.add(f);c.onNodeChange.add(f)}};(function(c){var b=c.DOM,a=c.dom.Event,d=c.each,e=c.extend;c.create("tinymce.ControlManager",{ControlManager:function(f,j){var h=this,g;j=j||{};h.editor=f;h.controls={};h.onAdd=new c.util.Dispatcher(h);h.onPostRender=new c.util.Dispatcher(h);h.prefix=j.prefix||f.id+"_";h._cls={};h.onPostRender.add(function(){d(h.controls,function(i){i.postRender()})})},get:function(f){return this.controls[this.prefix+f]||this.controls[f]},setActive:function(h,f){var g=null;if(g=this.get(h)){g.setActive(f)}return g},setDisabled:function(h,f){var g=null;if(g=this.get(h)){g.setDisabled(f)}return g},add:function(g){var f=this;if(g){f.controls[g.id]=g;f.onAdd.dispatch(g,f)}return g},createControl:function(j){var o,k,g,h=this,m=h.editor,n,f;if(!h.controlFactories){h.controlFactories=[];d(m.plugins,function(i){if(i.createControl){h.controlFactories.push(i)}})}n=h.controlFactories;for(k=0,g=n.length;k1||ag==ay||ag.tagName=="BR"){return ag}}}var aq=aa.selection.getRng();var av=aq.startContainer;var ap=aq.endContainer;if(av!=ap&&aq.endOffset===0){var au=ar(av,ap);var at=au.nodeType==3?au.length:au.childNodes.length;aq.setEnd(au,at)}return aq}function ad(at,ay,aw,av,aq){var ap=[],ar=-1,ax,aA=-1,au=-1,az;T(at.childNodes,function(aC,aB){if(aC.nodeName==="UL"||aC.nodeName==="OL"){ar=aB;ax=aC;return false}});T(at.childNodes,function(aC,aB){if(aC.nodeName==="SPAN"&&c.getAttrib(aC,"data-mce-type")=="bookmark"){if(aC.id==ay.id+"_start"){aA=aB}else{if(aC.id==ay.id+"_end"){au=aB}}}});if(ar<=0||(aAar)){T(a.grep(at.childNodes),aq);return 0}else{az=c.clone(aw,X);T(a.grep(at.childNodes),function(aC,aB){if((aAar&&aB>ar)){ap.push(aC);aC.parentNode.removeChild(aC)}});if(aAar){at.insertBefore(az,ax.nextSibling)}}av.push(az);T(ap,function(aB){az.appendChild(aB)});return az}}function an(aq,at,aw){var ap=[],av,ar,au=true;av=am.inline||am.block;ar=c.create(av);ab(ar);N.walk(aq,function(ax){var ay;function az(aA){var aF,aD,aB,aC,aE;aE=au;aF=aA.nodeName.toLowerCase();aD=aA.parentNode.nodeName.toLowerCase();if(aA.nodeType===1&&x(aA)){aE=au;au=x(aA)==="true";aC=true}if(g(aF,"br")){ay=0;if(am.block){c.remove(aA)}return}if(am.wrapper&&y(aA,ae,al)){ay=0;return}if(au&&!aC&&am.block&&!am.wrapper&&I(aF)){aA=c.rename(aA,av);ab(aA);ap.push(aA);ay=0;return}if(am.selector){T(ah,function(aG){if("collapsed" in aG&&aG.collapsed!==ai){return}if(c.is(aA,aG.selector)&&!b(aA)){ab(aA,aG);aB=true}});if(!am.inline||aB){ay=0;return}}if(au&&!aC&&d(av,aF)&&d(aD,av)&&!(!aw&&aA.nodeType===3&&aA.nodeValue.length===1&&aA.nodeValue.charCodeAt(0)===65279)&&!b(aA)){if(!ay){ay=c.clone(ar,X);aA.parentNode.insertBefore(ay,aA);ap.push(ay)}ay.appendChild(aA)}else{if(aF=="li"&&at){ay=ad(aA,at,ar,ap,az)}else{ay=0;T(a.grep(aA.childNodes),az);if(aC){au=aE}ay=0}}}T(ax,az)});if(am.wrap_links===false){T(ap,function(ax){function ay(aC){var aB,aA,az;if(aC.nodeName==="A"){aA=c.clone(ar,X);ap.push(aA);az=a.grep(aC.childNodes);for(aB=0;aB1||!H(az))&&ax===0){c.remove(az,1);return}if(am.inline||am.wrapper){if(!am.exact&&ax===1){az=ay(az)}T(ah,function(aB){T(c.select(aB.inline,az),function(aD){var aC;if(aB.wrap_links===false){aC=aD.parentNode;do{if(aC.nodeName==="A"){return}}while(aC=aC.parentNode)}Z(aB,al,aD,aB.exact?aD:null)})});if(y(az.parentNode,ae,al)){c.remove(az,1);az=0;return C}if(am.merge_with_parents){c.getParent(az.parentNode,function(aB){if(y(aB,ae,al)){c.remove(az,1);az=0;return C}})}if(az&&am.merge_siblings!==false){az=u(E(az),az);az=u(az,E(az,C))}}})}if(am){if(ag){if(ag.nodeType){ac=c.createRng();ac.setStartBefore(ag);ac.setEndAfter(ag);an(p(ac,ah),null,true)}else{an(ag,null,true)}}else{if(!ai||!am.inline||c.select("td.mceSelected,th.mceSelected").length){var ao=aa.selection.getNode();if(!m&&ah[0].defaultBlock&&!c.getParent(ao,c.isBlock)){Y(ah[0].defaultBlock)}aa.selection.setRng(af());ak=r.getBookmark();an(p(r.getRng(C),ah),ak);if(am.styles&&(am.styles.color||am.styles.textDecoration)){a.walk(ao,L,"childNodes");L(ao)}r.moveToBookmark(ak);R(r.getRng(C));aa.nodeChanged()}else{U("apply",ae,al)}}}}function B(ad,am,af){var ag=V(ad),ao=ag[0],ak,aj,ac,al=true;function ae(av){var au,at,ar,aq,ax,aw;if(av.nodeType===1&&x(av)){ax=al;al=x(av)==="true";aw=true}au=a.grep(av.childNodes);if(al&&!aw){for(at=0,ar=ag.length;at=0;ac--){ab=ah[ac].selector;if(!ab){return C}for(ag=ad.length-1;ag>=0;ag--){if(c.is(ad[ag],ab)){return C}}}}return X}function J(ab,ad){var ac;if(!P){P={};ac={};aa.onNodeChange.addToTop(function(af,ae,ah){var ag=n(ah),ai={};T(P,function(aj,ak){T(ag,function(al){if(y(al,ak,{},true)){if(!ac[ak]){T(aj,function(am){am(true,{node:al,format:ak,parents:ag})});ac[ak]=aj}ai[ak]=aj;return false}})});T(ac,function(aj,ak){if(!ai[ak]){delete ac[ak];T(aj,function(al){al(false,{node:ah,format:ak,parents:ag})})}})})}T(ab.split(","),function(ae){if(!P[ae]){P[ae]=[]}P[ae].push(ad)});return this}a.extend(this,{get:V,register:l,apply:Y,remove:B,toggle:F,match:k,matchAll:v,matchNode:y,canApply:z,formatChanged:J});j();W();function h(ab,ac){if(g(ab,ac.inline)){return C}if(g(ab,ac.block)){return C}if(ac.selector){return c.is(ab,ac.selector)}}function g(ac,ab){ac=ac||"";ab=ab||"";ac=""+(ac.nodeName||ac);ab=""+(ab.nodeName||ab);return ac.toLowerCase()==ab.toLowerCase()}function O(ac,ab){var ad=c.getStyle(ac,ab);if(ab=="color"||ab=="backgroundColor"){ad=c.toHex(ad)}if(ab=="fontWeight"&&ad==700){ad="bold"}return""+ad}function q(ab,ac){if(typeof(ab)!="string"){ab=ab(ac)}else{if(ac){ab=ab.replace(/%(\w+)/g,function(ae,ad){return ac[ad]||ae})}}return ab}function f(ab){return ab&&ab.nodeType===3&&/^([\t \r\n]+|)$/.test(ab.nodeValue)}function S(ad,ac,ab){var ae=c.create(ac,ab);ad.parentNode.insertBefore(ae,ad);ae.appendChild(ad);return ae}function p(ab,am,ae){var ap,an,ah,al,ad=ab.startContainer,ai=ab.startOffset,ar=ab.endContainer,ak=ab.endOffset;function ao(az){var au,ax,ay,aw,av,at;au=ax=az?ad:ar;av=az?"previousSibling":"nextSibling";at=c.getRoot();if(au.nodeType==3&&!f(au)){if(az?ai>0:akan?an:ai];if(ad.nodeType==3){ai=0}}if(ar.nodeType==1&&ar.hasChildNodes()){an=ar.childNodes.length-1;ar=ar.childNodes[ak>an?an:ak-1];if(ar.nodeType==3){ak=ar.nodeValue.length}}function aq(au){var at=au;while(at){if(at.nodeType===1&&x(at)){return x(at)==="false"?at:au}at=at.parentNode}return au}function aj(au,ay,aA){var ax,av,az,at;function aw(aC,aE){var aF,aB,aD=aC.nodeValue;if(typeof(aE)=="undefined"){aE=aA?aD.length:0}if(aA){aF=aD.lastIndexOf(" ",aE);aB=aD.lastIndexOf("\u00a0",aE);aF=aF>aB?aF:aB;if(aF!==-1&&!ae){aF++}}else{aF=aD.indexOf(" ",aE);aB=aD.indexOf("\u00a0",aE);aF=aF!==-1&&(aB===-1||aF0&&ah.node.nodeType===3&&ah.node.nodeValue.charAt(ah.offset-1)===" "){if(ah.offset>1){ar=ah.node;ar.splitText(ah.offset-1)}}}}if(am[0].inline||am[0].block_expand){if(!am[0].inline||(ad.nodeType!=3||ai===0)){ad=ao(true)}if(!am[0].inline||(ar.nodeType!=3||ak===ar.nodeValue.length)){ar=ao()}}if(am[0].selector&&am[0].expand!==X&&!am[0].inline){ad=af(ad,"previousSibling");ar=af(ar,"nextSibling")}if(am[0].block||am[0].selector){ad=ac(ad,"previousSibling");ar=ac(ar,"nextSibling");if(am[0].block){if(!H(ad)){ad=ao(true)}if(!H(ar)){ar=ao()}}}if(ad.nodeType==1){ai=s(ad);ad=ad.parentNode}if(ar.nodeType==1){ak=s(ar)+1;ar=ar.parentNode}return{startContainer:ad,startOffset:ai,endContainer:ar,endOffset:ak}}function Z(ah,ag,ae,ab){var ad,ac,af;if(!h(ae,ah)){return X}if(ah.remove!="all"){T(ah.styles,function(aj,ai){aj=q(aj,ag);if(typeof(ai)==="number"){ai=aj;ab=0}if(!ab||g(O(ab,ai),aj)){c.setStyle(ae,ai,"")}af=1});if(af&&c.getAttrib(ae,"style")==""){ae.removeAttribute("style");ae.removeAttribute("data-mce-style")}T(ah.attributes,function(ak,ai){var aj;ak=q(ak,ag);if(typeof(ai)==="number"){ai=ak;ab=0}if(!ab||g(c.getAttrib(ab,ai),ak)){if(ai=="class"){ak=c.getAttrib(ae,ai);if(ak){aj="";T(ak.split(/\s+/),function(al){if(/mce\w+/.test(al)){aj+=(aj?" ":"")+al}});if(aj){c.setAttrib(ae,ai,aj);return}}}if(ai=="class"){ae.removeAttribute("className")}if(e.test(ai)){ae.removeAttribute("data-mce-"+ai)}ae.removeAttribute(ai)}});T(ah.classes,function(ai){ai=q(ai,ag);if(!ab||c.hasClass(ab,ai)){c.removeClass(ae,ai)}});ac=c.getAttribs(ae);for(ad=0;adad?ad:af]}if(ab.nodeType===3&&ag&&af>=ab.nodeValue.length){ab=new t(ab,aa.getBody()).next()||ab}if(ab.nodeType===3&&!ag&&af===0){ab=new t(ab,aa.getBody()).prev()||ab}return ab}function U(ak,ab,ai){var al="_mce_caret",ac=aa.settings.caret_debug;function ad(ap){var ao=c.create("span",{id:al,"data-mce-bogus":true,style:ac?"color:red":""});if(ap){ao.appendChild(aa.getDoc().createTextNode(G))}return ao}function aj(ap,ao){while(ap){if((ap.nodeType===3&&ap.nodeValue!==G)||ap.childNodes.length>1){return false}if(ao&&ap.nodeType===1){ao.push(ap)}ap=ap.firstChild}return true}function ag(ao){while(ao){if(ao.id===al){return ao}ao=ao.parentNode}}function af(ao){var ap;if(ao){ap=new t(ao,ao);for(ao=ap.current();ao;ao=ap.next()){if(ao.nodeType===3){return ao}}}}function ae(aq,ap){var ar,ao;if(!aq){aq=ag(r.getStart());if(!aq){while(aq=c.get(al)){ae(aq,false)}}}else{ao=r.getRng(true);if(aj(aq)){if(ap!==false){ao.setStartBefore(aq);ao.setEndBefore(aq)}c.remove(aq)}else{ar=af(aq);if(ar.nodeValue.charAt(0)===G){ar=ar.deleteData(0,1)}c.remove(aq,1)}r.setRng(ao)}}function ah(){var aq,ao,av,au,ar,ap,at;aq=r.getRng(true);au=aq.startOffset;ap=aq.startContainer;at=ap.nodeValue;ao=ag(r.getStart());if(ao){av=af(ao)}if(at&&au>0&&au=0;at--){aq.appendChild(c.clone(ax[at],false));aq=aq.firstChild}aq.appendChild(c.doc.createTextNode(G));aq=aq.firstChild;c.insertAfter(aw,ay);r.setCursorLocation(aq,1)}}function an(){var ap,ao,aq;ao=ag(r.getStart());if(ao&&!c.isEmpty(ao)){a.walk(ao,function(ar){if(ar.nodeType==1&&ar.id!==al&&!c.isEmpty(ar)){c.setAttrib(ar,"data-mce-bogus",null)}},"childNodes")}}if(!self._hasCaretEvents){aa.onBeforeGetContent.addToTop(function(){var ao=[],ap;if(aj(ag(r.getStart()),ao)){ap=ao.length;while(ap--){c.setAttrib(ao[ap],"data-mce-bogus","1")}}});a.each("onMouseUp onKeyUp".split(" "),function(ao){aa[ao].addToTop(function(){ae();an()})});aa.onKeyDown.addToTop(function(ao,aq){var ap=aq.keyCode;if(ap==8||ap==37||ap==39){ae(ag(r.getStart()))}an()});r.onSetContent.add(an);self._hasCaretEvents=true}if(ak=="apply"){ah()}else{am()}}function R(ac){var ab=ac.startContainer,ai=ac.startOffset,ae,ah,ag,ad,af;if(ab.nodeType==3&&ai>=ab.nodeValue.length){ai=s(ab);ab=ab.parentNode;ae=true}if(ab.nodeType==1){ad=ab.childNodes;ab=ad[Math.min(ai,ad.length-1)];ah=new t(ab,c.getParent(ab,c.isBlock));if(ai>ad.length-1||ae){ah.next()}for(ag=ah.current();ag;ag=ah.next()){if(ag.nodeType==3&&!f(ag)){af=c.create("a",null,G);ag.parentNode.insertBefore(af,ag);ac.setStart(ag,0);r.setRng(ac);c.remove(af);return}}}}}})(tinymce);tinymce.onAddEditor.add(function(e,a){var d,h,g,c=a.settings;function b(j,i){e.each(i,function(l,k){if(l){g.setStyle(j,k,l)}});g.rename(j,"span")}function f(i,j){g=i.dom;if(c.convert_fonts_to_spans){e.each(g.select("font,u,strike",j.node),function(k){d[k.nodeName.toLowerCase()](a.dom,k)})}}if(c.inline_styles){h=e.explode(c.font_size_legacy_values);d={font:function(j,i){b(i,{backgroundColor:i.style.backgroundColor,color:i.color,fontFamily:i.face,fontSize:h[parseInt(i.size,10)-1]})},u:function(j,i){b(i,{textDecoration:"underline"})},strike:function(j,i){b(i,{textDecoration:"line-through"})}};a.onPreProcess.add(f);a.onSetContent.add(f);a.onInit.add(function(){a.selection.onSetContent.add(f)})}});(function(b){var a=b.dom.TreeWalker;b.EnterKey=function(f){var i=f.dom,e=f.selection,d=f.settings,h=f.undoManager,c=f.schema.getNonEmptyElements();function g(A){var v=e.getRng(true),E,j,z,u,p,L,o,k,n,t,I,x,B;function D(M){return M&&i.isBlock(M)&&!/^(TD|TH|CAPTION|FORM)$/.test(M.nodeName)&&!/^(fixed|absolute)/i.test(M.style.position)&&i.getContentEditable(M)!=="true"}function F(N){var M;if(b.isIE&&i.isBlock(N)){M=e.getRng();N.appendChild(i.create("span",null,"\u00a0"));e.select(N);N.lastChild.outerHTML="";e.setRng(M)}}function y(O){var N=O,P=[],M;while(N=N.firstChild){if(i.isBlock(N)){return}if(N.nodeType==1&&!c[N.nodeName.toLowerCase()]){P.push(N)}}M=P.length;while(M--){N=P[M];if(!N.hasChildNodes()||(N.firstChild==N.lastChild&&N.firstChild.nodeValue==="")){i.remove(N)}}}function m(N){var S,Q,M,T,R,P=N,O;M=i.createRng();if(N.hasChildNodes()){S=new a(N,N);while(Q=S.current()){if(Q.nodeType==3){M.setStart(Q,0);M.setEnd(Q,0);break}if(c[Q.nodeName.toLowerCase()]){M.setStartBefore(Q);M.setEndBefore(Q);break}P=Q;Q=S.next()}if(!Q){M.setStart(P,0);M.setEnd(P,0)}}else{if(N.nodeName=="BR"){if(N.nextSibling&&i.isBlock(N.nextSibling)){if(!L||L<9){O=i.create("br");N.parentNode.insertBefore(O,N)}M.setStartBefore(N);M.setEndBefore(N)}else{M.setStartAfter(N);M.setEndAfter(N)}}else{M.setStart(N,0);M.setEnd(N,0)}}e.setRng(M);i.remove(O);R=i.getViewPort(f.getWin());T=i.getPos(N).y;if(TR.y+R.h){f.getWin().scrollTo(0,T"}return Q}function q(P){var O,N,M;if(z.nodeType==3&&(P?u>0:u=z.nodeValue.length){if(!b.isIE&&!C()){N=i.create("br");v.insertNode(N);v.setStartAfter(N);v.setEndAfter(N);M=true}}N=i.create("br");v.insertNode(N);if(b.isIE&&t=="PRE"&&(!L||L<8)){N.parentNode.insertBefore(i.doc.createTextNode("\r"),N)}if(!M){v.setStartAfter(N);v.setEndAfter(N)}else{v.setStartBefore(N);v.setEndBefore(N)}e.setRng(v);h.add()}function s(M){do{if(M.nodeType===3){M.nodeValue=M.nodeValue.replace(/^[\r\n]+/,"")}M=M.firstChild}while(M)}function J(O){var M=i.getRoot(),N,P;N=O;while(N!==M&&i.getContentEditable(N)!=="false"){if(i.getContentEditable(N)==="true"){P=N}N=N.parentNode}return N!==M?P:M}function H(N){var M;if(!b.isIE){N.normalize();M=N.lastChild;if(!M||(/^(left|right)$/gi.test(i.getStyle(M,"float",true)))){i.add(N,"br")}}}if(!v.collapsed){f.execCommand("Delete");return}if(A.isDefaultPrevented()){return}z=v.startContainer;u=v.startOffset;x=d.forced_root_block;x=x?x.toUpperCase():"";L=i.doc.documentMode;if(z.nodeType==1&&z.hasChildNodes()){B=u>z.childNodes.length-1;z=z.childNodes[Math.min(u,z.childNodes.length-1)]||z;if(B&&z.nodeType==3){u=z.nodeValue.length}else{u=0}}j=J(z);if(!j){return}h.beforeChange();if(!i.isBlock(j)&&j!=i.getRoot()){if(!x||A.shiftKey){K()}return}if((x&&!A.shiftKey)||(!x&&A.shiftKey)){z=l(z,u)}p=i.getParent(z,i.isBlock);n=p?i.getParent(p.parentNode,i.isBlock):null;t=p?p.nodeName.toUpperCase():"";I=n?n.nodeName.toUpperCase():"";if(t=="LI"&&i.isEmpty(p)){if(/^(UL|OL|LI)$/.test(n.parentNode.nodeName)){return false}G();return}if(t=="PRE"&&d.br_in_pre!==false){if(!A.shiftKey){K();return}}else{if((!x&&!A.shiftKey&&t!="LI")||(x&&A.shiftKey)){K();return}}x=x||"P";if(q()){if(/^(H[1-6]|PRE)$/.test(t)&&I!="HGROUP"){o=r(x)}else{o=r()}if(d.end_container_on_empty_block&&D(n)&&i.isEmpty(p)){o=i.split(n,p)}else{i.insertAfter(o,p)}m(o)}else{if(q(true)){o=p.parentNode.insertBefore(r(),p);F(o)}else{E=v.cloneRange();E.setEndAfter(p);k=E.extractContents();s(k);o=k.firstChild;i.insertAfter(k,p);y(o);H(p);m(o)}}i.setAttrib(o,"id","");h.add()}f.onKeyDown.add(function(k,j){if(j.keyCode==13){if(g(j)!==false){j.preventDefault()}}})}})(tinymce); \ No newline at end of file diff --git a/askbot/skins/common/media/js/tinymce/tiny_mce_popup.js b/askbot/skins/common/media/js/tinymce/tiny_mce_popup.js deleted file mode 100644 index bb8e58c8..00000000 --- a/askbot/skins/common/media/js/tinymce/tiny_mce_popup.js +++ /dev/null @@ -1,5 +0,0 @@ - -// Uncomment and change this document.domain value if you are loading the script cross subdomains -// document.domain = 'moxiecode.com'; - -var tinymce=null,tinyMCEPopup,tinyMCE;tinyMCEPopup={init:function(){var b=this,a,c;a=b.getWin();tinymce=a.tinymce;tinyMCE=a.tinyMCE;b.editor=tinymce.EditorManager.activeEditor;b.params=b.editor.windowManager.params;b.features=b.editor.windowManager.features;b.dom=b.editor.windowManager.createInstance("tinymce.dom.DOMUtils",document,{ownEvents:true,proxy:tinyMCEPopup._eventProxy});b.dom.bind(window,"ready",b._onDOMLoaded,b);if(b.features.popup_css!==false){b.dom.loadCSS(b.features.popup_css||b.editor.settings.popup_css)}b.listeners=[];b.onInit={add:function(e,d){b.listeners.push({func:e,scope:d})}};b.isWindow=!b.getWindowArg("mce_inline");b.id=b.getWindowArg("mce_window_id");b.editor.windowManager.onOpen.dispatch(b.editor.windowManager,window)},getWin:function(){return(!window.frameElement&&window.dialogArguments)||opener||parent||top},getWindowArg:function(c,b){var a=this.params[c];return tinymce.is(a)?a:b},getParam:function(b,a){return this.editor.getParam(b,a)},getLang:function(b,a){return this.editor.getLang(b,a)},execCommand:function(d,c,e,b){b=b||{};b.skip_focus=1;this.restoreSelection();return this.editor.execCommand(d,c,e,b)},resizeToInnerSize:function(){var a=this;setTimeout(function(){var b=a.dom.getViewPort(window);a.editor.windowManager.resizeBy(a.getWindowArg("mce_width")-b.w,a.getWindowArg("mce_height")-b.h,a.id||window)},10)},executeOnLoad:function(s){this.onInit.add(function(){eval(s)})},storeSelection:function(){this.editor.windowManager.bookmark=tinyMCEPopup.editor.selection.getBookmark(1)},restoreSelection:function(){var a=tinyMCEPopup;if(!a.isWindow&&tinymce.isIE){a.editor.selection.moveToBookmark(a.editor.windowManager.bookmark)}},requireLangPack:function(){var b=this,a=b.getWindowArg("plugin_url")||b.getWindowArg("theme_url");if(a&&b.editor.settings.language&&b.features.translate_i18n!==false&&b.editor.settings.language_load!==false){a+="/langs/"+b.editor.settings.language+"_dlg.js";if(!tinymce.ScriptLoader.isDone(a)){document.write(' - - - - -
    -
    - -
    -
    -
    -
    - -

    To test that page up/down and arrow keys work, copy this above the WMD - control.

    - - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - Scroll Down!
    - - - - \ No newline at end of file diff --git a/askbot/skins/common/media/js/wmd/wmd.css b/askbot/skins/common/media/js/wmd/wmd.css deleted file mode 100644 index 678d70f3..00000000 --- a/askbot/skins/common/media/js/wmd/wmd.css +++ /dev/null @@ -1,130 +0,0 @@ -/*body -{ - background-color: White -} -*/ -.wmd-panel -{ -} - -#wmd-button-bar -{ - background: url(images/editor-toolbar-background.png) repeat-x bottom; - height: 30px; - border: 0; - display: block; -} - -#wmd-input -{ - height: 500px; - background-color: Gainsboro; - border: 1px solid DarkGray; - margin-top: -20px; -} - -#wmd-preview -{ - background-color: LightSkyBlue; -} - -#wmd-output -{ - background-color: Pink; -} - -#wmd-button-row -{ - position: relative; - margin: 10px 2px 0 2px; - padding: 0px; - height: 20px; -} - -.wmd-spacer -{ - width: 1px; - height: 20px; - margin-left: 2px; - margin-right: 4px; - /*position: absolute;*/ - background-color: Silver; - display: inline-block; - list-style: none; -} - -.wmd-button -{ - width: 20px; - height: 20px; - margin-left: 5px; - margin-right: 5px; - - /*position: absolute;*/ - background-image: url(images/wmd-buttons.png); - background-repeat: no-repeat; - background-position: 0px 0px; - display: inline-block; - list-style: none; -} - -.wmd-button > a -{ - width: 20px; - height: 20px; - margin-left: 5px; - margin-right: 5px; - - position: absolute; - display: inline-block; -} - - -/* sprite button slicing style information */ -#wmd-button-bar #wmd-bold-button {left: 0px; background-position: 0px 0;} -#wmd-button-bar #wmd-italic-button {left: 25px; background-position: -20px 0;} -#wmd-button-bar #wmd-spacer1 {left: 50px;} -#wmd-button-bar #wmd-link-button {left: 75px; background-position: -40px 0;} -#wmd-button-bar #wmd-quote-button {left: 100px; background-position: -60px 0;} -#wmd-button-bar #wmd-code-button {left: 125px; background-position: -80px 0;} -#wmd-button-bar #wmd-image-button {left: 150px; background-position: -100px 0;} -#wmd-button-bar #wmd-attachment-button {left: 175px; background-position: -120px 0;} -#wmd-button-bar #wmd-spacer2 {left: 200px;} -#wmd-button-bar #wmd-olist-button {left: 225px; background-position: -140px 0;} -#wmd-button-bar #wmd-ulist-button {left: 250px; background-position: -160px 0;} -#wmd-button-bar #wmd-heading-button {left: 275px; background-position: -180px 0;} -#wmd-button-bar #wmd-hr-button {left: 300px; background-position: -200px 0;} -#wmd-button-bar #wmd-spacer3 {left: 325px;} -#wmd-button-bar #wmd-undo-button {left: 350px; background-position: -220px 0;} -#wmd-button-bar #wmd-redo-button {left: 375px; background-position: -240px 0;} -#wmd-button-bar #wmd-help-button {right: 0px; background-position: -260px 0;} - - -.wmd-prompt-background -{ - background-color: Black; -} - -.wmd-prompt-dialog -{ - border: 1px solid #999999; - background-color: #F5F5F5; -} - -.wmd-prompt-dialog > div { - font-size: 1em; - font-family: arial, helvetica, sans-serif; -} - - -.wmd-prompt-dialog > form > input[type="text"] { - border: 1px solid #999999; - color: black; -} - -.wmd-prompt-dialog > form > input[type="button"]{ - border: 1px solid #888888; - font-family: trebuchet MS, helvetica, sans-serif; - font-size: 1em; - font-weight: bold; -} diff --git a/askbot/skins/common/media/js/wmd/wmd.js b/askbot/skins/common/media/js/wmd/wmd.js deleted file mode 100644 index 5aeacd98..00000000 --- a/askbot/skins/common/media/js/wmd/wmd.js +++ /dev/null @@ -1,2510 +0,0 @@ -var Attacklab = Attacklab || {}; - -Attacklab.wmdBase = function(){ - - // A few handy aliases for readability. - var wmd = self.Attacklab; - var doc = self.document; - var re = self.RegExp; - var nav = self.navigator; - - // Some namespaces. - wmd.Util = {}; - wmd.Position = {}; - wmd.Command = {}; - wmd.Global = {}; - - var util = wmd.Util; - var position = wmd.Position; - var command = wmd.Command; - var global = wmd.Global; - - - // Used to work around some browser bugs where we can't use feature testing. - global.isChrome = /chrome/.test(nav.userAgent.toLowerCase()); - global.isIE = /msie/.test(nav.userAgent.toLowerCase()); - global.isIE_5or6 = /msie 6/.test(nav.userAgent.toLowerCase()) || /msie 5/.test(nav.userAgent.toLowerCase()); - global.isIE_7plus = global.isIE && !global.isIE_5or6; - global.isOpera = /opera/.test(nav.userAgent.toLowerCase()); - global.isKonqueror = /konqueror/.test(nav.userAgent.toLowerCase()); - - var toolbar_strong_label = gettext('bold') + " Ctrl-B"; - var toolbar_emphasis_label = gettext('italic') + " Ctrl-I"; - var toolbar_hyperlink_label = gettext('link') + " Ctrl-L"; - var toolbar_blockquote_label = gettext('quote') + "
    Ctrl-."; - var toolbar_code_label = gettext('preformatted text') + "
     Ctrl-K";
    -    var toolbar_image_label = gettext('image') + "  Ctrl-G";
    -    var toolbar_attachment_label = gettext('attachment') + " Ctrl-F";
    -    var toolbar_numbered_label = gettext('numbered list') + " 
      Ctrl-O"; - var toolbar_bulleted_label = gettext('bulleted list') + "
        Ctrl-U"; - var toolbar_heading_label = gettext('heading') + "

        /

        Ctrl-H"; - var toolbar_horizontal_label = gettext('horizontal bar') + "
        Ctrl-R"; - var toolbar_undo_label = gettext('undo') + " Ctrl-Z"; - var toolbar_redo_label = gettext('redo') + " Ctrl-Y"; - - // ------------------------------------------------------------------- - // YOUR CHANGES GO HERE - // - // I've tried to localize the things you are likely to change to - // this area. - // ------------------------------------------------------------------- - - // The text that appears on the upper part of the dialog box when - // entering links. - var imageDialogText = "

        " + gettext('enter image url') + '

        '; - var linkDialogText = "

        " + gettext('enter url') + '

        '; - var fileDialogText = "

        " + gettext('upload file attachment') + '

        '; - // The default text that appears in the dialog input box when entering - // links. - var imageDefaultText = "http://"; - var linkDefaultText = "http://"; - - // The location of your button images relative to the base directory. - var imageDirectory = "images/"; - - // Some intervals in ms. These can be adjusted to reduce the control's load. - var previewPollInterval = 500; - var pastePollInterval = 100; - - // The link and title for the help button - var helpLink = "http://wmd-editor.com/"; - var helpHoverTitle = "WMD website"; - var helpTarget = "_blank"; - var localUploadFileName = null; - - // ------------------------------------------------------------------- - // END OF YOUR CHANGES - // ------------------------------------------------------------------- - - // A collection of the important regions on the page. - // Cached so we don't have to keep traversing the DOM. - wmd.PanelCollection = function(){ - this.buttonBar = doc.getElementById("wmd-button-bar"); - this.preview = doc.getElementById("previewer"); - this.output = doc.getElementById("wmd-output"); - this.input = doc.getElementById("editor"); - }; - - // This PanelCollection object can't be filled until after the page - // has loaded. - wmd.panels = undefined; - - // Internet explorer has problems with CSS sprite buttons that use HTML - // lists. When you click on the background image "button", IE will - // select the non-existent link text and discard the selection in the - // textarea. The solution to this is to cache the textarea selection - // on the button's mousedown event and set a flag. In the part of the - // code where we need to grab the selection, we check for the flag - // and, if it's set, use the cached area instead of querying the - // textarea. - // - // This ONLY affects Internet Explorer (tested on versions 6, 7 - // and 8) and ONLY on button clicks. Keyboard shortcuts work - // normally since the focus never leaves the textarea. - wmd.ieCachedRange = null; // cached textarea selection - wmd.ieRetardedClick = false; // flag - - // Returns true if the DOM element is visible, false if it's hidden. - // Checks if display is anything other than none. - util.isVisible = function (elem) { - - if (window.getComputedStyle) { - // Most browsers - return window.getComputedStyle(elem, null).getPropertyValue("display") !== "none"; - } - else if (elem.currentStyle) { - // IE - return elem.currentStyle.display !== "none"; - } - }; - - - // Adds a listener callback to a DOM element which is fired on a specified - // event. - util.addEvent = function(elem, event, listener){ - if (elem.attachEvent) { - // IE only. The "on" is mandatory. - elem.attachEvent("on" + event, listener); - } - else { - // Other browsers. - elem.addEventListener(event, listener, false); - } - }; - - - // Removes a listener callback from a DOM element which is fired on a specified - // event. - util.removeEvent = function(elem, event, listener){ - if (elem.detachEvent) { - // IE only. The "on" is mandatory. - elem.detachEvent("on" + event, listener); - } - else { - // Other browsers. - elem.removeEventListener(event, listener, false); - } - }; - - // Converts \r\n and \r to \n. - util.fixEolChars = function(text){ - text = text.replace(/\r\n/g, "\n"); - text = text.replace(/\r/g, "\n"); - return text; - }; - - // Extends a regular expression. Returns a new RegExp - // using pre + regex + post as the expression. - // Used in a few functions where we have a base - // expression and we want to pre- or append some - // conditions to it (e.g. adding "$" to the end). - // The flags are unchanged. - // - // regex is a RegExp, pre and post are strings. - util.extendRegExp = function(regex, pre, post){ - - if (pre === null || pre === undefined) - { - pre = ""; - } - if(post === null || post === undefined) - { - post = ""; - } - - var pattern = regex.toString(); - var flags; - - // Replace the flags with empty space and store them. - pattern = pattern.replace(/\/([gim]*)$/, ""); - flags = re.$1; - - // Remove the slash delimiters on the regular expression. - pattern = pattern.replace(/(^\/|\/$)/g, ""); - pattern = pre + pattern + post; - - return new re(pattern, flags); - }; - - - // Sets the image for a button passed to the WMD editor. - // Returns a new element with the image attached. - // Adds several style properties to the image. - util.createImage = function(img){ - - var imgPath = imageDirectory + img; - - var elem = doc.createElement("img"); - elem.className = "wmd-button"; - elem.src = imgPath; - - return elem; - }; - - -// This simulates a modal dialog box and asks for the URL when you -// click the hyperlink or image buttons. -// -// text: The html for the input box. -// defaultInputText: The default value that appears in the input box. -// makeLinkMarkdown: The function which is executed when the prompt is dismissed, either via OK or Cancel -util.prompt = function(text, defaultInputText, makeLinkMarkdown, dialogType){ - - // These variables need to be declared at this level since they are used - // in multiple functions. - var dialog;// The dialog box. - var background;// The background beind the dialog box. - var input;// The text box where you enter the hyperlink. - - if (defaultInputText === undefined) { - defaultInputText = ""; - } - - // Used as a keydown event handler. Esc dismisses the prompt. - // Key code 27 is ESC. - var checkEscape = function(key){ - var code = (key.charCode || key.keyCode); - if (code === 27) { - close(true); - } - }; - - // Dismisses the hyperlink input box. - // isCancel is true if we don't care about the input text. - // isCancel is false if we are going to keep the text. - var close = function(isCancel){ - util.removeEvent(doc.body, "keydown", checkEscape); - var text = input.value; - - if (isCancel){ - text = null; - } - else{ - // Fixes common pasting errors. - text = text.replace('http://http://', 'http://'); - text = text.replace('http://https://', 'https://'); - text = text.replace('http://ftp://', 'ftp://'); - - if (text.indexOf('http://') === -1 && text.indexOf('ftp://') === -1 && text.indexOf('https://') === -1) { - if (dialogType == 'link'){ - //add http only to urls - text = 'http://' + text; - } - } - } - - dialog.parentNode.removeChild(dialog); - background.parentNode.removeChild(background); - makeLinkMarkdown(text); - return false; - }; - - // Creates the background behind the hyperlink text entry box. - // Most of this has been moved to CSS but the div creation and - // browser-specific hacks remain here. - var createBackground = function(){ - - background = doc.createElement("div"); - background.className = "wmd-prompt-background"; - style = background.style; - style.position = "absolute"; - style.top = "0"; - - style.zIndex = "1000"; - - // Some versions of Konqueror don't support transparent colors - // so we make the whole window transparent. - // - // Is this necessary on modern konqueror browsers? - if (global.isKonqueror){ - style.backgroundColor = "transparent"; - } - else if (global.isIE){ - style.filter = "alpha(opacity=50)"; - } - else { - style.opacity = "0.5"; - } - - var pageSize = position.getPageSize(); - style.height = pageSize[1] + "px"; - - if(global.isIE){ - style.left = doc.documentElement.scrollLeft; - style.width = doc.documentElement.clientWidth; - } - else { - style.left = "0"; - style.width = "100%"; - } - - doc.body.appendChild(background); - }; - - // Create the text input box form/window. - var createDialog = function(){ - - // The main dialog box. - dialog = doc.createElement("div"); - dialog.className = "wmd-prompt-dialog"; - dialog.style.padding = "10px;"; - dialog.style.position = "fixed"; - dialog.style.width = "400px"; - dialog.style.zIndex = "1001"; - - // The dialog text. - var question = doc.createElement("div"); - question.innerHTML = text; - question.style.padding = "5px"; - dialog.appendChild(question); - - // The web form container for the text box and buttons. - var form = doc.createElement("form"); - form.onsubmit = function(){ return close(false); }; - style = form.style; - style.padding = "0"; - style.margin = "0"; - style.cssFloat = "left"; - style.width = "100%"; - style.textAlign = "center"; - style.position = "relative"; - dialog.appendChild(form); - - // The input text box - input = doc.createElement("input"); - if(dialogType == 'image' || dialogType == 'file'){ - input.id = "image-url"; - } - input.type = "text"; - if (dialogType == 'file'){ - input.disabled = "disabled"; - }; - - input.value = defaultInputText; - style = input.style; - style.display = "block"; - style.width = "80%"; - style.marginLeft = style.marginRight = "auto"; - form.appendChild(input); - - //EF. fucus at the end of the input box - //putCursorAtEnd($(input)); - - // The upload file input - if(dialogType == 'image' || dialogType == 'file'){ - var upload_container = $('
        '); - var upload_input = $(''); - upload_input.attr('name', 'file-upload'); - upload_input.attr('id', 'file-upload'); - upload_input.attr('size', 26); - - var spinner = $(''); - spinner.attr('id', 'loading'); - spinner.attr('src', mediaUrl("media/images/indicator.gif")); - spinner.css('display', 'none'); - - var startUploadHandler = function(){ - localUploadFileName = $(this).val();//this is a local var - /* - * startUploadHandler is passed into the ajaxFileUpload - * in order to re-install the onchange handler - * because the jquery extension ajaxFileUpload removes the handler - */ - var options = { - spinner: spinner, - uploadInputId: 'file-upload', - urlInput: $(input), - startUploadHandler: startUploadHandler - }; - return ajaxFileUpload(options); - //$('#image-url'), startUploadHandler); - }; - - upload_input.change(startUploadHandler); - - upload_container.append(upload_input); - upload_container.append($('
        ')); - - upload_container.append(spinner); - - upload_container.css('padding', '5px'); - $(form).append(upload_container); - } - - // The ok button - var okButton = doc.createElement("input"); - okButton.type = "button"; - okButton.onclick = function(){ - var isCancel = false; - if ($.trim($(input).val()) === ''){ - isCancel = true; - } - return close(isCancel); - }; - okButton.value = "OK"; - style = okButton.style; - style.margin = "10px"; - style.display = "inline"; - style.width = "7em"; - - // The cancel button - var cancelButton = doc.createElement("input"); - cancelButton.type = "button"; - cancelButton.onclick = function(){ return close(true); }; - cancelButton.value = "Cancel"; - style = cancelButton.style; - style.margin = "10px"; - style.display = "inline"; - style.width = "7em"; - - // The order of these buttons is different on macs. - if (/mac/.test(nav.platform.toLowerCase())) { - form.appendChild(cancelButton); - form.appendChild(okButton); - } - else { - form.appendChild(okButton); - form.appendChild(cancelButton); - } - - util.addEvent(doc.body, "keydown", checkEscape); - dialog.style.top = "50%"; - dialog.style.left = "50%"; - dialog.style.display = "block"; - if(global.isIE_5or6){ - dialog.style.position = "absolute"; - dialog.style.top = doc.documentElement.scrollTop + 200 + "px"; - dialog.style.left = "50%"; - } - doc.body.appendChild(dialog); - - // This has to be done AFTER adding the dialog to the form if you - // want it to be centered. - dialog.style.marginTop = -(position.getHeight(dialog) / 2) + "px"; - dialog.style.marginLeft = -(position.getWidth(dialog) / 2) + "px"; - - }; - - createBackground(); - - // Why is this in a zero-length timeout? - // Is it working around a browser bug? - top.setTimeout(function(){ - createDialog(); - var defTextLen = defaultInputText.length; - if (input.type == 'text' && input.selectionStart !== undefined) { - input.selectionStart = 0; - input.selectionEnd = defTextLen; - } - else if (input.createTextRange) { - var range = input.createTextRange(); - range.collapse(false); - range.moveStart("character", -defTextLen); - range.moveEnd("character", defTextLen); - range.select(); - } - - input.focus(); - }, 0); -}; - - - // UNFINISHED - // The assignment in the while loop makes jslint cranky. - // I'll change it to a better loop later. - position.getTop = function(elem, isInner){ - var result = elem.offsetTop; - if (!isInner) { - while (elem.offsetParent) { - elem = elem.offsetParent; - result += elem.offsetTop; - } - } - return result; - }; - - position.getHeight = function (elem) { - return elem.offsetHeight || elem.scrollHeight; - }; - - position.getWidth = function (elem) { - return elem.offsetWidth || elem.scrollWidth; - }; - - position.getPageSize = function(){ - - var scrollWidth, scrollHeight; - var innerWidth, innerHeight; - - // It's not very clear which blocks work with which browsers. - if(self.innerHeight && self.scrollMaxY){ - scrollWidth = doc.body.scrollWidth; - scrollHeight = self.innerHeight + self.scrollMaxY; - } - else if(doc.body.scrollHeight > doc.body.offsetHeight){ - scrollWidth = doc.body.scrollWidth; - scrollHeight = doc.body.scrollHeight; - } - else{ - scrollWidth = doc.body.offsetWidth; - scrollHeight = doc.body.offsetHeight; - } - - if(self.innerHeight){ - // Non-IE browser - innerWidth = self.innerWidth; - innerHeight = self.innerHeight; - } - else if(doc.documentElement && doc.documentElement.clientHeight){ - // Some versions of IE (IE 6 w/ a DOCTYPE declaration) - innerWidth = doc.documentElement.clientWidth; - innerHeight = doc.documentElement.clientHeight; - } - else if(doc.body){ - // Other versions of IE - innerWidth = doc.body.clientWidth; - innerHeight = doc.body.clientHeight; - } - - var maxWidth = Math.max(scrollWidth, innerWidth); - var maxHeight = Math.max(scrollHeight, innerHeight); - return [maxWidth, maxHeight, innerWidth, innerHeight]; - }; - - // Watches the input textarea, polling at an interval and runs - // a callback function if anything has changed. - wmd.inputPoller = function(callback, interval){ - - var pollerObj = this; - var inputArea = wmd.panels.input; - - // Stored start, end and text. Used to see if there are changes to the input. - var lastStart; - var lastEnd; - var markdown; - - var killHandle; // Used to cancel monitoring on destruction. - // Checks to see if anything has changed in the textarea. - // If so, it runs the callback. - this.tick = function(){ - - if (!util.isVisible(inputArea)) { - return; - } - - // Update the selection start and end, text. - if (inputArea.selectionStart || inputArea.selectionStart === 0) { - var start = inputArea.selectionStart; - var end = inputArea.selectionEnd; - if (start != lastStart || end != lastEnd) { - lastStart = start; - lastEnd = end; - - if (markdown != inputArea.value) { - markdown = inputArea.value; - return true; - } - } - } - return false; - }; - - - var doTickCallback = function(){ - - if (!util.isVisible(inputArea)) { - return; - } - - // If anything has changed, call the function. - if (pollerObj.tick()) { - callback(); - } - }; - - // Set how often we poll the textarea for changes. - var assignInterval = function(){ - // previewPollInterval is set at the top of the namespace. - killHandle = top.setInterval(doTickCallback, interval); - }; - - this.destroy = function(){ - top.clearInterval(killHandle); - }; - - assignInterval(); - }; - - // Handles pushing and popping TextareaStates for undo/redo commands. - // I should rename the stack variables to list. - wmd.undoManager = function(callback){ - - var undoObj = this; - var undoStack = []; // A stack of undo states - var stackPtr = 0; // The index of the current state - var mode = "none"; - var lastState; // The last state - var poller; - var timer; // The setTimeout handle for cancelling the timer - var inputStateObj; - - // Set the mode for later logic steps. - var setMode = function(newMode, noSave){ - - if (mode != newMode) { - mode = newMode; - if (!noSave) { - saveState(); - } - } - - if (!global.isIE || mode != "moving") { - timer = top.setTimeout(refreshState, 1); - } - else { - inputStateObj = null; - } - }; - - var refreshState = function(){ - inputStateObj = new wmd.TextareaState(); - poller.tick(); - timer = undefined; - }; - - this.setCommandMode = function(){ - mode = "command"; - saveState(); - timer = top.setTimeout(refreshState, 0); - }; - - this.canUndo = function(){ - return stackPtr > 1; - }; - - this.canRedo = function(){ - if (undoStack[stackPtr + 1]) { - return true; - } - return false; - }; - - // Removes the last state and restores it. - this.undo = function(){ - - if (undoObj.canUndo()) { - if (lastState) { - // What about setting state -1 to null or checking for undefined? - lastState.restore(); - lastState = null; - } - else { - undoStack[stackPtr] = new wmd.TextareaState(); - undoStack[--stackPtr].restore(); - - if (callback) { - callback(); - } - } - } - - mode = "none"; - wmd.panels.input.focus(); - refreshState(); - }; - - // Redo an action. - this.redo = function(){ - - if (undoObj.canRedo()) { - - undoStack[++stackPtr].restore(); - - if (callback) { - callback(); - } - } - - mode = "none"; - wmd.panels.input.focus(); - refreshState(); - }; - - // Push the input area state to the stack. - var saveState = function(){ - - var currState = inputStateObj || new wmd.TextareaState(); - - if (!currState) { - return false; - } - if (mode == "moving") { - if (!lastState) { - lastState = currState; - } - return; - } - if (lastState) { - if (undoStack[stackPtr - 1].text != lastState.text) { - undoStack[stackPtr++] = lastState; - } - lastState = null; - } - undoStack[stackPtr++] = currState; - undoStack[stackPtr + 1] = null; - if (callback) { - callback(); - } - }; - - var handleCtrlYZ = function(event){ - - var handled = false; - - if (event.ctrlKey || event.metaKey) { - - // IE and Opera do not support charCode. - var keyCode = event.charCode || event.keyCode; - var keyCodeChar = String.fromCharCode(keyCode); - - switch (keyCodeChar) { - - case "y": - undoObj.redo(); - handled = true; - break; - - case "z": - if (!event.shiftKey) { - undoObj.undo(); - } - else { - undoObj.redo(); - } - handled = true; - break; - } - } - - if (handled) { - if (event.preventDefault) { - event.preventDefault(); - } - if (top.event) { - top.event.returnValue = false; - } - return; - } - }; - - // Set the mode depending on what is going on in the input area. - var handleModeChange = function(event){ - - if (!event.ctrlKey && !event.metaKey) { - - var keyCode = event.keyCode; - - if ((keyCode >= 33 && keyCode <= 40) || (keyCode >= 63232 && keyCode <= 63235)) { - // 33 - 40: page up/dn and arrow keys - // 63232 - 63235: page up/dn and arrow keys on safari - setMode("moving"); - } - else if (keyCode == 8 || keyCode == 46 || keyCode == 127) { - // 8: backspace - // 46: delete - // 127: delete - setMode("deleting"); - } - else if (keyCode == 13) { - // 13: Enter - setMode("newlines"); - } - else if (keyCode == 27) { - // 27: escape - setMode("escape"); - } - else if ((keyCode < 16 || keyCode > 20) && keyCode != 91) { - // 16-20 are shift, etc. - // 91: left window key - // I think this might be a little messed up since there are - // a lot of nonprinting keys above 20. - setMode("typing"); - } - } - }; - - var setEventHandlers = function(){ - - util.addEvent(wmd.panels.input, "keypress", function(event){ - // keyCode 89: y - // keyCode 90: z - if ((event.ctrlKey || event.metaKey) && (event.keyCode == 89 || event.keyCode == 90)) { - event.preventDefault(); - } - }); - - var handlePaste = function(){ - if (global.isIE || (inputStateObj && inputStateObj.text != wmd.panels.input.value)) { - if (timer === undefined) { - mode = "paste"; - saveState(); - refreshState(); - } - } - }; - - // pastePollInterval is specified at the beginning of this namespace. - poller = new wmd.inputPoller(handlePaste, pastePollInterval); - - util.addEvent(wmd.panels.input, "keydown", handleCtrlYZ); - util.addEvent(wmd.panels.input, "keydown", handleModeChange); - - util.addEvent(wmd.panels.input, "mousedown", function(){ - setMode("moving"); - }); - wmd.panels.input.onpaste = handlePaste; - wmd.panels.input.ondrop = handlePaste; - }; - - var init = function(){ - setEventHandlers(); - refreshState(); - saveState(); - }; - - this.destroy = function(){ - if (poller) { - poller.destroy(); - } - }; - - init(); - }; - - // I think my understanding of how the buttons and callbacks are stored in the array is incomplete. - wmd.editor = function(previewRefreshCallback){ - - if (!previewRefreshCallback) { - previewRefreshCallback = function(){}; - } - - var inputBox = wmd.panels.input; - - var offsetHeight = 0; - - var editObj = this; - - var mainDiv; - var mainSpan; - - var div; // This name is pretty ambiguous. I should rename this. - - // Used to cancel recurring events from setInterval. - var creationHandle; - - var undoMgr; // The undo manager - - var isButtonUsed = function(button){ - var buttons = $.trim(wmd.wmd_env.buttons).split(/\s+/); - return $.inArray(button, buttons) !== -1; - }; - - // Perform the button's action. - var doClick = function(button){ - - inputBox.focus(); - - if (button.textOp) { - - if (undoMgr) { - undoMgr.setCommandMode(); - } - - var state = new wmd.TextareaState(); - - if (!state) { - return; - } - - var chunks = state.getChunks(); - - // Some commands launch a "modal" prompt dialog. Javascript - // can't really make a modal dialog box and the WMD code - // will continue to execute while the dialog is displayed. - // This prevents the dialog pattern I'm used to and means - // I can't do something like this: - // - // var link = CreateLinkDialog(); - // makeMarkdownLink(link); - // - // Instead of this straightforward method of handling a - // dialog I have to pass any code which would execute - // after the dialog is dismissed (e.g. link creation) - // in a function parameter. - // - // Yes this is awkward and I think it sucks, but there's - // no real workaround. Only the image and link code - // create dialogs and require the function pointers. - var fixupInputArea = function(){ - - inputBox.focus(); - - if (chunks) { - state.setChunks(chunks); - } - - state.restore(); - previewRefreshCallback(); - }; - - var noCleanup = button.textOp(chunks, fixupInputArea); - - if(!noCleanup) { - fixupInputArea(); - } - - } - - if (button.execute) { - button.execute(editObj); - } - }; - - var setUndoRedoButtonStates = function(){ - if(undoMgr){ - setupButton(document.getElementById("wmd-undo-button"), undoMgr.canUndo()); - setupButton(document.getElementById("wmd-redo-button"), undoMgr.canRedo()); - } - }; - - var setupButton = function(button, isEnabled) { - - var normalYShift = "0px"; - var disabledYShift = "-20px"; - var highlightYShift = "-40px"; - - if(isEnabled) { - button.style.backgroundPosition = button.XShift + " " + normalYShift; - button.onmouseover = function(){ - this.style.backgroundPosition = this.XShift + " " + highlightYShift; - }; - - button.onmouseout = function(){ - this.style.backgroundPosition = this.XShift + " " + normalYShift; - }; - - // IE tries to select the background image "button" text (it's - // implemented in a list item) so we have to cache the selection - // on mousedown. - if(global.isIE) { - button.onmousedown = function() { - wmd.ieRetardedClick = true; - wmd.ieCachedRange = document.selection.createRange(); - }; - } - - if (!button.isHelp) - { - button.onclick = function() { - if (this.onmouseout) { - this.onmouseout(); - } - doClick(this); - return false; - }; - } - } - else { - button.style.backgroundPosition = button.XShift + " " + disabledYShift; - button.onmouseover = button.onmouseout = button.onclick = function(){}; - } - }; - - var makeSpritedButtonRow = function(){ - var buttonBar = document.getElementById("wmd-button-bar"); - var normalYShift = "0px"; - var disabledYShift = "-20px"; - var highlightYShift = "-40px"; - - var buttonRow = document.createElement("ul"); - buttonRow.id = "wmd-button-row"; - buttonRow = buttonBar.appendChild(buttonRow); - - if (isButtonUsed('bold')){ - var boldButton = document.createElement("li"); - boldButton.className = "wmd-button"; - boldButton.id = "wmd-bold-button"; - boldButton.title = toolbar_strong_label; - boldButton.XShift = "0px"; - boldButton.textOp = command.doBold; - setupButton(boldButton, true); - buttonRow.appendChild(boldButton); - } - - if (isButtonUsed('italic')){ - var italicButton = document.createElement("li"); - italicButton.className = "wmd-button"; - italicButton.id = "wmd-italic-button"; - italicButton.title = toolbar_emphasis_label; - italicButton.XShift = "-20px"; - italicButton.textOp = command.doItalic; - setupButton(italicButton, true); - buttonRow.appendChild(italicButton); - } - - if ( - isButtonUsed('link') || - isButtonUsed('blockquote') || - isButtonUsed('code') || - isButtonUsed('image') || - isButtonUsed('attachment') - ) { - var spacer1 = document.createElement("li"); - spacer1.className = "wmd-spacer"; - spacer1.id = "wmd-spacer1"; - buttonRow.appendChild(spacer1); - } - - if (isButtonUsed('link')){ - var linkButton = document.createElement("li"); - linkButton.className = "wmd-button"; - linkButton.id = "wmd-link-button"; - linkButton.title = toolbar_hyperlink_label; - linkButton.XShift = "-40px"; - linkButton.textOp = function(chunk, postProcessing){ - return command.doLinkOrImage(chunk, postProcessing, 'link'); - }; - setupButton(linkButton, true); - buttonRow.appendChild(linkButton); - } - - if (isButtonUsed('blockquote')){ - var quoteButton = document.createElement("li"); - quoteButton.className = "wmd-button"; - quoteButton.id = "wmd-quote-button"; - quoteButton.title = toolbar_blockquote_label; - quoteButton.XShift = "-60px"; - quoteButton.textOp = command.doBlockquote; - setupButton(quoteButton, true); - buttonRow.appendChild(quoteButton); - } - - if (isButtonUsed('code')){ - var codeButton = document.createElement("li"); - codeButton.className = "wmd-button"; - codeButton.id = "wmd-code-button"; - codeButton.title = toolbar_code_label; - codeButton.XShift = "-80px"; - codeButton.textOp = command.doCode; - setupButton(codeButton, true); - buttonRow.appendChild(codeButton); - } - - if (isButtonUsed('image')){ - var imageButton = document.createElement("li"); - imageButton.className = "wmd-button"; - imageButton.id = "wmd-image-button"; - imageButton.title = toolbar_image_label; - imageButton.XShift = "-100px"; - imageButton.textOp = function(chunk, postProcessing){ - return command.doLinkOrImage(chunk, postProcessing, 'image'); - }; - setupButton(imageButton, true); - buttonRow.appendChild(imageButton); - } - - if (isButtonUsed('attachment')){ - var attachmentButton = document.createElement("li"); - attachmentButton.className = "wmd-button"; - attachmentButton.id = "wmd-attachment-button"; - attachmentButton.title = toolbar_attachment_label; - attachmentButton.XShift = "-120px"; - attachmentButton.textOp = function(chunk, postProcessing){ - return command.doLinkOrImage(chunk, postProcessing, 'file'); - }; - setupButton(attachmentButton, true); - buttonRow.appendChild(attachmentButton); - } - - if ( - isButtonUsed('ol') || - isButtonUsed('ul') || - isButtonUsed('heading') || - isButtonUsed('hr') - ) { - var spacer2 = document.createElement("li"); - spacer2.className = "wmd-spacer"; - spacer2.id = "wmd-spacer2"; - buttonRow.appendChild(spacer2); - } - - if (isButtonUsed('ol')) { - var olistButton = document.createElement("li"); - olistButton.className = "wmd-button"; - olistButton.id = "wmd-olist-button"; - olistButton.title = toolbar_numbered_label; - olistButton.XShift = "-140px"; - olistButton.textOp = function(chunk, postProcessing){ - command.doList(chunk, postProcessing, true); - }; - setupButton(olistButton, true); - buttonRow.appendChild(olistButton); - } - - if (isButtonUsed('ul')) { - var ulistButton = document.createElement("li"); - ulistButton.className = "wmd-button"; - ulistButton.id = "wmd-ulist-button"; - ulistButton.title = toolbar_bulleted_label; - ulistButton.XShift = "-160px"; - ulistButton.textOp = function(chunk, postProcessing){ - command.doList(chunk, postProcessing, false); - }; - setupButton(ulistButton, true); - buttonRow.appendChild(ulistButton); - } - - if (isButtonUsed('heading')) { - var headingButton = document.createElement("li"); - headingButton.className = "wmd-button"; - headingButton.id = "wmd-heading-button"; - headingButton.title = toolbar_heading_label; - headingButton.XShift = "-180px"; - headingButton.textOp = command.doHeading; - setupButton(headingButton, true); - buttonRow.appendChild(headingButton); - } - - if (isButtonUsed('hr')) { - var hrButton = document.createElement("li"); - hrButton.className = "wmd-button"; - hrButton.id = "wmd-hr-button"; - hrButton.title = toolbar_horizontal_label; - hrButton.XShift = "-200px"; - hrButton.textOp = command.doHorizontalRule; - setupButton(hrButton, true); - buttonRow.appendChild(hrButton); - } - - if (isButtonUsed('undo')){ - var spacer3 = document.createElement("li"); - spacer3.className = "wmd-spacer"; - spacer3.id = "wmd-spacer3"; - buttonRow.appendChild(spacer3); - - var undoButton = document.createElement("li"); - undoButton.className = "wmd-button"; - undoButton.id = "wmd-undo-button"; - undoButton.title = toolbar_undo_label; - undoButton.XShift = "-220px"; - undoButton.execute = function(manager){ - manager.undo(); - }; - setupButton(undoButton, true); - buttonRow.appendChild(undoButton); - - var redoButton = document.createElement("li"); - redoButton.className = "wmd-button"; - redoButton.id = "wmd-redo-button"; - redoButton.title = toolbar_redo_label; - if (/win/.test(nav.platform.toLowerCase())) { - redoButton.title = toolbar_redo_label; - } - else { - // mac and other non-Windows platforms - redoButton.title = gettext('redo') + " - Ctrl+Shift+Z"; - } - redoButton.XShift = "-240px"; - redoButton.execute = function(manager){ - manager.redo(); - }; - setupButton(redoButton, true); - buttonRow.appendChild(redoButton); - setUndoRedoButtonStates(); - } - /* - var helpButton = document.createElement("li"); - helpButton.className = "wmd-button"; - helpButton.id = "wmd-help-button"; - helpButton.XShift = "-240px"; - helpButton.isHelp = true; - - var helpAnchor = document.createElement("a"); - helpAnchor.href = helpLink; - helpAnchor.target = helpTarget - helpAnchor.title = helpHoverTitle; - helpButton.appendChild(helpAnchor); - - setupButton(helpButton, true); - buttonRow.appendChild(helpButton); - */ - }; - - var setupEditor = function(){ - - if (/\?noundo/.test(doc.location.href)) { - wmd.nativeUndo = true; - } - - if (!wmd.nativeUndo && isButtonUsed('undo')) { - undoMgr = new wmd.undoManager(function(){ - previewRefreshCallback(); - setUndoRedoButtonStates(); - }); - } - - makeSpritedButtonRow(); - - - var keyEvent = "keydown"; - if (global.isOpera) { - keyEvent = "keypress"; - } - - util.addEvent(inputBox, keyEvent, function(key){ - - // Check to see if we have a button key and, if so execute the callback. - if (key.ctrlKey || key.metaKey) { - - var keyCode = key.charCode || key.keyCode; - var keyCodeStr = String.fromCharCode(keyCode).toLowerCase(); - - // Bugfix for messed up DEL and . - if (keyCode === 46) { - keyCodeStr = ""; - } - if (keyCode === 190) { - keyCodeStr = "."; - } - - switch(keyCodeStr) { - case "b": - doClick(document.getElementById("wmd-bold-button")); - break; - case "i": - doClick(document.getElementById("wmd-italic-button")); - break; - case "l": - doClick(document.getElementById("wmd-link-button")); - break; - case ".": - doClick(document.getElementById("wmd-quote-button")); - break; - case "k": - doClick(document.getElementById("wmd-code-button")); - break; - case "g": - doClick(document.getElementById("wmd-image-button")); - break; - case "o": - doClick(document.getElementById("wmd-olist-button")); - break; - case "u": - doClick(document.getElementById("wmd-ulist-button")); - break; - case "h": - doClick(document.getElementById("wmd-heading-button")); - break; - case "r": - doClick(document.getElementById("wmd-hr-button")); - break; - case "y": - doClick(document.getElementById("wmd-redo-button")); - break; - case "z": - if(key.shiftKey) { - doClick(document.getElementById("wmd-redo-button")); - } - else { - doClick(document.getElementById("wmd-undo-button")); - } - break; - default: - return; - } - - - if (key.preventDefault) { - key.preventDefault(); - } - - if (top.event) { - top.event.returnValue = false; - } - } - }); - - // Auto-indent on shift-enter - util.addEvent(inputBox, "keyup", function(key){ - if (key.shiftKey && !key.ctrlKey && !key.metaKey) { - var keyCode = key.charCode || key.keyCode; - // Character 13 is Enter - if (keyCode === 13) { - fakeButton = {}; - fakeButton.textOp = command.doAutoindent; - doClick(fakeButton); - } - } - }); - - if (inputBox.form) { - var submitCallback = inputBox.form.onsubmit; - inputBox.form.onsubmit = function(){ - convertToHtml(); - if (submitCallback) { - return submitCallback.apply(this, arguments); - } - }; - } - }; - - // Convert the contents of the input textarea to HTML in the output/preview panels. - var convertToHtml = function(){ - - if (wmd.showdown) { - var markdownConverter = new wmd.showdown.converter(); - } - var text = inputBox.value; - - var callback = function(){ - inputBox.value = text; - //value is assigned here - }; - - if (!/markdown/.test(wmd.wmd_env.output.toLowerCase())) { - if (markdownConverter) { - inputBox.value = markdownConverter.makeHtml(text); - //value is assigned here - top.setTimeout(callback, 0); - } - } - return true; - }; - - - this.undo = function(){ - if (undoMgr) { - undoMgr.undo(); - } - }; - - this.redo = function(){ - if (undoMgr) { - undoMgr.redo(); - } - }; - - // This is pretty useless. The setupEditor function contents - // should just be copied here. - var init = function(){ - setupEditor(); - }; - - this.destroy = function(){ - if (undoMgr) { - undoMgr.destroy(); - } - if (div.parentNode) { - div.parentNode.removeChild(div); - } - if (inputBox) { - inputBox.style.marginTop = ""; - } - top.clearInterval(creationHandle); - }; - - init(); - }; - - // The input textarea state/contents. - // This is used to implement undo/redo by the undo manager. - wmd.TextareaState = function(){ - - // Aliases - var stateObj = this; - var inputArea = wmd.panels.input; - - this.init = function() { - - if (!util.isVisible(inputArea)) { - return; - } - - this.setInputAreaSelectionStartEnd(); - this.scrollTop = inputArea.scrollTop; - if (!this.text && inputArea.selectionStart || inputArea.selectionStart === 0) { - this.text = inputArea.value; - } - - }; - - // Sets the selected text in the input box after we've performed an - // operation. - this.setInputAreaSelection = function(){ - - if (!util.isVisible(inputArea)) { - return; - } - - if (inputArea.selectionStart !== undefined && !global.isOpera) { - - inputArea.focus(); - inputArea.selectionStart = stateObj.start; - inputArea.selectionEnd = stateObj.end; - inputArea.scrollTop = stateObj.scrollTop; - } - else if (doc.selection) { - - if (doc.activeElement && doc.activeElement !== inputArea) { - return; - } - - inputArea.focus(); - var range = inputArea.createTextRange(); - range.moveStart("character", -inputArea.value.length); - range.moveEnd("character", -inputArea.value.length); - range.moveEnd("character", stateObj.end); - range.moveStart("character", stateObj.start); - range.select(); - } - }; - - this.setInputAreaSelectionStartEnd = function(){ - - if (inputArea.selectionStart || inputArea.selectionStart === 0) { - - stateObj.start = inputArea.selectionStart; - stateObj.end = inputArea.selectionEnd; - } - else if (doc.selection) { - - stateObj.text = util.fixEolChars(inputArea.value); - - // IE loses the selection in the textarea when buttons are - // clicked. On IE we cache the selection and set a flag - // which we check for here. - var range; - if(wmd.ieRetardedClick && wmd.ieCachedRange) { - range = wmd.ieCachedRange; - wmd.ieRetardedClick = false; - } - else { - range = doc.selection.createRange(); - } - - var fixedRange = util.fixEolChars(range.text); - var marker = "\x07"; - var markedRange = marker + fixedRange + marker; - range.text = markedRange; - var inputText = util.fixEolChars(inputArea.value); - - range.moveStart("character", -markedRange.length); - range.text = fixedRange; - - stateObj.start = inputText.indexOf(marker); - stateObj.end = inputText.lastIndexOf(marker) - marker.length; - - var len = stateObj.text.length - util.fixEolChars(inputArea.value).length; - - if (len) { - range.moveStart("character", -fixedRange.length); - while (len--) { - fixedRange += "\n"; - stateObj.end += 1; - } - range.text = fixedRange; - } - - this.setInputAreaSelection(); - } - }; - - // Restore this state into the input area. - this.restore = function(){ - - if (stateObj.text !== undefined && stateObj.text != inputArea.value) { - inputArea.value = stateObj.text; - //value is assigned here - } - this.setInputAreaSelection(); - inputArea.scrollTop = stateObj.scrollTop; - }; - - // Gets a collection of HTML chunks from the inptut textarea. - this.getChunks = function(){ - - var chunk = new wmd.Chunks(); - - chunk.before = util.fixEolChars(stateObj.text.substring(0, stateObj.start)); - chunk.startTag = ""; - chunk.selection = util.fixEolChars(stateObj.text.substring(stateObj.start, stateObj.end)); - chunk.endTag = ""; - chunk.after = util.fixEolChars(stateObj.text.substring(stateObj.end)); - chunk.scrollTop = stateObj.scrollTop; - - return chunk; - }; - - // Sets the TextareaState properties given a chunk of markdown. - this.setChunks = function(chunk){ - - chunk.before = chunk.before + chunk.startTag; - chunk.after = chunk.endTag + chunk.after; - - if (global.isOpera) { - chunk.before = chunk.before.replace(/\n/g, "\r\n"); - chunk.selection = chunk.selection.replace(/\n/g, "\r\n"); - chunk.after = chunk.after.replace(/\n/g, "\r\n"); - } - - this.start = chunk.before.length; - this.end = chunk.before.length + chunk.selection.length; - this.text = chunk.before + chunk.selection + chunk.after; - this.scrollTop = chunk.scrollTop; - }; - - this.init(); - }; - - // before: contains all the text in the input box BEFORE the selection. - // after: contains all the text in the input box AFTER the selection. - wmd.Chunks = function(){ - }; - - // startRegex: a regular expression to find the start tag - // endRegex: a regular expresssion to find the end tag - wmd.Chunks.prototype.findTags = function(startRegex, endRegex){ - - var chunkObj = this; - var regex; - - if (startRegex) { - - regex = util.extendRegExp(startRegex, "", "$"); - - this.before = this.before.replace(regex, - function(match){ - chunkObj.startTag = chunkObj.startTag + match; - return ""; - }); - - regex = util.extendRegExp(startRegex, "^", ""); - - this.selection = this.selection.replace(regex, - function(match){ - chunkObj.startTag = chunkObj.startTag + match; - return ""; - }); - } - - if (endRegex) { - - regex = util.extendRegExp(endRegex, "", "$"); - - this.selection = this.selection.replace(regex, - function(match){ - chunkObj.endTag = match + chunkObj.endTag; - return ""; - }); - - regex = util.extendRegExp(endRegex, "^", ""); - - this.after = this.after.replace(regex, - function(match){ - chunkObj.endTag = match + chunkObj.endTag; - return ""; - }); - } - }; - - // If remove is false, the whitespace is transferred - // to the before/after regions. - // - // If remove is true, the whitespace disappears. - wmd.Chunks.prototype.trimWhitespace = function(remove){ - - this.selection = this.selection.replace(/^(\s*)/, ""); - - if (!remove) { - this.before += re.$1; - } - - this.selection = this.selection.replace(/(\s*)$/, ""); - - if (!remove) { - this.after = re.$1 + this.after; - } - }; - - - wmd.Chunks.prototype.skipLines = function(nLinesBefore, nLinesAfter, findExtraNewlines){ - - if (nLinesBefore === undefined) { - nLinesBefore = 1; - } - - if (nLinesAfter === undefined) { - nLinesAfter = 1; - } - - nLinesBefore++; - nLinesAfter++; - - var regexText; - var replacementText; - - if (global.isChrome) {//Chrome bug workaround - 'X'.match(/()./); - } - - this.selection = this.selection.replace(/(^\n*)/, ""); - this.startTag = this.startTag + re.$1; - this.selection = this.selection.replace(/(\n*$)/, ""); - this.endTag = this.endTag + re.$1; - this.startTag = this.startTag.replace(/(^\n*)/, ""); - this.before = this.before + re.$1; - this.endTag = this.endTag.replace(/(\n*$)/, ""); - this.after = this.after + re.$1; - - if (this.before) { - - regexText = replacementText = ""; - - while (nLinesBefore--) { - regexText += "\\n?"; - replacementText += "\n"; - } - - if (findExtraNewlines) { - regexText = "\\n*"; - } - this.before = this.before.replace(new re(regexText + "$", ""), replacementText); - } - - if (this.after) { - - regexText = replacementText = ""; - - while (nLinesAfter--) { - regexText += "\\n?"; - replacementText += "\n"; - } - if (findExtraNewlines) { - regexText = "\\n*"; - } - - this.after = this.after.replace(new re(regexText, ""), replacementText); - } - }; - - // The markdown symbols - 4 spaces = code, > = blockquote, etc. - command.prefixes = "(?:\\s{4,}|\\s*>|\\s*-\\s+|\\s*\\d+\\.|=|\\+|-|_|\\*|#|\\s*\\[[^\n]]+\\]:)"; - - // Remove markdown symbols from the chunk selection. - command.unwrap = function(chunk){ - var txt = new re("([^\\n])\\n(?!(\\n|" + command.prefixes + "))", "g"); - chunk.selection = chunk.selection.replace(txt, "$1 $2"); - }; - - command.wrap = function(chunk, len){ - command.unwrap(chunk); - var regex = new re("(.{1," + len + "})( +|$\\n?)", "gm"); - - chunk.selection = chunk.selection.replace(regex, function(line, marked){ - if (new re("^" + command.prefixes, "").test(line)) { - return line; - } - return marked + "\n"; - }); - - chunk.selection = chunk.selection.replace(/\s+$/, ""); - }; - - command.doBold = function(chunk, postProcessing){ - return command.doBorI(chunk, postProcessing, 2, "strong text"); - }; - - command.doItalic = function(chunk, postProcessing){ - return command.doBorI(chunk, postProcessing, 1, "emphasized text"); - }; - - // chunk: The selected region that will be enclosed with */** - // nStars: 1 for italics, 2 for bold - // insertText: If you just click the button without highlighting text, this gets inserted - command.doBorI = function(chunk, postProcessing, nStars, insertText){ - - // Get rid of whitespace and fixup newlines. - chunk.trimWhitespace(); - chunk.selection = chunk.selection.replace(/\n{2,}/g, "\n"); - - // Look for stars before and after. Is the chunk already marked up? - chunk.before.search(/(\**$)/); - var starsBefore = re.$1; - - chunk.after.search(/(^\**)/); - var starsAfter = re.$1; - - var prevStars = Math.min(starsBefore.length, starsAfter.length); - - // Remove stars if we have to since the button acts as a toggle. - if ((prevStars >= nStars) && (prevStars != 2 || nStars != 1)) { - chunk.before = chunk.before.replace(re("[*]{" + nStars + "}$", ""), ""); - chunk.after = chunk.after.replace(re("^[*]{" + nStars + "}", ""), ""); - } - else if (!chunk.selection && starsAfter) { - // It's not really clear why this code is necessary. It just moves - // some arbitrary stuff around. - chunk.after = chunk.after.replace(/^([*_]*)/, ""); - chunk.before = chunk.before.replace(/(\s?)$/, ""); - var whitespace = re.$1; - chunk.before = chunk.before + starsAfter + whitespace; - } - else { - - // In most cases, if you don't have any selected text and click the button - // you'll get a selected, marked up region with the default text inserted. - if (!chunk.selection && !starsAfter) { - chunk.selection = insertText; - } - - // Add the true markup. - var markup = nStars <= 1 ? "*" : "**"; // shouldn't the test be = ? - chunk.before = chunk.before + markup; - chunk.after = markup + chunk.after; - } - - return; - }; - - command.stripLinkDefs = function(text, defsToAdd){ - - text = text.replace(/^[ ]{0,3}\[(\d+)\]:[ \t]*\n?[ \t]*?[ \t]*\n?[ \t]*(?:(\n*)["(](.+?)[")][ \t]*)?(?:\n+|$)/gm, - function(totalMatch, id, link, newlines, title){ - defsToAdd[id] = totalMatch.replace(/\s*$/, ""); - if (newlines) { - // Strip the title and return that separately. - defsToAdd[id] = totalMatch.replace(/["(](.+?)[")]$/, ""); - return newlines + title; - } - return ""; - }); - - return text; - }; - - command.addLinkDef = function(chunk, linkDef){ - - var refNumber = 0; // The current reference number - var defsToAdd = {}; // - // Start with a clean slate by removing all previous link definitions. - chunk.before = command.stripLinkDefs(chunk.before, defsToAdd); - chunk.selection = command.stripLinkDefs(chunk.selection, defsToAdd); - chunk.after = command.stripLinkDefs(chunk.after, defsToAdd); - - var defs = ""; - var regex = /(\[(?:\[[^\]]*\]|[^\[\]])*\][ ]?(?:\n[ ]*)?\[)(\d+)(\])/g; - - var addDefNumber = function(def){ - refNumber++; - def = def.replace(/^[ ]{0,3}\[(\d+)\]:/, " [" + refNumber + "]:"); - defs += "\n" + def; - }; - - var getLink = function(wholeMatch, link, id, end){ - - if (defsToAdd[id]) { - addDefNumber(defsToAdd[id]); - return link + refNumber + end; - - } - return wholeMatch; - }; - - chunk.before = chunk.before.replace(regex, getLink); - - if (linkDef) { - addDefNumber(linkDef); - } - else { - chunk.selection = chunk.selection.replace(regex, getLink); - } - - var refOut = refNumber; - - chunk.after = chunk.after.replace(regex, getLink); - - if (chunk.after) { - chunk.after = chunk.after.replace(/\n*$/, ""); - } - if (!chunk.after) { - chunk.selection = chunk.selection.replace(/\n*$/, ""); - } - - chunk.after += "\n\n" + defs; - - return refOut; - }; - - command.doLinkOrImage = function(chunk, postProcessing, itemType){ - - chunk.trimWhitespace(); - chunk.findTags(/\s*!?\[/, /\][ ]?(?:\n[ ]*)?(\[.*?\])?/); - - if (chunk.endTag.length > 1) { - - chunk.startTag = chunk.startTag.replace(/!?\[/, ""); - chunk.endTag = ""; - command.addLinkDef(chunk, null); - - } - else { - - if (/\n\n/.test(chunk.selection)) { - command.addLinkDef(chunk, null); - return; - } - - // The function to be executed when you enter a link and press OK or Cancel. - // Marks up the link and adds the ref. - var makeLinkMarkdown = function(link){ - - if (link !== null) { - - chunk.startTag = chunk.endTag = ""; - //var linkDef = " [999]: " + link; - - //var num = command.addLinkDef(chunk, linkDef); - chunk.startTag = (itemType == 'image') ? "![" : "["; - chunk.endTag = "](" + link + ")"; - - if (!chunk.selection) { - if (itemType == 'image') { - chunk.selection = gettext("image description"); - } - else if (itemType == 'file'){ - chunk.selection = localUploadFileName || gettext("file name"); - localUploadFileName = null; - } - else { - chunk.selection = gettext("link text"); - } - } - } - else { - if (itemType == 'image' || itemType == 'file'){ - return; - } - } - postProcessing(); - }; - - if (itemType == 'image') { - // add forth param to identify image window - util.prompt(imageDialogText, imageDefaultText, makeLinkMarkdown, 'image'); - } - else if (itemType == 'file'){ - util.prompt(fileDialogText, '', makeLinkMarkdown, 'file'); - } - else { - util.prompt(linkDialogText, linkDefaultText, makeLinkMarkdown, 'link'); - } - return true; - } -}; - - util.makeAPI = function(){ - wmd.wmd = {}; - wmd.wmd.editor = wmd.editor; - wmd.wmd.previewManager = wmd.previewManager; - }; - - util.startEditor = function(start_now, buttons){ - - if (wmd.wmd_env.autostart === false) { - util.makeAPI(); - return; - } - - if (buttons){ - wmd.wmd_env.buttons = buttons; - } - - var edit; // The editor (buttons + input + outputs) - the main object. - var previewMgr; // The preview manager. - - // Fired after the page has fully loaded. - var loadListener = function(){ - - wmd.panels = new wmd.PanelCollection(); - - previewMgr = new wmd.previewManager(); - var previewRefreshCallback = previewMgr.refresh; - - edit = new wmd.editor(previewRefreshCallback); - - previewMgr.refresh(true); - - }; - - if (start_now){ - loadListener(); - } else { - util.addEvent(top, "load", loadListener); - } - }; - - wmd.previewManager = function(){ - - var managerObj = this; - var converter; - var poller; - var timeout; - var elapsedTime; - var oldInputText; - var htmlOut; - var maxDelay = 3000; - var startType = "delayed"; // The other legal value is "manual" - - // Adds event listeners to elements and creates the input poller. - var setupEvents = function(inputElem, listener){ - - util.addEvent(inputElem, "input", listener); - inputElem.onpaste = listener; - inputElem.ondrop = listener; - - util.addEvent(inputElem, "keypress", listener); - util.addEvent(inputElem, "keydown", listener); - // previewPollInterval is set at the top of this file. - poller = new wmd.inputPoller(listener, previewPollInterval); - }; - - var getDocScrollTop = function(){ - - var result = 0; - - if (top.innerHeight) { - result = top.pageYOffset; - } - else - if (doc.documentElement && doc.documentElement.scrollTop) { - result = doc.documentElement.scrollTop; - } - else - if (doc.body) { - result = doc.body.scrollTop; - } - - return result; - }; - - var makePreviewHtml = function(){ - - // If there are no registered preview and output panels - // there is nothing to do. - if (!wmd.panels.preview && !wmd.panels.output) { - return; - } - - var text = wmd.panels.input.value; - if (text && text == oldInputText) { - return; // Input text hasn't changed. - } - else { - oldInputText = text; - } - - var prevTime = new Date().getTime(); - - if (!converter && wmd.showdown) { - converter = new wmd.showdown.converter(); - } - - if (converter) { - text = converter.makeHtml(text); - } - - // Calculate the processing time of the HTML creation. - // It's used as the delay time in the event listener. - var currTime = new Date().getTime(); - elapsedTime = currTime - prevTime; - - pushPreviewHtml(text); - htmlOut = text; - }; - - // setTimeout is already used. Used as an event listener. - var applyTimeout = function(){ - - if (timeout) { - top.clearTimeout(timeout); - timeout = undefined; - } - - if (startType !== "manual") { - - var delay = 0; - - if (startType === "delayed") { - delay = elapsedTime; - } - - if (delay > maxDelay) { - delay = maxDelay; - } - timeout = top.setTimeout(makePreviewHtml, delay); - } - }; - - var getScaleFactor = function(panel){ - if (panel.scrollHeight <= panel.clientHeight) { - return 1; - } - return panel.scrollTop / (panel.scrollHeight - panel.clientHeight); - }; - - var setPanelScrollTops = function(){ - - if (wmd.panels.preview) { - wmd.panels.preview.scrollTop = (wmd.panels.preview.scrollHeight - wmd.panels.preview.clientHeight) * getScaleFactor(wmd.panels.preview); - } - - if (wmd.panels.output) { - wmd.panels.output.scrollTop = (wmd.panels.output.scrollHeight - wmd.panels.output.clientHeight) * getScaleFactor(wmd.panels.output); - } - }; - - this.refresh = function(requiresRefresh){ - - if (requiresRefresh) { - oldInputText = ""; - makePreviewHtml(); - } - else { - applyTimeout(); - } - }; - - this.processingTime = function(){ - return elapsedTime; - }; - - // The output HTML - this.output = function(){ - return htmlOut; - }; - - // The mode can be "manual" or "delayed" - this.setUpdateMode = function(mode){ - startType = mode; - managerObj.refresh(); - }; - - var isFirstTimeFilled = true; - - var pushPreviewHtml = function(text){ - - var emptyTop = position.getTop(wmd.panels.input) - getDocScrollTop(); - - // Send the encoded HTML to the output textarea/div. - if (wmd.panels.output) { - // The value property is only defined if the output is a textarea. - if (wmd.panels.output.value !== undefined) { - wmd.panels.output.value = text; - //value is assigned here - wmd.panels.output.readOnly = true; - } - // Otherwise we are just replacing the text in a div. - // Send the HTML wrapped in
        
        -				else {
        -					var newText = text.replace(/&/g, "&");
        -					newText = newText.replace(/
        "; - } - } - - if (wmd.panels.preview) { - wmd.panels.preview.innerHTML = text; - } - - setPanelScrollTops(); - - if (isFirstTimeFilled) { - isFirstTimeFilled = false; - return; - } - - var fullTop = position.getTop(wmd.panels.input) - getDocScrollTop(); - - if (global.isIE) { - top.setTimeout(function(){ - top.scrollBy(0, fullTop - emptyTop); - }, 0); - } - else { - top.scrollBy(0, fullTop - emptyTop); - } - }; - - var init = function(){ - - setupEvents(wmd.panels.input, applyTimeout); - makePreviewHtml(); - - if (wmd.panels.preview) { - wmd.panels.preview.scrollTop = 0; - } - if (wmd.panels.output) { - wmd.panels.output.scrollTop = 0; - } - }; - - this.destroy = function(){ - if (poller) { - poller.destroy(); - } - }; - - init(); - }; - - // When making a list, hitting shift-enter will put your cursor on the next line - // at the current indent level. - command.doAutoindent = function(chunk, postProcessing){ - - chunk.before = chunk.before.replace(/(\n|^)[ ]{0,3}([*+-]|\d+[.])[ \t]*\n$/, "\n\n"); - chunk.before = chunk.before.replace(/(\n|^)[ ]{0,3}>[ \t]*\n$/, "\n\n"); - chunk.before = chunk.before.replace(/(\n|^)[ \t]+\n$/, "\n\n"); - - if(/(\n|^)[ ]{0,3}([*+-]|\d+[.])[ \t]+.*\n$/.test(chunk.before)){ - if(command.doList){ - command.doList(chunk); - } - } - if(/(\n|^)[ ]{0,3}>[ \t]+.*\n$/.test(chunk.before)){ - if(command.doBlockquote){ - command.doBlockquote(chunk); - } - } - if(/(\n|^)(\t|[ ]{4,}).*\n$/.test(chunk.before)){ - if(command.doCode){ - command.doCode(chunk); - } - } - }; - - command.doBlockquote = function(chunk, postProcessing){ - - chunk.selection = chunk.selection.replace(/^(\n*)([^\r]+?)(\n*)$/, - function(totalMatch, newlinesBefore, text, newlinesAfter){ - chunk.before += newlinesBefore; - chunk.after = newlinesAfter + chunk.after; - return text; - }); - - chunk.before = chunk.before.replace(/(>[ \t]*)$/, - function(totalMatch, blankLine){ - chunk.selection = blankLine + chunk.selection; - return ""; - }); - - chunk.selection = chunk.selection.replace(/^(\s|>)+$/ ,""); - chunk.selection = chunk.selection || "Blockquote"; - - if(chunk.before){ - chunk.before = chunk.before.replace(/\n?$/,"\n"); - } - if(chunk.after){ - chunk.after = chunk.after.replace(/^\n?/,"\n"); - } - - chunk.before = chunk.before.replace(/(((\n|^)(\n[ \t]*)*>(.+\n)*.*)+(\n[ \t]*)*$)/, - function(totalMatch){ - chunk.startTag = totalMatch; - return ""; - }); - - chunk.after = chunk.after.replace(/^(((\n|^)(\n[ \t]*)*>(.+\n)*.*)+(\n[ \t]*)*)/, - function(totalMatch){ - chunk.endTag = totalMatch; - return ""; - }); - - var replaceBlanksInTags = function(useBracket){ - - var replacement = useBracket ? "> " : ""; - - if(chunk.startTag){ - chunk.startTag = chunk.startTag.replace(/\n((>|\s)*)\n$/, - function(totalMatch, markdown){ - return "\n" + markdown.replace(/^[ ]{0,3}>?[ \t]*$/gm, replacement) + "\n"; - }); - } - if(chunk.endTag){ - chunk.endTag = chunk.endTag.replace(/^\n((>|\s)*)\n/, - function(totalMatch, markdown){ - return "\n" + markdown.replace(/^[ ]{0,3}>?[ \t]*$/gm, replacement) + "\n"; - }); - } - }; - - if(/^(?![ ]{0,3}>)/m.test(chunk.selection)){ - command.wrap(chunk, wmd.wmd_env.lineLength - 2); - chunk.selection = chunk.selection.replace(/^/gm, "> "); - replaceBlanksInTags(true); - chunk.skipLines(); - } - else{ - chunk.selection = chunk.selection.replace(/^[ ]{0,3}> ?/gm, ""); - command.unwrap(chunk); - replaceBlanksInTags(false); - - if(!/^(\n|^)[ ]{0,3}>/.test(chunk.selection) && chunk.startTag){ - chunk.startTag = chunk.startTag.replace(/\n{0,2}$/, "\n\n"); - } - - if(!/(\n|^)[ ]{0,3}>.*$/.test(chunk.selection) && chunk.endTag){ - chunk.endTag=chunk.endTag.replace(/^\n{0,2}/, "\n\n"); - } - } - - if(!/\n/.test(chunk.selection)){ - chunk.selection = chunk.selection.replace(/^(> *)/, - function(wholeMatch, blanks){ - chunk.startTag += blanks; - return ""; - }); - } - }; - - command.doCode = function(chunk, postProcessing){ - - var hasTextBefore = /\S[ ]*$/.test(chunk.before); - var hasTextAfter = /^[ ]*\S/.test(chunk.after); - - // Use 'four space' markdown if the selection is on its own - // line or is multiline. - if((!hasTextAfter && !hasTextBefore) || /\n/.test(chunk.selection)){ - - chunk.before = chunk.before.replace(/[ ]{4}$/, - function(totalMatch){ - chunk.selection = totalMatch + chunk.selection; - return ""; - }); - - var nLinesBack = 1; - var nLinesForward = 1; - - if(/\n(\t|[ ]{4,}).*\n$/.test(chunk.before)){ - nLinesBack = 0; - } - if(/^\n(\t|[ ]{4,})/.test(chunk.after)){ - nLinesForward = 0; - } - - chunk.skipLines(nLinesBack, nLinesForward); - - if(!chunk.selection){ - chunk.startTag = " "; - chunk.selection = "enter code here"; - } - else { - if(/^[ ]{0,3}\S/m.test(chunk.selection)){ - chunk.selection = chunk.selection.replace(/^/gm, " "); - } - else{ - chunk.selection = chunk.selection.replace(/^[ ]{4}/gm, ""); - } - } - } - else{ - // Use backticks (`) to delimit the code block. - - chunk.trimWhitespace(); - chunk.findTags(/`/, /`/); - - if(!chunk.startTag && !chunk.endTag){ - chunk.startTag = chunk.endTag="`"; - if(!chunk.selection){ - chunk.selection = "enter code here"; - } - } - else if(chunk.endTag && !chunk.startTag){ - chunk.before += chunk.endTag; - chunk.endTag = ""; - } - else{ - chunk.startTag = chunk.endTag=""; - } - } - }; - - command.doList = function(chunk, postProcessing, isNumberedList){ - - // These are identical except at the very beginning and end. - // Should probably use the regex extension function to make this clearer. - var previousItemsRegex = /(\n|^)(([ ]{0,3}([*+-]|\d+[.])[ \t]+.*)(\n.+|\n{2,}([*+-].*|\d+[.])[ \t]+.*|\n{2,}[ \t]+\S.*)*)\n*$/; - var nextItemsRegex = /^\n*(([ ]{0,3}([*+-]|\d+[.])[ \t]+.*)(\n.+|\n{2,}([*+-].*|\d+[.])[ \t]+.*|\n{2,}[ \t]+\S.*)*)\n*/; - - // The default bullet is a dash but others are possible. - // This has nothing to do with the particular HTML bullet, - // it's just a markdown bullet. - var bullet = "-"; - - // The number in a numbered list. - var num = 1; - - // Get the item prefix - e.g. " 1. " for a numbered list, " - " for a bulleted list. - var getItemPrefix = function(){ - var prefix; - if(isNumberedList){ - prefix = " " + num + ". "; - num++; - } - else{ - prefix = " " + bullet + " "; - } - return prefix; - }; - - // Fixes the prefixes of the other list items. - var getPrefixedItem = function(itemText){ - - // The numbering flag is unset when called by autoindent. - if(isNumberedList === undefined){ - isNumberedList = /^\s*\d/.test(itemText); - } - - // Renumber/bullet the list element. - itemText = itemText.replace(/^[ ]{0,3}([*+-]|\d+[.])\s/gm, - function( _ ){ - return getItemPrefix(); - }); - - return itemText; - }; - - chunk.findTags(/(\n|^)*[ ]{0,3}([*+-]|\d+[.])\s+/, null); - - if(chunk.before && !/\n$/.test(chunk.before) && !/^\n/.test(chunk.startTag)){ - chunk.before += chunk.startTag; - chunk.startTag = ""; - } - - if(chunk.startTag){ - - var hasDigits = /\d+[.]/.test(chunk.startTag); - chunk.startTag = ""; - chunk.selection = chunk.selection.replace(/\n[ ]{4}/g, "\n"); - command.unwrap(chunk); - chunk.skipLines(); - - if(hasDigits){ - // Have to renumber the bullet points if this is a numbered list. - chunk.after = chunk.after.replace(nextItemsRegex, getPrefixedItem); - } - if(isNumberedList == hasDigits){ - return; - } - } - - var nLinesUp = 1; - - chunk.before = chunk.before.replace(previousItemsRegex, - function(itemText){ - if(/^\s*([*+-])/.test(itemText)){ - bullet = re.$1; - } - nLinesUp = /[^\n]\n\n[^\n]/.test(itemText) ? 1 : 0; - return getPrefixedItem(itemText); - }); - - if(!chunk.selection){ - chunk.selection = "List item"; - } - - var prefix = getItemPrefix(); - - var nLinesDown = 1; - - chunk.after = chunk.after.replace(nextItemsRegex, - function(itemText){ - nLinesDown = /[^\n]\n\n[^\n]/.test(itemText) ? 1 : 0; - return getPrefixedItem(itemText); - }); - - chunk.trimWhitespace(true); - chunk.skipLines(nLinesUp, nLinesDown, true); - chunk.startTag = prefix; - var spaces = prefix.replace(/./g, " "); - command.wrap(chunk, wmd.wmd_env.lineLength - spaces.length); - chunk.selection = chunk.selection.replace(/\n/g, "\n" + spaces); - - }; - - command.doHeading = function(chunk, postProcessing){ - - // Remove leading/trailing whitespace and reduce internal spaces to single spaces. - chunk.selection = chunk.selection.replace(/\s+/g, " "); - chunk.selection = chunk.selection.replace(/(^\s+|\s+$)/g, ""); - - // If we clicked the button with no selected text, we just - // make a level 2 hash header around some default text. - if(!chunk.selection){ - chunk.startTag = "## "; - chunk.selection = "Heading"; - chunk.endTag = " ##"; - return; - } - - var headerLevel = 0; // The existing header level of the selected text. - - // Remove any existing hash heading markdown and save the header level. - chunk.findTags(/#+[ ]*/, /[ ]*#+/); - if(/#+/.test(chunk.startTag)){ - headerLevel = re.lastMatch.length; - } - chunk.startTag = chunk.endTag = ""; - - // Try to get the current header level by looking for - and = in the line - // below the selection. - chunk.findTags(null, /\s?(-+|=+)/); - if(/=+/.test(chunk.endTag)){ - headerLevel = 1; - } - if(/-+/.test(chunk.endTag)){ - headerLevel = 2; - } - - // Skip to the next line so we can create the header markdown. - chunk.startTag = chunk.endTag = ""; - chunk.skipLines(1, 1); - - // We make a level 2 header if there is no current header. - // If there is a header level, we substract one from the header level. - // If it's already a level 1 header, it's removed. - var headerLevelToCreate = headerLevel == 0 ? 2 : headerLevel - 1; - - if(headerLevelToCreate > 0){ - - // The button only creates level 1 and 2 underline headers. - // Why not have it iterate over hash header levels? Wouldn't that be easier and cleaner? - var headerChar = headerLevelToCreate >= 2 ? "-" : "="; - var len = chunk.selection.length; - if(len > wmd.wmd_env.lineLength){ - len = wmd.wmd_env.lineLength; - } - chunk.endTag = "\n"; - while(len--){ - chunk.endTag += headerChar; - } - } - }; - - command.doHorizontalRule = function(chunk, postProcessing){ - chunk.startTag = "----------\n"; - chunk.selection = ""; - chunk.skipLines(2, 1, true); - } -}; - - -Attacklab.wmd_env = {}; -Attacklab.account_options = {}; -Attacklab.wmd_defaults = {version:1, output:"Markdown", lineLength:40, delayLoad:false}; - -if(!Attacklab.wmd) -{ - Attacklab.wmd = function() - { - Attacklab.loadEnv = function() - { - var mergeEnv = function(env) - { - if(!env) - { - return; - } - - for(var key in env) - { - Attacklab.wmd_env[key] = env[key]; - } - }; - - mergeEnv(Attacklab.wmd_defaults); - mergeEnv(Attacklab.account_options); - mergeEnv(top["wmd_options"]); - Attacklab.full = true; - - var defaultButtons = "bold italic link blockquote code image attachment ol ul heading hr"; - Attacklab.wmd_env.buttons = Attacklab.wmd_env.buttons || defaultButtons; - }; - Attacklab.loadEnv(); - - }; - - Attacklab.wmd(); - Attacklab.wmdBase(); - Attacklab.Util.startEditor(); -}; - diff --git a/askbot/skins/common/media/style/auth.css b/askbot/skins/common/media/style/auth.css deleted file mode 100644 index 33702758..00000000 --- a/askbot/skins/common/media/style/auth.css +++ /dev/null @@ -1,48 +0,0 @@ -#bigicon_providers, #smallicon_providers { - display: block; - padding: 0px; - width:600px; - margin:0px 0px 5px 0px; -} - -.provider_logo { - display: inline-block; - padding: 4px; - border: 1px solid #DDD; - text-align: center; - vertical-align: middle; -} - -.provider_logo.big { - height: 40px; - width: 90px; -} - -.provider_logo.small { - height: 32px; - width: 32px; -} - -.provider_logo.selected { - outline: 2px solid #FFF8C6; -} - -.provider_logo .provider_url { - display: none; -} - -.signin_form input[type="text"], .signin_form input[type="password"], .signin_form input[type="submit"] { - height: 28px; - line-height: 22px; - font-size: 140%; - border: 1px solid #999; -} - -.signin_form .icon_input { - padding-left: 20px; -} - -.or_label { - margin-top: 20px; - margin-bottom: 10px; -} \ No newline at end of file diff --git a/askbot/skins/common/media/style/jquery.autocomplete.css b/askbot/skins/common/media/style/jquery.autocomplete.css deleted file mode 100644 index b3d7b759..00000000 --- a/askbot/skins/common/media/style/jquery.autocomplete.css +++ /dev/null @@ -1,37 +0,0 @@ -.acInput { - width: 200px; -} -.acResults { - padding: 0px; - border: 1px solid WindowFrame; - background-color: Window; - overflow: hidden; -} - -.acResults ul { - width: 100%; - list-style-position: outside; - list-style: none; - padding: 0; - margin: 0; -} - -.acResults li { - margin: 0px; - padding: 2px 5px; - cursor: pointer; - display: block; - width: 100%; - font: menu; - font-size: 12px; - overflow: hidden; -} - -.acLoading { - background : url('../images/indicator.gif') right center no-repeat; -} - -.acSelect { - background-color: Highlight; - color: HighlightText; -} diff --git a/askbot/skins/common/media/style/lib_style.less b/askbot/skins/common/media/style/lib_style.less deleted file mode 100644 index d1424137..00000000 --- a/askbot/skins/common/media/style/lib_style.less +++ /dev/null @@ -1,38 +0,0 @@ -/* General Predifined classes, read more in lesscss.org */ - -/* Variables for Colors*/ - -@header-color:#16160f; - -@link:#1b79bd; -@question-link:#464646; -@button-label:#4a757f; - -/* Receive exactly positions for background Sprite */ - -.sprites(@hor,@vert,@back:url(../images/sprites.png)){ - background:@hor @vert @back; -} - - -/* CSS3 Elements */ - -.box-shadow (@hor: 0px, @vert: 0px, @blur: 5px, @shadow: #929292){ - -webkit-box-shadow: @arguments; - -moz-box-shadow: @arguments; - box-shadow: @arguments; -} - -.text-shadow(@hor: 0px, @vert: 0px, @blur: 5px, @shadow: #929292){ - text-shadow: @arguments; - -moz-text-shadow: @arguments; - -webkit-text-shadow: @arguments; -} - -.rounded-corners(@radio: 5px){ - border-radius: @radio; - -ms-border-radius: @radio; - -moz-border-radius: @radio; - -webkit-border-radius: @radio; - -khtml-border-radius: @radio; -} diff --git a/askbot/skins/common/media/style/openid.css b/askbot/skins/common/media/style/openid.css deleted file mode 100644 index 0d201df2..00000000 --- a/askbot/skins/common/media/style/openid.css +++ /dev/null @@ -1,45 +0,0 @@ -#openid_form { - width: 470px; -} - #openid_form legend { - font-weight: bold; - } -#openid_choice { - display: none; -} -#openid_input_area { - clear: both; - padding: 10px; -} -#openid_btns, #openid_btns br { - clear: both; -} - #openid_highlight { - padding: 3px; - background-color: #FFFCC9; - float: left; - } - .openid_large_btn { - width: 100px; - height: 60px; - border: 1px solid #DDD; - margin: 3px; - float: left; - } - .openid_small_btn { - width: 24px; - height: 24px; - border: 1px solid #DDD; - margin: 3px; - float: left; - } - a.openid_large_btn:focus { - outline: none; - } - a.openid_large_btn:focus - { - -moz-outline-style: none; - } - .openid_selected { - border: 4px solid #DDD; - } diff --git a/askbot/skins/common/media/style/prettify.css b/askbot/skins/common/media/style/prettify.css deleted file mode 100644 index 10a37577..00000000 --- a/askbot/skins/common/media/style/prettify.css +++ /dev/null @@ -1,27 +0,0 @@ -/* Pretty printing styles. Used with prettify.js. */ - -.str { color: #080; } -.kwd { color: #008; } -.com { color: #800; } -.typ { color: #606; } -.lit { color: #066; } -.pun { color: #660; } -.pln { color: #000; } -.tag { color: #008; } -.atn { color: #606; } -.atv { color: #080; } -.dec { color: #606; } -pre.prettyprint { padding: 3px; border: 0px solid #888; } - -@media print { - .str { color: #060; } - .kwd { color: #006; font-weight: bold; } - .com { color: #600; font-style: italic; } - .typ { color: #404; font-weight: bold; } - .lit { color: #044; } - .pun { color: #440; } - .pln { color: #000; } - .tag { color: #006; font-weight: bold; } - .atn { color: #404; } - .atv { color: #060; } -} diff --git a/askbot/skins/common/media/style/style.css b/askbot/skins/common/media/style/style.css deleted file mode 100644 index 82a812d4..00000000 --- a/askbot/skins/common/media/style/style.css +++ /dev/null @@ -1,2616 +0,0 @@ -@import url(jquery.autocomplete.css); -@import "lib_style.less"; /* Library of predifined less functions styles */ - -/* ----- General HTML Styles----- */ - -body { - background: #FFF; - font-size: 14px; - line-height: 150%; - margin: 0; - padding: 0; - color: #000; - font-family: 'Yanone Kaffeesatz', sans-serif; -} - -div { - margin: 0 auto; - padding: 0; -} - -h1, h2, h3, h4, h5, h6, ul, li, dl, dt, dd, form, img, p { - margin: 0; - padding: 0; - border: none; -} - -label { - vertical-align: middle; -} - -hr { - border: none; - border-top: 1px dashed #ccccce; -} - -input, select { - vertical-align: middle; - font-family: Trebuchet MS, "segoe ui", Helvetica, Tahoma, Verdana, MingLiu, PMingLiu, Arial, sans-serif; -} - -p { - font-size: 14px; - line-height: 140%; - margin-bottom: 6px; - padding-left: 5px; -} - -a { - color:@link; - text-decoration: none; - cursor: pointer; -} - -h2 { - font-size: 140%; - padding: 3px 0 3px 5px; -} - -h3 { - font-size: 120%; - padding: 3px 0 3px 5px; -} - -ul { - list-style: disc; - margin-left: 20px; - padding-left: 0px; - margin-bottom: 1em; -} - -ol { - list-style: decimal; - margin-left: 30px; - margin-bottom: 1em; - padding-left: 0px; -} - -td ul { - vertical-align: middle; -} - -li input { - margin: 3px 3px 4px 3px; -} - -pre { - font-family: Consolas, Monaco, Liberation Mono, Lucida Console, Monospace; - font-size: 100%; - margin-bottom: 10px; - /*overflow: auto;*/ - background-color: #F5F5F5; - padding-left: 5px; - padding-top: 5px; - /*width: 671px;*/ - padding-bottom: 20px ! ie7; -} - -code { - font-family: Consolas, Monaco, Liberation Mono, Lucida Console, Monospace; - font-size: 100%; - -} - -blockquote { - margin-bottom: 10px; - margin-right: 15px; - padding: 10px 0px 1px 10px; - background-color: #F5F5F5; -} - -/* http://pathfindersoftware.com/2007/09/developers-note-2/ */ -* html .clearfix, -* html .paginator { - height: 1; - overflow: visible; -} -+ html .clearfix, -+ html .paginator { - min-height: 1%; -} -.clearfix:after, -.paginator:after { - clear: both; - content:"."; - display:block; - height: 0; - visibility: hidden; -} - -.badges a { - color: #763333; - text-decoration: underline; -} - -a:hover { - text-decoration: underline; -} - -.badge-context-toggle.active { - cursor: pointer; - text-decoration: underline; -} - -h1 { - font-size: 160%; - padding: 10px 0 5px 5px; -} - -/* ----- Custom positions ----- */ - -.left{float:left} -.right{float:right} -.clean{clear:both} - - -/* ----- Notify message bar ----- */ - -.notify { - position: fixed; - top: 0px; - left: 0px; - width: 100%; - z-index: 100; - padding: 0; - text-align: center; - background-color: #f5dd69; - border-top:#fff 1px solid; - - p { - margin-top: 6px; - margin-bottom: 6px; - font-size: 16px; - color:#424242 - } -} - -#close-notify { - position: absolute; - right: 5px; - top: 7px; - color: #735005; - text-decoration: none; - line-height: 18px; - .sprites(-6px,-5px); - cursor: pointer; - width:20px; - height:20px; -} - -#close-notify:hover { - .sprites(-26px,-5px); -} - -/* ----- Header ----- */ - -#header { - margin-top: 0px; - background: @header-color; -} - -.content-wrapper {/* wrapper positioning class */ - width: 960px; - margin: auto; - position:relative; -} - -#logo img{ - padding: 5px 0px 5px 0px; -} - -#user-tools-nav { - height: 20px; - position:absolute; - bottom: 0; - right:0px; - padding-bottom:5px; - - a { - height: 35px; - text-align: right; - margin-left: 20px; - text-decoration: underline; - color:#d0e296; - font-size:16px; - } - - a:first-child { - margin-left: 0; - } - - a#ab-responses { - margin-left: 3px; - } - - .user-info,.user-micro-info{ - color:#b5b593; - } - - a img { - vertical-align:middle; - margin-bottom:2px; - } - - .user-info a { - margin: 0; - text-decoration: none; - } -} - -#meta-nav { - float:right; - - a { - color: #e2e2ae; - padding: 0px 0px 0px 35px; - height: 25px; - line-height: 30px; - margin:5px 0px 0px 10px; - font-size: 18px; - font-weight: 100; - text-decoration: none; - display: block; - float: left; - } - - a:hover { - text-decoration: underline; - } - - a.on { - font-weight:bold; - color: #FFF; - text-decoration: none; - } - - a.special { - font-size: 18px; - color: #B02B2C; - font-weight: bold; - text-decoration: none; - } - - a.special:hover { - text-decoration: underline; - } - - #nav_tags{ - .sprites(-50px,-5px) - } - - #nav_users{ - .sprites(-125px,-5px) - } - - #nav_badges{ - .sprites(-210px,-5px) - } -} - -#secundary-header{ - height:55px; - background:#e9e9e1; - border-bottom:#d3d3c2 1px solid; - margin-bottom:10px; - - #home-button{ - border-right:#afaf9e 1px solid; - .sprites(-6px,-36px); - height:55px; - width:43px; - display:block; - float:left; - } - - #home-button:hover{ - .sprites(-6px-45,-36px); - } - - #scope-wrapper{ - width:688px; - float:left; - - a{ - display:block; - float:left; - } - - .scope-selector{ - font-size:21px; - color:#5a5a4b; - height:55px; - line-height:55px; - margin-left:24px - } - .on{ - background:url(../images/scopearrow.png) no-repeat center bottom; - } - } -} - -#searchBar { - display:inline-block; - background-color: #fff; - width:412px; - border: 1px solid #c9c9b5; - float:right; - height:42px; - margin:6px 0px 0px 15px; - - .searchInput, .searchInputCancelable { - font-size: 18px; - height: 40px; - background:#FFF; - border:0px; - color:#c2c2c2; - padding-left:10px; - font-family: 'Yanone Kaffeesatz', sans-serif; - } - - .searchInput, .searchInputCancelable { - width: 352px; - } - - .searchInputCancelable { - width: 317px; - } - - .searchBtn { - font-size: 10px; - color: #666; - background-color: #eee; - height: 42px; - border:#FFF 1px solid; - line-height: 22px; - text-align: center; - float:right; - margin: 0px; - width:48px; - .sprites(-98px,-36px); - cursor:pointer; - } - - .searchBtn:hover { - .sprites(-98px-48,-36px); - } - - .cancelSearchBtn { - font-size: 30px; - color: #ce8888; - background:#fff; - height: 42px; - border:0px; - border-left:#deded0 1px solid; - text-align: center; - width: 35px; - cursor:pointer; - } - - .cancelSearchBtn:hover { - color: #d84040; - } -} - -#ask-button{ - background: url(../images/bigbutton.png) repeat-x bottom; - line-height:44px; - text-align:center; - width:200px; - height:42px; - font-size:23px; - color:@button-label; - margin-top:7px; - float:right; - text-transform:uppercase; - .rounded-corners(5px); - .box-shadow(1px, 1px, 2px, #636363) -} - -#ask-button:hover{ - text-decoration:none; - background: url(../images/bigbutton.png) repeat-x top; - .text-shadow(0px, 1px, 0px, #c6d9dd) -} - -/* ----- Content layout ----- */ - -#ContentLeft { - width: 730px; - float: left; - position: relative; -} - -#ContentRight { - width: 200px; - float: right; - padding: 0 0px 10px 0px; -} - -#ContentFull { - float: left; - width: 950px; -} - -/* ----- Sidebar Widgets Box ----- */ - -.box { - background: #fff; - padding: 10px 0px 0px 0px; - - - p { - margin-bottom: 4px; - } - - p.info-box-follow-up-links { - text-align: right; - margin: 0; - } - - h2 { - padding-left: 0; - background:#eceeeb; - height:30px; - line-height:30px; - text-align:right; - font-size:24px; - font-weight:normal; - color:#656565; - padding-right:10px; - margin-bottom:10px; - } - h3{ - color:#4a757f; - font-size:18px; - text-align:left; - font-weight:normal; - } - .contributorback{ - background: #eceeeb url(../images/contributorsback.png) no-repeat center left; - } - - label { - color: #333; - } - - ul { - margin-left: 15px; - } - - li { - list-style-type: disc; - font-size: 13px; - line-height: 20px; - margin-bottom: 10px; - } - ul.tags { - list-style: none; - margin: 0; - padding: 0; - line-height: 170%; - display: block; - } -} - -img.gravatar { - margin:1px; -} - -/* ----- Tags Styles ----- */ - -/* tag formatting is also copy-pasted in template - because it must be the same in the emails - askbot/models/__init__.py:format_instant_notification_email() -*/ - -/* tag cloud */ - -.tag-size-1 { - font-size:12px; -} -.tag-size-2 { - font-size:13px; -} -.tag-size-3 { - font-size:14px; -} -.tag-size-4 { - font-size:15px; -} -.tag-size-5 { - font-size:16px; -} -.tag-size-6 { - font-size:17px; -} -.tag-size-7 { - font-size:18px; -} -.tag-size-8 { - font-size:19px; -} -.tag-size-9 { - font-size:20px; -} -.tag-size-10 { - font-size:21px; -} - -ul.tags, -ul.tags.marked-tags, -ul#related-tags { - list-style: none; - margin: 0; - padding: 0; - line-height: 170%; - display: block; -} - -ul.tags li { - float:left; - display: block; - margin: 0 5px 0 0; - padding: 0; -} - -.wildcard-tags { - clear: both; -} - -ul.tags.marked-tags li, -.wildcard-tags ul.tags li { - margin-bottom: 5px; -} - -#tagSelector div.inputs { - clear: both; - float: none; - margin-bottom:10px; -} - -.tags-page ul.tags li, -ul#ab-user-tags li { - width: 160px; -} - -ul#related-tags li { - margin: 0 5px 3px 0; - float: left; - clear: left; -} - -/* .tag-left and .tag-right are for the sliding doors decoration of tags */ -.tag-left { - background: url(../images/tag-right.png) no-repeat right center; - border: none; - cursor: pointer; - display: block; - float: left; - height: 18px; - margin: 0 5px 0 0; - padding: 0; -} - -.tag-right { - background: url(../images/tag-left.png) no-repeat left center; - border: none; - display: block; - float: left; - height: 18px; - line-height: 20px; - font-weight: normal; - font-size: 11px; - padding: 0px 7px 0px 15px; - text-decoration: none; - text-align: center; - white-space: nowrap; - vertical-align: middle; -} - -.deletable-tag { - margin-right: 3px; - white-space: nowrap; -} - -.deletable-tag .tag-right { - padding-right: 0px; - float: left; -} -.deletable-tag.tag-left { - padding-right: 3px; -} - -.tags a.tag-right, -.tags span.tag-right { - color: #333; - text-decoration: none; -} - - -.users-page h1, .tags-page h1 { - float: left; -} - -.main-page h1 { - margin-right: 5px; -} - -#ground { - width: 100%; - clear: both; - border-top: 1px solid #000; - padding: 6px 0 0 0; - text-align: center; - background: #777; -} - -#ground p { - margin-bottom:0; -} - - - -img.license-logo { - margin: 6px 0 10px 0; -} - - -#askFormBar { - display:inline-block; - background-color: #e3e3e3;/*888a85; /*#e9b96e;*/ - border: 1px solid #aaaaaa; - padding: 4px 7px 5px 5px; -} -#askFormBar p { - width: 685px; - margin:0 0 5px 0; -} -#askFormBar .questionTitleInput { - font-size: 24px; - line-height: 24px; - height: 36px; - width: 680px; - margin: 0px; - padding: 5px 0 0 5px; -} - -#question-list { - float: left; - position: relative; - background-color: #FFF; - padding: 0; - width: 100%; -} - -.ask-page div#question-list { - float: none; - width: 706px; -} -.ask-page div#question-list h2 { - font-size: 14px; - padding-bottom: 0; -} -.ask-page div#question-list span { - padding: 3px 7px; - margin-right: 5px; - background: #ccc; -} - - - -span.delete-icon { - padding-left: 13px; - vertical-align: bottom; - background: url(../images/close-small-dark.png) no-repeat; - cursor: default; -} -span.delete-icon:hover { - background: url(../images/close-small-hover.png) no-repeat; -} - -.tags span.delete-icon { - float: left; - height: 15px; - margin: 2px 0 0 1px; - display: block; -} - -.tag-number { - font-weight: 700; - display: block; - float: left; - font-family: sans-serif; -} - -.badges .tag-number { - float: none; - display: inline; - padding-right: 15px; -} - -ul#search-tags { - padding-top: 3px; -} - -/* ----- Sorting top Tab ------*/ - -.tabBar { - background-color: #eff5f6; - height: 30px; - width: 412px; - clear: both; - margin-bottom: 3px; - margin-top: 3px; - float:right; - font-family:Georgia; - font-size:16px; - .rounded-corners(5px); -} - -.tabBar h2 { - float: left; -} - -.tabsA, .tabsC { - float: right; - position: relative; - display: block; - height: 20px; -} - -/* tabsA - used for sorting */ -.tabsA { float: right; } -.tabsC { float: left; } - -.tabsA a, .tabsC a{ - - border-left: 1px solid #d0e1e4; - color: #8b1717; - display: block; - float: left; - height: 20px; - line-height: 20px; - padding:4px 7px 4px 7px; - text-decoration: none; -} - -.tabsA a.on, .tabsC a.on, .tabsA a:hover, .tabsC a:hover { - color: #C22828; -} - -.tabsA a.rev.on, tabsA a.rev.on:hover { -} - - - -.tabsA .label, .tabsC .label { - float: left; - color: #646464; - margin-top:4px; - margin-right:5px; -} - -.tabsB a { - background: #eee; - border: 1px solid #eee; - color: #777; - display: block; - float: left; - height: 22px; - line-height: 28px; - margin: 5px 0px 0 4px; - padding: 0 11px 0 11px; - text-decoration: none; -} - -.rss { - float: right; - font-size: 16px; - color: #f57900 !important; - margin: 1px 8px 0 0; - width:45px; - padding-left: 16px; - padding-top:3px; - background: url(../images/feed-icon-small.png) no-repeat center right; -} - -.rss:hover { - color: #F4A731 !important; -} - - -/* ----- Question list ----- */ - -.short-summary { - position: relative; - filter: inherit; - padding: 10px; - border-bottom: 1px solid #DDDBCE; - margin-bottom:1px; - overflow: hidden; - width: 710px; - float: left; - background: url(../images/summary-background.png) repeat-x; -} - -.short-summary h2 { - font-size: 22px; - font-weight:normal; -} - -.short-summary a { - color:@question-link; -} - - -.short-summary .userinfo .relativetime, -.short-summary .userinfo a, -.short-summary span.anonymous { - font-size: 11px; - clear:both; - font-weight: normal; - color: #555; -} - - -.short-summary .userinfo { - text-align:center; - line-height:16px; -} - -.short-summary .counts { - float: right; - margin: 2px 0 0 5px; -} - -.short-summary .counts .item-count { - border:1px solid #cccccc; - -moz-border-radius:5px; - -webkit-border-radius:5px; - padding:0px 5px 0px 5px; - font-size: 17px; - font-weight: 800; -} - -.short-summary .counts .votes div, -.short-summary .counts .views div, -.short-summary .counts .answers div, -.short-summary .counts .favorites div -{ - font-size: 12px; - line-height:14px; - color: #555; -} - -.short-summary .tags { - margin-top: 0; -} - -.no-votes .item-count { - background: white; - color: gray; -} -.some-votes .item-count { - background: #a3d0ff; - color: #4a4a4a; -} -.no-answers .item-count { - background: #b63333; - color: yellow; -} -.no-favorites .item-count { - background: #b63333; - color: yellow; -} -.some-answers .item-count { - background: #ffed9c; - color: #a4a4a4; -} -.some-favorites .item-count { - background:#338333; - color:#d0f5a9; -} -.accepted .item-count { - background:#338333; - color:#d0f5a9; -} -.no-views .item-count { - background: gray; - color: white; -} -.some-views .item-count { - background: #ff8c8c; - color: #4a4a4a; -} - -.short-summary .votes, -.short-summary .answers, -.short-summary .favorites, -.short-summary .views { - text-align: center; - margin: 0 3px; - padding: 4px 2px 0px 2px; - width: 46px; - float: right; - -moz-border-radius: 5px; - -khtml-border-radius: 5px; - -webkit-border-radius: 5px; -} - -.short-summary .views { - width: 36px; - padding-right: 0; -} - -.short-summary h2 { - padding-left: 0; -} - -#question-table, -.answer-table { - margin: 2px 0 10px 0; - border-spacing: 0px; -} - -.answer-table { - border-bottom: 1px solid #bbb; - clear: both; -} - -.evenMore { - font-size: 14px; - font-weight: 800; -} - -.evenMore a { - text-decoration: underline; -} - - - -.pager { - clear:both; - border-top: 1px solid #777; - margin-top: 10px; - margin-bottom: 16px; -} - -.pagesize { - margin-top: 10px; - margin-bottom: 16px; - float: right; -} - -/** PAGINATOR **/ -.paginator { - padding: 5px 0 10px 0; - font: normal 12px sans-serif; -} - -.paginator .prev a, .paginator .prev a:visited, -.paginator .next a, .paginator .next a:visited { - border: 1px solid #fff; - background-color: #fff; - color: #777; - padding: 2px 4px 3px 4px; - font: bold 100% sans-serif; -} - -.paginator .prev { - margin-right: .5em; -} - -.paginator .next { - margin-left: .5em; -} - -.paginator .page a, .paginator .page a:visited, .paginator .curr { - padding: .25em; - font: normal .875em verdana; - border: 1px solid #ccc; - background-color: #fff; - margin: 0em .25em; - color: #777; -} - -.paginator .curr { - background-color: #777; - color: #fff; - border: 1px solid #777; - font-weight: bold; -} - -.paginator .page a:hover, -.paginator .curr a:hover, -.paginator .prev a:hover, -.paginator .next a:hover { - color: #fff; - background-color: #777; - border: 1px solid #777; - text-decoration: none; -} - -.paginator .text { - color: #777; - padding: .3em; - font: bold 100% sans-serif; -} - -.paginator-container-left { - padding: 5px 0 10px 0; -} - - -.question-page p.rss { - float:none; - clear:both; - padding: 3px 0 0 1px; - font-size: 14px; -} - -.question-page p.rss a { - padding-left: 18px; - vertical-align: top; -} - -/* badges */ -a.medal { - font-size: 14px; - line-height: 250%; - font-weight: 800; - color: #333; - text-decoration: none; - background: url(../images/medala.gif) no-repeat; - border-left: 1px solid #EEE; - border-top: 1px solid #EEE; - border-bottom: 1px solid #CCC; - border-right: 1px solid #CCC; - padding: 4px 12px 4px 6px; -} - -a:hover.medal { - color: #333; - text-decoration: none; - background: url(../images/medala_on.gif) no-repeat; - border-left: 1px solid #E7E296; - border-top: 1px solid #E7E296; - border-bottom: 1px solid #D1CA3D; - border-right: 1px solid #D1CA3D; -} - -.questions-related { - font-weight: 700; - word-wrap: break-word; -} - -.questions-related p { - line-height: 20px; - margin-bottom: 10px; - font-size: 100%; -} - -.question-status { - margin-top: 10px; - padding: 20px; - background-color: #F5F5F5; - text-align: center; -} - -.question-status h3 { - font-size: 125%; -} -.question-body, .answer-body { - min-height: 39px; - line-height: 20px; - overflow: auto; - width: 660px; -} -.question-body IMG, .answer-body IMG { - max-width: 600px; -} - -.vote-buttons { - float: left; - text-align: center; - padding-top: 2px; -} - -.vote-buttons IMG { - cursor: pointer; -} - -.vote-buttons .button{ - -moz-border-radius: 10px; - margin-top: 20px; - border-radius: 10px; - height: 20px; - width: 80px; - border-style: solid; - border-width: 1px; - padding: 8px; - float:left; -} - -.vote-buttons .followed{ - font-color: #000; - font-style:normal; - background: #cccccc; -} - -.vote-buttons .followed div{ - font-weight: normal; -} - -.vote-buttons .followed div.unfollow{ - display:none; -} - -.vote-buttons .followed:hover{ - color: #fff; - background: #8b0000; -} - -.vote-buttons .followed:hover div{ - display:none; -} - -.vote-buttons .followed:hover div.unfollow{ - display:inline; - font-weight: bold; -} - -.vote-buttons .follow{ - background: #cccccc; -} - -.vote-buttons .follow:hover{ - background: #234f32; - color: #fff; - font-weight: bold; -} - -.vote-number { - font-family: Arial; - padding: 0px 0 3px 0; - font-size: 140%; - font-weight: bold; - color: #777; -} - -.vote-buttons .notify-sidebar { - text-align: left; -} -.vote-buttons .notify-sidebar label { - vertical-align: top; -} - -.question-img-upvote:hover { - background: url(../images/vote-arrow-up-on.png) -} - -.question-img-downvote:hover { - background: url(../images/vote-arrow-down-on.png) -} - -.question-img-favorite:hover { - background: url(../images/vote-favorite-on.png) -} - -.favorite-number { - padding: 5px 0 0 10px; - font-size: 100%; - font-family: Arial; - font-weight: bold; - color: #777; - text-align: left; -} - -.notify-me { - float: left; -} - -.offensive-flag a { - color: #777; - padding: 3px; - cursor: pointer; -} - -.offensive-flag a:hover { - background-color: #777; - text-decoration: none; - color: #fff; -} - -.linksopt a { - color: #777; - padding: 3px; - cursor: pointer; -} - -.linksopt a:hover { - background-color: #777; - text-decoration: none; - color: #fff; -} - -.post-controls a { - color: #777; - padding: 3px; - cursor: pointer; - border: none; - background: none; - text-decoration: none; -} - -.post-controls a:hover { - background-color: #777; - color: #fff; -} - -.post-controls .sep { - color: #ccc; -} - -.comments { - font-size: 12px; - width: 650px; - clear: both; -} - -.comments .comment { - border-top: 1px dotted #cccccc; - margin: 0; - overflow: auto; -} - -.comments .content { - margin-bottom: 7px; -} - -.comments div.comment { - min-height: 25px; -} - -.comments div.comment:hover { - background-color: #eee; -} - -div.comment .comment-votes { - float: left; - width: 37px; - line-height: 130%; - padding: 6px 5px 6px 3px; -} - -div.comment .comment-body { - line-height: 140%; - margin: 3px 26px 0 46px; - padding: 5px 3px; - color: #666; -} - -div.comment .comment-body p{ - font-size:inherit; - margin-bottom: 3px; - padding: 0; -} - -div.comment .comment-delete { - float: right; - width: 14px; - line-height: 130%; - padding: 8px 6px; -} - -div.comment .upvote { - margin: 0px; - padding-right: 17px; - padding-top: 2px; - text-align: right; - height: 20px; - font-size: 13px; - font-weight: bold; - color: #777; -} - -div.comment .upvote.upvoted { - color: #d64000; -} - -div.comment .upvote.hover { - background: url(../images/go-up-grey.png) no-repeat; - background-position: right 1px; -} - -div.comment .upvote:hover { - background: url(../images/go-up-orange.png) no-repeat; - background-position: right 1px; -} - -.comments div.controls { - clear: both; - background: url(../images/gray-up-arrow-h18px.png) no-repeat; - width: 100%; - padding-left: 12px; - margin: 3px 0 20px 5px; -} - -.comments form.post-comments { - width: 560px; - margin: 3px 30px 4px 45px; -} - -.comments textarea { - display: block; - height: 42px; - width: 572px; - margin: 6px 0 5px 1px; - font-family: sans-serif; - outline: none; - overflow:auto; - font-size: 12px; - line-height: 140%; - padding-left:2px; -} - -.comments input { - margin-left: 10px; - margin-top: 1px; - vertical-align: top; - width: 100px; -} - -.comments .counter { - display: inline-block; - width: 245px; - vertical-align: top; -} - -.comments .controls a { - color: #888888; - padding: 0 3px 2px; -} - -.comments .controls a:hover { - background-color: #777777; - color: white; - text-decoration: none; -} - -.comments .help-text{ - float: right; - text-align:right; - color: gray; - margin-bottom: 0px; - margin-top: 0px; - line-height: 50%; -} - -span.text-counter { - margin-right: 20px; -} - -span.form-error { - color: #990000; - font-weight: normal; - margin-left: 5px; -} - -p.form-item { - margin: 0px; -} - -div.comments { - padding: 0; -} - -.comments .button { - color: black; - font-size: 11px; - background: #eeeeee; - padding: 3px; - cursor: pointer; -} - -.comment a { - background-color: inherit; - color: blue; - padding: 0; -} - -.comment a.author, a.author:hover { - background-color: inherit; - color: blue; - padding: 0; -} - -.comment a.author:hover { - text-decoration: underline; -} - -.accepted-answer { - background-color: #EBFFE6; - border-bottom-color: #9BD59B; -} - -.accepted-answer .comments .button { - background-color: #CCFFBF; -} - -.accepted-answer .comments { - background-color: #CCFFBF; -} - -.answered { - background: #CCC; - color: #999; -} - -.answered-accepted { - background: #CCC; - color: #763333; -} - -.answered-by-owner { - background: #E9E9FF; -} - -.answered-by-owner .comments .button { - background-color: #E6ECFF; -} - -.answered-by-owner .comments { - background-color: #E6ECFF; -} - -.answered-accepted strong { - color: #E1E818; -} - -.answer-img-accept:hover { - background: url(../images/vote-accepted-on.png) -} - -.deleted { - background: #F4E7E7 none repeat scroll 0 0; -} - - - - -/* openid styles */ -.form-row { - line-height: 25px; -} - -table.form-as-table { - margin-top: 5px; -} - -table.form-as-table ul { - list-style-type: none; - display: inline; -} - -table.form-as-table li { - display: inline; -} - -table.form-as-table td { - text-align: right; -} - -table.form-as-table th { - text-align: left; - font-weight: normal; -} - -table.ab-subscr-form { - width: 45em; -} - -table.ab-tag-filter-form { - width: 45em; -} - -.submit-row { - line-height: 30px; - padding-top: 10px; - display: block; - clear: both; -} - -.errors { - line-height: 20px; - color: red; -} - -.error { - color: darkred; - margin: 0; - font-size: 10px; -} - -label.retag-error { - color: darkred; - padding-left: 5px; - font-size: 10px; -} - -.fieldset { - border: none; - margin-top: 10px; - padding: 10px; -} - -.openid-input { - background: url(../images/openid.gif) no-repeat; - padding-left: 15px; - cursor: pointer; -} - -.openid-login-input { - background-position: center left; - background: url(../images/openid.gif) no-repeat 0% 50%; - padding: 5px 5px 5px 15px; - cursor: pointer; - font-family: Trebuchet MS; - font-weight: 300; - font-size: 150%; - width: 500px; -} - -.openid-login-submit { - height: 40px; - width: 80px; - line-height: 40px; - cursor: pointer; - border: 1px solid #777; - font-weight: bold; - font-size: 120%; -} - -span.form-error { - color: #990000; - font-size: 90%; - font-weight: normal; - margin-left: 5px; -} - -.title-desc { - color: #666666; - font-size: 90%; -} - -/*adjustment for editor preview*/ -#editor { - font-size: 100%; - min-height: 200px; - line-height: 18px; - width: 702px; - margin:0; -} - -#id_title { - width: 100%; -} - -.wmd-preview { - margin: 3px 0 5px 0; - padding: 6px; - width: 691px; - background-color: #F5F5F5; - min-height: 20px; - overflow: auto; -} - -.wmd-preview pre { - background-color: #E7F1F8; - -} - -.wmd-preview blockquote { - background-color: #eee; -} - -.wmd-preview IMG { - max-width: 600px; -} - -.preview-toggle { - width: 100%; - color: #666; /*letter-spacing:1px;*/ - text-align: left; -} - -.preview-toggle span:hover { - cursor: pointer; -} - -.after-editor { - margin-top: 10px; -} - -.checkbox { - margin-left:5px; - font-weight:normal; - cursor:help -} - -.question-options { - margin-top: 1px; - float: left; - color: #666; - line-height: 13px; -} -.question-options label { - vertical-align: text-bottom; -} - -.ask-page input.submit, -.edit-question-page input.submit { - float: left; -} - -.edit-content-html { - border-top: 1px dotted #D8D2A9; - border-bottom: 1px dotted #D8D2A9; - margin: 5px 0 5px 0; -} - -.revision { - margin: 10px 0 10px 0; - width: 100%; - font-size: 13px; -} - -.revision .header { - background-color: #eee; - padding: 5px; - cursor: pointer; -} - -.revision .author { - background-color: #E9E9FF; -} - -.revision .summary { - padding: 5px 0 10px 0; -} - -.revision .summary span { - background-color: yellow; - padding-left: 3px; - padding-right: 3px; - display: inline; -} - -.revision h1 { - font-size: 130%; - font-weight: 600; - padding: 15px 0 15px 0; -} - -.revision-mark { - width: 200px; - text-align: left; - display: inline-block; - font-size: 90%; - overflow: hidden; -} - -.revision-number { - font-size: 300%; - font-weight: bold; - font-family: sans-serif; -} - -.revision .answerbody { - padding: 10px 0 5px 10px; -} - -/* Revision pages */ -del { - color: #FF5F5F; -} - -del .post-tag { - color: #FF5F5F; -} - -ins { - background-color: #97ff97; -} - -ins p{ - background-color: #97ff97; -} - -ins .post-tag { - background-color: #97ff97; -} - -/*用户资料页é¢*/ -.count { - font-family: Arial; - font-size: 200%; - font-weight: 700; - color: #777 -} - -.scoreNumber { - font-family: Arial; - font-size: 35px; - font-weight: 800; - color: #777; - line-height: 40px; /*letter-spacing:0px*/ - margin-top: 3px; -} - -.user-details { - font-size: 13px; -} - -.user-about { - background-color: #EEEEEE; - height: 200px; - line-height: 20px; - overflow: auto; - padding: 10px; - width: 90%; -} - -/* -.favorites-count-off { - color: #919191; - float: left; - text-align: center; -} - -.favorites-count { - color: #D4A849; - float: left; - text-align: center; -} -*/ - -/* todo: get rid of this in html */ -.favorites-empty { - width: 32px; - height: 45px; - float: left; -} - -.user-info-table { - margin-bottom: 10px; - border-spacing: 0; -} - -/* todo: remove this hack? */ -.user-stats-table .narrow { - width: 660px; -} - -.narrow .summary h3 { - padding: 0px; - margin: 0px; -} - -.relativetime { - font-weight: bold; - text-decoration: none; -} - -.narrow .tags { - float: left; -} - -.answer-summary { - display: block; - clear: both; - padding: 3px; -} - -.answer-votes { - background-color: #EEEEEE; - color: #555555; - float: left; - font-family: Arial; - font-size: 110%; - font-weight: bold; - height: 15px; - padding: 4px 4px 5px; - text-align: center; - text-decoration: none; - width: 20px; - margin-right: 10px; -} - -.vote-count { - font-family: Arial; - font-size: 160%; - font-weight: 700; - color: #777; -} - -/* todo: make these more semantic */ -.user-action-1 { - font-weight: bold; - color: #333; -} - -.user-action-2 { - font-weight: bold; - color: #CCC; -} - -.user-action-3 { - color: #333; -} - -.user-action-4 { - color: #333; -} - -.user-action-5 { - color: darkred; -} - -.user-action-6 { - color: darkred; -} - -.user-action-7 { - color: #333; -} - -.user-action-8 { - padding: 3px; - font-weight: bold; - background-color: #CCC; - color: #763333; -} - -.revision-summary { - background-color: #FFFE9B; - padding: 2px; -} - -.question-title-link a { - font-weight: bold; - color: #0077CC; -} - -.answer-title-link a { - color: #333; -} - -/* todo: make these more semantic */ -.post-type-1 a { - font-weight: bold; - -} - -.post-type-3 a { - font-weight: bold; - -} - -.post-type-5 a { - font-weight: bold; -} - -.post-type-2 a { - color: #333; -} - -.post-type-4 a { - color: #333; -} - -.post-type-6 a { - color: #333; -} - -.post-type-8 a { - color: #333; -} - -.hilite { - background-color: #ff0; -} - -.hilite1 { - background-color: #ff0; -} - -.hilite2 { - background-color: #f0f; -} - -.hilite3 { - background-color: #0ff; -} - -.gold, .badge1 { - color: #FFCC00; -} - -.silver, .badge2 { - color: #CCCCCC; -} - -.bronze, .badge3 { - color: #CC9933; -} - -.score { - font-weight: 800; - color: #333; -} - -.footerLinks { - color: #EEE; - font-size: 13px; /* letter-spacing:1px;*/ -} - -.footerLinks a { - color: #FFF; - font-size: 13px; -} - -a.comment { - background: #EEE; - color: #993300; - padding: 5px; -} - -a.offensive { - color: #999; -} - -.user { - padding: 5px; - line-height: 140%; - width: 170px; -} - -.user ul { - margin: 0; - list-style-type: none; -} - -.user .thumb { - clear: both; - float: left; - margin-right: 4px; - display: inline; -} - -.message { - padding: 5px; - margin: 10px 0 10px 0; - background-color: #eee; - border: 1px solid #aaaaaa; -} - -.message h1 { - padding-top: 0px; - font-size: 15px; -} - -.message p { - margin-bottom: 0px; -} - -p.space-above { - margin-top: 10px; -} - -.warning { - color: red; -} - - - -button::-moz-focus-inner { - padding:0; - border:none; -} -.submit { - cursor: pointer; /*letter-spacing:1px;*/ - background-color: #D4D0C8; - height: 30px; - border: 1px solid #777777; /* width:100px; */ - font-weight: bold; - font-size: 120%; -} - -.submit:hover { - text-decoration: underline; -} - -.submit.small { - margin-right:5px; - height:20px; - font-weight:normal; - font-size:12px; - padding:1px 5px; -} -.submit.small:hover { - text-decoration:none; -} -.question-page a.submit { - display: -moz-inline-stack; - display: inline-block; - line-height: 30px; - padding: 0 5px; - *display: inline; -} - -.ask-body { - padding-right: 10px; -} - - -.noscript { - position: fixed; - top: 0px; - left: 0px; - width: 100%; - z-index: 100; - padding: 5px 0; - text-align: center; - font-family: sans-serif; - font-size: 120%; - font-weight: Bold; - color: #FFFFFF; - background-color: #AE0000; -} - -.big { - font-size: 15px; -} - -.strong { - font-weight: bold; -} - -.orange {/* used in django.po */ - color: #d64000; - font-weight: bold; -} - -.grey { - color: #808080; -} - -.about div { - padding: 10px 5px 10px 5px; - border-top: 1px dashed #aaaaaa; -} - -.highlight { - background-color: #FFF8C6; -} - -.nomargin { - margin: 0; -} - -.margin-bottom { - margin-bottom: 10px; -} - -.margin-top { - margin-top: 10px; -} - -.inline-block { - display: inline-block; -} - -.action-status { - margin: 0; - border: none; - text-align: center; - line-height: 10px; - font-size: 12px; - padding: 0; -} - -.action-status span { - padding: 3px 5px 3px 5px; - background-color: #fff380; /* nice yellow */ - font-weight: normal; - -moz-border-radius: 5px; - -khtml-border-radius: 5px; - -webkit-border-radius: 5px; -} - -.list-table td { - vertical-align: top; -} - -/* these need to go */ -table.form-as-table .errorlist { - display: block; - margin: 0; - padding: 0 0 0 5px; - text-align: left; - font-size: 10px; - color: darkred; -} - -table.form-as-table input { - display: inline; - margin-left: 4px; -} - -table.form-as-table th { - vertical-align: bottom; - padding-bottom: 4px; -} - -.form-row-vertical { - margin-top: 8px; - display: block; -} - -.form-row-vertical label { - margin-bottom: 3px; - display: block; -} - -/* above stuff needs to go */ -.text-align-right { - text-align: center; -} - -ul.form-horizontal-rows { - list-style: none; - margin: 0; -} - -ul.form-horizontal-rows li { - position: relative; - height: 40px; -} - -ul.form-horizontal-rows label { - display: inline-block; -} - -ul.form-horizontal-rows ul.errorlist { - list-style: none; - color: darkred; - font-size: 10px; - line-height: 10px; - position: absolute; - top: 2px; - left: 180px; - text-align: left; - margin: 0; -} - -ul.form-horizontal-rows ul.errorlist li { - height: 10px; -} - -ul.form-horizontal-rows label { - position: absolute; - left: 0px; - bottom: 6px; - margin: 0px; - line-height: 12px; - font-size: 12px; -} - -ul.form-horizontal-rows li input { - position: absolute; - bottom: 0px; - left: 180px; - margin: 0px; -} - -.narrow .summary { - float: left; -} - -.user-profile-tool-links { - font-weight: bold; - vertical-align: top; -} - -.post-controls, .post-tags { - font-size: 11px; - line-height: 12px; - min-width: 200px; - padding-left: 5px; - margin-bottom: 5px; -} - -.post-controls { - clear: left; - float: left; -} - -ul.post-tags { - margin-left: 7px; -} -ul.post-tags li { - margin-top: 4px; - margin-bottom: 3px; -} - -ul.post-retag { - margin-bottom:0px; - margin-left:5px; -} - -#question-controls .tags { - margin: 0 0 3px 0; -} - -.post-update-info-container { - float: right; - min-width: 85px; -} - -.post-update-info { - display: inline-block; - float: right; - font-size: 11px; - width: 190px; - margin-bottom: 5px; - line-height: 14px -} - -.post-update-info p { - line-height: 13px; - font-size: 11px; - margin: 0 0 2px 1px; - padding: 0; -} - -.post-update-info .gravatar { - float: left; - margin-right: 4px; -} - - -.post-update-info p.tip { - color: #444; -} - -#tagSelector { - padding-bottom: 2px; - margin-bottom: 0; -} - -#related-tags { - padding-left: 3px; -} - -#hideIgnoredTagsControl { - margin: 5px 0 0 0; -} - -#hideIgnoredTagsControl label { - font-size: 12px; - color: #666; -} - -#hideIgnoredTagsCb { - margin: 0 2px 0 1px; -} - -#recaptcha_widget_div { - width: 318px; - float: left; - clear: both; -} - -p.signup_p { - margin: 20px 0px 0px 0px; -} - -.simple-subscribe-options ul { - list-style: none; - list-style-position: outside; - margin: 0; -} - -/* a workaround to set link colors correctly */ -.answer-body a { - color:#0000ff; -} -.question-body a { - color:#0000ff; -} -.question-body li { - margin-bottom:0.7em; -} -.answer-body li { - margin-bottom:0.7em; -} -.wmd-preview a { - color:#0000ff; -} -.wmd-preview li { - margin-bottom:0.7em; -} - -.karma-summary { - padding:5px; - font-size:13px; -} - -.karma-summary h3 { - text-align: center; - font-weight: bold; - padding:5px; -} - -.karma-diagram { - width:377px; - height:300px; - float:left; - margin-right:10px; -} - -.karma-details { - float:right; - width:300px; - height:250px; - overflow-y:auto; - word-wrap:break-word; -} - -.karma-gained { - font-weight:bold; - background:#eee; - width:20px; - color:green; - padding:5px; -} - -.karma-lost { - font-weight:bold; - background:#eee; - width:20px; - color:red; - padding:5px; -} - -.search-result-summary { - font-weight: bold; - font-size:18px; - line-height:22px; - margin:0px 0px 0px 0px; - padding:2px 0 0 0; - float: left; -} -.search-tips { - font-size:12px; - line-height:12px; - color: #555; - margin:0 0 5px 0; - padding:0px; - clear:both; -} -.search-tips a { - text-decoration: underline; - color: #555; -} - -.faq-rep-item { - text-align:right; - padding-right:5px; -} - - -.user-info-table .gravatar { - margin:0; -} - -.vote-notification { - z-index: 1; - cursor: pointer; - display: none; - position: absolute; - padding: 15px; - color: white; - background-color: darkred; - text-align: center; -} - -.vote-notification a { - color: white; - text-decoration: underline; -} - -#responses { - clear:both; - line-height:18px; - margin-bottom:15px; -} - -#responses div.face { - float:left; - text-align: center; - width: 54px; - padding: 3px; - overflow:hidden; -} - -.response-parent { - margin-top: 18px; -} - -.response-parent strong{ - font-size: 20px; -} - -.re { - min-height: 57px; - clear: both; - margin-top: 10px; -} - -#responses input { - float:left; -} -#re_tools { - margin-bottom:10px; -} -#re_sections { - margin-bottom:6px; -} -#re_sections .on { - font-weight:bold; -} - -.avatar-page ul { - list-style: none; -} -.avatar-page li { - display: inline; -} -.user-profile-page .avatar p { - margin-bottom: 0px; -} -.user-profile-page .tabBar a#stats { - margin-left: 0; -} -.user-profile-page img.gravatar { - margin: 2px 0 3px 0; -} -.user-profile-page h3 { - padding: 0; - margin-top: -3px; -} -.userList { - font-size: 13px; -} - -img.flag { - border: 1px solid #eee; - vertical-align: text-top; -} - -.main-page img.flag { - vertical-align: text-bottom; -} - -.facebook-share.icon, .twitter-share.icon, .linkedin-share.icon, .identica-share.icon { - background: url(../images/sprite.png) no-repeat; - display:block; - text-indent:-100em; - height:25px; - width:25px; -} -.facebook-share.icon { - background-position: -25px 0px; -} -.identica-share.icon { - background-position: -85px 0px; -} -.twitter-share.icon { - margin-top:10px; - background-position: 0px 0px; -} -.linkedin-share.icon { - background-position: -55px 0px; -} -/* Pretty printing styles. Used with prettify.js. */ - -a.edit { - padding-left:3px; - color: #145bff; -} - -.str { color: #080; } -.kwd { color: #008; } -.com { color: #800; } -.typ { color: #606; } -.lit { color: #066; } -.pun { color: #660; } -.pln { color: #000; } -.tag { color: #008; }/* name conflict here */ -.atn { color: #606; } -.atv { color: #080; } -.dec { color: #606; } -pre.prettyprint { padding: 3px; border: 0px solid #888; } - -@media print { - .str { color: #060; } - .kwd { color: #006; font-weight: bold; } - .com { color: #600; font-style: italic; } - .typ { color: #404; font-weight: bold; } - .lit { color: #044; } - .pun { color: #440; } - .pln { color: #000; } - .tag { color: #006; font-weight: bold; } - .atn { color: #404; } - .atv { color: #060; } -} - -.follow-toggle { - border: 2px solid; - -moz-border-radius:5px; - -webkit-border-radius:5px; - border-radius: 5px; - height: auto; - width: 200px; - float:left; - padding: 0; - margin-right:100%; - margin-bottom: 10px; -} - -.follow-toggle .follow{ - font-color: #000; - font-style:normal; - background: #4cd46f; -} - -.follow-toggle .follow:hover{ - font-weight: bold; -} - -.follow-toggle .unfollow{ - background: #4cd46f; -} - -.follow-toggle .unfollow:hover{ - background: #d94849; -} - -.follow-toggle .unfollow div.unfollow-red{ - display:none; -} - -.follow-toggle .unfollow div.unfollow-green{ - background: #4cd46f; -} - -.follow-toggle .unfollow:hover div.unfollow-red{ - display:inline; - color:#fff; - font-weight:bold; -} - -.follow-toggle .unfollow:hover div.unfollow-green{ - display:none; -} diff --git a/askbot/skins/default/media/images/flags/ad.gif b/askbot/skins/default/media/images/flags/ad.gif new file mode 100755 index 00000000..57b49973 Binary files /dev/null and b/askbot/skins/default/media/images/flags/ad.gif differ diff --git a/askbot/skins/default/media/images/flags/ae.gif b/askbot/skins/default/media/images/flags/ae.gif new file mode 100755 index 00000000..78d15b67 Binary files /dev/null and b/askbot/skins/default/media/images/flags/ae.gif differ diff --git a/askbot/skins/default/media/images/flags/af.gif b/askbot/skins/default/media/images/flags/af.gif new file mode 100755 index 00000000..98894082 Binary files /dev/null and b/askbot/skins/default/media/images/flags/af.gif differ diff --git a/askbot/skins/default/media/images/flags/ag.gif b/askbot/skins/default/media/images/flags/ag.gif new file mode 100755 index 00000000..48f8e7bc Binary files /dev/null and b/askbot/skins/default/media/images/flags/ag.gif differ diff --git a/askbot/skins/default/media/images/flags/ai.gif b/askbot/skins/default/media/images/flags/ai.gif new file mode 100755 index 00000000..1cbc5795 Binary files /dev/null and b/askbot/skins/default/media/images/flags/ai.gif differ diff --git a/askbot/skins/default/media/images/flags/al.gif b/askbot/skins/default/media/images/flags/al.gif new file mode 100755 index 00000000..c44fe0a0 Binary files /dev/null and b/askbot/skins/default/media/images/flags/al.gif differ diff --git a/askbot/skins/default/media/images/flags/am.gif b/askbot/skins/default/media/images/flags/am.gif new file mode 100755 index 00000000..2915e30c Binary files /dev/null and b/askbot/skins/default/media/images/flags/am.gif differ diff --git a/askbot/skins/default/media/images/flags/an.gif b/askbot/skins/default/media/images/flags/an.gif new file mode 100755 index 00000000..cb570c67 Binary files /dev/null and b/askbot/skins/default/media/images/flags/an.gif differ diff --git a/askbot/skins/default/media/images/flags/ao.gif b/askbot/skins/default/media/images/flags/ao.gif new file mode 100644 index 00000000..8c854fa1 Binary files /dev/null and b/askbot/skins/default/media/images/flags/ao.gif differ diff --git a/askbot/skins/default/media/images/flags/ar.gif b/askbot/skins/default/media/images/flags/ar.gif new file mode 100755 index 00000000..a9f71f7d Binary files /dev/null and b/askbot/skins/default/media/images/flags/ar.gif differ diff --git a/askbot/skins/default/media/images/flags/as.gif b/askbot/skins/default/media/images/flags/as.gif new file mode 100755 index 00000000..d776ec27 Binary files /dev/null and b/askbot/skins/default/media/images/flags/as.gif differ diff --git a/askbot/skins/default/media/images/flags/at.gif b/askbot/skins/default/media/images/flags/at.gif new file mode 100755 index 00000000..87e12173 Binary files /dev/null and b/askbot/skins/default/media/images/flags/at.gif differ diff --git a/askbot/skins/default/media/images/flags/au.gif b/askbot/skins/default/media/images/flags/au.gif new file mode 100755 index 00000000..5269c6a0 Binary files /dev/null and b/askbot/skins/default/media/images/flags/au.gif differ diff --git a/askbot/skins/default/media/images/flags/aw.gif b/askbot/skins/default/media/images/flags/aw.gif new file mode 100755 index 00000000..27fdb4d1 Binary files /dev/null and b/askbot/skins/default/media/images/flags/aw.gif differ diff --git a/askbot/skins/default/media/images/flags/ax.gif b/askbot/skins/default/media/images/flags/ax.gif new file mode 100755 index 00000000..0ceb6849 Binary files /dev/null and b/askbot/skins/default/media/images/flags/ax.gif differ diff --git a/askbot/skins/default/media/images/flags/az.gif b/askbot/skins/default/media/images/flags/az.gif new file mode 100755 index 00000000..d7716184 Binary files /dev/null and b/askbot/skins/default/media/images/flags/az.gif differ diff --git a/askbot/skins/default/media/images/flags/ba.gif b/askbot/skins/default/media/images/flags/ba.gif new file mode 100755 index 00000000..9bf5f0ac Binary files /dev/null and b/askbot/skins/default/media/images/flags/ba.gif differ diff --git a/askbot/skins/default/media/images/flags/bb.gif b/askbot/skins/default/media/images/flags/bb.gif new file mode 100755 index 00000000..b7d08e57 Binary files /dev/null and b/askbot/skins/default/media/images/flags/bb.gif differ diff --git a/askbot/skins/default/media/images/flags/bd.gif b/askbot/skins/default/media/images/flags/bd.gif new file mode 100755 index 00000000..0fd27eca Binary files /dev/null and b/askbot/skins/default/media/images/flags/bd.gif differ diff --git a/askbot/skins/default/media/images/flags/be.gif b/askbot/skins/default/media/images/flags/be.gif new file mode 100755 index 00000000..ae09bfbe Binary files /dev/null and b/askbot/skins/default/media/images/flags/be.gif differ diff --git a/askbot/skins/default/media/images/flags/bf.gif b/askbot/skins/default/media/images/flags/bf.gif new file mode 100755 index 00000000..9d6772cd Binary files /dev/null and b/askbot/skins/default/media/images/flags/bf.gif differ diff --git a/askbot/skins/default/media/images/flags/bg.gif b/askbot/skins/default/media/images/flags/bg.gif new file mode 100755 index 00000000..11cf8ff3 Binary files /dev/null and b/askbot/skins/default/media/images/flags/bg.gif differ diff --git a/askbot/skins/default/media/images/flags/bh.gif b/askbot/skins/default/media/images/flags/bh.gif new file mode 100755 index 00000000..56aa72b2 Binary files /dev/null and b/askbot/skins/default/media/images/flags/bh.gif differ diff --git a/askbot/skins/default/media/images/flags/bi.gif b/askbot/skins/default/media/images/flags/bi.gif new file mode 100755 index 00000000..6e2cbe12 Binary files /dev/null and b/askbot/skins/default/media/images/flags/bi.gif differ diff --git a/askbot/skins/default/media/images/flags/bj.gif b/askbot/skins/default/media/images/flags/bj.gif new file mode 100755 index 00000000..e676116f Binary files /dev/null and b/askbot/skins/default/media/images/flags/bj.gif differ diff --git a/askbot/skins/default/media/images/flags/bm.gif b/askbot/skins/default/media/images/flags/bm.gif new file mode 100755 index 00000000..9feb87bc Binary files /dev/null and b/askbot/skins/default/media/images/flags/bm.gif differ diff --git a/askbot/skins/default/media/images/flags/bn.gif b/askbot/skins/default/media/images/flags/bn.gif new file mode 100755 index 00000000..b7b6b0f9 Binary files /dev/null and b/askbot/skins/default/media/images/flags/bn.gif differ diff --git a/askbot/skins/default/media/images/flags/bo.gif b/askbot/skins/default/media/images/flags/bo.gif new file mode 100755 index 00000000..4844f856 Binary files /dev/null and b/askbot/skins/default/media/images/flags/bo.gif differ diff --git a/askbot/skins/default/media/images/flags/br.gif b/askbot/skins/default/media/images/flags/br.gif new file mode 100755 index 00000000..8c866162 Binary files /dev/null and b/askbot/skins/default/media/images/flags/br.gif differ diff --git a/askbot/skins/default/media/images/flags/bs.gif b/askbot/skins/default/media/images/flags/bs.gif new file mode 100755 index 00000000..c0a741e5 Binary files /dev/null and b/askbot/skins/default/media/images/flags/bs.gif differ diff --git a/askbot/skins/default/media/images/flags/bt.gif b/askbot/skins/default/media/images/flags/bt.gif new file mode 100755 index 00000000..abe2f3cc Binary files /dev/null and b/askbot/skins/default/media/images/flags/bt.gif differ diff --git a/askbot/skins/default/media/images/flags/bv.gif b/askbot/skins/default/media/images/flags/bv.gif new file mode 100755 index 00000000..6202d1f3 Binary files /dev/null and b/askbot/skins/default/media/images/flags/bv.gif differ diff --git a/askbot/skins/default/media/images/flags/bw.gif b/askbot/skins/default/media/images/flags/bw.gif new file mode 100755 index 00000000..986ab63c Binary files /dev/null and b/askbot/skins/default/media/images/flags/bw.gif differ diff --git a/askbot/skins/default/media/images/flags/by.gif b/askbot/skins/default/media/images/flags/by.gif new file mode 100755 index 00000000..43ffcd4c Binary files /dev/null and b/askbot/skins/default/media/images/flags/by.gif differ diff --git a/askbot/skins/default/media/images/flags/bz.gif b/askbot/skins/default/media/images/flags/bz.gif new file mode 100755 index 00000000..791737f0 Binary files /dev/null and b/askbot/skins/default/media/images/flags/bz.gif differ diff --git a/askbot/skins/default/media/images/flags/ca.gif b/askbot/skins/default/media/images/flags/ca.gif new file mode 100755 index 00000000..457d9662 Binary files /dev/null and b/askbot/skins/default/media/images/flags/ca.gif differ diff --git a/askbot/skins/default/media/images/flags/catalonia.gif b/askbot/skins/default/media/images/flags/catalonia.gif new file mode 100644 index 00000000..73df9a04 Binary files /dev/null and b/askbot/skins/default/media/images/flags/catalonia.gif differ diff --git a/askbot/skins/default/media/images/flags/cc.gif b/askbot/skins/default/media/images/flags/cc.gif new file mode 100755 index 00000000..3f783270 Binary files /dev/null and b/askbot/skins/default/media/images/flags/cc.gif differ diff --git a/askbot/skins/default/media/images/flags/cd.gif b/askbot/skins/default/media/images/flags/cd.gif new file mode 100644 index 00000000..1df717ae Binary files /dev/null and b/askbot/skins/default/media/images/flags/cd.gif differ diff --git a/askbot/skins/default/media/images/flags/cf.gif b/askbot/skins/default/media/images/flags/cf.gif new file mode 100755 index 00000000..35787ca4 Binary files /dev/null and b/askbot/skins/default/media/images/flags/cf.gif differ diff --git a/askbot/skins/default/media/images/flags/cg.gif b/askbot/skins/default/media/images/flags/cg.gif new file mode 100755 index 00000000..e0a62a51 Binary files /dev/null and b/askbot/skins/default/media/images/flags/cg.gif differ diff --git a/askbot/skins/default/media/images/flags/ch.gif b/askbot/skins/default/media/images/flags/ch.gif new file mode 100755 index 00000000..d5c0e5b7 Binary files /dev/null and b/askbot/skins/default/media/images/flags/ch.gif differ diff --git a/askbot/skins/default/media/images/flags/ci.gif b/askbot/skins/default/media/images/flags/ci.gif new file mode 100755 index 00000000..844120a5 Binary files /dev/null and b/askbot/skins/default/media/images/flags/ci.gif differ diff --git a/askbot/skins/default/media/images/flags/ck.gif b/askbot/skins/default/media/images/flags/ck.gif new file mode 100755 index 00000000..2edb7399 Binary files /dev/null and b/askbot/skins/default/media/images/flags/ck.gif differ diff --git a/askbot/skins/default/media/images/flags/cl.gif b/askbot/skins/default/media/images/flags/cl.gif new file mode 100755 index 00000000..cbc370e6 Binary files /dev/null and b/askbot/skins/default/media/images/flags/cl.gif differ diff --git a/askbot/skins/default/media/images/flags/cm.gif b/askbot/skins/default/media/images/flags/cm.gif new file mode 100755 index 00000000..1fb102b2 Binary files /dev/null and b/askbot/skins/default/media/images/flags/cm.gif differ diff --git a/askbot/skins/default/media/images/flags/cn.gif b/askbot/skins/default/media/images/flags/cn.gif new file mode 100755 index 00000000..b0525309 Binary files /dev/null and b/askbot/skins/default/media/images/flags/cn.gif differ diff --git a/askbot/skins/default/media/images/flags/co.gif b/askbot/skins/default/media/images/flags/co.gif new file mode 100755 index 00000000..d0e15caf Binary files /dev/null and b/askbot/skins/default/media/images/flags/co.gif differ diff --git a/askbot/skins/default/media/images/flags/cr.gif b/askbot/skins/default/media/images/flags/cr.gif new file mode 100755 index 00000000..0728dd6a Binary files /dev/null and b/askbot/skins/default/media/images/flags/cr.gif differ diff --git a/askbot/skins/default/media/images/flags/cs.gif b/askbot/skins/default/media/images/flags/cs.gif new file mode 100755 index 00000000..101db649 Binary files /dev/null and b/askbot/skins/default/media/images/flags/cs.gif differ diff --git a/askbot/skins/default/media/images/flags/cu.gif b/askbot/skins/default/media/images/flags/cu.gif new file mode 100755 index 00000000..291255ca Binary files /dev/null and b/askbot/skins/default/media/images/flags/cu.gif differ diff --git a/askbot/skins/default/media/images/flags/cv.gif b/askbot/skins/default/media/images/flags/cv.gif new file mode 100755 index 00000000..43c6c6cb Binary files /dev/null and b/askbot/skins/default/media/images/flags/cv.gif differ diff --git a/askbot/skins/default/media/images/flags/cx.gif b/askbot/skins/default/media/images/flags/cx.gif new file mode 100755 index 00000000..a5b43089 Binary files /dev/null and b/askbot/skins/default/media/images/flags/cx.gif differ diff --git a/askbot/skins/default/media/images/flags/cy.gif b/askbot/skins/default/media/images/flags/cy.gif new file mode 100755 index 00000000..35c661e1 Binary files /dev/null and b/askbot/skins/default/media/images/flags/cy.gif differ diff --git a/askbot/skins/default/media/images/flags/cz.gif b/askbot/skins/default/media/images/flags/cz.gif new file mode 100755 index 00000000..0a605e58 Binary files /dev/null and b/askbot/skins/default/media/images/flags/cz.gif differ diff --git a/askbot/skins/default/media/images/flags/de.gif b/askbot/skins/default/media/images/flags/de.gif new file mode 100755 index 00000000..75728ddf Binary files /dev/null and b/askbot/skins/default/media/images/flags/de.gif differ diff --git a/askbot/skins/default/media/images/flags/dj.gif b/askbot/skins/default/media/images/flags/dj.gif new file mode 100755 index 00000000..212406d9 Binary files /dev/null and b/askbot/skins/default/media/images/flags/dj.gif differ diff --git a/askbot/skins/default/media/images/flags/dk.gif b/askbot/skins/default/media/images/flags/dk.gif new file mode 100755 index 00000000..03e75bd2 Binary files /dev/null and b/askbot/skins/default/media/images/flags/dk.gif differ diff --git a/askbot/skins/default/media/images/flags/dm.gif b/askbot/skins/default/media/images/flags/dm.gif new file mode 100755 index 00000000..2f87f3ca Binary files /dev/null and b/askbot/skins/default/media/images/flags/dm.gif differ diff --git a/askbot/skins/default/media/images/flags/do.gif b/askbot/skins/default/media/images/flags/do.gif new file mode 100755 index 00000000..f7d0bad3 Binary files /dev/null and b/askbot/skins/default/media/images/flags/do.gif differ diff --git a/askbot/skins/default/media/images/flags/dz.gif b/askbot/skins/default/media/images/flags/dz.gif new file mode 100755 index 00000000..ed580a7c Binary files /dev/null and b/askbot/skins/default/media/images/flags/dz.gif differ diff --git a/askbot/skins/default/media/images/flags/ec.gif b/askbot/skins/default/media/images/flags/ec.gif new file mode 100755 index 00000000..9e41e0ec Binary files /dev/null and b/askbot/skins/default/media/images/flags/ec.gif differ diff --git a/askbot/skins/default/media/images/flags/ee.gif b/askbot/skins/default/media/images/flags/ee.gif new file mode 100755 index 00000000..9397a2d0 Binary files /dev/null and b/askbot/skins/default/media/images/flags/ee.gif differ diff --git a/askbot/skins/default/media/images/flags/eg.gif b/askbot/skins/default/media/images/flags/eg.gif new file mode 100755 index 00000000..6857c7dd Binary files /dev/null and b/askbot/skins/default/media/images/flags/eg.gif differ diff --git a/askbot/skins/default/media/images/flags/eh.gif b/askbot/skins/default/media/images/flags/eh.gif new file mode 100755 index 00000000..dd0391c2 Binary files /dev/null and b/askbot/skins/default/media/images/flags/eh.gif differ diff --git a/askbot/skins/default/media/images/flags/england.gif b/askbot/skins/default/media/images/flags/england.gif new file mode 100755 index 00000000..933a4f0b Binary files /dev/null and b/askbot/skins/default/media/images/flags/england.gif differ diff --git a/askbot/skins/default/media/images/flags/er.gif b/askbot/skins/default/media/images/flags/er.gif new file mode 100755 index 00000000..3d4d612c Binary files /dev/null and b/askbot/skins/default/media/images/flags/er.gif differ diff --git a/askbot/skins/default/media/images/flags/es.gif b/askbot/skins/default/media/images/flags/es.gif new file mode 100755 index 00000000..c27d65e5 Binary files /dev/null and b/askbot/skins/default/media/images/flags/es.gif differ diff --git a/askbot/skins/default/media/images/flags/et.gif b/askbot/skins/default/media/images/flags/et.gif new file mode 100755 index 00000000..f77995d0 Binary files /dev/null and b/askbot/skins/default/media/images/flags/et.gif differ diff --git a/askbot/skins/default/media/images/flags/europeanunion.gif b/askbot/skins/default/media/images/flags/europeanunion.gif new file mode 100644 index 00000000..28a762a5 Binary files /dev/null and b/askbot/skins/default/media/images/flags/europeanunion.gif differ diff --git a/askbot/skins/default/media/images/flags/fam.gif b/askbot/skins/default/media/images/flags/fam.gif new file mode 100755 index 00000000..7d528852 Binary files /dev/null and b/askbot/skins/default/media/images/flags/fam.gif differ diff --git a/askbot/skins/default/media/images/flags/fi.gif b/askbot/skins/default/media/images/flags/fi.gif new file mode 100755 index 00000000..8d3a1918 Binary files /dev/null and b/askbot/skins/default/media/images/flags/fi.gif differ diff --git a/askbot/skins/default/media/images/flags/fj.gif b/askbot/skins/default/media/images/flags/fj.gif new file mode 100755 index 00000000..486151cb Binary files /dev/null and b/askbot/skins/default/media/images/flags/fj.gif differ diff --git a/askbot/skins/default/media/images/flags/fk.gif b/askbot/skins/default/media/images/flags/fk.gif new file mode 100755 index 00000000..37b5ecf3 Binary files /dev/null and b/askbot/skins/default/media/images/flags/fk.gif differ diff --git a/askbot/skins/default/media/images/flags/fm.gif b/askbot/skins/default/media/images/flags/fm.gif new file mode 100755 index 00000000..7f8723b7 Binary files /dev/null and b/askbot/skins/default/media/images/flags/fm.gif differ diff --git a/askbot/skins/default/media/images/flags/fo.gif b/askbot/skins/default/media/images/flags/fo.gif new file mode 100755 index 00000000..4a90fc04 Binary files /dev/null and b/askbot/skins/default/media/images/flags/fo.gif differ diff --git a/askbot/skins/default/media/images/flags/fr.gif b/askbot/skins/default/media/images/flags/fr.gif new file mode 100755 index 00000000..43d0b801 Binary files /dev/null and b/askbot/skins/default/media/images/flags/fr.gif differ diff --git a/askbot/skins/default/media/images/flags/ga.gif b/askbot/skins/default/media/images/flags/ga.gif new file mode 100755 index 00000000..23fd5f0d Binary files /dev/null and b/askbot/skins/default/media/images/flags/ga.gif differ diff --git a/askbot/skins/default/media/images/flags/gb.gif b/askbot/skins/default/media/images/flags/gb.gif new file mode 100644 index 00000000..3c6bce15 Binary files /dev/null and b/askbot/skins/default/media/images/flags/gb.gif differ diff --git a/askbot/skins/default/media/images/flags/gd.gif b/askbot/skins/default/media/images/flags/gd.gif new file mode 100755 index 00000000..25ea3123 Binary files /dev/null and b/askbot/skins/default/media/images/flags/gd.gif differ diff --git a/askbot/skins/default/media/images/flags/ge.gif b/askbot/skins/default/media/images/flags/ge.gif new file mode 100755 index 00000000..faa7f126 Binary files /dev/null and b/askbot/skins/default/media/images/flags/ge.gif differ diff --git a/askbot/skins/default/media/images/flags/gf.gif b/askbot/skins/default/media/images/flags/gf.gif new file mode 100755 index 00000000..43d0b801 Binary files /dev/null and b/askbot/skins/default/media/images/flags/gf.gif differ diff --git a/askbot/skins/default/media/images/flags/gh.gif b/askbot/skins/default/media/images/flags/gh.gif new file mode 100755 index 00000000..273fb7d1 Binary files /dev/null and b/askbot/skins/default/media/images/flags/gh.gif differ diff --git a/askbot/skins/default/media/images/flags/gi.gif b/askbot/skins/default/media/images/flags/gi.gif new file mode 100755 index 00000000..7b1984bc Binary files /dev/null and b/askbot/skins/default/media/images/flags/gi.gif differ diff --git a/askbot/skins/default/media/images/flags/gl.gif b/askbot/skins/default/media/images/flags/gl.gif new file mode 100755 index 00000000..ef445be0 Binary files /dev/null and b/askbot/skins/default/media/images/flags/gl.gif differ diff --git a/askbot/skins/default/media/images/flags/gm.gif b/askbot/skins/default/media/images/flags/gm.gif new file mode 100755 index 00000000..6847c5a8 Binary files /dev/null and b/askbot/skins/default/media/images/flags/gm.gif differ diff --git a/askbot/skins/default/media/images/flags/gn.gif b/askbot/skins/default/media/images/flags/gn.gif new file mode 100755 index 00000000..a982ac6f Binary files /dev/null and b/askbot/skins/default/media/images/flags/gn.gif differ diff --git a/askbot/skins/default/media/images/flags/gp.gif b/askbot/skins/default/media/images/flags/gp.gif new file mode 100755 index 00000000..31166db6 Binary files /dev/null and b/askbot/skins/default/media/images/flags/gp.gif differ diff --git a/askbot/skins/default/media/images/flags/gq.gif b/askbot/skins/default/media/images/flags/gq.gif new file mode 100755 index 00000000..8b4e0cc4 Binary files /dev/null and b/askbot/skins/default/media/images/flags/gq.gif differ diff --git a/askbot/skins/default/media/images/flags/gr.gif b/askbot/skins/default/media/images/flags/gr.gif new file mode 100755 index 00000000..b4c8c04e Binary files /dev/null and b/askbot/skins/default/media/images/flags/gr.gif differ diff --git a/askbot/skins/default/media/images/flags/gs.gif b/askbot/skins/default/media/images/flags/gs.gif new file mode 100755 index 00000000..ccc96ec0 Binary files /dev/null and b/askbot/skins/default/media/images/flags/gs.gif differ diff --git a/askbot/skins/default/media/images/flags/gt.gif b/askbot/skins/default/media/images/flags/gt.gif new file mode 100755 index 00000000..7e94d1dd Binary files /dev/null and b/askbot/skins/default/media/images/flags/gt.gif differ diff --git a/askbot/skins/default/media/images/flags/gu.gif b/askbot/skins/default/media/images/flags/gu.gif new file mode 100755 index 00000000..eafef683 Binary files /dev/null and b/askbot/skins/default/media/images/flags/gu.gif differ diff --git a/askbot/skins/default/media/images/flags/gw.gif b/askbot/skins/default/media/images/flags/gw.gif new file mode 100755 index 00000000..55f75711 Binary files /dev/null and b/askbot/skins/default/media/images/flags/gw.gif differ diff --git a/askbot/skins/default/media/images/flags/gy.gif b/askbot/skins/default/media/images/flags/gy.gif new file mode 100755 index 00000000..1cb4cd71 Binary files /dev/null and b/askbot/skins/default/media/images/flags/gy.gif differ diff --git a/askbot/skins/default/media/images/flags/hk.gif b/askbot/skins/default/media/images/flags/hk.gif new file mode 100755 index 00000000..798af96d Binary files /dev/null and b/askbot/skins/default/media/images/flags/hk.gif differ diff --git a/askbot/skins/default/media/images/flags/hm.gif b/askbot/skins/default/media/images/flags/hm.gif new file mode 100755 index 00000000..5269c6a0 Binary files /dev/null and b/askbot/skins/default/media/images/flags/hm.gif differ diff --git a/askbot/skins/default/media/images/flags/hn.gif b/askbot/skins/default/media/images/flags/hn.gif new file mode 100755 index 00000000..6c4ffe8e Binary files /dev/null and b/askbot/skins/default/media/images/flags/hn.gif differ diff --git a/askbot/skins/default/media/images/flags/hr.gif b/askbot/skins/default/media/images/flags/hr.gif new file mode 100755 index 00000000..557c6602 Binary files /dev/null and b/askbot/skins/default/media/images/flags/hr.gif differ diff --git a/askbot/skins/default/media/images/flags/ht.gif b/askbot/skins/default/media/images/flags/ht.gif new file mode 100755 index 00000000..059604ab Binary files /dev/null and b/askbot/skins/default/media/images/flags/ht.gif differ diff --git a/askbot/skins/default/media/images/flags/hu.gif b/askbot/skins/default/media/images/flags/hu.gif new file mode 100755 index 00000000..6142d868 Binary files /dev/null and b/askbot/skins/default/media/images/flags/hu.gif differ diff --git a/askbot/skins/default/media/images/flags/id.gif b/askbot/skins/default/media/images/flags/id.gif new file mode 100755 index 00000000..865161b0 Binary files /dev/null and b/askbot/skins/default/media/images/flags/id.gif differ diff --git a/askbot/skins/default/media/images/flags/ie.gif b/askbot/skins/default/media/images/flags/ie.gif new file mode 100755 index 00000000..506ad285 Binary files /dev/null and b/askbot/skins/default/media/images/flags/ie.gif differ diff --git a/askbot/skins/default/media/images/flags/il.gif b/askbot/skins/default/media/images/flags/il.gif new file mode 100755 index 00000000..c8483ae5 Binary files /dev/null and b/askbot/skins/default/media/images/flags/il.gif differ diff --git a/askbot/skins/default/media/images/flags/in.gif b/askbot/skins/default/media/images/flags/in.gif new file mode 100755 index 00000000..1cd80272 Binary files /dev/null and b/askbot/skins/default/media/images/flags/in.gif differ diff --git a/askbot/skins/default/media/images/flags/io.gif b/askbot/skins/default/media/images/flags/io.gif new file mode 100755 index 00000000..de7e7ab3 Binary files /dev/null and b/askbot/skins/default/media/images/flags/io.gif differ diff --git a/askbot/skins/default/media/images/flags/iq.gif b/askbot/skins/default/media/images/flags/iq.gif new file mode 100755 index 00000000..c34fe3c4 Binary files /dev/null and b/askbot/skins/default/media/images/flags/iq.gif differ diff --git a/askbot/skins/default/media/images/flags/ir.gif b/askbot/skins/default/media/images/flags/ir.gif new file mode 100755 index 00000000..156040fc Binary files /dev/null and b/askbot/skins/default/media/images/flags/ir.gif differ diff --git a/askbot/skins/default/media/images/flags/is.gif b/askbot/skins/default/media/images/flags/is.gif new file mode 100755 index 00000000..b42502de Binary files /dev/null and b/askbot/skins/default/media/images/flags/is.gif differ diff --git a/askbot/skins/default/media/images/flags/it.gif b/askbot/skins/default/media/images/flags/it.gif new file mode 100755 index 00000000..d79e90e9 Binary files /dev/null and b/askbot/skins/default/media/images/flags/it.gif differ diff --git a/askbot/skins/default/media/images/flags/jm.gif b/askbot/skins/default/media/images/flags/jm.gif new file mode 100755 index 00000000..0bed67c2 Binary files /dev/null and b/askbot/skins/default/media/images/flags/jm.gif differ diff --git a/askbot/skins/default/media/images/flags/jo.gif b/askbot/skins/default/media/images/flags/jo.gif new file mode 100755 index 00000000..03daf8af Binary files /dev/null and b/askbot/skins/default/media/images/flags/jo.gif differ diff --git a/askbot/skins/default/media/images/flags/jp.gif b/askbot/skins/default/media/images/flags/jp.gif new file mode 100755 index 00000000..444c1d05 Binary files /dev/null and b/askbot/skins/default/media/images/flags/jp.gif differ diff --git a/askbot/skins/default/media/images/flags/ke.gif b/askbot/skins/default/media/images/flags/ke.gif new file mode 100755 index 00000000..c2b5d45c Binary files /dev/null and b/askbot/skins/default/media/images/flags/ke.gif differ diff --git a/askbot/skins/default/media/images/flags/kg.gif b/askbot/skins/default/media/images/flags/kg.gif new file mode 100755 index 00000000..72a4d412 Binary files /dev/null and b/askbot/skins/default/media/images/flags/kg.gif differ diff --git a/askbot/skins/default/media/images/flags/kh.gif b/askbot/skins/default/media/images/flags/kh.gif new file mode 100755 index 00000000..30a18315 Binary files /dev/null and b/askbot/skins/default/media/images/flags/kh.gif differ diff --git a/askbot/skins/default/media/images/flags/ki.gif b/askbot/skins/default/media/images/flags/ki.gif new file mode 100755 index 00000000..4a0751a2 Binary files /dev/null and b/askbot/skins/default/media/images/flags/ki.gif differ diff --git a/askbot/skins/default/media/images/flags/km.gif b/askbot/skins/default/media/images/flags/km.gif new file mode 100755 index 00000000..5859595e Binary files /dev/null and b/askbot/skins/default/media/images/flags/km.gif differ diff --git a/askbot/skins/default/media/images/flags/kn.gif b/askbot/skins/default/media/images/flags/kn.gif new file mode 100755 index 00000000..bb9cc34a Binary files /dev/null and b/askbot/skins/default/media/images/flags/kn.gif differ diff --git a/askbot/skins/default/media/images/flags/kp.gif b/askbot/skins/default/media/images/flags/kp.gif new file mode 100755 index 00000000..6e0ca09e Binary files /dev/null and b/askbot/skins/default/media/images/flags/kp.gif differ diff --git a/askbot/skins/default/media/images/flags/kr.gif b/askbot/skins/default/media/images/flags/kr.gif new file mode 100755 index 00000000..1cddbe75 Binary files /dev/null and b/askbot/skins/default/media/images/flags/kr.gif differ diff --git a/askbot/skins/default/media/images/flags/kw.gif b/askbot/skins/default/media/images/flags/kw.gif new file mode 100755 index 00000000..1efc7347 Binary files /dev/null and b/askbot/skins/default/media/images/flags/kw.gif differ diff --git a/askbot/skins/default/media/images/flags/ky.gif b/askbot/skins/default/media/images/flags/ky.gif new file mode 100755 index 00000000..d3d02ee4 Binary files /dev/null and b/askbot/skins/default/media/images/flags/ky.gif differ diff --git a/askbot/skins/default/media/images/flags/kz.gif b/askbot/skins/default/media/images/flags/kz.gif new file mode 100755 index 00000000..24baebe0 Binary files /dev/null and b/askbot/skins/default/media/images/flags/kz.gif differ diff --git a/askbot/skins/default/media/images/flags/la.gif b/askbot/skins/default/media/images/flags/la.gif new file mode 100755 index 00000000..d14cf4d8 Binary files /dev/null and b/askbot/skins/default/media/images/flags/la.gif differ diff --git a/askbot/skins/default/media/images/flags/lb.gif b/askbot/skins/default/media/images/flags/lb.gif new file mode 100755 index 00000000..003d83af Binary files /dev/null and b/askbot/skins/default/media/images/flags/lb.gif differ diff --git a/askbot/skins/default/media/images/flags/lc.gif b/askbot/skins/default/media/images/flags/lc.gif new file mode 100644 index 00000000..f5fe5bff Binary files /dev/null and b/askbot/skins/default/media/images/flags/lc.gif differ diff --git a/askbot/skins/default/media/images/flags/li.gif b/askbot/skins/default/media/images/flags/li.gif new file mode 100755 index 00000000..713c58e1 Binary files /dev/null and b/askbot/skins/default/media/images/flags/li.gif differ diff --git a/askbot/skins/default/media/images/flags/lk.gif b/askbot/skins/default/media/images/flags/lk.gif new file mode 100755 index 00000000..1b3ee7f5 Binary files /dev/null and b/askbot/skins/default/media/images/flags/lk.gif differ diff --git a/askbot/skins/default/media/images/flags/lr.gif b/askbot/skins/default/media/images/flags/lr.gif new file mode 100755 index 00000000..435af9e5 Binary files /dev/null and b/askbot/skins/default/media/images/flags/lr.gif differ diff --git a/askbot/skins/default/media/images/flags/ls.gif b/askbot/skins/default/media/images/flags/ls.gif new file mode 100755 index 00000000..427ae957 Binary files /dev/null and b/askbot/skins/default/media/images/flags/ls.gif differ diff --git a/askbot/skins/default/media/images/flags/lt.gif b/askbot/skins/default/media/images/flags/lt.gif new file mode 100755 index 00000000..dee9c601 Binary files /dev/null and b/askbot/skins/default/media/images/flags/lt.gif differ diff --git a/askbot/skins/default/media/images/flags/lu.gif b/askbot/skins/default/media/images/flags/lu.gif new file mode 100755 index 00000000..7d7293ed Binary files /dev/null and b/askbot/skins/default/media/images/flags/lu.gif differ diff --git a/askbot/skins/default/media/images/flags/lv.gif b/askbot/skins/default/media/images/flags/lv.gif new file mode 100755 index 00000000..17e71b7e Binary files /dev/null and b/askbot/skins/default/media/images/flags/lv.gif differ diff --git a/askbot/skins/default/media/images/flags/ly.gif b/askbot/skins/default/media/images/flags/ly.gif new file mode 100755 index 00000000..a654c30a Binary files /dev/null and b/askbot/skins/default/media/images/flags/ly.gif differ diff --git a/askbot/skins/default/media/images/flags/ma.gif b/askbot/skins/default/media/images/flags/ma.gif new file mode 100755 index 00000000..fc784119 Binary files /dev/null and b/askbot/skins/default/media/images/flags/ma.gif differ diff --git a/askbot/skins/default/media/images/flags/mc.gif b/askbot/skins/default/media/images/flags/mc.gif new file mode 100755 index 00000000..02a7c8e1 Binary files /dev/null and b/askbot/skins/default/media/images/flags/mc.gif differ diff --git a/askbot/skins/default/media/images/flags/md.gif b/askbot/skins/default/media/images/flags/md.gif new file mode 100755 index 00000000..e4b8a7e3 Binary files /dev/null and b/askbot/skins/default/media/images/flags/md.gif differ diff --git a/askbot/skins/default/media/images/flags/me.gif b/askbot/skins/default/media/images/flags/me.gif new file mode 100644 index 00000000..a260453c Binary files /dev/null and b/askbot/skins/default/media/images/flags/me.gif differ diff --git a/askbot/skins/default/media/images/flags/mg.gif b/askbot/skins/default/media/images/flags/mg.gif new file mode 100755 index 00000000..a91b577d Binary files /dev/null and b/askbot/skins/default/media/images/flags/mg.gif differ diff --git a/askbot/skins/default/media/images/flags/mh.gif b/askbot/skins/default/media/images/flags/mh.gif new file mode 100755 index 00000000..92f5f485 Binary files /dev/null and b/askbot/skins/default/media/images/flags/mh.gif differ diff --git a/askbot/skins/default/media/images/flags/mk.gif b/askbot/skins/default/media/images/flags/mk.gif new file mode 100755 index 00000000..7aeb8311 Binary files /dev/null and b/askbot/skins/default/media/images/flags/mk.gif differ diff --git a/askbot/skins/default/media/images/flags/ml.gif b/askbot/skins/default/media/images/flags/ml.gif new file mode 100755 index 00000000..53d6f490 Binary files /dev/null and b/askbot/skins/default/media/images/flags/ml.gif differ diff --git a/askbot/skins/default/media/images/flags/mm.gif b/askbot/skins/default/media/images/flags/mm.gif new file mode 100755 index 00000000..9e0a2756 Binary files /dev/null and b/askbot/skins/default/media/images/flags/mm.gif differ diff --git a/askbot/skins/default/media/images/flags/mn.gif b/askbot/skins/default/media/images/flags/mn.gif new file mode 100755 index 00000000..dff8ea5a Binary files /dev/null and b/askbot/skins/default/media/images/flags/mn.gif differ diff --git a/askbot/skins/default/media/images/flags/mo.gif b/askbot/skins/default/media/images/flags/mo.gif new file mode 100755 index 00000000..66cf5b4f Binary files /dev/null and b/askbot/skins/default/media/images/flags/mo.gif differ diff --git a/askbot/skins/default/media/images/flags/mp.gif b/askbot/skins/default/media/images/flags/mp.gif new file mode 100755 index 00000000..73b7147e Binary files /dev/null and b/askbot/skins/default/media/images/flags/mp.gif differ diff --git a/askbot/skins/default/media/images/flags/mq.gif b/askbot/skins/default/media/images/flags/mq.gif new file mode 100755 index 00000000..570bc5dd Binary files /dev/null and b/askbot/skins/default/media/images/flags/mq.gif differ diff --git a/askbot/skins/default/media/images/flags/mr.gif b/askbot/skins/default/media/images/flags/mr.gif new file mode 100755 index 00000000..f52fcf09 Binary files /dev/null and b/askbot/skins/default/media/images/flags/mr.gif differ diff --git a/askbot/skins/default/media/images/flags/ms.gif b/askbot/skins/default/media/images/flags/ms.gif new file mode 100755 index 00000000..5e5a67aa Binary files /dev/null and b/askbot/skins/default/media/images/flags/ms.gif differ diff --git a/askbot/skins/default/media/images/flags/mt.gif b/askbot/skins/default/media/images/flags/mt.gif new file mode 100755 index 00000000..45c709f2 Binary files /dev/null and b/askbot/skins/default/media/images/flags/mt.gif differ diff --git a/askbot/skins/default/media/images/flags/mu.gif b/askbot/skins/default/media/images/flags/mu.gif new file mode 100755 index 00000000..081ab453 Binary files /dev/null and b/askbot/skins/default/media/images/flags/mu.gif differ diff --git a/askbot/skins/default/media/images/flags/mv.gif b/askbot/skins/default/media/images/flags/mv.gif new file mode 100755 index 00000000..46b63875 Binary files /dev/null and b/askbot/skins/default/media/images/flags/mv.gif differ diff --git a/askbot/skins/default/media/images/flags/mw.gif b/askbot/skins/default/media/images/flags/mw.gif new file mode 100755 index 00000000..ad045a09 Binary files /dev/null and b/askbot/skins/default/media/images/flags/mw.gif differ diff --git a/askbot/skins/default/media/images/flags/mx.gif b/askbot/skins/default/media/images/flags/mx.gif new file mode 100755 index 00000000..ddc75d04 Binary files /dev/null and b/askbot/skins/default/media/images/flags/mx.gif differ diff --git a/askbot/skins/default/media/images/flags/my.gif b/askbot/skins/default/media/images/flags/my.gif new file mode 100755 index 00000000..fc7d5236 Binary files /dev/null and b/askbot/skins/default/media/images/flags/my.gif differ diff --git a/askbot/skins/default/media/images/flags/mz.gif b/askbot/skins/default/media/images/flags/mz.gif new file mode 100755 index 00000000..7d635082 Binary files /dev/null and b/askbot/skins/default/media/images/flags/mz.gif differ diff --git a/askbot/skins/default/media/images/flags/na.gif b/askbot/skins/default/media/images/flags/na.gif new file mode 100755 index 00000000..c0babe72 Binary files /dev/null and b/askbot/skins/default/media/images/flags/na.gif differ diff --git a/askbot/skins/default/media/images/flags/nc.gif b/askbot/skins/default/media/images/flags/nc.gif new file mode 100755 index 00000000..b1e91b9a Binary files /dev/null and b/askbot/skins/default/media/images/flags/nc.gif differ diff --git a/askbot/skins/default/media/images/flags/ne.gif b/askbot/skins/default/media/images/flags/ne.gif new file mode 100755 index 00000000..ff4eaf07 Binary files /dev/null and b/askbot/skins/default/media/images/flags/ne.gif differ diff --git a/askbot/skins/default/media/images/flags/nf.gif b/askbot/skins/default/media/images/flags/nf.gif new file mode 100755 index 00000000..c83424c2 Binary files /dev/null and b/askbot/skins/default/media/images/flags/nf.gif differ diff --git a/askbot/skins/default/media/images/flags/ng.gif b/askbot/skins/default/media/images/flags/ng.gif new file mode 100755 index 00000000..bdde7cb3 Binary files /dev/null and b/askbot/skins/default/media/images/flags/ng.gif differ diff --git a/askbot/skins/default/media/images/flags/ni.gif b/askbot/skins/default/media/images/flags/ni.gif new file mode 100755 index 00000000..d05894d0 Binary files /dev/null and b/askbot/skins/default/media/images/flags/ni.gif differ diff --git a/askbot/skins/default/media/images/flags/nl.gif b/askbot/skins/default/media/images/flags/nl.gif new file mode 100755 index 00000000..c1c8f46d Binary files /dev/null and b/askbot/skins/default/media/images/flags/nl.gif differ diff --git a/askbot/skins/default/media/images/flags/no.gif b/askbot/skins/default/media/images/flags/no.gif new file mode 100755 index 00000000..6202d1f3 Binary files /dev/null and b/askbot/skins/default/media/images/flags/no.gif differ diff --git a/askbot/skins/default/media/images/flags/np.gif b/askbot/skins/default/media/images/flags/np.gif new file mode 100755 index 00000000..1096893a Binary files /dev/null and b/askbot/skins/default/media/images/flags/np.gif differ diff --git a/askbot/skins/default/media/images/flags/nr.gif b/askbot/skins/default/media/images/flags/nr.gif new file mode 100755 index 00000000..2e4c0c5c Binary files /dev/null and b/askbot/skins/default/media/images/flags/nr.gif differ diff --git a/askbot/skins/default/media/images/flags/nu.gif b/askbot/skins/default/media/images/flags/nu.gif new file mode 100755 index 00000000..618210a7 Binary files /dev/null and b/askbot/skins/default/media/images/flags/nu.gif differ diff --git a/askbot/skins/default/media/images/flags/nz.gif b/askbot/skins/default/media/images/flags/nz.gif new file mode 100755 index 00000000..028a5dc6 Binary files /dev/null and b/askbot/skins/default/media/images/flags/nz.gif differ diff --git a/askbot/skins/default/media/images/flags/om.gif b/askbot/skins/default/media/images/flags/om.gif new file mode 100755 index 00000000..2b8c7750 Binary files /dev/null and b/askbot/skins/default/media/images/flags/om.gif differ diff --git a/askbot/skins/default/media/images/flags/pa.gif b/askbot/skins/default/media/images/flags/pa.gif new file mode 100755 index 00000000..d518b2f9 Binary files /dev/null and b/askbot/skins/default/media/images/flags/pa.gif differ diff --git a/askbot/skins/default/media/images/flags/pe.gif b/askbot/skins/default/media/images/flags/pe.gif new file mode 100755 index 00000000..3bc76390 Binary files /dev/null and b/askbot/skins/default/media/images/flags/pe.gif differ diff --git a/askbot/skins/default/media/images/flags/pf.gif b/askbot/skins/default/media/images/flags/pf.gif new file mode 100755 index 00000000..849297a5 Binary files /dev/null and b/askbot/skins/default/media/images/flags/pf.gif differ diff --git a/askbot/skins/default/media/images/flags/pg.gif b/askbot/skins/default/media/images/flags/pg.gif new file mode 100755 index 00000000..2d20b078 Binary files /dev/null and b/askbot/skins/default/media/images/flags/pg.gif differ diff --git a/askbot/skins/default/media/images/flags/ph.gif b/askbot/skins/default/media/images/flags/ph.gif new file mode 100755 index 00000000..12b380ac Binary files /dev/null and b/askbot/skins/default/media/images/flags/ph.gif differ diff --git a/askbot/skins/default/media/images/flags/pk.gif b/askbot/skins/default/media/images/flags/pk.gif new file mode 100755 index 00000000..f3f62c2e Binary files /dev/null and b/askbot/skins/default/media/images/flags/pk.gif differ diff --git a/askbot/skins/default/media/images/flags/pl.gif b/askbot/skins/default/media/images/flags/pl.gif new file mode 100755 index 00000000..bf106463 Binary files /dev/null and b/askbot/skins/default/media/images/flags/pl.gif differ diff --git a/askbot/skins/default/media/images/flags/pm.gif b/askbot/skins/default/media/images/flags/pm.gif new file mode 100755 index 00000000..99bf6fdb Binary files /dev/null and b/askbot/skins/default/media/images/flags/pm.gif differ diff --git a/askbot/skins/default/media/images/flags/pn.gif b/askbot/skins/default/media/images/flags/pn.gif new file mode 100755 index 00000000..4bc86a1d Binary files /dev/null and b/askbot/skins/default/media/images/flags/pn.gif differ diff --git a/askbot/skins/default/media/images/flags/pr.gif b/askbot/skins/default/media/images/flags/pr.gif new file mode 100755 index 00000000..6d5d5896 Binary files /dev/null and b/askbot/skins/default/media/images/flags/pr.gif differ diff --git a/askbot/skins/default/media/images/flags/ps.gif b/askbot/skins/default/media/images/flags/ps.gif new file mode 100755 index 00000000..6afa3b71 Binary files /dev/null and b/askbot/skins/default/media/images/flags/ps.gif differ diff --git a/askbot/skins/default/media/images/flags/pt.gif b/askbot/skins/default/media/images/flags/pt.gif new file mode 100755 index 00000000..e735f740 Binary files /dev/null and b/askbot/skins/default/media/images/flags/pt.gif differ diff --git a/askbot/skins/default/media/images/flags/pw.gif b/askbot/skins/default/media/images/flags/pw.gif new file mode 100755 index 00000000..5854510f Binary files /dev/null and b/askbot/skins/default/media/images/flags/pw.gif differ diff --git a/askbot/skins/default/media/images/flags/py.gif b/askbot/skins/default/media/images/flags/py.gif new file mode 100755 index 00000000..f2e66af7 Binary files /dev/null and b/askbot/skins/default/media/images/flags/py.gif differ diff --git a/askbot/skins/default/media/images/flags/qa.gif b/askbot/skins/default/media/images/flags/qa.gif new file mode 100755 index 00000000..2e843ff9 Binary files /dev/null and b/askbot/skins/default/media/images/flags/qa.gif differ diff --git a/askbot/skins/default/media/images/flags/re.gif b/askbot/skins/default/media/images/flags/re.gif new file mode 100755 index 00000000..43d0b801 Binary files /dev/null and b/askbot/skins/default/media/images/flags/re.gif differ diff --git a/askbot/skins/default/media/images/flags/ro.gif b/askbot/skins/default/media/images/flags/ro.gif new file mode 100755 index 00000000..f5d5f125 Binary files /dev/null and b/askbot/skins/default/media/images/flags/ro.gif differ diff --git a/askbot/skins/default/media/images/flags/rs.gif b/askbot/skins/default/media/images/flags/rs.gif new file mode 100644 index 00000000..3bd1fb2f Binary files /dev/null and b/askbot/skins/default/media/images/flags/rs.gif differ diff --git a/askbot/skins/default/media/images/flags/ru.gif b/askbot/skins/default/media/images/flags/ru.gif new file mode 100755 index 00000000..b525c462 Binary files /dev/null and b/askbot/skins/default/media/images/flags/ru.gif differ diff --git a/askbot/skins/default/media/images/flags/rw.gif b/askbot/skins/default/media/images/flags/rw.gif new file mode 100755 index 00000000..0d095f7a Binary files /dev/null and b/askbot/skins/default/media/images/flags/rw.gif differ diff --git a/askbot/skins/default/media/images/flags/sa.gif b/askbot/skins/default/media/images/flags/sa.gif new file mode 100755 index 00000000..179961b6 Binary files /dev/null and b/askbot/skins/default/media/images/flags/sa.gif differ diff --git a/askbot/skins/default/media/images/flags/sb.gif b/askbot/skins/default/media/images/flags/sb.gif new file mode 100755 index 00000000..8f5ff837 Binary files /dev/null and b/askbot/skins/default/media/images/flags/sb.gif differ diff --git a/askbot/skins/default/media/images/flags/sc.gif b/askbot/skins/default/media/images/flags/sc.gif new file mode 100755 index 00000000..31b47677 Binary files /dev/null and b/askbot/skins/default/media/images/flags/sc.gif differ diff --git a/askbot/skins/default/media/images/flags/scotland.gif b/askbot/skins/default/media/images/flags/scotland.gif new file mode 100755 index 00000000..03f3f1de Binary files /dev/null and b/askbot/skins/default/media/images/flags/scotland.gif differ diff --git a/askbot/skins/default/media/images/flags/sd.gif b/askbot/skins/default/media/images/flags/sd.gif new file mode 100755 index 00000000..53ae214f Binary files /dev/null and b/askbot/skins/default/media/images/flags/sd.gif differ diff --git a/askbot/skins/default/media/images/flags/se.gif b/askbot/skins/default/media/images/flags/se.gif new file mode 100755 index 00000000..80f62852 Binary files /dev/null and b/askbot/skins/default/media/images/flags/se.gif differ diff --git a/askbot/skins/default/media/images/flags/sg.gif b/askbot/skins/default/media/images/flags/sg.gif new file mode 100755 index 00000000..5663d39f Binary files /dev/null and b/askbot/skins/default/media/images/flags/sg.gif differ diff --git a/askbot/skins/default/media/images/flags/sh.gif b/askbot/skins/default/media/images/flags/sh.gif new file mode 100755 index 00000000..dcc7f3bc Binary files /dev/null and b/askbot/skins/default/media/images/flags/sh.gif differ diff --git a/askbot/skins/default/media/images/flags/si.gif b/askbot/skins/default/media/images/flags/si.gif new file mode 100755 index 00000000..23852b50 Binary files /dev/null and b/askbot/skins/default/media/images/flags/si.gif differ diff --git a/askbot/skins/default/media/images/flags/sj.gif b/askbot/skins/default/media/images/flags/sj.gif new file mode 100755 index 00000000..6202d1f3 Binary files /dev/null and b/askbot/skins/default/media/images/flags/sj.gif differ diff --git a/askbot/skins/default/media/images/flags/sk.gif b/askbot/skins/default/media/images/flags/sk.gif new file mode 100755 index 00000000..1b3f22ba Binary files /dev/null and b/askbot/skins/default/media/images/flags/sk.gif differ diff --git a/askbot/skins/default/media/images/flags/sl.gif b/askbot/skins/default/media/images/flags/sl.gif new file mode 100755 index 00000000..f0f34923 Binary files /dev/null and b/askbot/skins/default/media/images/flags/sl.gif differ diff --git a/askbot/skins/default/media/images/flags/sm.gif b/askbot/skins/default/media/images/flags/sm.gif new file mode 100755 index 00000000..04d98de5 Binary files /dev/null and b/askbot/skins/default/media/images/flags/sm.gif differ diff --git a/askbot/skins/default/media/images/flags/sn.gif b/askbot/skins/default/media/images/flags/sn.gif new file mode 100755 index 00000000..6dac8709 Binary files /dev/null and b/askbot/skins/default/media/images/flags/sn.gif differ diff --git a/askbot/skins/default/media/images/flags/so.gif b/askbot/skins/default/media/images/flags/so.gif new file mode 100755 index 00000000..f1961694 Binary files /dev/null and b/askbot/skins/default/media/images/flags/so.gif differ diff --git a/askbot/skins/default/media/images/flags/sr.gif b/askbot/skins/default/media/images/flags/sr.gif new file mode 100755 index 00000000..0f7499ad Binary files /dev/null and b/askbot/skins/default/media/images/flags/sr.gif differ diff --git a/askbot/skins/default/media/images/flags/st.gif b/askbot/skins/default/media/images/flags/st.gif new file mode 100755 index 00000000..4f1e6e09 Binary files /dev/null and b/askbot/skins/default/media/images/flags/st.gif differ diff --git a/askbot/skins/default/media/images/flags/sv.gif b/askbot/skins/default/media/images/flags/sv.gif new file mode 100755 index 00000000..2d7b159a Binary files /dev/null and b/askbot/skins/default/media/images/flags/sv.gif differ diff --git a/askbot/skins/default/media/images/flags/sy.gif b/askbot/skins/default/media/images/flags/sy.gif new file mode 100755 index 00000000..dc8bd509 Binary files /dev/null and b/askbot/skins/default/media/images/flags/sy.gif differ diff --git a/askbot/skins/default/media/images/flags/sz.gif b/askbot/skins/default/media/images/flags/sz.gif new file mode 100755 index 00000000..f37aaf80 Binary files /dev/null and b/askbot/skins/default/media/images/flags/sz.gif differ diff --git a/askbot/skins/default/media/images/flags/tc.gif b/askbot/skins/default/media/images/flags/tc.gif new file mode 100755 index 00000000..11a8c232 Binary files /dev/null and b/askbot/skins/default/media/images/flags/tc.gif differ diff --git a/askbot/skins/default/media/images/flags/td.gif b/askbot/skins/default/media/images/flags/td.gif new file mode 100755 index 00000000..7aa8a10d Binary files /dev/null and b/askbot/skins/default/media/images/flags/td.gif differ diff --git a/askbot/skins/default/media/images/flags/tf.gif b/askbot/skins/default/media/images/flags/tf.gif new file mode 100755 index 00000000..51a43250 Binary files /dev/null and b/askbot/skins/default/media/images/flags/tf.gif differ diff --git a/askbot/skins/default/media/images/flags/tg.gif b/askbot/skins/default/media/images/flags/tg.gif new file mode 100755 index 00000000..ca6b4e77 Binary files /dev/null and b/askbot/skins/default/media/images/flags/tg.gif differ diff --git a/askbot/skins/default/media/images/flags/th.gif b/askbot/skins/default/media/images/flags/th.gif new file mode 100755 index 00000000..01307924 Binary files /dev/null and b/askbot/skins/default/media/images/flags/th.gif differ diff --git a/askbot/skins/default/media/images/flags/tj.gif b/askbot/skins/default/media/images/flags/tj.gif new file mode 100755 index 00000000..2fe38d4a Binary files /dev/null and b/askbot/skins/default/media/images/flags/tj.gif differ diff --git a/askbot/skins/default/media/images/flags/tk.gif b/askbot/skins/default/media/images/flags/tk.gif new file mode 100755 index 00000000..3d3a727f Binary files /dev/null and b/askbot/skins/default/media/images/flags/tk.gif differ diff --git a/askbot/skins/default/media/images/flags/tl.gif b/askbot/skins/default/media/images/flags/tl.gif new file mode 100755 index 00000000..df22d582 Binary files /dev/null and b/askbot/skins/default/media/images/flags/tl.gif differ diff --git a/askbot/skins/default/media/images/flags/tm.gif b/askbot/skins/default/media/images/flags/tm.gif new file mode 100755 index 00000000..36d0994f Binary files /dev/null and b/askbot/skins/default/media/images/flags/tm.gif differ diff --git a/askbot/skins/default/media/images/flags/tn.gif b/askbot/skins/default/media/images/flags/tn.gif new file mode 100755 index 00000000..917d4288 Binary files /dev/null and b/askbot/skins/default/media/images/flags/tn.gif differ diff --git a/askbot/skins/default/media/images/flags/to.gif b/askbot/skins/default/media/images/flags/to.gif new file mode 100755 index 00000000..d7ed4d11 Binary files /dev/null and b/askbot/skins/default/media/images/flags/to.gif differ diff --git a/askbot/skins/default/media/images/flags/tr.gif b/askbot/skins/default/media/images/flags/tr.gif new file mode 100755 index 00000000..e407d553 Binary files /dev/null and b/askbot/skins/default/media/images/flags/tr.gif differ diff --git a/askbot/skins/default/media/images/flags/tt.gif b/askbot/skins/default/media/images/flags/tt.gif new file mode 100755 index 00000000..47d3b806 Binary files /dev/null and b/askbot/skins/default/media/images/flags/tt.gif differ diff --git a/askbot/skins/default/media/images/flags/tv.gif b/askbot/skins/default/media/images/flags/tv.gif new file mode 100755 index 00000000..3c338277 Binary files /dev/null and b/askbot/skins/default/media/images/flags/tv.gif differ diff --git a/askbot/skins/default/media/images/flags/tw.gif b/askbot/skins/default/media/images/flags/tw.gif new file mode 100755 index 00000000..cacfd9b7 Binary files /dev/null and b/askbot/skins/default/media/images/flags/tw.gif differ diff --git a/askbot/skins/default/media/images/flags/tz.gif b/askbot/skins/default/media/images/flags/tz.gif new file mode 100755 index 00000000..82b52ca2 Binary files /dev/null and b/askbot/skins/default/media/images/flags/tz.gif differ diff --git a/askbot/skins/default/media/images/flags/ua.gif b/askbot/skins/default/media/images/flags/ua.gif new file mode 100755 index 00000000..5d6cd83f Binary files /dev/null and b/askbot/skins/default/media/images/flags/ua.gif differ diff --git a/askbot/skins/default/media/images/flags/ug.gif b/askbot/skins/default/media/images/flags/ug.gif new file mode 100755 index 00000000..58b731ad Binary files /dev/null and b/askbot/skins/default/media/images/flags/ug.gif differ diff --git a/askbot/skins/default/media/images/flags/um.gif b/askbot/skins/default/media/images/flags/um.gif new file mode 100755 index 00000000..3b4c8483 Binary files /dev/null and b/askbot/skins/default/media/images/flags/um.gif differ diff --git a/askbot/skins/default/media/images/flags/us.gif b/askbot/skins/default/media/images/flags/us.gif new file mode 100755 index 00000000..8f198f73 Binary files /dev/null and b/askbot/skins/default/media/images/flags/us.gif differ diff --git a/askbot/skins/default/media/images/flags/uy.gif b/askbot/skins/default/media/images/flags/uy.gif new file mode 100755 index 00000000..12848c74 Binary files /dev/null and b/askbot/skins/default/media/images/flags/uy.gif differ diff --git a/askbot/skins/default/media/images/flags/uz.gif b/askbot/skins/default/media/images/flags/uz.gif new file mode 100755 index 00000000..dc9daeca Binary files /dev/null and b/askbot/skins/default/media/images/flags/uz.gif differ diff --git a/askbot/skins/default/media/images/flags/va.gif b/askbot/skins/default/media/images/flags/va.gif new file mode 100755 index 00000000..2bd74468 Binary files /dev/null and b/askbot/skins/default/media/images/flags/va.gif differ diff --git a/askbot/skins/default/media/images/flags/vc.gif b/askbot/skins/default/media/images/flags/vc.gif new file mode 100755 index 00000000..48213816 Binary files /dev/null and b/askbot/skins/default/media/images/flags/vc.gif differ diff --git a/askbot/skins/default/media/images/flags/ve.gif b/askbot/skins/default/media/images/flags/ve.gif new file mode 100755 index 00000000..19ce6c14 Binary files /dev/null and b/askbot/skins/default/media/images/flags/ve.gif differ diff --git a/askbot/skins/default/media/images/flags/vg.gif b/askbot/skins/default/media/images/flags/vg.gif new file mode 100755 index 00000000..1fc0f96e Binary files /dev/null and b/askbot/skins/default/media/images/flags/vg.gif differ diff --git a/askbot/skins/default/media/images/flags/vi.gif b/askbot/skins/default/media/images/flags/vi.gif new file mode 100755 index 00000000..66f9e746 Binary files /dev/null and b/askbot/skins/default/media/images/flags/vi.gif differ diff --git a/askbot/skins/default/media/images/flags/vn.gif b/askbot/skins/default/media/images/flags/vn.gif new file mode 100755 index 00000000..f1e20c94 Binary files /dev/null and b/askbot/skins/default/media/images/flags/vn.gif differ diff --git a/askbot/skins/default/media/images/flags/vu.gif b/askbot/skins/default/media/images/flags/vu.gif new file mode 100755 index 00000000..8a8b2b06 Binary files /dev/null and b/askbot/skins/default/media/images/flags/vu.gif differ diff --git a/askbot/skins/default/media/images/flags/wales.gif b/askbot/skins/default/media/images/flags/wales.gif new file mode 100755 index 00000000..901d1750 Binary files /dev/null and b/askbot/skins/default/media/images/flags/wales.gif differ diff --git a/askbot/skins/default/media/images/flags/wf.gif b/askbot/skins/default/media/images/flags/wf.gif new file mode 100755 index 00000000..eaa954b1 Binary files /dev/null and b/askbot/skins/default/media/images/flags/wf.gif differ diff --git a/askbot/skins/default/media/images/flags/ws.gif b/askbot/skins/default/media/images/flags/ws.gif new file mode 100755 index 00000000..a51f939e Binary files /dev/null and b/askbot/skins/default/media/images/flags/ws.gif differ diff --git a/askbot/skins/default/media/images/flags/ye.gif b/askbot/skins/default/media/images/flags/ye.gif new file mode 100755 index 00000000..7b0183d0 Binary files /dev/null and b/askbot/skins/default/media/images/flags/ye.gif differ diff --git a/askbot/skins/default/media/images/flags/yt.gif b/askbot/skins/default/media/images/flags/yt.gif new file mode 100755 index 00000000..a2267c05 Binary files /dev/null and b/askbot/skins/default/media/images/flags/yt.gif differ diff --git a/askbot/skins/default/media/images/flags/za.gif b/askbot/skins/default/media/images/flags/za.gif new file mode 100755 index 00000000..ede52589 Binary files /dev/null and b/askbot/skins/default/media/images/flags/za.gif differ diff --git a/askbot/skins/default/media/images/flags/zm.gif b/askbot/skins/default/media/images/flags/zm.gif new file mode 100755 index 00000000..b2851d2b Binary files /dev/null and b/askbot/skins/default/media/images/flags/zm.gif differ diff --git a/askbot/skins/default/media/images/flags/zw.gif b/askbot/skins/default/media/images/flags/zw.gif new file mode 100755 index 00000000..02901f62 Binary files /dev/null and b/askbot/skins/default/media/images/flags/zw.gif differ diff --git a/askbot/skins/default/media/images/openid/aol.gif b/askbot/skins/default/media/images/openid/aol.gif new file mode 100755 index 00000000..decc4f12 Binary files /dev/null and b/askbot/skins/default/media/images/openid/aol.gif differ diff --git a/askbot/skins/default/media/images/openid/blogger.ico b/askbot/skins/default/media/images/openid/blogger.ico new file mode 100755 index 00000000..1b9730b0 Binary files /dev/null and b/askbot/skins/default/media/images/openid/blogger.ico differ diff --git a/askbot/skins/default/media/images/openid/claimid.ico b/askbot/skins/default/media/images/openid/claimid.ico new file mode 100755 index 00000000..2b80f491 Binary files /dev/null and b/askbot/skins/default/media/images/openid/claimid.ico differ diff --git a/askbot/skins/default/media/images/openid/facebook.gif b/askbot/skins/default/media/images/openid/facebook.gif new file mode 100755 index 00000000..b997b358 Binary files /dev/null and b/askbot/skins/default/media/images/openid/facebook.gif differ diff --git a/askbot/skins/default/media/images/openid/flickr.ico b/askbot/skins/default/media/images/openid/flickr.ico new file mode 100755 index 00000000..11f6e07f Binary files /dev/null and b/askbot/skins/default/media/images/openid/flickr.ico differ diff --git a/askbot/skins/default/media/images/openid/google.gif b/askbot/skins/default/media/images/openid/google.gif new file mode 100755 index 00000000..1b6cd07b Binary files /dev/null and b/askbot/skins/default/media/images/openid/google.gif differ diff --git a/askbot/skins/default/media/images/openid/livejournal.ico b/askbot/skins/default/media/images/openid/livejournal.ico new file mode 100755 index 00000000..f3d21ec5 Binary files /dev/null and b/askbot/skins/default/media/images/openid/livejournal.ico differ diff --git a/askbot/skins/default/media/images/openid/myopenid.ico b/askbot/skins/default/media/images/openid/myopenid.ico new file mode 100755 index 00000000..ceb06e6a Binary files /dev/null and b/askbot/skins/default/media/images/openid/myopenid.ico differ diff --git a/askbot/skins/default/media/images/openid/openid-inputicon.gif b/askbot/skins/default/media/images/openid/openid-inputicon.gif new file mode 100755 index 00000000..cde836c8 Binary files /dev/null and b/askbot/skins/default/media/images/openid/openid-inputicon.gif differ diff --git a/askbot/skins/default/media/images/openid/openid.gif b/askbot/skins/default/media/images/openid/openid.gif new file mode 100755 index 00000000..c718b0e6 Binary files /dev/null and b/askbot/skins/default/media/images/openid/openid.gif differ diff --git a/askbot/skins/default/media/images/openid/technorati.ico b/askbot/skins/default/media/images/openid/technorati.ico new file mode 100755 index 00000000..fa1083c1 Binary files /dev/null and b/askbot/skins/default/media/images/openid/technorati.ico differ diff --git a/askbot/skins/default/media/images/openid/twitter.png b/askbot/skins/default/media/images/openid/twitter.png new file mode 100755 index 00000000..9a6552d1 Binary files /dev/null and b/askbot/skins/default/media/images/openid/twitter.png differ diff --git a/askbot/skins/default/media/images/openid/verisign.ico b/askbot/skins/default/media/images/openid/verisign.ico new file mode 100755 index 00000000..3953af93 Binary files /dev/null and b/askbot/skins/default/media/images/openid/verisign.ico differ diff --git a/askbot/skins/default/media/images/openid/vidoop.ico b/askbot/skins/default/media/images/openid/vidoop.ico new file mode 100755 index 00000000..bbd9a0d5 Binary files /dev/null and b/askbot/skins/default/media/images/openid/vidoop.ico differ diff --git a/askbot/skins/default/media/images/openid/wordpress.ico b/askbot/skins/default/media/images/openid/wordpress.ico new file mode 100755 index 00000000..31b7d2c2 Binary files /dev/null and b/askbot/skins/default/media/images/openid/wordpress.ico differ diff --git a/askbot/skins/default/media/images/openid/yahoo.gif b/askbot/skins/default/media/images/openid/yahoo.gif new file mode 100755 index 00000000..0f0eb8ef Binary files /dev/null and b/askbot/skins/default/media/images/openid/yahoo.gif differ diff --git a/askbot/skins/default/media/images/sprites_source/other.svg b/askbot/skins/default/media/images/sprites_source/other.svg new file mode 100644 index 00000000..34898e30 --- /dev/null +++ b/askbot/skins/default/media/images/sprites_source/other.svg @@ -0,0 +1,732 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + X + + + X + + + X + + + + + + + + + + + + + + + + + + + + + + + + + ASK A QUESTION + ASK A QUESTION + + + + + + + + + + + + + diff --git a/askbot/skins/default/media/jquery-openid/images/aol.gif b/askbot/skins/default/media/jquery-openid/images/aol.gif new file mode 100755 index 00000000..24d1e152 Binary files /dev/null and b/askbot/skins/default/media/jquery-openid/images/aol.gif differ diff --git a/askbot/skins/default/media/jquery-openid/images/blogger-1.png b/askbot/skins/default/media/jquery-openid/images/blogger-1.png new file mode 100755 index 00000000..8b360ea5 Binary files /dev/null and b/askbot/skins/default/media/jquery-openid/images/blogger-1.png differ diff --git a/askbot/skins/default/media/jquery-openid/images/blogger.ico b/askbot/skins/default/media/jquery-openid/images/blogger.ico new file mode 100755 index 00000000..1b9730b0 Binary files /dev/null and b/askbot/skins/default/media/jquery-openid/images/blogger.ico differ diff --git a/askbot/skins/default/media/jquery-openid/images/claimid-0.png b/askbot/skins/default/media/jquery-openid/images/claimid-0.png new file mode 100755 index 00000000..4a0ea1b3 Binary files /dev/null and b/askbot/skins/default/media/jquery-openid/images/claimid-0.png differ diff --git a/askbot/skins/default/media/jquery-openid/images/claimid.ico b/askbot/skins/default/media/jquery-openid/images/claimid.ico new file mode 100755 index 00000000..2b80f491 Binary files /dev/null and b/askbot/skins/default/media/jquery-openid/images/claimid.ico differ diff --git a/askbot/skins/default/media/jquery-openid/images/facebook.gif b/askbot/skins/default/media/jquery-openid/images/facebook.gif new file mode 100755 index 00000000..c5586455 Binary files /dev/null and b/askbot/skins/default/media/jquery-openid/images/facebook.gif differ diff --git a/askbot/skins/default/media/jquery-openid/images/flickr.ico b/askbot/skins/default/media/jquery-openid/images/flickr.ico new file mode 100755 index 00000000..11f6e07f Binary files /dev/null and b/askbot/skins/default/media/jquery-openid/images/flickr.ico differ diff --git a/askbot/skins/default/media/jquery-openid/images/flickr.png b/askbot/skins/default/media/jquery-openid/images/flickr.png new file mode 100755 index 00000000..142405a6 Binary files /dev/null and b/askbot/skins/default/media/jquery-openid/images/flickr.png differ diff --git a/askbot/skins/default/media/jquery-openid/images/google.gif b/askbot/skins/default/media/jquery-openid/images/google.gif new file mode 100755 index 00000000..65395365 Binary files /dev/null and b/askbot/skins/default/media/jquery-openid/images/google.gif differ diff --git a/askbot/skins/default/media/jquery-openid/images/identica.png b/askbot/skins/default/media/jquery-openid/images/identica.png new file mode 100644 index 00000000..2b607db1 Binary files /dev/null and b/askbot/skins/default/media/jquery-openid/images/identica.png differ diff --git a/askbot/skins/default/media/jquery-openid/images/linkedin.gif b/askbot/skins/default/media/jquery-openid/images/linkedin.gif new file mode 100644 index 00000000..36e049ac Binary files /dev/null and b/askbot/skins/default/media/jquery-openid/images/linkedin.gif differ diff --git a/askbot/skins/default/media/jquery-openid/images/livejournal-1.png b/askbot/skins/default/media/jquery-openid/images/livejournal-1.png new file mode 100755 index 00000000..e6436081 Binary files /dev/null and b/askbot/skins/default/media/jquery-openid/images/livejournal-1.png differ diff --git a/askbot/skins/default/media/jquery-openid/images/livejournal.ico b/askbot/skins/default/media/jquery-openid/images/livejournal.ico new file mode 100755 index 00000000..f3d21ec5 Binary files /dev/null and b/askbot/skins/default/media/jquery-openid/images/livejournal.ico differ diff --git a/askbot/skins/default/media/jquery-openid/images/myopenid-2.png b/askbot/skins/default/media/jquery-openid/images/myopenid-2.png new file mode 100755 index 00000000..f64fb8e8 Binary files /dev/null and b/askbot/skins/default/media/jquery-openid/images/myopenid-2.png differ diff --git a/askbot/skins/default/media/jquery-openid/images/myopenid.ico b/askbot/skins/default/media/jquery-openid/images/myopenid.ico new file mode 100755 index 00000000..ceb06e6a Binary files /dev/null and b/askbot/skins/default/media/jquery-openid/images/myopenid.ico differ diff --git a/askbot/skins/default/media/jquery-openid/images/openid-inputicon.gif b/askbot/skins/default/media/jquery-openid/images/openid-inputicon.gif new file mode 100755 index 00000000..cde836c8 Binary files /dev/null and b/askbot/skins/default/media/jquery-openid/images/openid-inputicon.gif differ diff --git a/askbot/skins/default/media/jquery-openid/images/openid.gif b/askbot/skins/default/media/jquery-openid/images/openid.gif new file mode 100755 index 00000000..19eb7c6f Binary files /dev/null and b/askbot/skins/default/media/jquery-openid/images/openid.gif differ diff --git a/askbot/skins/default/media/jquery-openid/images/openidico.png b/askbot/skins/default/media/jquery-openid/images/openidico.png new file mode 100755 index 00000000..ab622669 Binary files /dev/null and b/askbot/skins/default/media/jquery-openid/images/openidico.png differ diff --git a/askbot/skins/default/media/jquery-openid/images/openidico16.png b/askbot/skins/default/media/jquery-openid/images/openidico16.png new file mode 100755 index 00000000..ad718ac5 Binary files /dev/null and b/askbot/skins/default/media/jquery-openid/images/openidico16.png differ diff --git a/askbot/skins/default/media/jquery-openid/images/technorati-1.png b/askbot/skins/default/media/jquery-openid/images/technorati-1.png new file mode 100755 index 00000000..f7195240 Binary files /dev/null and b/askbot/skins/default/media/jquery-openid/images/technorati-1.png differ diff --git a/askbot/skins/default/media/jquery-openid/images/technorati.ico b/askbot/skins/default/media/jquery-openid/images/technorati.ico new file mode 100755 index 00000000..fa1083c1 Binary files /dev/null and b/askbot/skins/default/media/jquery-openid/images/technorati.ico differ diff --git a/askbot/skins/default/media/jquery-openid/images/twitter.gif b/askbot/skins/default/media/jquery-openid/images/twitter.gif new file mode 100644 index 00000000..173cace1 Binary files /dev/null and b/askbot/skins/default/media/jquery-openid/images/twitter.gif differ diff --git a/askbot/skins/default/media/jquery-openid/images/verisign-2.png b/askbot/skins/default/media/jquery-openid/images/verisign-2.png new file mode 100755 index 00000000..c1467008 Binary files /dev/null and b/askbot/skins/default/media/jquery-openid/images/verisign-2.png differ diff --git a/askbot/skins/default/media/jquery-openid/images/verisign.ico b/askbot/skins/default/media/jquery-openid/images/verisign.ico new file mode 100755 index 00000000..3953af93 Binary files /dev/null and b/askbot/skins/default/media/jquery-openid/images/verisign.ico differ diff --git a/askbot/skins/default/media/jquery-openid/images/vidoop.ico b/askbot/skins/default/media/jquery-openid/images/vidoop.ico new file mode 100755 index 00000000..bbd9a0d5 Binary files /dev/null and b/askbot/skins/default/media/jquery-openid/images/vidoop.ico differ diff --git a/askbot/skins/default/media/jquery-openid/images/vidoop.png b/askbot/skins/default/media/jquery-openid/images/vidoop.png new file mode 100755 index 00000000..032c9e98 Binary files /dev/null and b/askbot/skins/default/media/jquery-openid/images/vidoop.png differ diff --git a/askbot/skins/default/media/jquery-openid/images/wordpress.ico b/askbot/skins/default/media/jquery-openid/images/wordpress.ico new file mode 100755 index 00000000..31b7d2c2 Binary files /dev/null and b/askbot/skins/default/media/jquery-openid/images/wordpress.ico differ diff --git a/askbot/skins/default/media/jquery-openid/images/wordpress.png b/askbot/skins/default/media/jquery-openid/images/wordpress.png new file mode 100755 index 00000000..ee29f0cf Binary files /dev/null and b/askbot/skins/default/media/jquery-openid/images/wordpress.png differ diff --git a/askbot/skins/default/media/jquery-openid/images/yahoo.gif b/askbot/skins/default/media/jquery-openid/images/yahoo.gif new file mode 100755 index 00000000..614910a9 Binary files /dev/null and b/askbot/skins/default/media/jquery-openid/images/yahoo.gif differ diff --git a/askbot/skins/default/media/jquery-openid/jquery.openid.js b/askbot/skins/default/media/jquery-openid/jquery.openid.js new file mode 100644 index 00000000..249413b9 --- /dev/null +++ b/askbot/skins/default/media/jquery-openid/jquery.openid.js @@ -0,0 +1,440 @@ +$.fn.authenticator = function() { + var signin_page = $(this); + var signin_form = $('#signin-form'); + var openid_login_token_input = $('input[name=openid_login_token]'); + var openid_login_token_input_fields = $('#openid-fs'); + var provider_name_input = $('input[name=login_provider_name]'); + var email_input_fields = $('#email-input-fs'); + var account_recovery_heading = $('#account-recovery-heading'); + var account_recovery_hint = $('#account-recovery-form>.hint'); + var account_recovery_link = $('#account-recovery-form>.hint>span.link'); + var account_recovery_text_span = $('#account-recovery-form>.hint>span.text'); + var password_input_fields = $('#password-fs'); + var existing_login_methods_div = $('#existing-login-methods'); + var openid_submit_button = $('input[name=openid_login_with_extra_token]'); + var existing_login_methods = {}; + + var account_recovery_question_text = account_recovery_heading.html(); + var account_recovery_prompt_text = account_recovery_text_span.html(); + + var setup_click_handler = function(elements, handler_function){ + elements.unbind('click').click(handler_function); + }; + + var setup_enter_key_handler = function(elements, handler_function){ + elements.each( + function(index, element){ + $(element).unbind('keypress').keypress( + function(e){ + if ((e.which && e.which == 13)||(e.keyCode && e.keyCode == 13)){ + if (handler_function){ + return handler_function(); + } + else { + element.click(); + return false; + } + } + } + ); + } + ); + }; + + var setup_event_handlers = function(elements, handler_function){ + setup_click_handler(elements, handler_function); + setup_enter_key_handler(elements); + }; + + var get_provider_name = function(row_el){ + var row = $(row_el); + var name_span = row.find('.ab-provider-name'); + return provider_name = $.trim(name_span.html()); + }; + + var read_existing_login_methods = function(){ + $('.ab-provider-row').each( + function(i, provider_row){ + var provider_name = get_provider_name(provider_row); + existing_login_methods[provider_name] = true; + } + ); + }; + + var setup_login_method_deleters = function(){ + $('.ab-provider-row').each( + function(i, provider_row){ + var provider_name = get_provider_name(provider_row); + var remove_button = $( + provider_row + ).find('button'); + remove_button.click( + function(){ + var message = interpolate(gettext('Are you sure you want to remove your %s login?'), [provider_name]); + if (confirm(message)){ + $.ajax({ + type: 'POST', + url: authUrl + 'delete_login_method/',//url!!! + data: {provider_name: provider_name}, + success: function(data, text_status, xhr){ + $(provider_row).remove(); + delete existing_login_methods[provider_name]; + provider_count -=1; + if (provider_count < 0){ + provider_count === 0; + } + if (provider_count === 0){ + $('#ab-existing-login-methods').remove(); + $('#ab-show-login-methods').remove(); + $('h1').html( + gettext("Please add one or more login methods.") + ); + $('#login-intro').html( + gettext("You don\'t have a method to log in right now, please add one or more by clicking any of the icons below.") + ); + existing_login_methods = null; + } + } + }); + } + } + ); + } + ); + } + + var submit_login_with_password = function(){ + var username = $('#id_username'); + var password = $('#id_password'); + + if (username.val().length < 1){ + username.focus(); + return false; + } + if (password.val().length < 1){ + password.focus(); + return false; + } + return true; + }; + + var submit_change_password = function(){ + var newpass = $('#id_new_password'); + var newpass_retyped = $('#id_new_password_retyped'); + if (newpass.val().length < 1){ + newpass.focus(); + return false + } + if (newpass_retyped.val().length < 1){ + newpass_retyped.focus(); + return false; + } + if (newpass.val() !== newpass_retyped.val()){ + newpass_retyped.after( + '' + + gettext('passwords do not match') + + '' + ); + newpass.val('').focus(); + newpass_retyped.val(''); + return false; + } + return true; + }; + + //validator, may be extended to check url for openid + var submit_with_extra_openid_token = function() { + if (openid_login_token_input.val().length < 1) { + openid_login_token_input.focus(); + return false; + } + return true; + }; + + var insert_login_list_enabler = function(){ + var enabler = $('#login-list-enabler'); + if (enabler.is('p#login-list-enabler')){ + enabler.show(); + } + else { + enabler = $( + '

        ' + + gettext('Show/change current login methods') + + '

        '); + setup_event_handlers( + enabler, + function(){ + if (askbot['settings']['signin_always_show_local_login'] === false){ + password_input_fields.hide(); + } + openid_login_token_input_fields.hide(); + enabler.hide(); + existing_login_methods_div.show(); + } + ); + existing_login_methods_div.after(enabler); + } + }; + + var reset_password_input_fields = function(){ + if (userIsAuthenticated){ + $('#id_new_password').val(''); + $('#id_new_password_retyped').val(''); + } + else { + $('#id_username').val(''); + $('#id_password').val(''); + } + }; + + var reset_form = function(){ + openid_login_token_input_fields.hide(); + if (askbot['settings']['signin_always_show_local_login'] === false){ + password_input_fields.hide(); + } + reset_password_input_fields(); + if (userIsAuthenticated === false){ + email_input_fields.hide(); + account_recovery_heading.hide(); + account_recovery_link.show(); + account_recovery_hint.show(); + $('#account-recovery-form>p.hint').css('margin-top','10px'); + account_recovery_text_span.html(account_recovery_question_text).show(); + } + else { + if (existing_login_methods !== null){ + existing_login_methods_div.hide(); + insert_login_list_enabler(); + } + } + }; + + var reset_form_and_errors = function(){ + reset_form(); + $('.error').remove(); + } + + var set_provider_name = function(element){ + var provider_name = element.attr('name'); + provider_name_input.val(provider_name); + }; + + var show_openid_input_fields = function(provider_name){ + reset_form_and_errors(); + var token_name = extra_token_name[provider_name] + if (userIsAuthenticated){ + $('#openid-heading').html( + interpolate(gettext('Please enter your %s, then proceed'), [token_name]) + ); + var button_text = gettext('Connect your %(provider_name)s account to %(site)s'); + var data = { + provider_name: provider_name, + site: siteName + } + button_text = interpolate(button_text, data, true); + openid_submit_button.val(button_text); + } + else { + $('#openid-heading>span').html(token_name); + } + openid_login_token_input_fields.show(); + openid_login_token_input.focus(); + }; + + var start_simple_login = function() { + //$('#openid_form .providers td').removeClass('highlight'); + //$li.addClass('highlight'); + set_provider_name($(this)); + signin_form.submit(); + return true; + }; + + var start_login_with_extra_openid_token = function() { + show_openid_input_fields($(this).attr('name')); + set_provider_name($(this)); + + setup_enter_key_handler( + openid_login_token_input, + function(){ + openid_submit_button.click(); + return false; + } + ); + + setup_event_handlers( + openid_submit_button, + function(){ + signin_form.unbind( + 'submit' + ).submit( + submit_with_extra_openid_token + ); + } + ); + return false; + }; + + var start_facebook_login = function(){ + set_provider_name($(this)); + if (typeof FB != 'undefined'){ + FB.getLoginStatus(function(response){ + if (response.authResponse){ + signin_form.submit(); + } + else { + if (FB.getAuthResponse()){ + signin_form.submit(); + } + FB.login(); + } + }); + } + return false; + }; + + var start_password_login_or_change = function(){ + //called upon clicking on one of the password login buttons + reset_form_and_errors(); + set_provider_name($(this)); + var provider_name = $(this).attr('name'); + return setup_password_login_or_change(provider_name); + }; + + var init_always_visible_password_login = function(){ + reset_form(); + //will break wordpress and ldap + provider_name_input.val('local'); + setup_password_login_or_change('local'); + }; + + var setup_password_login_or_change = function(provider_name){ + var token_name = extra_token_name[provider_name] + var password_action_input = $('input[name=password_action]'); + if (userIsAuthenticated === true){ + var password_button = $('input[name=change_password]'); + var submit_action = submit_change_password; + if (provider_name === 'local'){ + var provider_cleaned_name = siteName; + } + else { + var provider_cleaned_name = provider_name; + } + if (existing_login_methods && existing_login_methods[provider_name]){ + var password_heading_text = interpolate(gettext('Change your %s password'), [provider_cleaned_name]) + var password_button_text = gettext('Change password') + } + else { + var password_heading_text = interpolate(gettext('Create a password for %s'), [provider_cleaned_name]) + var password_button_text = gettext('Create password') + } + $('#password-heading').html( + password_heading_text + ) + password_button.val(password_button_text); + password_action_input.val('change_password'); + var focus_input = $('#id_new_password'); + var submittable_input = $('#id_new_password_retyped'); + } + else{ + $('#password-heading>span').html(token_name); + var password_button = $('input[name=login_with_password]'); + var submit_action = submit_login_with_password; + var create_pw_link = $('a.create-password-account') + if (create_pw_link.length > 0){ + create_pw_link.html(gettext('Create a password-protected account')); + var url = create_pw_link.attr('href'); + if (url.indexOf('?') !== -1){ + url = url.replace(/\?.*$/,'?login_provider=' + provider_name); + } + else{ + url += '?login_provider=' + provider_name; + } + create_pw_link.attr('href', url); + } + password_action_input.val('login'); + var focus_input = $('#id_username'); + var submittable_input = $('#id_password'); + } + password_input_fields.show(); + focus_input.focus(); + + var submit_password_login = function(){ + signin_form.unbind('submit').submit(submit_action); + }; + + setup_enter_key_handler( + submittable_input, + function() { + password_button.click(); + return false; + } + ); + setup_event_handlers(password_button, submit_password_login); + return false; + }; + + var start_account_recovery = function(){ + reset_form_and_errors(); + account_recovery_hint.hide(); + account_recovery_heading.css('margin-bottom', '0px'); + account_recovery_heading.html(account_recovery_prompt_text).show(); + email_input_fields.show(); + $('#id_email').focus(); + }; + + var clear_password_fields = function(){ + $('#id_password').val(''); + $('#id_new_password').val(''); + $('#id_new_password_retyped').val(''); + }; + + var setup_default_handlers = function(){ + setup_event_handlers( + signin_page.find('input.openid-direct'), + start_simple_login + ); + + setup_event_handlers( + signin_page.find('input.openid-username'), + start_login_with_extra_openid_token + ); + + setup_event_handlers( + signin_page.find('input.openid-generic'), + start_login_with_extra_openid_token + ); + + setup_event_handlers( + signin_page.find('input.facebook'), + start_facebook_login + ); + + setup_event_handlers( + signin_page.find('input.oauth'), + start_simple_login + ); + + setup_event_handlers( + signin_page.find('input.password'), + start_password_login_or_change + ); + setup_event_handlers( + signin_page.find('input.wordpress_site'), + start_password_login_or_change + ); + + setup_event_handlers(account_recovery_link, start_account_recovery); + + if (userIsAuthenticated){ + read_existing_login_methods(); + setup_login_method_deleters(); + } + }; + + setup_default_handlers(); + if (askbot['settings']['signin_always_show_local_login'] === true){ + init_always_visible_password_login(); + } + clear_password_fields(); + return this; +}; diff --git a/askbot/skins/default/media/jquery-openid/openid.css b/askbot/skins/default/media/jquery-openid/openid.css new file mode 100644 index 00000000..9a1db85f --- /dev/null +++ b/askbot/skins/default/media/jquery-openid/openid.css @@ -0,0 +1,39 @@ +div#login-icons {padding: 0;} +ul.login-icons {width: 450px; margin:0;padding:0;text-align:left; list-style-type:none; display:block;} +ul.login-icons li {display:inline;} +ul.large input {height: 40px; width: 90px;border:1px solid #ccc;margin:0 5px 5px 0;} +.openid-signin h1 {padding-bottom: 10px;} +.openid-signin h2#account-recovery-heading {margin-bottom:2px;} +#account-recovery-form p.hint a {color:#1b79bd; text-decoration: none;} +#account-recovery-form p.hint a:hover {text-decoration: underline;} +.openid-signin fieldset { border-style:none;margin:0;padding:0;} +.openid-signin p {margin:0;padding:0}; +.openid-signin p.hint {color: #555;} +.openid-signin #password-fs label {width:100px;margin-top:5px;text-align:left;} +.openid-signin #password-fs .hint {margin-bottom:5px} +#password-fs a {padding-left:5px;} +/*#signin-form #account-recovery-form input {cursor:pointer;} +#signin-form #account-recovery-form input.text {cursor:default;}*/ + +table.login { text-align: right;} + +.openid-signin .submit-b { + cursor: pointer; /*letter-spacing:1px;*/ + margin: 0 0 2px 0; + vertical-align: middle; +} + +.openid-signin .highlight { -moz-border-radius:4px; -webkit-border-radius:4px; background-color: #FD6} + +ul.providers { + display: block; +} + +.openid-signin th { + color: #555; + font-weight: normal; +} + +.openid-signin .ab-provider-name { + font-weight: bold; +} diff --git a/askbot/skins/default/media/js/autocompleter.js b/askbot/skins/default/media/js/autocompleter.js new file mode 100644 index 00000000..8121d2ea --- /dev/null +++ b/askbot/skins/default/media/js/autocompleter.js @@ -0,0 +1,794 @@ +/** + * AutoCompleter Object, refactored closure style from + * jQuery autocomplete plugin + * @param {Object=} options Settings + * @constructor + */ +var AutoCompleter = function(options) { + + /** + * Default options for autocomplete plugin + */ + var defaults = { + promptText: '', + autocompleteMultiple: true, + multipleSeparator: ' ',//a single character + inputClass: 'acInput', + loadingClass: 'acLoading', + resultsClass: 'acResults', + selectClass: 'acSelect', + queryParamName: 'q', + limitParamName: 'limit', + extraParams: {}, + lineSeparator: '\n', + cellSeparator: '|', + minChars: 2, + maxItemsToShow: 10, + delay: 400, + useCache: true, + maxCacheLength: 10, + matchSubset: true, + matchCase: false, + matchInside: true, + mustMatch: false, + preloadData: false, + selectFirst: false, + stopCharRegex: /\s+/, + selectOnly: false, + formatItem: null, // TBD + onItemSelect: false, + autoFill: false, + filterResults: true, + sortResults: true, + sortFunction: false, + onNoMatch: false + }; + + /** + * Options dictionary + * @type Object + * @private + */ + this.options = $.extend({}, defaults, options); + + /** + * Cached data + * @type Object + * @private + */ + this.cacheData_ = {}; + + /** + * Number of cached data items + * @type number + * @private + */ + this.cacheLength_ = 0; + + /** + * Class name to mark selected item + * @type string + * @private + */ + this.selectClass_ = 'jquery-autocomplete-selected-item'; + + /** + * Handler to activation timeout + * @type ?number + * @private + */ + this.keyTimeout_ = null; + + /** + * Last key pressed in the input field (store for behavior) + * @type ?number + * @private + */ + this.lastKeyPressed_ = null; + + /** + * Last value processed by the autocompleter + * @type ?string + * @private + */ + this.lastProcessedValue_ = null; + + /** + * Last value selected by the user + * @type ?string + * @private + */ + this.lastSelectedValue_ = null; + + /** + * Is this autocompleter active? + * @type boolean + * @private + */ + this.active_ = false; + + /** + * Is it OK to finish on blur? + * @type boolean + * @private + */ + this.finishOnBlur_ = true; + + this.options.minChars = parseInt(this.options.minChars, 10); + if (isNaN(this.options.minChars) || this.options.minChars < 1) { + this.options.minChars = 2; + } + + this.options.maxItemsToShow = parseInt(this.options.maxItemsToShow, 10); + if (isNaN(this.options.maxItemsToShow) || this.options.maxItemsToShow < 1) { + this.options.maxItemsToShow = 10; + } + + this.options.maxCacheLength = parseInt(this.options.maxCacheLength, 10); + if (isNaN(this.options.maxCacheLength) || this.options.maxCacheLength < 1) { + this.options.maxCacheLength = 10; + } + + if (this.options['preloadData'] === true){ + this.fetchRemoteData('', function(){}); + } +}; +inherits(AutoCompleter, WrappedElement); + +AutoCompleter.prototype.decorate = function(element){ + + /** + * Init DOM elements repository + */ + this._element = element; + + /** + * Switch off the native autocomplete + */ + this._element.attr('autocomplete', 'off'); + + /** + * Set prompt text + */ + this.setPrompt(); + + /** + * Create DOM element to hold results + */ + this._results = $('
        ').hide(); + if (this.options.resultsClass) { + this._results.addClass(this.options.resultsClass); + } + this._results.css({ + position: 'absolute' + }); + $('body').append(this._results); + + this.setEventHandlers(); +}; + +AutoCompleter.prototype.setPrompt = function() { + this._element.val(this.options['promptText']); + this._element.addClass('prompt'); +}; + +AutoCompleter.prototype.removePrompt = function() { + if (this._element.hasClass('prompt')) { + this._element.removeClass('prompt'); + var val = this._element.val(); + if (val === this.options['promptText']) { + this._element.val(''); + } + } +}; + +AutoCompleter.prototype.setEventHandlers = function(){ + /** + * Shortcut to self + */ + var self = this; + + /** + * Attach keyboard monitoring to $elem + */ + self._element.keydown(function(e) { + + self.removePrompt(); + + self.lastKeyPressed_ = e.keyCode; + switch(self.lastKeyPressed_) { + + case 38: // up + e.preventDefault(); + if (self.active_) { + self.focusPrev(); + } else { + self.activate(); + } + return false; + break; + + case 40: // down + e.preventDefault(); + if (self.active_) { + self.focusNext(); + } else { + self.activate(); + } + return false; + break; + + case 9: // tab + case 13: // return + if (self.active_) { + e.preventDefault(); + self.selectCurrent(); + return false; + } + break; + + case 27: // escape + if ($.trim(self._element.val()) === '') { + self.setPrompt(); + return false; + } + if (self.active_) { + e.preventDefault(); + self.finish(); + return false; + } + break; + + default: + self.activate(); + + } + }); + self._element.blur(function() { + if (self.finishOnBlur_) { + setTimeout(function() { self.finish(); }, 200); + } + }); +}; + +AutoCompleter.prototype.position = function() { + var offset = this._element.offset(); + this._results.css({ + top: offset.top + this._element.outerHeight(), + left: offset.left + }); +}; + +AutoCompleter.prototype.cacheRead = function(filter) { + var filterLength, searchLength, search, maxPos, pos; + if (this.options.useCache) { + filter = String(filter); + filterLength = filter.length; + if (this.options.matchSubset) { + searchLength = 1; + } else { + searchLength = filterLength; + } + while (searchLength <= filterLength) { + if (this.options.matchInside) { + maxPos = filterLength - searchLength; + } else { + maxPos = 0; + } + pos = 0; + while (pos <= maxPos) { + search = filter.substr(0, searchLength); + if (this.cacheData_[search] !== undefined) { + return this.cacheData_[search]; + } + pos++; + } + searchLength++; + } + } + return false; +}; + +AutoCompleter.prototype.cacheWrite = function(filter, data) { + if (this.options.useCache) { + if (this.cacheLength_ >= this.options.maxCacheLength) { + this.cacheFlush(); + } + filter = String(filter); + if (this.cacheData_[filter] !== undefined) { + this.cacheLength_++; + } + return this.cacheData_[filter] = data; + } + return false; +}; + +AutoCompleter.prototype.cacheFlush = function() { + this.cacheData_ = {}; + this.cacheLength_ = 0; +}; + +AutoCompleter.prototype.callHook = function(hook, data) { + var f = this.options[hook]; + if (f && $.isFunction(f)) { + return f(data, this); + } + return false; +}; + +AutoCompleter.prototype.activate = function() { + var self = this; + var activateNow = function() { + self.activateNow(); + }; + var delay = parseInt(this.options.delay, 10); + if (isNaN(delay) || delay <= 0) { + delay = 250; + } + if (this.keyTimeout_) { + clearTimeout(this.keyTimeout_); + } + this.keyTimeout_ = setTimeout(activateNow, delay); +}; + +AutoCompleter.prototype.activateNow = function() { + var value = this.getValue(); + if (value !== this.lastProcessedValue_ && value !== this.lastSelectedValue_) { + if (value.length >= this.options.minChars) { + this.active_ = true; + this.lastProcessedValue_ = value; + this.fetchData(value); + } + } +}; + +AutoCompleter.prototype.fetchData = function(value) { + if (this.options.data) { + this.filterAndShowResults(this.options.data, value); + } else { + var self = this; + this.fetchRemoteData(value, function(remoteData) { + self.filterAndShowResults(remoteData, value); + }); + } +}; + +AutoCompleter.prototype.fetchRemoteData = function(filter, callback) { + var data = this.cacheRead(filter); + if (data) { + callback(data); + } else { + var self = this; + if (this._element){ + this._element.addClass(this.options.loadingClass); + } + var ajaxCallback = function(data) { + var parsed = false; + if (data !== false) { + parsed = self.parseRemoteData(data); + self.options.data = parsed;//cache data forever - E.F. + self.cacheWrite(filter, parsed); + } + if (self._element){ + self._element.removeClass(self.options.loadingClass); + } + callback(parsed); + }; + $.ajax({ + url: this.makeUrl(filter), + success: ajaxCallback, + error: function() { + ajaxCallback(false); + } + }); + } +}; + +AutoCompleter.prototype.setOption = function(name, value){ + this.options[name] = value; +}; + +AutoCompleter.prototype.setExtraParam = function(name, value) { + var index = $.trim(String(name)); + if (index) { + if (!this.options.extraParams) { + this.options.extraParams = {}; + } + if (this.options.extraParams[index] !== value) { + this.options.extraParams[index] = value; + this.cacheFlush(); + } + } +}; + +AutoCompleter.prototype.makeUrl = function(param) { + var self = this; + var url = this.options.url; + var params = $.extend({}, this.options.extraParams); + // If options.queryParamName === false, append query to url + // instead of using a GET parameter + if (this.options.queryParamName === false) { + url += encodeURIComponent(param); + } else { + params[this.options.queryParamName] = param; + } + + if (this.options.limitParamName && this.options.maxItemsToShow) { + params[this.options.limitParamName] = this.options.maxItemsToShow; + } + + var urlAppend = []; + $.each(params, function(index, value) { + urlAppend.push(self.makeUrlParam(index, value)); + }); + if (urlAppend.length) { + url += url.indexOf('?') == -1 ? '?' : '&'; + url += urlAppend.join('&'); + } + return url; +}; + +AutoCompleter.prototype.makeUrlParam = function(name, value) { + return String(name) + '=' + encodeURIComponent(value); +}; + +/** + * Sanitize CR and LF, then split into lines + */ +AutoCompleter.prototype.splitText = function(text) { + return String(text).replace(/(\r\n|\r|\n)/g, '\n').split(this.options.lineSeparator); +}; + +AutoCompleter.prototype.parseRemoteData = function(remoteData) { + var value, lines, i, j, data; + var results = []; + var lines = this.splitText(remoteData); + for (i = 0; i < lines.length; i++) { + var line = lines[i].split(this.options.cellSeparator); + data = []; + for (j = 0; j < line.length; j++) { + data.push(unescape(line[j])); + } + value = data.shift(); + results.push({ value: unescape(value), data: data }); + } + return results; +}; + +AutoCompleter.prototype.filterAndShowResults = function(results, filter) { + this.showResults(this.filterResults(results, filter), filter); +}; + +AutoCompleter.prototype.filterResults = function(results, filter) { + + var filtered = []; + var value, data, i, result, type, include; + var regex, pattern, testValue; + + for (i = 0; i < results.length; i++) { + result = results[i]; + type = typeof result; + if (type === 'string') { + value = result; + data = {}; + } else if ($.isArray(result)) { + value = result[0]; + data = result.slice(1); + } else if (type === 'object') { + value = result.value; + data = result.data; + } + value = String(value); + if (value > '') { + if (typeof data !== 'object') { + data = {}; + } + if (this.options.filterResults) { + pattern = String(filter); + testValue = String(value); + if (!this.options.matchCase) { + pattern = pattern.toLowerCase(); + testValue = testValue.toLowerCase(); + } + include = testValue.indexOf(pattern); + if (this.options.matchInside) { + include = include > -1; + } else { + include = include === 0; + } + } else { + include = true; + } + if (include) { + filtered.push({ value: value, data: data }); + } + } + } + + if (this.options.sortResults) { + filtered = this.sortResults(filtered, filter); + } + + if (this.options.maxItemsToShow > 0 && this.options.maxItemsToShow < filtered.length) { + filtered.length = this.options.maxItemsToShow; + } + + return filtered; + +}; + +AutoCompleter.prototype.sortResults = function(results, filter) { + var self = this; + var sortFunction = this.options.sortFunction; + if (!$.isFunction(sortFunction)) { + sortFunction = function(a, b, f) { + return self.sortValueAlpha(a, b, f); + }; + } + results.sort(function(a, b) { + return sortFunction(a, b, filter); + }); + return results; +}; + +AutoCompleter.prototype.sortValueAlpha = function(a, b, filter) { + a = String(a.value); + b = String(b.value); + if (!this.options.matchCase) { + a = a.toLowerCase(); + b = b.toLowerCase(); + } + if (a > b) { + return 1; + } + if (a < b) { + return -1; + } + return 0; +}; + +AutoCompleter.prototype.showResults = function(results, filter) { + var self = this; + var $ul = $('
          '); + var i, result, $li, extraWidth, first = false, $first = false; + var numResults = results.length; + for (i = 0; i < numResults; i++) { + result = results[i]; + $li = $('
        • ' + this.showResult(result.value, result.data) + '
        • '); + $li.data('value', result.value); + $li.data('data', result.data); + $li.click(function() { + var $this = $(this); + self.selectItem($this); + }).mousedown(function() { + self.finishOnBlur_ = false; + }).mouseup(function() { + self.finishOnBlur_ = true; + }); + $ul.append($li); + if (first === false) { + first = String(result.value); + $first = $li; + $li.addClass(this.options.firstItemClass); + } + if (i == numResults - 1) { + $li.addClass(this.options.lastItemClass); + } + } + + // Alway recalculate position before showing since window size or + // input element location may have changed. This fixes #14 + this.position(); + + this._results.html($ul).show(); + extraWidth = this._results.outerWidth() - this._results.width(); + this._results.width(this._element.outerWidth() - extraWidth); + $('li', this._results).hover( + function() { self.focusItem(this); }, + function() { /* void */ } + ); + if (this.autoFill(first, filter)) { + this.focusItem($first); + } +}; + +AutoCompleter.prototype.showResult = function(value, data) { + if ($.isFunction(this.options.showResult)) { + return this.options.showResult(value, data); + } else { + return value; + } +}; + +AutoCompleter.prototype.autoFill = function(value, filter) { + var lcValue, lcFilter, valueLength, filterLength; + if (this.options.autoFill && this.lastKeyPressed_ != 8) { + lcValue = String(value).toLowerCase(); + lcFilter = String(filter).toLowerCase(); + valueLength = value.length; + filterLength = filter.length; + if (lcValue.substr(0, filterLength) === lcFilter) { + this._element.val(value); + this.selectRange(filterLength, valueLength); + return true; + } + } + return false; +}; + +AutoCompleter.prototype.focusNext = function() { + this.focusMove(+1); +}; + +AutoCompleter.prototype.focusPrev = function() { + this.focusMove(-1); +}; + +AutoCompleter.prototype.focusMove = function(modifier) { + var i, $items = $('li', this._results); + modifier = parseInt(modifier, 10); + for (var i = 0; i < $items.length; i++) { + if ($($items[i]).hasClass(this.selectClass_)) { + this.focusItem(i + modifier); + return; + } + } + this.focusItem(0); +}; + +AutoCompleter.prototype.focusItem = function(item) { + var $item, $items = $('li', this._results); + if ($items.length) { + $items.removeClass(this.selectClass_).removeClass(this.options.selectClass); + if (typeof item === 'number') { + item = parseInt(item, 10); + if (item < 0) { + item = 0; + } else if (item >= $items.length) { + item = $items.length - 1; + } + $item = $($items[item]); + } else { + $item = $(item); + } + if ($item) { + $item.addClass(this.selectClass_).addClass(this.options.selectClass); + } + } +}; + +AutoCompleter.prototype.selectCurrent = function() { + var $item = $('li.' + this.selectClass_, this._results); + if ($item.length == 1) { + this.selectItem($item); + } else { + this.finish(); + } +}; + +AutoCompleter.prototype.selectItem = function($li) { + var value = $li.data('value'); + var data = $li.data('data'); + var displayValue = this.displayValue(value, data); + this.lastProcessedValue_ = displayValue; + this.lastSelectedValue_ = displayValue; + + this.setValue(displayValue); + + this.setCaret(displayValue.length); + this.callHook('onItemSelect', { value: value, data: data }); + this.finish(); +}; + +/** + * @return {boolean} true if the symbol matches something that is + * considered content and false otherwise + * @param {string} symbol - a single char string + */ +AutoCompleter.prototype.isContentChar = function(symbol){ + if (symbol.match(this.options['stopCharRegex'])){ + return false; + } else if (symbol === this.options['multipleSeparator']){ + return false; + } else { + return true; + } +}; + +/** + * takes value from the input box + * and saves _selection_start and _selection_end coordinates + * respects settings autocompleteMultiple and + * multipleSeparator + * @return {string} the current word in the + * autocompletable word + */ +AutoCompleter.prototype.getValue = function(){ + var sel = this._element.getSelection(); + var text = this._element.val(); + var pos = sel.start;//estimated start + //find real start + var start = pos; + for (cpos = pos; cpos >= 0; cpos = cpos - 1){ + if (cpos === text.length){ + continue; + } + var symbol = text.charAt(cpos); + if (!this.isContentChar(symbol)){ + break; + } + start = cpos; + } + //find real end + var end = pos; + for (cpos = pos; cpos < text.length; cpos = cpos + 1){ + if (cpos === 0){ + continue; + } + var symbol = text.charAt(cpos); + if (!this.isContentChar(symbol)){ + break; + } + end = cpos; + } + this._selection_start = start; + this._selection_end = end; + return text.substring(start, end); +} + +/** + * sets value of the input box + * by replacing the previous selection + * with the value from the autocompleter + */ +AutoCompleter.prototype.setValue = function(val){ + var prefix = this._element.val().substring(0, this._selection_start); + var postfix = this._element.val().substring(this._selection_end + 1); + this._element.val(prefix + val + postfix); +}; + +AutoCompleter.prototype.displayValue = function(value, data) { + if ($.isFunction(this.options.displayValue)) { + return this.options.displayValue(value, data); + } else { + return value; + } +}; + +AutoCompleter.prototype.finish = function() { + if (this.keyTimeout_) { + clearTimeout(this.keyTimeout_); + } + if (this._element.val() !== this.lastSelectedValue_) { + if (this.options.mustMatch) { + this._element.val(''); + } + this.callHook('onNoMatch'); + } + this._results.hide(); + this.lastKeyPressed_ = null; + this.lastProcessedValue_ = null; + if (this.active_) { + this.callHook('onFinish'); + } + this.active_ = false; +}; + +AutoCompleter.prototype.selectRange = function(start, end) { + var input = this._element.get(0); + if (input.setSelectionRange) { + input.focus(); + input.setSelectionRange(start, end); + } else if (this.createTextRange) { + var range = this.createTextRange(); + range.collapse(true); + range.moveEnd('character', end); + range.moveStart('character', start); + range.select(); + } +}; + +AutoCompleter.prototype.setCaret = function(pos) { + this.selectRange(pos, pos); +}; + diff --git a/askbot/skins/default/media/js/compress.bat b/askbot/skins/default/media/js/compress.bat new file mode 100644 index 00000000..53d72588 --- /dev/null +++ b/askbot/skins/default/media/js/compress.bat @@ -0,0 +1,5 @@ +#java -jar yuicompressor-2.4.2.jar --type js --charset utf-8 wmd\wmd.js -o wmd\wmd-min.js +#java -jar yuicompressor-2.4.2.jar --type js --charset utf-8 wmd\showdown.js -o wmd\showdown-min.js +#java -jar yuicompressor-2.4.2.jar --type js --charset utf-8 post.js -o post.pack.js +java -jar yuicompressor-2.4.2.jar --type js --charset utf-8 se_hilite_src.js -o se_hilite.js +pause diff --git a/askbot/skins/default/media/js/editor.js b/askbot/skins/default/media/js/editor.js new file mode 100644 index 00000000..c6f1c873 --- /dev/null +++ b/askbot/skins/default/media/js/editor.js @@ -0,0 +1,81 @@ +/* + jQuery TextAreaResizer plugin + Created on 17th January 2008 by Ryan O'Dell + Version 1.0.4 +*/(function($){var textarea,staticOffset;var iLastMousePos=0;var iMin=32;var grip;$.fn.TextAreaResizer=function(){return this.each(function(){textarea=$(this).addClass('processed'),staticOffset=null;$(this).wrap('
          ').parent().append($('
          ').bind("mousedown",{el:this},startDrag));var grippie=$('div.grippie',$(this).parent())[0];grippie.style.marginRight=(grippie.offsetWidth-$(this)[0].offsetWidth)+'px'})};function startDrag(e){textarea=$(e.data.el);textarea.blur();iLastMousePos=mousePosition(e).y;staticOffset=textarea.height()-iLastMousePos;textarea.css('opacity',0.25);$(document).mousemove(performDrag).mouseup(endDrag);return false}function performDrag(e){var iThisMousePos=mousePosition(e).y;var iMousePos=staticOffset+iThisMousePos;if(iLastMousePos>=(iThisMousePos)){iMousePos-=5}iLastMousePos=iThisMousePos;iMousePos=Math.max(iMin,iMousePos);textarea.height(iMousePos+'px');if(iMousePosoptions.captureLength&&elTxt.toUpperCase()!=timer.text)||(override&&elTxt.length>options.captureLength)){timer.text=elTxt.toUpperCase();timer.cb(elTxt)}};function watchElement(elem){if(elem.type.toUpperCase()=="TEXT"||elem.nodeName.toUpperCase()=="TEXTAREA"){var timer={timer:null,text:jQuery(elem).val().toUpperCase(),cb:options.callback,el:elem,wait:options.wait};if(options.highlight){jQuery(elem).focus(function(){this.select()})}var startWatch=function(evt){var timerWait=timer.wait;var overrideBool=false;if(evt.keyCode==13&&this.type.toUpperCase()=="TEXT"){timerWait=1;overrideBool=true}var timerCallbackFx=function(){checkElement(timer,overrideBool)};clearTimeout(timer.timer);timer.timer=setTimeout(timerCallbackFx,timerWait)};jQuery(elem).keydown(startWatch)}};return this.each(function(index){watchElement(this)})}})(jQuery); +/* +Ajax upload +*/jQuery.extend({createUploadIframe:function(d,b){var a="jUploadFrame"+d;if(window.ActiveXObject){var c=document.createElement('').appendTo(content); + } + + wrap.show(); + + busy = false; + + $.fancybox.center(); + + currentOpts.onComplete(currentArray, currentIndex, currentOpts); + + _preload_images(); + }, + + _preload_images = function() { + var href, + objNext; + + if ((currentArray.length -1) > currentIndex) { + href = currentArray[ currentIndex + 1 ].href; + + if (typeof href !== 'undefined' && href.match(imgRegExp)) { + objNext = new Image(); + objNext.src = href; + } + } + + if (currentIndex > 0) { + href = currentArray[ currentIndex - 1 ].href; + + if (typeof href !== 'undefined' && href.match(imgRegExp)) { + objNext = new Image(); + objNext.src = href; + } + } + }, + + _draw = function(pos) { + var dim = { + width : parseInt(start_pos.width + (final_pos.width - start_pos.width) * pos, 10), + height : parseInt(start_pos.height + (final_pos.height - start_pos.height) * pos, 10), + + top : parseInt(start_pos.top + (final_pos.top - start_pos.top) * pos, 10), + left : parseInt(start_pos.left + (final_pos.left - start_pos.left) * pos, 10) + }; + + if (typeof final_pos.opacity !== 'undefined') { + dim.opacity = pos < 0.5 ? 0.5 : pos; + } + + wrap.css(dim); + + content.css({ + 'width' : dim.width - currentOpts.padding * 2, + 'height' : dim.height - (titleHeight * pos) - currentOpts.padding * 2 + }); + }, + + _get_viewport = function() { + return [ + $(window).width() - (currentOpts.margin * 2), + $(window).height() - (currentOpts.margin * 2), + $(document).scrollLeft() + currentOpts.margin, + $(document).scrollTop() + currentOpts.margin + ]; + }, + + _get_zoom_to = function () { + var view = _get_viewport(), + to = {}, + resize = currentOpts.autoScale, + double_padding = currentOpts.padding * 2, + ratio; + + if (currentOpts.width.toString().indexOf('%') > -1) { + to.width = parseInt((view[0] * parseFloat(currentOpts.width)) / 100, 10); + } else { + to.width = currentOpts.width + double_padding; + } + + if (currentOpts.height.toString().indexOf('%') > -1) { + to.height = parseInt((view[1] * parseFloat(currentOpts.height)) / 100, 10); + } else { + to.height = currentOpts.height + double_padding; + } + + if (resize && (to.width > view[0] || to.height > view[1])) { + if (selectedOpts.type == 'image' || selectedOpts.type == 'swf') { + ratio = (currentOpts.width ) / (currentOpts.height ); + + if ((to.width ) > view[0]) { + to.width = view[0]; + to.height = parseInt(((to.width - double_padding) / ratio) + double_padding, 10); + } + + if ((to.height) > view[1]) { + to.height = view[1]; + to.width = parseInt(((to.height - double_padding) * ratio) + double_padding, 10); + } + + } else { + to.width = Math.min(to.width, view[0]); + to.height = Math.min(to.height, view[1]); + } + } + + to.top = parseInt(Math.max(view[3] - 20, view[3] + ((view[1] - to.height - 40) * 0.5)), 10); + to.left = parseInt(Math.max(view[2] - 20, view[2] + ((view[0] - to.width - 40) * 0.5)), 10); + + return to; + }, + + _get_obj_pos = function(obj) { + var pos = obj.offset(); + + pos.top += parseInt( obj.css('paddingTop'), 10 ) || 0; + pos.left += parseInt( obj.css('paddingLeft'), 10 ) || 0; + + pos.top += parseInt( obj.css('border-top-width'), 10 ) || 0; + pos.left += parseInt( obj.css('border-left-width'), 10 ) || 0; + + pos.width = obj.width(); + pos.height = obj.height(); + + return pos; + }, + + _get_zoom_from = function() { + var orig = selectedOpts.orig ? $(selectedOpts.orig) : false, + from = {}, + pos, + view; + + if (orig && orig.length) { + pos = _get_obj_pos(orig); + + from = { + width : pos.width + (currentOpts.padding * 2), + height : pos.height + (currentOpts.padding * 2), + top : pos.top - currentOpts.padding - 20, + left : pos.left - currentOpts.padding - 20 + }; + + } else { + view = _get_viewport(); + + from = { + width : currentOpts.padding * 2, + height : currentOpts.padding * 2, + top : parseInt(view[3] + view[1] * 0.5, 10), + left : parseInt(view[2] + view[0] * 0.5, 10) + }; + } + + return from; + }, + + _animate_loading = function() { + if (!loading.is(':visible')){ + clearInterval(loadingTimer); + return; + } + + $('div', loading).css('top', (loadingFrame * -40) + 'px'); + + loadingFrame = (loadingFrame + 1) % 12; + }; + + /* + * Public methods + */ + + $.fn.fancybox = function(options) { + if (!$(this).length) { + return this; + } + + $(this) + .data('fancybox', $.extend({}, options, ($.metadata ? $(this).metadata() : {}))) + .unbind('click.fb') + .bind('click.fb', function(e) { + e.preventDefault(); + + if (busy) { + return; + } + + busy = true; + + $(this).blur(); + + selectedArray = []; + selectedIndex = 0; + + var rel = $(this).attr('rel') || ''; + + if (!rel || rel == '' || rel === 'nofollow') { + selectedArray.push(this); + + } else { + selectedArray = $("a[rel=" + rel + "], area[rel=" + rel + "]"); + selectedIndex = selectedArray.index( this ); + } + + _start(); + + return; + }); + + return this; + }; + + $.fancybox = function(obj) { + var opts; + + if (busy) { + return; + } + + busy = true; + opts = typeof arguments[1] !== 'undefined' ? arguments[1] : {}; + + selectedArray = []; + selectedIndex = parseInt(opts.index, 10) || 0; + + if ($.isArray(obj)) { + for (var i = 0, j = obj.length; i < j; i++) { + if (typeof obj[i] == 'object') { + $(obj[i]).data('fancybox', $.extend({}, opts, obj[i])); + } else { + obj[i] = $({}).data('fancybox', $.extend({content : obj[i]}, opts)); + } + } + + selectedArray = jQuery.merge(selectedArray, obj); + + } else { + if (typeof obj == 'object') { + $(obj).data('fancybox', $.extend({}, opts, obj)); + } else { + obj = $({}).data('fancybox', $.extend({content : obj}, opts)); + } + + selectedArray.push(obj); + } + + if (selectedIndex > selectedArray.length || selectedIndex < 0) { + selectedIndex = 0; + } + + _start(); + }; + + $.fancybox.showActivity = function() { + clearInterval(loadingTimer); + + loading.show(); + loadingTimer = setInterval(_animate_loading, 66); + }; + + $.fancybox.hideActivity = function() { + loading.hide(); + }; + + $.fancybox.next = function() { + return $.fancybox.pos( currentIndex + 1); + }; + + $.fancybox.prev = function() { + return $.fancybox.pos( currentIndex - 1); + }; + + $.fancybox.pos = function(pos) { + if (busy) { + return; + } + + pos = parseInt(pos); + + selectedArray = currentArray; + + if (pos > -1 && pos < currentArray.length) { + selectedIndex = pos; + _start(); + + } else if (currentOpts.cyclic && currentArray.length > 1) { + selectedIndex = pos >= currentArray.length ? 0 : currentArray.length - 1; + _start(); + } + + return; + }; + + $.fancybox.cancel = function() { + if (busy) { + return; + } + + busy = true; + + $.event.trigger('fancybox-cancel'); + + _abort(); + + selectedOpts.onCancel(selectedArray, selectedIndex, selectedOpts); + + busy = false; + }; + + // Note: within an iframe use - parent.$.fancybox.close(); + $.fancybox.close = function() { + if (busy || wrap.is(':hidden')) { + return; + } + + busy = true; + + if (currentOpts && false === currentOpts.onCleanup(currentArray, currentIndex, currentOpts)) { + busy = false; + return; + } + + _abort(); + + $(close.add( nav_left ).add( nav_right )).hide(); + + $(content.add( overlay )).unbind(); + + $(window).unbind("resize.fb scroll.fb"); + $(document).unbind('keydown.fb'); + + content.find('iframe').attr('src', isIE6 && /^https/i.test(window.location.href || '') ? 'javascript:void(false)' : 'about:blank'); + + if (currentOpts.titlePosition !== 'inside') { + title.empty(); + } + + wrap.stop(); + + function _cleanup() { + overlay.fadeOut('fast'); + + title.empty().hide(); + wrap.hide(); + + $.event.trigger('fancybox-cleanup'); + + content.empty(); + + currentOpts.onClosed(currentArray, currentIndex, currentOpts); + + currentArray = selectedOpts = []; + currentIndex = selectedIndex = 0; + currentOpts = selectedOpts = {}; + + busy = false; + } + + if (currentOpts.transitionOut == 'elastic') { + start_pos = _get_zoom_from(); + + var pos = wrap.position(); + + final_pos = { + top : pos.top , + left : pos.left, + width : wrap.width(), + height : wrap.height() + }; + + if (currentOpts.opacity) { + final_pos.opacity = 1; + } + + title.empty().hide(); + + fx.prop = 1; + + $(fx).animate({ prop: 0 }, { + duration : currentOpts.speedOut, + easing : currentOpts.easingOut, + step : _draw, + complete : _cleanup + }); + + } else { + wrap.fadeOut( currentOpts.transitionOut == 'none' ? 0 : currentOpts.speedOut, _cleanup); + } + }; + + $.fancybox.resize = function() { + if (overlay.is(':visible')) { + overlay.css('height', $(document).height()); + } + + $.fancybox.center(true); + }; + + $.fancybox.center = function() { + var view, align; + + if (busy) { + return; + } + + align = arguments[0] === true ? 1 : 0; + view = _get_viewport(); + + if (!align && (wrap.width() > view[0] || wrap.height() > view[1])) { + return; + } + + wrap + .stop() + .animate({ + 'top' : parseInt(Math.max(view[3] - 20, view[3] + ((view[1] - content.height() - 40) * 0.5) - currentOpts.padding)), + 'left' : parseInt(Math.max(view[2] - 20, view[2] + ((view[0] - content.width() - 40) * 0.5) - currentOpts.padding)) + }, typeof arguments[0] == 'number' ? arguments[0] : 200); + }; + + $.fancybox.init = function() { + if ($("#fancybox-wrap").length) { + return; + } + + $('body').append( + tmp = $('
          '), + loading = $('
          '), + overlay = $('
          '), + wrap = $('
          ') + ); + + outer = $('
          ') + .append('
          ') + .appendTo( wrap ); + + outer.append( + content = $('
          '), + close = $(''), + title = $('
          '), + + nav_left = $(''), + nav_right = $('') + ); + + close.click($.fancybox.close); + loading.click($.fancybox.cancel); + + nav_left.click(function(e) { + e.preventDefault(); + $.fancybox.prev(); + }); + + nav_right.click(function(e) { + e.preventDefault(); + $.fancybox.next(); + }); + + if ($.fn.mousewheel) { + wrap.bind('mousewheel.fb', function(e, delta) { + if (busy) { + e.preventDefault(); + + } else if ($(e.target).get(0).clientHeight == 0 || $(e.target).get(0).scrollHeight === $(e.target).get(0).clientHeight) { + e.preventDefault(); + $.fancybox[ delta > 0 ? 'prev' : 'next'](); + } + }); + } + + if (!$.support.opacity) { + wrap.addClass('fancybox-ie'); + } + + if (isIE6) { + loading.addClass('fancybox-ie6'); + wrap.addClass('fancybox-ie6'); + + $('').prependTo(outer); + } + }; + + $.fn.fancybox.defaults = { + padding : 10, + margin : 40, + opacity : false, + modal : false, + cyclic : false, + scrolling : 'auto', // 'auto', 'yes' or 'no' + + width : 560, + height : 340, + + autoScale : true, + autoDimensions : true, + centerOnScroll : false, + + ajax : {}, + swf : { wmode: 'transparent' }, + + hideOnOverlayClick : true, + hideOnContentClick : false, + + overlayShow : true, + overlayOpacity : 0.7, + overlayColor : '#777', + + titleShow : true, + titlePosition : 'float', // 'float', 'outside', 'inside' or 'over' + titleFormat : null, + titleFromAlt : false, + + transitionIn : 'fade', // 'elastic', 'fade' or 'none' + transitionOut : 'fade', // 'elastic', 'fade' or 'none' + + speedIn : 300, + speedOut : 300, + + changeSpeed : 300, + changeFade : 'fast', + + easingIn : 'swing', + easingOut : 'swing', + + showCloseButton : true, + showNavArrows : true, + enableEscapeButton : true, + enableKeyboardNav : true, + + onStart : function(){}, + onCancel : function(){}, + onComplete : function(){}, + onCleanup : function(){}, + onClosed : function(){}, + onError : function(){} + }; + + $(document).ready(function() { + $.fancybox.init(); + }); + +})(jQuery); \ No newline at end of file diff --git a/askbot/skins/default/media/js/jquery.fancybox-1.3.4/fancybox/jquery.fancybox-1.3.4.pack.js b/askbot/skins/default/media/js/jquery.fancybox-1.3.4/fancybox/jquery.fancybox-1.3.4.pack.js new file mode 100644 index 00000000..1373ed08 --- /dev/null +++ b/askbot/skins/default/media/js/jquery.fancybox-1.3.4/fancybox/jquery.fancybox-1.3.4.pack.js @@ -0,0 +1,46 @@ +/* + * FancyBox - jQuery Plugin + * Simple and fancy lightbox alternative + * + * Examples and documentation at: http://fancybox.net + * + * Copyright (c) 2008 - 2010 Janis Skarnelis + * That said, it is hardly a one-person project. Many people have submitted bugs, code, and offered their advice freely. Their support is greatly appreciated. + * + * Version: 1.3.4 (11/11/2010) + * Requires: jQuery v1.3+ + * + * Dual licensed under the MIT and GPL licenses: + * http://www.opensource.org/licenses/mit-license.php + * http://www.gnu.org/licenses/gpl.html + */ + +;(function(b){var m,t,u,f,D,j,E,n,z,A,q=0,e={},o=[],p=0,d={},l=[],G=null,v=new Image,J=/\.(jpg|gif|png|bmp|jpeg)(.*)?$/i,W=/[^\.]\.(swf)\s*$/i,K,L=1,y=0,s="",r,i,h=false,B=b.extend(b("
          ")[0],{prop:0}),M=b.browser.msie&&b.browser.version<7&&!window.XMLHttpRequest,N=function(){t.hide();v.onerror=v.onload=null;G&&G.abort();m.empty()},O=function(){if(false===e.onError(o,q,e)){t.hide();h=false}else{e.titleShow=false;e.width="auto";e.height="auto";m.html('

          The requested content cannot be loaded.
          Please try again later.

          '); +F()}},I=function(){var a=o[q],c,g,k,C,P,w;N();e=b.extend({},b.fn.fancybox.defaults,typeof b(a).data("fancybox")=="undefined"?e:b(a).data("fancybox"));w=e.onStart(o,q,e);if(w===false)h=false;else{if(typeof w=="object")e=b.extend(e,w);k=e.title||(a.nodeName?b(a).attr("title"):a.title)||"";if(a.nodeName&&!e.orig)e.orig=b(a).children("img:first").length?b(a).children("img:first"):b(a);if(k===""&&e.orig&&e.titleFromAlt)k=e.orig.attr("alt");c=e.href||(a.nodeName?b(a).attr("href"):a.href)||null;if(/^(?:javascript)/i.test(c)|| +c=="#")c=null;if(e.type){g=e.type;if(!c)c=e.content}else if(e.content)g="html";else if(c)g=c.match(J)?"image":c.match(W)?"swf":b(a).hasClass("iframe")?"iframe":c.indexOf("#")===0?"inline":"ajax";if(g){if(g=="inline"){a=c.substr(c.indexOf("#"));g=b(a).length>0?"inline":"ajax"}e.type=g;e.href=c;e.title=k;if(e.autoDimensions)if(e.type=="html"||e.type=="inline"||e.type=="ajax"){e.width="auto";e.height="auto"}else e.autoDimensions=false;if(e.modal){e.overlayShow=true;e.hideOnOverlayClick=false;e.hideOnContentClick= +false;e.enableEscapeButton=false;e.showCloseButton=false}e.padding=parseInt(e.padding,10);e.margin=parseInt(e.margin,10);m.css("padding",e.padding+e.margin);b(".fancybox-inline-tmp").unbind("fancybox-cancel").bind("fancybox-change",function(){b(this).replaceWith(j.children())});switch(g){case "html":m.html(e.content);F();break;case "inline":if(b(a).parent().is("#fancybox-content")===true){h=false;break}b('
          ').hide().insertBefore(b(a)).bind("fancybox-cleanup",function(){b(this).replaceWith(j.children())}).bind("fancybox-cancel", +function(){b(this).replaceWith(m.children())});b(a).appendTo(m);F();break;case "image":h=false;b.fancybox.showActivity();v=new Image;v.onerror=function(){O()};v.onload=function(){h=true;v.onerror=v.onload=null;e.width=v.width;e.height=v.height;b("").attr({id:"fancybox-img",src:v.src,alt:e.title}).appendTo(m);Q()};v.src=c;break;case "swf":e.scrolling="no";C='';P="";b.each(e.swf,function(x,H){C+='';P+=" "+x+'="'+H+'"'});C+='";m.html(C);F();break;case "ajax":h=false;b.fancybox.showActivity();e.ajax.win=e.ajax.success;G=b.ajax(b.extend({},e.ajax,{url:c,data:e.ajax.data||{},error:function(x){x.status>0&&O()},success:function(x,H,R){if((typeof R=="object"?R:G).status==200){if(typeof e.ajax.win== +"function"){w=e.ajax.win(c,x,H,R);if(w===false){t.hide();return}else if(typeof w=="string"||typeof w=="object")x=w}m.html(x);F()}}}));break;case "iframe":Q()}}else O()}},F=function(){var a=e.width,c=e.height;a=a.toString().indexOf("%")>-1?parseInt((b(window).width()-e.margin*2)*parseFloat(a)/100,10)+"px":a=="auto"?"auto":a+"px";c=c.toString().indexOf("%")>-1?parseInt((b(window).height()-e.margin*2)*parseFloat(c)/100,10)+"px":c=="auto"?"auto":c+"px";m.wrapInner('
          ');e.width=m.width();e.height=m.height();Q()},Q=function(){var a,c;t.hide();if(f.is(":visible")&&false===d.onCleanup(l,p,d)){b.event.trigger("fancybox-cancel");h=false}else{h=true;b(j.add(u)).unbind();b(window).unbind("resize.fb scroll.fb");b(document).unbind("keydown.fb");f.is(":visible")&&d.titlePosition!=="outside"&&f.css("height",f.height());l=o;p=q;d=e;if(d.overlayShow){u.css({"background-color":d.overlayColor, +opacity:d.overlayOpacity,cursor:d.hideOnOverlayClick?"pointer":"auto",height:b(document).height()});if(!u.is(":visible")){M&&b("select:not(#fancybox-tmp select)").filter(function(){return this.style.visibility!=="hidden"}).css({visibility:"hidden"}).one("fancybox-cleanup",function(){this.style.visibility="inherit"});u.show()}}else u.hide();i=X();s=d.title||"";y=0;n.empty().removeAttr("style").removeClass();if(d.titleShow!==false){if(b.isFunction(d.titleFormat))a=d.titleFormat(s,l,p,d);else a=s&&s.length? +d.titlePosition=="float"?'
          '+s+'
          ':'
          '+s+"
          ":false;s=a;if(!(!s||s==="")){n.addClass("fancybox-title-"+d.titlePosition).html(s).appendTo("body").show();switch(d.titlePosition){case "inside":n.css({width:i.width-d.padding*2,marginLeft:d.padding,marginRight:d.padding}); +y=n.outerHeight(true);n.appendTo(D);i.height+=y;break;case "over":n.css({marginLeft:d.padding,width:i.width-d.padding*2,bottom:d.padding}).appendTo(D);break;case "float":n.css("left",parseInt((n.width()-i.width-40)/2,10)*-1).appendTo(f);break;default:n.css({width:i.width-d.padding*2,paddingLeft:d.padding,paddingRight:d.padding}).appendTo(f)}}}n.hide();if(f.is(":visible")){b(E.add(z).add(A)).hide();a=f.position();r={top:a.top,left:a.left,width:f.width(),height:f.height()};c=r.width==i.width&&r.height== +i.height;j.fadeTo(d.changeFade,0.3,function(){var g=function(){j.html(m.contents()).fadeTo(d.changeFade,1,S)};b.event.trigger("fancybox-change");j.empty().removeAttr("filter").css({"border-width":d.padding,width:i.width-d.padding*2,height:e.autoDimensions?"auto":i.height-y-d.padding*2});if(c)g();else{B.prop=0;b(B).animate({prop:1},{duration:d.changeSpeed,easing:d.easingChange,step:T,complete:g})}})}else{f.removeAttr("style");j.css("border-width",d.padding);if(d.transitionIn=="elastic"){r=V();j.html(m.contents()); +f.show();if(d.opacity)i.opacity=0;B.prop=0;b(B).animate({prop:1},{duration:d.speedIn,easing:d.easingIn,step:T,complete:S})}else{d.titlePosition=="inside"&&y>0&&n.show();j.css({width:i.width-d.padding*2,height:e.autoDimensions?"auto":i.height-y-d.padding*2}).html(m.contents());f.css(i).fadeIn(d.transitionIn=="none"?0:d.speedIn,S)}}}},Y=function(){if(d.enableEscapeButton||d.enableKeyboardNav)b(document).bind("keydown.fb",function(a){if(a.keyCode==27&&d.enableEscapeButton){a.preventDefault();b.fancybox.close()}else if((a.keyCode== +37||a.keyCode==39)&&d.enableKeyboardNav&&a.target.tagName!=="INPUT"&&a.target.tagName!=="TEXTAREA"&&a.target.tagName!=="SELECT"){a.preventDefault();b.fancybox[a.keyCode==37?"prev":"next"]()}});if(d.showNavArrows){if(d.cyclic&&l.length>1||p!==0)z.show();if(d.cyclic&&l.length>1||p!=l.length-1)A.show()}else{z.hide();A.hide()}},S=function(){if(!b.support.opacity){j.get(0).style.removeAttribute("filter");f.get(0).style.removeAttribute("filter")}e.autoDimensions&&j.css("height","auto");f.css("height","auto"); +s&&s.length&&n.show();d.showCloseButton&&E.show();Y();d.hideOnContentClick&&j.bind("click",b.fancybox.close);d.hideOnOverlayClick&&u.bind("click",b.fancybox.close);b(window).bind("resize.fb",b.fancybox.resize);d.centerOnScroll&&b(window).bind("scroll.fb",b.fancybox.center);if(d.type=="iframe")b('').appendTo(j); +f.show();h=false;b.fancybox.center();d.onComplete(l,p,d);var a,c;if(l.length-1>p){a=l[p+1].href;if(typeof a!=="undefined"&&a.match(J)){c=new Image;c.src=a}}if(p>0){a=l[p-1].href;if(typeof a!=="undefined"&&a.match(J)){c=new Image;c.src=a}}},T=function(a){var c={width:parseInt(r.width+(i.width-r.width)*a,10),height:parseInt(r.height+(i.height-r.height)*a,10),top:parseInt(r.top+(i.top-r.top)*a,10),left:parseInt(r.left+(i.left-r.left)*a,10)};if(typeof i.opacity!=="undefined")c.opacity=a<0.5?0.5:a;f.css(c); +j.css({width:c.width-d.padding*2,height:c.height-y*a-d.padding*2})},U=function(){return[b(window).width()-d.margin*2,b(window).height()-d.margin*2,b(document).scrollLeft()+d.margin,b(document).scrollTop()+d.margin]},X=function(){var a=U(),c={},g=d.autoScale,k=d.padding*2;c.width=d.width.toString().indexOf("%")>-1?parseInt(a[0]*parseFloat(d.width)/100,10):d.width+k;c.height=d.height.toString().indexOf("%")>-1?parseInt(a[1]*parseFloat(d.height)/100,10):d.height+k;if(g&&(c.width>a[0]||c.height>a[1]))if(e.type== +"image"||e.type=="swf"){g=d.width/d.height;if(c.width>a[0]){c.width=a[0];c.height=parseInt((c.width-k)/g+k,10)}if(c.height>a[1]){c.height=a[1];c.width=parseInt((c.height-k)*g+k,10)}}else{c.width=Math.min(c.width,a[0]);c.height=Math.min(c.height,a[1])}c.top=parseInt(Math.max(a[3]-20,a[3]+(a[1]-c.height-40)*0.5),10);c.left=parseInt(Math.max(a[2]-20,a[2]+(a[0]-c.width-40)*0.5),10);return c},V=function(){var a=e.orig?b(e.orig):false,c={};if(a&&a.length){c=a.offset();c.top+=parseInt(a.css("paddingTop"), +10)||0;c.left+=parseInt(a.css("paddingLeft"),10)||0;c.top+=parseInt(a.css("border-top-width"),10)||0;c.left+=parseInt(a.css("border-left-width"),10)||0;c.width=a.width();c.height=a.height();c={width:c.width+d.padding*2,height:c.height+d.padding*2,top:c.top-d.padding-20,left:c.left-d.padding-20}}else{a=U();c={width:d.padding*2,height:d.padding*2,top:parseInt(a[3]+a[1]*0.5,10),left:parseInt(a[2]+a[0]*0.5,10)}}return c},Z=function(){if(t.is(":visible")){b("div",t).css("top",L*-40+"px");L=(L+1)%12}else clearInterval(K)}; +b.fn.fancybox=function(a){if(!b(this).length)return this;b(this).data("fancybox",b.extend({},a,b.metadata?b(this).metadata():{})).unbind("click.fb").bind("click.fb",function(c){c.preventDefault();if(!h){h=true;b(this).blur();o=[];q=0;c=b(this).attr("rel")||"";if(!c||c==""||c==="nofollow")o.push(this);else{o=b("a[rel="+c+"], area[rel="+c+"]");q=o.index(this)}I()}});return this};b.fancybox=function(a,c){var g;if(!h){h=true;g=typeof c!=="undefined"?c:{};o=[];q=parseInt(g.index,10)||0;if(b.isArray(a)){for(var k= +0,C=a.length;ko.length||q<0)q=0;I()}};b.fancybox.showActivity=function(){clearInterval(K);t.show();K=setInterval(Z,66)};b.fancybox.hideActivity=function(){t.hide()};b.fancybox.next=function(){return b.fancybox.pos(p+ +1)};b.fancybox.prev=function(){return b.fancybox.pos(p-1)};b.fancybox.pos=function(a){if(!h){a=parseInt(a);o=l;if(a>-1&&a1){q=a>=l.length?0:l.length-1;I()}}};b.fancybox.cancel=function(){if(!h){h=true;b.event.trigger("fancybox-cancel");N();e.onCancel(o,q,e);h=false}};b.fancybox.close=function(){function a(){u.fadeOut("fast");n.empty().hide();f.hide();b.event.trigger("fancybox-cleanup");j.empty();d.onClosed(l,p,d);l=e=[];p=q=0;d=e={};h=false}if(!(h||f.is(":hidden"))){h= +true;if(d&&false===d.onCleanup(l,p,d))h=false;else{N();b(E.add(z).add(A)).hide();b(j.add(u)).unbind();b(window).unbind("resize.fb scroll.fb");b(document).unbind("keydown.fb");j.find("iframe").attr("src",M&&/^https/i.test(window.location.href||"")?"javascript:void(false)":"about:blank");d.titlePosition!=="inside"&&n.empty();f.stop();if(d.transitionOut=="elastic"){r=V();var c=f.position();i={top:c.top,left:c.left,width:f.width(),height:f.height()};if(d.opacity)i.opacity=1;n.empty().hide();B.prop=1; +b(B).animate({prop:0},{duration:d.speedOut,easing:d.easingOut,step:T,complete:a})}else f.fadeOut(d.transitionOut=="none"?0:d.speedOut,a)}}};b.fancybox.resize=function(){u.is(":visible")&&u.css("height",b(document).height());b.fancybox.center(true)};b.fancybox.center=function(a){var c,g;if(!h){g=a===true?1:0;c=U();!g&&(f.width()>c[0]||f.height()>c[1])||f.stop().animate({top:parseInt(Math.max(c[3]-20,c[3]+(c[1]-j.height()-40)*0.5-d.padding)),left:parseInt(Math.max(c[2]-20,c[2]+(c[0]-j.width()-40)*0.5- +d.padding))},typeof a=="number"?a:200)}};b.fancybox.init=function(){if(!b("#fancybox-wrap").length){b("body").append(m=b('
          '),t=b('
          '),u=b('
          '),f=b('
          '));D=b('
          ').append('
          ').appendTo(f); +D.append(j=b('
          '),E=b(''),n=b('
          '),z=b(''),A=b(''));E.click(b.fancybox.close);t.click(b.fancybox.cancel);z.click(function(a){a.preventDefault();b.fancybox.prev()});A.click(function(a){a.preventDefault();b.fancybox.next()}); +b.fn.mousewheel&&f.bind("mousewheel.fb",function(a,c){if(h)a.preventDefault();else if(b(a.target).get(0).clientHeight==0||b(a.target).get(0).scrollHeight===b(a.target).get(0).clientHeight){a.preventDefault();b.fancybox[c>0?"prev":"next"]()}});b.support.opacity||f.addClass("fancybox-ie");if(M){t.addClass("fancybox-ie6");f.addClass("fancybox-ie6");b('').prependTo(D)}}}; +b.fn.fancybox.defaults={padding:10,margin:40,opacity:false,modal:false,cyclic:false,scrolling:"auto",width:560,height:340,autoScale:true,autoDimensions:true,centerOnScroll:false,ajax:{},swf:{wmode:"transparent"},hideOnOverlayClick:true,hideOnContentClick:false,overlayShow:true,overlayOpacity:0.7,overlayColor:"#777",titleShow:true,titlePosition:"float",titleFormat:null,titleFromAlt:false,transitionIn:"fade",transitionOut:"fade",speedIn:300,speedOut:300,changeSpeed:300,changeFade:"fast",easingIn:"swing", +easingOut:"swing",showCloseButton:true,showNavArrows:true,enableEscapeButton:true,enableKeyboardNav:true,onStart:function(){},onCancel:function(){},onComplete:function(){},onCleanup:function(){},onClosed:function(){},onError:function(){}};b(document).ready(function(){b.fancybox.init()})})(jQuery); \ No newline at end of file diff --git a/askbot/skins/default/media/js/jquery.fancybox-1.3.4/fancybox/jquery.mousewheel-3.0.4.pack.js b/askbot/skins/default/media/js/jquery.fancybox-1.3.4/fancybox/jquery.mousewheel-3.0.4.pack.js new file mode 100644 index 00000000..cb66588e --- /dev/null +++ b/askbot/skins/default/media/js/jquery.fancybox-1.3.4/fancybox/jquery.mousewheel-3.0.4.pack.js @@ -0,0 +1,14 @@ +/*! Copyright (c) 2010 Brandon Aaron (http://brandonaaron.net) +* Licensed under the MIT License (LICENSE.txt). +* +* Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers. +* Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix. +* Thanks to: Seamus Leahy for adding deltaX and deltaY +* +* Version: 3.0.4 +* +* Requires: 1.2.2+ +*/ + +(function(d){function g(a){var b=a||window.event,i=[].slice.call(arguments,1),c=0,h=0,e=0;a=d.event.fix(b);a.type="mousewheel";if(a.wheelDelta)c=a.wheelDelta/120;if(a.detail)c=-a.detail/3;e=c;if(b.axis!==undefined&&b.axis===b.HORIZONTAL_AXIS){e=0;h=-1*c}if(b.wheelDeltaY!==undefined)e=b.wheelDeltaY/120;if(b.wheelDeltaX!==undefined)h=-1*b.wheelDeltaX/120;i.unshift(a,c,h,e);return d.event.handle.apply(this,i)}var f=["DOMMouseScroll","mousewheel"];d.event.special.mousewheel={setup:function(){if(this.addEventListener)for(var a= +f.length;a;)this.addEventListener(f[--a],g,false);else this.onmousewheel=g},teardown:function(){if(this.removeEventListener)for(var a=f.length;a;)this.removeEventListener(f[--a],g,false);else this.onmousewheel=null}};d.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})})(jQuery); \ No newline at end of file diff --git a/askbot/skins/default/media/js/jquery.fancybox-1.3.4/index.html b/askbot/skins/default/media/js/jquery.fancybox-1.3.4/index.html new file mode 100644 index 00000000..6b10a21e --- /dev/null +++ b/askbot/skins/default/media/js/jquery.fancybox-1.3.4/index.html @@ -0,0 +1,165 @@ + + + + + + FancyBox 1.3.4 | Demonstration + + + + + + + + + +
          +

          fancybox v1.3.4

          + +

          This is a demonstration. Home page

          + +
          + +

          + Different animations
          + + example1 + + example2 + + example3 + + example4 +

          + +

          + Different title positions
          + + example4 + + example5 + + example6 + + example7 +

          + +

          + Image gallery (ps, try using mouse scroll wheel)
          + + + + + + + + +

          + +

          + Various examples +

          + + + +
          +
          + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam quis mi eu elit tempor facilisis id et neque. Nulla sit amet sem sapien. Vestibulum imperdiet porta ante ac ornare. Nulla et lorem eu nibh adipiscing ultricies nec at lacus. Cras laoreet ultricies sem, at blandit mi eleifend aliquam. Nunc enim ipsum, vehicula non pretium varius, cursus ac tortor. Vivamus fringilla congue laoreet. Quisque ultrices sodales orci, quis rhoncus justo auctor in. Phasellus dui eros, bibendum eu feugiat ornare, faucibus eu mi. Nunc aliquet tempus sem, id aliquam diam varius ac. Maecenas nisl nunc, molestie vitae eleifend vel, iaculis sed magna. Aenean tempus lacus vitae orci posuere porttitor eget non felis. Donec lectus elit, aliquam nec eleifend sit amet, vestibulum sed nunc. +
          +
          + +

          + Ajax example will not run from your local computer and requires a server to run. +

          +

          + Photo Credit: Katie Harris +

          +
          + + \ No newline at end of file diff --git a/askbot/skins/default/media/js/jquery.fancybox-1.3.4/jquery-1.4.3.min.js b/askbot/skins/default/media/js/jquery.fancybox-1.3.4/jquery-1.4.3.min.js new file mode 100644 index 00000000..c941a5f7 --- /dev/null +++ b/askbot/skins/default/media/js/jquery.fancybox-1.3.4/jquery-1.4.3.min.js @@ -0,0 +1,166 @@ +/*! + * jQuery JavaScript Library v1.4.3 + * http://jquery.com/ + * + * Copyright 2010, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2010, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Thu Oct 14 23:10:06 2010 -0400 + */ +(function(E,A){function U(){return false}function ba(){return true}function ja(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function Ga(a){var b,d,e=[],f=[],h,k,l,n,s,v,B,D;k=c.data(this,this.nodeType?"events":"__events__");if(typeof k==="function")k=k.events;if(!(a.liveFired===this||!k||!k.live||a.button&&a.type==="click")){if(a.namespace)D=RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)");a.liveFired=this;var H=k.live.slice(0);for(n=0;nd)break;a.currentTarget=f.elem;a.data=f.handleObj.data; +a.handleObj=f.handleObj;D=f.handleObj.origHandler.apply(f.elem,arguments);if(D===false||a.isPropagationStopped()){d=f.level;if(D===false)b=false}}return b}}function Y(a,b){return(a&&a!=="*"?a+".":"")+b.replace(Ha,"`").replace(Ia,"&")}function ka(a,b,d){if(c.isFunction(b))return c.grep(a,function(f,h){return!!b.call(f,h,f)===d});else if(b.nodeType)return c.grep(a,function(f){return f===b===d});else if(typeof b==="string"){var e=c.grep(a,function(f){return f.nodeType===1});if(Ja.test(b))return c.filter(b, +e,!d);else b=c.filter(b,e)}return c.grep(a,function(f){return c.inArray(f,b)>=0===d})}function la(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var e=c.data(a[d++]),f=c.data(this,e);if(e=e&&e.events){delete f.handle;f.events={};for(var h in e)for(var k in e[h])c.event.add(this,h,e[h][k],e[h][k].data)}}})}function Ka(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)} +function ma(a,b,d){var e=b==="width"?a.offsetWidth:a.offsetHeight;if(d==="border")return e;c.each(b==="width"?La:Ma,function(){d||(e-=parseFloat(c.css(a,"padding"+this))||0);if(d==="margin")e+=parseFloat(c.css(a,"margin"+this))||0;else e-=parseFloat(c.css(a,"border"+this+"Width"))||0});return e}function ca(a,b,d,e){if(c.isArray(b)&&b.length)c.each(b,function(f,h){d||Na.test(a)?e(a,h):ca(a+"["+(typeof h==="object"||c.isArray(h)?f:"")+"]",h,d,e)});else if(!d&&b!=null&&typeof b==="object")c.isEmptyObject(b)? +e(a,""):c.each(b,function(f,h){ca(a+"["+f+"]",h,d,e)});else e(a,b)}function S(a,b){var d={};c.each(na.concat.apply([],na.slice(0,b)),function(){d[this]=a});return d}function oa(a){if(!da[a]){var b=c("<"+a+">").appendTo("body"),d=b.css("display");b.remove();if(d==="none"||d==="")d="block";da[a]=d}return da[a]}function ea(a){return c.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var u=E.document,c=function(){function a(){if(!b.isReady){try{u.documentElement.doScroll("left")}catch(i){setTimeout(a, +1);return}b.ready()}}var b=function(i,r){return new b.fn.init(i,r)},d=E.jQuery,e=E.$,f,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,k=/\S/,l=/^\s+/,n=/\s+$/,s=/\W/,v=/\d/,B=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,D=/^[\],:{}\s]*$/,H=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,w=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,G=/(?:^|:|,)(?:\s*\[)+/g,M=/(webkit)[ \/]([\w.]+)/,g=/(opera)(?:.*version)?[ \/]([\w.]+)/,j=/(msie) ([\w.]+)/,o=/(mozilla)(?:.*? rv:([\w.]+))?/,m=navigator.userAgent,p=false, +q=[],t,x=Object.prototype.toString,C=Object.prototype.hasOwnProperty,P=Array.prototype.push,N=Array.prototype.slice,R=String.prototype.trim,Q=Array.prototype.indexOf,L={};b.fn=b.prototype={init:function(i,r){var y,z,F;if(!i)return this;if(i.nodeType){this.context=this[0]=i;this.length=1;return this}if(i==="body"&&!r&&u.body){this.context=u;this[0]=u.body;this.selector="body";this.length=1;return this}if(typeof i==="string")if((y=h.exec(i))&&(y[1]||!r))if(y[1]){F=r?r.ownerDocument||r:u;if(z=B.exec(i))if(b.isPlainObject(r)){i= +[u.createElement(z[1])];b.fn.attr.call(i,r,true)}else i=[F.createElement(z[1])];else{z=b.buildFragment([y[1]],[F]);i=(z.cacheable?z.fragment.cloneNode(true):z.fragment).childNodes}return b.merge(this,i)}else{if((z=u.getElementById(y[2]))&&z.parentNode){if(z.id!==y[2])return f.find(i);this.length=1;this[0]=z}this.context=u;this.selector=i;return this}else if(!r&&!s.test(i)){this.selector=i;this.context=u;i=u.getElementsByTagName(i);return b.merge(this,i)}else return!r||r.jquery?(r||f).find(i):b(r).find(i); +else if(b.isFunction(i))return f.ready(i);if(i.selector!==A){this.selector=i.selector;this.context=i.context}return b.makeArray(i,this)},selector:"",jquery:"1.4.3",length:0,size:function(){return this.length},toArray:function(){return N.call(this,0)},get:function(i){return i==null?this.toArray():i<0?this.slice(i)[0]:this[i]},pushStack:function(i,r,y){var z=b();b.isArray(i)?P.apply(z,i):b.merge(z,i);z.prevObject=this;z.context=this.context;if(r==="find")z.selector=this.selector+(this.selector?" ": +"")+y;else if(r)z.selector=this.selector+"."+r+"("+y+")";return z},each:function(i,r){return b.each(this,i,r)},ready:function(i){b.bindReady();if(b.isReady)i.call(u,b);else q&&q.push(i);return this},eq:function(i){return i===-1?this.slice(i):this.slice(i,+i+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(N.apply(this,arguments),"slice",N.call(arguments).join(","))},map:function(i){return this.pushStack(b.map(this,function(r,y){return i.call(r, +y,r)}))},end:function(){return this.prevObject||b(null)},push:P,sort:[].sort,splice:[].splice};b.fn.init.prototype=b.fn;b.extend=b.fn.extend=function(){var i=arguments[0]||{},r=1,y=arguments.length,z=false,F,I,K,J,fa;if(typeof i==="boolean"){z=i;i=arguments[1]||{};r=2}if(typeof i!=="object"&&!b.isFunction(i))i={};if(y===r){i=this;--r}for(;r0)){if(q){for(var r=0;i=q[r++];)i.call(u,b);q=null}b.fn.triggerHandler&&b(u).triggerHandler("ready")}}},bindReady:function(){if(!p){p=true;if(u.readyState==="complete")return setTimeout(b.ready, +1);if(u.addEventListener){u.addEventListener("DOMContentLoaded",t,false);E.addEventListener("load",b.ready,false)}else if(u.attachEvent){u.attachEvent("onreadystatechange",t);E.attachEvent("onload",b.ready);var i=false;try{i=E.frameElement==null}catch(r){}u.documentElement.doScroll&&i&&a()}}},isFunction:function(i){return b.type(i)==="function"},isArray:Array.isArray||function(i){return b.type(i)==="array"},isWindow:function(i){return i&&typeof i==="object"&&"setInterval"in i},isNaN:function(i){return i== +null||!v.test(i)||isNaN(i)},type:function(i){return i==null?String(i):L[x.call(i)]||"object"},isPlainObject:function(i){if(!i||b.type(i)!=="object"||i.nodeType||b.isWindow(i))return false;if(i.constructor&&!C.call(i,"constructor")&&!C.call(i.constructor.prototype,"isPrototypeOf"))return false;for(var r in i);return r===A||C.call(i,r)},isEmptyObject:function(i){for(var r in i)return false;return true},error:function(i){throw i;},parseJSON:function(i){if(typeof i!=="string"||!i)return null;i=b.trim(i); +if(D.test(i.replace(H,"@").replace(w,"]").replace(G,"")))return E.JSON&&E.JSON.parse?E.JSON.parse(i):(new Function("return "+i))();else b.error("Invalid JSON: "+i)},noop:function(){},globalEval:function(i){if(i&&k.test(i)){var r=u.getElementsByTagName("head")[0]||u.documentElement,y=u.createElement("script");y.type="text/javascript";if(b.support.scriptEval)y.appendChild(u.createTextNode(i));else y.text=i;r.insertBefore(y,r.firstChild);r.removeChild(y)}},nodeName:function(i,r){return i.nodeName&&i.nodeName.toUpperCase()=== +r.toUpperCase()},each:function(i,r,y){var z,F=0,I=i.length,K=I===A||b.isFunction(i);if(y)if(K)for(z in i){if(r.apply(i[z],y)===false)break}else for(;F";a=u.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var s=u.createElement("div"); +s.style.width=s.style.paddingLeft="1px";u.body.appendChild(s);c.boxModel=c.support.boxModel=s.offsetWidth===2;if("zoom"in s.style){s.style.display="inline";s.style.zoom=1;c.support.inlineBlockNeedsLayout=s.offsetWidth===2;s.style.display="";s.innerHTML="
          ";c.support.shrinkWrapBlocks=s.offsetWidth!==2}s.innerHTML="
          t
          ";var v=s.getElementsByTagName("td");c.support.reliableHiddenOffsets=v[0].offsetHeight=== +0;v[0].style.display="";v[1].style.display="none";c.support.reliableHiddenOffsets=c.support.reliableHiddenOffsets&&v[0].offsetHeight===0;s.innerHTML="";u.body.removeChild(s).style.display="none"});a=function(s){var v=u.createElement("div");s="on"+s;var B=s in v;if(!B){v.setAttribute(s,"return;");B=typeof v[s]==="function"}return B};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=f=h=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength", +cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var pa={},Oa=/^(?:\{.*\}|\[.*\])$/;c.extend({cache:{},uuid:0,expando:"jQuery"+c.now(),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},data:function(a,b,d){if(c.acceptData(a)){a=a==E?pa:a;var e=a.nodeType,f=e?a[c.expando]:null,h=c.cache;if(!(e&&!f&&typeof b==="string"&&d===A)){if(e)f||(a[c.expando]=f=++c.uuid);else h=a;if(typeof b==="object")if(e)h[f]= +c.extend(h[f],b);else c.extend(h,b);else if(e&&!h[f])h[f]={};a=e?h[f]:h;if(d!==A)a[b]=d;return typeof b==="string"?a[b]:a}}},removeData:function(a,b){if(c.acceptData(a)){a=a==E?pa:a;var d=a.nodeType,e=d?a[c.expando]:a,f=c.cache,h=d?f[e]:e;if(b){if(h){delete h[b];d&&c.isEmptyObject(h)&&c.removeData(a)}}else if(d&&c.support.deleteExpando)delete a[c.expando];else if(a.removeAttribute)a.removeAttribute(c.expando);else if(d)delete f[e];else for(var k in a)delete a[k]}},acceptData:function(a){if(a.nodeName){var b= +c.noData[a.nodeName.toLowerCase()];if(b)return!(b===true||a.getAttribute("classid")!==b)}return true}});c.fn.extend({data:function(a,b){if(typeof a==="undefined")return this.length?c.data(this[0]):null;else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===A){var e=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(e===A&&this.length){e=c.data(this[0],a);if(e===A&&this[0].nodeType===1){e=this[0].getAttribute("data-"+a);if(typeof e=== +"string")try{e=e==="true"?true:e==="false"?false:e==="null"?null:!c.isNaN(e)?parseFloat(e):Oa.test(e)?c.parseJSON(e):e}catch(f){}else e=A}}return e===A&&d[1]?this.data(d[0]):e}else return this.each(function(){var h=c(this),k=[d[0],b];h.triggerHandler("setData"+d[1]+"!",k);c.data(this,a,b);h.triggerHandler("changeData"+d[1]+"!",k)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var e=c.data(a,b);if(!d)return e|| +[];if(!e||c.isArray(d))e=c.data(a,b,c.makeArray(d));else e.push(d);return e}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),e=d.shift();if(e==="inprogress")e=d.shift();if(e){b==="fx"&&d.unshift("inprogress");e.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b===A)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this, +a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var qa=/[\n\t]/g,ga=/\s+/,Pa=/\r/g,Qa=/^(?:href|src|style)$/,Ra=/^(?:button|input)$/i,Sa=/^(?:button|input|object|select|textarea)$/i,Ta=/^a(?:rea)?$/i,ra=/^(?:radio|checkbox)$/i;c.fn.extend({attr:function(a,b){return c.access(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this, +a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(s){var v=c(this);v.addClass(a.call(this,s,v.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ga),d=0,e=this.length;d-1)return true;return false}, +val:function(a){if(!arguments.length){var b=this[0];if(b){if(c.nodeName(b,"option")){var d=b.attributes.value;return!d||d.specified?b.value:b.text}if(c.nodeName(b,"select")){var e=b.selectedIndex;d=[];var f=b.options;b=b.type==="select-one";if(e<0)return null;var h=b?e:0;for(e=b?e+1:f.length;h=0;else if(c.nodeName(this,"select")){var B=c.makeArray(v);c("option",this).each(function(){this.selected= +c.inArray(c(this).val(),B)>=0});if(!B.length)this.selectedIndex=-1}else this.value=v}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,e){if(!a||a.nodeType===3||a.nodeType===8)return A;if(e&&b in c.attrFn)return c(a)[b](d);e=a.nodeType!==1||!c.isXMLDoc(a);var f=d!==A;b=e&&c.props[b]||b;if(a.nodeType===1){var h=Qa.test(b);if((b in a||a[b]!==A)&&e&&!h){if(f){b==="type"&&Ra.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed"); +if(d===null)a.nodeType===1&&a.removeAttribute(b);else a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:Sa.test(a.nodeName)||Ta.test(a.nodeName)&&a.href?0:A;return a[b]}if(!c.support.style&&e&&b==="style"){if(f)a.style.cssText=""+d;return a.style.cssText}f&&a.setAttribute(b,""+d);if(!a.attributes[b]&&a.hasAttribute&&!a.hasAttribute(b))return A;a=!c.support.hrefNormalized&&e&& +h?a.getAttribute(b,2):a.getAttribute(b);return a===null?A:a}}});var X=/\.(.*)$/,ha=/^(?:textarea|input|select)$/i,Ha=/\./g,Ia=/ /g,Ua=/[^\w\s.|`]/g,Va=function(a){return a.replace(Ua,"\\$&")},sa={focusin:0,focusout:0};c.event={add:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(c.isWindow(a)&&a!==E&&!a.frameElement)a=E;if(d===false)d=U;var f,h;if(d.handler){f=d;d=f.handler}if(!d.guid)d.guid=c.guid++;if(h=c.data(a)){var k=a.nodeType?"events":"__events__",l=h[k],n=h.handle;if(typeof l=== +"function"){n=l.handle;l=l.events}else if(!l){a.nodeType||(h[k]=h=function(){});h.events=l={}}if(!n)h.handle=n=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(n.elem,arguments):A};n.elem=a;b=b.split(" ");for(var s=0,v;k=b[s++];){h=f?c.extend({},f):{handler:d,data:e};if(k.indexOf(".")>-1){v=k.split(".");k=v.shift();h.namespace=v.slice(0).sort().join(".")}else{v=[];h.namespace=""}h.type=k;if(!h.guid)h.guid=d.guid;var B=l[k],D=c.event.special[k]||{};if(!B){B=l[k]=[]; +if(!D.setup||D.setup.call(a,e,v,n)===false)if(a.addEventListener)a.addEventListener(k,n,false);else a.attachEvent&&a.attachEvent("on"+k,n)}if(D.add){D.add.call(a,h);if(!h.handler.guid)h.handler.guid=d.guid}B.push(h);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(d===false)d=U;var f,h,k=0,l,n,s,v,B,D,H=a.nodeType?"events":"__events__",w=c.data(a),G=w&&w[H];if(w&&G){if(typeof G==="function"){w=G;G=G.events}if(b&&b.type){d=b.handler;b=b.type}if(!b|| +typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(f in G)c.event.remove(a,f+b)}else{for(b=b.split(" ");f=b[k++];){v=f;l=f.indexOf(".")<0;n=[];if(!l){n=f.split(".");f=n.shift();s=RegExp("(^|\\.)"+c.map(n.slice(0).sort(),Va).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(B=G[f])if(d){v=c.event.special[f]||{};for(h=e||0;h=0){a.type= +f=f.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[f]&&c.each(c.cache,function(){this.events&&this.events[f]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return A;a.result=A;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(e=d.nodeType?c.data(d,"handle"):(c.data(d,"__events__")||{}).handle)&&e.apply(d,b);e=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+f]&&d["on"+f].apply(d,b)=== +false){a.result=false;a.preventDefault()}}catch(h){}if(!a.isPropagationStopped()&&e)c.event.trigger(a,b,e,true);else if(!a.isDefaultPrevented()){e=a.target;var k,l=f.replace(X,""),n=c.nodeName(e,"a")&&l==="click",s=c.event.special[l]||{};if((!s._default||s._default.call(d,a)===false)&&!n&&!(e&&e.nodeName&&c.noData[e.nodeName.toLowerCase()])){try{if(e[l]){if(k=e["on"+l])e["on"+l]=null;c.event.triggered=true;e[l]()}}catch(v){}if(k)e["on"+l]=k;c.event.triggered=false}}},handle:function(a){var b,d,e; +d=[];var f,h=c.makeArray(arguments);a=h[0]=c.event.fix(a||E.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive;if(!b){e=a.type.split(".");a.type=e.shift();d=e.slice(0).sort();e=RegExp("(^|\\.)"+d.join("\\.(?:.*\\.)?")+"(\\.|$)")}a.namespace=a.namespace||d.join(".");f=c.data(this,this.nodeType?"events":"__events__");if(typeof f==="function")f=f.events;d=(f||{})[a.type];if(f&&d){d=d.slice(0);f=0;for(var k=d.length;f-1?c.map(a.options,function(e){return e.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},Z=function(a,b){var d=a.target,e,f;if(!(!ha.test(d.nodeName)||d.readOnly)){e=c.data(d,"_change_data");f=va(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data",f);if(!(e===A||f===e))if(e!=null||f){a.type="change";a.liveFired= +A;return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:Z,beforedeactivate:Z,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return Z.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return Z.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,"_change_data",va(a))}},setup:function(){if(this.type=== +"file")return false;for(var a in V)c.event.add(this,a+".specialChange",V[a]);return ha.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return ha.test(this.nodeName)}};V=c.event.special.change.filters;V.focus=V.beforeactivate}u.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(e){e=c.event.fix(e);e.type=b;return c.event.trigger(e,null,e.target)}c.event.special[b]={setup:function(){sa[b]++===0&&u.addEventListener(a,d,true)},teardown:function(){--sa[b]=== +0&&u.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,e,f){if(typeof d==="object"){for(var h in d)this[b](h,e,d[h],f);return this}if(c.isFunction(e)||e===false){f=e;e=A}var k=b==="one"?c.proxy(f,function(n){c(this).unbind(n,k);return f.apply(this,arguments)}):f;if(d==="unload"&&b!=="one")this.one(d,e,f);else{h=0;for(var l=this.length;h0?this.bind(b,d,e):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});E.attachEvent&&!E.addEventListener&&c(E).bind("unload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}}); +(function(){function a(g,j,o,m,p,q){p=0;for(var t=m.length;p0){C=x;break}}x=x[g]}m[p]=C}}}var d=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,h=false,k=true;[0,0].sort(function(){k=false;return 0});var l=function(g,j,o,m){o=o||[];var p=j=j||u;if(j.nodeType!==1&&j.nodeType!==9)return[];if(!g||typeof g!=="string")return o;var q=[],t,x,C,P,N=true,R=l.isXML(j),Q=g,L;do{d.exec("");if(t=d.exec(Q)){Q=t[3];q.push(t[1]);if(t[2]){P=t[3]; +break}}}while(t);if(q.length>1&&s.exec(g))if(q.length===2&&n.relative[q[0]])x=M(q[0]+q[1],j);else for(x=n.relative[q[0]]?[j]:l(q.shift(),j);q.length;){g=q.shift();if(n.relative[g])g+=q.shift();x=M(g,x)}else{if(!m&&q.length>1&&j.nodeType===9&&!R&&n.match.ID.test(q[0])&&!n.match.ID.test(q[q.length-1])){t=l.find(q.shift(),j,R);j=t.expr?l.filter(t.expr,t.set)[0]:t.set[0]}if(j){t=m?{expr:q.pop(),set:D(m)}:l.find(q.pop(),q.length===1&&(q[0]==="~"||q[0]==="+")&&j.parentNode?j.parentNode:j,R);x=t.expr?l.filter(t.expr, +t.set):t.set;if(q.length>0)C=D(x);else N=false;for(;q.length;){t=L=q.pop();if(n.relative[L])t=q.pop();else L="";if(t==null)t=j;n.relative[L](C,t,R)}}else C=[]}C||(C=x);C||l.error(L||g);if(f.call(C)==="[object Array]")if(N)if(j&&j.nodeType===1)for(g=0;C[g]!=null;g++){if(C[g]&&(C[g]===true||C[g].nodeType===1&&l.contains(j,C[g])))o.push(x[g])}else for(g=0;C[g]!=null;g++)C[g]&&C[g].nodeType===1&&o.push(x[g]);else o.push.apply(o,C);else D(C,o);if(P){l(P,p,o,m);l.uniqueSort(o)}return o};l.uniqueSort=function(g){if(w){h= +k;g.sort(w);if(h)for(var j=1;j0};l.find=function(g,j,o){var m;if(!g)return[];for(var p=0,q=n.order.length;p":function(g,j){var o=typeof j==="string",m,p=0,q=g.length;if(o&&!/\W/.test(j))for(j=j.toLowerCase();p=0))o||m.push(t);else if(o)j[q]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},CHILD:function(g){if(g[1]==="nth"){var j=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=j[1]+(j[2]||1)-0;g[3]=j[3]-0}g[0]=e++;return g},ATTR:function(g,j,o, +m,p,q){j=g[1].replace(/\\/g,"");if(!q&&n.attrMap[j])g[1]=n.attrMap[j];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,j,o,m,p){if(g[1]==="not")if((d.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=l(g[3],null,null,j);else{g=l.filter(g[3],j,o,true^p);o||m.push.apply(m,g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled=== +true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,j,o){return!!l(o[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"=== +g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},setFilters:{first:function(g,j){return j===0},last:function(g,j,o,m){return j===m.length-1},even:function(g,j){return j%2===0},odd:function(g,j){return j%2===1},lt:function(g,j,o){return jo[3]-0},nth:function(g,j,o){return o[3]- +0===j},eq:function(g,j,o){return o[3]-0===j}},filter:{PSEUDO:function(g,j,o,m){var p=j[1],q=n.filters[p];if(q)return q(g,o,j,m);else if(p==="contains")return(g.textContent||g.innerText||l.getText([g])||"").indexOf(j[3])>=0;else if(p==="not"){j=j[3];o=0;for(m=j.length;o=0}},ID:function(g,j){return g.nodeType===1&&g.getAttribute("id")===j},TAG:function(g,j){return j==="*"&&g.nodeType===1||g.nodeName.toLowerCase()=== +j},CLASS:function(g,j){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(j)>-1},ATTR:function(g,j){var o=j[1];o=n.attrHandle[o]?n.attrHandle[o](g):g[o]!=null?g[o]:g.getAttribute(o);var m=o+"",p=j[2],q=j[4];return o==null?p==="!=":p==="="?m===q:p==="*="?m.indexOf(q)>=0:p==="~="?(" "+m+" ").indexOf(q)>=0:!q?m&&o!==false:p==="!="?m!==q:p==="^="?m.indexOf(q)===0:p==="$="?m.substr(m.length-q.length)===q:p==="|="?m===q||m.substr(0,q.length+1)===q+"-":false},POS:function(g,j,o,m){var p=n.setFilters[j[2]]; +if(p)return p(g,o,j,m)}}},s=n.match.POS,v=function(g,j){return"\\"+(j-0+1)},B;for(B in n.match){n.match[B]=RegExp(n.match[B].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[B]=RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[B].source.replace(/\\(\d+)/g,v))}var D=function(g,j){g=Array.prototype.slice.call(g,0);if(j){j.push.apply(j,g);return j}return g};try{Array.prototype.slice.call(u.documentElement.childNodes,0)}catch(H){D=function(g,j){var o=j||[],m=0;if(f.call(g)==="[object Array]")Array.prototype.push.apply(o, +g);else if(typeof g.length==="number")for(var p=g.length;m";var o=u.documentElement;o.insertBefore(g,o.firstChild);if(u.getElementById(j)){n.find.ID=function(m,p,q){if(typeof p.getElementById!=="undefined"&&!q)return(p=p.getElementById(m[1]))?p.id===m[1]||typeof p.getAttributeNode!=="undefined"&&p.getAttributeNode("id").nodeValue===m[1]?[p]:A:[]};n.filter.ID=function(m,p){var q=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&q&&q.nodeValue===p}}o.removeChild(g); +o=g=null})();(function(){var g=u.createElement("div");g.appendChild(u.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(j,o){var m=o.getElementsByTagName(j[1]);if(j[1]==="*"){for(var p=[],q=0;m[q];q++)m[q].nodeType===1&&p.push(m[q]);m=p}return m};g.innerHTML="";if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(j){return j.getAttribute("href",2)};g=null})();u.querySelectorAll&& +function(){var g=l,j=u.createElement("div");j.innerHTML="

          ";if(!(j.querySelectorAll&&j.querySelectorAll(".TEST").length===0)){l=function(m,p,q,t){p=p||u;if(!t&&!l.isXML(p))if(p.nodeType===9)try{return D(p.querySelectorAll(m),q)}catch(x){}else if(p.nodeType===1&&p.nodeName.toLowerCase()!=="object"){var C=p.id,P=p.id="__sizzle__";try{return D(p.querySelectorAll("#"+P+" "+m),q)}catch(N){}finally{if(C)p.id=C;else p.removeAttribute("id")}}return g(m,p,q,t)};for(var o in g)l[o]=g[o]; +j=null}}();(function(){var g=u.documentElement,j=g.matchesSelector||g.mozMatchesSelector||g.webkitMatchesSelector||g.msMatchesSelector,o=false;try{j.call(u.documentElement,":sizzle")}catch(m){o=true}if(j)l.matchesSelector=function(p,q){try{if(o||!n.match.PSEUDO.test(q))return j.call(p,q)}catch(t){}return l(q,null,null,[p]).length>0}})();(function(){var g=u.createElement("div");g.innerHTML="
          ";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length=== +0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(j,o,m){if(typeof o.getElementsByClassName!=="undefined"&&!m)return o.getElementsByClassName(j[1])};g=null}}})();l.contains=u.documentElement.contains?function(g,j){return g!==j&&(g.contains?g.contains(j):true)}:function(g,j){return!!(g.compareDocumentPosition(j)&16)};l.isXML=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false};var M=function(g, +j){for(var o=[],m="",p,q=j.nodeType?[j]:j;p=n.match.PSEUDO.exec(g);){m+=p[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;p=0;for(var t=q.length;p0)for(var h=d;h0},closest:function(a, +b){var d=[],e,f,h=this[0];if(c.isArray(a)){var k={},l,n=1;if(h&&a.length){e=0;for(f=a.length;e-1:c(h).is(e))d.push({selector:l,elem:h,level:n})}h=h.parentNode;n++}}return d}k=$a.test(a)?c(a,b||this.context):null;e=0;for(f=this.length;e-1:c.find.matchesSelector(h,a)){d.push(h);break}else{h=h.parentNode;if(!h|| +!h.ownerDocument||h===b)break}d=d.length>1?c.unique(d):d;return this.pushStack(d,"closest",a)},index:function(a){if(!a||typeof a==="string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var d=typeof a==="string"?c(a,b||this.context):c.makeArray(a),e=c.merge(this.get(),d);return this.pushStack(!d[0]||!d[0].parentNode||d[0].parentNode.nodeType===11||!e[0]||!e[0].parentNode||e[0].parentNode.nodeType===11?e:c.unique(e))},andSelf:function(){return this.add(this.prevObject)}}); +c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling", +d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,e){var f=c.map(this,b,d);Wa.test(a)||(e=d);if(e&&typeof e==="string")f=c.filter(e,f);f=this.length>1?c.unique(f):f;if((this.length>1||Ya.test(e))&&Xa.test(a))f=f.reverse();return this.pushStack(f,a,Za.call(arguments).join(","))}}); +c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return b.length===1?c.find.matchesSelector(b[0],a)?[b[0]]:[]:c.find.matches(a,b)},dir:function(a,b,d){var e=[];for(a=a[b];a&&a.nodeType!==9&&(d===A||a.nodeType!==1||!c(a).is(d));){a.nodeType===1&&e.push(a);a=a[b]}return e},nth:function(a,b,d){b=b||1;for(var e=0;a;a=a[d])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var xa=/ jQuery\d+="(?:\d+|null)"/g, +$=/^\s+/,ya=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,za=/<([\w:]+)/,ab=/\s]+\/)>/g,O={option:[1,""],legend:[1,"
          ","
          "],thead:[1,"","
          "],tr:[2,"","
          "],td:[3,"","
          "],col:[2,"","
          "], +area:[1,"",""],_default:[0,"",""]};O.optgroup=O.option;O.tbody=O.tfoot=O.colgroup=O.caption=O.thead;O.th=O.td;if(!c.support.htmlSerialize)O._default=[1,"div
          ","
          "];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d=c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==A)return this.empty().append((this[0]&&this[0].ownerDocument||u).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this, +d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this},wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})}, +unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a= +c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,e;(e=this[d])!=null;d++)if(!a||c.filter(a,[e]).length){if(!b&&e.nodeType===1){c.cleanData(e.getElementsByTagName("*")); +c.cleanData([e])}e.parentNode&&e.parentNode.removeChild(e)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild);return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,e=this.ownerDocument;if(!d){d=e.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(xa,"").replace(cb,'="$1">').replace($, +"")],e)[0]}else return this.cloneNode(true)});if(a===true){la(this,b);la(this.find("*"),b.find("*"))}return b},html:function(a){if(a===A)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(xa,""):null;else if(typeof a==="string"&&!Aa.test(a)&&(c.support.leadingWhitespace||!$.test(a))&&!O[(za.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(ya,"<$1>");try{for(var b=0,d=this.length;b0||e.cacheable||this.length>1?l.cloneNode(true):l)}k.length&&c.each(k,Ka)}return this}});c.buildFragment=function(a,b,d){var e,f,h;b=b&&b[0]?b[0].ownerDocument||b[0]:u;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===u&&!Aa.test(a[0])&&(c.support.checkClone|| +!Ba.test(a[0]))){f=true;if(h=c.fragments[a[0]])if(h!==1)e=h}if(!e){e=b.createDocumentFragment();c.clean(a,b,e,d)}if(f)c.fragments[a[0]]=h?e:1;return{fragment:e,cacheable:f}};c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var e=[];d=c(d);var f=this.length===1&&this[0].parentNode;if(f&&f.nodeType===11&&f.childNodes.length===1&&d.length===1){d[b](this[0]);return this}else{f=0;for(var h= +d.length;f0?this.clone(true):this).get();c(d[f])[b](k);e=e.concat(k)}return this.pushStack(e,a,d.selector)}}});c.extend({clean:function(a,b,d,e){b=b||u;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||u;for(var f=[],h=0,k;(k=a[h])!=null;h++){if(typeof k==="number")k+="";if(k){if(typeof k==="string"&&!bb.test(k))k=b.createTextNode(k);else if(typeof k==="string"){k=k.replace(ya,"<$1>");var l=(za.exec(k)||["",""])[1].toLowerCase(),n=O[l]||O._default, +s=n[0],v=b.createElement("div");for(v.innerHTML=n[1]+k+n[2];s--;)v=v.lastChild;if(!c.support.tbody){s=ab.test(k);l=l==="table"&&!s?v.firstChild&&v.firstChild.childNodes:n[1]===""&&!s?v.childNodes:[];for(n=l.length-1;n>=0;--n)c.nodeName(l[n],"tbody")&&!l[n].childNodes.length&&l[n].parentNode.removeChild(l[n])}!c.support.leadingWhitespace&&$.test(k)&&v.insertBefore(b.createTextNode($.exec(k)[0]),v.firstChild);k=v.childNodes}if(k.nodeType)f.push(k);else f=c.merge(f,k)}}if(d)for(h=0;f[h];h++)if(e&& +c.nodeName(f[h],"script")&&(!f[h].type||f[h].type.toLowerCase()==="text/javascript"))e.push(f[h].parentNode?f[h].parentNode.removeChild(f[h]):f[h]);else{f[h].nodeType===1&&f.splice.apply(f,[h+1,0].concat(c.makeArray(f[h].getElementsByTagName("script"))));d.appendChild(f[h])}return f},cleanData:function(a){for(var b,d,e=c.cache,f=c.event.special,h=c.support.deleteExpando,k=0,l;(l=a[k])!=null;k++)if(!(l.nodeName&&c.noData[l.nodeName.toLowerCase()]))if(d=l[c.expando]){if((b=e[d])&&b.events)for(var n in b.events)f[n]? +c.event.remove(l,n):c.removeEvent(l,n,b.handle);if(h)delete l[c.expando];else l.removeAttribute&&l.removeAttribute(c.expando);delete e[d]}}});var Ca=/alpha\([^)]*\)/i,db=/opacity=([^)]*)/,eb=/-([a-z])/ig,fb=/([A-Z])/g,Da=/^-?\d+(?:px)?$/i,gb=/^-?\d/,hb={position:"absolute",visibility:"hidden",display:"block"},La=["Left","Right"],Ma=["Top","Bottom"],W,ib=u.defaultView&&u.defaultView.getComputedStyle,jb=function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){if(arguments.length===2&&b===A)return this; +return c.access(this,a,b,true,function(d,e,f){return f!==A?c.style(d,e,f):c.css(d,e)})};c.extend({cssHooks:{opacity:{get:function(a,b){if(b){var d=W(a,"opacity","opacity");return d===""?"1":d}else return a.style.opacity}}},cssNumber:{zIndex:true,fontWeight:true,opacity:true,zoom:true,lineHeight:true},cssProps:{"float":c.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,d,e){if(!(!a||a.nodeType===3||a.nodeType===8||!a.style)){var f,h=c.camelCase(b),k=a.style,l=c.cssHooks[h];b=c.cssProps[h]|| +h;if(d!==A){if(!(typeof d==="number"&&isNaN(d)||d==null)){if(typeof d==="number"&&!c.cssNumber[h])d+="px";if(!l||!("set"in l)||(d=l.set(a,d))!==A)try{k[b]=d}catch(n){}}}else{if(l&&"get"in l&&(f=l.get(a,false,e))!==A)return f;return k[b]}}},css:function(a,b,d){var e,f=c.camelCase(b),h=c.cssHooks[f];b=c.cssProps[f]||f;if(h&&"get"in h&&(e=h.get(a,true,d))!==A)return e;else if(W)return W(a,b,f)},swap:function(a,b,d){var e={},f;for(f in b){e[f]=a.style[f];a.style[f]=b[f]}d.call(a);for(f in b)a.style[f]= +e[f]},camelCase:function(a){return a.replace(eb,jb)}});c.curCSS=c.css;c.each(["height","width"],function(a,b){c.cssHooks[b]={get:function(d,e,f){var h;if(e){if(d.offsetWidth!==0)h=ma(d,b,f);else c.swap(d,hb,function(){h=ma(d,b,f)});return h+"px"}},set:function(d,e){if(Da.test(e)){e=parseFloat(e);if(e>=0)return e+"px"}else return e}}});if(!c.support.opacity)c.cssHooks.opacity={get:function(a,b){return db.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"": +b?"1":""},set:function(a,b){var d=a.style;d.zoom=1;var e=c.isNaN(b)?"":"alpha(opacity="+b*100+")",f=d.filter||"";d.filter=Ca.test(f)?f.replace(Ca,e):d.filter+" "+e}};if(ib)W=function(a,b,d){var e;d=d.replace(fb,"-$1").toLowerCase();if(!(b=a.ownerDocument.defaultView))return A;if(b=b.getComputedStyle(a,null)){e=b.getPropertyValue(d);if(e===""&&!c.contains(a.ownerDocument.documentElement,a))e=c.style(a,d)}return e};else if(u.documentElement.currentStyle)W=function(a,b){var d,e,f=a.currentStyle&&a.currentStyle[b], +h=a.style;if(!Da.test(f)&&gb.test(f)){d=h.left;e=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;h.left=b==="fontSize"?"1em":f||0;f=h.pixelLeft+"px";h.left=d;a.runtimeStyle.left=e}return f};if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=a.offsetHeight;return a.offsetWidth===0&&b===0||!c.support.reliableHiddenOffsets&&(a.style.display||c.css(a,"display"))==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var kb=c.now(),lb=/)<[^<]*)*<\/script>/gi, +mb=/^(?:select|textarea)/i,nb=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,ob=/^(?:GET|HEAD|DELETE)$/,Na=/\[\]$/,T=/\=\?(&|$)/,ia=/\?/,pb=/([?&])_=[^&]*/,qb=/^(\w+:)?\/\/([^\/?#]+)/,rb=/%20/g,sb=/#.*$/,Ea=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!=="string"&&Ea)return Ea.apply(this,arguments);else if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var f=a.slice(e,a.length);a=a.slice(0,e)}e="GET";if(b)if(c.isFunction(b)){d= +b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);e="POST"}var h=this;c.ajax({url:a,type:e,dataType:"html",data:b,complete:function(k,l){if(l==="success"||l==="notmodified")h.html(f?c("
          ").append(k.responseText.replace(lb,"")).find(f):k.responseText);d&&h.each(d,[k.responseText,l,k])}});return this},serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&& +!this.disabled&&(this.checked||mb.test(this.nodeName)||nb.test(this.type))}).map(function(a,b){var d=c(this).val();return d==null?null:c.isArray(d)?c.map(d,function(e){return{name:b.name,value:e}}):{name:b.name,value:d}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:e})}, +getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:e})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return new E.XMLHttpRequest},accepts:{xml:"application/xml, text/xml",html:"text/html", +script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},ajax:function(a){var b=c.extend(true,{},c.ajaxSettings,a),d,e,f,h=b.type.toUpperCase(),k=ob.test(h);b.url=b.url.replace(sb,"");b.context=a&&a.context!=null?a.context:b;if(b.data&&b.processData&&typeof b.data!=="string")b.data=c.param(b.data,b.traditional);if(b.dataType==="jsonp"){if(h==="GET")T.test(b.url)||(b.url+=(ia.test(b.url)?"&":"?")+(b.jsonp||"callback")+"=?");else if(!b.data|| +!T.test(b.data))b.data=(b.data?b.data+"&":"")+(b.jsonp||"callback")+"=?";b.dataType="json"}if(b.dataType==="json"&&(b.data&&T.test(b.data)||T.test(b.url))){d=b.jsonpCallback||"jsonp"+kb++;if(b.data)b.data=(b.data+"").replace(T,"="+d+"$1");b.url=b.url.replace(T,"="+d+"$1");b.dataType="script";var l=E[d];E[d]=function(m){f=m;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);if(c.isFunction(l))l(m);else{E[d]=A;try{delete E[d]}catch(p){}}v&&v.removeChild(B)}}if(b.dataType==="script"&&b.cache===null)b.cache= +false;if(b.cache===false&&h==="GET"){var n=c.now(),s=b.url.replace(pb,"$1_="+n);b.url=s+(s===b.url?(ia.test(b.url)?"&":"?")+"_="+n:"")}if(b.data&&h==="GET")b.url+=(ia.test(b.url)?"&":"?")+b.data;b.global&&c.active++===0&&c.event.trigger("ajaxStart");n=(n=qb.exec(b.url))&&(n[1]&&n[1]!==location.protocol||n[2]!==location.host);if(b.dataType==="script"&&h==="GET"&&n){var v=u.getElementsByTagName("head")[0]||u.documentElement,B=u.createElement("script");if(b.scriptCharset)B.charset=b.scriptCharset;B.src= +b.url;if(!d){var D=false;B.onload=B.onreadystatechange=function(){if(!D&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){D=true;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);B.onload=B.onreadystatechange=null;v&&B.parentNode&&v.removeChild(B)}}}v.insertBefore(B,v.firstChild);return A}var H=false,w=b.xhr();if(w){b.username?w.open(h,b.url,b.async,b.username,b.password):w.open(h,b.url,b.async);try{if(b.data!=null&&!k||a&&a.contentType)w.setRequestHeader("Content-Type", +b.contentType);if(b.ifModified){c.lastModified[b.url]&&w.setRequestHeader("If-Modified-Since",c.lastModified[b.url]);c.etag[b.url]&&w.setRequestHeader("If-None-Match",c.etag[b.url])}n||w.setRequestHeader("X-Requested-With","XMLHttpRequest");w.setRequestHeader("Accept",b.dataType&&b.accepts[b.dataType]?b.accepts[b.dataType]+", */*; q=0.01":b.accepts._default)}catch(G){}if(b.beforeSend&&b.beforeSend.call(b.context,w,b)===false){b.global&&c.active--===1&&c.event.trigger("ajaxStop");w.abort();return false}b.global&& +c.triggerGlobal(b,"ajaxSend",[w,b]);var M=w.onreadystatechange=function(m){if(!w||w.readyState===0||m==="abort"){H||c.handleComplete(b,w,e,f);H=true;if(w)w.onreadystatechange=c.noop}else if(!H&&w&&(w.readyState===4||m==="timeout")){H=true;w.onreadystatechange=c.noop;e=m==="timeout"?"timeout":!c.httpSuccess(w)?"error":b.ifModified&&c.httpNotModified(w,b.url)?"notmodified":"success";var p;if(e==="success")try{f=c.httpData(w,b.dataType,b)}catch(q){e="parsererror";p=q}if(e==="success"||e==="notmodified")d|| +c.handleSuccess(b,w,e,f);else c.handleError(b,w,e,p);d||c.handleComplete(b,w,e,f);m==="timeout"&&w.abort();if(b.async)w=null}};try{var g=w.abort;w.abort=function(){w&&g.call&&g.call(w);M("abort")}}catch(j){}b.async&&b.timeout>0&&setTimeout(function(){w&&!H&&M("timeout")},b.timeout);try{w.send(k||b.data==null?null:b.data)}catch(o){c.handleError(b,w,null,o);c.handleComplete(b,w,e,f)}b.async||M();return w}},param:function(a,b){var d=[],e=function(h,k){k=c.isFunction(k)?k():k;d[d.length]=encodeURIComponent(h)+ +"="+encodeURIComponent(k)};if(b===A)b=c.ajaxSettings.traditional;if(c.isArray(a)||a.jquery)c.each(a,function(){e(this.name,this.value)});else for(var f in a)ca(f,a[f],b,e);return d.join("&").replace(rb,"+")}});c.extend({active:0,lastModified:{},etag:{},handleError:function(a,b,d,e){a.error&&a.error.call(a.context,b,d,e);a.global&&c.triggerGlobal(a,"ajaxError",[b,a,e])},handleSuccess:function(a,b,d,e){a.success&&a.success.call(a.context,e,d,b);a.global&&c.triggerGlobal(a,"ajaxSuccess",[b,a])},handleComplete:function(a, +b,d){a.complete&&a.complete.call(a.context,b,d);a.global&&c.triggerGlobal(a,"ajaxComplete",[b,a]);a.global&&c.active--===1&&c.event.trigger("ajaxStop")},triggerGlobal:function(a,b,d){(a.context&&a.context.url==null?c(a.context):c.event).trigger(b,d)},httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===1223}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),e=a.getResponseHeader("Etag"); +if(d)c.lastModified[b]=d;if(e)c.etag[b]=e;return a.status===304},httpData:function(a,b,d){var e=a.getResponseHeader("content-type")||"",f=b==="xml"||!b&&e.indexOf("xml")>=0;a=f?a.responseXML:a.responseText;f&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b==="json"||!b&&e.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&e.indexOf("javascript")>=0)c.globalEval(a);return a}});if(E.ActiveXObject)c.ajaxSettings.xhr= +function(){if(E.location.protocol!=="file:")try{return new E.XMLHttpRequest}catch(a){}try{return new E.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}};c.support.ajax=!!c.ajaxSettings.xhr();var da={},tb=/^(?:toggle|show|hide)$/,ub=/^([+\-]=)?([\d+.\-]+)(.*)$/,aa,na=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b,d){if(a||a===0)return this.animate(S("show",3),a,b,d);else{a= +0;for(b=this.length;a=0;e--)if(d[e].elem===this){b&&d[e](true);d.splice(e,1)}});b||this.dequeue();return this}});c.each({slideDown:S("show",1),slideUp:S("hide",1),slideToggle:S("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,e,f){return this.animate(b, +d,e,f)}});c.extend({speed:function(a,b,d){var e=a&&typeof a==="object"?c.extend({},a):{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};e.duration=c.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in c.fx.speeds?c.fx.speeds[e.duration]:c.fx.speeds._default;e.old=e.complete;e.complete=function(){e.queue!==false&&c(this).dequeue();c.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,d,e){return d+e*a},swing:function(a,b,d,e){return(-Math.cos(a* +Math.PI)/2+0.5)*e+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||c.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a=parseFloat(c.css(this.elem,this.prop));return a&&a>-1E4?a:0},custom:function(a,b,d){function e(h){return f.step(h)} +this.startTime=c.now();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;this.pos=this.state=0;var f=this;a=c.fx;e.elem=this.elem;if(e()&&c.timers.push(e)&&!aa)aa=setInterval(a.tick,a.interval)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true; +this.custom(this.cur(),0)},step:function(a){var b=c.now(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var e in this.options.curAnim)if(this.options.curAnim[e]!==true)d=false;if(d){if(this.options.overflow!=null&&!c.support.shrinkWrapBlocks){var f=this.elem,h=this.options;c.each(["","X","Y"],function(l,n){f.style["overflow"+n]=h.overflow[l]})}this.options.hide&&c(this.elem).hide();if(this.options.hide|| +this.options.show)for(var k in this.options.curAnim)c.style(this.elem,k,this.options.orig[k]);this.options.complete.call(this.elem)}return false}else{a=b-this.startTime;this.state=a/this.options.duration;b=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||b](this.state,a,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a= +c.timers,b=0;b-1;e={};var s={};if(n)s=f.position();k=n?s.top:parseInt(k,10)||0;l=n?s.left:parseInt(l,10)||0;if(c.isFunction(b))b=b.call(a,d,h);if(b.top!=null)e.top=b.top-h.top+k;if(b.left!=null)e.left=b.left-h.left+l;"using"in b?b.using.call(a, +e):f.css(e)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),e=Fa.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.css(a,"marginTop"))||0;d.left-=parseFloat(c.css(a,"marginLeft"))||0;e.top+=parseFloat(c.css(b[0],"borderTopWidth"))||0;e.left+=parseFloat(c.css(b[0],"borderLeftWidth"))||0;return{top:d.top-e.top,left:d.left-e.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||u.body;a&&!Fa.test(a.nodeName)&& +c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(e){var f=this[0],h;if(!f)return null;if(e!==A)return this.each(function(){if(h=ea(this))h.scrollTo(!a?e:c(h).scrollLeft(),a?e:c(h).scrollTop());else this[d]=e});else return(h=ea(f))?"pageXOffset"in h?h[a?"pageYOffset":"pageXOffset"]:c.support.boxModel&&h.document.documentElement[d]||h.document.body[d]:f[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase(); +c.fn["inner"+b]=function(){return this[0]?parseFloat(c.css(this[0],d,"padding")):null};c.fn["outer"+b]=function(e){return this[0]?parseFloat(c.css(this[0],d,e?"margin":"border")):null};c.fn[d]=function(e){var f=this[0];if(!f)return e==null?null:this;if(c.isFunction(e))return this.each(function(h){var k=c(this);k[d](e.call(this,h,k[d]()))});return c.isWindow(f)?f.document.compatMode==="CSS1Compat"&&f.document.documentElement["client"+b]||f.document.body["client"+b]:f.nodeType===9?Math.max(f.documentElement["client"+ +b],f.body["scroll"+b],f.documentElement["scroll"+b],f.body["offset"+b],f.documentElement["offset"+b]):e===A?parseFloat(c.css(f,d)):this.css(d,typeof e==="string"?e:e+"px")}})})(window); diff --git a/askbot/skins/default/media/js/jquery.fancybox-1.3.4/style.css b/askbot/skins/default/media/js/jquery.fancybox-1.3.4/style.css new file mode 100644 index 00000000..e11a5122 --- /dev/null +++ b/askbot/skins/default/media/js/jquery.fancybox-1.3.4/style.css @@ -0,0 +1,65 @@ +html, body, div, ul { + margin: 0; + padding: 0; +} + +body { + color: #262626; + background: #f4f4f4; + font: normal 12px/18px Verdana, sans-serif; +} + +#content { + width: 400px; + margin: 40px auto 0 auto; + padding: 0 60px 30px 60px; + border: solid 1px #cbcbcb; + background: #fafafa; + -moz-box-shadow: 0px 0px 10px #cbcbcb; + -webkit-box-shadow: 0px 0px 10px #cbcbcb; +} + +h1 { + margin: 30px 0 15px 0; + font-size: 30px; + font-weight: bold; + font-family: Arial; +} + +h1 span { + font-size: 50%; + letter-spacing: -0.05em; +} + +hr { + border: none; + height: 1px; line-height: 1px; + background: #E5E5E5; + margin-bottom: 20px; + padding: 0; +} + +p { + margin: 0; + padding: 7px 0; +} + +a { + outline: none; +} + +a img { + border: 1px solid #BBB; + padding: 2px; + margin: 10px 20px 10px 0; + vertical-align: top; +} + +a img.last { + margin-right: 0; +} + +ul { + margin-bottom: 24px; + padding-left: 30px; +} diff --git a/askbot/skins/default/media/js/jquery.flot.js b/askbot/skins/default/media/js/jquery.flot.js new file mode 100644 index 00000000..6534a468 --- /dev/null +++ b/askbot/skins/default/media/js/jquery.flot.js @@ -0,0 +1,2119 @@ +/* Javascript plotting library for jQuery, v. 0.6. + * + * Released under the MIT license by IOLA, December 2007. + * + */ + +// first an inline dependency, jquery.colorhelpers.js, we inline it here +// for convenience + +/* Plugin for jQuery for working with colors. + * + * Version 1.0. + * + * Inspiration from jQuery color animation plugin by John Resig. + * + * Released under the MIT license by Ole Laursen, October 2009. + * + * Examples: + * + * $.color.parse("#fff").scale('rgb', 0.25).add('a', -0.5).toString() + * var c = $.color.extract($("#mydiv"), 'background-color'); + * console.log(c.r, c.g, c.b, c.a); + * $.color.make(100, 50, 25, 0.4).toString() // returns "rgba(100,50,25,0.4)" + * + * Note that .scale() and .add() work in-place instead of returning + * new objects. + */ +(function(){jQuery.color={};jQuery.color.make=function(E,D,B,C){var F={};F.r=E||0;F.g=D||0;F.b=B||0;F.a=C!=null?C:1;F.add=function(I,H){for(var G=0;G=1){return"rgb("+[F.r,F.g,F.b].join(",")+")"}else{return"rgba("+[F.r,F.g,F.b,F.a].join(",")+")"}};F.normalize=function(){function G(I,J,H){return JH?H:J)}F.r=G(0,parseInt(F.r),255);F.g=G(0,parseInt(F.g),255);F.b=G(0,parseInt(F.b),255);F.a=G(0,F.a,1);return F};F.clone=function(){return jQuery.color.make(F.r,F.b,F.g,F.a)};return F.normalize()};jQuery.color.extract=function(C,B){var D;do{D=C.css(B).toLowerCase();if(D!=""&&D!="transparent"){break}C=C.parent()}while(!jQuery.nodeName(C.get(0),"body"));if(D=="rgba(0, 0, 0, 0)"){D="transparent"}return jQuery.color.parse(D)};jQuery.color.parse=function(E){var D,B=jQuery.color.make;if(D=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(E)){return B(parseInt(D[1],10),parseInt(D[2],10),parseInt(D[3],10))}if(D=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(E)){return B(parseInt(D[1],10),parseInt(D[2],10),parseInt(D[3],10),parseFloat(D[4]))}if(D=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(E)){return B(parseFloat(D[1])*2.55,parseFloat(D[2])*2.55,parseFloat(D[3])*2.55)}if(D=/rgba\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(E)){return B(parseFloat(D[1])*2.55,parseFloat(D[2])*2.55,parseFloat(D[3])*2.55,parseFloat(D[4]))}if(D=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(E)){return B(parseInt(D[1],16),parseInt(D[2],16),parseInt(D[3],16))}if(D=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(E)){return B(parseInt(D[1]+D[1],16),parseInt(D[2]+D[2],16),parseInt(D[3]+D[3],16))}var C=jQuery.trim(E).toLowerCase();if(C=="transparent"){return B(255,255,255,0)}else{D=A[C];return B(D[0],D[1],D[2])}};var A={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0]}})(); + +// the actual Flot code +(function($) { + function Plot(placeholder, data_, options_, plugins) { + // data is on the form: + // [ series1, series2 ... ] + // where series is either just the data as [ [x1, y1], [x2, y2], ... ] + // or { data: [ [x1, y1], [x2, y2], ... ], label: "some label", ... } + + var series = [], + options = { + // the color theme used for graphs + colors: ["#edc240", "#afd8f8", "#cb4b4b", "#4da74d", "#9440ed"], + legend: { + show: true, + noColumns: 1, // number of colums in legend table + labelFormatter: null, // fn: string -> string + labelBoxBorderColor: "#ccc", // border color for the little label boxes + container: null, // container (as jQuery object) to put legend in, null means default on top of graph + position: "ne", // position of default legend container within plot + margin: 5, // distance from grid edge to default legend container within plot + backgroundColor: null, // null means auto-detect + backgroundOpacity: 0.85 // set to 0 to avoid background + }, + xaxis: { + mode: null, // null or "time" + transform: null, // null or f: number -> number to transform axis + inverseTransform: null, // if transform is set, this should be the inverse function + min: null, // min. value to show, null means set automatically + max: null, // max. value to show, null means set automatically + autoscaleMargin: null, // margin in % to add if auto-setting min/max + ticks: null, // either [1, 3] or [[1, "a"], 3] or (fn: axis info -> ticks) or app. number of ticks for auto-ticks + tickFormatter: null, // fn: number -> string + labelWidth: null, // size of tick labels in pixels + labelHeight: null, + + // mode specific options + tickDecimals: null, // no. of decimals, null means auto + tickSize: null, // number or [number, "unit"] + minTickSize: null, // number or [number, "unit"] + monthNames: null, // list of names of months + timeformat: null, // format string to use + twelveHourClock: false // 12 or 24 time in time mode + }, + yaxis: { + autoscaleMargin: 0.02 + }, + x2axis: { + autoscaleMargin: null + }, + y2axis: { + autoscaleMargin: 0.02 + }, + series: { + points: { + show: false, + radius: 3, + lineWidth: 2, // in pixels + fill: true, + fillColor: "#ffffff" + }, + lines: { + // we don't put in show: false so we can see + // whether lines were actively disabled + lineWidth: 2, // in pixels + fill: false, + fillColor: null, + steps: false + }, + bars: { + show: false, + lineWidth: 2, // in pixels + barWidth: 1, // in units of the x axis + fill: true, + fillColor: null, + align: "left", // or "center" + horizontal: false // when horizontal, left is now top + }, + shadowSize: 3 + }, + grid: { + show: true, + aboveData: false, + color: "#545454", // primary color used for outline and labels + backgroundColor: null, // null for transparent, else color + tickColor: "rgba(0,0,0,0.15)", // color used for the ticks + labelMargin: 5, // in pixels + borderWidth: 2, // in pixels + borderColor: null, // set if different from the grid color + markings: null, // array of ranges or fn: axes -> array of ranges + markingsColor: "#f4f4f4", + markingsLineWidth: 2, + // interactive stuff + clickable: false, + hoverable: false, + autoHighlight: true, // highlight in case mouse is near + mouseActiveRadius: 10 // how far the mouse can be away to activate an item + }, + hooks: {} + }, + canvas = null, // the canvas for the plot itself + overlay = null, // canvas for interactive stuff on top of plot + eventHolder = null, // jQuery object that events should be bound to + ctx = null, octx = null, + axes = { xaxis: {}, yaxis: {}, x2axis: {}, y2axis: {} }, + plotOffset = { left: 0, right: 0, top: 0, bottom: 0}, + canvasWidth = 0, canvasHeight = 0, + plotWidth = 0, plotHeight = 0, + hooks = { + processOptions: [], + processRawData: [], + processDatapoints: [], + draw: [], + bindEvents: [], + drawOverlay: [] + }, + plot = this; + + // public functions + plot.setData = setData; + plot.setupGrid = setupGrid; + plot.draw = draw; + plot.getPlaceholder = function() { return placeholder; }; + plot.getCanvas = function() { return canvas; }; + plot.getPlotOffset = function() { return plotOffset; }; + plot.width = function () { return plotWidth; }; + plot.height = function () { return plotHeight; }; + plot.offset = function () { + var o = eventHolder.offset(); + o.left += plotOffset.left; + o.top += plotOffset.top; + return o; + }; + plot.getData = function() { return series; }; + plot.getAxes = function() { return axes; }; + plot.getOptions = function() { return options; }; + plot.highlight = highlight; + plot.unhighlight = unhighlight; + plot.triggerRedrawOverlay = triggerRedrawOverlay; + plot.pointOffset = function(point) { + return { left: parseInt(axisSpecToRealAxis(point, "xaxis").p2c(+point.x) + plotOffset.left), + top: parseInt(axisSpecToRealAxis(point, "yaxis").p2c(+point.y) + plotOffset.top) }; + }; + + + // public attributes + plot.hooks = hooks; + + // initialize + initPlugins(plot); + parseOptions(options_); + constructCanvas(); + setData(data_); + setupGrid(); + draw(); + bindEvents(); + + + function executeHooks(hook, args) { + args = [plot].concat(args); + for (var i = 0; i < hook.length; ++i) + hook[i].apply(this, args); + } + + function initPlugins() { + for (var i = 0; i < plugins.length; ++i) { + var p = plugins[i]; + p.init(plot); + if (p.options) + $.extend(true, options, p.options); + } + } + + function parseOptions(opts) { + $.extend(true, options, opts); + if (options.grid.borderColor == null) + options.grid.borderColor = options.grid.color; + // backwards compatibility, to be removed in future + if (options.xaxis.noTicks && options.xaxis.ticks == null) + options.xaxis.ticks = options.xaxis.noTicks; + if (options.yaxis.noTicks && options.yaxis.ticks == null) + options.yaxis.ticks = options.yaxis.noTicks; + if (options.grid.coloredAreas) + options.grid.markings = options.grid.coloredAreas; + if (options.grid.coloredAreasColor) + options.grid.markingsColor = options.grid.coloredAreasColor; + if (options.lines) + $.extend(true, options.series.lines, options.lines); + if (options.points) + $.extend(true, options.series.points, options.points); + if (options.bars) + $.extend(true, options.series.bars, options.bars); + if (options.shadowSize) + options.series.shadowSize = options.shadowSize; + + for (var n in hooks) + if (options.hooks[n] && options.hooks[n].length) + hooks[n] = hooks[n].concat(options.hooks[n]); + + executeHooks(hooks.processOptions, [options]); + } + + function setData(d) { + series = parseData(d); + fillInSeriesOptions(); + processData(); + } + + function parseData(d) { + var res = []; + for (var i = 0; i < d.length; ++i) { + var s = $.extend(true, {}, options.series); + + if (d[i].data) { + s.data = d[i].data; // move the data instead of deep-copy + delete d[i].data; + + $.extend(true, s, d[i]); + + d[i].data = s.data; + } + else + s.data = d[i]; + res.push(s); + } + + return res; + } + + function axisSpecToRealAxis(obj, attr) { + var a = obj[attr]; + if (!a || a == 1) + return axes[attr]; + if (typeof a == "number") + return axes[attr.charAt(0) + a + attr.slice(1)]; + return a; // assume it's OK + } + + function fillInSeriesOptions() { + var i; + + // collect what we already got of colors + var neededColors = series.length, + usedColors = [], + assignedColors = []; + for (i = 0; i < series.length; ++i) { + var sc = series[i].color; + if (sc != null) { + --neededColors; + if (typeof sc == "number") + assignedColors.push(sc); + else + usedColors.push($.color.parse(series[i].color)); + } + } + + // we might need to generate more colors if higher indices + // are assigned + for (i = 0; i < assignedColors.length; ++i) { + neededColors = Math.max(neededColors, assignedColors[i] + 1); + } + + // produce colors as needed + var colors = [], variation = 0; + i = 0; + while (colors.length < neededColors) { + var c; + if (options.colors.length == i) // check degenerate case + c = $.color.make(100, 100, 100); + else + c = $.color.parse(options.colors[i]); + + // vary color if needed + var sign = variation % 2 == 1 ? -1 : 1; + c.scale('rgb', 1 + sign * Math.ceil(variation / 2) * 0.2) + + // FIXME: if we're getting to close to something else, + // we should probably skip this one + colors.push(c); + + ++i; + if (i >= options.colors.length) { + i = 0; + ++variation; + } + } + + // fill in the options + var colori = 0, s; + for (i = 0; i < series.length; ++i) { + s = series[i]; + + // assign colors + if (s.color == null) { + s.color = colors[colori].toString(); + ++colori; + } + else if (typeof s.color == "number") + s.color = colors[s.color].toString(); + + // turn on lines automatically in case nothing is set + if (s.lines.show == null) { + var v, show = true; + for (v in s) + if (s[v].show) { + show = false; + break; + } + if (show) + s.lines.show = true; + } + + // setup axes + s.xaxis = axisSpecToRealAxis(s, "xaxis"); + s.yaxis = axisSpecToRealAxis(s, "yaxis"); + } + } + + function processData() { + var topSentry = Number.POSITIVE_INFINITY, + bottomSentry = Number.NEGATIVE_INFINITY, + i, j, k, m, length, + s, points, ps, x, y, axis, val, f, p; + + for (axis in axes) { + axes[axis].datamin = topSentry; + axes[axis].datamax = bottomSentry; + axes[axis].used = false; + } + + function updateAxis(axis, min, max) { + if (min < axis.datamin) + axis.datamin = min; + if (max > axis.datamax) + axis.datamax = max; + } + + for (i = 0; i < series.length; ++i) { + s = series[i]; + s.datapoints = { points: [] }; + + executeHooks(hooks.processRawData, [ s, s.data, s.datapoints ]); + } + + // first pass: clean and copy data + for (i = 0; i < series.length; ++i) { + s = series[i]; + + var data = s.data, format = s.datapoints.format; + + if (!format) { + format = []; + // find out how to copy + format.push({ x: true, number: true, required: true }); + format.push({ y: true, number: true, required: true }); + + if (s.bars.show) + format.push({ y: true, number: true, required: false, defaultValue: 0 }); + + s.datapoints.format = format; + } + + if (s.datapoints.pointsize != null) + continue; // already filled in + + if (s.datapoints.pointsize == null) + s.datapoints.pointsize = format.length; + + ps = s.datapoints.pointsize; + points = s.datapoints.points; + + insertSteps = s.lines.show && s.lines.steps; + s.xaxis.used = s.yaxis.used = true; + + for (j = k = 0; j < data.length; ++j, k += ps) { + p = data[j]; + + var nullify = p == null; + if (!nullify) { + for (m = 0; m < ps; ++m) { + val = p[m]; + f = format[m]; + + if (f) { + if (f.number && val != null) { + val = +val; // convert to number + if (isNaN(val)) + val = null; + } + + if (val == null) { + if (f.required) + nullify = true; + + if (f.defaultValue != null) + val = f.defaultValue; + } + } + + points[k + m] = val; + } + } + + if (nullify) { + for (m = 0; m < ps; ++m) { + val = points[k + m]; + if (val != null) { + f = format[m]; + // extract min/max info + if (f.x) + updateAxis(s.xaxis, val, val); + if (f.y) + updateAxis(s.yaxis, val, val); + } + points[k + m] = null; + } + } + else { + // a little bit of line specific stuff that + // perhaps shouldn't be here, but lacking + // better means... + if (insertSteps && k > 0 + && points[k - ps] != null + && points[k - ps] != points[k] + && points[k - ps + 1] != points[k + 1]) { + // copy the point to make room for a middle point + for (m = 0; m < ps; ++m) + points[k + ps + m] = points[k + m]; + + // middle point has same y + points[k + 1] = points[k - ps + 1]; + + // we've added a point, better reflect that + k += ps; + } + } + } + } + + // give the hooks a chance to run + for (i = 0; i < series.length; ++i) { + s = series[i]; + + executeHooks(hooks.processDatapoints, [ s, s.datapoints]); + } + + // second pass: find datamax/datamin for auto-scaling + for (i = 0; i < series.length; ++i) { + s = series[i]; + points = s.datapoints.points, + ps = s.datapoints.pointsize; + + var xmin = topSentry, ymin = topSentry, + xmax = bottomSentry, ymax = bottomSentry; + + for (j = 0; j < points.length; j += ps) { + if (points[j] == null) + continue; + + for (m = 0; m < ps; ++m) { + val = points[j + m]; + f = format[m]; + if (!f) + continue; + + if (f.x) { + if (val < xmin) + xmin = val; + if (val > xmax) + xmax = val; + } + if (f.y) { + if (val < ymin) + ymin = val; + if (val > ymax) + ymax = val; + } + } + } + + if (s.bars.show) { + // make sure we got room for the bar on the dancing floor + var delta = s.bars.align == "left" ? 0 : -s.bars.barWidth/2; + if (s.bars.horizontal) { + ymin += delta; + ymax += delta + s.bars.barWidth; + } + else { + xmin += delta; + xmax += delta + s.bars.barWidth; + } + } + + updateAxis(s.xaxis, xmin, xmax); + updateAxis(s.yaxis, ymin, ymax); + } + + for (axis in axes) { + if (axes[axis].datamin == topSentry) + axes[axis].datamin = null; + if (axes[axis].datamax == bottomSentry) + axes[axis].datamax = null; + } + } + + function constructCanvas() { + function makeCanvas(width, height) { + var c = document.createElement('canvas'); + c.width = width; + c.height = height; + if ($.browser.msie) // excanvas hack + c = window.G_vmlCanvasManager.initElement(c); + return c; + } + + canvasWidth = placeholder.width(); + canvasHeight = placeholder.height(); + placeholder.html(""); // clear placeholder + if (placeholder.css("position") == 'static') + placeholder.css("position", "relative"); // for positioning labels and overlay + + if (canvasWidth <= 0 || canvasHeight <= 0) + throw "Invalid dimensions for plot, width = " + canvasWidth + ", height = " + canvasHeight; + + if ($.browser.msie) // excanvas hack + window.G_vmlCanvasManager.init_(document); // make sure everything is setup + + // the canvas + canvas = $(makeCanvas(canvasWidth, canvasHeight)).appendTo(placeholder).get(0); + ctx = canvas.getContext("2d"); + + // overlay canvas for interactive features + overlay = $(makeCanvas(canvasWidth, canvasHeight)).css({ position: 'absolute', left: 0, top: 0 }).appendTo(placeholder).get(0); + octx = overlay.getContext("2d"); + octx.stroke(); + } + + function bindEvents() { + // we include the canvas in the event holder too, because IE 7 + // sometimes has trouble with the stacking order + eventHolder = $([overlay, canvas]); + + // bind events + if (options.grid.hoverable) + eventHolder.mousemove(onMouseMove); + + if (options.grid.clickable) + eventHolder.click(onClick); + + executeHooks(hooks.bindEvents, [eventHolder]); + } + + function setupGrid() { + function setTransformationHelpers(axis, o) { + function identity(x) { return x; } + + var s, m, t = o.transform || identity, + it = o.inverseTransform; + + // add transformation helpers + if (axis == axes.xaxis || axis == axes.x2axis) { + // precompute how much the axis is scaling a point + // in canvas space + s = axis.scale = plotWidth / (t(axis.max) - t(axis.min)); + m = t(axis.min); + + // data point to canvas coordinate + if (t == identity) // slight optimization + axis.p2c = function (p) { return (p - m) * s; }; + else + axis.p2c = function (p) { return (t(p) - m) * s; }; + // canvas coordinate to data point + if (!it) + axis.c2p = function (c) { return m + c / s; }; + else + axis.c2p = function (c) { return it(m + c / s); }; + } + else { + s = axis.scale = plotHeight / (t(axis.max) - t(axis.min)); + m = t(axis.max); + + if (t == identity) + axis.p2c = function (p) { return (m - p) * s; }; + else + axis.p2c = function (p) { return (m - t(p)) * s; }; + if (!it) + axis.c2p = function (c) { return m - c / s; }; + else + axis.c2p = function (c) { return it(m - c / s); }; + } + } + + function measureLabels(axis, axisOptions) { + var i, labels = [], l; + + axis.labelWidth = axisOptions.labelWidth; + axis.labelHeight = axisOptions.labelHeight; + + if (axis == axes.xaxis || axis == axes.x2axis) { + // to avoid measuring the widths of the labels, we + // construct fixed-size boxes and put the labels inside + // them, we don't need the exact figures and the + // fixed-size box content is easy to center + if (axis.labelWidth == null) + axis.labelWidth = canvasWidth / (axis.ticks.length > 0 ? axis.ticks.length : 1); + + // measure x label heights + if (axis.labelHeight == null) { + labels = []; + for (i = 0; i < axis.ticks.length; ++i) { + l = axis.ticks[i].label; + if (l) + labels.push('
          ' + l + '
          '); + } + + if (labels.length > 0) { + var dummyDiv = $('
          ' + + labels.join("") + '
          ').appendTo(placeholder); + axis.labelHeight = dummyDiv.height(); + dummyDiv.remove(); + } + } + } + else if (axis.labelWidth == null || axis.labelHeight == null) { + // calculate y label dimensions + for (i = 0; i < axis.ticks.length; ++i) { + l = axis.ticks[i].label; + if (l) + labels.push('
          ' + l + '
          '); + } + + if (labels.length > 0) { + var dummyDiv = $('
          ' + + labels.join("") + '
          ').appendTo(placeholder); + if (axis.labelWidth == null) + axis.labelWidth = dummyDiv.width(); + if (axis.labelHeight == null) + axis.labelHeight = dummyDiv.find("div").height(); + dummyDiv.remove(); + } + + } + + if (axis.labelWidth == null) + axis.labelWidth = 0; + if (axis.labelHeight == null) + axis.labelHeight = 0; + } + + function setGridSpacing() { + // get the most space needed around the grid for things + // that may stick out + var maxOutset = options.grid.borderWidth; + for (i = 0; i < series.length; ++i) + maxOutset = Math.max(maxOutset, 2 * (series[i].points.radius + series[i].points.lineWidth/2)); + + plotOffset.left = plotOffset.right = plotOffset.top = plotOffset.bottom = maxOutset; + + var margin = options.grid.labelMargin + options.grid.borderWidth; + + if (axes.xaxis.labelHeight > 0) + plotOffset.bottom = Math.max(maxOutset, axes.xaxis.labelHeight + margin); + if (axes.yaxis.labelWidth > 0) + plotOffset.left = Math.max(maxOutset, axes.yaxis.labelWidth + margin); + if (axes.x2axis.labelHeight > 0) + plotOffset.top = Math.max(maxOutset, axes.x2axis.labelHeight + margin); + if (axes.y2axis.labelWidth > 0) + plotOffset.right = Math.max(maxOutset, axes.y2axis.labelWidth + margin); + + plotWidth = canvasWidth - plotOffset.left - plotOffset.right; + plotHeight = canvasHeight - plotOffset.bottom - plotOffset.top; + } + + var axis; + for (axis in axes) + setRange(axes[axis], options[axis]); + + if (options.grid.show) { + for (axis in axes) { + prepareTickGeneration(axes[axis], options[axis]); + setTicks(axes[axis], options[axis]); + measureLabels(axes[axis], options[axis]); + } + + setGridSpacing(); + } + else { + plotOffset.left = plotOffset.right = plotOffset.top = plotOffset.bottom = 0; + plotWidth = canvasWidth; + plotHeight = canvasHeight; + } + + for (axis in axes) + setTransformationHelpers(axes[axis], options[axis]); + + if (options.grid.show) + insertLabels(); + + insertLegend(); + } + + function setRange(axis, axisOptions) { + var min = +(axisOptions.min != null ? axisOptions.min : axis.datamin), + max = +(axisOptions.max != null ? axisOptions.max : axis.datamax), + delta = max - min; + + if (delta == 0.0) { + // degenerate case + var widen = max == 0 ? 1 : 0.01; + + if (axisOptions.min == null) + min -= widen; + // alway widen max if we couldn't widen min to ensure we + // don't fall into min == max which doesn't work + if (axisOptions.max == null || axisOptions.min != null) + max += widen; + } + else { + // consider autoscaling + var margin = axisOptions.autoscaleMargin; + if (margin != null) { + if (axisOptions.min == null) { + min -= delta * margin; + // make sure we don't go below zero if all values + // are positive + if (min < 0 && axis.datamin != null && axis.datamin >= 0) + min = 0; + } + if (axisOptions.max == null) { + max += delta * margin; + if (max > 0 && axis.datamax != null && axis.datamax <= 0) + max = 0; + } + } + } + axis.min = min; + axis.max = max; + } + + function prepareTickGeneration(axis, axisOptions) { + // estimate number of ticks + var noTicks; + if (typeof axisOptions.ticks == "number" && axisOptions.ticks > 0) + noTicks = axisOptions.ticks; + else if (axis == axes.xaxis || axis == axes.x2axis) + // heuristic based on the model a*sqrt(x) fitted to + // some reasonable data points + noTicks = 0.3 * Math.sqrt(canvasWidth); + else + noTicks = 0.3 * Math.sqrt(canvasHeight); + + var delta = (axis.max - axis.min) / noTicks, + size, generator, unit, formatter, i, magn, norm; + + if (axisOptions.mode == "time") { + // pretty handling of time + + // map of app. size of time units in milliseconds + var timeUnitSize = { + "second": 1000, + "minute": 60 * 1000, + "hour": 60 * 60 * 1000, + "day": 24 * 60 * 60 * 1000, + "month": 30 * 24 * 60 * 60 * 1000, + "year": 365.2425 * 24 * 60 * 60 * 1000 + }; + + + // the allowed tick sizes, after 1 year we use + // an integer algorithm + var spec = [ + [1, "second"], [2, "second"], [5, "second"], [10, "second"], + [30, "second"], + [1, "minute"], [2, "minute"], [5, "minute"], [10, "minute"], + [30, "minute"], + [1, "hour"], [2, "hour"], [4, "hour"], + [8, "hour"], [12, "hour"], + [1, "day"], [2, "day"], [3, "day"], + [0.25, "month"], [0.5, "month"], [1, "month"], + [2, "month"], [3, "month"], [6, "month"], + [1, "year"] + ]; + + var minSize = 0; + if (axisOptions.minTickSize != null) { + if (typeof axisOptions.tickSize == "number") + minSize = axisOptions.tickSize; + else + minSize = axisOptions.minTickSize[0] * timeUnitSize[axisOptions.minTickSize[1]]; + } + + for (i = 0; i < spec.length - 1; ++i) + if (delta < (spec[i][0] * timeUnitSize[spec[i][1]] + + spec[i + 1][0] * timeUnitSize[spec[i + 1][1]]) / 2 + && spec[i][0] * timeUnitSize[spec[i][1]] >= minSize) + break; + size = spec[i][0]; + unit = spec[i][1]; + + // special-case the possibility of several years + if (unit == "year") { + magn = Math.pow(10, Math.floor(Math.log(delta / timeUnitSize.year) / Math.LN10)); + norm = (delta / timeUnitSize.year) / magn; + if (norm < 1.5) + size = 1; + else if (norm < 3) + size = 2; + else if (norm < 7.5) + size = 5; + else + size = 10; + + size *= magn; + } + + if (axisOptions.tickSize) { + size = axisOptions.tickSize[0]; + unit = axisOptions.tickSize[1]; + } + + generator = function(axis) { + var ticks = [], + tickSize = axis.tickSize[0], unit = axis.tickSize[1], + d = new Date(axis.min); + + var step = tickSize * timeUnitSize[unit]; + + if (unit == "second") + d.setUTCSeconds(floorInBase(d.getUTCSeconds(), tickSize)); + if (unit == "minute") + d.setUTCMinutes(floorInBase(d.getUTCMinutes(), tickSize)); + if (unit == "hour") + d.setUTCHours(floorInBase(d.getUTCHours(), tickSize)); + if (unit == "month") + d.setUTCMonth(floorInBase(d.getUTCMonth(), tickSize)); + if (unit == "year") + d.setUTCFullYear(floorInBase(d.getUTCFullYear(), tickSize)); + + // reset smaller components + d.setUTCMilliseconds(0); + if (step >= timeUnitSize.minute) + d.setUTCSeconds(0); + if (step >= timeUnitSize.hour) + d.setUTCMinutes(0); + if (step >= timeUnitSize.day) + d.setUTCHours(0); + if (step >= timeUnitSize.day * 4) + d.setUTCDate(1); + if (step >= timeUnitSize.year) + d.setUTCMonth(0); + + + var carry = 0, v = Number.NaN, prev; + do { + prev = v; + v = d.getTime(); + ticks.push({ v: v, label: axis.tickFormatter(v, axis) }); + if (unit == "month") { + if (tickSize < 1) { + // a bit complicated - we'll divide the month + // up but we need to take care of fractions + // so we don't end up in the middle of a day + d.setUTCDate(1); + var start = d.getTime(); + d.setUTCMonth(d.getUTCMonth() + 1); + var end = d.getTime(); + d.setTime(v + carry * timeUnitSize.hour + (end - start) * tickSize); + carry = d.getUTCHours(); + d.setUTCHours(0); + } + else + d.setUTCMonth(d.getUTCMonth() + tickSize); + } + else if (unit == "year") { + d.setUTCFullYear(d.getUTCFullYear() + tickSize); + } + else + d.setTime(v + step); + } while (v < axis.max && v != prev); + + return ticks; + }; + + formatter = function (v, axis) { + var d = new Date(v); + + // first check global format + if (axisOptions.timeformat != null) + return $.plot.formatDate(d, axisOptions.timeformat, axisOptions.monthNames); + + var t = axis.tickSize[0] * timeUnitSize[axis.tickSize[1]]; + var span = axis.max - axis.min; + var suffix = (axisOptions.twelveHourClock) ? " %p" : ""; + + if (t < timeUnitSize.minute) + fmt = "%h:%M:%S" + suffix; + else if (t < timeUnitSize.day) { + if (span < 2 * timeUnitSize.day) + fmt = "%h:%M" + suffix; + else + fmt = "%b %d %h:%M" + suffix; + } + else if (t < timeUnitSize.month) + fmt = "%b %d"; + else if (t < timeUnitSize.year) { + if (span < timeUnitSize.year) + fmt = "%b"; + else + fmt = "%b %y"; + } + else + fmt = "%y"; + + return $.plot.formatDate(d, fmt, axisOptions.monthNames); + }; + } + else { + // pretty rounding of base-10 numbers + var maxDec = axisOptions.tickDecimals; + var dec = -Math.floor(Math.log(delta) / Math.LN10); + if (maxDec != null && dec > maxDec) + dec = maxDec; + + magn = Math.pow(10, -dec); + norm = delta / magn; // norm is between 1.0 and 10.0 + + if (norm < 1.5) + size = 1; + else if (norm < 3) { + size = 2; + // special case for 2.5, requires an extra decimal + if (norm > 2.25 && (maxDec == null || dec + 1 <= maxDec)) { + size = 2.5; + ++dec; + } + } + else if (norm < 7.5) + size = 5; + else + size = 10; + + size *= magn; + + if (axisOptions.minTickSize != null && size < axisOptions.minTickSize) + size = axisOptions.minTickSize; + + if (axisOptions.tickSize != null) + size = axisOptions.tickSize; + + axis.tickDecimals = Math.max(0, (maxDec != null) ? maxDec : dec); + + generator = function (axis) { + var ticks = []; + + // spew out all possible ticks + var start = floorInBase(axis.min, axis.tickSize), + i = 0, v = Number.NaN, prev; + do { + prev = v; + v = start + i * axis.tickSize; + ticks.push({ v: v, label: axis.tickFormatter(v, axis) }); + ++i; + } while (v < axis.max && v != prev); + return ticks; + }; + + formatter = function (v, axis) { + return v.toFixed(axis.tickDecimals); + }; + } + + axis.tickSize = unit ? [size, unit] : size; + axis.tickGenerator = generator; + if ($.isFunction(axisOptions.tickFormatter)) + axis.tickFormatter = function (v, axis) { return "" + axisOptions.tickFormatter(v, axis); }; + else + axis.tickFormatter = formatter; + } + + function setTicks(axis, axisOptions) { + axis.ticks = []; + + if (!axis.used) + return; + + if (axisOptions.ticks == null) + axis.ticks = axis.tickGenerator(axis); + else if (typeof axisOptions.ticks == "number") { + if (axisOptions.ticks > 0) + axis.ticks = axis.tickGenerator(axis); + } + else if (axisOptions.ticks) { + var ticks = axisOptions.ticks; + + if ($.isFunction(ticks)) + // generate the ticks + ticks = ticks({ min: axis.min, max: axis.max }); + + // clean up the user-supplied ticks, copy them over + var i, v; + for (i = 0; i < ticks.length; ++i) { + var label = null; + var t = ticks[i]; + if (typeof t == "object") { + v = t[0]; + if (t.length > 1) + label = t[1]; + } + else + v = t; + if (label == null) + label = axis.tickFormatter(v, axis); + axis.ticks[i] = { v: v, label: label }; + } + } + + if (axisOptions.autoscaleMargin != null && axis.ticks.length > 0) { + // snap to ticks + if (axisOptions.min == null) + axis.min = Math.min(axis.min, axis.ticks[0].v); + if (axisOptions.max == null && axis.ticks.length > 1) + axis.max = Math.max(axis.max, axis.ticks[axis.ticks.length - 1].v); + } + } + + function draw() { + ctx.clearRect(0, 0, canvasWidth, canvasHeight); + + var grid = options.grid; + + if (grid.show && !grid.aboveData) + drawGrid(); + + for (var i = 0; i < series.length; ++i) + drawSeries(series[i]); + + executeHooks(hooks.draw, [ctx]); + + if (grid.show && grid.aboveData) + drawGrid(); + } + + function extractRange(ranges, coord) { + var firstAxis = coord + "axis", + secondaryAxis = coord + "2axis", + axis, from, to, reverse; + + if (ranges[firstAxis]) { + axis = axes[firstAxis]; + from = ranges[firstAxis].from; + to = ranges[firstAxis].to; + } + else if (ranges[secondaryAxis]) { + axis = axes[secondaryAxis]; + from = ranges[secondaryAxis].from; + to = ranges[secondaryAxis].to; + } + else { + // backwards-compat stuff - to be removed in future + axis = axes[firstAxis]; + from = ranges[coord + "1"]; + to = ranges[coord + "2"]; + } + + // auto-reverse as an added bonus + if (from != null && to != null && from > to) + return { from: to, to: from, axis: axis }; + + return { from: from, to: to, axis: axis }; + } + + function drawGrid() { + var i; + + ctx.save(); + ctx.translate(plotOffset.left, plotOffset.top); + + // draw background, if any + if (options.grid.backgroundColor) { + ctx.fillStyle = getColorOrGradient(options.grid.backgroundColor, plotHeight, 0, "rgba(255, 255, 255, 0)"); + ctx.fillRect(0, 0, plotWidth, plotHeight); + } + + // draw markings + var markings = options.grid.markings; + if (markings) { + if ($.isFunction(markings)) + // xmin etc. are backwards-compatible, to be removed in future + markings = markings({ xmin: axes.xaxis.min, xmax: axes.xaxis.max, ymin: axes.yaxis.min, ymax: axes.yaxis.max, xaxis: axes.xaxis, yaxis: axes.yaxis, x2axis: axes.x2axis, y2axis: axes.y2axis }); + + for (i = 0; i < markings.length; ++i) { + var m = markings[i], + xrange = extractRange(m, "x"), + yrange = extractRange(m, "y"); + + // fill in missing + if (xrange.from == null) + xrange.from = xrange.axis.min; + if (xrange.to == null) + xrange.to = xrange.axis.max; + if (yrange.from == null) + yrange.from = yrange.axis.min; + if (yrange.to == null) + yrange.to = yrange.axis.max; + + // clip + if (xrange.to < xrange.axis.min || xrange.from > xrange.axis.max || + yrange.to < yrange.axis.min || yrange.from > yrange.axis.max) + continue; + + xrange.from = Math.max(xrange.from, xrange.axis.min); + xrange.to = Math.min(xrange.to, xrange.axis.max); + yrange.from = Math.max(yrange.from, yrange.axis.min); + yrange.to = Math.min(yrange.to, yrange.axis.max); + + if (xrange.from == xrange.to && yrange.from == yrange.to) + continue; + + // then draw + xrange.from = xrange.axis.p2c(xrange.from); + xrange.to = xrange.axis.p2c(xrange.to); + yrange.from = yrange.axis.p2c(yrange.from); + yrange.to = yrange.axis.p2c(yrange.to); + + if (xrange.from == xrange.to || yrange.from == yrange.to) { + // draw line + ctx.beginPath(); + ctx.strokeStyle = m.color || options.grid.markingsColor; + ctx.lineWidth = m.lineWidth || options.grid.markingsLineWidth; + //ctx.moveTo(Math.floor(xrange.from), yrange.from); + //ctx.lineTo(Math.floor(xrange.to), yrange.to); + ctx.moveTo(xrange.from, yrange.from); + ctx.lineTo(xrange.to, yrange.to); + ctx.stroke(); + } + else { + // fill area + ctx.fillStyle = m.color || options.grid.markingsColor; + ctx.fillRect(xrange.from, yrange.to, + xrange.to - xrange.from, + yrange.from - yrange.to); + } + } + } + + // draw the inner grid + ctx.lineWidth = 1; + ctx.strokeStyle = options.grid.tickColor; + ctx.beginPath(); + var v, axis = axes.xaxis; + for (i = 0; i < axis.ticks.length; ++i) { + v = axis.ticks[i].v; + if (v <= axis.min || v >= axes.xaxis.max) + continue; // skip those lying on the axes + + ctx.moveTo(Math.floor(axis.p2c(v)) + ctx.lineWidth/2, 0); + ctx.lineTo(Math.floor(axis.p2c(v)) + ctx.lineWidth/2, plotHeight); + } + + axis = axes.yaxis; + for (i = 0; i < axis.ticks.length; ++i) { + v = axis.ticks[i].v; + if (v <= axis.min || v >= axis.max) + continue; + + ctx.moveTo(0, Math.floor(axis.p2c(v)) + ctx.lineWidth/2); + ctx.lineTo(plotWidth, Math.floor(axis.p2c(v)) + ctx.lineWidth/2); + } + + axis = axes.x2axis; + for (i = 0; i < axis.ticks.length; ++i) { + v = axis.ticks[i].v; + if (v <= axis.min || v >= axis.max) + continue; + + ctx.moveTo(Math.floor(axis.p2c(v)) + ctx.lineWidth/2, -5); + ctx.lineTo(Math.floor(axis.p2c(v)) + ctx.lineWidth/2, 5); + } + + axis = axes.y2axis; + for (i = 0; i < axis.ticks.length; ++i) { + v = axis.ticks[i].v; + if (v <= axis.min || v >= axis.max) + continue; + + ctx.moveTo(plotWidth-5, Math.floor(axis.p2c(v)) + ctx.lineWidth/2); + ctx.lineTo(plotWidth+5, Math.floor(axis.p2c(v)) + ctx.lineWidth/2); + } + + ctx.stroke(); + + if (options.grid.borderWidth) { + // draw border + var bw = options.grid.borderWidth; + ctx.lineWidth = bw; + ctx.strokeStyle = options.grid.borderColor; + ctx.strokeRect(-bw/2, -bw/2, plotWidth + bw, plotHeight + bw); + } + + ctx.restore(); + } + + function insertLabels() { + placeholder.find(".tickLabels").remove(); + + var html = ['
          ']; + + function addLabels(axis, labelGenerator) { + for (var i = 0; i < axis.ticks.length; ++i) { + var tick = axis.ticks[i]; + if (!tick.label || tick.v < axis.min || tick.v > axis.max) + continue; + html.push(labelGenerator(tick, axis)); + } + } + + var margin = options.grid.labelMargin + options.grid.borderWidth; + + addLabels(axes.xaxis, function (tick, axis) { + return '
          ' + tick.label + "
          "; + }); + + + addLabels(axes.yaxis, function (tick, axis) { + return '
          ' + tick.label + "
          "; + }); + + addLabels(axes.x2axis, function (tick, axis) { + return '
          ' + tick.label + "
          "; + }); + + addLabels(axes.y2axis, function (tick, axis) { + return '
          ' + tick.label + "
          "; + }); + + html.push('
          '); + + placeholder.append(html.join("")); + } + + function drawSeries(series) { + if (series.lines.show) + drawSeriesLines(series); + if (series.bars.show) + drawSeriesBars(series); + if (series.points.show) + drawSeriesPoints(series); + } + + function drawSeriesLines(series) { + function plotLine(datapoints, xoffset, yoffset, axisx, axisy) { + var points = datapoints.points, + ps = datapoints.pointsize, + prevx = null, prevy = null; + + ctx.beginPath(); + for (var i = ps; i < points.length; i += ps) { + var x1 = points[i - ps], y1 = points[i - ps + 1], + x2 = points[i], y2 = points[i + 1]; + + if (x1 == null || x2 == null) + continue; + + // clip with ymin + if (y1 <= y2 && y1 < axisy.min) { + if (y2 < axisy.min) + continue; // line segment is outside + // compute new intersection point + x1 = (axisy.min - y1) / (y2 - y1) * (x2 - x1) + x1; + y1 = axisy.min; + } + else if (y2 <= y1 && y2 < axisy.min) { + if (y1 < axisy.min) + continue; + x2 = (axisy.min - y1) / (y2 - y1) * (x2 - x1) + x1; + y2 = axisy.min; + } + + // clip with ymax + if (y1 >= y2 && y1 > axisy.max) { + if (y2 > axisy.max) + continue; + x1 = (axisy.max - y1) / (y2 - y1) * (x2 - x1) + x1; + y1 = axisy.max; + } + else if (y2 >= y1 && y2 > axisy.max) { + if (y1 > axisy.max) + continue; + x2 = (axisy.max - y1) / (y2 - y1) * (x2 - x1) + x1; + y2 = axisy.max; + } + + // clip with xmin + if (x1 <= x2 && x1 < axisx.min) { + if (x2 < axisx.min) + continue; + y1 = (axisx.min - x1) / (x2 - x1) * (y2 - y1) + y1; + x1 = axisx.min; + } + else if (x2 <= x1 && x2 < axisx.min) { + if (x1 < axisx.min) + continue; + y2 = (axisx.min - x1) / (x2 - x1) * (y2 - y1) + y1; + x2 = axisx.min; + } + + // clip with xmax + if (x1 >= x2 && x1 > axisx.max) { + if (x2 > axisx.max) + continue; + y1 = (axisx.max - x1) / (x2 - x1) * (y2 - y1) + y1; + x1 = axisx.max; + } + else if (x2 >= x1 && x2 > axisx.max) { + if (x1 > axisx.max) + continue; + y2 = (axisx.max - x1) / (x2 - x1) * (y2 - y1) + y1; + x2 = axisx.max; + } + + if (x1 != prevx || y1 != prevy) + ctx.moveTo(axisx.p2c(x1) + xoffset, axisy.p2c(y1) + yoffset); + + prevx = x2; + prevy = y2; + ctx.lineTo(axisx.p2c(x2) + xoffset, axisy.p2c(y2) + yoffset); + } + ctx.stroke(); + } + + function plotLineArea(datapoints, axisx, axisy) { + var points = datapoints.points, + ps = datapoints.pointsize, + bottom = Math.min(Math.max(0, axisy.min), axisy.max), + top, lastX = 0, areaOpen = false; + + for (var i = ps; i < points.length; i += ps) { + var x1 = points[i - ps], y1 = points[i - ps + 1], + x2 = points[i], y2 = points[i + 1]; + + if (areaOpen && x1 != null && x2 == null) { + // close area + ctx.lineTo(axisx.p2c(lastX), axisy.p2c(bottom)); + ctx.fill(); + areaOpen = false; + continue; + } + + if (x1 == null || x2 == null) + continue; + + // clip x values + + // clip with xmin + if (x1 <= x2 && x1 < axisx.min) { + if (x2 < axisx.min) + continue; + y1 = (axisx.min - x1) / (x2 - x1) * (y2 - y1) + y1; + x1 = axisx.min; + } + else if (x2 <= x1 && x2 < axisx.min) { + if (x1 < axisx.min) + continue; + y2 = (axisx.min - x1) / (x2 - x1) * (y2 - y1) + y1; + x2 = axisx.min; + } + + // clip with xmax + if (x1 >= x2 && x1 > axisx.max) { + if (x2 > axisx.max) + continue; + y1 = (axisx.max - x1) / (x2 - x1) * (y2 - y1) + y1; + x1 = axisx.max; + } + else if (x2 >= x1 && x2 > axisx.max) { + if (x1 > axisx.max) + continue; + y2 = (axisx.max - x1) / (x2 - x1) * (y2 - y1) + y1; + x2 = axisx.max; + } + + if (!areaOpen) { + // open area + ctx.beginPath(); + ctx.moveTo(axisx.p2c(x1), axisy.p2c(bottom)); + areaOpen = true; + } + + // now first check the case where both is outside + if (y1 >= axisy.max && y2 >= axisy.max) { + ctx.lineTo(axisx.p2c(x1), axisy.p2c(axisy.max)); + ctx.lineTo(axisx.p2c(x2), axisy.p2c(axisy.max)); + lastX = x2; + continue; + } + else if (y1 <= axisy.min && y2 <= axisy.min) { + ctx.lineTo(axisx.p2c(x1), axisy.p2c(axisy.min)); + ctx.lineTo(axisx.p2c(x2), axisy.p2c(axisy.min)); + lastX = x2; + continue; + } + + // else it's a bit more complicated, there might + // be two rectangles and two triangles we need to fill + // in; to find these keep track of the current x values + var x1old = x1, x2old = x2; + + // and clip the y values, without shortcutting + + // clip with ymin + if (y1 <= y2 && y1 < axisy.min && y2 >= axisy.min) { + x1 = (axisy.min - y1) / (y2 - y1) * (x2 - x1) + x1; + y1 = axisy.min; + } + else if (y2 <= y1 && y2 < axisy.min && y1 >= axisy.min) { + x2 = (axisy.min - y1) / (y2 - y1) * (x2 - x1) + x1; + y2 = axisy.min; + } + + // clip with ymax + if (y1 >= y2 && y1 > axisy.max && y2 <= axisy.max) { + x1 = (axisy.max - y1) / (y2 - y1) * (x2 - x1) + x1; + y1 = axisy.max; + } + else if (y2 >= y1 && y2 > axisy.max && y1 <= axisy.max) { + x2 = (axisy.max - y1) / (y2 - y1) * (x2 - x1) + x1; + y2 = axisy.max; + } + + + // if the x value was changed we got a rectangle + // to fill + if (x1 != x1old) { + if (y1 <= axisy.min) + top = axisy.min; + else + top = axisy.max; + + ctx.lineTo(axisx.p2c(x1old), axisy.p2c(top)); + ctx.lineTo(axisx.p2c(x1), axisy.p2c(top)); + } + + // fill the triangles + ctx.lineTo(axisx.p2c(x1), axisy.p2c(y1)); + ctx.lineTo(axisx.p2c(x2), axisy.p2c(y2)); + + // fill the other rectangle if it's there + if (x2 != x2old) { + if (y2 <= axisy.min) + top = axisy.min; + else + top = axisy.max; + + ctx.lineTo(axisx.p2c(x2), axisy.p2c(top)); + ctx.lineTo(axisx.p2c(x2old), axisy.p2c(top)); + } + + lastX = Math.max(x2, x2old); + } + + if (areaOpen) { + ctx.lineTo(axisx.p2c(lastX), axisy.p2c(bottom)); + ctx.fill(); + } + } + + ctx.save(); + ctx.translate(plotOffset.left, plotOffset.top); + ctx.lineJoin = "round"; + + var lw = series.lines.lineWidth, + sw = series.shadowSize; + // FIXME: consider another form of shadow when filling is turned on + if (lw > 0 && sw > 0) { + // draw shadow as a thick and thin line with transparency + ctx.lineWidth = sw; + ctx.strokeStyle = "rgba(0,0,0,0.1)"; + // position shadow at angle from the mid of line + var angle = Math.PI/18; + plotLine(series.datapoints, Math.sin(angle) * (lw/2 + sw/2), Math.cos(angle) * (lw/2 + sw/2), series.xaxis, series.yaxis); + ctx.lineWidth = sw/2; + plotLine(series.datapoints, Math.sin(angle) * (lw/2 + sw/4), Math.cos(angle) * (lw/2 + sw/4), series.xaxis, series.yaxis); + } + + ctx.lineWidth = lw; + ctx.strokeStyle = series.color; + var fillStyle = getFillStyle(series.lines, series.color, 0, plotHeight); + if (fillStyle) { + ctx.fillStyle = fillStyle; + plotLineArea(series.datapoints, series.xaxis, series.yaxis); + } + + if (lw > 0) + plotLine(series.datapoints, 0, 0, series.xaxis, series.yaxis); + ctx.restore(); + } + + function drawSeriesPoints(series) { + function plotPoints(datapoints, radius, fillStyle, offset, circumference, axisx, axisy) { + var points = datapoints.points, ps = datapoints.pointsize; + + for (var i = 0; i < points.length; i += ps) { + var x = points[i], y = points[i + 1]; + if (x == null || x < axisx.min || x > axisx.max || y < axisy.min || y > axisy.max) + continue; + + ctx.beginPath(); + ctx.arc(axisx.p2c(x), axisy.p2c(y) + offset, radius, 0, circumference, false); + if (fillStyle) { + ctx.fillStyle = fillStyle; + ctx.fill(); + } + ctx.stroke(); + } + } + + ctx.save(); + ctx.translate(plotOffset.left, plotOffset.top); + + var lw = series.lines.lineWidth, + sw = series.shadowSize, + radius = series.points.radius; + if (lw > 0 && sw > 0) { + // draw shadow in two steps + var w = sw / 2; + ctx.lineWidth = w; + ctx.strokeStyle = "rgba(0,0,0,0.1)"; + plotPoints(series.datapoints, radius, null, w + w/2, Math.PI, + series.xaxis, series.yaxis); + + ctx.strokeStyle = "rgba(0,0,0,0.2)"; + plotPoints(series.datapoints, radius, null, w/2, Math.PI, + series.xaxis, series.yaxis); + } + + ctx.lineWidth = lw; + ctx.strokeStyle = series.color; + plotPoints(series.datapoints, radius, + getFillStyle(series.points, series.color), 0, 2 * Math.PI, + series.xaxis, series.yaxis); + ctx.restore(); + } + + function drawBar(x, y, b, barLeft, barRight, offset, fillStyleCallback, axisx, axisy, c, horizontal) { + var left, right, bottom, top, + drawLeft, drawRight, drawTop, drawBottom, + tmp; + + if (horizontal) { + drawBottom = drawRight = drawTop = true; + drawLeft = false; + left = b; + right = x; + top = y + barLeft; + bottom = y + barRight; + + // account for negative bars + if (right < left) { + tmp = right; + right = left; + left = tmp; + drawLeft = true; + drawRight = false; + } + } + else { + drawLeft = drawRight = drawTop = true; + drawBottom = false; + left = x + barLeft; + right = x + barRight; + bottom = b; + top = y; + + // account for negative bars + if (top < bottom) { + tmp = top; + top = bottom; + bottom = tmp; + drawBottom = true; + drawTop = false; + } + } + + // clip + if (right < axisx.min || left > axisx.max || + top < axisy.min || bottom > axisy.max) + return; + + if (left < axisx.min) { + left = axisx.min; + drawLeft = false; + } + + if (right > axisx.max) { + right = axisx.max; + drawRight = false; + } + + if (bottom < axisy.min) { + bottom = axisy.min; + drawBottom = false; + } + + if (top > axisy.max) { + top = axisy.max; + drawTop = false; + } + + left = axisx.p2c(left); + bottom = axisy.p2c(bottom); + right = axisx.p2c(right); + top = axisy.p2c(top); + + // fill the bar + if (fillStyleCallback) { + c.beginPath(); + c.moveTo(left, bottom); + c.lineTo(left, top); + c.lineTo(right, top); + c.lineTo(right, bottom); + c.fillStyle = fillStyleCallback(bottom, top); + c.fill(); + } + + // draw outline + if (drawLeft || drawRight || drawTop || drawBottom) { + c.beginPath(); + + // FIXME: inline moveTo is buggy with excanvas + c.moveTo(left, bottom + offset); + if (drawLeft) + c.lineTo(left, top + offset); + else + c.moveTo(left, top + offset); + if (drawTop) + c.lineTo(right, top + offset); + else + c.moveTo(right, top + offset); + if (drawRight) + c.lineTo(right, bottom + offset); + else + c.moveTo(right, bottom + offset); + if (drawBottom) + c.lineTo(left, bottom + offset); + else + c.moveTo(left, bottom + offset); + c.stroke(); + } + } + + function drawSeriesBars(series) { + function plotBars(datapoints, barLeft, barRight, offset, fillStyleCallback, axisx, axisy) { + var points = datapoints.points, ps = datapoints.pointsize; + + for (var i = 0; i < points.length; i += ps) { + if (points[i] == null) + continue; + drawBar(points[i], points[i + 1], points[i + 2], barLeft, barRight, offset, fillStyleCallback, axisx, axisy, ctx, series.bars.horizontal); + } + } + + ctx.save(); + ctx.translate(plotOffset.left, plotOffset.top); + + // FIXME: figure out a way to add shadows (for instance along the right edge) + ctx.lineWidth = series.bars.lineWidth; + ctx.strokeStyle = series.color; + var barLeft = series.bars.align == "left" ? 0 : -series.bars.barWidth/2; + var fillStyleCallback = series.bars.fill ? function (bottom, top) { return getFillStyle(series.bars, series.color, bottom, top); } : null; + plotBars(series.datapoints, barLeft, barLeft + series.bars.barWidth, 0, fillStyleCallback, series.xaxis, series.yaxis); + ctx.restore(); + } + + function getFillStyle(filloptions, seriesColor, bottom, top) { + var fill = filloptions.fill; + if (!fill) + return null; + + if (filloptions.fillColor) + return getColorOrGradient(filloptions.fillColor, bottom, top, seriesColor); + + var c = $.color.parse(seriesColor); + c.a = typeof fill == "number" ? fill : 0.4; + c.normalize(); + return c.toString(); + } + + function insertLegend() { + placeholder.find(".legend").remove(); + + if (!options.legend.show) + return; + + var fragments = [], rowStarted = false, + lf = options.legend.labelFormatter, s, label; + for (i = 0; i < series.length; ++i) { + s = series[i]; + label = s.label; + if (!label) + continue; + + if (i % options.legend.noColumns == 0) { + if (rowStarted) + fragments.push(''); + fragments.push('
          '); + rowStarted = true; + } + + if (lf) + label = lf(label, s); + + fragments.push( + '' + + ''); + } + if (rowStarted) + fragments.push(''); + + if (fragments.length == 0) + return; + + var table = '
          ' + label + '
          ' + fragments.join("") + '
          '; + if (options.legend.container != null) + $(options.legend.container).html(table); + else { + var pos = "", + p = options.legend.position, + m = options.legend.margin; + if (m[0] == null) + m = [m, m]; + if (p.charAt(0) == "n") + pos += 'top:' + (m[1] + plotOffset.top) + 'px;'; + else if (p.charAt(0) == "s") + pos += 'bottom:' + (m[1] + plotOffset.bottom) + 'px;'; + if (p.charAt(1) == "e") + pos += 'right:' + (m[0] + plotOffset.right) + 'px;'; + else if (p.charAt(1) == "w") + pos += 'left:' + (m[0] + plotOffset.left) + 'px;'; + var legend = $('
          ' + table.replace('style="', 'style="position:absolute;' + pos +';') + '
          ').appendTo(placeholder); + if (options.legend.backgroundOpacity != 0.0) { + // put in the transparent background + // separately to avoid blended labels and + // label boxes + var c = options.legend.backgroundColor; + if (c == null) { + c = options.grid.backgroundColor; + if (c && typeof c == "string") + c = $.color.parse(c); + else + c = $.color.extract(legend, 'background-color'); + c.a = 1; + c = c.toString(); + } + var div = legend.children(); + $('
          ').prependTo(legend).css('opacity', options.legend.backgroundOpacity); + } + } + } + + + // interactive features + + var highlights = [], + redrawTimeout = null; + + // returns the data item the mouse is over, or null if none is found + function findNearbyItem(mouseX, mouseY, seriesFilter) { + var maxDistance = options.grid.mouseActiveRadius, + smallestDistance = maxDistance * maxDistance + 1, + item = null, foundPoint = false, i, j; + + for (i = 0; i < series.length; ++i) { + if (!seriesFilter(series[i])) + continue; + + var s = series[i], + axisx = s.xaxis, + axisy = s.yaxis, + points = s.datapoints.points, + ps = s.datapoints.pointsize, + mx = axisx.c2p(mouseX), // precompute some stuff to make the loop faster + my = axisy.c2p(mouseY), + maxx = maxDistance / axisx.scale, + maxy = maxDistance / axisy.scale; + + if (s.lines.show || s.points.show) { + for (j = 0; j < points.length; j += ps) { + var x = points[j], y = points[j + 1]; + if (x == null) + continue; + + // For points and lines, the cursor must be within a + // certain distance to the data point + if (x - mx > maxx || x - mx < -maxx || + y - my > maxy || y - my < -maxy) + continue; + + // We have to calculate distances in pixels, not in + // data units, because the scales of the axes may be different + var dx = Math.abs(axisx.p2c(x) - mouseX), + dy = Math.abs(axisy.p2c(y) - mouseY), + dist = dx * dx + dy * dy; // we save the sqrt + + // use <= to ensure last point takes precedence + // (last generally means on top of) + if (dist <= smallestDistance) { + smallestDistance = dist; + item = [i, j / ps]; + } + } + } + + if (s.bars.show && !item) { // no other point can be nearby + var barLeft = s.bars.align == "left" ? 0 : -s.bars.barWidth/2, + barRight = barLeft + s.bars.barWidth; + + for (j = 0; j < points.length; j += ps) { + var x = points[j], y = points[j + 1], b = points[j + 2]; + if (x == null) + continue; + + // for a bar graph, the cursor must be inside the bar + if (series[i].bars.horizontal ? + (mx <= Math.max(b, x) && mx >= Math.min(b, x) && + my >= y + barLeft && my <= y + barRight) : + (mx >= x + barLeft && mx <= x + barRight && + my >= Math.min(b, y) && my <= Math.max(b, y))) + item = [i, j / ps]; + } + } + } + + if (item) { + i = item[0]; + j = item[1]; + ps = series[i].datapoints.pointsize; + + return { datapoint: series[i].datapoints.points.slice(j * ps, (j + 1) * ps), + dataIndex: j, + series: series[i], + seriesIndex: i }; + } + + return null; + } + + function onMouseMove(e) { + if (options.grid.hoverable) + triggerClickHoverEvent("plothover", e, + function (s) { return s["hoverable"] != false; }); + } + + function onClick(e) { + triggerClickHoverEvent("plotclick", e, + function (s) { return s["clickable"] != false; }); + } + + // trigger click or hover event (they send the same parameters + // so we share their code) + function triggerClickHoverEvent(eventname, event, seriesFilter) { + var offset = eventHolder.offset(), + pos = { pageX: event.pageX, pageY: event.pageY }, + canvasX = event.pageX - offset.left - plotOffset.left, + canvasY = event.pageY - offset.top - plotOffset.top; + + if (axes.xaxis.used) + pos.x = axes.xaxis.c2p(canvasX); + if (axes.yaxis.used) + pos.y = axes.yaxis.c2p(canvasY); + if (axes.x2axis.used) + pos.x2 = axes.x2axis.c2p(canvasX); + if (axes.y2axis.used) + pos.y2 = axes.y2axis.c2p(canvasY); + + var item = findNearbyItem(canvasX, canvasY, seriesFilter); + + if (item) { + // fill in mouse pos for any listeners out there + item.pageX = parseInt(item.series.xaxis.p2c(item.datapoint[0]) + offset.left + plotOffset.left); + item.pageY = parseInt(item.series.yaxis.p2c(item.datapoint[1]) + offset.top + plotOffset.top); + } + + if (options.grid.autoHighlight) { + // clear auto-highlights + for (var i = 0; i < highlights.length; ++i) { + var h = highlights[i]; + if (h.auto == eventname && + !(item && h.series == item.series && h.point == item.datapoint)) + unhighlight(h.series, h.point); + } + + if (item) + highlight(item.series, item.datapoint, eventname); + } + + placeholder.trigger(eventname, [ pos, item ]); + } + + function triggerRedrawOverlay() { + if (!redrawTimeout) + redrawTimeout = setTimeout(drawOverlay, 30); + } + + function drawOverlay() { + redrawTimeout = null; + + // draw highlights + octx.save(); + octx.clearRect(0, 0, canvasWidth, canvasHeight); + octx.translate(plotOffset.left, plotOffset.top); + + var i, hi; + for (i = 0; i < highlights.length; ++i) { + hi = highlights[i]; + + if (hi.series.bars.show) + drawBarHighlight(hi.series, hi.point); + else + drawPointHighlight(hi.series, hi.point); + } + octx.restore(); + + executeHooks(hooks.drawOverlay, [octx]); + } + + function highlight(s, point, auto) { + if (typeof s == "number") + s = series[s]; + + if (typeof point == "number") + point = s.data[point]; + + var i = indexOfHighlight(s, point); + if (i == -1) { + highlights.push({ series: s, point: point, auto: auto }); + + triggerRedrawOverlay(); + } + else if (!auto) + highlights[i].auto = false; + } + + function unhighlight(s, point) { + if (s == null && point == null) { + highlights = []; + triggerRedrawOverlay(); + } + + if (typeof s == "number") + s = series[s]; + + if (typeof point == "number") + point = s.data[point]; + + var i = indexOfHighlight(s, point); + if (i != -1) { + highlights.splice(i, 1); + + triggerRedrawOverlay(); + } + } + + function indexOfHighlight(s, p) { + for (var i = 0; i < highlights.length; ++i) { + var h = highlights[i]; + if (h.series == s && h.point[0] == p[0] + && h.point[1] == p[1]) + return i; + } + return -1; + } + + function drawPointHighlight(series, point) { + var x = point[0], y = point[1], + axisx = series.xaxis, axisy = series.yaxis; + + if (x < axisx.min || x > axisx.max || y < axisy.min || y > axisy.max) + return; + + var pointRadius = series.points.radius + series.points.lineWidth / 2; + octx.lineWidth = pointRadius; + octx.strokeStyle = $.color.parse(series.color).scale('a', 0.5).toString(); + var radius = 1.5 * pointRadius; + octx.beginPath(); + octx.arc(axisx.p2c(x), axisy.p2c(y), radius, 0, 2 * Math.PI, false); + octx.stroke(); + } + + function drawBarHighlight(series, point) { + octx.lineWidth = series.bars.lineWidth; + octx.strokeStyle = $.color.parse(series.color).scale('a', 0.5).toString(); + var fillStyle = $.color.parse(series.color).scale('a', 0.5).toString(); + var barLeft = series.bars.align == "left" ? 0 : -series.bars.barWidth/2; + drawBar(point[0], point[1], point[2] || 0, barLeft, barLeft + series.bars.barWidth, + 0, function () { return fillStyle; }, series.xaxis, series.yaxis, octx, series.bars.horizontal); + } + + function getColorOrGradient(spec, bottom, top, defaultColor) { + if (typeof spec == "string") + return spec; + else { + // assume this is a gradient spec; IE currently only + // supports a simple vertical gradient properly, so that's + // what we support too + var gradient = ctx.createLinearGradient(0, top, 0, bottom); + + for (var i = 0, l = spec.colors.length; i < l; ++i) { + var c = spec.colors[i]; + if (typeof c != "string") { + c = $.color.parse(defaultColor).scale('rgb', c.brightness); + c.a *= c.opacity; + c = c.toString(); + } + gradient.addColorStop(i / (l - 1), c); + } + + return gradient; + } + } + } + + $.plot = function(placeholder, data, options) { + var plot = new Plot($(placeholder), data, options, $.plot.plugins); + /*var t0 = new Date(); + var t1 = new Date(); + var tstr = "time used (msecs): " + (t1.getTime() - t0.getTime()) + if (window.console) + console.log(tstr); + else + alert(tstr);*/ + return plot; + }; + + $.plot.plugins = []; + + // returns a string with the date d formatted according to fmt + $.plot.formatDate = function(d, fmt, monthNames) { + var leftPad = function(n) { + n = "" + n; + return n.length == 1 ? "0" + n : n; + }; + + var r = []; + var escape = false; + var hours = d.getUTCHours(); + var isAM = hours < 12; + if (monthNames == null) + monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; + + if (fmt.search(/%p|%P/) != -1) { + if (hours > 12) { + hours = hours - 12; + } else if (hours == 0) { + hours = 12; + } + } + for (var i = 0; i < fmt.length; ++i) { + var c = fmt.charAt(i); + + if (escape) { + switch (c) { + case 'h': c = "" + hours; break; + case 'H': c = leftPad(hours); break; + case 'M': c = leftPad(d.getUTCMinutes()); break; + case 'S': c = leftPad(d.getUTCSeconds()); break; + case 'd': c = "" + d.getUTCDate(); break; + case 'm': c = "" + (d.getUTCMonth() + 1); break; + case 'y': c = "" + d.getUTCFullYear(); break; + case 'b': c = "" + monthNames[d.getUTCMonth()]; break; + case 'p': c = (isAM) ? ("" + "am") : ("" + "pm"); break; + case 'P': c = (isAM) ? ("" + "AM") : ("" + "PM"); break; + } + r.push(c); + escape = false; + } + else { + if (c == "%") + escape = true; + else + r.push(c); + } + } + return r.join(""); + }; + + // round to nearby lower multiple of base + function floorInBase(n, base) { + return base * Math.floor(n / base); + } + +})(jQuery); diff --git a/askbot/skins/default/media/js/jquery.flot.min.js b/askbot/skins/default/media/js/jquery.flot.min.js new file mode 100644 index 00000000..31f465b8 --- /dev/null +++ b/askbot/skins/default/media/js/jquery.flot.min.js @@ -0,0 +1 @@ +(function(){jQuery.color={};jQuery.color.make=function(G,H,J,I){var A={};A.r=G||0;A.g=H||0;A.b=J||0;A.a=I!=null?I:1;A.add=function(C,D){for(var E=0;E=1){return"rgb("+[A.r,A.g,A.b].join(",")+")"}else{return"rgba("+[A.r,A.g,A.b,A.a].join(",")+")"}};A.normalize=function(){function C(E,D,F){return DF?F:D)}A.r=C(0,parseInt(A.r),255);A.g=C(0,parseInt(A.g),255);A.b=C(0,parseInt(A.b),255);A.a=C(0,A.a,1);return A};A.clone=function(){return jQuery.color.make(A.r,A.b,A.g,A.a)};return A.normalize()};jQuery.color.extract=function(E,F){var A;do{A=E.css(F).toLowerCase();if(A!=""&&A!="transparent"){break}E=E.parent()}while(!jQuery.nodeName(E.get(0),"body"));if(A=="rgba(0, 0, 0, 0)"){A="transparent"}return jQuery.color.parse(A)};jQuery.color.parse=function(A){var F,H=jQuery.color.make;if(F=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(A)){return H(parseInt(F[1],10),parseInt(F[2],10),parseInt(F[3],10))}if(F=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(A)){return H(parseInt(F[1],10),parseInt(F[2],10),parseInt(F[3],10),parseFloat(F[4]))}if(F=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(A)){return H(parseFloat(F[1])*2.55,parseFloat(F[2])*2.55,parseFloat(F[3])*2.55)}if(F=/rgba\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(A)){return H(parseFloat(F[1])*2.55,parseFloat(F[2])*2.55,parseFloat(F[3])*2.55,parseFloat(F[4]))}if(F=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(A)){return H(parseInt(F[1],16),parseInt(F[2],16),parseInt(F[3],16))}if(F=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(A)){return H(parseInt(F[1]+F[1],16),parseInt(F[2]+F[2],16),parseInt(F[3]+F[3],16))}var G=jQuery.trim(A).toLowerCase();if(G=="transparent"){return H(255,255,255,0)}else{F=B[G];return H(F[0],F[1],F[2])}};var B={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0]}})();(function(C){function B(l,W,X,E){var O=[],g={colors:["#edc240","#afd8f8","#cb4b4b","#4da74d","#9440ed"],legend:{show:true,noColumns:1,labelFormatter:null,labelBoxBorderColor:"#ccc",container:null,position:"ne",margin:5,backgroundColor:null,backgroundOpacity:0.85},xaxis:{mode:null,transform:null,inverseTransform:null,min:null,max:null,autoscaleMargin:null,ticks:null,tickFormatter:null,labelWidth:null,labelHeight:null,tickDecimals:null,tickSize:null,minTickSize:null,monthNames:null,timeformat:null,twelveHourClock:false},yaxis:{autoscaleMargin:0.02},x2axis:{autoscaleMargin:null},y2axis:{autoscaleMargin:0.02},series:{points:{show:false,radius:3,lineWidth:2,fill:true,fillColor:"#ffffff"},lines:{lineWidth:2,fill:false,fillColor:null,steps:false},bars:{show:false,lineWidth:2,barWidth:1,fill:true,fillColor:null,align:"left",horizontal:false},shadowSize:3},grid:{show:true,aboveData:false,color:"#545454",backgroundColor:null,tickColor:"rgba(0,0,0,0.15)",labelMargin:5,borderWidth:2,borderColor:null,markings:null,markingsColor:"#f4f4f4",markingsLineWidth:2,clickable:false,hoverable:false,autoHighlight:true,mouseActiveRadius:10},hooks:{}},P=null,AC=null,AD=null,Y=null,AJ=null,s={xaxis:{},yaxis:{},x2axis:{},y2axis:{}},e={left:0,right:0,top:0,bottom:0},y=0,Q=0,I=0,t=0,L={processOptions:[],processRawData:[],processDatapoints:[],draw:[],bindEvents:[],drawOverlay:[]},G=this;G.setData=f;G.setupGrid=k;G.draw=AH;G.getPlaceholder=function(){return l};G.getCanvas=function(){return P};G.getPlotOffset=function(){return e};G.width=function(){return I};G.height=function(){return t};G.offset=function(){var AK=AD.offset();AK.left+=e.left;AK.top+=e.top;return AK};G.getData=function(){return O};G.getAxes=function(){return s};G.getOptions=function(){return g};G.highlight=AE;G.unhighlight=x;G.triggerRedrawOverlay=q;G.pointOffset=function(AK){return{left:parseInt(T(AK,"xaxis").p2c(+AK.x)+e.left),top:parseInt(T(AK,"yaxis").p2c(+AK.y)+e.top)}};G.hooks=L;b(G);r(X);c();f(W);k();AH();AG();function Z(AM,AK){AK=[G].concat(AK);for(var AL=0;AL=g.colors.length){AP=0;++AO}}var AQ=0,AW;for(AP=0;APAl.datamax){Al.datamax=Aj}}for(Ac=0;Ac0&&Ab[AZ-AX]!=null&&Ab[AZ-AX]!=Ab[AZ]&&Ab[AZ-AX+1]!=Ab[AZ+1]){for(AV=0;AVAU){AU=Ai}}if(Af.y){if(AiAd){Ad=Ai}}}}if(AR.bars.show){var Ag=AR.bars.align=="left"?0:-AR.bars.barWidth/2;if(AR.bars.horizontal){AY+=Ag;Ad+=Ag+AR.bars.barWidth}else{AS+=Ag;AU+=Ag+AR.bars.barWidth}}AN(AR.xaxis,AS,AU);AN(AR.yaxis,AY,Ad)}for(AK in s){if(s[AK].datamin==AW){s[AK].datamin=null}if(s[AK].datamax==AQ){s[AK].datamax=null}}}function c(){function AK(AM,AL){var AN=document.createElement("canvas");AN.width=AM;AN.height=AL;if(C.browser.msie){AN=window.G_vmlCanvasManager.initElement(AN)}return AN}y=l.width();Q=l.height();l.html("");if(l.css("position")=="static"){l.css("position","relative")}if(y<=0||Q<=0){throw"Invalid dimensions for plot, width = "+y+", height = "+Q}if(C.browser.msie){window.G_vmlCanvasManager.init_(document)}P=C(AK(y,Q)).appendTo(l).get(0);Y=P.getContext("2d");AC=C(AK(y,Q)).css({position:"absolute",left:0,top:0}).appendTo(l).get(0);AJ=AC.getContext("2d");AJ.stroke()}function AG(){AD=C([AC,P]);if(g.grid.hoverable){AD.mousemove(D)}if(g.grid.clickable){AD.click(d)}Z(L.bindEvents,[AD])}function k(){function AL(AT,AU){function AP(AV){return AV}var AS,AO,AQ=AU.transform||AP,AR=AU.inverseTransform;if(AT==s.xaxis||AT==s.x2axis){AS=AT.scale=I/(AQ(AT.max)-AQ(AT.min));AO=AQ(AT.min);if(AQ==AP){AT.p2c=function(AV){return(AV-AO)*AS}}else{AT.p2c=function(AV){return(AQ(AV)-AO)*AS}}if(!AR){AT.c2p=function(AV){return AO+AV/AS}}else{AT.c2p=function(AV){return AR(AO+AV/AS)}}}else{AS=AT.scale=t/(AQ(AT.max)-AQ(AT.min));AO=AQ(AT.max);if(AQ==AP){AT.p2c=function(AV){return(AO-AV)*AS}}else{AT.p2c=function(AV){return(AO-AQ(AV))*AS}}if(!AR){AT.c2p=function(AV){return AO-AV/AS}}else{AT.c2p=function(AV){return AR(AO-AV/AS)}}}}function AN(AR,AT){var AQ,AS=[],AP;AR.labelWidth=AT.labelWidth;AR.labelHeight=AT.labelHeight;if(AR==s.xaxis||AR==s.x2axis){if(AR.labelWidth==null){AR.labelWidth=y/(AR.ticks.length>0?AR.ticks.length:1)}if(AR.labelHeight==null){AS=[];for(AQ=0;AQ'+AP+"
          ")}}if(AS.length>0){var AO=C('
          '+AS.join("")+'
          ').appendTo(l);AR.labelHeight=AO.height();AO.remove()}}}else{if(AR.labelWidth==null||AR.labelHeight==null){for(AQ=0;AQ'+AP+"
          ")}}if(AS.length>0){var AO=C('
          '+AS.join("")+"
          ").appendTo(l);if(AR.labelWidth==null){AR.labelWidth=AO.width()}if(AR.labelHeight==null){AR.labelHeight=AO.find("div").height()}AO.remove()}}}if(AR.labelWidth==null){AR.labelWidth=0}if(AR.labelHeight==null){AR.labelHeight=0}}function AM(){var AP=g.grid.borderWidth;for(i=0;i0){e.bottom=Math.max(AP,s.xaxis.labelHeight+AO)}if(s.yaxis.labelWidth>0){e.left=Math.max(AP,s.yaxis.labelWidth+AO)}if(s.x2axis.labelHeight>0){e.top=Math.max(AP,s.x2axis.labelHeight+AO)}if(s.y2axis.labelWidth>0){e.right=Math.max(AP,s.y2axis.labelWidth+AO)}I=y-e.left-e.right;t=Q-e.bottom-e.top}var AK;for(AK in s){K(s[AK],g[AK])}if(g.grid.show){for(AK in s){F(s[AK],g[AK]);p(s[AK],g[AK]);AN(s[AK],g[AK])}AM()}else{e.left=e.right=e.top=e.bottom=0;I=y;t=Q}for(AK in s){AL(s[AK],g[AK])}if(g.grid.show){h()}AI()}function K(AN,AQ){var AM=+(AQ.min!=null?AQ.min:AN.datamin),AK=+(AQ.max!=null?AQ.max:AN.datamax),AP=AK-AM;if(AP==0){var AL=AK==0?1:0.01;if(AQ.min==null){AM-=AL}if(AQ.max==null||AQ.min!=null){AK+=AL}}else{var AO=AQ.autoscaleMargin;if(AO!=null){if(AQ.min==null){AM-=AP*AO;if(AM<0&&AN.datamin!=null&&AN.datamin>=0){AM=0}}if(AQ.max==null){AK+=AP*AO;if(AK>0&&AN.datamax!=null&&AN.datamax<=0){AK=0}}}}AN.min=AM;AN.max=AK}function F(AP,AS){var AO;if(typeof AS.ticks=="number"&&AS.ticks>0){AO=AS.ticks}else{if(AP==s.xaxis||AP==s.x2axis){AO=0.3*Math.sqrt(y)}else{AO=0.3*Math.sqrt(Q)}}var AX=(AP.max-AP.min)/AO,AZ,AT,AV,AW,AR,AM,AL;if(AS.mode=="time"){var AU={second:1000,minute:60*1000,hour:60*60*1000,day:24*60*60*1000,month:30*24*60*60*1000,year:365.2425*24*60*60*1000};var AY=[[1,"second"],[2,"second"],[5,"second"],[10,"second"],[30,"second"],[1,"minute"],[2,"minute"],[5,"minute"],[10,"minute"],[30,"minute"],[1,"hour"],[2,"hour"],[4,"hour"],[8,"hour"],[12,"hour"],[1,"day"],[2,"day"],[3,"day"],[0.25,"month"],[0.5,"month"],[1,"month"],[2,"month"],[3,"month"],[6,"month"],[1,"year"]];var AN=0;if(AS.minTickSize!=null){if(typeof AS.tickSize=="number"){AN=AS.tickSize}else{AN=AS.minTickSize[0]*AU[AS.minTickSize[1]]}}for(AR=0;AR=AN){break}}AZ=AY[AR][0];AV=AY[AR][1];if(AV=="year"){AM=Math.pow(10,Math.floor(Math.log(AX/AU.year)/Math.LN10));AL=(AX/AU.year)/AM;if(AL<1.5){AZ=1}else{if(AL<3){AZ=2}else{if(AL<7.5){AZ=5}else{AZ=10}}}AZ*=AM}if(AS.tickSize){AZ=AS.tickSize[0];AV=AS.tickSize[1]}AT=function(Ac){var Ah=[],Af=Ac.tickSize[0],Ai=Ac.tickSize[1],Ag=new Date(Ac.min);var Ab=Af*AU[Ai];if(Ai=="second"){Ag.setUTCSeconds(A(Ag.getUTCSeconds(),Af))}if(Ai=="minute"){Ag.setUTCMinutes(A(Ag.getUTCMinutes(),Af))}if(Ai=="hour"){Ag.setUTCHours(A(Ag.getUTCHours(),Af))}if(Ai=="month"){Ag.setUTCMonth(A(Ag.getUTCMonth(),Af))}if(Ai=="year"){Ag.setUTCFullYear(A(Ag.getUTCFullYear(),Af))}Ag.setUTCMilliseconds(0);if(Ab>=AU.minute){Ag.setUTCSeconds(0)}if(Ab>=AU.hour){Ag.setUTCMinutes(0)}if(Ab>=AU.day){Ag.setUTCHours(0)}if(Ab>=AU.day*4){Ag.setUTCDate(1)}if(Ab>=AU.year){Ag.setUTCMonth(0)}var Ak=0,Aj=Number.NaN,Ad;do{Ad=Aj;Aj=Ag.getTime();Ah.push({v:Aj,label:Ac.tickFormatter(Aj,Ac)});if(Ai=="month"){if(Af<1){Ag.setUTCDate(1);var Aa=Ag.getTime();Ag.setUTCMonth(Ag.getUTCMonth()+1);var Ae=Ag.getTime();Ag.setTime(Aj+Ak*AU.hour+(Ae-Aa)*Af);Ak=Ag.getUTCHours();Ag.setUTCHours(0)}else{Ag.setUTCMonth(Ag.getUTCMonth()+Af)}}else{if(Ai=="year"){Ag.setUTCFullYear(Ag.getUTCFullYear()+Af)}else{Ag.setTime(Aj+Ab)}}}while(AjAK){AQ=AK}AM=Math.pow(10,-AQ);AL=AX/AM;if(AL<1.5){AZ=1}else{if(AL<3){AZ=2;if(AL>2.25&&(AK==null||AQ+1<=AK)){AZ=2.5;++AQ}}else{if(AL<7.5){AZ=5}else{AZ=10}}}AZ*=AM;if(AS.minTickSize!=null&&AZ0){AO.ticks=AO.tickGenerator(AO)}}else{if(AQ.ticks){var AP=AQ.ticks;if(C.isFunction(AP)){AP=AP({min:AO.min,max:AO.max})}var AN,AK;for(AN=0;AN1){AL=AM[1]}}else{AK=AM}if(AL==null){AL=AO.tickFormatter(AK,AO)}AO.ticks[AN]={v:AK,label:AL}}}}}if(AQ.autoscaleMargin!=null&&AO.ticks.length>0){if(AQ.min==null){AO.min=Math.min(AO.min,AO.ticks[0].v)}if(AQ.max==null&&AO.ticks.length>1){AO.max=Math.max(AO.max,AO.ticks[AO.ticks.length-1].v)}}}function AH(){Y.clearRect(0,0,y,Q);var AL=g.grid;if(AL.show&&!AL.aboveData){S()}for(var AK=0;AKAP){return{from:AP,to:AQ,axis:AN}}return{from:AQ,to:AP,axis:AN}}function S(){var AO;Y.save();Y.translate(e.left,e.top);if(g.grid.backgroundColor){Y.fillStyle=R(g.grid.backgroundColor,t,0,"rgba(255, 255, 255, 0)");Y.fillRect(0,0,I,t)}var AL=g.grid.markings;if(AL){if(C.isFunction(AL)){AL=AL({xmin:s.xaxis.min,xmax:s.xaxis.max,ymin:s.yaxis.min,ymax:s.yaxis.max,xaxis:s.xaxis,yaxis:s.yaxis,x2axis:s.x2axis,y2axis:s.y2axis})}for(AO=0;AOAQ.axis.max||AN.toAN.axis.max){continue}AQ.from=Math.max(AQ.from,AQ.axis.min);AQ.to=Math.min(AQ.to,AQ.axis.max);AN.from=Math.max(AN.from,AN.axis.min);AN.to=Math.min(AN.to,AN.axis.max);if(AQ.from==AQ.to&&AN.from==AN.to){continue}AQ.from=AQ.axis.p2c(AQ.from);AQ.to=AQ.axis.p2c(AQ.to);AN.from=AN.axis.p2c(AN.from);AN.to=AN.axis.p2c(AN.to);if(AQ.from==AQ.to||AN.from==AN.to){Y.beginPath();Y.strokeStyle=AK.color||g.grid.markingsColor;Y.lineWidth=AK.lineWidth||g.grid.markingsLineWidth;Y.moveTo(AQ.from,AN.from);Y.lineTo(AQ.to,AN.to);Y.stroke()}else{Y.fillStyle=AK.color||g.grid.markingsColor;Y.fillRect(AQ.from,AN.to,AQ.to-AQ.from,AN.from-AN.to)}}}Y.lineWidth=1;Y.strokeStyle=g.grid.tickColor;Y.beginPath();var AM,AP=s.xaxis;for(AO=0;AO=s.xaxis.max){continue}Y.moveTo(Math.floor(AP.p2c(AM))+Y.lineWidth/2,0);Y.lineTo(Math.floor(AP.p2c(AM))+Y.lineWidth/2,t)}AP=s.yaxis;for(AO=0;AO=AP.max){continue}Y.moveTo(0,Math.floor(AP.p2c(AM))+Y.lineWidth/2);Y.lineTo(I,Math.floor(AP.p2c(AM))+Y.lineWidth/2)}AP=s.x2axis;for(AO=0;AO=AP.max){continue}Y.moveTo(Math.floor(AP.p2c(AM))+Y.lineWidth/2,-5);Y.lineTo(Math.floor(AP.p2c(AM))+Y.lineWidth/2,5)}AP=s.y2axis;for(AO=0;AO=AP.max){continue}Y.moveTo(I-5,Math.floor(AP.p2c(AM))+Y.lineWidth/2);Y.lineTo(I+5,Math.floor(AP.p2c(AM))+Y.lineWidth/2)}Y.stroke();if(g.grid.borderWidth){var AR=g.grid.borderWidth;Y.lineWidth=AR;Y.strokeStyle=g.grid.borderColor;Y.strokeRect(-AR/2,-AR/2,I+AR,t+AR)}Y.restore()}function h(){l.find(".tickLabels").remove();var AK=['
          '];function AM(AP,AQ){for(var AO=0;AOAP.max){continue}AK.push(AQ(AN,AP))}}var AL=g.grid.labelMargin+g.grid.borderWidth;AM(s.xaxis,function(AN,AO){return'
          '+AN.label+"
          "});AM(s.yaxis,function(AN,AO){return'
          '+AN.label+"
          "});AM(s.x2axis,function(AN,AO){return'
          '+AN.label+"
          "});AM(s.y2axis,function(AN,AO){return'
          '+AN.label+"
          "});AK.push("
          ");l.append(AK.join(""))}function AA(AK){if(AK.lines.show){a(AK)}if(AK.bars.show){n(AK)}if(AK.points.show){o(AK)}}function a(AN){function AM(AY,AZ,AR,Ad,Ac){var Ae=AY.points,AS=AY.pointsize,AW=null,AV=null;Y.beginPath();for(var AX=AS;AX=Aa&&Ab>Ac.max){if(Aa>Ac.max){continue}AU=(Ac.max-Ab)/(Aa-Ab)*(AT-AU)+AU;Ab=Ac.max}else{if(Aa>=Ab&&Aa>Ac.max){if(Ab>Ac.max){continue}AT=(Ac.max-Ab)/(Aa-Ab)*(AT-AU)+AU;Aa=Ac.max}}if(AU<=AT&&AU=AT&&AU>Ad.max){if(AT>Ad.max){continue}Ab=(Ad.max-AU)/(AT-AU)*(Aa-Ab)+Ab;AU=Ad.max}else{if(AT>=AU&&AT>Ad.max){if(AU>Ad.max){continue}Aa=(Ad.max-AU)/(AT-AU)*(Aa-Ab)+Ab;AT=Ad.max}}if(AU!=AW||Ab!=AV){Y.moveTo(Ad.p2c(AU)+AZ,Ac.p2c(Ab)+AR)}AW=AT;AV=Aa;Y.lineTo(Ad.p2c(AT)+AZ,Ac.p2c(Aa)+AR)}Y.stroke()}function AO(AX,Ae,Ac){var Af=AX.points,AR=AX.pointsize,AS=Math.min(Math.max(0,Ac.min),Ac.max),Aa,AV=0,Ad=false;for(var AW=AR;AW=AT&&AU>Ae.max){if(AT>Ae.max){continue}Ab=(Ae.max-AU)/(AT-AU)*(AZ-Ab)+Ab;AU=Ae.max}else{if(AT>=AU&&AT>Ae.max){if(AU>Ae.max){continue}AZ=(Ae.max-AU)/(AT-AU)*(AZ-Ab)+Ab;AT=Ae.max}}if(!Ad){Y.beginPath();Y.moveTo(Ae.p2c(AU),Ac.p2c(AS));Ad=true}if(Ab>=Ac.max&&AZ>=Ac.max){Y.lineTo(Ae.p2c(AU),Ac.p2c(Ac.max));Y.lineTo(Ae.p2c(AT),Ac.p2c(Ac.max));AV=AT;continue}else{if(Ab<=Ac.min&&AZ<=Ac.min){Y.lineTo(Ae.p2c(AU),Ac.p2c(Ac.min));Y.lineTo(Ae.p2c(AT),Ac.p2c(Ac.min));AV=AT;continue}}var Ag=AU,AY=AT;if(Ab<=AZ&&Ab=Ac.min){AU=(Ac.min-Ab)/(AZ-Ab)*(AT-AU)+AU;Ab=Ac.min}else{if(AZ<=Ab&&AZ=Ac.min){AT=(Ac.min-Ab)/(AZ-Ab)*(AT-AU)+AU;AZ=Ac.min}}if(Ab>=AZ&&Ab>Ac.max&&AZ<=Ac.max){AU=(Ac.max-Ab)/(AZ-Ab)*(AT-AU)+AU;Ab=Ac.max}else{if(AZ>=Ab&&AZ>Ac.max&&Ab<=Ac.max){AT=(Ac.max-Ab)/(AZ-Ab)*(AT-AU)+AU;AZ=Ac.max}}if(AU!=Ag){if(Ab<=Ac.min){Aa=Ac.min}else{Aa=Ac.max}Y.lineTo(Ae.p2c(Ag),Ac.p2c(Aa));Y.lineTo(Ae.p2c(AU),Ac.p2c(Aa))}Y.lineTo(Ae.p2c(AU),Ac.p2c(Ab));Y.lineTo(Ae.p2c(AT),Ac.p2c(AZ));if(AT!=AY){if(AZ<=Ac.min){Aa=Ac.min}else{Aa=Ac.max}Y.lineTo(Ae.p2c(AT),Ac.p2c(Aa));Y.lineTo(Ae.p2c(AY),Ac.p2c(Aa))}AV=Math.max(AT,AY)}if(Ad){Y.lineTo(Ae.p2c(AV),Ac.p2c(AS));Y.fill()}}Y.save();Y.translate(e.left,e.top);Y.lineJoin="round";var AP=AN.lines.lineWidth,AK=AN.shadowSize;if(AP>0&&AK>0){Y.lineWidth=AK;Y.strokeStyle="rgba(0,0,0,0.1)";var AQ=Math.PI/18;AM(AN.datapoints,Math.sin(AQ)*(AP/2+AK/2),Math.cos(AQ)*(AP/2+AK/2),AN.xaxis,AN.yaxis);Y.lineWidth=AK/2;AM(AN.datapoints,Math.sin(AQ)*(AP/2+AK/4),Math.cos(AQ)*(AP/2+AK/4),AN.xaxis,AN.yaxis)}Y.lineWidth=AP;Y.strokeStyle=AN.color;var AL=V(AN.lines,AN.color,0,t);if(AL){Y.fillStyle=AL;AO(AN.datapoints,AN.xaxis,AN.yaxis)}if(AP>0){AM(AN.datapoints,0,0,AN.xaxis,AN.yaxis)}Y.restore()}function o(AN){function AP(AU,AT,Ab,AR,AV,AZ,AY){var Aa=AU.points,AQ=AU.pointsize;for(var AS=0;ASAZ.max||AWAY.max){continue}Y.beginPath();Y.arc(AZ.p2c(AX),AY.p2c(AW)+AR,AT,0,AV,false);if(Ab){Y.fillStyle=Ab;Y.fill()}Y.stroke()}}Y.save();Y.translate(e.left,e.top);var AO=AN.lines.lineWidth,AL=AN.shadowSize,AK=AN.points.radius;if(AO>0&&AL>0){var AM=AL/2;Y.lineWidth=AM;Y.strokeStyle="rgba(0,0,0,0.1)";AP(AN.datapoints,AK,null,AM+AM/2,Math.PI,AN.xaxis,AN.yaxis);Y.strokeStyle="rgba(0,0,0,0.2)";AP(AN.datapoints,AK,null,AM/2,Math.PI,AN.xaxis,AN.yaxis)}Y.lineWidth=AO;Y.strokeStyle=AN.color;AP(AN.datapoints,AK,V(AN.points,AN.color),0,2*Math.PI,AN.xaxis,AN.yaxis);Y.restore()}function AB(AV,AU,Ad,AQ,AY,AN,AL,AT,AS,Ac,AZ){var AM,Ab,AR,AX,AO,AK,AW,AP,Aa;if(AZ){AP=AK=AW=true;AO=false;AM=Ad;Ab=AV;AX=AU+AQ;AR=AU+AY;if(AbAT.max||AXAS.max){return }if(AMAT.max){Ab=AT.max;AK=false}if(ARAS.max){AX=AS.max;AW=false}AM=AT.p2c(AM);AR=AS.p2c(AR);Ab=AT.p2c(Ab);AX=AS.p2c(AX);if(AL){Ac.beginPath();Ac.moveTo(AM,AR);Ac.lineTo(AM,AX);Ac.lineTo(Ab,AX);Ac.lineTo(Ab,AR);Ac.fillStyle=AL(AR,AX);Ac.fill()}if(AO||AK||AW||AP){Ac.beginPath();Ac.moveTo(AM,AR+AN);if(AO){Ac.lineTo(AM,AX+AN)}else{Ac.moveTo(AM,AX+AN)}if(AW){Ac.lineTo(Ab,AX+AN)}else{Ac.moveTo(Ab,AX+AN)}if(AK){Ac.lineTo(Ab,AR+AN)}else{Ac.moveTo(Ab,AR+AN)}if(AP){Ac.lineTo(AM,AR+AN)}else{Ac.moveTo(AM,AR+AN)}Ac.stroke()}}function n(AM){function AL(AS,AR,AU,AP,AT,AW,AV){var AX=AS.points,AO=AS.pointsize;for(var AQ=0;AQ")}AP.push("");AN=true}if(AV){AR=AV(AR,AU)}AP.push('
          '+AR+"")}if(AN){AP.push("")}if(AP.length==0){return }var AT=''+AP.join("")+"
          ";if(g.legend.container!=null){C(g.legend.container).html(AT)}else{var AQ="",AL=g.legend.position,AM=g.legend.margin;if(AM[0]==null){AM=[AM,AM]}if(AL.charAt(0)=="n"){AQ+="top:"+(AM[1]+e.top)+"px;"}else{if(AL.charAt(0)=="s"){AQ+="bottom:"+(AM[1]+e.bottom)+"px;"}}if(AL.charAt(1)=="e"){AQ+="right:"+(AM[0]+e.right)+"px;"}else{if(AL.charAt(1)=="w"){AQ+="left:"+(AM[0]+e.left)+"px;"}}var AS=C('
          '+AT.replace('style="','style="position:absolute;'+AQ+";")+"
          ").appendTo(l);if(g.legend.backgroundOpacity!=0){var AO=g.legend.backgroundColor;if(AO==null){AO=g.grid.backgroundColor;if(AO&&typeof AO=="string"){AO=C.color.parse(AO)}else{AO=C.color.extract(AS,"background-color")}AO.a=1;AO=AO.toString()}var AK=AS.children();C('
          ').prependTo(AS).css("opacity",g.legend.backgroundOpacity)}}}var w=[],J=null;function AF(AR,AP,AM){var AX=g.grid.mouseActiveRadius,Aj=AX*AX+1,Ah=null,Aa=false,Af,Ad;for(Af=0;AfAL||AT-AZ<-AL||AS-AW>AK||AS-AW<-AK){continue}var AV=Math.abs(AQ.p2c(AT)-AR),AU=Math.abs(AO.p2c(AS)-AP),Ab=AV*AV+AU*AU;if(Ab<=Aj){Aj=Ab;Ah=[Af,Ad/Ac]}}}if(AY.bars.show&&!Ah){var AN=AY.bars.align=="left"?0:-AY.bars.barWidth/2,Ag=AN+AY.bars.barWidth;for(Ad=0;Ad=Math.min(Ai,AT)&&AW>=AS+AN&&AW<=AS+Ag):(AZ>=AT+AN&&AZ<=AT+Ag&&AW>=Math.min(Ai,AS)&&AW<=Math.max(Ai,AS))){Ah=[Af,Ad/Ac]}}}}if(Ah){Af=Ah[0];Ad=Ah[1];Ac=O[Af].datapoints.pointsize;return{datapoint:O[Af].datapoints.points.slice(Ad*Ac,(Ad+1)*Ac),dataIndex:Ad,series:O[Af],seriesIndex:Af}}return null}function D(AK){if(g.grid.hoverable){H("plothover",AK,function(AL){return AL.hoverable!=false})}}function d(AK){H("plotclick",AK,function(AL){return AL.clickable!=false})}function H(AL,AK,AM){var AN=AD.offset(),AS={pageX:AK.pageX,pageY:AK.pageY},AQ=AK.pageX-AN.left-e.left,AO=AK.pageY-AN.top-e.top;if(s.xaxis.used){AS.x=s.xaxis.c2p(AQ)}if(s.yaxis.used){AS.y=s.yaxis.c2p(AO)}if(s.x2axis.used){AS.x2=s.x2axis.c2p(AQ)}if(s.y2axis.used){AS.y2=s.y2axis.c2p(AO)}var AT=AF(AQ,AO,AM);if(AT){AT.pageX=parseInt(AT.series.xaxis.p2c(AT.datapoint[0])+AN.left+e.left);AT.pageY=parseInt(AT.series.yaxis.p2c(AT.datapoint[1])+AN.top+e.top)}if(g.grid.autoHighlight){for(var AP=0;APAQ.max||ARAP.max){return }var AO=AN.points.radius+AN.points.lineWidth/2;AJ.lineWidth=AO;AJ.strokeStyle=C.color.parse(AN.color).scale("a",0.5).toString();var AK=1.5*AO;AJ.beginPath();AJ.arc(AQ.p2c(AL),AP.p2c(AR),AK,0,2*Math.PI,false);AJ.stroke()}function z(AN,AK){AJ.lineWidth=AN.bars.lineWidth;AJ.strokeStyle=C.color.parse(AN.color).scale("a",0.5).toString();var AM=C.color.parse(AN.color).scale("a",0.5).toString();var AL=AN.bars.align=="left"?0:-AN.bars.barWidth/2;AB(AK[0],AK[1],AK[2]||0,AL,AL+AN.bars.barWidth,0,function(){return AM},AN.xaxis,AN.yaxis,AJ,AN.bars.horizontal)}function R(AM,AL,AQ,AO){if(typeof AM=="string"){return AM}else{var AP=Y.createLinearGradient(0,AQ,0,AL);for(var AN=0,AK=AM.colors.length;AN12){K=K-12}else{if(K==0){K=12}}}for(var F=0;F= 0 ? '&' : '?') + q; + options.data = null; // data is null for 'get' + } + else + options.data = q; // data is the query string for 'post' + + var $form = this, callbacks = []; + if (options.resetForm) callbacks.push(function() { $form.resetForm(); }); + if (options.clearForm) callbacks.push(function() { $form.clearForm(); }); + + // perform a load on the target only if dataType is not provided + if (!options.dataType && options.target) { + var oldSuccess = options.success || function(){}; + callbacks.push(function(data) { + $(options.target).html(data).each(oldSuccess, arguments); + }); + } + else if (options.success) + callbacks.push(options.success); + + options.success = function(data, status) { + for (var i=0, max=callbacks.length; i < max; i++) + callbacks[i].apply(options, [data, status, $form]); + }; + + // are there files to upload? + var files = $('input:file', this).fieldValue(); + var found = false; + for (var j=0; j < files.length; j++) + if (files[j]) + found = true; + + var multipart = false; +// var mp = 'multipart/form-data'; +// multipart = ($form.attr('enctype') == mp || $form.attr('encoding') == mp); + + // options.iframe allows user to force iframe mode + if (options.iframe || found || multipart) { + // hack to fix Safari hang (thanks to Tim Molendijk for this) + // see: http://groups.google.com/group/jquery-dev/browse_thread/thread/36395b7ab510dd5d + if (options.closeKeepAlive) + $.get(options.closeKeepAlive, fileUpload); + else + fileUpload(); + } + else{ + $.ajax(options); + } + + // fire 'notify' event + this.trigger('form-submit-notify', [this, options]); + return this; + + + // private function for handling file uploads (hat tip to YAHOO!) + function fileUpload() { + var form = $form[0]; + + if ($(':input[name=submit]', form).length) { + alert('Error: Form elements must not be named "submit".'); + return; + } + + var opts = $.extend({}, $.ajaxSettings, options); + var s = $.extend(true, {}, $.extend(true, {}, $.ajaxSettings), opts); + + var id = 'jqFormIO' + (new Date().getTime()); + var $io = $(''; + ifr = document.getElementById('iframe'); + doc = ifr.contentWindow.document; + + // Force absolute CSS urls + css = [ed.baseURI.toAbsolute("themes/" + ed.settings.theme + "/skins/" + ed.settings.skin + "/content.css")]; + css = css.concat(tinymce.explode(ed.settings.content_css) || []); + tinymce.each(css, function(u) { + cssHTML += ''; + }); + + // Write content into iframe + doc.open(); + doc.write('' + cssHTML + ''); + doc.close(); + + doc.designMode = 'on'; + this.resize(); + + window.setTimeout(function() { + ifr.contentWindow.focus(); + }, 10); + }, + + insert : function() { + var h = document.getElementById('iframe').contentWindow.document.body.innerHTML; + + tinyMCEPopup.editor.execCommand('mceInsertClipboardContent', false, {content : h, wordContent : true}); + tinyMCEPopup.close(); + }, + + resize : function() { + var vp = tinyMCEPopup.dom.getViewPort(window), el; + + el = document.getElementById('iframe'); + + if (el) { + el.style.width = (vp.w - 20) + 'px'; + el.style.height = (vp.h - 90) + 'px'; + } + } +}; + +tinyMCEPopup.onInit.add(PasteWordDialog.init, PasteWordDialog); diff --git a/askbot/skins/default/media/js/tinymce/plugins/paste/langs/en_dlg.js b/askbot/skins/default/media/js/tinymce/plugins/paste/langs/en_dlg.js new file mode 100644 index 00000000..bc74daf8 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/paste/langs/en_dlg.js @@ -0,0 +1 @@ +tinyMCE.addI18n('en.paste_dlg',{"word_title":"Use Ctrl+V on your keyboard to paste the text into the window.","text_linebreaks":"Keep Linebreaks","text_title":"Use Ctrl+V on your keyboard to paste the text into the window."}); \ No newline at end of file diff --git a/askbot/skins/default/media/js/tinymce/plugins/paste/pastetext.htm b/askbot/skins/default/media/js/tinymce/plugins/paste/pastetext.htm new file mode 100644 index 00000000..b6559454 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/paste/pastetext.htm @@ -0,0 +1,27 @@ + + + {#paste.paste_text_desc} + + + + +
          +
          {#paste.paste_text_desc}
          + +
          + +
          + +
          + +
          {#paste_dlg.text_title}
          + + + +
          + + +
          +
          + + \ No newline at end of file diff --git a/askbot/skins/default/media/js/tinymce/plugins/paste/pasteword.htm b/askbot/skins/default/media/js/tinymce/plugins/paste/pasteword.htm new file mode 100644 index 00000000..0f6bb412 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/paste/pasteword.htm @@ -0,0 +1,21 @@ + + + {#paste.paste_word_desc} + + + + +
          +
          {#paste.paste_word_desc}
          + +
          {#paste_dlg.word_title}
          + +
          + +
          + + +
          +
          + + diff --git a/askbot/skins/default/media/js/tinymce/plugins/preview/editor_plugin.js b/askbot/skins/default/media/js/tinymce/plugins/preview/editor_plugin.js new file mode 100644 index 00000000..507909c5 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/preview/editor_plugin.js @@ -0,0 +1 @@ +(function(){tinymce.create("tinymce.plugins.Preview",{init:function(a,b){var d=this,c=tinymce.explode(a.settings.content_css);d.editor=a;tinymce.each(c,function(f,e){c[e]=a.documentBaseURI.toAbsolute(f)});a.addCommand("mcePreview",function(){a.windowManager.open({file:a.getParam("plugin_preview_pageurl",b+"/preview.html"),width:parseInt(a.getParam("plugin_preview_width","550")),height:parseInt(a.getParam("plugin_preview_height","600")),resizable:"yes",scrollbars:"yes",popup_css:c?c.join(","):a.baseURI.toAbsolute("themes/"+a.settings.theme+"/skins/"+a.settings.skin+"/content.css"),inline:a.getParam("plugin_preview_inline",1)},{base:a.documentBaseURI.getURI()})});a.addButton("preview",{title:"preview.preview_desc",cmd:"mcePreview"})},getInfo:function(){return{longname:"Preview",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/preview",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("preview",tinymce.plugins.Preview)})(); \ No newline at end of file diff --git a/askbot/skins/default/media/js/tinymce/plugins/preview/editor_plugin_src.js b/askbot/skins/default/media/js/tinymce/plugins/preview/editor_plugin_src.js new file mode 100644 index 00000000..80f00f0d --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/preview/editor_plugin_src.js @@ -0,0 +1,53 @@ +/** + * editor_plugin_src.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +(function() { + tinymce.create('tinymce.plugins.Preview', { + init : function(ed, url) { + var t = this, css = tinymce.explode(ed.settings.content_css); + + t.editor = ed; + + // Force absolute CSS urls + tinymce.each(css, function(u, k) { + css[k] = ed.documentBaseURI.toAbsolute(u); + }); + + ed.addCommand('mcePreview', function() { + ed.windowManager.open({ + file : ed.getParam("plugin_preview_pageurl", url + "/preview.html"), + width : parseInt(ed.getParam("plugin_preview_width", "550")), + height : parseInt(ed.getParam("plugin_preview_height", "600")), + resizable : "yes", + scrollbars : "yes", + popup_css : css ? css.join(',') : ed.baseURI.toAbsolute("themes/" + ed.settings.theme + "/skins/" + ed.settings.skin + "/content.css"), + inline : ed.getParam("plugin_preview_inline", 1) + }, { + base : ed.documentBaseURI.getURI() + }); + }); + + ed.addButton('preview', {title : 'preview.preview_desc', cmd : 'mcePreview'}); + }, + + getInfo : function() { + return { + longname : 'Preview', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/preview', + version : tinymce.majorVersion + "." + tinymce.minorVersion + }; + } + }); + + // Register plugin + tinymce.PluginManager.add('preview', tinymce.plugins.Preview); +})(); \ No newline at end of file diff --git a/askbot/skins/default/media/js/tinymce/plugins/preview/example.html b/askbot/skins/default/media/js/tinymce/plugins/preview/example.html new file mode 100644 index 00000000..b2c3d90c --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/preview/example.html @@ -0,0 +1,28 @@ + + + + + +Example of a custom preview page + + + +Editor contents:
          +
          + +
          + + + diff --git a/askbot/skins/default/media/js/tinymce/plugins/preview/jscripts/embed.js b/askbot/skins/default/media/js/tinymce/plugins/preview/jscripts/embed.js new file mode 100644 index 00000000..f8dc8105 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/preview/jscripts/embed.js @@ -0,0 +1,73 @@ +/** + * This script contains embed functions for common plugins. This scripts are complety free to use for any purpose. + */ + +function writeFlash(p) { + writeEmbed( + 'D27CDB6E-AE6D-11cf-96B8-444553540000', + 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0', + 'application/x-shockwave-flash', + p + ); +} + +function writeShockWave(p) { + writeEmbed( + '166B1BCA-3F9C-11CF-8075-444553540000', + 'http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0', + 'application/x-director', + p + ); +} + +function writeQuickTime(p) { + writeEmbed( + '02BF25D5-8C17-4B23-BC80-D3488ABDDC6B', + 'http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0', + 'video/quicktime', + p + ); +} + +function writeRealMedia(p) { + writeEmbed( + 'CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA', + 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0', + 'audio/x-pn-realaudio-plugin', + p + ); +} + +function writeWindowsMedia(p) { + p.url = p.src; + writeEmbed( + '6BF52A52-394A-11D3-B153-00C04F79FAA6', + 'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701', + 'application/x-mplayer2', + p + ); +} + +function writeEmbed(cls, cb, mt, p) { + var h = '', n; + + h += ''; + + h += ' + + + + + +{#preview.preview_desc} + + + + + diff --git a/askbot/skins/default/media/js/tinymce/plugins/print/editor_plugin.js b/askbot/skins/default/media/js/tinymce/plugins/print/editor_plugin.js new file mode 100644 index 00000000..b5b3a55e --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/print/editor_plugin.js @@ -0,0 +1 @@ +(function(){tinymce.create("tinymce.plugins.Print",{init:function(a,b){a.addCommand("mcePrint",function(){a.getWin().print()});a.addButton("print",{title:"print.print_desc",cmd:"mcePrint"})},getInfo:function(){return{longname:"Print",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/print",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("print",tinymce.plugins.Print)})(); \ No newline at end of file diff --git a/askbot/skins/default/media/js/tinymce/plugins/print/editor_plugin_src.js b/askbot/skins/default/media/js/tinymce/plugins/print/editor_plugin_src.js new file mode 100644 index 00000000..3933fe65 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/print/editor_plugin_src.js @@ -0,0 +1,34 @@ +/** + * editor_plugin_src.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +(function() { + tinymce.create('tinymce.plugins.Print', { + init : function(ed, url) { + ed.addCommand('mcePrint', function() { + ed.getWin().print(); + }); + + ed.addButton('print', {title : 'print.print_desc', cmd : 'mcePrint'}); + }, + + getInfo : function() { + return { + longname : 'Print', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/print', + version : tinymce.majorVersion + "." + tinymce.minorVersion + }; + } + }); + + // Register plugin + tinymce.PluginManager.add('print', tinymce.plugins.Print); +})(); diff --git a/askbot/skins/default/media/js/tinymce/plugins/save/editor_plugin.js b/askbot/skins/default/media/js/tinymce/plugins/save/editor_plugin.js new file mode 100644 index 00000000..8e939966 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/save/editor_plugin.js @@ -0,0 +1 @@ +(function(){tinymce.create("tinymce.plugins.Save",{init:function(a,b){var c=this;c.editor=a;a.addCommand("mceSave",c._save,c);a.addCommand("mceCancel",c._cancel,c);a.addButton("save",{title:"save.save_desc",cmd:"mceSave"});a.addButton("cancel",{title:"save.cancel_desc",cmd:"mceCancel"});a.onNodeChange.add(c._nodeChange,c);a.addShortcut("ctrl+s",a.getLang("save.save_desc"),"mceSave")},getInfo:function(){return{longname:"Save",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/save",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_nodeChange:function(b,a,c){var b=this.editor;if(b.getParam("save_enablewhendirty")){a.setDisabled("save",!b.isDirty());a.setDisabled("cancel",!b.isDirty())}},_save:function(){var c=this.editor,a,e,d,b;a=tinymce.DOM.get(c.id).form||tinymce.DOM.getParent(c.id,"form");if(c.getParam("save_enablewhendirty")&&!c.isDirty()){return}tinyMCE.triggerSave();if(e=c.getParam("save_onsavecallback")){if(c.execCallback("save_onsavecallback",c)){c.startContent=tinymce.trim(c.getContent({format:"raw"}));c.nodeChanged()}return}if(a){c.isNotDirty=true;if(a.onsubmit==null||a.onsubmit()!=false){a.submit()}c.nodeChanged()}else{c.windowManager.alert("Error: No form element found.")}},_cancel:function(){var a=this.editor,c,b=tinymce.trim(a.startContent);if(c=a.getParam("save_oncancelcallback")){a.execCallback("save_oncancelcallback",a);return}a.setContent(b);a.undoManager.clear();a.nodeChanged()}});tinymce.PluginManager.add("save",tinymce.plugins.Save)})(); \ No newline at end of file diff --git a/askbot/skins/default/media/js/tinymce/plugins/save/editor_plugin_src.js b/askbot/skins/default/media/js/tinymce/plugins/save/editor_plugin_src.js new file mode 100644 index 00000000..f5a3de8f --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/save/editor_plugin_src.js @@ -0,0 +1,101 @@ +/** + * editor_plugin_src.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +(function() { + tinymce.create('tinymce.plugins.Save', { + init : function(ed, url) { + var t = this; + + t.editor = ed; + + // Register commands + ed.addCommand('mceSave', t._save, t); + ed.addCommand('mceCancel', t._cancel, t); + + // Register buttons + ed.addButton('save', {title : 'save.save_desc', cmd : 'mceSave'}); + ed.addButton('cancel', {title : 'save.cancel_desc', cmd : 'mceCancel'}); + + ed.onNodeChange.add(t._nodeChange, t); + ed.addShortcut('ctrl+s', ed.getLang('save.save_desc'), 'mceSave'); + }, + + getInfo : function() { + return { + longname : 'Save', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/save', + version : tinymce.majorVersion + "." + tinymce.minorVersion + }; + }, + + // Private methods + + _nodeChange : function(ed, cm, n) { + var ed = this.editor; + + if (ed.getParam('save_enablewhendirty')) { + cm.setDisabled('save', !ed.isDirty()); + cm.setDisabled('cancel', !ed.isDirty()); + } + }, + + // Private methods + + _save : function() { + var ed = this.editor, formObj, os, i, elementId; + + formObj = tinymce.DOM.get(ed.id).form || tinymce.DOM.getParent(ed.id, 'form'); + + if (ed.getParam("save_enablewhendirty") && !ed.isDirty()) + return; + + tinyMCE.triggerSave(); + + // Use callback instead + if (os = ed.getParam("save_onsavecallback")) { + if (ed.execCallback('save_onsavecallback', ed)) { + ed.startContent = tinymce.trim(ed.getContent({format : 'raw'})); + ed.nodeChanged(); + } + + return; + } + + if (formObj) { + ed.isNotDirty = true; + + if (formObj.onsubmit == null || formObj.onsubmit() != false) + formObj.submit(); + + ed.nodeChanged(); + } else + ed.windowManager.alert("Error: No form element found."); + }, + + _cancel : function() { + var ed = this.editor, os, h = tinymce.trim(ed.startContent); + + // Use callback instead + if (os = ed.getParam("save_oncancelcallback")) { + ed.execCallback('save_oncancelcallback', ed); + return; + } + + ed.setContent(h); + ed.undoManager.clear(); + ed.nodeChanged(); + } + }); + + // Register plugin + tinymce.PluginManager.add('save', tinymce.plugins.Save); +})(); \ No newline at end of file diff --git a/askbot/skins/default/media/js/tinymce/plugins/searchreplace/css/searchreplace.css b/askbot/skins/default/media/js/tinymce/plugins/searchreplace/css/searchreplace.css new file mode 100644 index 00000000..ecdf58c7 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/searchreplace/css/searchreplace.css @@ -0,0 +1,6 @@ +.panel_wrapper {height:85px;} +.panel_wrapper div.current {height:85px;} + +/* IE */ +* html .panel_wrapper {height:100px;} +* html .panel_wrapper div.current {height:100px;} diff --git a/askbot/skins/default/media/js/tinymce/plugins/searchreplace/editor_plugin.js b/askbot/skins/default/media/js/tinymce/plugins/searchreplace/editor_plugin.js new file mode 100644 index 00000000..165bc12d --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/searchreplace/editor_plugin.js @@ -0,0 +1 @@ +(function(){tinymce.create("tinymce.plugins.SearchReplacePlugin",{init:function(a,c){function b(d){window.focus();a.windowManager.open({file:c+"/searchreplace.htm",width:420+parseInt(a.getLang("searchreplace.delta_width",0)),height:170+parseInt(a.getLang("searchreplace.delta_height",0)),inline:1,auto_focus:0},{mode:d,search_string:a.selection.getContent({format:"text"}),plugin_url:c})}a.addCommand("mceSearch",function(){b("search")});a.addCommand("mceReplace",function(){b("replace")});a.addButton("search",{title:"searchreplace.search_desc",cmd:"mceSearch"});a.addButton("replace",{title:"searchreplace.replace_desc",cmd:"mceReplace"});a.addShortcut("ctrl+f","searchreplace.search_desc","mceSearch")},getInfo:function(){return{longname:"Search/Replace",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/searchreplace",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("searchreplace",tinymce.plugins.SearchReplacePlugin)})(); \ No newline at end of file diff --git a/askbot/skins/default/media/js/tinymce/plugins/searchreplace/editor_plugin_src.js b/askbot/skins/default/media/js/tinymce/plugins/searchreplace/editor_plugin_src.js new file mode 100644 index 00000000..4c87e8fa --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/searchreplace/editor_plugin_src.js @@ -0,0 +1,61 @@ +/** + * editor_plugin_src.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +(function() { + tinymce.create('tinymce.plugins.SearchReplacePlugin', { + init : function(ed, url) { + function open(m) { + // Keep IE from writing out the f/r character to the editor + // instance while initializing a new dialog. See: #3131190 + window.focus(); + + ed.windowManager.open({ + file : url + '/searchreplace.htm', + width : 420 + parseInt(ed.getLang('searchreplace.delta_width', 0)), + height : 170 + parseInt(ed.getLang('searchreplace.delta_height', 0)), + inline : 1, + auto_focus : 0 + }, { + mode : m, + search_string : ed.selection.getContent({format : 'text'}), + plugin_url : url + }); + }; + + // Register commands + ed.addCommand('mceSearch', function() { + open('search'); + }); + + ed.addCommand('mceReplace', function() { + open('replace'); + }); + + // Register buttons + ed.addButton('search', {title : 'searchreplace.search_desc', cmd : 'mceSearch'}); + ed.addButton('replace', {title : 'searchreplace.replace_desc', cmd : 'mceReplace'}); + + ed.addShortcut('ctrl+f', 'searchreplace.search_desc', 'mceSearch'); + }, + + getInfo : function() { + return { + longname : 'Search/Replace', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/searchreplace', + version : tinymce.majorVersion + "." + tinymce.minorVersion + }; + } + }); + + // Register plugin + tinymce.PluginManager.add('searchreplace', tinymce.plugins.SearchReplacePlugin); +})(); \ No newline at end of file diff --git a/askbot/skins/default/media/js/tinymce/plugins/searchreplace/js/searchreplace.js b/askbot/skins/default/media/js/tinymce/plugins/searchreplace/js/searchreplace.js new file mode 100644 index 00000000..80284b9f --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/searchreplace/js/searchreplace.js @@ -0,0 +1,142 @@ +tinyMCEPopup.requireLangPack(); + +var SearchReplaceDialog = { + init : function(ed) { + var t = this, f = document.forms[0], m = tinyMCEPopup.getWindowArg("mode"); + + t.switchMode(m); + + f[m + '_panel_searchstring'].value = tinyMCEPopup.getWindowArg("search_string"); + + // Focus input field + f[m + '_panel_searchstring'].focus(); + + mcTabs.onChange.add(function(tab_id, panel_id) { + t.switchMode(tab_id.substring(0, tab_id.indexOf('_'))); + }); + }, + + switchMode : function(m) { + var f, lm = this.lastMode; + + if (lm != m) { + f = document.forms[0]; + + if (lm) { + f[m + '_panel_searchstring'].value = f[lm + '_panel_searchstring'].value; + f[m + '_panel_backwardsu'].checked = f[lm + '_panel_backwardsu'].checked; + f[m + '_panel_backwardsd'].checked = f[lm + '_panel_backwardsd'].checked; + f[m + '_panel_casesensitivebox'].checked = f[lm + '_panel_casesensitivebox'].checked; + } + + mcTabs.displayTab(m + '_tab', m + '_panel'); + document.getElementById("replaceBtn").style.display = (m == "replace") ? "inline" : "none"; + document.getElementById("replaceAllBtn").style.display = (m == "replace") ? "inline" : "none"; + this.lastMode = m; + } + }, + + searchNext : function(a) { + var ed = tinyMCEPopup.editor, se = ed.selection, r = se.getRng(), f, m = this.lastMode, s, b, fl = 0, w = ed.getWin(), wm = ed.windowManager, fo = 0; + + // Get input + f = document.forms[0]; + s = f[m + '_panel_searchstring'].value; + b = f[m + '_panel_backwardsu'].checked; + ca = f[m + '_panel_casesensitivebox'].checked; + rs = f['replace_panel_replacestring'].value; + + if (tinymce.isIE) { + r = ed.getDoc().selection.createRange(); + } + + if (s == '') + return; + + function fix() { + // Correct Firefox graphics glitches + // TODO: Verify if this is actually needed any more, maybe it was for very old FF versions? + r = se.getRng().cloneRange(); + ed.getDoc().execCommand('SelectAll', false, null); + se.setRng(r); + }; + + function replace() { + ed.selection.setContent(rs); // Needs to be duplicated due to selection bug in IE + }; + + // IE flags + if (ca) + fl = fl | 4; + + switch (a) { + case 'all': + // Move caret to beginning of text + ed.execCommand('SelectAll'); + ed.selection.collapse(true); + + if (tinymce.isIE) { + ed.focus(); + r = ed.getDoc().selection.createRange(); + + while (r.findText(s, b ? -1 : 1, fl)) { + r.scrollIntoView(); + r.select(); + replace(); + fo = 1; + + if (b) { + r.moveEnd("character", -(rs.length)); // Otherwise will loop forever + } + } + + tinyMCEPopup.storeSelection(); + } else { + while (w.find(s, ca, b, false, false, false, false)) { + replace(); + fo = 1; + } + } + + if (fo) + tinyMCEPopup.alert(ed.getLang('searchreplace_dlg.allreplaced')); + else + tinyMCEPopup.alert(ed.getLang('searchreplace_dlg.notfound')); + + return; + + case 'current': + if (!ed.selection.isCollapsed()) + replace(); + + break; + } + + se.collapse(b); + r = se.getRng(); + + // Whats the point + if (!s) + return; + + if (tinymce.isIE) { + ed.focus(); + r = ed.getDoc().selection.createRange(); + + if (r.findText(s, b ? -1 : 1, fl)) { + r.scrollIntoView(); + r.select(); + } else + tinyMCEPopup.alert(ed.getLang('searchreplace_dlg.notfound')); + + tinyMCEPopup.storeSelection(); + } else { + if (!w.find(s, ca, b, false, false, false, false)) + tinyMCEPopup.alert(ed.getLang('searchreplace_dlg.notfound')); + else + fix(); + } + } +}; + +tinyMCEPopup.onInit.add(SearchReplaceDialog.init, SearchReplaceDialog); diff --git a/askbot/skins/default/media/js/tinymce/plugins/searchreplace/langs/en_dlg.js b/askbot/skins/default/media/js/tinymce/plugins/searchreplace/langs/en_dlg.js new file mode 100644 index 00000000..8a659009 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/searchreplace/langs/en_dlg.js @@ -0,0 +1 @@ +tinyMCE.addI18n('en.searchreplace_dlg',{findwhat:"Find What",replacewith:"Replace with",direction:"Direction",up:"Up",down:"Down",mcase:"Match Case",findnext:"Find Next",allreplaced:"All occurrences of the search string were replaced.","searchnext_desc":"Find Again",notfound:"The search has been completed. The search string could not be found.","search_title":"Find","replace_title":"Find/Replace",replaceall:"Replace All",replace:"Replace"}); \ No newline at end of file diff --git a/askbot/skins/default/media/js/tinymce/plugins/searchreplace/searchreplace.htm b/askbot/skins/default/media/js/tinymce/plugins/searchreplace/searchreplace.htm new file mode 100644 index 00000000..2443a918 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/searchreplace/searchreplace.htm @@ -0,0 +1,100 @@ + + + + {#searchreplace_dlg.replace_title} + + + + + + + + +
          + + +
          +
          + + + + + + + + + + + +
          + + + + + + + + + +
          + + + + + +
          +
          +
          + +
          + + + + + + + + + + + + + + + +
          + + + + + + + + + +
          + + + + + +
          +
          +
          + +
          + +
          + + + + +
          +
          + + diff --git a/askbot/skins/default/media/js/tinymce/plugins/spellchecker/css/content.css b/askbot/skins/default/media/js/tinymce/plugins/spellchecker/css/content.css new file mode 100644 index 00000000..24efa021 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/spellchecker/css/content.css @@ -0,0 +1 @@ +.mceItemHiddenSpellWord {background:url(../img/wline.gif) repeat-x bottom left; cursor:default;} diff --git a/askbot/skins/default/media/js/tinymce/plugins/spellchecker/editor_plugin.js b/askbot/skins/default/media/js/tinymce/plugins/spellchecker/editor_plugin.js new file mode 100644 index 00000000..48549c92 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/spellchecker/editor_plugin.js @@ -0,0 +1 @@ +(function(){var a=tinymce.util.JSONRequest,c=tinymce.each,b=tinymce.DOM;tinymce.create("tinymce.plugins.SpellcheckerPlugin",{getInfo:function(){return{longname:"Spellchecker",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/spellchecker",version:tinymce.majorVersion+"."+tinymce.minorVersion}},init:function(e,f){var g=this,d;g.url=f;g.editor=e;g.rpcUrl=e.getParam("spellchecker_rpc_url","{backend}");if(g.rpcUrl=="{backend}"){if(tinymce.isIE){return}g.hasSupport=true;e.onContextMenu.addToTop(function(h,i){if(g.active){return false}})}e.addCommand("mceSpellCheck",function(){if(g.rpcUrl=="{backend}"){g.editor.getBody().spellcheck=g.active=!g.active;return}if(!g.active){e.setProgressState(1);g._sendRPC("checkWords",[g.selectedLang,g._getWords()],function(h){if(h.length>0){g.active=1;g._markWords(h);e.setProgressState(0);e.nodeChanged()}else{e.setProgressState(0);if(e.getParam("spellchecker_report_no_misspellings",true)){e.windowManager.alert("spellchecker.no_mpell")}}})}else{g._done()}});if(e.settings.content_css!==false){e.contentCSS.push(f+"/css/content.css")}e.onClick.add(g._showMenu,g);e.onContextMenu.add(g._showMenu,g);e.onBeforeGetContent.add(function(){if(g.active){g._removeWords()}});e.onNodeChange.add(function(i,h){h.setActive("spellchecker",g.active)});e.onSetContent.add(function(){g._done()});e.onBeforeGetContent.add(function(){g._done()});e.onBeforeExecCommand.add(function(h,i){if(i=="mceFullScreen"){g._done()}});g.languages={};c(e.getParam("spellchecker_languages","+English=en,Danish=da,Dutch=nl,Finnish=fi,French=fr,German=de,Italian=it,Polish=pl,Portuguese=pt,Spanish=es,Swedish=sv","hash"),function(i,h){if(h.indexOf("+")===0){h=h.substring(1);g.selectedLang=i}g.languages[h]=i})},createControl:function(h,d){var f=this,g,e=f.editor;if(h=="spellchecker"){if(f.rpcUrl=="{backend}"){if(f.hasSupport){g=d.createButton(h,{title:"spellchecker.desc",cmd:"mceSpellCheck",scope:f})}return g}g=d.createSplitButton(h,{title:"spellchecker.desc",cmd:"mceSpellCheck",scope:f});g.onRenderMenu.add(function(j,i){i.add({title:"spellchecker.langs","class":"mceMenuItemTitle"}).setDisabled(1);c(f.languages,function(n,m){var p={icon:1},l;p.onclick=function(){if(n==f.selectedLang){return}l.setSelected(1);f.selectedItem.setSelected(0);f.selectedItem=l;f.selectedLang=n};p.title=m;l=i.add(p);l.setSelected(n==f.selectedLang);if(n==f.selectedLang){f.selectedItem=l}})});return g}},_walk:function(i,g){var h=this.editor.getDoc(),e;if(h.createTreeWalker){e=h.createTreeWalker(i,NodeFilter.SHOW_TEXT,null,false);while((i=e.nextNode())!=null){g.call(this,i)}}else{tinymce.walk(i,g,"childNodes")}},_getSeparators:function(){var e="",d,f=this.editor.getParam("spellchecker_word_separator_chars",'\\s!"#$%&()*+,-./:;<=>?@[]^_{|}§©«®±¶·¸»¼½¾¿×÷¤\u201d\u201c');for(d=0;d$2");while((s=p.indexOf(""))!=-1){o=p.substring(0,s);if(o.length){r=j.createTextNode(g.decode(o));q.appendChild(r)}p=p.substring(s+10);s=p.indexOf("");o=p.substring(0,s);p=p.substring(s+11);q.appendChild(g.create("span",{"class":"mceItemHiddenSpellWord"},o))}if(p.length){r=j.createTextNode(g.decode(p));q.appendChild(r)}}else{q.innerHTML=p.replace(f,'$1$2')}g.replace(q,t)}});i.setRng(d)},_showMenu:function(h,j){var i=this,h=i.editor,d=i._menu,l,k=h.dom,g=k.getViewPort(h.getWin()),f=j.target;j=0;if(!d){d=h.controlManager.createDropMenu("spellcheckermenu",{"class":"mceNoIcons"});i._menu=d}if(k.hasClass(f,"mceItemHiddenSpellWord")){d.removeAll();d.add({title:"spellchecker.wait","class":"mceMenuItemTitle"}).setDisabled(1);i._sendRPC("getSuggestions",[i.selectedLang,k.decode(f.innerHTML)],function(m){var e;d.removeAll();if(m.length>0){d.add({title:"spellchecker.sug","class":"mceMenuItemTitle"}).setDisabled(1);c(m,function(n){d.add({title:n,onclick:function(){k.replace(h.getDoc().createTextNode(n),f);i._checkDone()}})});d.addSeparator()}else{d.add({title:"spellchecker.no_sug","class":"mceMenuItemTitle"}).setDisabled(1)}if(h.getParam("show_ignore_words",true)){e=i.editor.getParam("spellchecker_enable_ignore_rpc","");d.add({title:"spellchecker.ignore_word",onclick:function(){var n=f.innerHTML;k.remove(f,1);i._checkDone();if(e){h.setProgressState(1);i._sendRPC("ignoreWord",[i.selectedLang,n],function(o){h.setProgressState(0)})}}});d.add({title:"spellchecker.ignore_words",onclick:function(){var n=f.innerHTML;i._removeWords(k.decode(n));i._checkDone();if(e){h.setProgressState(1);i._sendRPC("ignoreWords",[i.selectedLang,n],function(o){h.setProgressState(0)})}}})}if(i.editor.getParam("spellchecker_enable_learn_rpc")){d.add({title:"spellchecker.learn_word",onclick:function(){var n=f.innerHTML;k.remove(f,1);i._checkDone();h.setProgressState(1);i._sendRPC("learnWord",[i.selectedLang,n],function(o){h.setProgressState(0)})}})}d.update()});l=b.getPos(h.getContentAreaContainer());d.settings.offset_x=l.x;d.settings.offset_y=l.y;h.selection.select(f);l=k.getPos(f);d.showMenu(l.x,l.y+f.offsetHeight-g.y);return tinymce.dom.Event.cancel(j)}else{d.hideMenu()}},_checkDone:function(){var e=this,d=e.editor,g=d.dom,f;c(g.select("span"),function(h){if(h&&g.hasClass(h,"mceItemHiddenSpellWord")){f=true;return false}});if(!f){e._done()}},_done:function(){var d=this,e=d.active;if(d.active){d.active=0;d._removeWords();if(d._menu){d._menu.hideMenu()}if(e){d.editor.nodeChanged()}}},_sendRPC:function(e,g,d){var f=this;a.sendRPC({url:f.rpcUrl,method:e,params:g,success:d,error:function(i,h){f.editor.setProgressState(0);f.editor.windowManager.alert(i.errstr||("Error response: "+h.responseText))}})}});tinymce.PluginManager.add("spellchecker",tinymce.plugins.SpellcheckerPlugin)})(); \ No newline at end of file diff --git a/askbot/skins/default/media/js/tinymce/plugins/spellchecker/editor_plugin_src.js b/askbot/skins/default/media/js/tinymce/plugins/spellchecker/editor_plugin_src.js new file mode 100644 index 00000000..86fdfceb --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/spellchecker/editor_plugin_src.js @@ -0,0 +1,436 @@ +/** + * editor_plugin_src.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +(function() { + var JSONRequest = tinymce.util.JSONRequest, each = tinymce.each, DOM = tinymce.DOM; + + tinymce.create('tinymce.plugins.SpellcheckerPlugin', { + getInfo : function() { + return { + longname : 'Spellchecker', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/spellchecker', + version : tinymce.majorVersion + "." + tinymce.minorVersion + }; + }, + + init : function(ed, url) { + var t = this, cm; + + t.url = url; + t.editor = ed; + t.rpcUrl = ed.getParam("spellchecker_rpc_url", "{backend}"); + + if (t.rpcUrl == '{backend}') { + // Sniff if the browser supports native spellchecking (Don't know of a better way) + if (tinymce.isIE) + return; + + t.hasSupport = true; + + // Disable the context menu when spellchecking is active + ed.onContextMenu.addToTop(function(ed, e) { + if (t.active) + return false; + }); + } + + // Register commands + ed.addCommand('mceSpellCheck', function() { + if (t.rpcUrl == '{backend}') { + // Enable/disable native spellchecker + t.editor.getBody().spellcheck = t.active = !t.active; + return; + } + + if (!t.active) { + ed.setProgressState(1); + t._sendRPC('checkWords', [t.selectedLang, t._getWords()], function(r) { + if (r.length > 0) { + t.active = 1; + t._markWords(r); + ed.setProgressState(0); + ed.nodeChanged(); + } else { + ed.setProgressState(0); + + if (ed.getParam('spellchecker_report_no_misspellings', true)) + ed.windowManager.alert('spellchecker.no_mpell'); + } + }); + } else + t._done(); + }); + + if (ed.settings.content_css !== false) + ed.contentCSS.push(url + '/css/content.css'); + + ed.onClick.add(t._showMenu, t); + ed.onContextMenu.add(t._showMenu, t); + ed.onBeforeGetContent.add(function() { + if (t.active) + t._removeWords(); + }); + + ed.onNodeChange.add(function(ed, cm) { + cm.setActive('spellchecker', t.active); + }); + + ed.onSetContent.add(function() { + t._done(); + }); + + ed.onBeforeGetContent.add(function() { + t._done(); + }); + + ed.onBeforeExecCommand.add(function(ed, cmd) { + if (cmd == 'mceFullScreen') + t._done(); + }); + + // Find selected language + t.languages = {}; + each(ed.getParam('spellchecker_languages', '+English=en,Danish=da,Dutch=nl,Finnish=fi,French=fr,German=de,Italian=it,Polish=pl,Portuguese=pt,Spanish=es,Swedish=sv', 'hash'), function(v, k) { + if (k.indexOf('+') === 0) { + k = k.substring(1); + t.selectedLang = v; + } + + t.languages[k] = v; + }); + }, + + createControl : function(n, cm) { + var t = this, c, ed = t.editor; + + if (n == 'spellchecker') { + // Use basic button if we use the native spellchecker + if (t.rpcUrl == '{backend}') { + // Create simple toggle button if we have native support + if (t.hasSupport) + c = cm.createButton(n, {title : 'spellchecker.desc', cmd : 'mceSpellCheck', scope : t}); + + return c; + } + + c = cm.createSplitButton(n, {title : 'spellchecker.desc', cmd : 'mceSpellCheck', scope : t}); + + c.onRenderMenu.add(function(c, m) { + m.add({title : 'spellchecker.langs', 'class' : 'mceMenuItemTitle'}).setDisabled(1); + each(t.languages, function(v, k) { + var o = {icon : 1}, mi; + + o.onclick = function() { + if (v == t.selectedLang) { + return; + } + mi.setSelected(1); + t.selectedItem.setSelected(0); + t.selectedItem = mi; + t.selectedLang = v; + }; + + o.title = k; + mi = m.add(o); + mi.setSelected(v == t.selectedLang); + + if (v == t.selectedLang) + t.selectedItem = mi; + }) + }); + + return c; + } + }, + + // Internal functions + + _walk : function(n, f) { + var d = this.editor.getDoc(), w; + + if (d.createTreeWalker) { + w = d.createTreeWalker(n, NodeFilter.SHOW_TEXT, null, false); + + while ((n = w.nextNode()) != null) + f.call(this, n); + } else + tinymce.walk(n, f, 'childNodes'); + }, + + _getSeparators : function() { + var re = '', i, str = this.editor.getParam('spellchecker_word_separator_chars', '\\s!"#$%&()*+,-./:;<=>?@[\]^_{|}§©«®±¶·¸»¼½¾¿×÷¤\u201d\u201c'); + + // Build word separator regexp + for (i=0; i elements content is broken after spellchecking. + // Bug #1408: Preceding whitespace characters are removed + // @TODO: I'm not sure that both are still issues on IE9. + if (tinymce.isIE) { + // Enclose mispelled words with temporal tag + v = v.replace(rx, '$1$2'); + // Loop over the content finding mispelled words + while ((pos = v.indexOf('')) != -1) { + // Add text node for the content before the word + txt = v.substring(0, pos); + if (txt.length) { + node = doc.createTextNode(dom.decode(txt)); + elem.appendChild(node); + } + v = v.substring(pos+10); + pos = v.indexOf(''); + txt = v.substring(0, pos); + v = v.substring(pos+11); + // Add span element for the word + elem.appendChild(dom.create('span', {'class' : 'mceItemHiddenSpellWord'}, txt)); + } + // Add text node for the rest of the content + if (v.length) { + node = doc.createTextNode(dom.decode(v)); + elem.appendChild(node); + } + } else { + // Other browsers preserve whitespace characters on innerHTML usage + elem.innerHTML = v.replace(rx, '$1$2'); + } + + // Finally, replace the node with the container + dom.replace(elem, n); + } + }); + + se.setRng(r); + }, + + _showMenu : function(ed, e) { + var t = this, ed = t.editor, m = t._menu, p1, dom = ed.dom, vp = dom.getViewPort(ed.getWin()), wordSpan = e.target; + + e = 0; // Fixes IE memory leak + + if (!m) { + m = ed.controlManager.createDropMenu('spellcheckermenu', {'class' : 'mceNoIcons'}); + t._menu = m; + } + + if (dom.hasClass(wordSpan, 'mceItemHiddenSpellWord')) { + m.removeAll(); + m.add({title : 'spellchecker.wait', 'class' : 'mceMenuItemTitle'}).setDisabled(1); + + t._sendRPC('getSuggestions', [t.selectedLang, dom.decode(wordSpan.innerHTML)], function(r) { + var ignoreRpc; + + m.removeAll(); + + if (r.length > 0) { + m.add({title : 'spellchecker.sug', 'class' : 'mceMenuItemTitle'}).setDisabled(1); + each(r, function(v) { + m.add({title : v, onclick : function() { + dom.replace(ed.getDoc().createTextNode(v), wordSpan); + t._checkDone(); + }}); + }); + + m.addSeparator(); + } else + m.add({title : 'spellchecker.no_sug', 'class' : 'mceMenuItemTitle'}).setDisabled(1); + + if (ed.getParam('show_ignore_words', true)) { + ignoreRpc = t.editor.getParam("spellchecker_enable_ignore_rpc", ''); + m.add({ + title : 'spellchecker.ignore_word', + onclick : function() { + var word = wordSpan.innerHTML; + + dom.remove(wordSpan, 1); + t._checkDone(); + + // tell the server if we need to + if (ignoreRpc) { + ed.setProgressState(1); + t._sendRPC('ignoreWord', [t.selectedLang, word], function(r) { + ed.setProgressState(0); + }); + } + } + }); + + m.add({ + title : 'spellchecker.ignore_words', + onclick : function() { + var word = wordSpan.innerHTML; + + t._removeWords(dom.decode(word)); + t._checkDone(); + + // tell the server if we need to + if (ignoreRpc) { + ed.setProgressState(1); + t._sendRPC('ignoreWords', [t.selectedLang, word], function(r) { + ed.setProgressState(0); + }); + } + } + }); + } + + if (t.editor.getParam("spellchecker_enable_learn_rpc")) { + m.add({ + title : 'spellchecker.learn_word', + onclick : function() { + var word = wordSpan.innerHTML; + + dom.remove(wordSpan, 1); + t._checkDone(); + + ed.setProgressState(1); + t._sendRPC('learnWord', [t.selectedLang, word], function(r) { + ed.setProgressState(0); + }); + } + }); + } + + m.update(); + }); + + p1 = DOM.getPos(ed.getContentAreaContainer()); + m.settings.offset_x = p1.x; + m.settings.offset_y = p1.y; + + ed.selection.select(wordSpan); + p1 = dom.getPos(wordSpan); + m.showMenu(p1.x, p1.y + wordSpan.offsetHeight - vp.y); + + return tinymce.dom.Event.cancel(e); + } else + m.hideMenu(); + }, + + _checkDone : function() { + var t = this, ed = t.editor, dom = ed.dom, o; + + each(dom.select('span'), function(n) { + if (n && dom.hasClass(n, 'mceItemHiddenSpellWord')) { + o = true; + return false; + } + }); + + if (!o) + t._done(); + }, + + _done : function() { + var t = this, la = t.active; + + if (t.active) { + t.active = 0; + t._removeWords(); + + if (t._menu) + t._menu.hideMenu(); + + if (la) + t.editor.nodeChanged(); + } + }, + + _sendRPC : function(m, p, cb) { + var t = this; + + JSONRequest.sendRPC({ + url : t.rpcUrl, + method : m, + params : p, + success : cb, + error : function(e, x) { + t.editor.setProgressState(0); + t.editor.windowManager.alert(e.errstr || ('Error response: ' + x.responseText)); + } + }); + } + }); + + // Register plugin + tinymce.PluginManager.add('spellchecker', tinymce.plugins.SpellcheckerPlugin); +})(); diff --git a/askbot/skins/default/media/js/tinymce/plugins/spellchecker/img/wline.gif b/askbot/skins/default/media/js/tinymce/plugins/spellchecker/img/wline.gif new file mode 100644 index 00000000..7d0a4dbc Binary files /dev/null and b/askbot/skins/default/media/js/tinymce/plugins/spellchecker/img/wline.gif differ diff --git a/askbot/skins/default/media/js/tinymce/plugins/style/css/props.css b/askbot/skins/default/media/js/tinymce/plugins/style/css/props.css new file mode 100644 index 00000000..3b8f0ee7 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/style/css/props.css @@ -0,0 +1,14 @@ +#text_font {width:250px;} +#text_size {width:70px;} +.mceAddSelectValue {background:#DDD;} +select, #block_text_indent, #box_width, #box_height, #box_padding_top, #box_padding_right, #box_padding_bottom, #box_padding_left {width:70px;} +#box_margin_top, #box_margin_right, #box_margin_bottom, #box_margin_left, #positioning_width, #positioning_height, #positioning_zindex {width:70px;} +#positioning_placement_top, #positioning_placement_right, #positioning_placement_bottom, #positioning_placement_left {width:70px;} +#positioning_clip_top, #positioning_clip_right, #positioning_clip_bottom, #positioning_clip_left {width:70px;} +.panel_toggle_insert_span {padding-top:10px;} +.panel_wrapper div.current {padding-top:10px;height:230px;} +.delim {border-left:1px solid gray;} +.tdelim {border-bottom:1px solid gray;} +#block_display {width:145px;} +#list_type {width:115px;} +.disabled {background:#EEE;} diff --git a/askbot/skins/default/media/js/tinymce/plugins/style/editor_plugin.js b/askbot/skins/default/media/js/tinymce/plugins/style/editor_plugin.js new file mode 100644 index 00000000..dda9f928 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/style/editor_plugin.js @@ -0,0 +1 @@ +(function(){tinymce.create("tinymce.plugins.StylePlugin",{init:function(a,b){a.addCommand("mceStyleProps",function(){var c=false;var f=a.selection.getSelectedBlocks();var d=[];if(f.length===1){d.push(a.selection.getNode().style.cssText)}else{tinymce.each(f,function(g){d.push(a.dom.getAttrib(g,"style"))});c=true}a.windowManager.open({file:b+"/props.htm",width:480+parseInt(a.getLang("style.delta_width",0)),height:340+parseInt(a.getLang("style.delta_height",0)),inline:1},{applyStyleToBlocks:c,plugin_url:b,styles:d})});a.addCommand("mceSetElementStyle",function(d,c){if(e=a.selection.getNode()){a.dom.setAttrib(e,"style",c);a.execCommand("mceRepaint")}});a.onNodeChange.add(function(d,c,f){c.setDisabled("styleprops",f.nodeName==="BODY")});a.addButton("styleprops",{title:"style.desc",cmd:"mceStyleProps"})},getInfo:function(){return{longname:"Style",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/style",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("style",tinymce.plugins.StylePlugin)})(); \ No newline at end of file diff --git a/askbot/skins/default/media/js/tinymce/plugins/style/editor_plugin_src.js b/askbot/skins/default/media/js/tinymce/plugins/style/editor_plugin_src.js new file mode 100644 index 00000000..eaa7c771 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/style/editor_plugin_src.js @@ -0,0 +1,71 @@ +/** + * editor_plugin_src.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +(function() { + tinymce.create('tinymce.plugins.StylePlugin', { + init : function(ed, url) { + // Register commands + ed.addCommand('mceStyleProps', function() { + + var applyStyleToBlocks = false; + var blocks = ed.selection.getSelectedBlocks(); + var styles = []; + + if (blocks.length === 1) { + styles.push(ed.selection.getNode().style.cssText); + } + else { + tinymce.each(blocks, function(block) { + styles.push(ed.dom.getAttrib(block, 'style')); + }); + applyStyleToBlocks = true; + } + + ed.windowManager.open({ + file : url + '/props.htm', + width : 480 + parseInt(ed.getLang('style.delta_width', 0)), + height : 340 + parseInt(ed.getLang('style.delta_height', 0)), + inline : 1 + }, { + applyStyleToBlocks : applyStyleToBlocks, + plugin_url : url, + styles : styles + }); + }); + + ed.addCommand('mceSetElementStyle', function(ui, v) { + if (e = ed.selection.getNode()) { + ed.dom.setAttrib(e, 'style', v); + ed.execCommand('mceRepaint'); + } + }); + + ed.onNodeChange.add(function(ed, cm, n) { + cm.setDisabled('styleprops', n.nodeName === 'BODY'); + }); + + // Register buttons + ed.addButton('styleprops', {title : 'style.desc', cmd : 'mceStyleProps'}); + }, + + getInfo : function() { + return { + longname : 'Style', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/style', + version : tinymce.majorVersion + "." + tinymce.minorVersion + }; + } + }); + + // Register plugin + tinymce.PluginManager.add('style', tinymce.plugins.StylePlugin); +})(); diff --git a/askbot/skins/default/media/js/tinymce/plugins/style/js/props.js b/askbot/skins/default/media/js/tinymce/plugins/style/js/props.js new file mode 100644 index 00000000..0a8a8ec3 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/style/js/props.js @@ -0,0 +1,709 @@ +tinyMCEPopup.requireLangPack(); + +var defaultFonts = "" + + "Arial, Helvetica, sans-serif=Arial, Helvetica, sans-serif;" + + "Times New Roman, Times, serif=Times New Roman, Times, serif;" + + "Courier New, Courier, mono=Courier New, Courier, mono;" + + "Times New Roman, Times, serif=Times New Roman, Times, serif;" + + "Georgia, Times New Roman, Times, serif=Georgia, Times New Roman, Times, serif;" + + "Verdana, Arial, Helvetica, sans-serif=Verdana, Arial, Helvetica, sans-serif;" + + "Geneva, Arial, Helvetica, sans-serif=Geneva, Arial, Helvetica, sans-serif"; + +var defaultSizes = "9;10;12;14;16;18;24;xx-small;x-small;small;medium;large;x-large;xx-large;smaller;larger"; +var defaultMeasurement = "+pixels=px;points=pt;inches=in;centimetres=cm;millimetres=mm;picas=pc;ems=em;exs=ex;%"; +var defaultSpacingMeasurement = "pixels=px;points=pt;inches=in;centimetres=cm;millimetres=mm;picas=pc;+ems=em;exs=ex;%"; +var defaultIndentMeasurement = "pixels=px;+points=pt;inches=in;centimetres=cm;millimetres=mm;picas=pc;ems=em;exs=ex;%"; +var defaultWeight = "normal;bold;bolder;lighter;100;200;300;400;500;600;700;800;900"; +var defaultTextStyle = "normal;italic;oblique"; +var defaultVariant = "normal;small-caps"; +var defaultLineHeight = "normal"; +var defaultAttachment = "fixed;scroll"; +var defaultRepeat = "no-repeat;repeat;repeat-x;repeat-y"; +var defaultPosH = "left;center;right"; +var defaultPosV = "top;center;bottom"; +var defaultVAlign = "baseline;sub;super;top;text-top;middle;bottom;text-bottom"; +var defaultDisplay = "inline;block;list-item;run-in;compact;marker;table;inline-table;table-row-group;table-header-group;table-footer-group;table-row;table-column-group;table-column;table-cell;table-caption;none"; +var defaultBorderStyle = "none;solid;dashed;dotted;double;groove;ridge;inset;outset"; +var defaultBorderWidth = "thin;medium;thick"; +var defaultListType = "disc;circle;square;decimal;lower-roman;upper-roman;lower-alpha;upper-alpha;none"; + +function aggregateStyles(allStyles) { + var mergedStyles = {}; + + tinymce.each(allStyles, function(style) { + if (style !== '') { + var parsedStyles = tinyMCEPopup.editor.dom.parseStyle(style); + for (var name in parsedStyles) { + if (parsedStyles.hasOwnProperty(name)) { + if (mergedStyles[name] === undefined) { + mergedStyles[name] = parsedStyles[name]; + } + else if (name === 'text-decoration') { + if (mergedStyles[name].indexOf(parsedStyles[name]) === -1) { + mergedStyles[name] = mergedStyles[name] +' '+ parsedStyles[name]; + } + } + } + } + } + }); + + return mergedStyles; +} + +var applyActionIsInsert; +var existingStyles; + +function init(ed) { + var ce = document.getElementById('container'), h; + + existingStyles = aggregateStyles(tinyMCEPopup.getWindowArg('styles')); + ce.style.cssText = tinyMCEPopup.editor.dom.serializeStyle(existingStyles); + + applyActionIsInsert = ed.getParam("edit_css_style_insert_span", false); + document.getElementById('toggle_insert_span').checked = applyActionIsInsert; + + h = getBrowserHTML('background_image_browser','background_image','image','advimage'); + document.getElementById("background_image_browser").innerHTML = h; + + document.getElementById('text_color_pickcontainer').innerHTML = getColorPickerHTML('text_color_pick','text_color'); + document.getElementById('background_color_pickcontainer').innerHTML = getColorPickerHTML('background_color_pick','background_color'); + document.getElementById('border_color_top_pickcontainer').innerHTML = getColorPickerHTML('border_color_top_pick','border_color_top'); + document.getElementById('border_color_right_pickcontainer').innerHTML = getColorPickerHTML('border_color_right_pick','border_color_right'); + document.getElementById('border_color_bottom_pickcontainer').innerHTML = getColorPickerHTML('border_color_bottom_pick','border_color_bottom'); + document.getElementById('border_color_left_pickcontainer').innerHTML = getColorPickerHTML('border_color_left_pick','border_color_left'); + + fillSelect(0, 'text_font', 'style_font', defaultFonts, ';', true); + fillSelect(0, 'text_size', 'style_font_size', defaultSizes, ';', true); + fillSelect(0, 'text_size_measurement', 'style_font_size_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'text_case', 'style_text_case', "capitalize;uppercase;lowercase", ';', true); + fillSelect(0, 'text_weight', 'style_font_weight', defaultWeight, ';', true); + fillSelect(0, 'text_style', 'style_font_style', defaultTextStyle, ';', true); + fillSelect(0, 'text_variant', 'style_font_variant', defaultVariant, ';', true); + fillSelect(0, 'text_lineheight', 'style_font_line_height', defaultLineHeight, ';', true); + fillSelect(0, 'text_lineheight_measurement', 'style_font_line_height_measurement', defaultMeasurement, ';', true); + + fillSelect(0, 'background_attachment', 'style_background_attachment', defaultAttachment, ';', true); + fillSelect(0, 'background_repeat', 'style_background_repeat', defaultRepeat, ';', true); + + fillSelect(0, 'background_hpos_measurement', 'style_background_hpos_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'background_vpos_measurement', 'style_background_vpos_measurement', defaultMeasurement, ';', true); + + fillSelect(0, 'background_hpos', 'style_background_hpos', defaultPosH, ';', true); + fillSelect(0, 'background_vpos', 'style_background_vpos', defaultPosV, ';', true); + + fillSelect(0, 'block_wordspacing', 'style_wordspacing', 'normal', ';', true); + fillSelect(0, 'block_wordspacing_measurement', 'style_wordspacing_measurement', defaultSpacingMeasurement, ';', true); + fillSelect(0, 'block_letterspacing', 'style_letterspacing', 'normal', ';', true); + fillSelect(0, 'block_letterspacing_measurement', 'style_letterspacing_measurement', defaultSpacingMeasurement, ';', true); + fillSelect(0, 'block_vertical_alignment', 'style_vertical_alignment', defaultVAlign, ';', true); + fillSelect(0, 'block_text_align', 'style_text_align', "left;right;center;justify", ';', true); + fillSelect(0, 'block_whitespace', 'style_whitespace', "normal;pre;nowrap", ';', true); + fillSelect(0, 'block_display', 'style_display', defaultDisplay, ';', true); + fillSelect(0, 'block_text_indent_measurement', 'style_text_indent_measurement', defaultIndentMeasurement, ';', true); + + fillSelect(0, 'box_width_measurement', 'style_box_width_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'box_height_measurement', 'style_box_height_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'box_float', 'style_float', 'left;right;none', ';', true); + fillSelect(0, 'box_clear', 'style_clear', 'left;right;both;none', ';', true); + fillSelect(0, 'box_padding_left_measurement', 'style_padding_left_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'box_padding_top_measurement', 'style_padding_top_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'box_padding_bottom_measurement', 'style_padding_bottom_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'box_padding_right_measurement', 'style_padding_right_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'box_margin_left_measurement', 'style_margin_left_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'box_margin_top_measurement', 'style_margin_top_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'box_margin_bottom_measurement', 'style_margin_bottom_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'box_margin_right_measurement', 'style_margin_right_measurement', defaultMeasurement, ';', true); + + fillSelect(0, 'border_style_top', 'style_border_style_top', defaultBorderStyle, ';', true); + fillSelect(0, 'border_style_right', 'style_border_style_right', defaultBorderStyle, ';', true); + fillSelect(0, 'border_style_bottom', 'style_border_style_bottom', defaultBorderStyle, ';', true); + fillSelect(0, 'border_style_left', 'style_border_style_left', defaultBorderStyle, ';', true); + + fillSelect(0, 'border_width_top', 'style_border_width_top', defaultBorderWidth, ';', true); + fillSelect(0, 'border_width_right', 'style_border_width_right', defaultBorderWidth, ';', true); + fillSelect(0, 'border_width_bottom', 'style_border_width_bottom', defaultBorderWidth, ';', true); + fillSelect(0, 'border_width_left', 'style_border_width_left', defaultBorderWidth, ';', true); + + fillSelect(0, 'border_width_top_measurement', 'style_border_width_top_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'border_width_right_measurement', 'style_border_width_right_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'border_width_bottom_measurement', 'style_border_width_bottom_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'border_width_left_measurement', 'style_border_width_left_measurement', defaultMeasurement, ';', true); + + fillSelect(0, 'list_type', 'style_list_type', defaultListType, ';', true); + fillSelect(0, 'list_position', 'style_list_position', "inside;outside", ';', true); + + fillSelect(0, 'positioning_type', 'style_positioning_type', "absolute;relative;static", ';', true); + fillSelect(0, 'positioning_visibility', 'style_positioning_visibility', "inherit;visible;hidden", ';', true); + + fillSelect(0, 'positioning_width_measurement', 'style_positioning_width_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'positioning_height_measurement', 'style_positioning_height_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'positioning_overflow', 'style_positioning_overflow', "visible;hidden;scroll;auto", ';', true); + + fillSelect(0, 'positioning_placement_top_measurement', 'style_positioning_placement_top_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'positioning_placement_right_measurement', 'style_positioning_placement_right_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'positioning_placement_bottom_measurement', 'style_positioning_placement_bottom_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'positioning_placement_left_measurement', 'style_positioning_placement_left_measurement', defaultMeasurement, ';', true); + + fillSelect(0, 'positioning_clip_top_measurement', 'style_positioning_clip_top_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'positioning_clip_right_measurement', 'style_positioning_clip_right_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'positioning_clip_bottom_measurement', 'style_positioning_clip_bottom_measurement', defaultMeasurement, ';', true); + fillSelect(0, 'positioning_clip_left_measurement', 'style_positioning_clip_left_measurement', defaultMeasurement, ';', true); + + TinyMCE_EditableSelects.init(); + setupFormData(); + showDisabledControls(); +} + +function setupFormData() { + var ce = document.getElementById('container'), f = document.forms[0], s, b, i; + + // Setup text fields + + selectByValue(f, 'text_font', ce.style.fontFamily, true, true); + selectByValue(f, 'text_size', getNum(ce.style.fontSize), true, true); + selectByValue(f, 'text_size_measurement', getMeasurement(ce.style.fontSize)); + selectByValue(f, 'text_weight', ce.style.fontWeight, true, true); + selectByValue(f, 'text_style', ce.style.fontStyle, true, true); + selectByValue(f, 'text_lineheight', getNum(ce.style.lineHeight), true, true); + selectByValue(f, 'text_lineheight_measurement', getMeasurement(ce.style.lineHeight)); + selectByValue(f, 'text_case', ce.style.textTransform, true, true); + selectByValue(f, 'text_variant', ce.style.fontVariant, true, true); + f.text_color.value = tinyMCEPopup.editor.dom.toHex(ce.style.color); + updateColor('text_color_pick', 'text_color'); + f.text_underline.checked = inStr(ce.style.textDecoration, 'underline'); + f.text_overline.checked = inStr(ce.style.textDecoration, 'overline'); + f.text_linethrough.checked = inStr(ce.style.textDecoration, 'line-through'); + f.text_blink.checked = inStr(ce.style.textDecoration, 'blink'); + f.text_none.checked = inStr(ce.style.textDecoration, 'none'); + updateTextDecorations(); + + // Setup background fields + + f.background_color.value = tinyMCEPopup.editor.dom.toHex(ce.style.backgroundColor); + updateColor('background_color_pick', 'background_color'); + f.background_image.value = ce.style.backgroundImage.replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1"); + selectByValue(f, 'background_repeat', ce.style.backgroundRepeat, true, true); + selectByValue(f, 'background_attachment', ce.style.backgroundAttachment, true, true); + selectByValue(f, 'background_hpos', getNum(getVal(ce.style.backgroundPosition, 0)), true, true); + selectByValue(f, 'background_hpos_measurement', getMeasurement(getVal(ce.style.backgroundPosition, 0))); + selectByValue(f, 'background_vpos', getNum(getVal(ce.style.backgroundPosition, 1)), true, true); + selectByValue(f, 'background_vpos_measurement', getMeasurement(getVal(ce.style.backgroundPosition, 1))); + + // Setup block fields + + selectByValue(f, 'block_wordspacing', getNum(ce.style.wordSpacing), true, true); + selectByValue(f, 'block_wordspacing_measurement', getMeasurement(ce.style.wordSpacing)); + selectByValue(f, 'block_letterspacing', getNum(ce.style.letterSpacing), true, true); + selectByValue(f, 'block_letterspacing_measurement', getMeasurement(ce.style.letterSpacing)); + selectByValue(f, 'block_vertical_alignment', ce.style.verticalAlign, true, true); + selectByValue(f, 'block_text_align', ce.style.textAlign, true, true); + f.block_text_indent.value = getNum(ce.style.textIndent); + selectByValue(f, 'block_text_indent_measurement', getMeasurement(ce.style.textIndent)); + selectByValue(f, 'block_whitespace', ce.style.whiteSpace, true, true); + selectByValue(f, 'block_display', ce.style.display, true, true); + + // Setup box fields + + f.box_width.value = getNum(ce.style.width); + selectByValue(f, 'box_width_measurement', getMeasurement(ce.style.width)); + + f.box_height.value = getNum(ce.style.height); + selectByValue(f, 'box_height_measurement', getMeasurement(ce.style.height)); + selectByValue(f, 'box_float', ce.style.cssFloat || ce.style.styleFloat, true, true); + + selectByValue(f, 'box_clear', ce.style.clear, true, true); + + setupBox(f, ce, 'box_padding', 'padding', ''); + setupBox(f, ce, 'box_margin', 'margin', ''); + + // Setup border fields + + setupBox(f, ce, 'border_style', 'border', 'Style'); + setupBox(f, ce, 'border_width', 'border', 'Width'); + setupBox(f, ce, 'border_color', 'border', 'Color'); + + updateColor('border_color_top_pick', 'border_color_top'); + updateColor('border_color_right_pick', 'border_color_right'); + updateColor('border_color_bottom_pick', 'border_color_bottom'); + updateColor('border_color_left_pick', 'border_color_left'); + + f.elements.border_color_top.value = tinyMCEPopup.editor.dom.toHex(f.elements.border_color_top.value); + f.elements.border_color_right.value = tinyMCEPopup.editor.dom.toHex(f.elements.border_color_right.value); + f.elements.border_color_bottom.value = tinyMCEPopup.editor.dom.toHex(f.elements.border_color_bottom.value); + f.elements.border_color_left.value = tinyMCEPopup.editor.dom.toHex(f.elements.border_color_left.value); + + // Setup list fields + + selectByValue(f, 'list_type', ce.style.listStyleType, true, true); + selectByValue(f, 'list_position', ce.style.listStylePosition, true, true); + f.list_bullet_image.value = ce.style.listStyleImage.replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1"); + + // Setup box fields + + selectByValue(f, 'positioning_type', ce.style.position, true, true); + selectByValue(f, 'positioning_visibility', ce.style.visibility, true, true); + selectByValue(f, 'positioning_overflow', ce.style.overflow, true, true); + f.positioning_zindex.value = ce.style.zIndex ? ce.style.zIndex : ""; + + f.positioning_width.value = getNum(ce.style.width); + selectByValue(f, 'positioning_width_measurement', getMeasurement(ce.style.width)); + + f.positioning_height.value = getNum(ce.style.height); + selectByValue(f, 'positioning_height_measurement', getMeasurement(ce.style.height)); + + setupBox(f, ce, 'positioning_placement', '', '', ['top', 'right', 'bottom', 'left']); + + s = ce.style.clip.replace(new RegExp("rect\\('?([^']*)'?\\)", 'gi'), "$1"); + s = s.replace(/,/g, ' '); + + if (!hasEqualValues([getVal(s, 0), getVal(s, 1), getVal(s, 2), getVal(s, 3)])) { + f.positioning_clip_top.value = getNum(getVal(s, 0)); + selectByValue(f, 'positioning_clip_top_measurement', getMeasurement(getVal(s, 0))); + f.positioning_clip_right.value = getNum(getVal(s, 1)); + selectByValue(f, 'positioning_clip_right_measurement', getMeasurement(getVal(s, 1))); + f.positioning_clip_bottom.value = getNum(getVal(s, 2)); + selectByValue(f, 'positioning_clip_bottom_measurement', getMeasurement(getVal(s, 2))); + f.positioning_clip_left.value = getNum(getVal(s, 3)); + selectByValue(f, 'positioning_clip_left_measurement', getMeasurement(getVal(s, 3))); + } else { + f.positioning_clip_top.value = getNum(getVal(s, 0)); + selectByValue(f, 'positioning_clip_top_measurement', getMeasurement(getVal(s, 0))); + f.positioning_clip_right.value = f.positioning_clip_bottom.value = f.positioning_clip_left.value; + } + +// setupBox(f, ce, '', 'border', 'Color'); +} + +function getMeasurement(s) { + return s.replace(/^([0-9.]+)(.*)$/, "$2"); +} + +function getNum(s) { + if (new RegExp('^(?:[0-9.]+)(?:[a-z%]+)$', 'gi').test(s)) + return s.replace(/[^0-9.]/g, ''); + + return s; +} + +function inStr(s, n) { + return new RegExp(n, 'gi').test(s); +} + +function getVal(s, i) { + var a = s.split(' '); + + if (a.length > 1) + return a[i]; + + return ""; +} + +function setValue(f, n, v) { + if (f.elements[n].type == "text") + f.elements[n].value = v; + else + selectByValue(f, n, v, true, true); +} + +function setupBox(f, ce, fp, pr, sf, b) { + if (typeof(b) == "undefined") + b = ['Top', 'Right', 'Bottom', 'Left']; + + if (isSame(ce, pr, sf, b)) { + f.elements[fp + "_same"].checked = true; + + setValue(f, fp + "_top", getNum(ce.style[pr + b[0] + sf])); + f.elements[fp + "_top"].disabled = false; + + f.elements[fp + "_right"].value = ""; + f.elements[fp + "_right"].disabled = true; + f.elements[fp + "_bottom"].value = ""; + f.elements[fp + "_bottom"].disabled = true; + f.elements[fp + "_left"].value = ""; + f.elements[fp + "_left"].disabled = true; + + if (f.elements[fp + "_top_measurement"]) { + selectByValue(f, fp + '_top_measurement', getMeasurement(ce.style[pr + b[0] + sf])); + f.elements[fp + "_left_measurement"].disabled = true; + f.elements[fp + "_bottom_measurement"].disabled = true; + f.elements[fp + "_right_measurement"].disabled = true; + } + } else { + f.elements[fp + "_same"].checked = false; + + setValue(f, fp + "_top", getNum(ce.style[pr + b[0] + sf])); + f.elements[fp + "_top"].disabled = false; + + setValue(f, fp + "_right", getNum(ce.style[pr + b[1] + sf])); + f.elements[fp + "_right"].disabled = false; + + setValue(f, fp + "_bottom", getNum(ce.style[pr + b[2] + sf])); + f.elements[fp + "_bottom"].disabled = false; + + setValue(f, fp + "_left", getNum(ce.style[pr + b[3] + sf])); + f.elements[fp + "_left"].disabled = false; + + if (f.elements[fp + "_top_measurement"]) { + selectByValue(f, fp + '_top_measurement', getMeasurement(ce.style[pr + b[0] + sf])); + selectByValue(f, fp + '_right_measurement', getMeasurement(ce.style[pr + b[1] + sf])); + selectByValue(f, fp + '_bottom_measurement', getMeasurement(ce.style[pr + b[2] + sf])); + selectByValue(f, fp + '_left_measurement', getMeasurement(ce.style[pr + b[3] + sf])); + f.elements[fp + "_left_measurement"].disabled = false; + f.elements[fp + "_bottom_measurement"].disabled = false; + f.elements[fp + "_right_measurement"].disabled = false; + } + } +} + +function isSame(e, pr, sf, b) { + var a = [], i, x; + + if (typeof(b) == "undefined") + b = ['Top', 'Right', 'Bottom', 'Left']; + + if (typeof(sf) == "undefined" || sf == null) + sf = ""; + + a[0] = e.style[pr + b[0] + sf]; + a[1] = e.style[pr + b[1] + sf]; + a[2] = e.style[pr + b[2] + sf]; + a[3] = e.style[pr + b[3] + sf]; + + for (i=0; i 0 ? s.substring(1) : s; + + if (f.text_none.checked) + s = "none"; + + ce.style.textDecoration = s; + + // Build background styles + + ce.style.backgroundColor = f.background_color.value; + ce.style.backgroundImage = f.background_image.value != "" ? "url(" + f.background_image.value + ")" : ""; + ce.style.backgroundRepeat = f.background_repeat.value; + ce.style.backgroundAttachment = f.background_attachment.value; + + if (f.background_hpos.value != "") { + s = ""; + s += f.background_hpos.value + (isNum(f.background_hpos.value) ? f.background_hpos_measurement.value : "") + " "; + s += f.background_vpos.value + (isNum(f.background_vpos.value) ? f.background_vpos_measurement.value : ""); + ce.style.backgroundPosition = s; + } + + // Build block styles + + ce.style.wordSpacing = f.block_wordspacing.value + (isNum(f.block_wordspacing.value) ? f.block_wordspacing_measurement.value : ""); + ce.style.letterSpacing = f.block_letterspacing.value + (isNum(f.block_letterspacing.value) ? f.block_letterspacing_measurement.value : ""); + ce.style.verticalAlign = f.block_vertical_alignment.value; + ce.style.textAlign = f.block_text_align.value; + ce.style.textIndent = f.block_text_indent.value + (isNum(f.block_text_indent.value) ? f.block_text_indent_measurement.value : ""); + ce.style.whiteSpace = f.block_whitespace.value; + ce.style.display = f.block_display.value; + + // Build box styles + + ce.style.width = f.box_width.value + (isNum(f.box_width.value) ? f.box_width_measurement.value : ""); + ce.style.height = f.box_height.value + (isNum(f.box_height.value) ? f.box_height_measurement.value : ""); + ce.style.styleFloat = f.box_float.value; + ce.style.cssFloat = f.box_float.value; + + ce.style.clear = f.box_clear.value; + + if (!f.box_padding_same.checked) { + ce.style.paddingTop = f.box_padding_top.value + (isNum(f.box_padding_top.value) ? f.box_padding_top_measurement.value : ""); + ce.style.paddingRight = f.box_padding_right.value + (isNum(f.box_padding_right.value) ? f.box_padding_right_measurement.value : ""); + ce.style.paddingBottom = f.box_padding_bottom.value + (isNum(f.box_padding_bottom.value) ? f.box_padding_bottom_measurement.value : ""); + ce.style.paddingLeft = f.box_padding_left.value + (isNum(f.box_padding_left.value) ? f.box_padding_left_measurement.value : ""); + } else + ce.style.padding = f.box_padding_top.value + (isNum(f.box_padding_top.value) ? f.box_padding_top_measurement.value : ""); + + if (!f.box_margin_same.checked) { + ce.style.marginTop = f.box_margin_top.value + (isNum(f.box_margin_top.value) ? f.box_margin_top_measurement.value : ""); + ce.style.marginRight = f.box_margin_right.value + (isNum(f.box_margin_right.value) ? f.box_margin_right_measurement.value : ""); + ce.style.marginBottom = f.box_margin_bottom.value + (isNum(f.box_margin_bottom.value) ? f.box_margin_bottom_measurement.value : ""); + ce.style.marginLeft = f.box_margin_left.value + (isNum(f.box_margin_left.value) ? f.box_margin_left_measurement.value : ""); + } else + ce.style.margin = f.box_margin_top.value + (isNum(f.box_margin_top.value) ? f.box_margin_top_measurement.value : ""); + + // Build border styles + + if (!f.border_style_same.checked) { + ce.style.borderTopStyle = f.border_style_top.value; + ce.style.borderRightStyle = f.border_style_right.value; + ce.style.borderBottomStyle = f.border_style_bottom.value; + ce.style.borderLeftStyle = f.border_style_left.value; + } else + ce.style.borderStyle = f.border_style_top.value; + + if (!f.border_width_same.checked) { + ce.style.borderTopWidth = f.border_width_top.value + (isNum(f.border_width_top.value) ? f.border_width_top_measurement.value : ""); + ce.style.borderRightWidth = f.border_width_right.value + (isNum(f.border_width_right.value) ? f.border_width_right_measurement.value : ""); + ce.style.borderBottomWidth = f.border_width_bottom.value + (isNum(f.border_width_bottom.value) ? f.border_width_bottom_measurement.value : ""); + ce.style.borderLeftWidth = f.border_width_left.value + (isNum(f.border_width_left.value) ? f.border_width_left_measurement.value : ""); + } else + ce.style.borderWidth = f.border_width_top.value + (isNum(f.border_width_top.value) ? f.border_width_top_measurement.value : ""); + + if (!f.border_color_same.checked) { + ce.style.borderTopColor = f.border_color_top.value; + ce.style.borderRightColor = f.border_color_right.value; + ce.style.borderBottomColor = f.border_color_bottom.value; + ce.style.borderLeftColor = f.border_color_left.value; + } else + ce.style.borderColor = f.border_color_top.value; + + // Build list styles + + ce.style.listStyleType = f.list_type.value; + ce.style.listStylePosition = f.list_position.value; + ce.style.listStyleImage = f.list_bullet_image.value != "" ? "url(" + f.list_bullet_image.value + ")" : ""; + + // Build positioning styles + + ce.style.position = f.positioning_type.value; + ce.style.visibility = f.positioning_visibility.value; + + if (ce.style.width == "") + ce.style.width = f.positioning_width.value + (isNum(f.positioning_width.value) ? f.positioning_width_measurement.value : ""); + + if (ce.style.height == "") + ce.style.height = f.positioning_height.value + (isNum(f.positioning_height.value) ? f.positioning_height_measurement.value : ""); + + ce.style.zIndex = f.positioning_zindex.value; + ce.style.overflow = f.positioning_overflow.value; + + if (!f.positioning_placement_same.checked) { + ce.style.top = f.positioning_placement_top.value + (isNum(f.positioning_placement_top.value) ? f.positioning_placement_top_measurement.value : ""); + ce.style.right = f.positioning_placement_right.value + (isNum(f.positioning_placement_right.value) ? f.positioning_placement_right_measurement.value : ""); + ce.style.bottom = f.positioning_placement_bottom.value + (isNum(f.positioning_placement_bottom.value) ? f.positioning_placement_bottom_measurement.value : ""); + ce.style.left = f.positioning_placement_left.value + (isNum(f.positioning_placement_left.value) ? f.positioning_placement_left_measurement.value : ""); + } else { + s = f.positioning_placement_top.value + (isNum(f.positioning_placement_top.value) ? f.positioning_placement_top_measurement.value : ""); + ce.style.top = s; + ce.style.right = s; + ce.style.bottom = s; + ce.style.left = s; + } + + if (!f.positioning_clip_same.checked) { + s = "rect("; + s += (isNum(f.positioning_clip_top.value) ? f.positioning_clip_top.value + f.positioning_clip_top_measurement.value : "auto") + " "; + s += (isNum(f.positioning_clip_right.value) ? f.positioning_clip_right.value + f.positioning_clip_right_measurement.value : "auto") + " "; + s += (isNum(f.positioning_clip_bottom.value) ? f.positioning_clip_bottom.value + f.positioning_clip_bottom_measurement.value : "auto") + " "; + s += (isNum(f.positioning_clip_left.value) ? f.positioning_clip_left.value + f.positioning_clip_left_measurement.value : "auto"); + s += ")"; + + if (s != "rect(auto auto auto auto)") + ce.style.clip = s; + } else { + s = "rect("; + t = isNum(f.positioning_clip_top.value) ? f.positioning_clip_top.value + f.positioning_clip_top_measurement.value : "auto"; + s += t + " "; + s += t + " "; + s += t + " "; + s += t + ")"; + + if (s != "rect(auto auto auto auto)") + ce.style.clip = s; + } + + ce.style.cssText = ce.style.cssText; +} + +function isNum(s) { + return new RegExp('[0-9]+', 'g').test(s); +} + +function showDisabledControls() { + var f = document.forms, i, a; + + for (i=0; i 1) { + addSelectValue(f, s, p[0], p[1]); + + if (se) + selectByValue(f, s, p[1]); + } else { + addSelectValue(f, s, p[0], p[0]); + + if (se) + selectByValue(f, s, p[0]); + } + } +} + +function toggleSame(ce, pre) { + var el = document.forms[0].elements, i; + + if (ce.checked) { + el[pre + "_top"].disabled = false; + el[pre + "_right"].disabled = true; + el[pre + "_bottom"].disabled = true; + el[pre + "_left"].disabled = true; + + if (el[pre + "_top_measurement"]) { + el[pre + "_top_measurement"].disabled = false; + el[pre + "_right_measurement"].disabled = true; + el[pre + "_bottom_measurement"].disabled = true; + el[pre + "_left_measurement"].disabled = true; + } + } else { + el[pre + "_top"].disabled = false; + el[pre + "_right"].disabled = false; + el[pre + "_bottom"].disabled = false; + el[pre + "_left"].disabled = false; + + if (el[pre + "_top_measurement"]) { + el[pre + "_top_measurement"].disabled = false; + el[pre + "_right_measurement"].disabled = false; + el[pre + "_bottom_measurement"].disabled = false; + el[pre + "_left_measurement"].disabled = false; + } + } + + showDisabledControls(); +} + +function synch(fr, to) { + var f = document.forms[0]; + + f.elements[to].value = f.elements[fr].value; + + if (f.elements[fr + "_measurement"]) + selectByValue(f, to + "_measurement", f.elements[fr + "_measurement"].value); +} + +function updateTextDecorations(){ + var el = document.forms[0].elements; + + var textDecorations = ["text_underline", "text_overline", "text_linethrough", "text_blink"]; + var noneChecked = el["text_none"].checked; + tinymce.each(textDecorations, function(id) { + el[id].disabled = noneChecked; + if (noneChecked) { + el[id].checked = false; + } + }); +} + +tinyMCEPopup.onInit.add(init); diff --git a/askbot/skins/default/media/js/tinymce/plugins/style/langs/en_dlg.js b/askbot/skins/default/media/js/tinymce/plugins/style/langs/en_dlg.js new file mode 100644 index 00000000..35881b3a --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/style/langs/en_dlg.js @@ -0,0 +1 @@ +tinyMCE.addI18n('en.style_dlg',{"text_lineheight":"Line Height","text_variant":"Variant","text_style":"Style","text_weight":"Weight","text_size":"Size","text_font":"Font","text_props":"Text","positioning_tab":"Positioning","list_tab":"List","border_tab":"Border","box_tab":"Box","block_tab":"Block","background_tab":"Background","text_tab":"Text",apply:"Apply",toggle_insert_span:"Insert span at selection",title:"Edit CSS Style",clip:"Clip",placement:"Placement",overflow:"Overflow",zindex:"Z-index",visibility:"Visibility","positioning_type":"Type",position:"Position","bullet_image":"Bullet Image","list_type":"Type",color:"Color",height:"Height",width:"Width",style:"Style",margin:"Margin",left:"Left",bottom:"Bottom",right:"Right",top:"Top",same:"Same for All",padding:"Padding","box_clear":"Clear","box_float":"Float","box_height":"Height","box_width":"Width","block_display":"Display","block_whitespace":"Whitespace","block_text_indent":"Text Indent","block_text_align":"Text Align","block_vertical_alignment":"Vertical Alignment","block_letterspacing":"Letter Spacing","block_wordspacing":"Word Spacing","background_vpos":"Vertical Position","background_hpos":"Horizontal Position","background_attachment":"Attachment","background_repeat":"Repeat","background_image":"Background Image","background_color":"Background Color","text_none":"None","text_blink":"Blink","text_case":"Case","text_striketrough":"Strikethrough","text_underline":"Underline","text_overline":"Overline","text_decoration":"Decoration","text_color":"Color",text:"Text",background:"Background",block:"Block",box:"Box",border:"Border",list:"List"}); diff --git a/askbot/skins/default/media/js/tinymce/plugins/style/props.htm b/askbot/skins/default/media/js/tinymce/plugins/style/props.htm new file mode 100644 index 00000000..7dc087a3 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/style/props.htm @@ -0,0 +1,845 @@ + + + + {#style_dlg.title} + + + + + + + + + + +
          + + +
          +
          +
          + {#style_dlg.text} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          + +
          + + + + + + +
            + + +
          +
          + +
          + + + +
          + + + + + + +
          + +   + + +
          +
          + +
          + + + + + +
           
          +
          {#style_dlg.text_decoration} + + + + + + + + + + + + + + + + + + + + + +
          +
          +
          +
          + +
          +
          + {#style_dlg.background} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          + + + + + +
           
          +
          + + + + +
           
          +
          + + + + + + +
            + + +
          +
          + + + + + + +
            + + +
          +
          +
          +
          + +
          +
          + {#style_dlg.block} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          + + + + + + +
            + + +
          +
          + + + + + + +
            + + +
          +
          + + + + + + +
            + + + +
          +
          +
          +
          + +
          +
          + {#style_dlg.box} + + + + + + + + + + + + + + +
          + + + + + + +
            + + +
          +
             
          + + + + + + +
            + + +
          +
             
          +
          + +
          +
          + {#style_dlg.padding} + + + + + + + + + + + + + + + + + + + + + + +
           
          + + + + + + +
            + + +
          +
          + + + + + + +
            + + +
          +
          + + + + + + +
            + + +
          +
          + + + + + + +
            + + +
          +
          +
          +
          + +
          +
          + {#style_dlg.margin} + + + + + + + + + + + + + + + + + + + + + + +
           
          + + + + + + +
            + + +
          +
          + + + + + + +
            + + +
          +
          + + + + + + +
            + + +
          +
          + + + + + + +
            + + +
          +
          +
          +
          +
          +
          + +
          +
          + {#style_dlg.border} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
            {#style_dlg.style} {#style_dlg.width} {#style_dlg.color}
                
          {#style_dlg.top}   + + + + + + +
            + + +
          +
            + + + + + +
           
          +
          {#style_dlg.right}   + + + + + + +
            + + +
          +
            + + + + + +
           
          +
          {#style_dlg.bottom}   + + + + + + +
            + + +
          +
            + + + + + +
           
          +
          {#style_dlg.left}   + + + + + + +
            + + +
          +
            + + + + + +
           
          +
          +
          +
          + +
          +
          + {#style_dlg.list} + + + + + + + + + + + + + + + +
          +
          +
          + +
          +
          + {#style_dlg.position} + + + + + + + + + + + + + + + + + + + + + +
             
          + + + + + + +
            + + +
          +
             
          + + + + + + +
            + + +
          +
             
          +
          + +
          +
          + {#style_dlg.placement} + + + + + + + + + + + + + + + + + + + + + + +
           
          {#style_dlg.top} + + + + + + +
            + + +
          +
          {#style_dlg.right} + + + + + + +
            + + +
          +
          {#style_dlg.bottom} + + + + + + +
            + + +
          +
          {#style_dlg.left} + + + + + + +
            + + +
          +
          +
          +
          + +
          +
          + {#style_dlg.clip} + + + + + + + + + + + + + + + + + + + + + + +
           
          {#style_dlg.top} + + + + + + +
            + + +
          +
          {#style_dlg.right} + + + + + + +
            + + +
          +
          {#style_dlg.bottom} + + + + + + +
            + + +
          +
          {#style_dlg.left} + + + + + + +
            + + +
          +
          +
          +
          +
          +
          +
          + +
          + + +
          + +
          + + + +
          +
          + +
          +
          +
          + + + diff --git a/askbot/skins/default/media/js/tinymce/plugins/style/readme.txt b/askbot/skins/default/media/js/tinymce/plugins/style/readme.txt new file mode 100644 index 00000000..5bac3020 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/style/readme.txt @@ -0,0 +1,19 @@ +Edit CSS Style plug-in notes +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Unlike WYSIWYG editor functionality that operates only on the selected text, +typically by inserting new HTML elements with the specified styles. +This plug-in operates on the HTML blocks surrounding the selected text. +No new HTML elements are created. + +This plug-in only operates on the surrounding blocks and not the nearest +parent node. This means that if a block encapsulates a node, +e.g

          text

          , then only the styles in the block are +recognized, not those in the span. + +When selecting text that includes multiple blocks at the same level (peers), +this plug-in accumulates the specified styles in all of the surrounding blocks +and populates the dialogue checkboxes accordingly. There is no differentiation +between styles set in all the blocks versus styles set in some of the blocks. + +When the [Update] or [Apply] buttons are pressed, the styles selected in the +checkboxes are applied to all blocks that surround the selected text. diff --git a/askbot/skins/default/media/js/tinymce/plugins/tabfocus/editor_plugin.js b/askbot/skins/default/media/js/tinymce/plugins/tabfocus/editor_plugin.js new file mode 100644 index 00000000..2c512916 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/tabfocus/editor_plugin.js @@ -0,0 +1 @@ +(function(){var c=tinymce.DOM,a=tinymce.dom.Event,d=tinymce.each,b=tinymce.explode;tinymce.create("tinymce.plugins.TabFocusPlugin",{init:function(f,g){function e(i,j){if(j.keyCode===9){return a.cancel(j)}}function h(l,p){var j,m,o,n,k;function q(t){n=c.select(":input:enabled,*[tabindex]:not(iframe)");function s(v){return v.nodeName==="BODY"||(v.type!="hidden"&&!(v.style.display=="none")&&!(v.style.visibility=="hidden")&&s(v.parentNode))}function i(v){return v.attributes.tabIndex.specified||v.nodeName=="INPUT"||v.nodeName=="TEXTAREA"}function u(){return tinymce.isIE6||tinymce.isIE7}function r(v){return((!u()||i(v)))&&v.getAttribute("tabindex")!="-1"&&s(v)}d(n,function(w,v){if(w.id==l.id){j=v;return false}});if(t>0){for(m=j+1;m=0;m--){if(r(n[m])){return n[m]}}}return null}if(p.keyCode===9){k=b(l.getParam("tab_focus",l.getParam("tabfocus_elements",":prev,:next")));if(k.length==1){k[1]=k[0];k[0]=":prev"}if(p.shiftKey){if(k[0]==":prev"){n=q(-1)}else{n=c.get(k[0])}}else{if(k[1]==":next"){n=q(1)}else{n=c.get(k[1])}}if(n){if(n.id&&(l=tinymce.get(n.id||n.name))){l.focus()}else{window.setTimeout(function(){if(!tinymce.isWebKit){window.focus()}n.focus()},10)}return a.cancel(p)}}}f.onKeyUp.add(e);if(tinymce.isGecko){f.onKeyPress.add(h);f.onKeyDown.add(e)}else{f.onKeyDown.add(h)}},getInfo:function(){return{longname:"Tabfocus",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/tabfocus",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("tabfocus",tinymce.plugins.TabFocusPlugin)})(); \ No newline at end of file diff --git a/askbot/skins/default/media/js/tinymce/plugins/tabfocus/editor_plugin_src.js b/askbot/skins/default/media/js/tinymce/plugins/tabfocus/editor_plugin_src.js new file mode 100644 index 00000000..94f45320 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/tabfocus/editor_plugin_src.js @@ -0,0 +1,122 @@ +/** + * editor_plugin_src.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +(function() { + var DOM = tinymce.DOM, Event = tinymce.dom.Event, each = tinymce.each, explode = tinymce.explode; + + tinymce.create('tinymce.plugins.TabFocusPlugin', { + init : function(ed, url) { + function tabCancel(ed, e) { + if (e.keyCode === 9) + return Event.cancel(e); + } + + function tabHandler(ed, e) { + var x, i, f, el, v; + + function find(d) { + el = DOM.select(':input:enabled,*[tabindex]:not(iframe)'); + + function canSelectRecursive(e) { + return e.nodeName==="BODY" || (e.type != 'hidden' && + !(e.style.display == "none") && + !(e.style.visibility == "hidden") && canSelectRecursive(e.parentNode)); + } + function canSelectInOldIe(el) { + return el.attributes["tabIndex"].specified || el.nodeName == "INPUT" || el.nodeName == "TEXTAREA"; + } + function isOldIe() { + return tinymce.isIE6 || tinymce.isIE7; + } + function canSelect(el) { + return ((!isOldIe() || canSelectInOldIe(el))) && el.getAttribute("tabindex") != '-1' && canSelectRecursive(el); + } + + each(el, function(e, i) { + if (e.id == ed.id) { + x = i; + return false; + } + }); + if (d > 0) { + for (i = x + 1; i < el.length; i++) { + if (canSelect(el[i])) + return el[i]; + } + } else { + for (i = x - 1; i >= 0; i--) { + if (canSelect(el[i])) + return el[i]; + } + } + + return null; + } + + if (e.keyCode === 9) { + v = explode(ed.getParam('tab_focus', ed.getParam('tabfocus_elements', ':prev,:next'))); + + if (v.length == 1) { + v[1] = v[0]; + v[0] = ':prev'; + } + + // Find element to focus + if (e.shiftKey) { + if (v[0] == ':prev') + el = find(-1); + else + el = DOM.get(v[0]); + } else { + if (v[1] == ':next') + el = find(1); + else + el = DOM.get(v[1]); + } + + if (el) { + if (el.id && (ed = tinymce.get(el.id || el.name))) + ed.focus(); + else + window.setTimeout(function() { + if (!tinymce.isWebKit) + window.focus(); + el.focus(); + }, 10); + + return Event.cancel(e); + } + } + } + + ed.onKeyUp.add(tabCancel); + + if (tinymce.isGecko) { + ed.onKeyPress.add(tabHandler); + ed.onKeyDown.add(tabCancel); + } else + ed.onKeyDown.add(tabHandler); + + }, + + getInfo : function() { + return { + longname : 'Tabfocus', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/tabfocus', + version : tinymce.majorVersion + "." + tinymce.minorVersion + }; + } + }); + + // Register plugin + tinymce.PluginManager.add('tabfocus', tinymce.plugins.TabFocusPlugin); +})(); diff --git a/askbot/skins/default/media/js/tinymce/plugins/table/cell.htm b/askbot/skins/default/media/js/tinymce/plugins/table/cell.htm new file mode 100644 index 00000000..a72a8d69 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/table/cell.htm @@ -0,0 +1,180 @@ + + + + {#table_dlg.cell_title} + + + + + + + + + +
          + + +
          +
          +
          + {#table_dlg.general_props} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          + + + +
          + + + +
          + +
          +
          +
          + +
          +
          + {#table_dlg.advanced_props} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          + +
          + +
          + + + + + +
           
          +
          + + + + + +
           
          +
          + + + + + +
           
          +
          +
          +
          +
          + +
          +
          + +
          + + + +
          +
          + + diff --git a/askbot/skins/default/media/js/tinymce/plugins/table/css/cell.css b/askbot/skins/default/media/js/tinymce/plugins/table/css/cell.css new file mode 100644 index 00000000..a067ecdf --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/table/css/cell.css @@ -0,0 +1,17 @@ +/* CSS file for cell dialog in the table plugin */ + +.panel_wrapper div.current { + height: 200px; +} + +.advfield { + width: 200px; +} + +#action { + margin-bottom: 3px; +} + +#class { + width: 150px; +} \ No newline at end of file diff --git a/askbot/skins/default/media/js/tinymce/plugins/table/css/row.css b/askbot/skins/default/media/js/tinymce/plugins/table/css/row.css new file mode 100644 index 00000000..1f7755da --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/table/css/row.css @@ -0,0 +1,25 @@ +/* CSS file for row dialog in the table plugin */ + +.panel_wrapper div.current { + height: 200px; +} + +.advfield { + width: 200px; +} + +#action { + margin-bottom: 3px; +} + +#rowtype,#align,#valign,#class,#height { + width: 150px; +} + +#height { + width: 50px; +} + +.col2 { + padding-left: 20px; +} diff --git a/askbot/skins/default/media/js/tinymce/plugins/table/css/table.css b/askbot/skins/default/media/js/tinymce/plugins/table/css/table.css new file mode 100644 index 00000000..d11c3f69 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/table/css/table.css @@ -0,0 +1,13 @@ +/* CSS file for table dialog in the table plugin */ + +.panel_wrapper div.current { + height: 245px; +} + +.advfield { + width: 200px; +} + +#class { + width: 150px; +} diff --git a/askbot/skins/default/media/js/tinymce/plugins/table/editor_plugin.js b/askbot/skins/default/media/js/tinymce/plugins/table/editor_plugin.js new file mode 100644 index 00000000..23c1a83f --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/table/editor_plugin.js @@ -0,0 +1 @@ +(function(d){var e=d.each;function c(g,h){var j=h.ownerDocument,f=j.createRange(),k;f.setStartBefore(h);f.setEnd(g.endContainer,g.endOffset);k=j.createElement("body");k.appendChild(f.cloneContents());return k.innerHTML.replace(/<(br|img|object|embed|input|textarea)[^>]*>/gi,"-").replace(/<[^>]+>/g,"").length==0}function a(g,f){return parseInt(g.getAttribute(f)||1)}function b(H,G,K){var g,L,D,o;t();o=G.getParent(K.getStart(),"th,td");if(o){L=F(o);D=I();o=z(L.x,L.y)}function A(N,M){N=N.cloneNode(M);N.removeAttribute("id");return N}function t(){var M=0;g=[];e(["thead","tbody","tfoot"],function(N){var O=G.select("> "+N+" tr",H);e(O,function(P,Q){Q+=M;e(G.select("> td, > th",P),function(W,R){var S,T,U,V;if(g[Q]){while(g[Q][R]){R++}}U=a(W,"rowspan");V=a(W,"colspan");for(T=Q;T'}return false}},"childNodes");M=A(M,false);s(M,"rowSpan",1);s(M,"colSpan",1);if(N){M.appendChild(N)}else{if(!d.isIE){M.innerHTML='
          '}}return M}function q(){var M=G.createRng();e(G.select("tr",H),function(N){if(N.cells.length==0){G.remove(N)}});if(G.select("tr",H).length==0){M.setStartAfter(H);M.setEndAfter(H);K.setRng(M);G.remove(H);return}e(G.select("thead,tbody,tfoot",H),function(N){if(N.rows.length==0){G.remove(N)}});t();row=g[Math.min(g.length-1,L.y)];if(row){K.select(row[Math.min(row.length-1,L.x)].elm,true);K.collapse(true)}}function u(S,Q,U,R){var P,N,M,O,T;P=g[Q][S].elm.parentNode;for(M=1;M<=U;M++){P=G.getNext(P,"tr");if(P){for(N=S;N>=0;N--){T=g[Q+M][N].elm;if(T.parentNode==P){for(O=1;O<=R;O++){G.insertAfter(f(T),T)}break}}if(N==-1){for(O=1;O<=R;O++){P.insertBefore(f(P.cells[0]),P.cells[0])}}}}}function C(){e(g,function(M,N){e(M,function(P,O){var S,R,T,Q;if(j(P)){P=P.elm;S=a(P,"colspan");R=a(P,"rowspan");if(S>1||R>1){s(P,"rowSpan",1);s(P,"colSpan",1);for(Q=0;Q1){s(S,"rowSpan",O+1);continue}}else{if(M>0&&g[M-1][R]){V=g[M-1][R].elm;O=a(V,"rowSpan");if(O>1){s(V,"rowSpan",O+1);continue}}}N=f(S);s(N,"colSpan",S.colSpan);U.appendChild(N);P=S}}if(U.hasChildNodes()){if(!Q){G.insertAfter(U,T)}else{T.parentNode.insertBefore(U,T)}}}function h(N){var O,M;e(g,function(P,Q){e(P,function(S,R){if(j(S)){O=R;if(N){return false}}});if(N){return !O}});e(g,function(S,T){var P,Q,R;if(!S[O]){return}P=S[O].elm;if(P!=M){R=a(P,"colspan");Q=a(P,"rowspan");if(R==1){if(!N){G.insertAfter(f(P),P);u(O,T,Q-1,R)}else{P.parentNode.insertBefore(f(P),P);u(O,T,Q-1,R)}}else{s(P,"colSpan",P.colSpan+1)}M=P}})}function n(){var M=[];e(g,function(N,O){e(N,function(Q,P){if(j(Q)&&d.inArray(M,P)===-1){e(g,function(T){var R=T[P].elm,S;S=a(R,"colSpan");if(S>1){s(R,"colSpan",S-1)}else{G.remove(R)}});M.push(P)}})});q()}function m(){var N;function M(Q){var P,R,O;P=G.getNext(Q,"tr");e(Q.cells,function(S){var T=a(S,"rowSpan");if(T>1){s(S,"rowSpan",T-1);R=F(S);u(R.x,R.y,1,1)}});R=F(Q.cells[0]);e(g[R.y],function(S){var T;S=S.elm;if(S!=O){T=a(S,"rowSpan");if(T<=1){G.remove(S)}else{s(S,"rowSpan",T-1)}O=S}})}N=k();e(N.reverse(),function(O){M(O)});q()}function E(){var M=k();G.remove(M);q();return M}function J(){var M=k();e(M,function(O,N){M[N]=A(O,true)});return M}function B(O,N){var P=k(),M=P[N?0:P.length-1],Q=M.cells.length;e(g,function(S){var R;Q=0;e(S,function(U,T){if(U.real){Q+=U.colspan}if(U.elm.parentNode==M){R=1}});if(R){return false}});if(!N){O.reverse()}e(O,function(T){var S=T.cells.length,R;for(i=0;iN){N=R}if(Q>M){M=Q}if(S.real){U=S.colspan-1;T=S.rowspan-1;if(U){if(R+U>N){N=R+U}}if(T){if(Q+T>M){M=Q+T}}}}})});return{x:N,y:M}}function v(S){var P,O,U,T,N,M,Q,R;D=F(S);if(L&&D){P=Math.min(L.x,D.x);O=Math.min(L.y,D.y);U=Math.max(L.x,D.x);T=Math.max(L.y,D.y);N=U;M=T;for(y=O;y<=M;y++){S=g[y][P];if(!S.real){if(P-(S.colspan-1)N){N=x+Q}}if(R){if(y+R>M){M=y+R}}}}}G.removeClass(G.select("td.mceSelected,th.mceSelected"),"mceSelected");for(y=O;y<=M;y++){for(x=P;x<=N;x++){if(g[y][x]){G.addClass(g[y][x].elm,"mceSelected")}}}}}d.extend(this,{deleteTable:r,split:C,merge:p,insertRow:l,insertCol:h,deleteCols:n,deleteRows:m,cutRows:E,copyRows:J,pasteRows:B,getPos:F,setStartCell:w,setEndCell:v})}d.create("tinymce.plugins.TablePlugin",{init:function(g,h){var f,m,j=true;function l(p){var o=g.selection,n=g.dom.getParent(p||o.getNode(),"table");if(n){return new b(n,g.dom,o)}}function k(){g.getBody().style.webkitUserSelect="";if(j){g.dom.removeClass(g.dom.select("td.mceSelected,th.mceSelected"),"mceSelected");j=false}}e([["table","table.desc","mceInsertTable",true],["delete_table","table.del","mceTableDelete"],["delete_col","table.delete_col_desc","mceTableDeleteCol"],["delete_row","table.delete_row_desc","mceTableDeleteRow"],["col_after","table.col_after_desc","mceTableInsertColAfter"],["col_before","table.col_before_desc","mceTableInsertColBefore"],["row_after","table.row_after_desc","mceTableInsertRowAfter"],["row_before","table.row_before_desc","mceTableInsertRowBefore"],["row_props","table.row_desc","mceTableRowProps",true],["cell_props","table.cell_desc","mceTableCellProps",true],["split_cells","table.split_cells_desc","mceTableSplitCells",true],["merge_cells","table.merge_cells_desc","mceTableMergeCells",true]],function(n){g.addButton(n[0],{title:n[1],cmd:n[2],ui:n[3]})});if(!d.isIE){g.onClick.add(function(n,o){o=o.target;if(o.nodeName==="TABLE"){n.selection.select(o);n.nodeChanged()}})}g.onPreProcess.add(function(o,p){var n,q,r,t=o.dom,s;n=t.select("table",p.node);q=n.length;while(q--){r=n[q];t.setAttrib(r,"data-mce-style","");if((s=t.getAttrib(r,"width"))){t.setStyle(r,"width",s);t.setAttrib(r,"width","")}if((s=t.getAttrib(r,"height"))){t.setStyle(r,"height",s);t.setAttrib(r,"height","")}}});g.onNodeChange.add(function(q,o,s){var r;s=q.selection.getStart();r=q.dom.getParent(s,"td,th,caption");o.setActive("table",s.nodeName==="TABLE"||!!r);if(r&&r.nodeName==="CAPTION"){r=0}o.setDisabled("delete_table",!r);o.setDisabled("delete_col",!r);o.setDisabled("delete_table",!r);o.setDisabled("delete_row",!r);o.setDisabled("col_after",!r);o.setDisabled("col_before",!r);o.setDisabled("row_after",!r);o.setDisabled("row_before",!r);o.setDisabled("row_props",!r);o.setDisabled("cell_props",!r);o.setDisabled("split_cells",!r);o.setDisabled("merge_cells",!r)});g.onInit.add(function(r){var p,t,q=r.dom,u;f=r.windowManager;r.onMouseDown.add(function(w,z){if(z.button!=2){k();t=q.getParent(z.target,"td,th");p=q.getParent(t,"table")}});q.bind(r.getDoc(),"mouseover",function(C){var A,z,B=C.target;if(t&&(u||B!=t)&&(B.nodeName=="TD"||B.nodeName=="TH")){z=q.getParent(B,"table");if(z==p){if(!u){u=l(z);u.setStartCell(t);r.getBody().style.webkitUserSelect="none"}u.setEndCell(B);j=true}A=r.selection.getSel();try{if(A.removeAllRanges){A.removeAllRanges()}else{A.empty()}}catch(w){}C.preventDefault()}});r.onMouseUp.add(function(F,G){var z,B=F.selection,H,I=B.getSel(),w,C,A,E;if(t){if(u){F.getBody().style.webkitUserSelect=""}function D(J,L){var K=new d.dom.TreeWalker(J,J);do{if(J.nodeType==3&&d.trim(J.nodeValue).length!=0){if(L){z.setStart(J,0)}else{z.setEnd(J,J.nodeValue.length)}return}if(J.nodeName=="BR"){if(L){z.setStartBefore(J)}else{z.setEndBefore(J)}return}}while(J=(L?K.next():K.prev()))}H=q.select("td.mceSelected,th.mceSelected");if(H.length>0){z=q.createRng();C=H[0];E=H[H.length-1];z.setStartBefore(C);z.setEndAfter(C);D(C,1);w=new d.dom.TreeWalker(C,q.getParent(H[0],"table"));do{if(C.nodeName=="TD"||C.nodeName=="TH"){if(!q.hasClass(C,"mceSelected")){break}A=C}}while(C=w.next());D(A);B.setRng(z)}F.nodeChanged();t=u=p=null}});r.onKeyUp.add(function(w,z){k()});r.onKeyDown.add(function(w,z){n(w)});r.onMouseDown.add(function(w,z){if(z.button!=2){n(w)}});function o(D,z,A,F){var B=3,G=D.dom.getParent(z.startContainer,"TABLE"),C,w,E;if(G){C=G.parentNode}w=z.startContainer.nodeType==B&&z.startOffset==0&&z.endOffset==0&&F&&(A.nodeName=="TR"||A==C);E=(A.nodeName=="TD"||A.nodeName=="TH")&&!F;return w||E}function n(A){if(!d.isWebKit){return}var z=A.selection.getRng();var C=A.selection.getNode();var B=A.dom.getParent(z.startContainer,"TD,TH");if(!o(A,z,C,B)){return}if(!B){B=C}var w=B.lastChild;while(w.lastChild){w=w.lastChild}z.setEnd(w,w.nodeValue.length);A.selection.setRng(z)}r.plugins.table.fixTableCellSelection=n;if(r&&r.plugins.contextmenu){r.plugins.contextmenu.onContextMenu.add(function(A,w,C){var D,B=r.selection,z=B.getNode()||r.getBody();if(r.dom.getParent(C,"td")||r.dom.getParent(C,"th")||r.dom.select("td.mceSelected,th.mceSelected").length){w.removeAll();if(z.nodeName=="A"&&!r.dom.getAttrib(z,"name")){w.add({title:"advanced.link_desc",icon:"link",cmd:r.plugins.advlink?"mceAdvLink":"mceLink",ui:true});w.add({title:"advanced.unlink_desc",icon:"unlink",cmd:"UnLink"});w.addSeparator()}if(z.nodeName=="IMG"&&z.className.indexOf("mceItem")==-1){w.add({title:"advanced.image_desc",icon:"image",cmd:r.plugins.advimage?"mceAdvImage":"mceImage",ui:true});w.addSeparator()}w.add({title:"table.desc",icon:"table",cmd:"mceInsertTable",value:{action:"insert"}});w.add({title:"table.props_desc",icon:"table_props",cmd:"mceInsertTable"});w.add({title:"table.del",icon:"delete_table",cmd:"mceTableDelete"});w.addSeparator();D=w.addMenu({title:"table.cell"});D.add({title:"table.cell_desc",icon:"cell_props",cmd:"mceTableCellProps"});D.add({title:"table.split_cells_desc",icon:"split_cells",cmd:"mceTableSplitCells"});D.add({title:"table.merge_cells_desc",icon:"merge_cells",cmd:"mceTableMergeCells"});D=w.addMenu({title:"table.row"});D.add({title:"table.row_desc",icon:"row_props",cmd:"mceTableRowProps"});D.add({title:"table.row_before_desc",icon:"row_before",cmd:"mceTableInsertRowBefore"});D.add({title:"table.row_after_desc",icon:"row_after",cmd:"mceTableInsertRowAfter"});D.add({title:"table.delete_row_desc",icon:"delete_row",cmd:"mceTableDeleteRow"});D.addSeparator();D.add({title:"table.cut_row_desc",icon:"cut",cmd:"mceTableCutRow"});D.add({title:"table.copy_row_desc",icon:"copy",cmd:"mceTableCopyRow"});D.add({title:"table.paste_row_before_desc",icon:"paste",cmd:"mceTablePasteRowBefore"}).setDisabled(!m);D.add({title:"table.paste_row_after_desc",icon:"paste",cmd:"mceTablePasteRowAfter"}).setDisabled(!m);D=w.addMenu({title:"table.col"});D.add({title:"table.col_before_desc",icon:"col_before",cmd:"mceTableInsertColBefore"});D.add({title:"table.col_after_desc",icon:"col_after",cmd:"mceTableInsertColAfter"});D.add({title:"table.delete_col_desc",icon:"delete_col",cmd:"mceTableDeleteCol"})}else{w.add({title:"table.desc",icon:"table",cmd:"mceInsertTable"})}})}if(d.isWebKit){function v(C,N){var L=d.VK;var Q=N.keyCode;function O(Y,U,S){var T=Y?"previousSibling":"nextSibling";var Z=C.dom.getParent(U,"tr");var X=Z[T];if(X){z(C,U,X,Y);d.dom.Event.cancel(S);return true}else{var aa=C.dom.getParent(Z,"table");var W=Z.parentNode;var R=W.nodeName.toLowerCase();if(R==="tbody"||R===(Y?"tfoot":"thead")){var V=w(Y,aa,W,"tbody");if(V!==null){return K(Y,V,U,S)}}return M(Y,Z,T,aa,S)}}function w(V,T,U,X){var S=C.dom.select(">"+X,T);var R=S.indexOf(U);if(V&&R===0||!V&&R===S.length-1){return B(V,T)}else{if(R===-1){var W=U.tagName.toLowerCase()==="thead"?0:S.length-1;return S[W]}else{return S[R+(V?-1:1)]}}}function B(U,T){var S=U?"thead":"tfoot";var R=C.dom.select(">"+S,T);return R.length!==0?R[0]:null}function K(V,T,S,U){var R=J(T,V);R&&z(C,S,R,V);d.dom.Event.cancel(U);return true}function M(Y,U,R,X,W){var S=X[R];if(S){F(S);return true}else{var V=C.dom.getParent(X,"td,th");if(V){return O(Y,V,W)}else{var T=J(U,!Y);F(T);return d.dom.Event.cancel(W)}}}function J(S,R){var T=S&&S[R?"lastChild":"firstChild"];return T&&T.nodeName==="BR"?C.dom.getParent(T,"td,th"):T}function F(R){C.selection.setCursorLocation(R,0)}function A(){return Q==L.UP||Q==L.DOWN}function D(R){var T=R.selection.getNode();var S=R.dom.getParent(T,"tr");return S!==null}function P(S){var R=0;var T=S;while(T.previousSibling){T=T.previousSibling;R=R+a(T,"colspan")}return R}function E(T,R){var U=0;var S=0;e(T.children,function(V,W){U=U+a(V,"colspan");S=W;if(U>R){return false}});return S}function z(T,W,Y,V){var X=P(T.dom.getParent(W,"td,th"));var S=E(Y,X);var R=Y.childNodes[S];var U=J(R,V);F(U||R)}function H(R){var T=C.selection.getNode();var U=C.dom.getParent(T,"td,th");var S=C.dom.getParent(R,"td,th");return U&&U!==S&&I(U,S)}function I(S,R){return C.dom.getParent(S,"TABLE")===C.dom.getParent(R,"TABLE")}if(A()&&D(C)){var G=C.selection.getNode();setTimeout(function(){if(H(G)){O(!N.shiftKey&&Q===L.UP,G,N)}},0)}}r.onKeyDown.add(v)}function s(){var w;for(w=r.getBody().lastChild;w&&w.nodeType==3&&!w.nodeValue.length;w=w.previousSibling){}if(w&&w.nodeName=="TABLE"){if(r.settings.forced_root_block){r.dom.add(r.getBody(),r.settings.forced_root_block,null,d.isIE?" ":'
          ')}else{r.dom.add(r.getBody(),"br",{"data-mce-bogus":"1"})}}}if(d.isGecko){r.onKeyDown.add(function(z,B){var w,A,C=z.dom;if(B.keyCode==37||B.keyCode==38){w=z.selection.getRng();A=C.getParent(w.startContainer,"table");if(A&&z.getBody().firstChild==A){if(c(w,A)){w=C.createRng();w.setStartBefore(A);w.setEndBefore(A);z.selection.setRng(w);B.preventDefault()}}}})}r.onKeyUp.add(s);r.onSetContent.add(s);r.onVisualAid.add(s);r.onPreProcess.add(function(w,A){var z=A.node.lastChild;if(z&&(z.nodeName=="BR"||(z.childNodes.length==1&&(z.firstChild.nodeName=="BR"||z.firstChild.nodeValue=="\u00a0")))&&z.previousSibling&&z.previousSibling.nodeName=="TABLE"){w.dom.remove(z)}});if(d.isGecko){r.onKeyDown.add(function(z,B){if(B.keyCode===d.VK.ENTER&&B.shiftKey){var A=z.selection.getRng().startContainer;var C=q.getParent(A,"td,th");if(C){var w=z.getDoc().createTextNode("\uFEFF");q.insertAfter(w,A)}}})}s();r.startContent=r.getContent({format:"raw"})});e({mceTableSplitCells:function(n){n.split()},mceTableMergeCells:function(o){var p,q,n;n=g.dom.getParent(g.selection.getNode(),"th,td");if(n){p=n.rowSpan;q=n.colSpan}if(!g.dom.select("td.mceSelected,th.mceSelected").length){f.open({url:h+"/merge_cells.htm",width:240+parseInt(g.getLang("table.merge_cells_delta_width",0)),height:110+parseInt(g.getLang("table.merge_cells_delta_height",0)),inline:1},{rows:p,cols:q,onaction:function(r){o.merge(n,r.cols,r.rows)},plugin_url:h})}else{o.merge()}},mceTableInsertRowBefore:function(n){n.insertRow(true)},mceTableInsertRowAfter:function(n){n.insertRow()},mceTableInsertColBefore:function(n){n.insertCol(true)},mceTableInsertColAfter:function(n){n.insertCol()},mceTableDeleteCol:function(n){n.deleteCols()},mceTableDeleteRow:function(n){n.deleteRows()},mceTableCutRow:function(n){m=n.cutRows()},mceTableCopyRow:function(n){m=n.copyRows()},mceTablePasteRowBefore:function(n){n.pasteRows(m,true)},mceTablePasteRowAfter:function(n){n.pasteRows(m)},mceTableDelete:function(n){n.deleteTable()}},function(o,n){g.addCommand(n,function(){var p=l();if(p){o(p);g.execCommand("mceRepaint");k()}})});e({mceInsertTable:function(n){f.open({url:h+"/table.htm",width:400+parseInt(g.getLang("table.table_delta_width",0)),height:320+parseInt(g.getLang("table.table_delta_height",0)),inline:1},{plugin_url:h,action:n?n.action:0})},mceTableRowProps:function(){f.open({url:h+"/row.htm",width:400+parseInt(g.getLang("table.rowprops_delta_width",0)),height:295+parseInt(g.getLang("table.rowprops_delta_height",0)),inline:1},{plugin_url:h})},mceTableCellProps:function(){f.open({url:h+"/cell.htm",width:400+parseInt(g.getLang("table.cellprops_delta_width",0)),height:295+parseInt(g.getLang("table.cellprops_delta_height",0)),inline:1},{plugin_url:h})}},function(o,n){g.addCommand(n,function(p,q){o(q)})})}});d.PluginManager.add("table",d.plugins.TablePlugin)})(tinymce); \ No newline at end of file diff --git a/askbot/skins/default/media/js/tinymce/plugins/table/editor_plugin_src.js b/askbot/skins/default/media/js/tinymce/plugins/table/editor_plugin_src.js new file mode 100644 index 00000000..54bab56c --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/table/editor_plugin_src.js @@ -0,0 +1,1449 @@ +/** + * editor_plugin_src.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +(function(tinymce) { + var each = tinymce.each; + + // Checks if the selection/caret is at the start of the specified block element + function isAtStart(rng, par) { + var doc = par.ownerDocument, rng2 = doc.createRange(), elm; + + rng2.setStartBefore(par); + rng2.setEnd(rng.endContainer, rng.endOffset); + + elm = doc.createElement('body'); + elm.appendChild(rng2.cloneContents()); + + // Check for text characters of other elements that should be treated as content + return elm.innerHTML.replace(/<(br|img|object|embed|input|textarea)[^>]*>/gi, '-').replace(/<[^>]+>/g, '').length == 0; + }; + + function getSpanVal(td, name) { + return parseInt(td.getAttribute(name) || 1); + } + + /** + * Table Grid class. + */ + function TableGrid(table, dom, selection) { + var grid, startPos, endPos, selectedCell; + + buildGrid(); + selectedCell = dom.getParent(selection.getStart(), 'th,td'); + if (selectedCell) { + startPos = getPos(selectedCell); + endPos = findEndPos(); + selectedCell = getCell(startPos.x, startPos.y); + } + + function cloneNode(node, children) { + node = node.cloneNode(children); + node.removeAttribute('id'); + + return node; + } + + function buildGrid() { + var startY = 0; + + grid = []; + + each(['thead', 'tbody', 'tfoot'], function(part) { + var rows = dom.select('> ' + part + ' tr', table); + + each(rows, function(tr, y) { + y += startY; + + each(dom.select('> td, > th', tr), function(td, x) { + var x2, y2, rowspan, colspan; + + // Skip over existing cells produced by rowspan + if (grid[y]) { + while (grid[y][x]) + x++; + } + + // Get col/rowspan from cell + rowspan = getSpanVal(td, 'rowspan'); + colspan = getSpanVal(td, 'colspan'); + + // Fill out rowspan/colspan right and down + for (y2 = y; y2 < y + rowspan; y2++) { + if (!grid[y2]) + grid[y2] = []; + + for (x2 = x; x2 < x + colspan; x2++) { + grid[y2][x2] = { + part : part, + real : y2 == y && x2 == x, + elm : td, + rowspan : rowspan, + colspan : colspan + }; + } + } + }); + }); + + startY += rows.length; + }); + }; + + function getCell(x, y) { + var row; + + row = grid[y]; + if (row) + return row[x]; + }; + + function setSpanVal(td, name, val) { + if (td) { + val = parseInt(val); + + if (val === 1) + td.removeAttribute(name, 1); + else + td.setAttribute(name, val, 1); + } + } + + function isCellSelected(cell) { + return cell && (dom.hasClass(cell.elm, 'mceSelected') || cell == selectedCell); + }; + + function getSelectedRows() { + var rows = []; + + each(table.rows, function(row) { + each(row.cells, function(cell) { + if (dom.hasClass(cell, 'mceSelected') || cell == selectedCell.elm) { + rows.push(row); + return false; + } + }); + }); + + return rows; + }; + + function deleteTable() { + var rng = dom.createRng(); + + rng.setStartAfter(table); + rng.setEndAfter(table); + + selection.setRng(rng); + + dom.remove(table); + }; + + function cloneCell(cell) { + var formatNode; + + // Clone formats + tinymce.walk(cell, function(node) { + var curNode; + + if (node.nodeType == 3) { + each(dom.getParents(node.parentNode, null, cell).reverse(), function(node) { + node = cloneNode(node, false); + + if (!formatNode) + formatNode = curNode = node; + else if (curNode) + curNode.appendChild(node); + + curNode = node; + }); + + // Add something to the inner node + if (curNode) + curNode.innerHTML = tinymce.isIE ? ' ' : '
          '; + + return false; + } + }, 'childNodes'); + + cell = cloneNode(cell, false); + setSpanVal(cell, 'rowSpan', 1); + setSpanVal(cell, 'colSpan', 1); + + if (formatNode) { + cell.appendChild(formatNode); + } else { + if (!tinymce.isIE) + cell.innerHTML = '
          '; + } + + return cell; + }; + + function cleanup() { + var rng = dom.createRng(); + + // Empty rows + each(dom.select('tr', table), function(tr) { + if (tr.cells.length == 0) + dom.remove(tr); + }); + + // Empty table + if (dom.select('tr', table).length == 0) { + rng.setStartAfter(table); + rng.setEndAfter(table); + selection.setRng(rng); + dom.remove(table); + return; + } + + // Empty header/body/footer + each(dom.select('thead,tbody,tfoot', table), function(part) { + if (part.rows.length == 0) + dom.remove(part); + }); + + // Restore selection to start position if it still exists + buildGrid(); + + // Restore the selection to the closest table position + row = grid[Math.min(grid.length - 1, startPos.y)]; + if (row) { + selection.select(row[Math.min(row.length - 1, startPos.x)].elm, true); + selection.collapse(true); + } + }; + + function fillLeftDown(x, y, rows, cols) { + var tr, x2, r, c, cell; + + tr = grid[y][x].elm.parentNode; + for (r = 1; r <= rows; r++) { + tr = dom.getNext(tr, 'tr'); + + if (tr) { + // Loop left to find real cell + for (x2 = x; x2 >= 0; x2--) { + cell = grid[y + r][x2].elm; + + if (cell.parentNode == tr) { + // Append clones after + for (c = 1; c <= cols; c++) + dom.insertAfter(cloneCell(cell), cell); + + break; + } + } + + if (x2 == -1) { + // Insert nodes before first cell + for (c = 1; c <= cols; c++) + tr.insertBefore(cloneCell(tr.cells[0]), tr.cells[0]); + } + } + } + }; + + function split() { + each(grid, function(row, y) { + each(row, function(cell, x) { + var colSpan, rowSpan, newCell, i; + + if (isCellSelected(cell)) { + cell = cell.elm; + colSpan = getSpanVal(cell, 'colspan'); + rowSpan = getSpanVal(cell, 'rowspan'); + + if (colSpan > 1 || rowSpan > 1) { + setSpanVal(cell, 'rowSpan', 1); + setSpanVal(cell, 'colSpan', 1); + + // Insert cells right + for (i = 0; i < colSpan - 1; i++) + dom.insertAfter(cloneCell(cell), cell); + + fillLeftDown(x, y, rowSpan - 1, colSpan); + } + } + }); + }); + }; + + function merge(cell, cols, rows) { + var startX, startY, endX, endY, x, y, startCell, endCell, cell, children, count; + + // Use specified cell and cols/rows + if (cell) { + pos = getPos(cell); + startX = pos.x; + startY = pos.y; + endX = startX + (cols - 1); + endY = startY + (rows - 1); + } else { + startPos = endPos = null; + + // Calculate start/end pos by checking for selected cells in grid works better with context menu + each(grid, function(row, y) { + each(row, function(cell, x) { + if (isCellSelected(cell)) { + if (!startPos) { + startPos = {x: x, y: y}; + } + + endPos = {x: x, y: y}; + } + }); + }); + + // Use selection + startX = startPos.x; + startY = startPos.y; + endX = endPos.x; + endY = endPos.y; + } + + // Find start/end cells + startCell = getCell(startX, startY); + endCell = getCell(endX, endY); + + // Check if the cells exists and if they are of the same part for example tbody = tbody + if (startCell && endCell && startCell.part == endCell.part) { + // Split and rebuild grid + split(); + buildGrid(); + + // Set row/col span to start cell + startCell = getCell(startX, startY).elm; + setSpanVal(startCell, 'colSpan', (endX - startX) + 1); + setSpanVal(startCell, 'rowSpan', (endY - startY) + 1); + + // Remove other cells and add it's contents to the start cell + for (y = startY; y <= endY; y++) { + for (x = startX; x <= endX; x++) { + if (!grid[y] || !grid[y][x]) + continue; + + cell = grid[y][x].elm; + + if (cell != startCell) { + // Move children to startCell + children = tinymce.grep(cell.childNodes); + each(children, function(node) { + startCell.appendChild(node); + }); + + // Remove bogus nodes if there is children in the target cell + if (children.length) { + children = tinymce.grep(startCell.childNodes); + count = 0; + each(children, function(node) { + if (node.nodeName == 'BR' && dom.getAttrib(node, 'data-mce-bogus') && count++ < children.length - 1) + startCell.removeChild(node); + }); + } + + // Remove cell + dom.remove(cell); + } + } + } + + // Remove empty rows etc and restore caret location + cleanup(); + } + }; + + function insertRow(before) { + var posY, cell, lastCell, x, rowElm, newRow, newCell, otherCell, rowSpan; + + // Find first/last row + each(grid, function(row, y) { + each(row, function(cell, x) { + if (isCellSelected(cell)) { + cell = cell.elm; + rowElm = cell.parentNode; + newRow = cloneNode(rowElm, false); + posY = y; + + if (before) + return false; + } + }); + + if (before) + return !posY; + }); + + for (x = 0; x < grid[0].length; x++) { + // Cell not found could be because of an invalid table structure + if (!grid[posY][x]) + continue; + + cell = grid[posY][x].elm; + + if (cell != lastCell) { + if (!before) { + rowSpan = getSpanVal(cell, 'rowspan'); + if (rowSpan > 1) { + setSpanVal(cell, 'rowSpan', rowSpan + 1); + continue; + } + } else { + // Check if cell above can be expanded + if (posY > 0 && grid[posY - 1][x]) { + otherCell = grid[posY - 1][x].elm; + rowSpan = getSpanVal(otherCell, 'rowSpan'); + if (rowSpan > 1) { + setSpanVal(otherCell, 'rowSpan', rowSpan + 1); + continue; + } + } + } + + // Insert new cell into new row + newCell = cloneCell(cell); + setSpanVal(newCell, 'colSpan', cell.colSpan); + + newRow.appendChild(newCell); + + lastCell = cell; + } + } + + if (newRow.hasChildNodes()) { + if (!before) + dom.insertAfter(newRow, rowElm); + else + rowElm.parentNode.insertBefore(newRow, rowElm); + } + }; + + function insertCol(before) { + var posX, lastCell; + + // Find first/last column + each(grid, function(row, y) { + each(row, function(cell, x) { + if (isCellSelected(cell)) { + posX = x; + + if (before) + return false; + } + }); + + if (before) + return !posX; + }); + + each(grid, function(row, y) { + var cell, rowSpan, colSpan; + + if (!row[posX]) + return; + + cell = row[posX].elm; + if (cell != lastCell) { + colSpan = getSpanVal(cell, 'colspan'); + rowSpan = getSpanVal(cell, 'rowspan'); + + if (colSpan == 1) { + if (!before) { + dom.insertAfter(cloneCell(cell), cell); + fillLeftDown(posX, y, rowSpan - 1, colSpan); + } else { + cell.parentNode.insertBefore(cloneCell(cell), cell); + fillLeftDown(posX, y, rowSpan - 1, colSpan); + } + } else + setSpanVal(cell, 'colSpan', cell.colSpan + 1); + + lastCell = cell; + } + }); + }; + + function deleteCols() { + var cols = []; + + // Get selected column indexes + each(grid, function(row, y) { + each(row, function(cell, x) { + if (isCellSelected(cell) && tinymce.inArray(cols, x) === -1) { + each(grid, function(row) { + var cell = row[x].elm, colSpan; + + colSpan = getSpanVal(cell, 'colSpan'); + + if (colSpan > 1) + setSpanVal(cell, 'colSpan', colSpan - 1); + else + dom.remove(cell); + }); + + cols.push(x); + } + }); + }); + + cleanup(); + }; + + function deleteRows() { + var rows; + + function deleteRow(tr) { + var nextTr, pos, lastCell; + + nextTr = dom.getNext(tr, 'tr'); + + // Move down row spanned cells + each(tr.cells, function(cell) { + var rowSpan = getSpanVal(cell, 'rowSpan'); + + if (rowSpan > 1) { + setSpanVal(cell, 'rowSpan', rowSpan - 1); + pos = getPos(cell); + fillLeftDown(pos.x, pos.y, 1, 1); + } + }); + + // Delete cells + pos = getPos(tr.cells[0]); + each(grid[pos.y], function(cell) { + var rowSpan; + + cell = cell.elm; + + if (cell != lastCell) { + rowSpan = getSpanVal(cell, 'rowSpan'); + + if (rowSpan <= 1) + dom.remove(cell); + else + setSpanVal(cell, 'rowSpan', rowSpan - 1); + + lastCell = cell; + } + }); + }; + + // Get selected rows and move selection out of scope + rows = getSelectedRows(); + + // Delete all selected rows + each(rows.reverse(), function(tr) { + deleteRow(tr); + }); + + cleanup(); + }; + + function cutRows() { + var rows = getSelectedRows(); + + dom.remove(rows); + cleanup(); + + return rows; + }; + + function copyRows() { + var rows = getSelectedRows(); + + each(rows, function(row, i) { + rows[i] = cloneNode(row, true); + }); + + return rows; + }; + + function pasteRows(rows, before) { + var selectedRows = getSelectedRows(), + targetRow = selectedRows[before ? 0 : selectedRows.length - 1], + targetCellCount = targetRow.cells.length; + + // Calc target cell count + each(grid, function(row) { + var match; + + targetCellCount = 0; + each(row, function(cell, x) { + if (cell.real) + targetCellCount += cell.colspan; + + if (cell.elm.parentNode == targetRow) + match = 1; + }); + + if (match) + return false; + }); + + if (!before) + rows.reverse(); + + each(rows, function(row) { + var cellCount = row.cells.length, cell; + + // Remove col/rowspans + for (i = 0; i < cellCount; i++) { + cell = row.cells[i]; + setSpanVal(cell, 'colSpan', 1); + setSpanVal(cell, 'rowSpan', 1); + } + + // Needs more cells + for (i = cellCount; i < targetCellCount; i++) + row.appendChild(cloneCell(row.cells[cellCount - 1])); + + // Needs less cells + for (i = targetCellCount; i < cellCount; i++) + dom.remove(row.cells[i]); + + // Add before/after + if (before) + targetRow.parentNode.insertBefore(row, targetRow); + else + dom.insertAfter(row, targetRow); + }); + + // Remove current selection + dom.removeClass(dom.select('td.mceSelected,th.mceSelected'), 'mceSelected'); + }; + + function getPos(target) { + var pos; + + each(grid, function(row, y) { + each(row, function(cell, x) { + if (cell.elm == target) { + pos = {x : x, y : y}; + return false; + } + }); + + return !pos; + }); + + return pos; + }; + + function setStartCell(cell) { + startPos = getPos(cell); + }; + + function findEndPos() { + var pos, maxX, maxY; + + maxX = maxY = 0; + + each(grid, function(row, y) { + each(row, function(cell, x) { + var colSpan, rowSpan; + + if (isCellSelected(cell)) { + cell = grid[y][x]; + + if (x > maxX) + maxX = x; + + if (y > maxY) + maxY = y; + + if (cell.real) { + colSpan = cell.colspan - 1; + rowSpan = cell.rowspan - 1; + + if (colSpan) { + if (x + colSpan > maxX) + maxX = x + colSpan; + } + + if (rowSpan) { + if (y + rowSpan > maxY) + maxY = y + rowSpan; + } + } + } + }); + }); + + return {x : maxX, y : maxY}; + }; + + function setEndCell(cell) { + var startX, startY, endX, endY, maxX, maxY, colSpan, rowSpan; + + endPos = getPos(cell); + + if (startPos && endPos) { + // Get start/end positions + startX = Math.min(startPos.x, endPos.x); + startY = Math.min(startPos.y, endPos.y); + endX = Math.max(startPos.x, endPos.x); + endY = Math.max(startPos.y, endPos.y); + + // Expand end positon to include spans + maxX = endX; + maxY = endY; + + // Expand startX + for (y = startY; y <= maxY; y++) { + cell = grid[y][startX]; + + if (!cell.real) { + if (startX - (cell.colspan - 1) < startX) + startX -= cell.colspan - 1; + } + } + + // Expand startY + for (x = startX; x <= maxX; x++) { + cell = grid[startY][x]; + + if (!cell.real) { + if (startY - (cell.rowspan - 1) < startY) + startY -= cell.rowspan - 1; + } + } + + // Find max X, Y + for (y = startY; y <= endY; y++) { + for (x = startX; x <= endX; x++) { + cell = grid[y][x]; + + if (cell.real) { + colSpan = cell.colspan - 1; + rowSpan = cell.rowspan - 1; + + if (colSpan) { + if (x + colSpan > maxX) + maxX = x + colSpan; + } + + if (rowSpan) { + if (y + rowSpan > maxY) + maxY = y + rowSpan; + } + } + } + } + + // Remove current selection + dom.removeClass(dom.select('td.mceSelected,th.mceSelected'), 'mceSelected'); + + // Add new selection + for (y = startY; y <= maxY; y++) { + for (x = startX; x <= maxX; x++) { + if (grid[y][x]) + dom.addClass(grid[y][x].elm, 'mceSelected'); + } + } + } + }; + + // Expose to public + tinymce.extend(this, { + deleteTable : deleteTable, + split : split, + merge : merge, + insertRow : insertRow, + insertCol : insertCol, + deleteCols : deleteCols, + deleteRows : deleteRows, + cutRows : cutRows, + copyRows : copyRows, + pasteRows : pasteRows, + getPos : getPos, + setStartCell : setStartCell, + setEndCell : setEndCell + }); + }; + + tinymce.create('tinymce.plugins.TablePlugin', { + init : function(ed, url) { + var winMan, clipboardRows, hasCellSelection = true; // Might be selected cells on reload + + function createTableGrid(node) { + var selection = ed.selection, tblElm = ed.dom.getParent(node || selection.getNode(), 'table'); + + if (tblElm) + return new TableGrid(tblElm, ed.dom, selection); + }; + + function cleanup() { + // Restore selection possibilities + ed.getBody().style.webkitUserSelect = ''; + + if (hasCellSelection) { + ed.dom.removeClass(ed.dom.select('td.mceSelected,th.mceSelected'), 'mceSelected'); + hasCellSelection = false; + } + }; + + // Register buttons + each([ + ['table', 'table.desc', 'mceInsertTable', true], + ['delete_table', 'table.del', 'mceTableDelete'], + ['delete_col', 'table.delete_col_desc', 'mceTableDeleteCol'], + ['delete_row', 'table.delete_row_desc', 'mceTableDeleteRow'], + ['col_after', 'table.col_after_desc', 'mceTableInsertColAfter'], + ['col_before', 'table.col_before_desc', 'mceTableInsertColBefore'], + ['row_after', 'table.row_after_desc', 'mceTableInsertRowAfter'], + ['row_before', 'table.row_before_desc', 'mceTableInsertRowBefore'], + ['row_props', 'table.row_desc', 'mceTableRowProps', true], + ['cell_props', 'table.cell_desc', 'mceTableCellProps', true], + ['split_cells', 'table.split_cells_desc', 'mceTableSplitCells', true], + ['merge_cells', 'table.merge_cells_desc', 'mceTableMergeCells', true] + ], function(c) { + ed.addButton(c[0], {title : c[1], cmd : c[2], ui : c[3]}); + }); + + // Select whole table is a table border is clicked + if (!tinymce.isIE) { + ed.onClick.add(function(ed, e) { + e = e.target; + + if (e.nodeName === 'TABLE') { + ed.selection.select(e); + ed.nodeChanged(); + } + }); + } + + ed.onPreProcess.add(function(ed, args) { + var nodes, i, node, dom = ed.dom, value; + + nodes = dom.select('table', args.node); + i = nodes.length; + while (i--) { + node = nodes[i]; + dom.setAttrib(node, 'data-mce-style', ''); + + if ((value = dom.getAttrib(node, 'width'))) { + dom.setStyle(node, 'width', value); + dom.setAttrib(node, 'width', ''); + } + + if ((value = dom.getAttrib(node, 'height'))) { + dom.setStyle(node, 'height', value); + dom.setAttrib(node, 'height', ''); + } + } + }); + + // Handle node change updates + ed.onNodeChange.add(function(ed, cm, n) { + var p; + + n = ed.selection.getStart(); + p = ed.dom.getParent(n, 'td,th,caption'); + cm.setActive('table', n.nodeName === 'TABLE' || !!p); + + // Disable table tools if we are in caption + if (p && p.nodeName === 'CAPTION') + p = 0; + + cm.setDisabled('delete_table', !p); + cm.setDisabled('delete_col', !p); + cm.setDisabled('delete_table', !p); + cm.setDisabled('delete_row', !p); + cm.setDisabled('col_after', !p); + cm.setDisabled('col_before', !p); + cm.setDisabled('row_after', !p); + cm.setDisabled('row_before', !p); + cm.setDisabled('row_props', !p); + cm.setDisabled('cell_props', !p); + cm.setDisabled('split_cells', !p); + cm.setDisabled('merge_cells', !p); + }); + + ed.onInit.add(function(ed) { + var startTable, startCell, dom = ed.dom, tableGrid; + + winMan = ed.windowManager; + + // Add cell selection logic + ed.onMouseDown.add(function(ed, e) { + if (e.button != 2) { + cleanup(); + + startCell = dom.getParent(e.target, 'td,th'); + startTable = dom.getParent(startCell, 'table'); + } + }); + + dom.bind(ed.getDoc(), 'mouseover', function(e) { + var sel, table, target = e.target; + + if (startCell && (tableGrid || target != startCell) && (target.nodeName == 'TD' || target.nodeName == 'TH')) { + table = dom.getParent(target, 'table'); + if (table == startTable) { + if (!tableGrid) { + tableGrid = createTableGrid(table); + tableGrid.setStartCell(startCell); + + ed.getBody().style.webkitUserSelect = 'none'; + } + + tableGrid.setEndCell(target); + hasCellSelection = true; + } + + // Remove current selection + sel = ed.selection.getSel(); + + try { + if (sel.removeAllRanges) + sel.removeAllRanges(); + else + sel.empty(); + } catch (ex) { + // IE9 might throw errors here + } + + e.preventDefault(); + } + }); + + ed.onMouseUp.add(function(ed, e) { + var rng, sel = ed.selection, selectedCells, nativeSel = sel.getSel(), walker, node, lastNode, endNode; + + // Move selection to startCell + if (startCell) { + if (tableGrid) + ed.getBody().style.webkitUserSelect = ''; + + function setPoint(node, start) { + var walker = new tinymce.dom.TreeWalker(node, node); + + do { + // Text node + if (node.nodeType == 3 && tinymce.trim(node.nodeValue).length != 0) { + if (start) + rng.setStart(node, 0); + else + rng.setEnd(node, node.nodeValue.length); + + return; + } + + // BR element + if (node.nodeName == 'BR') { + if (start) + rng.setStartBefore(node); + else + rng.setEndBefore(node); + + return; + } + } while (node = (start ? walker.next() : walker.prev())); + } + + // Try to expand text selection as much as we can only Gecko supports cell selection + selectedCells = dom.select('td.mceSelected,th.mceSelected'); + if (selectedCells.length > 0) { + rng = dom.createRng(); + node = selectedCells[0]; + endNode = selectedCells[selectedCells.length - 1]; + rng.setStartBefore(node); + rng.setEndAfter(node); + + setPoint(node, 1); + walker = new tinymce.dom.TreeWalker(node, dom.getParent(selectedCells[0], 'table')); + + do { + if (node.nodeName == 'TD' || node.nodeName == 'TH') { + if (!dom.hasClass(node, 'mceSelected')) + break; + + lastNode = node; + } + } while (node = walker.next()); + + setPoint(lastNode); + + sel.setRng(rng); + } + + ed.nodeChanged(); + startCell = tableGrid = startTable = null; + } + }); + + ed.onKeyUp.add(function(ed, e) { + cleanup(); + }); + + ed.onKeyDown.add(function (ed, e) { + fixTableCellSelection(ed); + }); + + ed.onMouseDown.add(function (ed, e) { + if (e.button != 2) { + fixTableCellSelection(ed); + } + }); + function tableCellSelected(ed, rng, n, currentCell) { + // The decision of when a table cell is selected is somewhat involved. The fact that this code is + // required is actually a pointer to the root cause of this bug. A cell is selected when the start + // and end offsets are 0, the start container is a text, and the selection node is either a TR (most cases) + // or the parent of the table (in the case of the selection containing the last cell of a table). + var TEXT_NODE = 3, table = ed.dom.getParent(rng.startContainer, 'TABLE'), + tableParent, allOfCellSelected, tableCellSelection; + if (table) + tableParent = table.parentNode; + allOfCellSelected =rng.startContainer.nodeType == TEXT_NODE && + rng.startOffset == 0 && + rng.endOffset == 0 && + currentCell && + (n.nodeName=="TR" || n==tableParent); + tableCellSelection = (n.nodeName=="TD"||n.nodeName=="TH")&& !currentCell; + return allOfCellSelected || tableCellSelection; + // return false; + } + + // this nasty hack is here to work around some WebKit selection bugs. + function fixTableCellSelection(ed) { + if (!tinymce.isWebKit) + return; + + var rng = ed.selection.getRng(); + var n = ed.selection.getNode(); + var currentCell = ed.dom.getParent(rng.startContainer, 'TD,TH'); + + if (!tableCellSelected(ed, rng, n, currentCell)) + return; + if (!currentCell) { + currentCell=n; + } + + // Get the very last node inside the table cell + var end = currentCell.lastChild; + while (end.lastChild) + end = end.lastChild; + + // Select the entire table cell. Nothing outside of the table cell should be selected. + rng.setEnd(end, end.nodeValue.length); + ed.selection.setRng(rng); + } + ed.plugins.table.fixTableCellSelection=fixTableCellSelection; + + // Add context menu + if (ed && ed.plugins.contextmenu) { + ed.plugins.contextmenu.onContextMenu.add(function(th, m, e) { + var sm, se = ed.selection, el = se.getNode() || ed.getBody(); + + if (ed.dom.getParent(e, 'td') || ed.dom.getParent(e, 'th') || ed.dom.select('td.mceSelected,th.mceSelected').length) { + m.removeAll(); + + if (el.nodeName == 'A' && !ed.dom.getAttrib(el, 'name')) { + m.add({title : 'advanced.link_desc', icon : 'link', cmd : ed.plugins.advlink ? 'mceAdvLink' : 'mceLink', ui : true}); + m.add({title : 'advanced.unlink_desc', icon : 'unlink', cmd : 'UnLink'}); + m.addSeparator(); + } + + if (el.nodeName == 'IMG' && el.className.indexOf('mceItem') == -1) { + m.add({title : 'advanced.image_desc', icon : 'image', cmd : ed.plugins.advimage ? 'mceAdvImage' : 'mceImage', ui : true}); + m.addSeparator(); + } + + m.add({title : 'table.desc', icon : 'table', cmd : 'mceInsertTable', value : {action : 'insert'}}); + m.add({title : 'table.props_desc', icon : 'table_props', cmd : 'mceInsertTable'}); + m.add({title : 'table.del', icon : 'delete_table', cmd : 'mceTableDelete'}); + m.addSeparator(); + + // Cell menu + sm = m.addMenu({title : 'table.cell'}); + sm.add({title : 'table.cell_desc', icon : 'cell_props', cmd : 'mceTableCellProps'}); + sm.add({title : 'table.split_cells_desc', icon : 'split_cells', cmd : 'mceTableSplitCells'}); + sm.add({title : 'table.merge_cells_desc', icon : 'merge_cells', cmd : 'mceTableMergeCells'}); + + // Row menu + sm = m.addMenu({title : 'table.row'}); + sm.add({title : 'table.row_desc', icon : 'row_props', cmd : 'mceTableRowProps'}); + sm.add({title : 'table.row_before_desc', icon : 'row_before', cmd : 'mceTableInsertRowBefore'}); + sm.add({title : 'table.row_after_desc', icon : 'row_after', cmd : 'mceTableInsertRowAfter'}); + sm.add({title : 'table.delete_row_desc', icon : 'delete_row', cmd : 'mceTableDeleteRow'}); + sm.addSeparator(); + sm.add({title : 'table.cut_row_desc', icon : 'cut', cmd : 'mceTableCutRow'}); + sm.add({title : 'table.copy_row_desc', icon : 'copy', cmd : 'mceTableCopyRow'}); + sm.add({title : 'table.paste_row_before_desc', icon : 'paste', cmd : 'mceTablePasteRowBefore'}).setDisabled(!clipboardRows); + sm.add({title : 'table.paste_row_after_desc', icon : 'paste', cmd : 'mceTablePasteRowAfter'}).setDisabled(!clipboardRows); + + // Column menu + sm = m.addMenu({title : 'table.col'}); + sm.add({title : 'table.col_before_desc', icon : 'col_before', cmd : 'mceTableInsertColBefore'}); + sm.add({title : 'table.col_after_desc', icon : 'col_after', cmd : 'mceTableInsertColAfter'}); + sm.add({title : 'table.delete_col_desc', icon : 'delete_col', cmd : 'mceTableDeleteCol'}); + } else + m.add({title : 'table.desc', icon : 'table', cmd : 'mceInsertTable'}); + }); + } + + // Fix to allow navigating up and down in a table in WebKit browsers. + if (tinymce.isWebKit) { + function moveSelection(ed, e) { + var VK = tinymce.VK; + var key = e.keyCode; + + function handle(upBool, sourceNode, event) { + var siblingDirection = upBool ? 'previousSibling' : 'nextSibling'; + var currentRow = ed.dom.getParent(sourceNode, 'tr'); + var siblingRow = currentRow[siblingDirection]; + + if (siblingRow) { + moveCursorToRow(ed, sourceNode, siblingRow, upBool); + tinymce.dom.Event.cancel(event); + return true; + } else { + var tableNode = ed.dom.getParent(currentRow, 'table'); + var middleNode = currentRow.parentNode; + var parentNodeName = middleNode.nodeName.toLowerCase(); + if (parentNodeName === 'tbody' || parentNodeName === (upBool ? 'tfoot' : 'thead')) { + var targetParent = getTargetParent(upBool, tableNode, middleNode, 'tbody'); + if (targetParent !== null) { + return moveToRowInTarget(upBool, targetParent, sourceNode, event); + } + } + return escapeTable(upBool, currentRow, siblingDirection, tableNode, event); + } + } + + function getTargetParent(upBool, topNode, secondNode, nodeName) { + var tbodies = ed.dom.select('>' + nodeName, topNode); + var position = tbodies.indexOf(secondNode); + if (upBool && position === 0 || !upBool && position === tbodies.length - 1) { + return getFirstHeadOrFoot(upBool, topNode); + } else if (position === -1) { + var topOrBottom = secondNode.tagName.toLowerCase() === 'thead' ? 0 : tbodies.length - 1; + return tbodies[topOrBottom]; + } else { + return tbodies[position + (upBool ? -1 : 1)]; + } + } + + function getFirstHeadOrFoot(upBool, parent) { + var tagName = upBool ? 'thead' : 'tfoot'; + var headOrFoot = ed.dom.select('>' + tagName, parent); + return headOrFoot.length !== 0 ? headOrFoot[0] : null; + } + + function moveToRowInTarget(upBool, targetParent, sourceNode, event) { + var targetRow = getChildForDirection(targetParent, upBool); + targetRow && moveCursorToRow(ed, sourceNode, targetRow, upBool); + tinymce.dom.Event.cancel(event); + return true; + } + + function escapeTable(upBool, currentRow, siblingDirection, table, event) { + var tableSibling = table[siblingDirection]; + if (tableSibling) { + moveCursorToStartOfElement(tableSibling); + return true; + } else { + var parentCell = ed.dom.getParent(table, 'td,th'); + if (parentCell) { + return handle(upBool, parentCell, event); + } else { + var backUpSibling = getChildForDirection(currentRow, !upBool); + moveCursorToStartOfElement(backUpSibling); + return tinymce.dom.Event.cancel(event); + } + } + } + + function getChildForDirection(parent, up) { + var child = parent && parent[up ? 'lastChild' : 'firstChild']; + // BR is not a valid table child to return in this case we return the table cell + return child && child.nodeName === 'BR' ? ed.dom.getParent(child, 'td,th') : child; + } + + function moveCursorToStartOfElement(n) { + ed.selection.setCursorLocation(n, 0); + } + + function isVerticalMovement() { + return key == VK.UP || key == VK.DOWN; + } + + function isInTable(ed) { + var node = ed.selection.getNode(); + var currentRow = ed.dom.getParent(node, 'tr'); + return currentRow !== null; + } + + function columnIndex(column) { + var colIndex = 0; + var c = column; + while (c.previousSibling) { + c = c.previousSibling; + colIndex = colIndex + getSpanVal(c, "colspan"); + } + return colIndex; + } + + function findColumn(rowElement, columnIndex) { + var c = 0; + var r = 0; + each(rowElement.children, function(cell, i) { + c = c + getSpanVal(cell, "colspan"); + r = i; + if (c > columnIndex) + return false; + }); + return r; + } + + function moveCursorToRow(ed, node, row, upBool) { + var srcColumnIndex = columnIndex(ed.dom.getParent(node, 'td,th')); + var tgtColumnIndex = findColumn(row, srcColumnIndex); + var tgtNode = row.childNodes[tgtColumnIndex]; + var rowCellTarget = getChildForDirection(tgtNode, upBool); + moveCursorToStartOfElement(rowCellTarget || tgtNode); + } + + function shouldFixCaret(preBrowserNode) { + var newNode = ed.selection.getNode(); + var newParent = ed.dom.getParent(newNode, 'td,th'); + var oldParent = ed.dom.getParent(preBrowserNode, 'td,th'); + return newParent && newParent !== oldParent && checkSameParentTable(newParent, oldParent) + } + + function checkSameParentTable(nodeOne, NodeTwo) { + return ed.dom.getParent(nodeOne, 'TABLE') === ed.dom.getParent(NodeTwo, 'TABLE'); + } + + if (isVerticalMovement() && isInTable(ed)) { + var preBrowserNode = ed.selection.getNode(); + setTimeout(function() { + if (shouldFixCaret(preBrowserNode)) { + handle(!e.shiftKey && key === VK.UP, preBrowserNode, e); + } + }, 0); + } + } + + ed.onKeyDown.add(moveSelection); + } + + // Fixes an issue on Gecko where it's impossible to place the caret behind a table + // This fix will force a paragraph element after the table but only when the forced_root_block setting is enabled + function fixTableCaretPos() { + var last; + + // Skip empty text nodes form the end + for (last = ed.getBody().lastChild; last && last.nodeType == 3 && !last.nodeValue.length; last = last.previousSibling) ; + + if (last && last.nodeName == 'TABLE') { + if (ed.settings.forced_root_block) + ed.dom.add(ed.getBody(), ed.settings.forced_root_block, null, tinymce.isIE ? ' ' : '
          '); + else + ed.dom.add(ed.getBody(), 'br', {'data-mce-bogus': '1'}); + } + }; + + // Fixes an bug where it's impossible to place the caret before a table in Gecko + // this fix solves it by detecting when the caret is at the beginning of such a table + // and then manually moves the caret infront of the table + if (tinymce.isGecko) { + ed.onKeyDown.add(function(ed, e) { + var rng, table, dom = ed.dom; + + // On gecko it's not possible to place the caret before a table + if (e.keyCode == 37 || e.keyCode == 38) { + rng = ed.selection.getRng(); + table = dom.getParent(rng.startContainer, 'table'); + + if (table && ed.getBody().firstChild == table) { + if (isAtStart(rng, table)) { + rng = dom.createRng(); + + rng.setStartBefore(table); + rng.setEndBefore(table); + + ed.selection.setRng(rng); + + e.preventDefault(); + } + } + } + }); + } + + ed.onKeyUp.add(fixTableCaretPos); + ed.onSetContent.add(fixTableCaretPos); + ed.onVisualAid.add(fixTableCaretPos); + + ed.onPreProcess.add(function(ed, o) { + var last = o.node.lastChild; + + if (last && (last.nodeName == "BR" || (last.childNodes.length == 1 && (last.firstChild.nodeName == 'BR' || last.firstChild.nodeValue == '\u00a0'))) && last.previousSibling && last.previousSibling.nodeName == "TABLE") { + ed.dom.remove(last); + } + }); + + + /** + * Fixes bug in Gecko where shift-enter in table cell does not place caret on new line + */ + if (tinymce.isGecko) { + ed.onKeyDown.add(function(ed, e) { + if (e.keyCode === tinymce.VK.ENTER && e.shiftKey) { + var node = ed.selection.getRng().startContainer; + var tableCell = dom.getParent(node, 'td,th'); + if (tableCell) { + var zeroSizedNbsp = ed.getDoc().createTextNode("\uFEFF"); + dom.insertAfter(zeroSizedNbsp, node); + } + } + }); + } + + + fixTableCaretPos(); + ed.startContent = ed.getContent({format : 'raw'}); + }); + + // Register action commands + each({ + mceTableSplitCells : function(grid) { + grid.split(); + }, + + mceTableMergeCells : function(grid) { + var rowSpan, colSpan, cell; + + cell = ed.dom.getParent(ed.selection.getNode(), 'th,td'); + if (cell) { + rowSpan = cell.rowSpan; + colSpan = cell.colSpan; + } + + if (!ed.dom.select('td.mceSelected,th.mceSelected').length) { + winMan.open({ + url : url + '/merge_cells.htm', + width : 240 + parseInt(ed.getLang('table.merge_cells_delta_width', 0)), + height : 110 + parseInt(ed.getLang('table.merge_cells_delta_height', 0)), + inline : 1 + }, { + rows : rowSpan, + cols : colSpan, + onaction : function(data) { + grid.merge(cell, data.cols, data.rows); + }, + plugin_url : url + }); + } else + grid.merge(); + }, + + mceTableInsertRowBefore : function(grid) { + grid.insertRow(true); + }, + + mceTableInsertRowAfter : function(grid) { + grid.insertRow(); + }, + + mceTableInsertColBefore : function(grid) { + grid.insertCol(true); + }, + + mceTableInsertColAfter : function(grid) { + grid.insertCol(); + }, + + mceTableDeleteCol : function(grid) { + grid.deleteCols(); + }, + + mceTableDeleteRow : function(grid) { + grid.deleteRows(); + }, + + mceTableCutRow : function(grid) { + clipboardRows = grid.cutRows(); + }, + + mceTableCopyRow : function(grid) { + clipboardRows = grid.copyRows(); + }, + + mceTablePasteRowBefore : function(grid) { + grid.pasteRows(clipboardRows, true); + }, + + mceTablePasteRowAfter : function(grid) { + grid.pasteRows(clipboardRows); + }, + + mceTableDelete : function(grid) { + grid.deleteTable(); + } + }, function(func, name) { + ed.addCommand(name, function() { + var grid = createTableGrid(); + + if (grid) { + func(grid); + ed.execCommand('mceRepaint'); + cleanup(); + } + }); + }); + + // Register dialog commands + each({ + mceInsertTable : function(val) { + winMan.open({ + url : url + '/table.htm', + width : 400 + parseInt(ed.getLang('table.table_delta_width', 0)), + height : 320 + parseInt(ed.getLang('table.table_delta_height', 0)), + inline : 1 + }, { + plugin_url : url, + action : val ? val.action : 0 + }); + }, + + mceTableRowProps : function() { + winMan.open({ + url : url + '/row.htm', + width : 400 + parseInt(ed.getLang('table.rowprops_delta_width', 0)), + height : 295 + parseInt(ed.getLang('table.rowprops_delta_height', 0)), + inline : 1 + }, { + plugin_url : url + }); + }, + + mceTableCellProps : function() { + winMan.open({ + url : url + '/cell.htm', + width : 400 + parseInt(ed.getLang('table.cellprops_delta_width', 0)), + height : 295 + parseInt(ed.getLang('table.cellprops_delta_height', 0)), + inline : 1 + }, { + plugin_url : url + }); + } + }, function(func, name) { + ed.addCommand(name, function(ui, val) { + func(val); + }); + }); + } + }); + + // Register plugin + tinymce.PluginManager.add('table', tinymce.plugins.TablePlugin); +})(tinymce); diff --git a/askbot/skins/default/media/js/tinymce/plugins/table/js/cell.js b/askbot/skins/default/media/js/tinymce/plugins/table/js/cell.js new file mode 100644 index 00000000..02ecf22c --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/table/js/cell.js @@ -0,0 +1,319 @@ +tinyMCEPopup.requireLangPack(); + +var ed; + +function init() { + ed = tinyMCEPopup.editor; + tinyMCEPopup.resizeToInnerSize(); + + document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table'); + document.getElementById('bordercolor_pickcontainer').innerHTML = getColorPickerHTML('bordercolor_pick','bordercolor'); + document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor') + + var inst = ed; + var tdElm = ed.dom.getParent(ed.selection.getStart(), "td,th"); + var formObj = document.forms[0]; + var st = ed.dom.parseStyle(ed.dom.getAttrib(tdElm, "style")); + + // Get table cell data + var celltype = tdElm.nodeName.toLowerCase(); + var align = ed.dom.getAttrib(tdElm, 'align'); + var valign = ed.dom.getAttrib(tdElm, 'valign'); + var width = trimSize(getStyle(tdElm, 'width', 'width')); + var height = trimSize(getStyle(tdElm, 'height', 'height')); + var bordercolor = convertRGBToHex(getStyle(tdElm, 'bordercolor', 'borderLeftColor')); + var bgcolor = convertRGBToHex(getStyle(tdElm, 'bgcolor', 'backgroundColor')); + var className = ed.dom.getAttrib(tdElm, 'class'); + var backgroundimage = getStyle(tdElm, 'background', 'backgroundImage').replace(new RegExp("url\\(['\"]?([^'\"]*)['\"]?\\)", 'gi'), "$1"); + var id = ed.dom.getAttrib(tdElm, 'id'); + var lang = ed.dom.getAttrib(tdElm, 'lang'); + var dir = ed.dom.getAttrib(tdElm, 'dir'); + var scope = ed.dom.getAttrib(tdElm, 'scope'); + + // Setup form + addClassesToList('class', 'table_cell_styles'); + TinyMCE_EditableSelects.init(); + + if (!ed.dom.hasClass(tdElm, 'mceSelected')) { + formObj.bordercolor.value = bordercolor; + formObj.bgcolor.value = bgcolor; + formObj.backgroundimage.value = backgroundimage; + formObj.width.value = width; + formObj.height.value = height; + formObj.id.value = id; + formObj.lang.value = lang; + formObj.style.value = ed.dom.serializeStyle(st); + selectByValue(formObj, 'align', align); + selectByValue(formObj, 'valign', valign); + selectByValue(formObj, 'class', className, true, true); + selectByValue(formObj, 'celltype', celltype); + selectByValue(formObj, 'dir', dir); + selectByValue(formObj, 'scope', scope); + + // Resize some elements + if (isVisible('backgroundimagebrowser')) + document.getElementById('backgroundimage').style.width = '180px'; + + updateColor('bordercolor_pick', 'bordercolor'); + updateColor('bgcolor_pick', 'bgcolor'); + } else + tinyMCEPopup.dom.hide('action'); +} + +function updateAction() { + var el, inst = ed, tdElm, trElm, tableElm, formObj = document.forms[0]; + + if (!AutoValidator.validate(formObj)) { + tinyMCEPopup.alert(AutoValidator.getErrorMessages(formObj).join('. ') + '.'); + return false; + } + + tinyMCEPopup.restoreSelection(); + el = ed.selection.getStart(); + tdElm = ed.dom.getParent(el, "td,th"); + trElm = ed.dom.getParent(el, "tr"); + tableElm = ed.dom.getParent(el, "table"); + + // Cell is selected + if (ed.dom.hasClass(tdElm, 'mceSelected')) { + // Update all selected sells + tinymce.each(ed.dom.select('td.mceSelected,th.mceSelected'), function(td) { + updateCell(td); + }); + + ed.addVisual(); + ed.nodeChanged(); + inst.execCommand('mceEndUndoLevel'); + tinyMCEPopup.close(); + return; + } + + switch (getSelectValue(formObj, 'action')) { + case "cell": + var celltype = getSelectValue(formObj, 'celltype'); + var scope = getSelectValue(formObj, 'scope'); + + function doUpdate(s) { + if (s) { + updateCell(tdElm); + + ed.addVisual(); + ed.nodeChanged(); + inst.execCommand('mceEndUndoLevel'); + tinyMCEPopup.close(); + } + }; + + if (ed.getParam("accessibility_warnings", 1)) { + if (celltype == "th" && scope == "") + tinyMCEPopup.confirm(ed.getLang('table_dlg.missing_scope', '', true), doUpdate); + else + doUpdate(1); + + return; + } + + updateCell(tdElm); + break; + + case "row": + var cell = trElm.firstChild; + + if (cell.nodeName != "TD" && cell.nodeName != "TH") + cell = nextCell(cell); + + do { + cell = updateCell(cell, true); + } while ((cell = nextCell(cell)) != null); + + break; + + case "col": + var curr, col = 0, cell = trElm.firstChild, rows = tableElm.getElementsByTagName("tr"); + + if (cell.nodeName != "TD" && cell.nodeName != "TH") + cell = nextCell(cell); + + do { + if (cell == tdElm) + break; + col += cell.getAttribute("colspan")?cell.getAttribute("colspan"):1; + } while ((cell = nextCell(cell)) != null); + + for (var i=0; i 0) { + tinymce.each(tableElm.rows, function(tr) { + var i; + + for (i = 0; i < tr.cells.length; i++) { + if (dom.hasClass(tr.cells[i], 'mceSelected')) { + updateRow(tr, true); + return; + } + } + }); + + inst.addVisual(); + inst.nodeChanged(); + inst.execCommand('mceEndUndoLevel'); + tinyMCEPopup.close(); + return; + } + + switch (action) { + case "row": + updateRow(trElm); + break; + + case "all": + var rows = tableElm.getElementsByTagName("tr"); + + for (var i=0; i colLimit) { + tinyMCEPopup.alert(inst.getLang('table_dlg.col_limit').replace(/\{\$cols\}/g, colLimit)); + return false; + } else if (rowLimit && rows > rowLimit) { + tinyMCEPopup.alert(inst.getLang('table_dlg.row_limit').replace(/\{\$rows\}/g, rowLimit)); + return false; + } else if (cellLimit && cols * rows > cellLimit) { + tinyMCEPopup.alert(inst.getLang('table_dlg.cell_limit').replace(/\{\$cells\}/g, cellLimit)); + return false; + } + + // Update table + if (action == "update") { + dom.setAttrib(elm, 'cellPadding', cellpadding, true); + dom.setAttrib(elm, 'cellSpacing', cellspacing, true); + + if (!isCssSize(border)) { + dom.setAttrib(elm, 'border', border); + } else { + dom.setAttrib(elm, 'border', ''); + } + + if (border == '') { + dom.setStyle(elm, 'border-width', ''); + dom.setStyle(elm, 'border', ''); + dom.setAttrib(elm, 'border', ''); + } + + dom.setAttrib(elm, 'align', align); + dom.setAttrib(elm, 'frame', frame); + dom.setAttrib(elm, 'rules', rules); + dom.setAttrib(elm, 'class', className); + dom.setAttrib(elm, 'style', style); + dom.setAttrib(elm, 'id', id); + dom.setAttrib(elm, 'summary', summary); + dom.setAttrib(elm, 'dir', dir); + dom.setAttrib(elm, 'lang', lang); + + capEl = inst.dom.select('caption', elm)[0]; + + if (capEl && !caption) + capEl.parentNode.removeChild(capEl); + + if (!capEl && caption) { + capEl = elm.ownerDocument.createElement('caption'); + + if (!tinymce.isIE) + capEl.innerHTML = '
          '; + + elm.insertBefore(capEl, elm.firstChild); + } + + if (width && inst.settings.inline_styles) { + dom.setStyle(elm, 'width', width); + dom.setAttrib(elm, 'width', ''); + } else { + dom.setAttrib(elm, 'width', width, true); + dom.setStyle(elm, 'width', ''); + } + + // Remove these since they are not valid XHTML + dom.setAttrib(elm, 'borderColor', ''); + dom.setAttrib(elm, 'bgColor', ''); + dom.setAttrib(elm, 'background', ''); + + if (height && inst.settings.inline_styles) { + dom.setStyle(elm, 'height', height); + dom.setAttrib(elm, 'height', ''); + } else { + dom.setAttrib(elm, 'height', height, true); + dom.setStyle(elm, 'height', ''); + } + + if (background != '') + elm.style.backgroundImage = "url('" + background + "')"; + else + elm.style.backgroundImage = ''; + +/* if (tinyMCEPopup.getParam("inline_styles")) { + if (width != '') + elm.style.width = getCSSSize(width); + }*/ + + if (bordercolor != "") { + elm.style.borderColor = bordercolor; + elm.style.borderStyle = elm.style.borderStyle == "" ? "solid" : elm.style.borderStyle; + elm.style.borderWidth = cssSize(border); + } else + elm.style.borderColor = ''; + + elm.style.backgroundColor = bgcolor; + elm.style.height = getCSSSize(height); + + inst.addVisual(); + + // Fix for stange MSIE align bug + //elm.outerHTML = elm.outerHTML; + + inst.nodeChanged(); + inst.execCommand('mceEndUndoLevel', false, {}, {skip_undo: true}); + + // Repaint if dimensions changed + if (formObj.width.value != orgTableWidth || formObj.height.value != orgTableHeight) + inst.execCommand('mceRepaint'); + + tinyMCEPopup.close(); + return true; + } + + // Create new table + html += ''); + + tinymce.each('h1,h2,h3,h4,h5,h6,p'.split(','), function(n) { + if (patt) + patt += ','; + + patt += n + ' ._mce_marker'; + }); + + tinymce.each(inst.dom.select(patt), function(n) { + inst.dom.split(inst.dom.getParent(n, 'h1,h2,h3,h4,h5,h6,p'), n); + }); + + dom.setOuterHTML(dom.select('br._mce_marker')[0], html); + } else + inst.execCommand('mceInsertContent', false, html); + + tinymce.each(dom.select('table[data-mce-new]'), function(node) { + var tdorth = dom.select('td,th', node); + + // Fixes a bug in IE where the caret cannot be placed after the table if the table is at the end of the document + if (tinymce.isIE && node.nextSibling == null) { + if (inst.settings.forced_root_block) + dom.insertAfter(dom.create(inst.settings.forced_root_block), node); + else + dom.insertAfter(dom.create('br', {'data-mce-bogus': '1'}), node); + } + + try { + // IE9 might fail to do this selection + inst.selection.setCursorLocation(tdorth[0], 0); + } catch (ex) { + // Ignore + } + + dom.setAttrib(node, 'data-mce-new', ''); + }); + + inst.addVisual(); + inst.execCommand('mceEndUndoLevel', false, {}, {skip_undo: true}); + + tinyMCEPopup.close(); +} + +function makeAttrib(attrib, value) { + var formObj = document.forms[0]; + var valueElm = formObj.elements[attrib]; + + if (typeof(value) == "undefined" || value == null) { + value = ""; + + if (valueElm) + value = valueElm.value; + } + + if (value == "") + return ""; + + // XML encode it + value = value.replace(/&/g, '&'); + value = value.replace(/\"/g, '"'); + value = value.replace(//g, '>'); + + return ' ' + attrib + '="' + value + '"'; +} + +function init() { + tinyMCEPopup.resizeToInnerSize(); + + document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table'); + document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table'); + document.getElementById('bordercolor_pickcontainer').innerHTML = getColorPickerHTML('bordercolor_pick','bordercolor'); + document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor'); + + var cols = 2, rows = 2, border = tinyMCEPopup.getParam('table_default_border', '0'), cellpadding = tinyMCEPopup.getParam('table_default_cellpadding', ''), cellspacing = tinyMCEPopup.getParam('table_default_cellspacing', ''); + var align = "", width = "", height = "", bordercolor = "", bgcolor = "", className = ""; + var id = "", summary = "", style = "", dir = "", lang = "", background = "", bgcolor = "", bordercolor = "", rules = "", frame = ""; + var inst = tinyMCEPopup.editor, dom = inst.dom; + var formObj = document.forms[0]; + var elm = dom.getParent(inst.selection.getNode(), "table"); + + // Hide advanced fields that isn't available in the schema + tinymce.each("summary id rules dir style frame".split(" "), function(name) { + var tr = tinyMCEPopup.dom.getParent(name, "tr") || tinyMCEPopup.dom.getParent("t" + name, "tr"); + + if (tr && !tinyMCEPopup.editor.schema.isValid("table", name)) { + tr.style.display = 'none'; + } + }); + + action = tinyMCEPopup.getWindowArg('action'); + + if (!action) + action = elm ? "update" : "insert"; + + if (elm && action != "insert") { + var rowsAr = elm.rows; + var cols = 0; + for (var i=0; i cols) + cols = rowsAr[i].cells.length; + + cols = cols; + rows = rowsAr.length; + + st = dom.parseStyle(dom.getAttrib(elm, "style")); + border = trimSize(getStyle(elm, 'border', 'borderWidth')); + cellpadding = dom.getAttrib(elm, 'cellpadding', ""); + cellspacing = dom.getAttrib(elm, 'cellspacing', ""); + width = trimSize(getStyle(elm, 'width', 'width')); + height = trimSize(getStyle(elm, 'height', 'height')); + bordercolor = convertRGBToHex(getStyle(elm, 'bordercolor', 'borderLeftColor')); + bgcolor = convertRGBToHex(getStyle(elm, 'bgcolor', 'backgroundColor')); + align = dom.getAttrib(elm, 'align', align); + frame = dom.getAttrib(elm, 'frame'); + rules = dom.getAttrib(elm, 'rules'); + className = tinymce.trim(dom.getAttrib(elm, 'class').replace(/mceItem.+/g, '')); + id = dom.getAttrib(elm, 'id'); + summary = dom.getAttrib(elm, 'summary'); + style = dom.serializeStyle(st); + dir = dom.getAttrib(elm, 'dir'); + lang = dom.getAttrib(elm, 'lang'); + background = getStyle(elm, 'background', 'backgroundImage').replace(new RegExp("url\\(['\"]?([^'\"]*)['\"]?\\)", 'gi'), "$1"); + formObj.caption.checked = elm.getElementsByTagName('caption').length > 0; + + orgTableWidth = width; + orgTableHeight = height; + + action = "update"; + formObj.insert.value = inst.getLang('update'); + } + + addClassesToList('class', "table_styles"); + TinyMCE_EditableSelects.init(); + + // Update form + selectByValue(formObj, 'align', align); + selectByValue(formObj, 'tframe', frame); + selectByValue(formObj, 'rules', rules); + selectByValue(formObj, 'class', className, true, true); + formObj.cols.value = cols; + formObj.rows.value = rows; + formObj.border.value = border; + formObj.cellpadding.value = cellpadding; + formObj.cellspacing.value = cellspacing; + formObj.width.value = width; + formObj.height.value = height; + formObj.bordercolor.value = bordercolor; + formObj.bgcolor.value = bgcolor; + formObj.id.value = id; + formObj.summary.value = summary; + formObj.style.value = style; + formObj.dir.value = dir; + formObj.lang.value = lang; + formObj.backgroundimage.value = background; + + updateColor('bordercolor_pick', 'bordercolor'); + updateColor('bgcolor_pick', 'bgcolor'); + + // Resize some elements + if (isVisible('backgroundimagebrowser')) + document.getElementById('backgroundimage').style.width = '180px'; + + // Disable some fields in update mode + if (action == "update") { + formObj.cols.disabled = true; + formObj.rows.disabled = true; + } +} + +function changedSize() { + var formObj = document.forms[0]; + var st = dom.parseStyle(formObj.style.value); + +/* var width = formObj.width.value; + if (width != "") + st['width'] = tinyMCEPopup.getParam("inline_styles") ? getCSSSize(width) : ""; + else + st['width'] = "";*/ + + var height = formObj.height.value; + if (height != "") + st['height'] = getCSSSize(height); + else + st['height'] = ""; + + formObj.style.value = dom.serializeStyle(st); +} + +function isCssSize(value) { + return /^[0-9.]+(%|in|cm|mm|em|ex|pt|pc|px)$/.test(value); +} + +function cssSize(value, def) { + value = tinymce.trim(value || def); + + if (!isCssSize(value)) { + return parseInt(value, 10) + 'px'; + } + + return value; +} + +function changedBackgroundImage() { + var formObj = document.forms[0]; + var st = dom.parseStyle(formObj.style.value); + + st['background-image'] = "url('" + formObj.backgroundimage.value + "')"; + + formObj.style.value = dom.serializeStyle(st); +} + +function changedBorder() { + var formObj = document.forms[0]; + var st = dom.parseStyle(formObj.style.value); + + // Update border width if the element has a color + if (formObj.border.value != "" && (isCssSize(formObj.border.value) || formObj.bordercolor.value != "")) + st['border-width'] = cssSize(formObj.border.value); + else { + if (!formObj.border.value) { + st['border'] = ''; + st['border-width'] = ''; + } + } + + formObj.style.value = dom.serializeStyle(st); +} + +function changedColor() { + var formObj = document.forms[0]; + var st = dom.parseStyle(formObj.style.value); + + st['background-color'] = formObj.bgcolor.value; + + if (formObj.bordercolor.value != "") { + st['border-color'] = formObj.bordercolor.value; + + // Add border-width if it's missing + if (!st['border-width']) + st['border-width'] = cssSize(formObj.border.value, 1); + } + + formObj.style.value = dom.serializeStyle(st); +} + +function changedStyle() { + var formObj = document.forms[0]; + var st = dom.parseStyle(formObj.style.value); + + if (st['background-image']) + formObj.backgroundimage.value = st['background-image'].replace(new RegExp("url\\(['\"]?([^'\"]*)['\"]?\\)", 'gi'), "$1"); + else + formObj.backgroundimage.value = ''; + + if (st['width']) + formObj.width.value = trimSize(st['width']); + + if (st['height']) + formObj.height.value = trimSize(st['height']); + + if (st['background-color']) { + formObj.bgcolor.value = st['background-color']; + updateColor('bgcolor_pick','bgcolor'); + } + + if (st['border-color']) { + formObj.bordercolor.value = st['border-color']; + updateColor('bordercolor_pick','bordercolor'); + } +} + +tinyMCEPopup.onInit.add(init); diff --git a/askbot/skins/default/media/js/tinymce/plugins/table/langs/en_dlg.js b/askbot/skins/default/media/js/tinymce/plugins/table/langs/en_dlg.js new file mode 100644 index 00000000..463e09ee --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/table/langs/en_dlg.js @@ -0,0 +1 @@ +tinyMCE.addI18n('en.table_dlg',{"rules_border":"border","rules_box":"box","rules_vsides":"vsides","rules_rhs":"rhs","rules_lhs":"lhs","rules_hsides":"hsides","rules_below":"below","rules_above":"above","rules_void":"void",rules:"Rules","frame_all":"all","frame_cols":"cols","frame_rows":"rows","frame_groups":"groups","frame_none":"none",frame:"Frame",caption:"Table Caption","missing_scope":"Are you sure you want to continue without specifying a scope for this table header cell. Without it, it may be difficult for some users with disabilities to understand the content or data displayed of the table.","cell_limit":"You\'ve exceeded the maximum number of cells of {$cells}.","row_limit":"You\'ve exceeded the maximum number of rows of {$rows}.","col_limit":"You\'ve exceeded the maximum number of columns of {$cols}.",colgroup:"Col Group",rowgroup:"Row Group",scope:"Scope",tfoot:"Footer",tbody:"Body",thead:"Header","row_all":"Update All Rows in Table","row_even":"Update Even Rows in Table","row_odd":"Update Odd Rows in Table","row_row":"Update Current Row","cell_all":"Update All Cells in Table","cell_row":"Update All Cells in Row","cell_cell":"Update Current Cell",th:"Header",td:"Data",summary:"Summary",bgimage:"Background Image",rtl:"Right to Left",ltr:"Left to Right",mime:"Target MIME Type",langcode:"Language Code",langdir:"Language Direction",style:"Style",id:"ID","merge_cells_title":"Merge Table Cells",bgcolor:"Background Color",bordercolor:"Border Color","align_bottom":"Bottom","align_top":"Top",valign:"Vertical Alignment","cell_type":"Cell Type","cell_title":"Table Cell Properties","row_title":"Table Row Properties","align_middle":"Center","align_right":"Right","align_left":"Left","align_default":"Default",align:"Alignment",border:"Border",cellpadding:"Cell Padding",cellspacing:"Cell Spacing",rows:"Rows",cols:"Columns",height:"Height",width:"Width",title:"Insert/Edit Table",rowtype:"Row Type","advanced_props":"Advanced Properties","general_props":"General Properties","advanced_tab":"Advanced","general_tab":"General","cell_col":"Update all cells in column"}); \ No newline at end of file diff --git a/askbot/skins/default/media/js/tinymce/plugins/table/merge_cells.htm b/askbot/skins/default/media/js/tinymce/plugins/table/merge_cells.htm new file mode 100644 index 00000000..d231090e --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/table/merge_cells.htm @@ -0,0 +1,32 @@ + + + + {#table_dlg.merge_cells_title} + + + + + + +
          +
          + {#table_dlg.merge_cells_title} + + + + + + + + + +
          :
          :
          +
          + +
          + + +
          +
          + + diff --git a/askbot/skins/default/media/js/tinymce/plugins/table/row.htm b/askbot/skins/default/media/js/tinymce/plugins/table/row.htm new file mode 100644 index 00000000..1885401f --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/table/row.htm @@ -0,0 +1,158 @@ + + + + {#table_dlg.row_title} + + + + + + + + + +
          + + +
          +
          +
          + {#table_dlg.general_props} + + + + + + + + + + + + + + + + + + + + + + + + + + +
          + +
          + +
          + +
          + +
          +
          +
          + +
          +
          + {#table_dlg.advanced_props} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          + +
          + +
          + + + + + +
           
          +
          + + + + + + +
           
          +
          +
          +
          +
          +
          + +
          +
          + +
          + + + +
          +
          + + diff --git a/askbot/skins/default/media/js/tinymce/plugins/table/table.htm b/askbot/skins/default/media/js/tinymce/plugins/table/table.htm new file mode 100644 index 00000000..b92fa741 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/table/table.htm @@ -0,0 +1,188 @@ + + + + {#table_dlg.title} + + + + + + + + + + +
          + + +
          +
          +
          + {#table_dlg.general_props} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          +
          +
          +
          + +
          +
          + {#table_dlg.advanced_props} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          + +
          + + + + + +
           
          +
          + +
          + +
          + +
          + + + + + +
           
          +
          + + + + + +
           
          +
          +
          +
          +
          + +
          + + +
          +
          + + diff --git a/askbot/skins/default/media/js/tinymce/plugins/template/blank.htm b/askbot/skins/default/media/js/tinymce/plugins/template/blank.htm new file mode 100644 index 00000000..ecde53fa --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/template/blank.htm @@ -0,0 +1,12 @@ + + + blank_page + + + + + + + diff --git a/askbot/skins/default/media/js/tinymce/plugins/template/css/template.css b/askbot/skins/default/media/js/tinymce/plugins/template/css/template.css new file mode 100644 index 00000000..2d23a493 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/template/css/template.css @@ -0,0 +1,23 @@ +#frmbody { + padding: 10px; + background-color: #FFF; + border: 1px solid #CCC; +} + +.frmRow { + margin-bottom: 10px; +} + +#templatesrc { + border: none; + width: 320px; + height: 240px; +} + +.title { + padding-bottom: 5px; +} + +.mceActionPanel { + padding-top: 5px; +} diff --git a/askbot/skins/default/media/js/tinymce/plugins/template/editor_plugin.js b/askbot/skins/default/media/js/tinymce/plugins/template/editor_plugin.js new file mode 100644 index 00000000..ebe3c27d --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/template/editor_plugin.js @@ -0,0 +1 @@ +(function(){var a=tinymce.each;tinymce.create("tinymce.plugins.TemplatePlugin",{init:function(b,c){var d=this;d.editor=b;b.addCommand("mceTemplate",function(e){b.windowManager.open({file:c+"/template.htm",width:b.getParam("template_popup_width",750),height:b.getParam("template_popup_height",600),inline:1},{plugin_url:c})});b.addCommand("mceInsertTemplate",d._insertTemplate,d);b.addButton("template",{title:"template.desc",cmd:"mceTemplate"});b.onPreProcess.add(function(e,g){var f=e.dom;a(f.select("div",g.node),function(h){if(f.hasClass(h,"mceTmpl")){a(f.select("*",h),function(i){if(f.hasClass(i,e.getParam("template_mdate_classes","mdate").replace(/\s+/g,"|"))){i.innerHTML=d._getDateTime(new Date(),e.getParam("template_mdate_format",e.getLang("template.mdate_format")))}});d._replaceVals(h)}})})},getInfo:function(){return{longname:"Template plugin",author:"Moxiecode Systems AB",authorurl:"http://www.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/template",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_insertTemplate:function(i,j){var k=this,g=k.editor,f,c,d=g.dom,b=g.selection.getContent();f=j.content;a(k.editor.getParam("template_replace_values"),function(l,h){if(typeof(l)!="function"){f=f.replace(new RegExp("\\{\\$"+h+"\\}","g"),l)}});c=d.create("div",null,f);n=d.select(".mceTmpl",c);if(n&&n.length>0){c=d.create("div",null);c.appendChild(n[0].cloneNode(true))}function e(l,h){return new RegExp("\\b"+h+"\\b","g").test(l.className)}a(d.select("*",c),function(h){if(e(h,g.getParam("template_cdate_classes","cdate").replace(/\s+/g,"|"))){h.innerHTML=k._getDateTime(new Date(),g.getParam("template_cdate_format",g.getLang("template.cdate_format")))}if(e(h,g.getParam("template_mdate_classes","mdate").replace(/\s+/g,"|"))){h.innerHTML=k._getDateTime(new Date(),g.getParam("template_mdate_format",g.getLang("template.mdate_format")))}if(e(h,g.getParam("template_selected_content_classes","selcontent").replace(/\s+/g,"|"))){h.innerHTML=b}});k._replaceVals(c);g.execCommand("mceInsertContent",false,c.innerHTML);g.addVisual()},_replaceVals:function(c){var d=this.editor.dom,b=this.editor.getParam("template_replace_values");a(d.select("*",c),function(f){a(b,function(g,e){if(d.hasClass(f,e)){if(typeof(b[e])=="function"){b[e](f)}}})})},_getDateTime:function(e,b){if(!b){return""}function c(g,d){var f;g=""+g;if(g.length 0) { + el = dom.create('div', null); + el.appendChild(n[0].cloneNode(true)); + } + + function hasClass(n, c) { + return new RegExp('\\b' + c + '\\b', 'g').test(n.className); + }; + + each(dom.select('*', el), function(n) { + // Replace cdate + if (hasClass(n, ed.getParam('template_cdate_classes', 'cdate').replace(/\s+/g, '|'))) + n.innerHTML = t._getDateTime(new Date(), ed.getParam("template_cdate_format", ed.getLang("template.cdate_format"))); + + // Replace mdate + if (hasClass(n, ed.getParam('template_mdate_classes', 'mdate').replace(/\s+/g, '|'))) + n.innerHTML = t._getDateTime(new Date(), ed.getParam("template_mdate_format", ed.getLang("template.mdate_format"))); + + // Replace selection + if (hasClass(n, ed.getParam('template_selected_content_classes', 'selcontent').replace(/\s+/g, '|'))) + n.innerHTML = sel; + }); + + t._replaceVals(el); + + ed.execCommand('mceInsertContent', false, el.innerHTML); + ed.addVisual(); + }, + + _replaceVals : function(e) { + var dom = this.editor.dom, vl = this.editor.getParam('template_replace_values'); + + each(dom.select('*', e), function(e) { + each(vl, function(v, k) { + if (dom.hasClass(e, k)) { + if (typeof(vl[k]) == 'function') + vl[k](e); + } + }); + }); + }, + + _getDateTime : function(d, fmt) { + if (!fmt) + return ""; + + function addZeros(value, len) { + var i; + + value = "" + value; + + if (value.length < len) { + for (i=0; i<(len-value.length); i++) + value = "0" + value; + } + + return value; + } + + fmt = fmt.replace("%D", "%m/%d/%y"); + fmt = fmt.replace("%r", "%I:%M:%S %p"); + fmt = fmt.replace("%Y", "" + d.getFullYear()); + fmt = fmt.replace("%y", "" + d.getYear()); + fmt = fmt.replace("%m", addZeros(d.getMonth()+1, 2)); + fmt = fmt.replace("%d", addZeros(d.getDate(), 2)); + fmt = fmt.replace("%H", "" + addZeros(d.getHours(), 2)); + fmt = fmt.replace("%M", "" + addZeros(d.getMinutes(), 2)); + fmt = fmt.replace("%S", "" + addZeros(d.getSeconds(), 2)); + fmt = fmt.replace("%I", "" + ((d.getHours() + 11) % 12 + 1)); + fmt = fmt.replace("%p", "" + (d.getHours() < 12 ? "AM" : "PM")); + fmt = fmt.replace("%B", "" + this.editor.getLang("template_months_long").split(',')[d.getMonth()]); + fmt = fmt.replace("%b", "" + this.editor.getLang("template_months_short").split(',')[d.getMonth()]); + fmt = fmt.replace("%A", "" + this.editor.getLang("template_day_long").split(',')[d.getDay()]); + fmt = fmt.replace("%a", "" + this.editor.getLang("template_day_short").split(',')[d.getDay()]); + fmt = fmt.replace("%%", "%"); + + return fmt; + } + }); + + // Register plugin + tinymce.PluginManager.add('template', tinymce.plugins.TemplatePlugin); +})(); \ No newline at end of file diff --git a/askbot/skins/default/media/js/tinymce/plugins/template/js/template.js b/askbot/skins/default/media/js/tinymce/plugins/template/js/template.js new file mode 100644 index 00000000..bc3045d2 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/template/js/template.js @@ -0,0 +1,106 @@ +tinyMCEPopup.requireLangPack(); + +var TemplateDialog = { + preInit : function() { + var url = tinyMCEPopup.getParam("template_external_list_url"); + + if (url != null) + document.write(''); + }, + + init : function() { + var ed = tinyMCEPopup.editor, tsrc, sel, x, u; + + tsrc = ed.getParam("template_templates", false); + sel = document.getElementById('tpath'); + + // Setup external template list + if (!tsrc && typeof(tinyMCETemplateList) != 'undefined') { + for (x=0, tsrc = []; x'); + }); + }, + + selectTemplate : function(u, ti) { + var d = window.frames['templatesrc'].document, x, tsrc = this.tsrc; + + if (!u) + return; + + d.body.innerHTML = this.templateHTML = this.getFileContents(u); + + for (x=0; x + + {#template_dlg.title} + + + + + +
          +
          +
          {#template_dlg.desc}
          +
          + +
          +
          +
          +
          + {#template_dlg.preview} + +
          +
          + +
          + + +
          +
          + + diff --git a/askbot/skins/default/media/js/tinymce/plugins/visualblocks/css/visualblocks.css b/askbot/skins/default/media/js/tinymce/plugins/visualblocks/css/visualblocks.css new file mode 100644 index 00000000..76bc92b5 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/visualblocks/css/visualblocks.css @@ -0,0 +1,21 @@ +p, h1, h2, h3, h4, h5, h6, hgroup, aside, div, section, article, blockquote, address, pre, figure {display: block; padding-top: 10px; border: 1px dashed #BBB; background: transparent no-repeat} +p, h1, h2, h3, h4, h5, h6, hgroup, aside, div, section, article, address, pre, figure {margin-left: 3px} +section, article, address, hgroup, aside, figure {margin: 0 0 1em 3px} + +p {background-image: url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7)} +h1 {background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==)} +h2 {background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==)} +h3 {background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7)} +h4 {background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==)} +h5 {background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==)} +h6 {background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==)} +div {background-image: url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7)} +section {background-image: url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=)} +article {background-image: url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7)} +blockquote {background-image: url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7)} +address {background-image: url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=)} +pre {background-image: url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==)} +hgroup {background-image: url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7)} +aside {background-image: url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=)} +figure {background-image: url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7)} +figcaption {border: 1px dashed #BBB} diff --git a/askbot/skins/default/media/js/tinymce/plugins/visualblocks/editor_plugin.js b/askbot/skins/default/media/js/tinymce/plugins/visualblocks/editor_plugin.js new file mode 100644 index 00000000..c65eaf2b --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/visualblocks/editor_plugin.js @@ -0,0 +1 @@ +(function(){tinymce.create("tinymce.plugins.VisualBlocks",{init:function(a,b){var c;if(!window.NodeList){return}a.addCommand("mceVisualBlocks",function(){var e=a.dom,d;if(!c){c=e.uniqueId();d=e.create("link",{id:c,rel:"stylesheet",href:b+"/css/visualblocks.css"});a.getDoc().getElementsByTagName("head")[0].appendChild(d)}else{d=e.get(c);d.disabled=!d.disabled}a.controlManager.setActive("visualblocks",!d.disabled)});a.addButton("visualblocks",{title:"visualblocks.desc",cmd:"mceVisualBlocks"});a.onInit.add(function(){if(a.settings.visualblocks_default_state){a.execCommand("mceVisualBlocks",false,null,{skip_focus:true})}})},getInfo:function(){return{longname:"Visual blocks",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/visualblocks",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("visualblocks",tinymce.plugins.VisualBlocks)})(); \ No newline at end of file diff --git a/askbot/skins/default/media/js/tinymce/plugins/visualblocks/editor_plugin_src.js b/askbot/skins/default/media/js/tinymce/plugins/visualblocks/editor_plugin_src.js new file mode 100644 index 00000000..b9d2ab2e --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/visualblocks/editor_plugin_src.js @@ -0,0 +1,63 @@ +/** + * editor_plugin_src.js + * + * Copyright 2012, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +(function() { + tinymce.create('tinymce.plugins.VisualBlocks', { + init : function(ed, url) { + var cssId; + + // We don't support older browsers like IE6/7 and they don't provide prototypes for DOM objects + if (!window.NodeList) { + return; + } + + ed.addCommand('mceVisualBlocks', function() { + var dom = ed.dom, linkElm; + + if (!cssId) { + cssId = dom.uniqueId(); + linkElm = dom.create('link', { + id: cssId, + rel : 'stylesheet', + href : url + '/css/visualblocks.css' + }); + + ed.getDoc().getElementsByTagName('head')[0].appendChild(linkElm); + } else { + linkElm = dom.get(cssId); + linkElm.disabled = !linkElm.disabled; + } + + ed.controlManager.setActive('visualblocks', !linkElm.disabled); + }); + + ed.addButton('visualblocks', {title : 'visualblocks.desc', cmd : 'mceVisualBlocks'}); + + ed.onInit.add(function() { + if (ed.settings.visualblocks_default_state) { + ed.execCommand('mceVisualBlocks', false, null, {skip_focus : true}); + } + }); + }, + + getInfo : function() { + return { + longname : 'Visual blocks', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/visualblocks', + version : tinymce.majorVersion + "." + tinymce.minorVersion + }; + } + }); + + // Register plugin + tinymce.PluginManager.add('visualblocks', tinymce.plugins.VisualBlocks); +})(); \ No newline at end of file diff --git a/askbot/skins/default/media/js/tinymce/plugins/visualchars/editor_plugin.js b/askbot/skins/default/media/js/tinymce/plugins/visualchars/editor_plugin.js new file mode 100644 index 00000000..1a148e8b --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/visualchars/editor_plugin.js @@ -0,0 +1 @@ +(function(){tinymce.create("tinymce.plugins.VisualChars",{init:function(a,b){var c=this;c.editor=a;a.addCommand("mceVisualChars",c._toggleVisualChars,c);a.addButton("visualchars",{title:"visualchars.desc",cmd:"mceVisualChars"});a.onBeforeGetContent.add(function(d,e){if(c.state&&e.format!="raw"&&!e.draft){c.state=true;c._toggleVisualChars(false)}})},getInfo:function(){return{longname:"Visual characters",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/visualchars",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_toggleVisualChars:function(m){var p=this,k=p.editor,a,g,j,n=k.getDoc(),o=k.getBody(),l,q=k.selection,e,c,f;p.state=!p.state;k.controlManager.setActive("visualchars",p.state);if(m){f=q.getBookmark()}if(p.state){a=[];tinymce.walk(o,function(b){if(b.nodeType==3&&b.nodeValue&&b.nodeValue.indexOf("\u00a0")!=-1){a.push(b)}},"childNodes");for(g=0;g$1');c=k.dom.create("div",null,l);while(node=c.lastChild){k.dom.insertAfter(node,a[g])}k.dom.remove(a[g])}}else{a=k.dom.select("span.mceItemNbsp",o);for(g=a.length-1;g>=0;g--){k.dom.remove(a[g],1)}}q.moveToBookmark(f)}});tinymce.PluginManager.add("visualchars",tinymce.plugins.VisualChars)})(); \ No newline at end of file diff --git a/askbot/skins/default/media/js/tinymce/plugins/visualchars/editor_plugin_src.js b/askbot/skins/default/media/js/tinymce/plugins/visualchars/editor_plugin_src.js new file mode 100644 index 00000000..df985905 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/visualchars/editor_plugin_src.js @@ -0,0 +1,83 @@ +/** + * editor_plugin_src.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +(function() { + tinymce.create('tinymce.plugins.VisualChars', { + init : function(ed, url) { + var t = this; + + t.editor = ed; + + // Register commands + ed.addCommand('mceVisualChars', t._toggleVisualChars, t); + + // Register buttons + ed.addButton('visualchars', {title : 'visualchars.desc', cmd : 'mceVisualChars'}); + + ed.onBeforeGetContent.add(function(ed, o) { + if (t.state && o.format != 'raw' && !o.draft) { + t.state = true; + t._toggleVisualChars(false); + } + }); + }, + + getInfo : function() { + return { + longname : 'Visual characters', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/visualchars', + version : tinymce.majorVersion + "." + tinymce.minorVersion + }; + }, + + // Private methods + + _toggleVisualChars : function(bookmark) { + var t = this, ed = t.editor, nl, i, h, d = ed.getDoc(), b = ed.getBody(), nv, s = ed.selection, bo, div, bm; + + t.state = !t.state; + ed.controlManager.setActive('visualchars', t.state); + + if (bookmark) + bm = s.getBookmark(); + + if (t.state) { + nl = []; + tinymce.walk(b, function(n) { + if (n.nodeType == 3 && n.nodeValue && n.nodeValue.indexOf('\u00a0') != -1) + nl.push(n); + }, 'childNodes'); + + for (i = 0; i < nl.length; i++) { + nv = nl[i].nodeValue; + nv = nv.replace(/(\u00a0)/g, '$1'); + + div = ed.dom.create('div', null, nv); + while (node = div.lastChild) + ed.dom.insertAfter(node, nl[i]); + + ed.dom.remove(nl[i]); + } + } else { + nl = ed.dom.select('span.mceItemNbsp', b); + + for (i = nl.length - 1; i >= 0; i--) + ed.dom.remove(nl[i], 1); + } + + s.moveToBookmark(bm); + } + }); + + // Register plugin + tinymce.PluginManager.add('visualchars', tinymce.plugins.VisualChars); +})(); \ No newline at end of file diff --git a/askbot/skins/default/media/js/tinymce/plugins/wordcount/editor_plugin.js b/askbot/skins/default/media/js/tinymce/plugins/wordcount/editor_plugin.js new file mode 100644 index 00000000..42ece209 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/wordcount/editor_plugin.js @@ -0,0 +1 @@ +(function(){tinymce.create("tinymce.plugins.WordCount",{block:0,id:null,countre:null,cleanre:null,init:function(c,d){var e=this,f=0,g=tinymce.VK;e.countre=c.getParam("wordcount_countregex",/[\w\u2019\'-]+/g);e.cleanre=c.getParam("wordcount_cleanregex",/[0-9.(),;:!?%#$?\'\"_+=\\\/-]*/g);e.update_rate=c.getParam("wordcount_update_rate",2000);e.update_on_delete=c.getParam("wordcount_update_on_delete",false);e.id=c.id+"-word-count";c.onPostRender.add(function(i,h){var j,k;k=i.getParam("wordcount_target_id");if(!k){j=tinymce.DOM.get(i.id+"_path_row");if(j){tinymce.DOM.add(j.parentNode,"div",{style:"float: right"},i.getLang("wordcount.words","Words: ")+'0')}}else{tinymce.DOM.add(k,"span",{},'0')}});c.onInit.add(function(h){h.selection.onSetContent.add(function(){e._count(h)});e._count(h)});c.onSetContent.add(function(h){e._count(h)});function b(h){return h!==f&&(h===g.ENTER||f===g.SPACEBAR||a(f))}function a(h){return h===g.DELETE||h===g.BACKSPACE}c.onKeyUp.add(function(h,i){if(b(i.keyCode)||e.update_on_delete&&a(i.keyCode)){e._count(h)}f=i.keyCode})},_getCount:function(c){var a=0;var b=c.getContent({format:"raw"});if(b){b=b.replace(/\.\.\./g," ");b=b.replace(/<.[^<>]*?>/g," ").replace(/ | /gi," ");b=b.replace(/(\w+)(&.+?;)+(\w+)/,"$1$3").replace(/&.+?;/g," ");b=b.replace(this.cleanre,"");var d=b.match(this.countre);if(d){a=d.length}}return a},_count:function(a){var b=this;if(b.block){return}b.block=1;setTimeout(function(){if(!a.destroyed){var c=b._getCount(a);tinymce.DOM.setHTML(b.id,c.toString());setTimeout(function(){b.block=0},b.update_rate)}},1)},getInfo:function(){return{longname:"Word Count plugin",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/wordcount",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("wordcount",tinymce.plugins.WordCount)})(); \ No newline at end of file diff --git a/askbot/skins/default/media/js/tinymce/plugins/wordcount/editor_plugin_src.js b/askbot/skins/default/media/js/tinymce/plugins/wordcount/editor_plugin_src.js new file mode 100644 index 00000000..34b26555 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/wordcount/editor_plugin_src.js @@ -0,0 +1,122 @@ +/** + * editor_plugin_src.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +(function() { + tinymce.create('tinymce.plugins.WordCount', { + block : 0, + id : null, + countre : null, + cleanre : null, + + init : function(ed, url) { + var t = this, last = 0, VK = tinymce.VK; + + t.countre = ed.getParam('wordcount_countregex', /[\w\u2019\'-]+/g); // u2019 == ’ + t.cleanre = ed.getParam('wordcount_cleanregex', /[0-9.(),;:!?%#$?\'\"_+=\\\/-]*/g); + t.update_rate = ed.getParam('wordcount_update_rate', 2000); + t.update_on_delete = ed.getParam('wordcount_update_on_delete', false); + t.id = ed.id + '-word-count'; + + ed.onPostRender.add(function(ed, cm) { + var row, id; + + // Add it to the specified id or the theme advanced path + id = ed.getParam('wordcount_target_id'); + if (!id) { + row = tinymce.DOM.get(ed.id + '_path_row'); + + if (row) + tinymce.DOM.add(row.parentNode, 'div', {'style': 'float: right'}, ed.getLang('wordcount.words', 'Words: ') + '0'); + } else { + tinymce.DOM.add(id, 'span', {}, '0'); + } + }); + + ed.onInit.add(function(ed) { + ed.selection.onSetContent.add(function() { + t._count(ed); + }); + + t._count(ed); + }); + + ed.onSetContent.add(function(ed) { + t._count(ed); + }); + + function checkKeys(key) { + return key !== last && (key === VK.ENTER || last === VK.SPACEBAR || checkDelOrBksp(last)); + } + + function checkDelOrBksp(key) { + return key === VK.DELETE || key === VK.BACKSPACE; + } + + ed.onKeyUp.add(function(ed, e) { + if (checkKeys(e.keyCode) || t.update_on_delete && checkDelOrBksp(e.keyCode)) { + t._count(ed); + } + + last = e.keyCode; + }); + }, + + _getCount : function(ed) { + var tc = 0; + var tx = ed.getContent({ format: 'raw' }); + + if (tx) { + tx = tx.replace(/\.\.\./g, ' '); // convert ellipses to spaces + tx = tx.replace(/<.[^<>]*?>/g, ' ').replace(/ | /gi, ' '); // remove html tags and space chars + + // deal with html entities + tx = tx.replace(/(\w+)(&.+?;)+(\w+)/, "$1$3").replace(/&.+?;/g, ' '); + tx = tx.replace(this.cleanre, ''); // remove numbers and punctuation + + var wordArray = tx.match(this.countre); + if (wordArray) { + tc = wordArray.length; + } + } + + return tc; + }, + + _count : function(ed) { + var t = this; + + // Keep multiple calls from happening at the same time + if (t.block) + return; + + t.block = 1; + + setTimeout(function() { + if (!ed.destroyed) { + var tc = t._getCount(ed); + tinymce.DOM.setHTML(t.id, tc.toString()); + setTimeout(function() {t.block = 0;}, t.update_rate); + } + }, 1); + }, + + getInfo: function() { + return { + longname : 'Word Count plugin', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/wordcount', + version : tinymce.majorVersion + "." + tinymce.minorVersion + }; + } + }); + + tinymce.PluginManager.add('wordcount', tinymce.plugins.WordCount); +})(); diff --git a/askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/abbr.htm b/askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/abbr.htm new file mode 100644 index 00000000..30a894f7 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/abbr.htm @@ -0,0 +1,142 @@ + + + + {#xhtmlxtras_dlg.title_abbr_element} + + + + + + + + + + +
          + + +
          +
          +
          + {#xhtmlxtras_dlg.fieldset_attrib_tab} + + + + + + + + + + + + + + + + + + + + + + + + + +
          :
          :
          : + +
          :
          : + +
          : + +
          +
          +
          +
          +
          + {#xhtmlxtras_dlg.fieldset_events_tab} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          :
          :
          :
          :
          :
          :
          :
          :
          :
          :
          :
          :
          +
          +
          +
          +
          + + + +
          +
          + + diff --git a/askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/acronym.htm b/askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/acronym.htm new file mode 100644 index 00000000..c1093459 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/acronym.htm @@ -0,0 +1,142 @@ + + + + {#xhtmlxtras_dlg.title_acronym_element} + + + + + + + + + + +
          + + +
          +
          +
          + {#xhtmlxtras_dlg.fieldset_attrib_tab} + + + + + + + + + + + + + + + + + + + + + + + + + +
          :
          :
          : + +
          :
          : + +
          : + +
          +
          +
          +
          +
          + {#xhtmlxtras_dlg.fieldset_events_tab} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          :
          :
          :
          :
          :
          :
          :
          :
          :
          :
          :
          :
          +
          +
          +
          +
          + + + +
          +
          + + diff --git a/askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/attributes.htm b/askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/attributes.htm new file mode 100644 index 00000000..e8d606a3 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/attributes.htm @@ -0,0 +1,149 @@ + + + + {#xhtmlxtras_dlg.attribs_title} + + + + + + + + + +
          + + +
          +
          +
          + {#xhtmlxtras_dlg.attribute_attrib_tab} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          :
          :
          + +
          :
          : + +
          : + +
          +
          +
          +
          +
          + {#xhtmlxtras_dlg.attribute_events_tab} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          :
          :
          :
          :
          :
          :
          :
          :
          :
          :
          :
          :
          +
          +
          +
          +
          + + +
          +
          + + diff --git a/askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/cite.htm b/askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/cite.htm new file mode 100644 index 00000000..0ac6bdb6 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/cite.htm @@ -0,0 +1,142 @@ + + + + {#xhtmlxtras_dlg.title_cite_element} + + + + + + + + + + +
          + + +
          +
          +
          + {#xhtmlxtras_dlg.fieldset_attrib_tab} + + + + + + + + + + + + + + + + + + + + + + + + + +
          :
          :
          : + +
          :
          : + +
          : + +
          +
          +
          +
          +
          + {#xhtmlxtras_dlg.fieldset_events_tab} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          :
          :
          :
          :
          :
          :
          :
          :
          :
          :
          :
          :
          +
          +
          +
          +
          + + + +
          +
          + + diff --git a/askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/css/attributes.css b/askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/css/attributes.css new file mode 100644 index 00000000..9a6a235c --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/css/attributes.css @@ -0,0 +1,11 @@ +.panel_wrapper div.current { + height: 290px; +} + +#id, #style, #title, #dir, #hreflang, #lang, #classlist, #tabindex, #accesskey { + width: 200px; +} + +#events_panel input { + width: 200px; +} diff --git a/askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/css/popup.css b/askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/css/popup.css new file mode 100644 index 00000000..e67114db --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/css/popup.css @@ -0,0 +1,9 @@ +input.field, select.field {width:200px;} +input.picker {width:179px; margin-left: 5px;} +input.disabled {border-color:#F2F2F2;} +img.picker {vertical-align:text-bottom; cursor:pointer;} +h1 {padding: 0 0 5px 0;} +.panel_wrapper div.current {height:160px;} +#xhtmlxtrasdel .panel_wrapper div.current, #xhtmlxtrasins .panel_wrapper div.current {height: 230px;} +a.browse span {display:block; width:20px; height:20px; background:url('../../../themes/advanced/img/icons.gif') -140px -20px;} +#datetime {width:180px;} diff --git a/askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/del.htm b/askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/del.htm new file mode 100644 index 00000000..5f667510 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/del.htm @@ -0,0 +1,162 @@ + + + + {#xhtmlxtras_dlg.title_del_element} + + + + + + + + + + +
          + + +
          +
          +
          + {#xhtmlxtras_dlg.fieldset_general_tab} + + + + + + + + + +
          : + + + + + +
          +
          :
          +
          +
          + {#xhtmlxtras_dlg.fieldset_attrib_tab} + + + + + + + + + + + + + + + + + + + + + + + + + +
          :
          :
          : + +
          :
          : + +
          : + +
          +
          +
          +
          +
          + {#xhtmlxtras_dlg.fieldset_events_tab} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          :
          :
          :
          :
          :
          :
          :
          :
          :
          :
          :
          :
          +
          +
          +
          +
          + + + +
          +
          + + diff --git a/askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/editor_plugin.js b/askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/editor_plugin.js new file mode 100644 index 00000000..9b98a515 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/editor_plugin.js @@ -0,0 +1 @@ +(function(){tinymce.create("tinymce.plugins.XHTMLXtrasPlugin",{init:function(a,b){a.addCommand("mceCite",function(){a.windowManager.open({file:b+"/cite.htm",width:350+parseInt(a.getLang("xhtmlxtras.cite_delta_width",0)),height:250+parseInt(a.getLang("xhtmlxtras.cite_delta_height",0)),inline:1},{plugin_url:b})});a.addCommand("mceAcronym",function(){a.windowManager.open({file:b+"/acronym.htm",width:350+parseInt(a.getLang("xhtmlxtras.acronym_delta_width",0)),height:250+parseInt(a.getLang("xhtmlxtras.acronym_delta_height",0)),inline:1},{plugin_url:b})});a.addCommand("mceAbbr",function(){a.windowManager.open({file:b+"/abbr.htm",width:350+parseInt(a.getLang("xhtmlxtras.abbr_delta_width",0)),height:250+parseInt(a.getLang("xhtmlxtras.abbr_delta_height",0)),inline:1},{plugin_url:b})});a.addCommand("mceDel",function(){a.windowManager.open({file:b+"/del.htm",width:340+parseInt(a.getLang("xhtmlxtras.del_delta_width",0)),height:310+parseInt(a.getLang("xhtmlxtras.del_delta_height",0)),inline:1},{plugin_url:b})});a.addCommand("mceIns",function(){a.windowManager.open({file:b+"/ins.htm",width:340+parseInt(a.getLang("xhtmlxtras.ins_delta_width",0)),height:310+parseInt(a.getLang("xhtmlxtras.ins_delta_height",0)),inline:1},{plugin_url:b})});a.addCommand("mceAttributes",function(){a.windowManager.open({file:b+"/attributes.htm",width:380+parseInt(a.getLang("xhtmlxtras.attr_delta_width",0)),height:370+parseInt(a.getLang("xhtmlxtras.attr_delta_height",0)),inline:1},{plugin_url:b})});a.addButton("cite",{title:"xhtmlxtras.cite_desc",cmd:"mceCite"});a.addButton("acronym",{title:"xhtmlxtras.acronym_desc",cmd:"mceAcronym"});a.addButton("abbr",{title:"xhtmlxtras.abbr_desc",cmd:"mceAbbr"});a.addButton("del",{title:"xhtmlxtras.del_desc",cmd:"mceDel"});a.addButton("ins",{title:"xhtmlxtras.ins_desc",cmd:"mceIns"});a.addButton("attribs",{title:"xhtmlxtras.attribs_desc",cmd:"mceAttributes"});a.onNodeChange.add(function(d,c,f,e){f=d.dom.getParent(f,"CITE,ACRONYM,ABBR,DEL,INS");c.setDisabled("cite",e);c.setDisabled("acronym",e);c.setDisabled("abbr",e);c.setDisabled("del",e);c.setDisabled("ins",e);c.setDisabled("attribs",f&&f.nodeName=="BODY");c.setActive("cite",0);c.setActive("acronym",0);c.setActive("abbr",0);c.setActive("del",0);c.setActive("ins",0);if(f){do{c.setDisabled(f.nodeName.toLowerCase(),0);c.setActive(f.nodeName.toLowerCase(),1)}while(f=f.parentNode)}});a.onPreInit.add(function(){a.dom.create("abbr")})},getInfo:function(){return{longname:"XHTML Xtras Plugin",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/xhtmlxtras",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("xhtmlxtras",tinymce.plugins.XHTMLXtrasPlugin)})(); \ No newline at end of file diff --git a/askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/editor_plugin_src.js b/askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/editor_plugin_src.js new file mode 100644 index 00000000..f2405721 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/editor_plugin_src.js @@ -0,0 +1,132 @@ +/** + * editor_plugin_src.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +(function() { + tinymce.create('tinymce.plugins.XHTMLXtrasPlugin', { + init : function(ed, url) { + // Register commands + ed.addCommand('mceCite', function() { + ed.windowManager.open({ + file : url + '/cite.htm', + width : 350 + parseInt(ed.getLang('xhtmlxtras.cite_delta_width', 0)), + height : 250 + parseInt(ed.getLang('xhtmlxtras.cite_delta_height', 0)), + inline : 1 + }, { + plugin_url : url + }); + }); + + ed.addCommand('mceAcronym', function() { + ed.windowManager.open({ + file : url + '/acronym.htm', + width : 350 + parseInt(ed.getLang('xhtmlxtras.acronym_delta_width', 0)), + height : 250 + parseInt(ed.getLang('xhtmlxtras.acronym_delta_height', 0)), + inline : 1 + }, { + plugin_url : url + }); + }); + + ed.addCommand('mceAbbr', function() { + ed.windowManager.open({ + file : url + '/abbr.htm', + width : 350 + parseInt(ed.getLang('xhtmlxtras.abbr_delta_width', 0)), + height : 250 + parseInt(ed.getLang('xhtmlxtras.abbr_delta_height', 0)), + inline : 1 + }, { + plugin_url : url + }); + }); + + ed.addCommand('mceDel', function() { + ed.windowManager.open({ + file : url + '/del.htm', + width : 340 + parseInt(ed.getLang('xhtmlxtras.del_delta_width', 0)), + height : 310 + parseInt(ed.getLang('xhtmlxtras.del_delta_height', 0)), + inline : 1 + }, { + plugin_url : url + }); + }); + + ed.addCommand('mceIns', function() { + ed.windowManager.open({ + file : url + '/ins.htm', + width : 340 + parseInt(ed.getLang('xhtmlxtras.ins_delta_width', 0)), + height : 310 + parseInt(ed.getLang('xhtmlxtras.ins_delta_height', 0)), + inline : 1 + }, { + plugin_url : url + }); + }); + + ed.addCommand('mceAttributes', function() { + ed.windowManager.open({ + file : url + '/attributes.htm', + width : 380 + parseInt(ed.getLang('xhtmlxtras.attr_delta_width', 0)), + height : 370 + parseInt(ed.getLang('xhtmlxtras.attr_delta_height', 0)), + inline : 1 + }, { + plugin_url : url + }); + }); + + // Register buttons + ed.addButton('cite', {title : 'xhtmlxtras.cite_desc', cmd : 'mceCite'}); + ed.addButton('acronym', {title : 'xhtmlxtras.acronym_desc', cmd : 'mceAcronym'}); + ed.addButton('abbr', {title : 'xhtmlxtras.abbr_desc', cmd : 'mceAbbr'}); + ed.addButton('del', {title : 'xhtmlxtras.del_desc', cmd : 'mceDel'}); + ed.addButton('ins', {title : 'xhtmlxtras.ins_desc', cmd : 'mceIns'}); + ed.addButton('attribs', {title : 'xhtmlxtras.attribs_desc', cmd : 'mceAttributes'}); + + ed.onNodeChange.add(function(ed, cm, n, co) { + n = ed.dom.getParent(n, 'CITE,ACRONYM,ABBR,DEL,INS'); + + cm.setDisabled('cite', co); + cm.setDisabled('acronym', co); + cm.setDisabled('abbr', co); + cm.setDisabled('del', co); + cm.setDisabled('ins', co); + cm.setDisabled('attribs', n && n.nodeName == 'BODY'); + cm.setActive('cite', 0); + cm.setActive('acronym', 0); + cm.setActive('abbr', 0); + cm.setActive('del', 0); + cm.setActive('ins', 0); + + // Activate all + if (n) { + do { + cm.setDisabled(n.nodeName.toLowerCase(), 0); + cm.setActive(n.nodeName.toLowerCase(), 1); + } while (n = n.parentNode); + } + }); + + ed.onPreInit.add(function() { + // Fixed IE issue where it can't handle these elements correctly + ed.dom.create('abbr'); + }); + }, + + getInfo : function() { + return { + longname : 'XHTML Xtras Plugin', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/xhtmlxtras', + version : tinymce.majorVersion + "." + tinymce.minorVersion + }; + } + }); + + // Register plugin + tinymce.PluginManager.add('xhtmlxtras', tinymce.plugins.XHTMLXtrasPlugin); +})(); \ No newline at end of file diff --git a/askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/ins.htm b/askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/ins.htm new file mode 100644 index 00000000..d001ac7c --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/ins.htm @@ -0,0 +1,162 @@ + + + + {#xhtmlxtras_dlg.title_ins_element} + + + + + + + + + + +
          + + +
          +
          +
          + {#xhtmlxtras_dlg.fieldset_general_tab} + + + + + + + + + +
          : + + + + + +
          +
          :
          +
          +
          + {#xhtmlxtras_dlg.fieldset_attrib_tab} + + + + + + + + + + + + + + + + + + + + + + + + + +
          :
          :
          : + +
          :
          : + +
          : + +
          +
          +
          +
          +
          + {#xhtmlxtras_dlg.fieldset_events_tab} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          :
          :
          :
          :
          :
          :
          :
          :
          :
          :
          :
          :
          +
          +
          +
          +
          + + + +
          +
          + + diff --git a/askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/js/abbr.js b/askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/js/abbr.js new file mode 100644 index 00000000..4b51a257 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/js/abbr.js @@ -0,0 +1,28 @@ +/** + * abbr.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +function init() { + SXE.initElementDialog('abbr'); + if (SXE.currentAction == "update") { + SXE.showRemoveButton(); + } +} + +function insertAbbr() { + SXE.insertElement('abbr'); + tinyMCEPopup.close(); +} + +function removeAbbr() { + SXE.removeElement('abbr'); + tinyMCEPopup.close(); +} + +tinyMCEPopup.onInit.add(init); diff --git a/askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/js/acronym.js b/askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/js/acronym.js new file mode 100644 index 00000000..6ec2f887 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/js/acronym.js @@ -0,0 +1,28 @@ +/** + * acronym.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +function init() { + SXE.initElementDialog('acronym'); + if (SXE.currentAction == "update") { + SXE.showRemoveButton(); + } +} + +function insertAcronym() { + SXE.insertElement('acronym'); + tinyMCEPopup.close(); +} + +function removeAcronym() { + SXE.removeElement('acronym'); + tinyMCEPopup.close(); +} + +tinyMCEPopup.onInit.add(init); diff --git a/askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/js/attributes.js b/askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/js/attributes.js new file mode 100644 index 00000000..9c99995a --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/js/attributes.js @@ -0,0 +1,111 @@ +/** + * attributes.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +function init() { + tinyMCEPopup.resizeToInnerSize(); + var inst = tinyMCEPopup.editor; + var dom = inst.dom; + var elm = inst.selection.getNode(); + var f = document.forms[0]; + var onclick = dom.getAttrib(elm, 'onclick'); + + setFormValue('title', dom.getAttrib(elm, 'title')); + setFormValue('id', dom.getAttrib(elm, 'id')); + setFormValue('style', dom.getAttrib(elm, "style")); + setFormValue('dir', dom.getAttrib(elm, 'dir')); + setFormValue('lang', dom.getAttrib(elm, 'lang')); + setFormValue('tabindex', dom.getAttrib(elm, 'tabindex', typeof(elm.tabindex) != "undefined" ? elm.tabindex : "")); + setFormValue('accesskey', dom.getAttrib(elm, 'accesskey', typeof(elm.accesskey) != "undefined" ? elm.accesskey : "")); + setFormValue('onfocus', dom.getAttrib(elm, 'onfocus')); + setFormValue('onblur', dom.getAttrib(elm, 'onblur')); + setFormValue('onclick', onclick); + setFormValue('ondblclick', dom.getAttrib(elm, 'ondblclick')); + setFormValue('onmousedown', dom.getAttrib(elm, 'onmousedown')); + setFormValue('onmouseup', dom.getAttrib(elm, 'onmouseup')); + setFormValue('onmouseover', dom.getAttrib(elm, 'onmouseover')); + setFormValue('onmousemove', dom.getAttrib(elm, 'onmousemove')); + setFormValue('onmouseout', dom.getAttrib(elm, 'onmouseout')); + setFormValue('onkeypress', dom.getAttrib(elm, 'onkeypress')); + setFormValue('onkeydown', dom.getAttrib(elm, 'onkeydown')); + setFormValue('onkeyup', dom.getAttrib(elm, 'onkeyup')); + className = dom.getAttrib(elm, 'class'); + + addClassesToList('classlist', 'advlink_styles'); + selectByValue(f, 'classlist', className, true); + + TinyMCE_EditableSelects.init(); +} + +function setFormValue(name, value) { + if(value && document.forms[0].elements[name]){ + document.forms[0].elements[name].value = value; + } +} + +function insertAction() { + var inst = tinyMCEPopup.editor; + var elm = inst.selection.getNode(); + + setAllAttribs(elm); + tinyMCEPopup.execCommand("mceEndUndoLevel"); + tinyMCEPopup.close(); +} + +function setAttrib(elm, attrib, value) { + var formObj = document.forms[0]; + var valueElm = formObj.elements[attrib.toLowerCase()]; + var inst = tinyMCEPopup.editor; + var dom = inst.dom; + + if (typeof(value) == "undefined" || value == null) { + value = ""; + + if (valueElm) + value = valueElm.value; + } + + dom.setAttrib(elm, attrib.toLowerCase(), value); +} + +function setAllAttribs(elm) { + var f = document.forms[0]; + + setAttrib(elm, 'title'); + setAttrib(elm, 'id'); + setAttrib(elm, 'style'); + setAttrib(elm, 'class', getSelectValue(f, 'classlist')); + setAttrib(elm, 'dir'); + setAttrib(elm, 'lang'); + setAttrib(elm, 'tabindex'); + setAttrib(elm, 'accesskey'); + setAttrib(elm, 'onfocus'); + setAttrib(elm, 'onblur'); + setAttrib(elm, 'onclick'); + setAttrib(elm, 'ondblclick'); + setAttrib(elm, 'onmousedown'); + setAttrib(elm, 'onmouseup'); + setAttrib(elm, 'onmouseover'); + setAttrib(elm, 'onmousemove'); + setAttrib(elm, 'onmouseout'); + setAttrib(elm, 'onkeypress'); + setAttrib(elm, 'onkeydown'); + setAttrib(elm, 'onkeyup'); + + // Refresh in old MSIE +// if (tinyMCE.isMSIE5) +// elm.outerHTML = elm.outerHTML; +} + +function insertAttribute() { + tinyMCEPopup.close(); +} + +tinyMCEPopup.onInit.add(init); +tinyMCEPopup.requireLangPack(); diff --git a/askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/js/cite.js b/askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/js/cite.js new file mode 100644 index 00000000..009b7154 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/js/cite.js @@ -0,0 +1,28 @@ +/** + * cite.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +function init() { + SXE.initElementDialog('cite'); + if (SXE.currentAction == "update") { + SXE.showRemoveButton(); + } +} + +function insertCite() { + SXE.insertElement('cite'); + tinyMCEPopup.close(); +} + +function removeCite() { + SXE.removeElement('cite'); + tinyMCEPopup.close(); +} + +tinyMCEPopup.onInit.add(init); diff --git a/askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/js/del.js b/askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/js/del.js new file mode 100644 index 00000000..1f957dc7 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/js/del.js @@ -0,0 +1,53 @@ +/** + * del.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +function init() { + SXE.initElementDialog('del'); + if (SXE.currentAction == "update") { + setFormValue('datetime', tinyMCEPopup.editor.dom.getAttrib(SXE.updateElement, 'datetime')); + setFormValue('cite', tinyMCEPopup.editor.dom.getAttrib(SXE.updateElement, 'cite')); + SXE.showRemoveButton(); + } +} + +function setElementAttribs(elm) { + setAllCommonAttribs(elm); + setAttrib(elm, 'datetime'); + setAttrib(elm, 'cite'); + elm.removeAttribute('data-mce-new'); +} + +function insertDel() { + var elm = tinyMCEPopup.editor.dom.getParent(SXE.focusElement, 'DEL'); + + if (elm == null) { + var s = SXE.inst.selection.getContent(); + if(s.length > 0) { + insertInlineElement('del'); + var elementArray = SXE.inst.dom.select('del[data-mce-new]'); + for (var i=0; i 0) { + tagName = element_name; + + insertInlineElement(element_name); + var elementArray = tinymce.grep(SXE.inst.dom.select(element_name)); + for (var i=0; i -1) ? true : false; +} + +SXE.removeClass = function(elm,cl) { + if(elm.className == null || elm.className == "" || !SXE.containsClass(elm,cl)) { + return true; + } + var classNames = elm.className.split(" "); + var newClassNames = ""; + for (var x = 0, cnl = classNames.length; x < cnl; x++) { + if (classNames[x] != cl) { + newClassNames += (classNames[x] + " "); + } + } + elm.className = newClassNames.substring(0,newClassNames.length-1); //removes extra space at the end +} + +SXE.addClass = function(elm,cl) { + if(!SXE.containsClass(elm,cl)) elm.className ? elm.className += " " + cl : elm.className = cl; + return true; +} + +function insertInlineElement(en) { + var ed = tinyMCEPopup.editor, dom = ed.dom; + + ed.getDoc().execCommand('FontName', false, 'mceinline'); + tinymce.each(dom.select('span,font'), function(n) { + if (n.style.fontFamily == 'mceinline' || n.face == 'mceinline') + dom.replace(dom.create(en, {'data-mce-new' : 1}), n, 1); + }); +} diff --git a/askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/js/ins.js b/askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/js/ins.js new file mode 100644 index 00000000..c4addfb0 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/js/ins.js @@ -0,0 +1,53 @@ +/** + * ins.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +function init() { + SXE.initElementDialog('ins'); + if (SXE.currentAction == "update") { + setFormValue('datetime', tinyMCEPopup.editor.dom.getAttrib(SXE.updateElement, 'datetime')); + setFormValue('cite', tinyMCEPopup.editor.dom.getAttrib(SXE.updateElement, 'cite')); + SXE.showRemoveButton(); + } +} + +function setElementAttribs(elm) { + setAllCommonAttribs(elm); + setAttrib(elm, 'datetime'); + setAttrib(elm, 'cite'); + elm.removeAttribute('data-mce-new'); +} + +function insertIns() { + var elm = tinyMCEPopup.editor.dom.getParent(SXE.focusElement, 'INS'); + + if (elm == null) { + var s = SXE.inst.selection.getContent(); + if(s.length > 0) { + insertInlineElement('ins'); + var elementArray = SXE.inst.dom.select('ins[data-mce-new]'); + for (var i=0; i + + + {#advanced_dlg.about_title} + + + + + + + +
          +
          +

          {#advanced_dlg.about_title}

          +

          Version: ()

          +

          TinyMCE is a platform independent web based Javascript HTML WYSIWYG editor control released as Open Source under LGPL + by Moxiecode Systems AB. It has the ability to convert HTML TEXTAREA fields or other HTML elements to editor instances.

          +

          Copyright © 2003-2008, Moxiecode Systems AB, All rights reserved.

          +

          For more information about this software visit the TinyMCE website.

          + +
          + Got Moxie? +
          +
          + +
          +
          +

          {#advanced_dlg.about_loaded}

          + +
          +
          + +

           

          +
          +
          + +
          +
          +
          +
          + +
          + +
          + + diff --git a/askbot/skins/default/media/js/tinymce/themes/advanced/anchor.htm b/askbot/skins/default/media/js/tinymce/themes/advanced/anchor.htm new file mode 100644 index 00000000..75c93b79 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/themes/advanced/anchor.htm @@ -0,0 +1,26 @@ + + + + {#advanced_dlg.anchor_title} + + + + +
          + + + + + + + + +
          {#advanced_dlg.anchor_title}
          + +
          + + +
          +
          + + diff --git a/askbot/skins/default/media/js/tinymce/themes/advanced/charmap.htm b/askbot/skins/default/media/js/tinymce/themes/advanced/charmap.htm new file mode 100644 index 00000000..d4b6bdfb --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/themes/advanced/charmap.htm @@ -0,0 +1,55 @@ + + + + {#advanced_dlg.charmap_title} + + + + + + + + + + + + + + + + + + + +
          + + + + + + + + + +
           
           
          +
          + + + + + + + + + + + + + + + + +
           
           
           
          +
          {#advanced_dlg.charmap_usage}
          + + diff --git a/askbot/skins/default/media/js/tinymce/themes/advanced/color_picker.htm b/askbot/skins/default/media/js/tinymce/themes/advanced/color_picker.htm new file mode 100644 index 00000000..b625531a --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/themes/advanced/color_picker.htm @@ -0,0 +1,70 @@ + + + + {#advanced_dlg.colorpicker_title} + + + + + + +
          + + +
          +
          +
          + {#advanced_dlg.colorpicker_picker_title} +
          + + +
          + +
          + +
          +
          +
          +
          + +
          +
          + {#advanced_dlg.colorpicker_palette_title} +
          + +
          + +
          +
          +
          + +
          +
          + {#advanced_dlg.colorpicker_named_title} +
          + +
          + +
          + +
          + {#advanced_dlg.colorpicker_name} +
          +
          +
          +
          + +
          + + +
          +
          +
          + + diff --git a/askbot/skins/default/media/js/tinymce/themes/advanced/editor_template.js b/askbot/skins/default/media/js/tinymce/themes/advanced/editor_template.js new file mode 100644 index 00000000..4d5acfb3 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/themes/advanced/editor_template.js @@ -0,0 +1 @@ +(function(h){var i=h.DOM,g=h.dom.Event,c=h.extend,f=h.each,a=h.util.Cookie,e,d=h.explode;function b(m,k){var q,p=m.dom,n="",o,l;previewStyles=m.settings.preview_styles;if(previewStyles===false){return""}if(!previewStyles){previewStyles="font-family font-size font-weight text-decoration text-transform color background-color"}function j(r){return r.replace(/%(\w+)/g,"")}name=k.block||k.inline||"span";q=p.create(name);f(k.styles,function(s,r){s=j(s);if(s){p.setStyle(q,r,s)}});f(k.attributes,function(s,r){s=j(s);if(s){p.setAttrib(q,r,s)}});f(k.classes,function(r){r=j(r);if(!p.hasClass(q,r)){p.addClass(q,r)}});p.setStyles(q,{position:"absolute",left:-65535});m.getBody().appendChild(q);o=p.getStyle(m.getBody(),"fontSize",true);o=/px$/.test(o)?parseInt(o,10):0;f(previewStyles.split(" "),function(r){var s=p.getStyle(q,r,true);if(r=="background-color"&&/transparent|rgba\s*\([^)]+,\s*0\)/.test(s)){s=p.getStyle(m.getBody(),r,true);if(p.toHex(s).toLowerCase()=="#ffffff"){return}}if(r=="font-size"){if(/em|%$/.test(s)){if(o===0){return}s=parseFloat(s,10)/(/%$/.test(s)?100:1);s=(s*o)+"px"}}n+=r+":"+s+";"});p.remove(q);return n}h.ThemeManager.requireLangPack("advanced");h.create("tinymce.themes.AdvancedTheme",{sizes:[8,10,12,14,18,24,36],controls:{bold:["bold_desc","Bold"],italic:["italic_desc","Italic"],underline:["underline_desc","Underline"],strikethrough:["striketrough_desc","Strikethrough"],justifyleft:["justifyleft_desc","JustifyLeft"],justifycenter:["justifycenter_desc","JustifyCenter"],justifyright:["justifyright_desc","JustifyRight"],justifyfull:["justifyfull_desc","JustifyFull"],bullist:["bullist_desc","InsertUnorderedList"],numlist:["numlist_desc","InsertOrderedList"],outdent:["outdent_desc","Outdent"],indent:["indent_desc","Indent"],cut:["cut_desc","Cut"],copy:["copy_desc","Copy"],paste:["paste_desc","Paste"],undo:["undo_desc","Undo"],redo:["redo_desc","Redo"],link:["link_desc","mceLink"],unlink:["unlink_desc","unlink"],image:["image_desc","mceImage"],cleanup:["cleanup_desc","mceCleanup"],help:["help_desc","mceHelp"],code:["code_desc","mceCodeEditor"],hr:["hr_desc","InsertHorizontalRule"],removeformat:["removeformat_desc","RemoveFormat"],sub:["sub_desc","subscript"],sup:["sup_desc","superscript"],forecolor:["forecolor_desc","ForeColor"],forecolorpicker:["forecolor_desc","mceForeColor"],backcolor:["backcolor_desc","HiliteColor"],backcolorpicker:["backcolor_desc","mceBackColor"],charmap:["charmap_desc","mceCharMap"],visualaid:["visualaid_desc","mceToggleVisualAid"],anchor:["anchor_desc","mceInsertAnchor"],newdocument:["newdocument_desc","mceNewDocument"],blockquote:["blockquote_desc","mceBlockQuote"]},stateControls:["bold","italic","underline","strikethrough","bullist","numlist","justifyleft","justifycenter","justifyright","justifyfull","sub","sup","blockquote"],init:function(k,l){var m=this,n,j,p;m.editor=k;m.url=l;m.onResolveName=new h.util.Dispatcher(this);n=k.settings;k.forcedHighContrastMode=k.settings.detect_highcontrast&&m._isHighContrast();k.settings.skin=k.forcedHighContrastMode?"highcontrast":k.settings.skin;if(!n.theme_advanced_buttons1){n=c({theme_advanced_buttons1:"bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect",theme_advanced_buttons2:"bullist,numlist,|,outdent,indent,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code",theme_advanced_buttons3:"hr,removeformat,visualaid,|,sub,sup,|,charmap"},n)}m.settings=n=c({theme_advanced_path:true,theme_advanced_toolbar_location:"top",theme_advanced_blockformats:"p,address,pre,h1,h2,h3,h4,h5,h6",theme_advanced_toolbar_align:"left",theme_advanced_statusbar_location:"bottom",theme_advanced_fonts:"Andale Mono=andale mono,times;Arial=arial,helvetica,sans-serif;Arial Black=arial black,avant garde;Book Antiqua=book antiqua,palatino;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier;Georgia=georgia,palatino;Helvetica=helvetica;Impact=impact,chicago;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco;Times New Roman=times new roman,times;Trebuchet MS=trebuchet ms,geneva;Verdana=verdana,geneva;Webdings=webdings;Wingdings=wingdings,zapf dingbats",theme_advanced_more_colors:1,theme_advanced_row_height:23,theme_advanced_resize_horizontal:1,theme_advanced_resizing_use_cookie:1,theme_advanced_font_sizes:"1,2,3,4,5,6,7",theme_advanced_font_selector:"span",theme_advanced_show_current_color:0,readonly:k.settings.readonly},n);if(!n.font_size_style_values){n.font_size_style_values="8pt,10pt,12pt,14pt,18pt,24pt,36pt"}if(h.is(n.theme_advanced_font_sizes,"string")){n.font_size_style_values=h.explode(n.font_size_style_values);n.font_size_classes=h.explode(n.font_size_classes||"");p={};k.settings.theme_advanced_font_sizes=n.theme_advanced_font_sizes;f(k.getParam("theme_advanced_font_sizes","","hash"),function(r,q){var o;if(q==r&&r>=1&&r<=7){q=r+" ("+m.sizes[r-1]+"pt)";o=n.font_size_classes[r-1];r=n.font_size_style_values[r-1]||(m.sizes[r-1]+"pt")}if(/^\s*\./.test(r)){o=r.replace(/\./g,"")}p[q]=o?{"class":o}:{fontSize:r}});n.theme_advanced_font_sizes=p}if((j=n.theme_advanced_path_location)&&j!="none"){n.theme_advanced_statusbar_location=n.theme_advanced_path_location}if(n.theme_advanced_statusbar_location=="none"){n.theme_advanced_statusbar_location=0}if(k.settings.content_css!==false){k.contentCSS.push(k.baseURI.toAbsolute(l+"/skins/"+k.settings.skin+"/content.css"))}k.onInit.add(function(){if(!k.settings.readonly){k.onNodeChange.add(m._nodeChanged,m);k.onKeyUp.add(m._updateUndoStatus,m);k.onMouseUp.add(m._updateUndoStatus,m);k.dom.bind(k.dom.getRoot(),"dragend",function(){m._updateUndoStatus(k)})}});k.onSetProgressState.add(function(r,o,s){var t,u=r.id,q;if(o){m.progressTimer=setTimeout(function(){t=r.getContainer();t=t.insertBefore(i.create("DIV",{style:"position:relative"}),t.firstChild);q=i.get(r.id+"_tbl");i.add(t,"div",{id:u+"_blocker","class":"mceBlocker",style:{width:q.clientWidth+2,height:q.clientHeight+2}});i.add(t,"div",{id:u+"_progress","class":"mceProgress",style:{left:q.clientWidth/2,top:q.clientHeight/2}})},s||0)}else{i.remove(u+"_blocker");i.remove(u+"_progress");clearTimeout(m.progressTimer)}});i.loadCSS(n.editor_css?k.documentBaseURI.toAbsolute(n.editor_css):l+"/skins/"+k.settings.skin+"/ui.css");if(n.skin_variant){i.loadCSS(l+"/skins/"+k.settings.skin+"/ui_"+n.skin_variant+".css")}},_isHighContrast:function(){var j,k=i.add(i.getRoot(),"div",{style:"background-color: rgb(171,239,86);"});j=(i.getStyle(k,"background-color",true)+"").toLowerCase().replace(/ /g,"");i.remove(k);return j!="rgb(171,239,86)"&&j!="#abef56"},createControl:function(m,j){var k,l;if(l=j.createControl(m)){return l}switch(m){case"styleselect":return this._createStyleSelect();case"formatselect":return this._createBlockFormats();case"fontselect":return this._createFontSelect();case"fontsizeselect":return this._createFontSizeSelect();case"forecolor":return this._createForeColorMenu();case"backcolor":return this._createBackColorMenu()}if((k=this.controls[m])){return j.createButton(m,{title:"advanced."+k[0],cmd:k[1],ui:k[2],value:k[3]})}},execCommand:function(l,k,m){var j=this["_"+l];if(j){j.call(this,k,m);return true}return false},_importClasses:function(l){var j=this.editor,k=j.controlManager.get("styleselect");if(k.getLength()==0){f(j.dom.getClasses(),function(q,m){var p="style_"+m,n;n={inline:"span",attributes:{"class":q["class"]},selector:"*"};j.formatter.register(p,n);k.add(q["class"],p,{style:function(){return b(j,n)}})})}},_createStyleSelect:function(o){var l=this,j=l.editor,k=j.controlManager,m;m=k.createListBox("styleselect",{title:"advanced.style_select",onselect:function(q){var r,n=[],p;f(m.items,function(s){n.push(s.value)});j.focus();j.undoManager.add();r=j.formatter.matchAll(n);h.each(r,function(s){if(!q||s==q){if(s){j.formatter.remove(s)}p=true}});if(!p){j.formatter.apply(q)}j.undoManager.add();j.nodeChanged();return false}});j.onPreInit.add(function(){var p=0,n=j.getParam("style_formats");if(n){f(n,function(q){var r,s=0;f(q,function(){s++});if(s>1){r=q.name=q.name||"style_"+(p++);j.formatter.register(r,q);m.add(q.title,r,{style:function(){return b(j,q)}})}else{m.add(q.title)}})}else{f(j.getParam("theme_advanced_styles","","hash"),function(t,s){var r,q;if(t){r="style_"+(p++);q={inline:"span",classes:t,selector:"*"};j.formatter.register(r,q);m.add(l.editor.translate(s),r,{style:function(){return b(j,q)}})}})}});if(m.getLength()==0){m.onPostRender.add(function(p,q){if(!m.NativeListBox){g.add(q.id+"_text","focus",l._importClasses,l);g.add(q.id+"_text","mousedown",l._importClasses,l);g.add(q.id+"_open","focus",l._importClasses,l);g.add(q.id+"_open","mousedown",l._importClasses,l)}else{g.add(q.id,"focus",l._importClasses,l)}})}return m},_createFontSelect:function(){var l,k=this,j=k.editor;l=j.controlManager.createListBox("fontselect",{title:"advanced.fontdefault",onselect:function(m){var n=l.items[l.selectedIndex];if(!m&&n){j.execCommand("FontName",false,n.value);return}j.execCommand("FontName",false,m);l.select(function(o){return m==o});if(n&&n.value==m){l.select(null)}return false}});if(l){f(j.getParam("theme_advanced_fonts",k.settings.theme_advanced_fonts,"hash"),function(n,m){l.add(j.translate(m),n,{style:n.indexOf("dings")==-1?"font-family:"+n:""})})}return l},_createFontSizeSelect:function(){var m=this,k=m.editor,n,l=0,j=[];n=k.controlManager.createListBox("fontsizeselect",{title:"advanced.font_size",onselect:function(o){var p=n.items[n.selectedIndex];if(!o&&p){p=p.value;if(p["class"]){k.formatter.toggle("fontsize_class",{value:p["class"]});k.undoManager.add();k.nodeChanged()}else{k.execCommand("FontSize",false,p.fontSize)}return}if(o["class"]){k.focus();k.undoManager.add();k.formatter.toggle("fontsize_class",{value:o["class"]});k.undoManager.add();k.nodeChanged()}else{k.execCommand("FontSize",false,o.fontSize)}n.select(function(q){return o==q});if(p&&(p.value.fontSize==o.fontSize||p.value["class"]&&p.value["class"]==o["class"])){n.select(null)}return false}});if(n){f(m.settings.theme_advanced_font_sizes,function(p,o){var q=p.fontSize;if(q>=1&&q<=7){q=m.sizes[parseInt(q)-1]+"pt"}n.add(o,p,{style:"font-size:"+q,"class":"mceFontSize"+(l++)+(" "+(p["class"]||""))})})}return n},_createBlockFormats:function(){var l,j={p:"advanced.paragraph",address:"advanced.address",pre:"advanced.pre",h1:"advanced.h1",h2:"advanced.h2",h3:"advanced.h3",h4:"advanced.h4",h5:"advanced.h5",h6:"advanced.h6",div:"advanced.div",blockquote:"advanced.blockquote",code:"advanced.code",dt:"advanced.dt",dd:"advanced.dd",samp:"advanced.samp"},k=this;l=k.editor.controlManager.createListBox("formatselect",{title:"advanced.block",onselect:function(m){k.editor.execCommand("FormatBlock",false,m);return false}});if(l){f(k.editor.getParam("theme_advanced_blockformats",k.settings.theme_advanced_blockformats,"hash"),function(n,m){l.add(k.editor.translate(m!=n?m:j[n]),n,{"class":"mce_formatPreview mce_"+n,style:function(){return b(k.editor,{block:n})}})})}return l},_createForeColorMenu:function(){var n,k=this,l=k.settings,m={},j;if(l.theme_advanced_more_colors){m.more_colors_func=function(){k._mceColorPicker(0,{color:n.value,func:function(o){n.setColor(o)}})}}if(j=l.theme_advanced_text_colors){m.colors=j}if(l.theme_advanced_default_foreground_color){m.default_color=l.theme_advanced_default_foreground_color}m.title="advanced.forecolor_desc";m.cmd="ForeColor";m.scope=this;n=k.editor.controlManager.createColorSplitButton("forecolor",m);return n},_createBackColorMenu:function(){var n,k=this,l=k.settings,m={},j;if(l.theme_advanced_more_colors){m.more_colors_func=function(){k._mceColorPicker(0,{color:n.value,func:function(o){n.setColor(o)}})}}if(j=l.theme_advanced_background_colors){m.colors=j}if(l.theme_advanced_default_background_color){m.default_color=l.theme_advanced_default_background_color}m.title="advanced.backcolor_desc";m.cmd="HiliteColor";m.scope=this;n=k.editor.controlManager.createColorSplitButton("backcolor",m);return n},renderUI:function(l){var q,m,r,w=this,u=w.editor,x=w.settings,v,k,j;if(u.settings){u.settings.aria_label=x.aria_label+u.getLang("advanced.help_shortcut")}q=k=i.create("span",{role:"application","aria-labelledby":u.id+"_voice",id:u.id+"_parent","class":"mceEditor "+u.settings.skin+"Skin"+(x.skin_variant?" "+u.settings.skin+"Skin"+w._ufirst(x.skin_variant):"")+(u.settings.directionality=="rtl"?" mceRtl":"")});i.add(q,"span",{"class":"mceVoiceLabel",style:"display:none;",id:u.id+"_voice"},x.aria_label);if(!i.boxModel){q=i.add(q,"div",{"class":"mceOldBoxModel"})}q=v=i.add(q,"table",{role:"presentation",id:u.id+"_tbl","class":"mceLayout",cellSpacing:0,cellPadding:0});q=r=i.add(q,"tbody");switch((x.theme_advanced_layout_manager||"").toLowerCase()){case"rowlayout":m=w._rowLayout(x,r,l);break;case"customlayout":m=u.execCallback("theme_advanced_custom_layout",x,r,l,k);break;default:m=w._simpleLayout(x,r,l,k)}q=l.targetNode;j=v.rows;i.addClass(j[0],"mceFirst");i.addClass(j[j.length-1],"mceLast");f(i.select("tr",r),function(o){i.addClass(o.firstChild,"mceFirst");i.addClass(o.childNodes[o.childNodes.length-1],"mceLast")});if(i.get(x.theme_advanced_toolbar_container)){i.get(x.theme_advanced_toolbar_container).appendChild(k)}else{i.insertAfter(k,q)}g.add(u.id+"_path_row","click",function(n){n=n.target;if(n.nodeName=="A"){w._sel(n.className.replace(/^.*mcePath_([0-9]+).*$/,"$1"));return false}});if(!u.getParam("accessibility_focus")){g.add(i.add(k,"a",{href:"#"},""),"focus",function(){tinyMCE.get(u.id).focus()})}if(x.theme_advanced_toolbar_location=="external"){l.deltaHeight=0}w.deltaHeight=l.deltaHeight;l.targetNode=null;u.onKeyDown.add(function(p,n){var s=121,o=122;if(n.altKey){if(n.keyCode===s){if(h.isWebKit){window.focus()}w.toolbarGroup.focus();return g.cancel(n)}else{if(n.keyCode===o){i.get(p.id+"_path_row").focus();return g.cancel(n)}}}});u.addShortcut("alt+0","","mceShortcuts",w);return{iframeContainer:m,editorContainer:u.id+"_parent",sizeContainer:v,deltaHeight:l.deltaHeight}},getInfo:function(){return{longname:"Advanced theme",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",version:h.majorVersion+"."+h.minorVersion}},resizeBy:function(j,k){var l=i.get(this.editor.id+"_ifr");this.resizeTo(l.clientWidth+j,l.clientHeight+k)},resizeTo:function(j,n,l){var k=this.editor,m=this.settings,o=i.get(k.id+"_tbl"),p=i.get(k.id+"_ifr");j=Math.max(m.theme_advanced_resizing_min_width||100,j);n=Math.max(m.theme_advanced_resizing_min_height||100,n);j=Math.min(m.theme_advanced_resizing_max_width||65535,j);n=Math.min(m.theme_advanced_resizing_max_height||65535,n);i.setStyle(o,"height","");i.setStyle(p,"height",n);if(m.theme_advanced_resize_horizontal){i.setStyle(o,"width","");i.setStyle(p,"width",j);if(j"));i.setHTML(l,r.join(""))},_addStatusBar:function(p,k){var l,w=this,q=w.editor,x=w.settings,j,u,v,m;l=i.add(p,"tr");l=m=i.add(l,"td",{"class":"mceStatusbar"});l=i.add(l,"div",{id:q.id+"_path_row",role:"group","aria-labelledby":q.id+"_path_voice"});if(x.theme_advanced_path){i.add(l,"span",{id:q.id+"_path_voice"},q.translate("advanced.path"));i.add(l,"span",{},": ")}else{i.add(l,"span",{}," ")}if(x.theme_advanced_resizing){i.add(m,"a",{id:q.id+"_resize",href:"javascript:;",onclick:"return false;","class":"mceResize",tabIndex:"-1"});if(x.theme_advanced_resizing_use_cookie){q.onPostRender.add(function(){var n=a.getHash("TinyMCE_"+q.id+"_size"),r=i.get(q.id+"_tbl");if(!n){return}w.resizeTo(n.cw,n.ch)})}q.onPostRender.add(function(){g.add(q.id+"_resize","click",function(n){n.preventDefault()});g.add(q.id+"_resize","mousedown",function(E){var t,r,s,o,D,A,B,G,n,F,y;function z(H){H.preventDefault();n=B+(H.screenX-D);F=G+(H.screenY-A);w.resizeTo(n,F)}function C(H){g.remove(i.doc,"mousemove",t);g.remove(q.getDoc(),"mousemove",r);g.remove(i.doc,"mouseup",s);g.remove(q.getDoc(),"mouseup",o);n=B+(H.screenX-D);F=G+(H.screenY-A);w.resizeTo(n,F,true)}E.preventDefault();D=E.screenX;A=E.screenY;y=i.get(w.editor.id+"_ifr");B=n=y.clientWidth;G=F=y.clientHeight;t=g.add(i.doc,"mousemove",z);r=g.add(q.getDoc(),"mousemove",z);s=g.add(i.doc,"mouseup",C);o=g.add(q.getDoc(),"mouseup",C)})})}k.deltaHeight-=21;l=p=null},_updateUndoStatus:function(k){var j=k.controlManager,l=k.undoManager;j.setDisabled("undo",!l.hasUndo()&&!l.typing);j.setDisabled("redo",!l.hasRedo())},_nodeChanged:function(o,u,E,r,F){var z=this,D,G=0,y,H,A=z.settings,x,l,w,C,m,k,j;h.each(z.stateControls,function(n){u.setActive(n,o.queryCommandState(z.controls[n][1]))});function q(p){var s,n=F.parents,t=p;if(typeof(p)=="string"){t=function(v){return v.nodeName==p}}for(s=0;s0){H.mark(p)}})}if(H=u.get("formatselect")){D=q(o.dom.isBlock);if(D){H.select(D.nodeName.toLowerCase())}}q(function(p){if(p.nodeName==="SPAN"){if(!x&&p.className){x=p.className}}if(o.dom.is(p,A.theme_advanced_font_selector)){if(!l&&p.style.fontSize){l=p.style.fontSize}if(!w&&p.style.fontFamily){w=p.style.fontFamily.replace(/[\"\']+/g,"").replace(/^([^,]+).*/,"$1").toLowerCase()}if(!C&&p.style.color){C=p.style.color}if(!m&&p.style.backgroundColor){m=p.style.backgroundColor}}return false});if(H=u.get("fontselect")){H.select(function(n){return n.replace(/^([^,]+).*/,"$1").toLowerCase()==w})}if(H=u.get("fontsizeselect")){if(A.theme_advanced_runtime_fontsize&&!l&&!x){l=o.dom.getStyle(E,"fontSize",true)}H.select(function(n){if(n.fontSize&&n.fontSize===l){return true}if(n["class"]&&n["class"]===x){return true}})}if(A.theme_advanced_show_current_color){function B(p,n){if(H=u.get(p)){if(!n){n=H.settings.default_color}if(n!==H.value){H.displayColor(n)}}}B("forecolor",C);B("backcolor",m)}if(A.theme_advanced_show_current_color){function B(p,n){if(H=u.get(p)){if(!n){n=H.settings.default_color}if(n!==H.value){H.displayColor(n)}}}B("forecolor",C);B("backcolor",m)}if(A.theme_advanced_path&&A.theme_advanced_statusbar_location){D=i.get(o.id+"_path")||i.add(o.id+"_path_row","span",{id:o.id+"_path"});if(z.statusKeyboardNavigation){z.statusKeyboardNavigation.destroy();z.statusKeyboardNavigation=null}i.setHTML(D,"");q(function(I){var p=I.nodeName.toLowerCase(),s,v,t="";if(I.nodeType!=1||p==="br"||I.getAttribute("data-mce-bogus")||i.hasClass(I,"mceItemHidden")||i.hasClass(I,"mceItemRemoved")){return}if(h.isIE&&I.scopeName!=="HTML"&&I.scopeName){p=I.scopeName+":"+p}p=p.replace(/mce\:/g,"");switch(p){case"b":p="strong";break;case"i":p="em";break;case"img":if(y=i.getAttrib(I,"src")){t+="src: "+y+" "}break;case"a":if(y=i.getAttrib(I,"name")){t+="name: "+y+" ";p+="#"+y}if(y=i.getAttrib(I,"href")){t+="href: "+y+" "}break;case"font":if(y=i.getAttrib(I,"face")){t+="font: "+y+" "}if(y=i.getAttrib(I,"size")){t+="size: "+y+" "}if(y=i.getAttrib(I,"color")){t+="color: "+y+" "}break;case"span":if(y=i.getAttrib(I,"style")){t+="style: "+y+" "}break}if(y=i.getAttrib(I,"id")){t+="id: "+y+" "}if(y=I.className){y=y.replace(/\b\s*(webkit|mce|Apple-)\w+\s*\b/g,"");if(y){t+="class: "+y+" ";if(o.dom.isBlock(I)||p=="img"||p=="span"){p+="."+y}}}p=p.replace(/(html:)/g,"");p={name:p,node:I,title:t};z.onResolveName.dispatch(z,p);t=p.title;p=p.name;v=i.create("a",{href:"javascript:;",role:"button",onmousedown:"return false;",title:t,"class":"mcePath_"+(G++)},p);if(D.hasChildNodes()){D.insertBefore(i.create("span",{"aria-hidden":"true"},"\u00a0\u00bb "),D.firstChild);D.insertBefore(v,D.firstChild)}else{D.appendChild(v)}},o.getBody());if(i.select("a",D).length>0){z.statusKeyboardNavigation=new h.ui.KeyboardNavigation({root:o.id+"_path_row",items:i.select("a",D),excludeFromTabOrder:true,onCancel:function(){o.focus()}},i)}}},_sel:function(j){this.editor.execCommand("mceSelectNodeDepth",false,j)},_mceInsertAnchor:function(l,k){var j=this.editor;j.windowManager.open({url:this.url+"/anchor.htm",width:320+parseInt(j.getLang("advanced.anchor_delta_width",0)),height:90+parseInt(j.getLang("advanced.anchor_delta_height",0)),inline:true},{theme_url:this.url})},_mceCharMap:function(){var j=this.editor;j.windowManager.open({url:this.url+"/charmap.htm",width:550+parseInt(j.getLang("advanced.charmap_delta_width",0)),height:265+parseInt(j.getLang("advanced.charmap_delta_height",0)),inline:true},{theme_url:this.url})},_mceHelp:function(){var j=this.editor;j.windowManager.open({url:this.url+"/about.htm",width:480,height:380,inline:true},{theme_url:this.url})},_mceShortcuts:function(){var j=this.editor;j.windowManager.open({url:this.url+"/shortcuts.htm",width:480,height:380,inline:true},{theme_url:this.url})},_mceColorPicker:function(l,k){var j=this.editor;k=k||{};j.windowManager.open({url:this.url+"/color_picker.htm",width:375+parseInt(j.getLang("advanced.colorpicker_delta_width",0)),height:250+parseInt(j.getLang("advanced.colorpicker_delta_height",0)),close_previous:false,inline:true},{input_color:k.color,func:k.func,theme_url:this.url})},_mceCodeEditor:function(k,l){var j=this.editor;j.windowManager.open({url:this.url+"/source_editor.htm",width:parseInt(j.getParam("theme_advanced_source_editor_width",720)),height:parseInt(j.getParam("theme_advanced_source_editor_height",580)),inline:true,resizable:true,maximizable:true},{theme_url:this.url})},_mceImage:function(k,l){var j=this.editor;if(j.dom.getAttrib(j.selection.getNode(),"class","").indexOf("mceItem")!=-1){return}j.windowManager.open({url:this.url+"/image.htm",width:355+parseInt(j.getLang("advanced.image_delta_width",0)),height:275+parseInt(j.getLang("advanced.image_delta_height",0)),inline:true},{theme_url:this.url})},_mceLink:function(k,l){var j=this.editor;j.windowManager.open({url:this.url+"/link.htm",width:310+parseInt(j.getLang("advanced.link_delta_width",0)),height:200+parseInt(j.getLang("advanced.link_delta_height",0)),inline:true},{theme_url:this.url})},_mceNewDocument:function(){var j=this.editor;j.windowManager.confirm("advanced.newdocument",function(k){if(k){j.execCommand("mceSetContent",false,"")}})},_mceForeColor:function(){var j=this;this._mceColorPicker(0,{color:j.fgColor,func:function(k){j.fgColor=k;j.editor.execCommand("ForeColor",false,k)}})},_mceBackColor:function(){var j=this;this._mceColorPicker(0,{color:j.bgColor,func:function(k){j.bgColor=k;j.editor.execCommand("HiliteColor",false,k)}})},_ufirst:function(j){return j.substring(0,1).toUpperCase()+j.substring(1)}});h.ThemeManager.add("advanced",h.themes.AdvancedTheme)}(tinymce)); \ No newline at end of file diff --git a/askbot/skins/default/media/js/tinymce/themes/advanced/editor_template_src.js b/askbot/skins/default/media/js/tinymce/themes/advanced/editor_template_src.js new file mode 100644 index 00000000..28ba9828 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/themes/advanced/editor_template_src.js @@ -0,0 +1,1487 @@ +/** + * editor_template_src.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +(function(tinymce) { + var DOM = tinymce.DOM, Event = tinymce.dom.Event, extend = tinymce.extend, each = tinymce.each, Cookie = tinymce.util.Cookie, lastExtID, explode = tinymce.explode; + + // Generates a preview for a format + function getPreviewCss(ed, fmt) { + var previewElm, dom = ed.dom, previewCss = '', parentFontSize, previewStylesName; + + previewStyles = ed.settings.preview_styles; + + // No preview forced + if (previewStyles === false) + return ''; + + // Default preview + if (!previewStyles) + previewStyles = 'font-family font-size font-weight text-decoration text-transform color background-color'; + + // Removes any variables since these can't be previewed + function removeVars(val) { + return val.replace(/%(\w+)/g, ''); + }; + + // Create block/inline element to use for preview + name = fmt.block || fmt.inline || 'span'; + previewElm = dom.create(name); + + // Add format styles to preview element + each(fmt.styles, function(value, name) { + value = removeVars(value); + + if (value) + dom.setStyle(previewElm, name, value); + }); + + // Add attributes to preview element + each(fmt.attributes, function(value, name) { + value = removeVars(value); + + if (value) + dom.setAttrib(previewElm, name, value); + }); + + // Add classes to preview element + each(fmt.classes, function(value) { + value = removeVars(value); + + if (!dom.hasClass(previewElm, value)) + dom.addClass(previewElm, value); + }); + + // Add the previewElm outside the visual area + dom.setStyles(previewElm, {position: 'absolute', left: -0xFFFF}); + ed.getBody().appendChild(previewElm); + + // Get parent container font size so we can compute px values out of em/% for older IE:s + parentFontSize = dom.getStyle(ed.getBody(), 'fontSize', true); + parentFontSize = /px$/.test(parentFontSize) ? parseInt(parentFontSize, 10) : 0; + + each(previewStyles.split(' '), function(name) { + var value = dom.getStyle(previewElm, name, true); + + // If background is transparent then check if the body has a background color we can use + if (name == 'background-color' && /transparent|rgba\s*\([^)]+,\s*0\)/.test(value)) { + value = dom.getStyle(ed.getBody(), name, true); + + // Ignore white since it's the default color, not the nicest fix + if (dom.toHex(value).toLowerCase() == '#ffffff') { + return; + } + } + + // Old IE won't calculate the font size so we need to do that manually + if (name == 'font-size') { + if (/em|%$/.test(value)) { + if (parentFontSize === 0) { + return; + } + + // Convert font size from em/% to px + value = parseFloat(value, 10) / (/%$/.test(value) ? 100 : 1); + value = (value * parentFontSize) + 'px'; + } + } + + previewCss += name + ':' + value + ';'; + }); + + dom.remove(previewElm); + + return previewCss; + }; + + // Tell it to load theme specific language pack(s) + tinymce.ThemeManager.requireLangPack('advanced'); + + tinymce.create('tinymce.themes.AdvancedTheme', { + sizes : [8, 10, 12, 14, 18, 24, 36], + + // Control name lookup, format: title, command + controls : { + bold : ['bold_desc', 'Bold'], + italic : ['italic_desc', 'Italic'], + underline : ['underline_desc', 'Underline'], + strikethrough : ['striketrough_desc', 'Strikethrough'], + justifyleft : ['justifyleft_desc', 'JustifyLeft'], + justifycenter : ['justifycenter_desc', 'JustifyCenter'], + justifyright : ['justifyright_desc', 'JustifyRight'], + justifyfull : ['justifyfull_desc', 'JustifyFull'], + bullist : ['bullist_desc', 'InsertUnorderedList'], + numlist : ['numlist_desc', 'InsertOrderedList'], + outdent : ['outdent_desc', 'Outdent'], + indent : ['indent_desc', 'Indent'], + cut : ['cut_desc', 'Cut'], + copy : ['copy_desc', 'Copy'], + paste : ['paste_desc', 'Paste'], + undo : ['undo_desc', 'Undo'], + redo : ['redo_desc', 'Redo'], + link : ['link_desc', 'mceLink'], + unlink : ['unlink_desc', 'unlink'], + image : ['image_desc', 'mceImage'], + cleanup : ['cleanup_desc', 'mceCleanup'], + help : ['help_desc', 'mceHelp'], + code : ['code_desc', 'mceCodeEditor'], + hr : ['hr_desc', 'InsertHorizontalRule'], + removeformat : ['removeformat_desc', 'RemoveFormat'], + sub : ['sub_desc', 'subscript'], + sup : ['sup_desc', 'superscript'], + forecolor : ['forecolor_desc', 'ForeColor'], + forecolorpicker : ['forecolor_desc', 'mceForeColor'], + backcolor : ['backcolor_desc', 'HiliteColor'], + backcolorpicker : ['backcolor_desc', 'mceBackColor'], + charmap : ['charmap_desc', 'mceCharMap'], + visualaid : ['visualaid_desc', 'mceToggleVisualAid'], + anchor : ['anchor_desc', 'mceInsertAnchor'], + newdocument : ['newdocument_desc', 'mceNewDocument'], + blockquote : ['blockquote_desc', 'mceBlockQuote'] + }, + + stateControls : ['bold', 'italic', 'underline', 'strikethrough', 'bullist', 'numlist', 'justifyleft', 'justifycenter', 'justifyright', 'justifyfull', 'sub', 'sup', 'blockquote'], + + init : function(ed, url) { + var t = this, s, v, o; + + t.editor = ed; + t.url = url; + t.onResolveName = new tinymce.util.Dispatcher(this); + s = ed.settings; + + ed.forcedHighContrastMode = ed.settings.detect_highcontrast && t._isHighContrast(); + ed.settings.skin = ed.forcedHighContrastMode ? 'highcontrast' : ed.settings.skin; + + // Setup default buttons + if (!s.theme_advanced_buttons1) { + s = extend({ + theme_advanced_buttons1 : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect", + theme_advanced_buttons2 : "bullist,numlist,|,outdent,indent,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code", + theme_advanced_buttons3 : "hr,removeformat,visualaid,|,sub,sup,|,charmap" + }, s); + } + + // Default settings + t.settings = s = extend({ + theme_advanced_path : true, + theme_advanced_toolbar_location : 'top', + theme_advanced_blockformats : "p,address,pre,h1,h2,h3,h4,h5,h6", + theme_advanced_toolbar_align : "left", + theme_advanced_statusbar_location : "bottom", + theme_advanced_fonts : "Andale Mono=andale mono,times;Arial=arial,helvetica,sans-serif;Arial Black=arial black,avant garde;Book Antiqua=book antiqua,palatino;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier;Georgia=georgia,palatino;Helvetica=helvetica;Impact=impact,chicago;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco;Times New Roman=times new roman,times;Trebuchet MS=trebuchet ms,geneva;Verdana=verdana,geneva;Webdings=webdings;Wingdings=wingdings,zapf dingbats", + theme_advanced_more_colors : 1, + theme_advanced_row_height : 23, + theme_advanced_resize_horizontal : 1, + theme_advanced_resizing_use_cookie : 1, + theme_advanced_font_sizes : "1,2,3,4,5,6,7", + theme_advanced_font_selector : "span", + theme_advanced_show_current_color: 0, + readonly : ed.settings.readonly + }, s); + + // Setup default font_size_style_values + if (!s.font_size_style_values) + s.font_size_style_values = "8pt,10pt,12pt,14pt,18pt,24pt,36pt"; + + if (tinymce.is(s.theme_advanced_font_sizes, 'string')) { + s.font_size_style_values = tinymce.explode(s.font_size_style_values); + s.font_size_classes = tinymce.explode(s.font_size_classes || ''); + + // Parse string value + o = {}; + ed.settings.theme_advanced_font_sizes = s.theme_advanced_font_sizes; + each(ed.getParam('theme_advanced_font_sizes', '', 'hash'), function(v, k) { + var cl; + + if (k == v && v >= 1 && v <= 7) { + k = v + ' (' + t.sizes[v - 1] + 'pt)'; + cl = s.font_size_classes[v - 1]; + v = s.font_size_style_values[v - 1] || (t.sizes[v - 1] + 'pt'); + } + + if (/^\s*\./.test(v)) + cl = v.replace(/\./g, ''); + + o[k] = cl ? {'class' : cl} : {fontSize : v}; + }); + + s.theme_advanced_font_sizes = o; + } + + if ((v = s.theme_advanced_path_location) && v != 'none') + s.theme_advanced_statusbar_location = s.theme_advanced_path_location; + + if (s.theme_advanced_statusbar_location == 'none') + s.theme_advanced_statusbar_location = 0; + + if (ed.settings.content_css !== false) + ed.contentCSS.push(ed.baseURI.toAbsolute(url + "/skins/" + ed.settings.skin + "/content.css")); + + // Init editor + ed.onInit.add(function() { + if (!ed.settings.readonly) { + ed.onNodeChange.add(t._nodeChanged, t); + ed.onKeyUp.add(t._updateUndoStatus, t); + ed.onMouseUp.add(t._updateUndoStatus, t); + ed.dom.bind(ed.dom.getRoot(), 'dragend', function() { + t._updateUndoStatus(ed); + }); + } + }); + + ed.onSetProgressState.add(function(ed, b, ti) { + var co, id = ed.id, tb; + + if (b) { + t.progressTimer = setTimeout(function() { + co = ed.getContainer(); + co = co.insertBefore(DOM.create('DIV', {style : 'position:relative'}), co.firstChild); + tb = DOM.get(ed.id + '_tbl'); + + DOM.add(co, 'div', {id : id + '_blocker', 'class' : 'mceBlocker', style : {width : tb.clientWidth + 2, height : tb.clientHeight + 2}}); + DOM.add(co, 'div', {id : id + '_progress', 'class' : 'mceProgress', style : {left : tb.clientWidth / 2, top : tb.clientHeight / 2}}); + }, ti || 0); + } else { + DOM.remove(id + '_blocker'); + DOM.remove(id + '_progress'); + clearTimeout(t.progressTimer); + } + }); + + DOM.loadCSS(s.editor_css ? ed.documentBaseURI.toAbsolute(s.editor_css) : url + "/skins/" + ed.settings.skin + "/ui.css"); + + if (s.skin_variant) + DOM.loadCSS(url + "/skins/" + ed.settings.skin + "/ui_" + s.skin_variant + ".css"); + }, + + _isHighContrast : function() { + var actualColor, div = DOM.add(DOM.getRoot(), 'div', {'style': 'background-color: rgb(171,239,86);'}); + + actualColor = (DOM.getStyle(div, 'background-color', true) + '').toLowerCase().replace(/ /g, ''); + DOM.remove(div); + + return actualColor != 'rgb(171,239,86)' && actualColor != '#abef56'; + }, + + createControl : function(n, cf) { + var cd, c; + + if (c = cf.createControl(n)) + return c; + + switch (n) { + case "styleselect": + return this._createStyleSelect(); + + case "formatselect": + return this._createBlockFormats(); + + case "fontselect": + return this._createFontSelect(); + + case "fontsizeselect": + return this._createFontSizeSelect(); + + case "forecolor": + return this._createForeColorMenu(); + + case "backcolor": + return this._createBackColorMenu(); + } + + if ((cd = this.controls[n])) + return cf.createButton(n, {title : "advanced." + cd[0], cmd : cd[1], ui : cd[2], value : cd[3]}); + }, + + execCommand : function(cmd, ui, val) { + var f = this['_' + cmd]; + + if (f) { + f.call(this, ui, val); + return true; + } + + return false; + }, + + _importClasses : function(e) { + var ed = this.editor, ctrl = ed.controlManager.get('styleselect'); + + if (ctrl.getLength() == 0) { + each(ed.dom.getClasses(), function(o, idx) { + var name = 'style_' + idx, fmt; + + fmt = { + inline : 'span', + attributes : {'class' : o['class']}, + selector : '*' + }; + + ed.formatter.register(name, fmt); + + ctrl.add(o['class'], name, { + style: function() { + return getPreviewCss(ed, fmt); + } + }); + }); + } + }, + + _createStyleSelect : function(n) { + var t = this, ed = t.editor, ctrlMan = ed.controlManager, ctrl; + + // Setup style select box + ctrl = ctrlMan.createListBox('styleselect', { + title : 'advanced.style_select', + onselect : function(name) { + var matches, formatNames = [], removedFormat; + + each(ctrl.items, function(item) { + formatNames.push(item.value); + }); + + ed.focus(); + ed.undoManager.add(); + + // Toggle off the current format(s) + matches = ed.formatter.matchAll(formatNames); + tinymce.each(matches, function(match) { + if (!name || match == name) { + if (match) + ed.formatter.remove(match); + + removedFormat = true; + } + }); + + if (!removedFormat) + ed.formatter.apply(name); + + ed.undoManager.add(); + ed.nodeChanged(); + + return false; // No auto select + } + }); + + // Handle specified format + ed.onPreInit.add(function() { + var counter = 0, formats = ed.getParam('style_formats'); + + if (formats) { + each(formats, function(fmt) { + var name, keys = 0; + + each(fmt, function() {keys++;}); + + if (keys > 1) { + name = fmt.name = fmt.name || 'style_' + (counter++); + ed.formatter.register(name, fmt); + ctrl.add(fmt.title, name, { + style: function() { + return getPreviewCss(ed, fmt); + } + }); + } else + ctrl.add(fmt.title); + }); + } else { + each(ed.getParam('theme_advanced_styles', '', 'hash'), function(val, key) { + var name, fmt; + + if (val) { + name = 'style_' + (counter++); + fmt = { + inline : 'span', + classes : val, + selector : '*' + }; + + ed.formatter.register(name, fmt); + ctrl.add(t.editor.translate(key), name, { + style: function() { + return getPreviewCss(ed, fmt); + } + }); + } + }); + } + }); + + // Auto import classes if the ctrl box is empty + if (ctrl.getLength() == 0) { + ctrl.onPostRender.add(function(ed, n) { + if (!ctrl.NativeListBox) { + Event.add(n.id + '_text', 'focus', t._importClasses, t); + Event.add(n.id + '_text', 'mousedown', t._importClasses, t); + Event.add(n.id + '_open', 'focus', t._importClasses, t); + Event.add(n.id + '_open', 'mousedown', t._importClasses, t); + } else + Event.add(n.id, 'focus', t._importClasses, t); + }); + } + + return ctrl; + }, + + _createFontSelect : function() { + var c, t = this, ed = t.editor; + + c = ed.controlManager.createListBox('fontselect', { + title : 'advanced.fontdefault', + onselect : function(v) { + var cur = c.items[c.selectedIndex]; + + if (!v && cur) { + ed.execCommand('FontName', false, cur.value); + return; + } + + ed.execCommand('FontName', false, v); + + // Fake selection, execCommand will fire a nodeChange and update the selection + c.select(function(sv) { + return v == sv; + }); + + if (cur && cur.value == v) { + c.select(null); + } + + return false; // No auto select + } + }); + + if (c) { + each(ed.getParam('theme_advanced_fonts', t.settings.theme_advanced_fonts, 'hash'), function(v, k) { + c.add(ed.translate(k), v, {style : v.indexOf('dings') == -1 ? 'font-family:' + v : ''}); + }); + } + + return c; + }, + + _createFontSizeSelect : function() { + var t = this, ed = t.editor, c, i = 0, cl = []; + + c = ed.controlManager.createListBox('fontsizeselect', {title : 'advanced.font_size', onselect : function(v) { + var cur = c.items[c.selectedIndex]; + + if (!v && cur) { + cur = cur.value; + + if (cur['class']) { + ed.formatter.toggle('fontsize_class', {value : cur['class']}); + ed.undoManager.add(); + ed.nodeChanged(); + } else { + ed.execCommand('FontSize', false, cur.fontSize); + } + + return; + } + + if (v['class']) { + ed.focus(); + ed.undoManager.add(); + ed.formatter.toggle('fontsize_class', {value : v['class']}); + ed.undoManager.add(); + ed.nodeChanged(); + } else + ed.execCommand('FontSize', false, v.fontSize); + + // Fake selection, execCommand will fire a nodeChange and update the selection + c.select(function(sv) { + return v == sv; + }); + + if (cur && (cur.value.fontSize == v.fontSize || cur.value['class'] && cur.value['class'] == v['class'])) { + c.select(null); + } + + return false; // No auto select + }}); + + if (c) { + each(t.settings.theme_advanced_font_sizes, function(v, k) { + var fz = v.fontSize; + + if (fz >= 1 && fz <= 7) + fz = t.sizes[parseInt(fz) - 1] + 'pt'; + + c.add(k, v, {'style' : 'font-size:' + fz, 'class' : 'mceFontSize' + (i++) + (' ' + (v['class'] || ''))}); + }); + } + + return c; + }, + + _createBlockFormats : function() { + var c, fmts = { + p : 'advanced.paragraph', + address : 'advanced.address', + pre : 'advanced.pre', + h1 : 'advanced.h1', + h2 : 'advanced.h2', + h3 : 'advanced.h3', + h4 : 'advanced.h4', + h5 : 'advanced.h5', + h6 : 'advanced.h6', + div : 'advanced.div', + blockquote : 'advanced.blockquote', + code : 'advanced.code', + dt : 'advanced.dt', + dd : 'advanced.dd', + samp : 'advanced.samp' + }, t = this; + + c = t.editor.controlManager.createListBox('formatselect', {title : 'advanced.block', onselect : function(v) { + t.editor.execCommand('FormatBlock', false, v); + return false; + }}); + + if (c) { + each(t.editor.getParam('theme_advanced_blockformats', t.settings.theme_advanced_blockformats, 'hash'), function(v, k) { + c.add(t.editor.translate(k != v ? k : fmts[v]), v, {'class' : 'mce_formatPreview mce_' + v, style: function() { + return getPreviewCss(t.editor, {block: v}); + }}); + }); + } + + return c; + }, + + _createForeColorMenu : function() { + var c, t = this, s = t.settings, o = {}, v; + + if (s.theme_advanced_more_colors) { + o.more_colors_func = function() { + t._mceColorPicker(0, { + color : c.value, + func : function(co) { + c.setColor(co); + } + }); + }; + } + + if (v = s.theme_advanced_text_colors) + o.colors = v; + + if (s.theme_advanced_default_foreground_color) + o.default_color = s.theme_advanced_default_foreground_color; + + o.title = 'advanced.forecolor_desc'; + o.cmd = 'ForeColor'; + o.scope = this; + + c = t.editor.controlManager.createColorSplitButton('forecolor', o); + + return c; + }, + + _createBackColorMenu : function() { + var c, t = this, s = t.settings, o = {}, v; + + if (s.theme_advanced_more_colors) { + o.more_colors_func = function() { + t._mceColorPicker(0, { + color : c.value, + func : function(co) { + c.setColor(co); + } + }); + }; + } + + if (v = s.theme_advanced_background_colors) + o.colors = v; + + if (s.theme_advanced_default_background_color) + o.default_color = s.theme_advanced_default_background_color; + + o.title = 'advanced.backcolor_desc'; + o.cmd = 'HiliteColor'; + o.scope = this; + + c = t.editor.controlManager.createColorSplitButton('backcolor', o); + + return c; + }, + + renderUI : function(o) { + var n, ic, tb, t = this, ed = t.editor, s = t.settings, sc, p, nl; + + if (ed.settings) { + ed.settings.aria_label = s.aria_label + ed.getLang('advanced.help_shortcut'); + } + + // TODO: ACC Should have an aria-describedby attribute which is user-configurable to describe what this field is actually for. + // Maybe actually inherit it from the original textara? + n = p = DOM.create('span', {role : 'application', 'aria-labelledby' : ed.id + '_voice', id : ed.id + '_parent', 'class' : 'mceEditor ' + ed.settings.skin + 'Skin' + (s.skin_variant ? ' ' + ed.settings.skin + 'Skin' + t._ufirst(s.skin_variant) : '') + (ed.settings.directionality == "rtl" ? ' mceRtl' : '')}); + DOM.add(n, 'span', {'class': 'mceVoiceLabel', 'style': 'display:none;', id: ed.id + '_voice'}, s.aria_label); + + if (!DOM.boxModel) + n = DOM.add(n, 'div', {'class' : 'mceOldBoxModel'}); + + n = sc = DOM.add(n, 'table', {role : "presentation", id : ed.id + '_tbl', 'class' : 'mceLayout', cellSpacing : 0, cellPadding : 0}); + n = tb = DOM.add(n, 'tbody'); + + switch ((s.theme_advanced_layout_manager || '').toLowerCase()) { + case "rowlayout": + ic = t._rowLayout(s, tb, o); + break; + + case "customlayout": + ic = ed.execCallback("theme_advanced_custom_layout", s, tb, o, p); + break; + + default: + ic = t._simpleLayout(s, tb, o, p); + } + + n = o.targetNode; + + // Add classes to first and last TRs + nl = sc.rows; + DOM.addClass(nl[0], 'mceFirst'); + DOM.addClass(nl[nl.length - 1], 'mceLast'); + + // Add classes to first and last TDs + each(DOM.select('tr', tb), function(n) { + DOM.addClass(n.firstChild, 'mceFirst'); + DOM.addClass(n.childNodes[n.childNodes.length - 1], 'mceLast'); + }); + + if (DOM.get(s.theme_advanced_toolbar_container)) + DOM.get(s.theme_advanced_toolbar_container).appendChild(p); + else + DOM.insertAfter(p, n); + + Event.add(ed.id + '_path_row', 'click', function(e) { + e = e.target; + + if (e.nodeName == 'A') { + t._sel(e.className.replace(/^.*mcePath_([0-9]+).*$/, '$1')); + return false; + } + }); +/* + if (DOM.get(ed.id + '_path_row')) { + Event.add(ed.id + '_tbl', 'mouseover', function(e) { + var re; + + e = e.target; + + if (e.nodeName == 'SPAN' && DOM.hasClass(e.parentNode, 'mceButton')) { + re = DOM.get(ed.id + '_path_row'); + t.lastPath = re.innerHTML; + DOM.setHTML(re, e.parentNode.title); + } + }); + + Event.add(ed.id + '_tbl', 'mouseout', function(e) { + if (t.lastPath) { + DOM.setHTML(ed.id + '_path_row', t.lastPath); + t.lastPath = 0; + } + }); + } +*/ + + if (!ed.getParam('accessibility_focus')) + Event.add(DOM.add(p, 'a', {href : '#'}, ''), 'focus', function() {tinyMCE.get(ed.id).focus();}); + + if (s.theme_advanced_toolbar_location == 'external') + o.deltaHeight = 0; + + t.deltaHeight = o.deltaHeight; + o.targetNode = null; + + ed.onKeyDown.add(function(ed, evt) { + var DOM_VK_F10 = 121, DOM_VK_F11 = 122; + + if (evt.altKey) { + if (evt.keyCode === DOM_VK_F10) { + // Make sure focus is given to toolbar in Safari. + // We can't do this in IE as it prevents giving focus to toolbar when editor is in a frame + if (tinymce.isWebKit) { + window.focus(); + } + t.toolbarGroup.focus(); + return Event.cancel(evt); + } else if (evt.keyCode === DOM_VK_F11) { + DOM.get(ed.id + '_path_row').focus(); + return Event.cancel(evt); + } + } + }); + + // alt+0 is the UK recommended shortcut for accessing the list of access controls. + ed.addShortcut('alt+0', '', 'mceShortcuts', t); + + return { + iframeContainer : ic, + editorContainer : ed.id + '_parent', + sizeContainer : sc, + deltaHeight : o.deltaHeight + }; + }, + + getInfo : function() { + return { + longname : 'Advanced theme', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + version : tinymce.majorVersion + "." + tinymce.minorVersion + } + }, + + resizeBy : function(dw, dh) { + var e = DOM.get(this.editor.id + '_ifr'); + + this.resizeTo(e.clientWidth + dw, e.clientHeight + dh); + }, + + resizeTo : function(w, h, store) { + var ed = this.editor, s = this.settings, e = DOM.get(ed.id + '_tbl'), ifr = DOM.get(ed.id + '_ifr'); + + // Boundery fix box + w = Math.max(s.theme_advanced_resizing_min_width || 100, w); + h = Math.max(s.theme_advanced_resizing_min_height || 100, h); + w = Math.min(s.theme_advanced_resizing_max_width || 0xFFFF, w); + h = Math.min(s.theme_advanced_resizing_max_height || 0xFFFF, h); + + // Resize iframe and container + DOM.setStyle(e, 'height', ''); + DOM.setStyle(ifr, 'height', h); + + if (s.theme_advanced_resize_horizontal) { + DOM.setStyle(e, 'width', ''); + DOM.setStyle(ifr, 'width', w); + + // Make sure that the size is never smaller than the over all ui + if (w < e.clientWidth) { + w = e.clientWidth; + DOM.setStyle(ifr, 'width', e.clientWidth); + } + } + + // Store away the size + if (store && s.theme_advanced_resizing_use_cookie) { + Cookie.setHash("TinyMCE_" + ed.id + "_size", { + cw : w, + ch : h + }); + } + }, + + destroy : function() { + var id = this.editor.id; + + Event.clear(id + '_resize'); + Event.clear(id + '_path_row'); + Event.clear(id + '_external_close'); + }, + + // Internal functions + + _simpleLayout : function(s, tb, o, p) { + var t = this, ed = t.editor, lo = s.theme_advanced_toolbar_location, sl = s.theme_advanced_statusbar_location, n, ic, etb, c; + + if (s.readonly) { + n = DOM.add(tb, 'tr'); + n = ic = DOM.add(n, 'td', {'class' : 'mceIframeContainer'}); + return ic; + } + + // Create toolbar container at top + if (lo == 'top') + t._addToolbars(tb, o); + + // Create external toolbar + if (lo == 'external') { + n = c = DOM.create('div', {style : 'position:relative'}); + n = DOM.add(n, 'div', {id : ed.id + '_external', 'class' : 'mceExternalToolbar'}); + DOM.add(n, 'a', {id : ed.id + '_external_close', href : 'javascript:;', 'class' : 'mceExternalClose'}); + n = DOM.add(n, 'table', {id : ed.id + '_tblext', cellSpacing : 0, cellPadding : 0}); + etb = DOM.add(n, 'tbody'); + + if (p.firstChild.className == 'mceOldBoxModel') + p.firstChild.appendChild(c); + else + p.insertBefore(c, p.firstChild); + + t._addToolbars(etb, o); + + ed.onMouseUp.add(function() { + var e = DOM.get(ed.id + '_external'); + DOM.show(e); + + DOM.hide(lastExtID); + + var f = Event.add(ed.id + '_external_close', 'click', function() { + DOM.hide(ed.id + '_external'); + Event.remove(ed.id + '_external_close', 'click', f); + }); + + DOM.show(e); + DOM.setStyle(e, 'top', 0 - DOM.getRect(ed.id + '_tblext').h - 1); + + // Fixes IE rendering bug + DOM.hide(e); + DOM.show(e); + e.style.filter = ''; + + lastExtID = ed.id + '_external'; + + e = null; + }); + } + + if (sl == 'top') + t._addStatusBar(tb, o); + + // Create iframe container + if (!s.theme_advanced_toolbar_container) { + n = DOM.add(tb, 'tr'); + n = ic = DOM.add(n, 'td', {'class' : 'mceIframeContainer'}); + } + + // Create toolbar container at bottom + if (lo == 'bottom') + t._addToolbars(tb, o); + + if (sl == 'bottom') + t._addStatusBar(tb, o); + + return ic; + }, + + _rowLayout : function(s, tb, o) { + var t = this, ed = t.editor, dc, da, cf = ed.controlManager, n, ic, to, a; + + dc = s.theme_advanced_containers_default_class || ''; + da = s.theme_advanced_containers_default_align || 'center'; + + each(explode(s.theme_advanced_containers || ''), function(c, i) { + var v = s['theme_advanced_container_' + c] || ''; + + switch (c.toLowerCase()) { + case 'mceeditor': + n = DOM.add(tb, 'tr'); + n = ic = DOM.add(n, 'td', {'class' : 'mceIframeContainer'}); + break; + + case 'mceelementpath': + t._addStatusBar(tb, o); + break; + + default: + a = (s['theme_advanced_container_' + c + '_align'] || da).toLowerCase(); + a = 'mce' + t._ufirst(a); + + n = DOM.add(DOM.add(tb, 'tr'), 'td', { + 'class' : 'mceToolbar ' + (s['theme_advanced_container_' + c + '_class'] || dc) + ' ' + a || da + }); + + to = cf.createToolbar("toolbar" + i); + t._addControls(v, to); + DOM.setHTML(n, to.renderHTML()); + o.deltaHeight -= s.theme_advanced_row_height; + } + }); + + return ic; + }, + + _addControls : function(v, tb) { + var t = this, s = t.settings, di, cf = t.editor.controlManager; + + if (s.theme_advanced_disable && !t._disabled) { + di = {}; + + each(explode(s.theme_advanced_disable), function(v) { + di[v] = 1; + }); + + t._disabled = di; + } else + di = t._disabled; + + each(explode(v), function(n) { + var c; + + if (di && di[n]) + return; + + // Compatiblity with 2.x + if (n == 'tablecontrols') { + each(["table","|","row_props","cell_props","|","row_before","row_after","delete_row","|","col_before","col_after","delete_col","|","split_cells","merge_cells"], function(n) { + n = t.createControl(n, cf); + + if (n) + tb.add(n); + }); + + return; + } + + c = t.createControl(n, cf); + + if (c) + tb.add(c); + }); + }, + + _addToolbars : function(c, o) { + var t = this, i, tb, ed = t.editor, s = t.settings, v, cf = ed.controlManager, di, n, h = [], a, toolbarGroup, toolbarsExist = false; + + toolbarGroup = cf.createToolbarGroup('toolbargroup', { + 'name': ed.getLang('advanced.toolbar'), + 'tab_focus_toolbar':ed.getParam('theme_advanced_tab_focus_toolbar') + }); + + t.toolbarGroup = toolbarGroup; + + a = s.theme_advanced_toolbar_align.toLowerCase(); + a = 'mce' + t._ufirst(a); + + n = DOM.add(DOM.add(c, 'tr', {role: 'presentation'}), 'td', {'class' : 'mceToolbar ' + a, "role":"presentation"}); + + // Create toolbar and add the controls + for (i=1; (v = s['theme_advanced_buttons' + i]); i++) { + toolbarsExist = true; + tb = cf.createToolbar("toolbar" + i, {'class' : 'mceToolbarRow' + i}); + + if (s['theme_advanced_buttons' + i + '_add']) + v += ',' + s['theme_advanced_buttons' + i + '_add']; + + if (s['theme_advanced_buttons' + i + '_add_before']) + v = s['theme_advanced_buttons' + i + '_add_before'] + ',' + v; + + t._addControls(v, tb); + toolbarGroup.add(tb); + + o.deltaHeight -= s.theme_advanced_row_height; + } + // Handle case when there are no toolbar buttons and ensure editor height is adjusted accordingly + if (!toolbarsExist) + o.deltaHeight -= s.theme_advanced_row_height; + h.push(toolbarGroup.renderHTML()); + h.push(DOM.createHTML('a', {href : '#', accesskey : 'z', title : ed.getLang("advanced.toolbar_focus"), onfocus : 'tinyMCE.getInstanceById(\'' + ed.id + '\').focus();'}, '')); + DOM.setHTML(n, h.join('')); + }, + + _addStatusBar : function(tb, o) { + var n, t = this, ed = t.editor, s = t.settings, r, mf, me, td; + + n = DOM.add(tb, 'tr'); + n = td = DOM.add(n, 'td', {'class' : 'mceStatusbar'}); + n = DOM.add(n, 'div', {id : ed.id + '_path_row', 'role': 'group', 'aria-labelledby': ed.id + '_path_voice'}); + if (s.theme_advanced_path) { + DOM.add(n, 'span', {id: ed.id + '_path_voice'}, ed.translate('advanced.path')); + DOM.add(n, 'span', {}, ': '); + } else { + DOM.add(n, 'span', {}, ' '); + } + + + if (s.theme_advanced_resizing) { + DOM.add(td, 'a', {id : ed.id + '_resize', href : 'javascript:;', onclick : "return false;", 'class' : 'mceResize', tabIndex:"-1"}); + + if (s.theme_advanced_resizing_use_cookie) { + ed.onPostRender.add(function() { + var o = Cookie.getHash("TinyMCE_" + ed.id + "_size"), c = DOM.get(ed.id + '_tbl'); + + if (!o) + return; + + t.resizeTo(o.cw, o.ch); + }); + } + + ed.onPostRender.add(function() { + Event.add(ed.id + '_resize', 'click', function(e) { + e.preventDefault(); + }); + + Event.add(ed.id + '_resize', 'mousedown', function(e) { + var mouseMoveHandler1, mouseMoveHandler2, + mouseUpHandler1, mouseUpHandler2, + startX, startY, startWidth, startHeight, width, height, ifrElm; + + function resizeOnMove(e) { + e.preventDefault(); + + width = startWidth + (e.screenX - startX); + height = startHeight + (e.screenY - startY); + + t.resizeTo(width, height); + }; + + function endResize(e) { + // Stop listening + Event.remove(DOM.doc, 'mousemove', mouseMoveHandler1); + Event.remove(ed.getDoc(), 'mousemove', mouseMoveHandler2); + Event.remove(DOM.doc, 'mouseup', mouseUpHandler1); + Event.remove(ed.getDoc(), 'mouseup', mouseUpHandler2); + + width = startWidth + (e.screenX - startX); + height = startHeight + (e.screenY - startY); + t.resizeTo(width, height, true); + }; + + e.preventDefault(); + + // Get the current rect size + startX = e.screenX; + startY = e.screenY; + ifrElm = DOM.get(t.editor.id + '_ifr'); + startWidth = width = ifrElm.clientWidth; + startHeight = height = ifrElm.clientHeight; + + // Register envent handlers + mouseMoveHandler1 = Event.add(DOM.doc, 'mousemove', resizeOnMove); + mouseMoveHandler2 = Event.add(ed.getDoc(), 'mousemove', resizeOnMove); + mouseUpHandler1 = Event.add(DOM.doc, 'mouseup', endResize); + mouseUpHandler2 = Event.add(ed.getDoc(), 'mouseup', endResize); + }); + }); + } + + o.deltaHeight -= 21; + n = tb = null; + }, + + _updateUndoStatus : function(ed) { + var cm = ed.controlManager, um = ed.undoManager; + + cm.setDisabled('undo', !um.hasUndo() && !um.typing); + cm.setDisabled('redo', !um.hasRedo()); + }, + + _nodeChanged : function(ed, cm, n, co, ob) { + var t = this, p, de = 0, v, c, s = t.settings, cl, fz, fn, fc, bc, formatNames, matches; + + tinymce.each(t.stateControls, function(c) { + cm.setActive(c, ed.queryCommandState(t.controls[c][1])); + }); + + function getParent(name) { + var i, parents = ob.parents, func = name; + + if (typeof(name) == 'string') { + func = function(node) { + return node.nodeName == name; + }; + } + + for (i = 0; i < parents.length; i++) { + if (func(parents[i])) + return parents[i]; + } + }; + + cm.setActive('visualaid', ed.hasVisual); + t._updateUndoStatus(ed); + cm.setDisabled('outdent', !ed.queryCommandState('Outdent')); + + p = getParent('A'); + if (c = cm.get('link')) { + c.setDisabled((!p && co) || (p && !p.href)); + c.setActive(!!p && (!p.name && !p.id)); + } + + if (c = cm.get('unlink')) { + c.setDisabled(!p && co); + c.setActive(!!p && !p.name && !p.id); + } + + if (c = cm.get('anchor')) { + c.setActive(!co && !!p && (p.name || (p.id && !p.href))); + } + + p = getParent('IMG'); + if (c = cm.get('image')) + c.setActive(!co && !!p && n.className.indexOf('mceItem') == -1); + + if (c = cm.get('styleselect')) { + t._importClasses(); + + formatNames = []; + each(c.items, function(item) { + formatNames.push(item.value); + }); + + matches = ed.formatter.matchAll(formatNames); + c.select(matches[0]); + tinymce.each(matches, function(match, index) { + if (index > 0) { + c.mark(match); + } + }); + } + + if (c = cm.get('formatselect')) { + p = getParent(ed.dom.isBlock); + + if (p) + c.select(p.nodeName.toLowerCase()); + } + + // Find out current fontSize, fontFamily and fontClass + getParent(function(n) { + if (n.nodeName === 'SPAN') { + if (!cl && n.className) + cl = n.className; + } + + if (ed.dom.is(n, s.theme_advanced_font_selector)) { + if (!fz && n.style.fontSize) + fz = n.style.fontSize; + + if (!fn && n.style.fontFamily) + fn = n.style.fontFamily.replace(/[\"\']+/g, '').replace(/^([^,]+).*/, '$1').toLowerCase(); + + if (!fc && n.style.color) + fc = n.style.color; + + if (!bc && n.style.backgroundColor) + bc = n.style.backgroundColor; + } + + return false; + }); + + if (c = cm.get('fontselect')) { + c.select(function(v) { + return v.replace(/^([^,]+).*/, '$1').toLowerCase() == fn; + }); + } + + // Select font size + if (c = cm.get('fontsizeselect')) { + // Use computed style + if (s.theme_advanced_runtime_fontsize && !fz && !cl) + fz = ed.dom.getStyle(n, 'fontSize', true); + + c.select(function(v) { + if (v.fontSize && v.fontSize === fz) + return true; + + if (v['class'] && v['class'] === cl) + return true; + }); + } + + if (s.theme_advanced_show_current_color) { + function updateColor(controlId, color) { + if (c = cm.get(controlId)) { + if (!color) + color = c.settings.default_color; + if (color !== c.value) { + c.displayColor(color); + } + } + } + updateColor('forecolor', fc); + updateColor('backcolor', bc); + } + + if (s.theme_advanced_show_current_color) { + function updateColor(controlId, color) { + if (c = cm.get(controlId)) { + if (!color) + color = c.settings.default_color; + if (color !== c.value) { + c.displayColor(color); + } + } + }; + + updateColor('forecolor', fc); + updateColor('backcolor', bc); + } + + if (s.theme_advanced_path && s.theme_advanced_statusbar_location) { + p = DOM.get(ed.id + '_path') || DOM.add(ed.id + '_path_row', 'span', {id : ed.id + '_path'}); + + if (t.statusKeyboardNavigation) { + t.statusKeyboardNavigation.destroy(); + t.statusKeyboardNavigation = null; + } + + DOM.setHTML(p, ''); + + getParent(function(n) { + var na = n.nodeName.toLowerCase(), u, pi, ti = ''; + + // Ignore non element and bogus/hidden elements + if (n.nodeType != 1 || na === 'br' || n.getAttribute('data-mce-bogus') || DOM.hasClass(n, 'mceItemHidden') || DOM.hasClass(n, 'mceItemRemoved')) + return; + + // Handle prefix + if (tinymce.isIE && n.scopeName !== 'HTML' && n.scopeName) + na = n.scopeName + ':' + na; + + // Remove internal prefix + na = na.replace(/mce\:/g, ''); + + // Handle node name + switch (na) { + case 'b': + na = 'strong'; + break; + + case 'i': + na = 'em'; + break; + + case 'img': + if (v = DOM.getAttrib(n, 'src')) + ti += 'src: ' + v + ' '; + + break; + + case 'a': + if (v = DOM.getAttrib(n, 'name')) { + ti += 'name: ' + v + ' '; + na += '#' + v; + } + + if (v = DOM.getAttrib(n, 'href')) + ti += 'href: ' + v + ' '; + + break; + + case 'font': + if (v = DOM.getAttrib(n, 'face')) + ti += 'font: ' + v + ' '; + + if (v = DOM.getAttrib(n, 'size')) + ti += 'size: ' + v + ' '; + + if (v = DOM.getAttrib(n, 'color')) + ti += 'color: ' + v + ' '; + + break; + + case 'span': + if (v = DOM.getAttrib(n, 'style')) + ti += 'style: ' + v + ' '; + + break; + } + + if (v = DOM.getAttrib(n, 'id')) + ti += 'id: ' + v + ' '; + + if (v = n.className) { + v = v.replace(/\b\s*(webkit|mce|Apple-)\w+\s*\b/g, '') + + if (v) { + ti += 'class: ' + v + ' '; + + if (ed.dom.isBlock(n) || na == 'img' || na == 'span') + na += '.' + v; + } + } + + na = na.replace(/(html:)/g, ''); + na = {name : na, node : n, title : ti}; + t.onResolveName.dispatch(t, na); + ti = na.title; + na = na.name; + + //u = "javascript:tinymce.EditorManager.get('" + ed.id + "').theme._sel('" + (de++) + "');"; + pi = DOM.create('a', {'href' : "javascript:;", role: 'button', onmousedown : "return false;", title : ti, 'class' : 'mcePath_' + (de++)}, na); + + if (p.hasChildNodes()) { + p.insertBefore(DOM.create('span', {'aria-hidden': 'true'}, '\u00a0\u00bb '), p.firstChild); + p.insertBefore(pi, p.firstChild); + } else + p.appendChild(pi); + }, ed.getBody()); + + if (DOM.select('a', p).length > 0) { + t.statusKeyboardNavigation = new tinymce.ui.KeyboardNavigation({ + root: ed.id + "_path_row", + items: DOM.select('a', p), + excludeFromTabOrder: true, + onCancel: function() { + ed.focus(); + } + }, DOM); + } + } + }, + + // Commands gets called by execCommand + + _sel : function(v) { + this.editor.execCommand('mceSelectNodeDepth', false, v); + }, + + _mceInsertAnchor : function(ui, v) { + var ed = this.editor; + + ed.windowManager.open({ + url : this.url + '/anchor.htm', + width : 320 + parseInt(ed.getLang('advanced.anchor_delta_width', 0)), + height : 90 + parseInt(ed.getLang('advanced.anchor_delta_height', 0)), + inline : true + }, { + theme_url : this.url + }); + }, + + _mceCharMap : function() { + var ed = this.editor; + + ed.windowManager.open({ + url : this.url + '/charmap.htm', + width : 550 + parseInt(ed.getLang('advanced.charmap_delta_width', 0)), + height : 265 + parseInt(ed.getLang('advanced.charmap_delta_height', 0)), + inline : true + }, { + theme_url : this.url + }); + }, + + _mceHelp : function() { + var ed = this.editor; + + ed.windowManager.open({ + url : this.url + '/about.htm', + width : 480, + height : 380, + inline : true + }, { + theme_url : this.url + }); + }, + + _mceShortcuts : function() { + var ed = this.editor; + ed.windowManager.open({ + url: this.url + '/shortcuts.htm', + width: 480, + height: 380, + inline: true + }, { + theme_url: this.url + }); + }, + + _mceColorPicker : function(u, v) { + var ed = this.editor; + + v = v || {}; + + ed.windowManager.open({ + url : this.url + '/color_picker.htm', + width : 375 + parseInt(ed.getLang('advanced.colorpicker_delta_width', 0)), + height : 250 + parseInt(ed.getLang('advanced.colorpicker_delta_height', 0)), + close_previous : false, + inline : true + }, { + input_color : v.color, + func : v.func, + theme_url : this.url + }); + }, + + _mceCodeEditor : function(ui, val) { + var ed = this.editor; + + ed.windowManager.open({ + url : this.url + '/source_editor.htm', + width : parseInt(ed.getParam("theme_advanced_source_editor_width", 720)), + height : parseInt(ed.getParam("theme_advanced_source_editor_height", 580)), + inline : true, + resizable : true, + maximizable : true + }, { + theme_url : this.url + }); + }, + + _mceImage : function(ui, val) { + var ed = this.editor; + + // Internal image object like a flash placeholder + if (ed.dom.getAttrib(ed.selection.getNode(), 'class', '').indexOf('mceItem') != -1) + return; + + ed.windowManager.open({ + url : this.url + '/image.htm', + width : 355 + parseInt(ed.getLang('advanced.image_delta_width', 0)), + height : 275 + parseInt(ed.getLang('advanced.image_delta_height', 0)), + inline : true + }, { + theme_url : this.url + }); + }, + + _mceLink : function(ui, val) { + var ed = this.editor; + + ed.windowManager.open({ + url : this.url + '/link.htm', + width : 310 + parseInt(ed.getLang('advanced.link_delta_width', 0)), + height : 200 + parseInt(ed.getLang('advanced.link_delta_height', 0)), + inline : true + }, { + theme_url : this.url + }); + }, + + _mceNewDocument : function() { + var ed = this.editor; + + ed.windowManager.confirm('advanced.newdocument', function(s) { + if (s) + ed.execCommand('mceSetContent', false, ''); + }); + }, + + _mceForeColor : function() { + var t = this; + + this._mceColorPicker(0, { + color: t.fgColor, + func : function(co) { + t.fgColor = co; + t.editor.execCommand('ForeColor', false, co); + } + }); + }, + + _mceBackColor : function() { + var t = this; + + this._mceColorPicker(0, { + color: t.bgColor, + func : function(co) { + t.bgColor = co; + t.editor.execCommand('HiliteColor', false, co); + } + }); + }, + + _ufirst : function(s) { + return s.substring(0, 1).toUpperCase() + s.substring(1); + } + }); + + tinymce.ThemeManager.add('advanced', tinymce.themes.AdvancedTheme); +}(tinymce)); diff --git a/askbot/skins/default/media/js/tinymce/themes/advanced/image.htm b/askbot/skins/default/media/js/tinymce/themes/advanced/image.htm new file mode 100644 index 00000000..b8ba729f --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/themes/advanced/image.htm @@ -0,0 +1,80 @@ + + + + {#advanced_dlg.image_title} + + + + + + +
          + + +
          +
          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          + + + + +
           
          + x +
          +
          +
          + +
          + + +
          +
          + + diff --git a/askbot/skins/default/media/js/tinymce/themes/advanced/img/colorpicker.jpg b/askbot/skins/default/media/js/tinymce/themes/advanced/img/colorpicker.jpg new file mode 100644 index 00000000..b1a377ab Binary files /dev/null and b/askbot/skins/default/media/js/tinymce/themes/advanced/img/colorpicker.jpg differ diff --git a/askbot/skins/default/media/js/tinymce/themes/advanced/img/flash.gif b/askbot/skins/default/media/js/tinymce/themes/advanced/img/flash.gif new file mode 100644 index 00000000..dec3f7c7 Binary files /dev/null and b/askbot/skins/default/media/js/tinymce/themes/advanced/img/flash.gif differ diff --git a/askbot/skins/default/media/js/tinymce/themes/advanced/img/icons.gif b/askbot/skins/default/media/js/tinymce/themes/advanced/img/icons.gif new file mode 100644 index 00000000..ca222490 Binary files /dev/null and b/askbot/skins/default/media/js/tinymce/themes/advanced/img/icons.gif differ diff --git a/askbot/skins/default/media/js/tinymce/themes/advanced/img/iframe.gif b/askbot/skins/default/media/js/tinymce/themes/advanced/img/iframe.gif new file mode 100644 index 00000000..410c7ad0 Binary files /dev/null and b/askbot/skins/default/media/js/tinymce/themes/advanced/img/iframe.gif differ diff --git a/askbot/skins/default/media/js/tinymce/themes/advanced/img/pagebreak.gif b/askbot/skins/default/media/js/tinymce/themes/advanced/img/pagebreak.gif new file mode 100644 index 00000000..acdf4085 Binary files /dev/null and b/askbot/skins/default/media/js/tinymce/themes/advanced/img/pagebreak.gif differ diff --git a/askbot/skins/default/media/js/tinymce/themes/advanced/img/quicktime.gif b/askbot/skins/default/media/js/tinymce/themes/advanced/img/quicktime.gif new file mode 100644 index 00000000..8f10e7aa Binary files /dev/null and b/askbot/skins/default/media/js/tinymce/themes/advanced/img/quicktime.gif differ diff --git a/askbot/skins/default/media/js/tinymce/themes/advanced/img/realmedia.gif b/askbot/skins/default/media/js/tinymce/themes/advanced/img/realmedia.gif new file mode 100644 index 00000000..fdfe0b9a Binary files /dev/null and b/askbot/skins/default/media/js/tinymce/themes/advanced/img/realmedia.gif differ diff --git a/askbot/skins/default/media/js/tinymce/themes/advanced/img/shockwave.gif b/askbot/skins/default/media/js/tinymce/themes/advanced/img/shockwave.gif new file mode 100644 index 00000000..9314d044 Binary files /dev/null and b/askbot/skins/default/media/js/tinymce/themes/advanced/img/shockwave.gif differ diff --git a/askbot/skins/default/media/js/tinymce/themes/advanced/img/trans.gif b/askbot/skins/default/media/js/tinymce/themes/advanced/img/trans.gif new file mode 100644 index 00000000..38848651 Binary files /dev/null and b/askbot/skins/default/media/js/tinymce/themes/advanced/img/trans.gif differ diff --git a/askbot/skins/default/media/js/tinymce/themes/advanced/img/video.gif b/askbot/skins/default/media/js/tinymce/themes/advanced/img/video.gif new file mode 100644 index 00000000..35701040 Binary files /dev/null and b/askbot/skins/default/media/js/tinymce/themes/advanced/img/video.gif differ diff --git a/askbot/skins/default/media/js/tinymce/themes/advanced/img/windowsmedia.gif b/askbot/skins/default/media/js/tinymce/themes/advanced/img/windowsmedia.gif new file mode 100644 index 00000000..ab50f2d8 Binary files /dev/null and b/askbot/skins/default/media/js/tinymce/themes/advanced/img/windowsmedia.gif differ diff --git a/askbot/skins/default/media/js/tinymce/themes/advanced/js/about.js b/askbot/skins/default/media/js/tinymce/themes/advanced/js/about.js new file mode 100644 index 00000000..5b358457 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/themes/advanced/js/about.js @@ -0,0 +1,73 @@ +tinyMCEPopup.requireLangPack(); + +function init() { + var ed, tcont; + + tinyMCEPopup.resizeToInnerSize(); + ed = tinyMCEPopup.editor; + + // Give FF some time + window.setTimeout(insertHelpIFrame, 10); + + tcont = document.getElementById('plugintablecontainer'); + document.getElementById('plugins_tab').style.display = 'none'; + + var html = ""; + html += ''; + html += ''; + html += ''; + html += ''; + html += ''; + html += ''; + html += ''; + html += ''; + html += ''; + + tinymce.each(ed.plugins, function(p, n) { + var info; + + if (!p.getInfo) + return; + + html += ''; + + info = p.getInfo(); + + if (info.infourl != null && info.infourl != '') + html += ''; + else + html += ''; + + if (info.authorurl != null && info.authorurl != '') + html += ''; + else + html += ''; + + html += ''; + html += ''; + + document.getElementById('plugins_tab').style.display = ''; + + }); + + html += ''; + html += '
          ' + ed.getLang('advanced_dlg.about_plugin') + '' + ed.getLang('advanced_dlg.about_author') + '' + ed.getLang('advanced_dlg.about_version') + '
          ' + info.longname + '' + info.longname + '' + info.author + '' + info.author + '' + info.version + '
          '; + + tcont.innerHTML = html; + + tinyMCEPopup.dom.get('version').innerHTML = tinymce.majorVersion + "." + tinymce.minorVersion; + tinyMCEPopup.dom.get('date').innerHTML = tinymce.releaseDate; +} + +function insertHelpIFrame() { + var html; + + if (tinyMCEPopup.getParam('docs_url')) { + html = ''; + document.getElementById('iframecontainer').innerHTML = html; + document.getElementById('help_tab').style.display = 'block'; + document.getElementById('help_tab').setAttribute("aria-hidden", "false"); + } +} + +tinyMCEPopup.onInit.add(init); diff --git a/askbot/skins/default/media/js/tinymce/themes/advanced/js/anchor.js b/askbot/skins/default/media/js/tinymce/themes/advanced/js/anchor.js new file mode 100644 index 00000000..2909a3a4 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/themes/advanced/js/anchor.js @@ -0,0 +1,56 @@ +tinyMCEPopup.requireLangPack(); + +var AnchorDialog = { + init : function(ed) { + var action, elm, f = document.forms[0]; + + this.editor = ed; + elm = ed.dom.getParent(ed.selection.getNode(), 'A'); + v = ed.dom.getAttrib(elm, 'name') || ed.dom.getAttrib(elm, 'id'); + + if (v) { + this.action = 'update'; + f.anchorName.value = v; + } + + f.insert.value = ed.getLang(elm ? 'update' : 'insert'); + }, + + update : function() { + var ed = this.editor, elm, name = document.forms[0].anchorName.value, attribName; + + if (!name || !/^[a-z][a-z0-9\-\_:\.]*$/i.test(name)) { + tinyMCEPopup.alert('advanced_dlg.anchor_invalid'); + return; + } + + tinyMCEPopup.restoreSelection(); + + if (this.action != 'update') + ed.selection.collapse(1); + + var aRule = ed.schema.getElementRule('a'); + if (!aRule || aRule.attributes.name) { + attribName = 'name'; + } else { + attribName = 'id'; + } + + elm = ed.dom.getParent(ed.selection.getNode(), 'A'); + if (elm) { + elm.setAttribute(attribName, name); + elm[attribName] = name; + ed.undoManager.add(); + } else { + // create with zero-sized nbsp so that in Webkit where anchor is on last line by itself caret cannot be placed after it + var attrs = {'class' : 'mceItemAnchor'}; + attrs[attribName] = name; + ed.execCommand('mceInsertContent', 0, ed.dom.createHTML('a', attrs, '\uFEFF')); + ed.nodeChanged(); + } + + tinyMCEPopup.close(); + } +}; + +tinyMCEPopup.onInit.add(AnchorDialog.init, AnchorDialog); diff --git a/askbot/skins/default/media/js/tinymce/themes/advanced/js/charmap.js b/askbot/skins/default/media/js/tinymce/themes/advanced/js/charmap.js new file mode 100644 index 00000000..bb186955 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/themes/advanced/js/charmap.js @@ -0,0 +1,363 @@ +/** + * charmap.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +tinyMCEPopup.requireLangPack(); + +var charmap = [ + [' ', ' ', true, 'no-break space'], + ['&', '&', true, 'ampersand'], + ['"', '"', true, 'quotation mark'], +// finance + ['¢', '¢', true, 'cent sign'], + ['€', '€', true, 'euro sign'], + ['£', '£', true, 'pound sign'], + ['¥', '¥', true, 'yen sign'], +// signs + ['©', '©', true, 'copyright sign'], + ['®', '®', true, 'registered sign'], + ['™', '™', true, 'trade mark sign'], + ['‰', '‰', true, 'per mille sign'], + ['µ', 'µ', true, 'micro sign'], + ['·', '·', true, 'middle dot'], + ['•', '•', true, 'bullet'], + ['…', '…', true, 'three dot leader'], + ['′', '′', true, 'minutes / feet'], + ['″', '″', true, 'seconds / inches'], + ['§', '§', true, 'section sign'], + ['¶', '¶', true, 'paragraph sign'], + ['ß', 'ß', true, 'sharp s / ess-zed'], +// quotations + ['‹', '‹', true, 'single left-pointing angle quotation mark'], + ['›', '›', true, 'single right-pointing angle quotation mark'], + ['«', '«', true, 'left pointing guillemet'], + ['»', '»', true, 'right pointing guillemet'], + ['‘', '‘', true, 'left single quotation mark'], + ['’', '’', true, 'right single quotation mark'], + ['“', '“', true, 'left double quotation mark'], + ['”', '”', true, 'right double quotation mark'], + ['‚', '‚', true, 'single low-9 quotation mark'], + ['„', '„', true, 'double low-9 quotation mark'], + ['<', '<', true, 'less-than sign'], + ['>', '>', true, 'greater-than sign'], + ['≤', '≤', true, 'less-than or equal to'], + ['≥', '≥', true, 'greater-than or equal to'], + ['–', '–', true, 'en dash'], + ['—', '—', true, 'em dash'], + ['¯', '¯', true, 'macron'], + ['‾', '‾', true, 'overline'], + ['¤', '¤', true, 'currency sign'], + ['¦', '¦', true, 'broken bar'], + ['¨', '¨', true, 'diaeresis'], + ['¡', '¡', true, 'inverted exclamation mark'], + ['¿', '¿', true, 'turned question mark'], + ['ˆ', 'ˆ', true, 'circumflex accent'], + ['˜', '˜', true, 'small tilde'], + ['°', '°', true, 'degree sign'], + ['−', '−', true, 'minus sign'], + ['±', '±', true, 'plus-minus sign'], + ['÷', '÷', true, 'division sign'], + ['⁄', '⁄', true, 'fraction slash'], + ['×', '×', true, 'multiplication sign'], + ['¹', '¹', true, 'superscript one'], + ['²', '²', true, 'superscript two'], + ['³', '³', true, 'superscript three'], + ['¼', '¼', true, 'fraction one quarter'], + ['½', '½', true, 'fraction one half'], + ['¾', '¾', true, 'fraction three quarters'], +// math / logical + ['ƒ', 'ƒ', true, 'function / florin'], + ['∫', '∫', true, 'integral'], + ['∑', '∑', true, 'n-ary sumation'], + ['∞', '∞', true, 'infinity'], + ['√', '√', true, 'square root'], + ['∼', '∼', false,'similar to'], + ['≅', '≅', false,'approximately equal to'], + ['≈', '≈', true, 'almost equal to'], + ['≠', '≠', true, 'not equal to'], + ['≡', '≡', true, 'identical to'], + ['∈', '∈', false,'element of'], + ['∉', '∉', false,'not an element of'], + ['∋', '∋', false,'contains as member'], + ['∏', '∏', true, 'n-ary product'], + ['∧', '∧', false,'logical and'], + ['∨', '∨', false,'logical or'], + ['¬', '¬', true, 'not sign'], + ['∩', '∩', true, 'intersection'], + ['∪', '∪', false,'union'], + ['∂', '∂', true, 'partial differential'], + ['∀', '∀', false,'for all'], + ['∃', '∃', false,'there exists'], + ['∅', '∅', false,'diameter'], + ['∇', '∇', false,'backward difference'], + ['∗', '∗', false,'asterisk operator'], + ['∝', '∝', false,'proportional to'], + ['∠', '∠', false,'angle'], +// undefined + ['´', '´', true, 'acute accent'], + ['¸', '¸', true, 'cedilla'], + ['ª', 'ª', true, 'feminine ordinal indicator'], + ['º', 'º', true, 'masculine ordinal indicator'], + ['†', '†', true, 'dagger'], + ['‡', '‡', true, 'double dagger'], +// alphabetical special chars + ['À', 'À', true, 'A - grave'], + ['Á', 'Á', true, 'A - acute'], + ['Â', 'Â', true, 'A - circumflex'], + ['Ã', 'Ã', true, 'A - tilde'], + ['Ä', 'Ä', true, 'A - diaeresis'], + ['Å', 'Å', true, 'A - ring above'], + ['Æ', 'Æ', true, 'ligature AE'], + ['Ç', 'Ç', true, 'C - cedilla'], + ['È', 'È', true, 'E - grave'], + ['É', 'É', true, 'E - acute'], + ['Ê', 'Ê', true, 'E - circumflex'], + ['Ë', 'Ë', true, 'E - diaeresis'], + ['Ì', 'Ì', true, 'I - grave'], + ['Í', 'Í', true, 'I - acute'], + ['Î', 'Î', true, 'I - circumflex'], + ['Ï', 'Ï', true, 'I - diaeresis'], + ['Ð', 'Ð', true, 'ETH'], + ['Ñ', 'Ñ', true, 'N - tilde'], + ['Ò', 'Ò', true, 'O - grave'], + ['Ó', 'Ó', true, 'O - acute'], + ['Ô', 'Ô', true, 'O - circumflex'], + ['Õ', 'Õ', true, 'O - tilde'], + ['Ö', 'Ö', true, 'O - diaeresis'], + ['Ø', 'Ø', true, 'O - slash'], + ['Œ', 'Œ', true, 'ligature OE'], + ['Š', 'Š', true, 'S - caron'], + ['Ù', 'Ù', true, 'U - grave'], + ['Ú', 'Ú', true, 'U - acute'], + ['Û', 'Û', true, 'U - circumflex'], + ['Ü', 'Ü', true, 'U - diaeresis'], + ['Ý', 'Ý', true, 'Y - acute'], + ['Ÿ', 'Ÿ', true, 'Y - diaeresis'], + ['Þ', 'Þ', true, 'THORN'], + ['à', 'à', true, 'a - grave'], + ['á', 'á', true, 'a - acute'], + ['â', 'â', true, 'a - circumflex'], + ['ã', 'ã', true, 'a - tilde'], + ['ä', 'ä', true, 'a - diaeresis'], + ['å', 'å', true, 'a - ring above'], + ['æ', 'æ', true, 'ligature ae'], + ['ç', 'ç', true, 'c - cedilla'], + ['è', 'è', true, 'e - grave'], + ['é', 'é', true, 'e - acute'], + ['ê', 'ê', true, 'e - circumflex'], + ['ë', 'ë', true, 'e - diaeresis'], + ['ì', 'ì', true, 'i - grave'], + ['í', 'í', true, 'i - acute'], + ['î', 'î', true, 'i - circumflex'], + ['ï', 'ï', true, 'i - diaeresis'], + ['ð', 'ð', true, 'eth'], + ['ñ', 'ñ', true, 'n - tilde'], + ['ò', 'ò', true, 'o - grave'], + ['ó', 'ó', true, 'o - acute'], + ['ô', 'ô', true, 'o - circumflex'], + ['õ', 'õ', true, 'o - tilde'], + ['ö', 'ö', true, 'o - diaeresis'], + ['ø', 'ø', true, 'o slash'], + ['œ', 'œ', true, 'ligature oe'], + ['š', 'š', true, 's - caron'], + ['ù', 'ù', true, 'u - grave'], + ['ú', 'ú', true, 'u - acute'], + ['û', 'û', true, 'u - circumflex'], + ['ü', 'ü', true, 'u - diaeresis'], + ['ý', 'ý', true, 'y - acute'], + ['þ', 'þ', true, 'thorn'], + ['ÿ', 'ÿ', true, 'y - diaeresis'], + ['Α', 'Α', true, 'Alpha'], + ['Β', 'Β', true, 'Beta'], + ['Γ', 'Γ', true, 'Gamma'], + ['Δ', 'Δ', true, 'Delta'], + ['Ε', 'Ε', true, 'Epsilon'], + ['Ζ', 'Ζ', true, 'Zeta'], + ['Η', 'Η', true, 'Eta'], + ['Θ', 'Θ', true, 'Theta'], + ['Ι', 'Ι', true, 'Iota'], + ['Κ', 'Κ', true, 'Kappa'], + ['Λ', 'Λ', true, 'Lambda'], + ['Μ', 'Μ', true, 'Mu'], + ['Ν', 'Ν', true, 'Nu'], + ['Ξ', 'Ξ', true, 'Xi'], + ['Ο', 'Ο', true, 'Omicron'], + ['Π', 'Π', true, 'Pi'], + ['Ρ', 'Ρ', true, 'Rho'], + ['Σ', 'Σ', true, 'Sigma'], + ['Τ', 'Τ', true, 'Tau'], + ['Υ', 'Υ', true, 'Upsilon'], + ['Φ', 'Φ', true, 'Phi'], + ['Χ', 'Χ', true, 'Chi'], + ['Ψ', 'Ψ', true, 'Psi'], + ['Ω', 'Ω', true, 'Omega'], + ['α', 'α', true, 'alpha'], + ['β', 'β', true, 'beta'], + ['γ', 'γ', true, 'gamma'], + ['δ', 'δ', true, 'delta'], + ['ε', 'ε', true, 'epsilon'], + ['ζ', 'ζ', true, 'zeta'], + ['η', 'η', true, 'eta'], + ['θ', 'θ', true, 'theta'], + ['ι', 'ι', true, 'iota'], + ['κ', 'κ', true, 'kappa'], + ['λ', 'λ', true, 'lambda'], + ['μ', 'μ', true, 'mu'], + ['ν', 'ν', true, 'nu'], + ['ξ', 'ξ', true, 'xi'], + ['ο', 'ο', true, 'omicron'], + ['π', 'π', true, 'pi'], + ['ρ', 'ρ', true, 'rho'], + ['ς', 'ς', true, 'final sigma'], + ['σ', 'σ', true, 'sigma'], + ['τ', 'τ', true, 'tau'], + ['υ', 'υ', true, 'upsilon'], + ['φ', 'φ', true, 'phi'], + ['χ', 'χ', true, 'chi'], + ['ψ', 'ψ', true, 'psi'], + ['ω', 'ω', true, 'omega'], +// symbols + ['ℵ', 'ℵ', false,'alef symbol'], + ['ϖ', 'ϖ', false,'pi symbol'], + ['ℜ', 'ℜ', false,'real part symbol'], + ['ϑ','ϑ', false,'theta symbol'], + ['ϒ', 'ϒ', false,'upsilon - hook symbol'], + ['℘', '℘', false,'Weierstrass p'], + ['ℑ', 'ℑ', false,'imaginary part'], +// arrows + ['←', '←', true, 'leftwards arrow'], + ['↑', '↑', true, 'upwards arrow'], + ['→', '→', true, 'rightwards arrow'], + ['↓', '↓', true, 'downwards arrow'], + ['↔', '↔', true, 'left right arrow'], + ['↵', '↵', false,'carriage return'], + ['⇐', '⇐', false,'leftwards double arrow'], + ['⇑', '⇑', false,'upwards double arrow'], + ['⇒', '⇒', false,'rightwards double arrow'], + ['⇓', '⇓', false,'downwards double arrow'], + ['⇔', '⇔', false,'left right double arrow'], + ['∴', '∴', false,'therefore'], + ['⊂', '⊂', false,'subset of'], + ['⊃', '⊃', false,'superset of'], + ['⊄', '⊄', false,'not a subset of'], + ['⊆', '⊆', false,'subset of or equal to'], + ['⊇', '⊇', false,'superset of or equal to'], + ['⊕', '⊕', false,'circled plus'], + ['⊗', '⊗', false,'circled times'], + ['⊥', '⊥', false,'perpendicular'], + ['⋅', '⋅', false,'dot operator'], + ['⌈', '⌈', false,'left ceiling'], + ['⌉', '⌉', false,'right ceiling'], + ['⌊', '⌊', false,'left floor'], + ['⌋', '⌋', false,'right floor'], + ['⟨', '〈', false,'left-pointing angle bracket'], + ['⟩', '〉', false,'right-pointing angle bracket'], + ['◊', '◊', true, 'lozenge'], + ['♠', '♠', true, 'black spade suit'], + ['♣', '♣', true, 'black club suit'], + ['♥', '♥', true, 'black heart suit'], + ['♦', '♦', true, 'black diamond suit'], + [' ', ' ', false,'en space'], + [' ', ' ', false,'em space'], + [' ', ' ', false,'thin space'], + ['‌', '‌', false,'zero width non-joiner'], + ['‍', '‍', false,'zero width joiner'], + ['‎', '‎', false,'left-to-right mark'], + ['‏', '‏', false,'right-to-left mark'], + ['­', '­', false,'soft hyphen'] +]; + +tinyMCEPopup.onInit.add(function() { + tinyMCEPopup.dom.setHTML('charmapView', renderCharMapHTML()); + addKeyboardNavigation(); +}); + +function addKeyboardNavigation(){ + var tableElm, cells, settings; + + cells = tinyMCEPopup.dom.select("a.charmaplink", "charmapgroup"); + + settings ={ + root: "charmapgroup", + items: cells + }; + cells[0].tabindex=0; + tinyMCEPopup.dom.addClass(cells[0], "mceFocus"); + if (tinymce.isGecko) { + cells[0].focus(); + } else { + setTimeout(function(){ + cells[0].focus(); + }, 100); + } + tinyMCEPopup.editor.windowManager.createInstance('tinymce.ui.KeyboardNavigation', settings, tinyMCEPopup.dom); +} + +function renderCharMapHTML() { + var charsPerRow = 20, tdWidth=20, tdHeight=20, i; + var html = '
          '+ + ''; + var cols=-1; + + for (i=0; i' + + '' + + charmap[i][1] + + ''; + if ((cols+1) % charsPerRow == 0) + html += ''; + } + } + + if (cols % charsPerRow > 0) { + var padd = charsPerRow - (cols % charsPerRow); + for (var i=0; i '; + } + + html += '
          '; + html = html.replace(/<\/tr>/g, ''); + + return html; +} + +function insertChar(chr) { + tinyMCEPopup.execCommand('mceInsertContent', false, '&#' + chr + ';'); + + // Refocus in window + if (tinyMCEPopup.isWindow) + window.focus(); + + tinyMCEPopup.editor.focus(); + tinyMCEPopup.close(); +} + +function previewChar(codeA, codeB, codeN) { + var elmA = document.getElementById('codeA'); + var elmB = document.getElementById('codeB'); + var elmV = document.getElementById('codeV'); + var elmN = document.getElementById('codeN'); + + if (codeA=='#160;') { + elmV.innerHTML = '__'; + } else { + elmV.innerHTML = '&' + codeA; + } + + elmB.innerHTML = '&' + codeA; + elmA.innerHTML = '&' + codeB; + elmN.innerHTML = codeN; +} diff --git a/askbot/skins/default/media/js/tinymce/themes/advanced/js/color_picker.js b/askbot/skins/default/media/js/tinymce/themes/advanced/js/color_picker.js new file mode 100644 index 00000000..cc891c17 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/themes/advanced/js/color_picker.js @@ -0,0 +1,345 @@ +tinyMCEPopup.requireLangPack(); + +var detail = 50, strhex = "0123456789abcdef", i, isMouseDown = false, isMouseOver = false; + +var colors = [ + "#000000","#000033","#000066","#000099","#0000cc","#0000ff","#330000","#330033", + "#330066","#330099","#3300cc","#3300ff","#660000","#660033","#660066","#660099", + "#6600cc","#6600ff","#990000","#990033","#990066","#990099","#9900cc","#9900ff", + "#cc0000","#cc0033","#cc0066","#cc0099","#cc00cc","#cc00ff","#ff0000","#ff0033", + "#ff0066","#ff0099","#ff00cc","#ff00ff","#003300","#003333","#003366","#003399", + "#0033cc","#0033ff","#333300","#333333","#333366","#333399","#3333cc","#3333ff", + "#663300","#663333","#663366","#663399","#6633cc","#6633ff","#993300","#993333", + "#993366","#993399","#9933cc","#9933ff","#cc3300","#cc3333","#cc3366","#cc3399", + "#cc33cc","#cc33ff","#ff3300","#ff3333","#ff3366","#ff3399","#ff33cc","#ff33ff", + "#006600","#006633","#006666","#006699","#0066cc","#0066ff","#336600","#336633", + "#336666","#336699","#3366cc","#3366ff","#666600","#666633","#666666","#666699", + "#6666cc","#6666ff","#996600","#996633","#996666","#996699","#9966cc","#9966ff", + "#cc6600","#cc6633","#cc6666","#cc6699","#cc66cc","#cc66ff","#ff6600","#ff6633", + "#ff6666","#ff6699","#ff66cc","#ff66ff","#009900","#009933","#009966","#009999", + "#0099cc","#0099ff","#339900","#339933","#339966","#339999","#3399cc","#3399ff", + "#669900","#669933","#669966","#669999","#6699cc","#6699ff","#999900","#999933", + "#999966","#999999","#9999cc","#9999ff","#cc9900","#cc9933","#cc9966","#cc9999", + "#cc99cc","#cc99ff","#ff9900","#ff9933","#ff9966","#ff9999","#ff99cc","#ff99ff", + "#00cc00","#00cc33","#00cc66","#00cc99","#00cccc","#00ccff","#33cc00","#33cc33", + "#33cc66","#33cc99","#33cccc","#33ccff","#66cc00","#66cc33","#66cc66","#66cc99", + "#66cccc","#66ccff","#99cc00","#99cc33","#99cc66","#99cc99","#99cccc","#99ccff", + "#cccc00","#cccc33","#cccc66","#cccc99","#cccccc","#ccccff","#ffcc00","#ffcc33", + "#ffcc66","#ffcc99","#ffcccc","#ffccff","#00ff00","#00ff33","#00ff66","#00ff99", + "#00ffcc","#00ffff","#33ff00","#33ff33","#33ff66","#33ff99","#33ffcc","#33ffff", + "#66ff00","#66ff33","#66ff66","#66ff99","#66ffcc","#66ffff","#99ff00","#99ff33", + "#99ff66","#99ff99","#99ffcc","#99ffff","#ccff00","#ccff33","#ccff66","#ccff99", + "#ccffcc","#ccffff","#ffff00","#ffff33","#ffff66","#ffff99","#ffffcc","#ffffff" +]; + +var named = { + '#F0F8FF':'Alice Blue','#FAEBD7':'Antique White','#00FFFF':'Aqua','#7FFFD4':'Aquamarine','#F0FFFF':'Azure','#F5F5DC':'Beige', + '#FFE4C4':'Bisque','#000000':'Black','#FFEBCD':'Blanched Almond','#0000FF':'Blue','#8A2BE2':'Blue Violet','#A52A2A':'Brown', + '#DEB887':'Burly Wood','#5F9EA0':'Cadet Blue','#7FFF00':'Chartreuse','#D2691E':'Chocolate','#FF7F50':'Coral','#6495ED':'Cornflower Blue', + '#FFF8DC':'Cornsilk','#DC143C':'Crimson','#00FFFF':'Cyan','#00008B':'Dark Blue','#008B8B':'Dark Cyan','#B8860B':'Dark Golden Rod', + '#A9A9A9':'Dark Gray','#A9A9A9':'Dark Grey','#006400':'Dark Green','#BDB76B':'Dark Khaki','#8B008B':'Dark Magenta','#556B2F':'Dark Olive Green', + '#FF8C00':'Darkorange','#9932CC':'Dark Orchid','#8B0000':'Dark Red','#E9967A':'Dark Salmon','#8FBC8F':'Dark Sea Green','#483D8B':'Dark Slate Blue', + '#2F4F4F':'Dark Slate Gray','#2F4F4F':'Dark Slate Grey','#00CED1':'Dark Turquoise','#9400D3':'Dark Violet','#FF1493':'Deep Pink','#00BFFF':'Deep Sky Blue', + '#696969':'Dim Gray','#696969':'Dim Grey','#1E90FF':'Dodger Blue','#B22222':'Fire Brick','#FFFAF0':'Floral White','#228B22':'Forest Green', + '#FF00FF':'Fuchsia','#DCDCDC':'Gainsboro','#F8F8FF':'Ghost White','#FFD700':'Gold','#DAA520':'Golden Rod','#808080':'Gray','#808080':'Grey', + '#008000':'Green','#ADFF2F':'Green Yellow','#F0FFF0':'Honey Dew','#FF69B4':'Hot Pink','#CD5C5C':'Indian Red','#4B0082':'Indigo','#FFFFF0':'Ivory', + '#F0E68C':'Khaki','#E6E6FA':'Lavender','#FFF0F5':'Lavender Blush','#7CFC00':'Lawn Green','#FFFACD':'Lemon Chiffon','#ADD8E6':'Light Blue', + '#F08080':'Light Coral','#E0FFFF':'Light Cyan','#FAFAD2':'Light Golden Rod Yellow','#D3D3D3':'Light Gray','#D3D3D3':'Light Grey','#90EE90':'Light Green', + '#FFB6C1':'Light Pink','#FFA07A':'Light Salmon','#20B2AA':'Light Sea Green','#87CEFA':'Light Sky Blue','#778899':'Light Slate Gray','#778899':'Light Slate Grey', + '#B0C4DE':'Light Steel Blue','#FFFFE0':'Light Yellow','#00FF00':'Lime','#32CD32':'Lime Green','#FAF0E6':'Linen','#FF00FF':'Magenta','#800000':'Maroon', + '#66CDAA':'Medium Aqua Marine','#0000CD':'Medium Blue','#BA55D3':'Medium Orchid','#9370D8':'Medium Purple','#3CB371':'Medium Sea Green','#7B68EE':'Medium Slate Blue', + '#00FA9A':'Medium Spring Green','#48D1CC':'Medium Turquoise','#C71585':'Medium Violet Red','#191970':'Midnight Blue','#F5FFFA':'Mint Cream','#FFE4E1':'Misty Rose','#FFE4B5':'Moccasin', + '#FFDEAD':'Navajo White','#000080':'Navy','#FDF5E6':'Old Lace','#808000':'Olive','#6B8E23':'Olive Drab','#FFA500':'Orange','#FF4500':'Orange Red','#DA70D6':'Orchid', + '#EEE8AA':'Pale Golden Rod','#98FB98':'Pale Green','#AFEEEE':'Pale Turquoise','#D87093':'Pale Violet Red','#FFEFD5':'Papaya Whip','#FFDAB9':'Peach Puff', + '#CD853F':'Peru','#FFC0CB':'Pink','#DDA0DD':'Plum','#B0E0E6':'Powder Blue','#800080':'Purple','#FF0000':'Red','#BC8F8F':'Rosy Brown','#4169E1':'Royal Blue', + '#8B4513':'Saddle Brown','#FA8072':'Salmon','#F4A460':'Sandy Brown','#2E8B57':'Sea Green','#FFF5EE':'Sea Shell','#A0522D':'Sienna','#C0C0C0':'Silver', + '#87CEEB':'Sky Blue','#6A5ACD':'Slate Blue','#708090':'Slate Gray','#708090':'Slate Grey','#FFFAFA':'Snow','#00FF7F':'Spring Green', + '#4682B4':'Steel Blue','#D2B48C':'Tan','#008080':'Teal','#D8BFD8':'Thistle','#FF6347':'Tomato','#40E0D0':'Turquoise','#EE82EE':'Violet', + '#F5DEB3':'Wheat','#FFFFFF':'White','#F5F5F5':'White Smoke','#FFFF00':'Yellow','#9ACD32':'Yellow Green' +}; + +var namedLookup = {}; + +function init() { + var inputColor = convertRGBToHex(tinyMCEPopup.getWindowArg('input_color')), key, value; + + tinyMCEPopup.resizeToInnerSize(); + + generatePicker(); + generateWebColors(); + generateNamedColors(); + + if (inputColor) { + changeFinalColor(inputColor); + + col = convertHexToRGB(inputColor); + + if (col) + updateLight(col.r, col.g, col.b); + } + + for (key in named) { + value = named[key]; + namedLookup[value.replace(/\s+/, '').toLowerCase()] = key.replace(/#/, '').toLowerCase(); + } +} + +function toHexColor(color) { + var matches, red, green, blue, toInt = parseInt; + + function hex(value) { + value = parseInt(value).toString(16); + + return value.length > 1 ? value : '0' + value; // Padd with leading zero + }; + + color = tinymce.trim(color); + color = color.replace(/^[#]/, '').toLowerCase(); // remove leading '#' + color = namedLookup[color] || color; + + matches = /^rgb\((\d{1,3}),(\d{1,3}),(\d{1,3})\)$/.exec(color); + + if (matches) { + red = toInt(matches[1]); + green = toInt(matches[2]); + blue = toInt(matches[3]); + } else { + matches = /^([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/.exec(color); + + if (matches) { + red = toInt(matches[1], 16); + green = toInt(matches[2], 16); + blue = toInt(matches[3], 16); + } else { + matches = /^([0-9a-f])([0-9a-f])([0-9a-f])$/.exec(color); + + if (matches) { + red = toInt(matches[1] + matches[1], 16); + green = toInt(matches[2] + matches[2], 16); + blue = toInt(matches[3] + matches[3], 16); + } else { + return ''; + } + } + } + + return '#' + hex(red) + hex(green) + hex(blue); +} + +function insertAction() { + var color = document.getElementById("color").value, f = tinyMCEPopup.getWindowArg('func'); + + var hexColor = toHexColor(color); + + if (hexColor === '') { + var text = tinyMCEPopup.editor.getLang('advanced_dlg.invalid_color_value'); + tinyMCEPopup.alert(text + ': ' + color); + } + else { + tinyMCEPopup.restoreSelection(); + + if (f) + f(hexColor); + + tinyMCEPopup.close(); + } +} + +function showColor(color, name) { + if (name) + document.getElementById("colorname").innerHTML = name; + + document.getElementById("preview").style.backgroundColor = color; + document.getElementById("color").value = color.toUpperCase(); +} + +function convertRGBToHex(col) { + var re = new RegExp("rgb\\s*\\(\\s*([0-9]+).*,\\s*([0-9]+).*,\\s*([0-9]+).*\\)", "gi"); + + if (!col) + return col; + + var rgb = col.replace(re, "$1,$2,$3").split(','); + if (rgb.length == 3) { + r = parseInt(rgb[0]).toString(16); + g = parseInt(rgb[1]).toString(16); + b = parseInt(rgb[2]).toString(16); + + r = r.length == 1 ? '0' + r : r; + g = g.length == 1 ? '0' + g : g; + b = b.length == 1 ? '0' + b : b; + + return "#" + r + g + b; + } + + return col; +} + +function convertHexToRGB(col) { + if (col.indexOf('#') != -1) { + col = col.replace(new RegExp('[^0-9A-F]', 'gi'), ''); + + r = parseInt(col.substring(0, 2), 16); + g = parseInt(col.substring(2, 4), 16); + b = parseInt(col.substring(4, 6), 16); + + return {r : r, g : g, b : b}; + } + + return null; +} + +function generatePicker() { + var el = document.getElementById('light'), h = '', i; + + for (i = 0; i < detail; i++){ + h += '
          '; + } + + el.innerHTML = h; +} + +function generateWebColors() { + var el = document.getElementById('webcolors'), h = '', i; + + if (el.className == 'generated') + return; + + // TODO: VoiceOver doesn't seem to support legend as a label referenced by labelledby. + h += '
          ' + + ''; + + for (i=0; i' + + ''; + if (tinyMCEPopup.editor.forcedHighContrastMode) { + h += ''; + } + h += ''; + h += ''; + if ((i+1) % 18 == 0) + h += ''; + } + + h += '
          '; + + el.innerHTML = h; + el.className = 'generated'; + + paintCanvas(el); + enableKeyboardNavigation(el.firstChild); +} + +function paintCanvas(el) { + tinyMCEPopup.getWin().tinymce.each(tinyMCEPopup.dom.select('canvas.mceColorSwatch', el), function(canvas) { + var context; + if (canvas.getContext && (context = canvas.getContext("2d"))) { + context.fillStyle = canvas.getAttribute('data-color'); + context.fillRect(0, 0, 10, 10); + } + }); +} +function generateNamedColors() { + var el = document.getElementById('namedcolors'), h = '', n, v, i = 0; + + if (el.className == 'generated') + return; + + for (n in named) { + v = named[n]; + h += ''; + if (tinyMCEPopup.editor.forcedHighContrastMode) { + h += ''; + } + h += ''; + h += ''; + i++; + } + + el.innerHTML = h; + el.className = 'generated'; + + paintCanvas(el); + enableKeyboardNavigation(el); +} + +function enableKeyboardNavigation(el) { + tinyMCEPopup.editor.windowManager.createInstance('tinymce.ui.KeyboardNavigation', { + root: el, + items: tinyMCEPopup.dom.select('a', el) + }, tinyMCEPopup.dom); +} + +function dechex(n) { + return strhex.charAt(Math.floor(n / 16)) + strhex.charAt(n % 16); +} + +function computeColor(e) { + var x, y, partWidth, partDetail, imHeight, r, g, b, coef, i, finalCoef, finalR, finalG, finalB, pos = tinyMCEPopup.dom.getPos(e.target); + + x = e.offsetX ? e.offsetX : (e.target ? e.clientX - pos.x : 0); + y = e.offsetY ? e.offsetY : (e.target ? e.clientY - pos.y : 0); + + partWidth = document.getElementById('colors').width / 6; + partDetail = detail / 2; + imHeight = document.getElementById('colors').height; + + r = (x >= 0)*(x < partWidth)*255 + (x >= partWidth)*(x < 2*partWidth)*(2*255 - x * 255 / partWidth) + (x >= 4*partWidth)*(x < 5*partWidth)*(-4*255 + x * 255 / partWidth) + (x >= 5*partWidth)*(x < 6*partWidth)*255; + g = (x >= 0)*(x < partWidth)*(x * 255 / partWidth) + (x >= partWidth)*(x < 3*partWidth)*255 + (x >= 3*partWidth)*(x < 4*partWidth)*(4*255 - x * 255 / partWidth); + b = (x >= 2*partWidth)*(x < 3*partWidth)*(-2*255 + x * 255 / partWidth) + (x >= 3*partWidth)*(x < 5*partWidth)*255 + (x >= 5*partWidth)*(x < 6*partWidth)*(6*255 - x * 255 / partWidth); + + coef = (imHeight - y) / imHeight; + r = 128 + (r - 128) * coef; + g = 128 + (g - 128) * coef; + b = 128 + (b - 128) * coef; + + changeFinalColor('#' + dechex(r) + dechex(g) + dechex(b)); + updateLight(r, g, b); +} + +function updateLight(r, g, b) { + var i, partDetail = detail / 2, finalCoef, finalR, finalG, finalB, color; + + for (i=0; i=0) && (i'); + }, + + init : function() { + var f = document.forms[0], ed = tinyMCEPopup.editor; + + // Setup browse button + document.getElementById('srcbrowsercontainer').innerHTML = getBrowserHTML('srcbrowser','src','image','theme_advanced_image'); + if (isVisible('srcbrowser')) + document.getElementById('src').style.width = '180px'; + + e = ed.selection.getNode(); + + this.fillFileList('image_list', tinyMCEPopup.getParam('external_image_list', 'tinyMCEImageList')); + + if (e.nodeName == 'IMG') { + f.src.value = ed.dom.getAttrib(e, 'src'); + f.alt.value = ed.dom.getAttrib(e, 'alt'); + f.border.value = this.getAttrib(e, 'border'); + f.vspace.value = this.getAttrib(e, 'vspace'); + f.hspace.value = this.getAttrib(e, 'hspace'); + f.width.value = ed.dom.getAttrib(e, 'width'); + f.height.value = ed.dom.getAttrib(e, 'height'); + f.insert.value = ed.getLang('update'); + this.styleVal = ed.dom.getAttrib(e, 'style'); + selectByValue(f, 'image_list', f.src.value); + selectByValue(f, 'align', this.getAttrib(e, 'align')); + this.updateStyle(); + } + }, + + fillFileList : function(id, l) { + var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl; + + l = typeof(l) === 'function' ? l() : window[l]; + + if (l && l.length > 0) { + lst.options[lst.options.length] = new Option('', ''); + + tinymce.each(l, function(o) { + lst.options[lst.options.length] = new Option(o[0], o[1]); + }); + } else + dom.remove(dom.getParent(id, 'tr')); + }, + + update : function() { + var f = document.forms[0], nl = f.elements, ed = tinyMCEPopup.editor, args = {}, el; + + tinyMCEPopup.restoreSelection(); + + if (f.src.value === '') { + if (ed.selection.getNode().nodeName == 'IMG') { + ed.dom.remove(ed.selection.getNode()); + ed.execCommand('mceRepaint'); + } + + tinyMCEPopup.close(); + return; + } + + if (!ed.settings.inline_styles) { + args = tinymce.extend(args, { + vspace : nl.vspace.value, + hspace : nl.hspace.value, + border : nl.border.value, + align : getSelectValue(f, 'align') + }); + } else + args.style = this.styleVal; + + tinymce.extend(args, { + src : f.src.value.replace(/ /g, '%20'), + alt : f.alt.value, + width : f.width.value, + height : f.height.value + }); + + el = ed.selection.getNode(); + + if (el && el.nodeName == 'IMG') { + ed.dom.setAttribs(el, args); + tinyMCEPopup.editor.execCommand('mceRepaint'); + tinyMCEPopup.editor.focus(); + } else { + tinymce.each(args, function(value, name) { + if (value === "") { + delete args[name]; + } + }); + + ed.execCommand('mceInsertContent', false, tinyMCEPopup.editor.dom.createHTML('img', args), {skip_undo : 1}); + ed.undoManager.add(); + } + + tinyMCEPopup.close(); + }, + + updateStyle : function() { + var dom = tinyMCEPopup.dom, st = {}, v, f = document.forms[0]; + + if (tinyMCEPopup.editor.settings.inline_styles) { + tinymce.each(tinyMCEPopup.dom.parseStyle(this.styleVal), function(value, key) { + st[key] = value; + }); + + // Handle align + v = getSelectValue(f, 'align'); + if (v) { + if (v == 'left' || v == 'right') { + st['float'] = v; + delete st['vertical-align']; + } else { + st['vertical-align'] = v; + delete st['float']; + } + } else { + delete st['float']; + delete st['vertical-align']; + } + + // Handle border + v = f.border.value; + if (v || v == '0') { + if (v == '0') + st['border'] = '0'; + else + st['border'] = v + 'px solid black'; + } else + delete st['border']; + + // Handle hspace + v = f.hspace.value; + if (v) { + delete st['margin']; + st['margin-left'] = v + 'px'; + st['margin-right'] = v + 'px'; + } else { + delete st['margin-left']; + delete st['margin-right']; + } + + // Handle vspace + v = f.vspace.value; + if (v) { + delete st['margin']; + st['margin-top'] = v + 'px'; + st['margin-bottom'] = v + 'px'; + } else { + delete st['margin-top']; + delete st['margin-bottom']; + } + + // Merge + st = tinyMCEPopup.dom.parseStyle(dom.serializeStyle(st), 'img'); + this.styleVal = dom.serializeStyle(st, 'img'); + } + }, + + getAttrib : function(e, at) { + var ed = tinyMCEPopup.editor, dom = ed.dom, v, v2; + + if (ed.settings.inline_styles) { + switch (at) { + case 'align': + if (v = dom.getStyle(e, 'float')) + return v; + + if (v = dom.getStyle(e, 'vertical-align')) + return v; + + break; + + case 'hspace': + v = dom.getStyle(e, 'margin-left') + v2 = dom.getStyle(e, 'margin-right'); + if (v && v == v2) + return parseInt(v.replace(/[^0-9]/g, '')); + + break; + + case 'vspace': + v = dom.getStyle(e, 'margin-top') + v2 = dom.getStyle(e, 'margin-bottom'); + if (v && v == v2) + return parseInt(v.replace(/[^0-9]/g, '')); + + break; + + case 'border': + v = 0; + + tinymce.each(['top', 'right', 'bottom', 'left'], function(sv) { + sv = dom.getStyle(e, 'border-' + sv + '-width'); + + // False or not the same as prev + if (!sv || (sv != v && v !== 0)) { + v = 0; + return false; + } + + if (sv) + v = sv; + }); + + if (v) + return parseInt(v.replace(/[^0-9]/g, '')); + + break; + } + } + + if (v = dom.getAttrib(e, at)) + return v; + + return ''; + }, + + resetImageData : function() { + var f = document.forms[0]; + + f.width.value = f.height.value = ""; + }, + + updateImageData : function() { + var f = document.forms[0], t = ImageDialog; + + if (f.width.value == "") + f.width.value = t.preloadImg.width; + + if (f.height.value == "") + f.height.value = t.preloadImg.height; + }, + + getImageData : function() { + var f = document.forms[0]; + + this.preloadImg = new Image(); + this.preloadImg.onload = this.updateImageData; + this.preloadImg.onerror = this.resetImageData; + this.preloadImg.src = tinyMCEPopup.editor.documentBaseURI.toAbsolute(f.src.value); + } +}; + +ImageDialog.preInit(); +tinyMCEPopup.onInit.add(ImageDialog.init, ImageDialog); diff --git a/askbot/skins/default/media/js/tinymce/themes/advanced/js/link.js b/askbot/skins/default/media/js/tinymce/themes/advanced/js/link.js new file mode 100644 index 00000000..8c1d73c5 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/themes/advanced/js/link.js @@ -0,0 +1,159 @@ +tinyMCEPopup.requireLangPack(); + +var LinkDialog = { + preInit : function() { + var url; + + if (url = tinyMCEPopup.getParam("external_link_list_url")) + document.write(''); + }, + + init : function() { + var f = document.forms[0], ed = tinyMCEPopup.editor; + + // Setup browse button + document.getElementById('hrefbrowsercontainer').innerHTML = getBrowserHTML('hrefbrowser', 'href', 'file', 'theme_advanced_link'); + if (isVisible('hrefbrowser')) + document.getElementById('href').style.width = '180px'; + + this.fillClassList('class_list'); + this.fillFileList('link_list', 'tinyMCELinkList'); + this.fillTargetList('target_list'); + + if (e = ed.dom.getParent(ed.selection.getNode(), 'A')) { + f.href.value = ed.dom.getAttrib(e, 'href'); + f.linktitle.value = ed.dom.getAttrib(e, 'title'); + f.insert.value = ed.getLang('update'); + selectByValue(f, 'link_list', f.href.value); + selectByValue(f, 'target_list', ed.dom.getAttrib(e, 'target')); + selectByValue(f, 'class_list', ed.dom.getAttrib(e, 'class')); + } + }, + + update : function() { + var f = document.forms[0], ed = tinyMCEPopup.editor, e, b, href = f.href.value.replace(/ /g, '%20'); + + tinyMCEPopup.restoreSelection(); + e = ed.dom.getParent(ed.selection.getNode(), 'A'); + + // Remove element if there is no href + if (!f.href.value) { + if (e) { + b = ed.selection.getBookmark(); + ed.dom.remove(e, 1); + ed.selection.moveToBookmark(b); + tinyMCEPopup.execCommand("mceEndUndoLevel"); + tinyMCEPopup.close(); + return; + } + } + + // Create new anchor elements + if (e == null) { + ed.getDoc().execCommand("unlink", false, null); + tinyMCEPopup.execCommand("mceInsertLink", false, "#mce_temp_url#", {skip_undo : 1}); + + tinymce.each(ed.dom.select("a"), function(n) { + if (ed.dom.getAttrib(n, 'href') == '#mce_temp_url#') { + e = n; + + ed.dom.setAttribs(e, { + href : href, + title : f.linktitle.value, + target : f.target_list ? getSelectValue(f, "target_list") : null, + 'class' : f.class_list ? getSelectValue(f, "class_list") : null + }); + } + }); + } else { + ed.dom.setAttribs(e, { + href : href, + title : f.linktitle.value + }); + + if (f.target_list) { + ed.dom.setAttrib(e, 'target', getSelectValue(f, "target_list")); + } + + if (f.class_list) { + ed.dom.setAttrib(e, 'class', getSelectValue(f, "class_list")); + } + } + + // Don't move caret if selection was image + if (e.childNodes.length != 1 || e.firstChild.nodeName != 'IMG') { + ed.focus(); + ed.selection.select(e); + ed.selection.collapse(0); + tinyMCEPopup.storeSelection(); + } + + tinyMCEPopup.execCommand("mceEndUndoLevel"); + tinyMCEPopup.close(); + }, + + checkPrefix : function(n) { + if (n.value && Validator.isEmail(n) && !/^\s*mailto:/i.test(n.value) && confirm(tinyMCEPopup.getLang('advanced_dlg.link_is_email'))) + n.value = 'mailto:' + n.value; + + if (/^\s*www\./i.test(n.value) && confirm(tinyMCEPopup.getLang('advanced_dlg.link_is_external'))) + n.value = 'http://' + n.value; + }, + + fillFileList : function(id, l) { + var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl; + + l = window[l]; + + if (l && l.length > 0) { + lst.options[lst.options.length] = new Option('', ''); + + tinymce.each(l, function(o) { + lst.options[lst.options.length] = new Option(o[0], o[1]); + }); + } else + dom.remove(dom.getParent(id, 'tr')); + }, + + fillClassList : function(id) { + var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl; + + if (v = tinyMCEPopup.getParam('theme_advanced_styles')) { + cl = []; + + tinymce.each(v.split(';'), function(v) { + var p = v.split('='); + + cl.push({'title' : p[0], 'class' : p[1]}); + }); + } else + cl = tinyMCEPopup.editor.dom.getClasses(); + + if (cl.length > 0) { + lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('not_set'), ''); + + tinymce.each(cl, function(o) { + lst.options[lst.options.length] = new Option(o.title || o['class'], o['class']); + }); + } else + dom.remove(dom.getParent(id, 'tr')); + }, + + fillTargetList : function(id) { + var dom = tinyMCEPopup.dom, lst = dom.get(id), v; + + lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('not_set'), ''); + lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('advanced_dlg.link_target_same'), '_self'); + lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('advanced_dlg.link_target_blank'), '_blank'); + + if (v = tinyMCEPopup.getParam('theme_advanced_link_targets')) { + tinymce.each(v.split(','), function(v) { + v = v.split('='); + lst.options[lst.options.length] = new Option(v[0], v[1]); + }); + } + } +}; + +LinkDialog.preInit(); +tinyMCEPopup.onInit.add(LinkDialog.init, LinkDialog); diff --git a/askbot/skins/default/media/js/tinymce/themes/advanced/js/source_editor.js b/askbot/skins/default/media/js/tinymce/themes/advanced/js/source_editor.js new file mode 100644 index 00000000..dd5e366f --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/themes/advanced/js/source_editor.js @@ -0,0 +1,78 @@ +tinyMCEPopup.requireLangPack(); +tinyMCEPopup.onInit.add(onLoadInit); + +function saveContent() { + tinyMCEPopup.editor.setContent(document.getElementById('htmlSource').value, {source_view : true}); + tinyMCEPopup.close(); +} + +function onLoadInit() { + tinyMCEPopup.resizeToInnerSize(); + + // Remove Gecko spellchecking + if (tinymce.isGecko) + document.body.spellcheck = tinyMCEPopup.editor.getParam("gecko_spellcheck"); + + document.getElementById('htmlSource').value = tinyMCEPopup.editor.getContent({source_view : true}); + + if (tinyMCEPopup.editor.getParam("theme_advanced_source_editor_wrap", true)) { + turnWrapOn(); + document.getElementById('wraped').checked = true; + } + + resizeInputs(); +} + +function setWrap(val) { + var v, n, s = document.getElementById('htmlSource'); + + s.wrap = val; + + if (!tinymce.isIE) { + v = s.value; + n = s.cloneNode(false); + n.setAttribute("wrap", val); + s.parentNode.replaceChild(n, s); + n.value = v; + } +} + +function setWhiteSpaceCss(value) { + var el = document.getElementById('htmlSource'); + tinymce.DOM.setStyle(el, 'white-space', value); +} + +function turnWrapOff() { + if (tinymce.isWebKit) { + setWhiteSpaceCss('pre'); + } else { + setWrap('off'); + } +} + +function turnWrapOn() { + if (tinymce.isWebKit) { + setWhiteSpaceCss('pre-wrap'); + } else { + setWrap('soft'); + } +} + +function toggleWordWrap(elm) { + if (elm.checked) { + turnWrapOn(); + } else { + turnWrapOff(); + } +} + +function resizeInputs() { + var vp = tinyMCEPopup.dom.getViewPort(window), el; + + el = document.getElementById('htmlSource'); + + if (el) { + el.style.width = (vp.w - 20) + 'px'; + el.style.height = (vp.h - 65) + 'px'; + } +} diff --git a/askbot/skins/default/media/js/tinymce/themes/advanced/langs/en.js b/askbot/skins/default/media/js/tinymce/themes/advanced/langs/en.js new file mode 100644 index 00000000..6e584818 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/themes/advanced/langs/en.js @@ -0,0 +1 @@ +tinyMCE.addI18n('en.advanced',{"underline_desc":"Underline (Ctrl+U)","italic_desc":"Italic (Ctrl+I)","bold_desc":"Bold (Ctrl+B)",dd:"Definition Description",dt:"Definition Term ",samp:"Code Sample",code:"Code",blockquote:"Block Quote",h6:"Heading 6",h5:"Heading 5",h4:"Heading 4",h3:"Heading 3",h2:"Heading 2",h1:"Heading 1",pre:"Preformatted",address:"Address",div:"DIV",paragraph:"Paragraph",block:"Format",fontdefault:"Font Family","font_size":"Font Size","style_select":"Styles","anchor_delta_height":"","anchor_delta_width":"","charmap_delta_height":"","charmap_delta_width":"","colorpicker_delta_height":"","colorpicker_delta_width":"","link_delta_height":"","link_delta_width":"","image_delta_height":"","image_delta_width":"","more_colors":"More Colors...","toolbar_focus":"Jump to tool buttons - Alt+Q, Jump to editor - Alt-Z, Jump to element path - Alt-X",newdocument:"Are you sure you want clear all contents?",path:"Path","clipboard_msg":"Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?","blockquote_desc":"Block Quote","help_desc":"Help","newdocument_desc":"New Document","image_props_desc":"Image Properties","paste_desc":"Paste (Ctrl+V)","copy_desc":"Copy (Ctrl+C)","cut_desc":"Cut (Ctrl+X)","anchor_desc":"Insert/Edit Anchor","visualaid_desc":"show/Hide Guidelines/Invisible Elements","charmap_desc":"Insert Special Character","backcolor_desc":"Select Background Color","forecolor_desc":"Select Text Color","custom1_desc":"Your Custom Description Here","removeformat_desc":"Remove Formatting","hr_desc":"Insert Horizontal Line","sup_desc":"Superscript","sub_desc":"Subscript","code_desc":"Edit HTML Source","cleanup_desc":"Cleanup Messy Code","image_desc":"Insert/Edit Image","unlink_desc":"Unlink","link_desc":"Insert/Edit Link","redo_desc":"Redo (Ctrl+Y)","undo_desc":"Undo (Ctrl+Z)","indent_desc":"Increase Indent","outdent_desc":"Decrease Indent","numlist_desc":"Insert/Remove Numbered List","bullist_desc":"Insert/Remove Bulleted List","justifyfull_desc":"Align Full","justifyright_desc":"Align Right","justifycenter_desc":"Align Center","justifyleft_desc":"Align Left","striketrough_desc":"Strikethrough","help_shortcut":"Press ALT-F10 for toolbar. Press ALT-0 for help","rich_text_area":"Rich Text Area","shortcuts_desc":"Accessability Help",toolbar:"Toolbar"}); \ No newline at end of file diff --git a/askbot/skins/default/media/js/tinymce/themes/advanced/langs/en_dlg.js b/askbot/skins/default/media/js/tinymce/themes/advanced/langs/en_dlg.js new file mode 100644 index 00000000..50cd87e3 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/themes/advanced/langs/en_dlg.js @@ -0,0 +1 @@ +tinyMCE.addI18n('en.advanced_dlg', {"link_list":"Link List","link_is_external":"The URL you entered seems to be an external link. Do you want to add the required http:// prefix?","link_is_email":"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?","link_titlefield":"Title","link_target_blank":"Open Link in a New Window","link_target_same":"Open Link in the Same Window","link_target":"Target","link_url":"Link URL","link_title":"Insert/Edit Link","image_align_right":"Right","image_align_left":"Left","image_align_textbottom":"Text Bottom","image_align_texttop":"Text Top","image_align_bottom":"Bottom","image_align_middle":"Middle","image_align_top":"Top","image_align_baseline":"Baseline","image_align":"Alignment","image_hspace":"Horizontal Space","image_vspace":"Vertical Space","image_dimensions":"Dimensions","image_alt":"Image Description","image_list":"Image List","image_border":"Border","image_src":"Image URL","image_title":"Insert/Edit Image","charmap_title":"Select Special Character", "charmap_usage":"Use left and right arrows to navigate.","colorpicker_name":"Name:","colorpicker_color":"Color:","colorpicker_named_title":"Named Colors","colorpicker_named_tab":"Named","colorpicker_palette_title":"Palette Colors","colorpicker_palette_tab":"Palette","colorpicker_picker_title":"Color Picker","colorpicker_picker_tab":"Picker","colorpicker_title":"Select a Color","code_wordwrap":"Word Wrap","code_title":"HTML Source Editor","anchor_name":"Anchor Name","anchor_title":"Insert/Edit Anchor","about_loaded":"Loaded Plugins","about_version":"Version","about_author":"Author","about_plugin":"Plugin","about_plugins":"Plugins","about_license":"License","about_help":"Help","about_general":"About","about_title":"About TinyMCE","anchor_invalid":"Please specify a valid anchor name.","accessibility_help":"Accessibility Help","accessibility_usage_title":"General Usage","invalid_color_value":"Invalid color value","":""}); diff --git a/askbot/skins/default/media/js/tinymce/themes/advanced/link.htm b/askbot/skins/default/media/js/tinymce/themes/advanced/link.htm new file mode 100644 index 00000000..5d9dea9b --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/themes/advanced/link.htm @@ -0,0 +1,57 @@ + + + + {#advanced_dlg.link_title} + + + + + + + +
          + + +
          +
          + + + + + + + + + + + + + + + + + + + + + +
          + + + + +
           
          +
          +
          + +
          + + +
          +
          + + diff --git a/askbot/skins/default/media/js/tinymce/themes/advanced/shortcuts.htm b/askbot/skins/default/media/js/tinymce/themes/advanced/shortcuts.htm new file mode 100644 index 00000000..20ec2f5a --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/themes/advanced/shortcuts.htm @@ -0,0 +1,47 @@ + + + + {#advanced_dlg.accessibility_help} + + + + +

          {#advanced_dlg.accessibility_usage_title}

          +

          Toolbars

          +

          Press ALT-F10 to move focus to the toolbars. Navigate through the buttons using the arrow keys. + Press enter to activate a button and return focus to the editor. + Press escape to return focus to the editor without performing any actions.

          + +

          Status Bar

          +

          To access the editor status bar, press ALT-F11. Use the left and right arrow keys to navigate between elements in the path. + Press enter or space to select an element. Press escape to return focus to the editor without changing the selection.

          + +

          Context Menu

          +

          Press shift-F10 to activate the context menu. Use the up and down arrow keys to move between menu items. To open sub-menus press the right arrow key. + To close submenus press the left arrow key. Press escape to close the context menu.

          + +

          Keyboard Shortcuts

          + + + + + + + + + + + + + + + + + + + + + +
          KeystrokeFunction
          Control-BBold
          Control-IItalic
          Control-ZUndo
          Control-YRedo
          + + diff --git a/askbot/skins/default/media/js/tinymce/themes/advanced/skins/default/content.css b/askbot/skins/default/media/js/tinymce/themes/advanced/skins/default/content.css new file mode 100644 index 00000000..2fd94a1f --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/themes/advanced/skins/default/content.css @@ -0,0 +1,50 @@ +body, td, pre {color:#000; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px; margin:8px;} +body {background:#FFF;} +body.mceForceColors {background:#FFF; color:#000;} +body.mceBrowserDefaults {background:transparent; color:inherit; font-size:inherit; font-family:inherit;} +h1 {font-size: 2em} +h2 {font-size: 1.5em} +h3 {font-size: 1.17em} +h4 {font-size: 1em} +h5 {font-size: .83em} +h6 {font-size: .75em} +.mceItemTable, .mceItemTable td, .mceItemTable th, .mceItemTable caption, .mceItemVisualAid {border: 1px dashed #BBB;} +a.mceItemAnchor {display:inline-block; -webkit-user-select:all; -webkit-user-modify:read-only; -moz-user-select:all; -moz-user-modify:read-only; width:11px !important; height:11px !important; background:url(img/items.gif) no-repeat center center} +span.mceItemNbsp {background: #DDD} +td.mceSelected, th.mceSelected {background-color:#3399ff !important} +img {border:0;} +table, img, hr, .mceItemAnchor {cursor:default} +table td, table th {cursor:text} +ins {border-bottom:1px solid green; text-decoration: none; color:green} +del {color:red; text-decoration:line-through} +cite {border-bottom:1px dashed blue} +acronym {border-bottom:1px dotted #CCC; cursor:help} +abbr {border-bottom:1px dashed #CCC; cursor:help} + +/* IE */ +* html body { +scrollbar-3dlight-color:#F0F0EE; +scrollbar-arrow-color:#676662; +scrollbar-base-color:#F0F0EE; +scrollbar-darkshadow-color:#DDD; +scrollbar-face-color:#E0E0DD; +scrollbar-highlight-color:#F0F0EE; +scrollbar-shadow-color:#F0F0EE; +scrollbar-track-color:#F5F5F5; +} + +img:-moz-broken {-moz-force-broken-image-icon:1; width:24px; height:24px} +font[face=mceinline] {font-family:inherit !important} +*[contentEditable]:focus {outline:0} + +.mceItemMedia {border:1px dotted #cc0000; background-position:center; background-repeat:no-repeat; background-color:#ffffcc} +.mceItemShockWave {background-image:url(../../img/shockwave.gif)} +.mceItemFlash {background-image:url(../../img/flash.gif)} +.mceItemQuickTime {background-image:url(../../img/quicktime.gif)} +.mceItemWindowsMedia {background-image:url(../../img/windowsmedia.gif)} +.mceItemRealMedia {background-image:url(../../img/realmedia.gif)} +.mceItemVideo {background-image:url(../../img/video.gif)} +.mceItemAudio {background-image:url(../../img/video.gif)} +.mceItemEmbeddedAudio {background-image:url(../../img/video.gif)} +.mceItemIframe {background-image:url(../../img/iframe.gif)} +.mcePageBreak {display:block;border:0;width:100%;height:12px;border-top:1px dotted #ccc;margin-top:15px;background:#fff url(../../img/pagebreak.gif) no-repeat center top;} diff --git a/askbot/skins/default/media/js/tinymce/themes/advanced/skins/default/dialog.css b/askbot/skins/default/media/js/tinymce/themes/advanced/skins/default/dialog.css new file mode 100644 index 00000000..879786fc --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/themes/advanced/skins/default/dialog.css @@ -0,0 +1,118 @@ +/* Generic */ +body { +font-family:Verdana, Arial, Helvetica, sans-serif; font-size:11px; +scrollbar-3dlight-color:#F0F0EE; +scrollbar-arrow-color:#676662; +scrollbar-base-color:#F0F0EE; +scrollbar-darkshadow-color:#DDDDDD; +scrollbar-face-color:#E0E0DD; +scrollbar-highlight-color:#F0F0EE; +scrollbar-shadow-color:#F0F0EE; +scrollbar-track-color:#F5F5F5; +background:#F0F0EE; +padding:0; +margin:8px 8px 0 8px; +} + +html {background:#F0F0EE;} +td {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;} +textarea {resize:none;outline:none;} +a:link, a:visited {color:black;} +a:hover {color:#2B6FB6;} +.nowrap {white-space: nowrap} + +/* Forms */ +fieldset {margin:0; padding:4px; border:1px solid #919B9C; font-family:Verdana, Arial; font-size:10px;} +legend {color:#2B6FB6; font-weight:bold;} +label.msg {display:none;} +label.invalid {color:#EE0000; display:inline;} +input.invalid {border:1px solid #EE0000;} +input {background:#FFF; border:1px solid #CCC;} +input, select, textarea {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;} +input, select, textarea {border:1px solid #808080;} +input.radio {border:1px none #000000; background:transparent; vertical-align:middle;} +input.checkbox {border:1px none #000000; background:transparent; vertical-align:middle;} +.input_noborder {border:0;} + +/* Buttons */ +#insert, #cancel, input.button, .updateButton { +border:0; margin:0; padding:0; +font-weight:bold; +width:94px; height:26px; +background:url(img/buttons.png) 0 -26px; +cursor:pointer; +padding-bottom:2px; +float:left; +} + +#insert {background:url(img/buttons.png) 0 -52px} +#cancel {background:url(img/buttons.png) 0 0; float:right} + +/* Browse */ +a.pickcolor, a.browse {text-decoration:none} +a.browse span {display:block; width:20px; height:18px; background:url(../../img/icons.gif) -860px 0; border:1px solid #FFF; margin-left:1px;} +.mceOldBoxModel a.browse span {width:22px; height:20px;} +a.browse:hover span {border:1px solid #0A246A; background-color:#B2BBD0;} +a.browse span.disabled {border:1px solid white; opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)} +a.browse:hover span.disabled {border:1px solid white; background-color:transparent;} +a.pickcolor span {display:block; width:20px; height:16px; background:url(../../img/icons.gif) -840px 0; margin-left:2px;} +.mceOldBoxModel a.pickcolor span {width:21px; height:17px;} +a.pickcolor:hover span {background-color:#B2BBD0;} +a.pickcolor:hover span.disabled {} + +/* Charmap */ +table.charmap {border:1px solid #AAA; text-align:center} +td.charmap, #charmap a {width:18px; height:18px; color:#000; border:1px solid #AAA; text-align:center; font-size:12px; vertical-align:middle; line-height: 18px;} +#charmap a {display:block; color:#000; text-decoration:none; border:0} +#charmap a:hover {background:#CCC;color:#2B6FB6} +#charmap #codeN {font-size:10px; font-family:Arial,Helvetica,sans-serif; text-align:center} +#charmap #codeV {font-size:40px; height:80px; border:1px solid #AAA; text-align:center} + +/* Source */ +.wordWrapCode {vertical-align:middle; border:1px none #000000; background:transparent;} +.mceActionPanel {margin-top:5px;} + +/* Tabs classes */ +.tabs {width:100%; height:18px; line-height:normal; background:url(img/tabs.gif) repeat-x 0 -72px;} +.tabs ul {margin:0; padding:0; list-style:none;} +.tabs li {float:left; background:url(img/tabs.gif) no-repeat 0 0; margin:0 2px 0 0; padding:0 0 0 10px; line-height:17px; height:18px; display:block;} +.tabs li.current {background:url(img/tabs.gif) no-repeat 0 -18px; margin-right:2px;} +.tabs span {float:left; display:block; background:url(img/tabs.gif) no-repeat right -36px; padding:0px 10px 0 0;} +.tabs .current span {background:url(img/tabs.gif) no-repeat right -54px;} +.tabs a {text-decoration:none; font-family:Verdana, Arial; font-size:10px;} +.tabs a:link, .tabs a:visited, .tabs a:hover {color:black;} + +/* Panels */ +.panel_wrapper div.panel {display:none;} +.panel_wrapper div.current {display:block; width:100%; height:300px; overflow:visible;} +.panel_wrapper {border:1px solid #919B9C; border-top:0px; padding:10px; padding-top:5px; clear:both; background:white;} + +/* Columns */ +.column {float:left;} +.properties {width:100%;} +.properties .column1 {} +.properties .column2 {text-align:left;} + +/* Titles */ +h1, h2, h3, h4 {color:#2B6FB6; margin:0; padding:0; padding-top:5px;} +h3 {font-size:14px;} +.title {font-size:12px; font-weight:bold; color:#2B6FB6;} + +/* Dialog specific */ +#link .panel_wrapper, #link div.current {height:125px;} +#image .panel_wrapper, #image div.current {height:200px;} +#plugintable thead {font-weight:bold; background:#DDD;} +#plugintable, #about #plugintable td {border:1px solid #919B9C;} +#plugintable {width:96%; margin-top:10px;} +#pluginscontainer {height:290px; overflow:auto;} +#colorpicker #preview {display:inline-block; padding-left:40px; height:14px; border:1px solid black; margin-left:5px; margin-right: 5px} +#colorpicker #previewblock {position: relative; top: -3px; padding-left:5px; padding-top: 0px; display:inline} +#colorpicker #preview_wrapper { text-align:center; padding-top:4px; white-space: nowrap} +#colorpicker #colors {float:left; border:1px solid gray; cursor:crosshair;} +#colorpicker #light {border:1px solid gray; margin-left:5px; float:left;width:15px; height:150px; cursor:crosshair;} +#colorpicker #light div {overflow:hidden;} +#colorpicker .panel_wrapper div.current {height:175px;} +#colorpicker #namedcolors {width:150px;} +#colorpicker #namedcolors a {display:block; float:left; width:10px; height:10px; margin:1px 1px 0 0; overflow:hidden;} +#colorpicker #colornamecontainer {margin-top:5px;} +#colorpicker #picker_panel fieldset {margin:auto;width:325px;} diff --git a/askbot/skins/default/media/js/tinymce/themes/advanced/skins/default/img/buttons.png b/askbot/skins/default/media/js/tinymce/themes/advanced/skins/default/img/buttons.png new file mode 100644 index 00000000..1e53560e Binary files /dev/null and b/askbot/skins/default/media/js/tinymce/themes/advanced/skins/default/img/buttons.png differ diff --git a/askbot/skins/default/media/js/tinymce/themes/advanced/skins/default/img/items.gif b/askbot/skins/default/media/js/tinymce/themes/advanced/skins/default/img/items.gif new file mode 100644 index 00000000..d2f93671 Binary files /dev/null and b/askbot/skins/default/media/js/tinymce/themes/advanced/skins/default/img/items.gif differ diff --git a/askbot/skins/default/media/js/tinymce/themes/advanced/skins/default/img/menu_arrow.gif b/askbot/skins/default/media/js/tinymce/themes/advanced/skins/default/img/menu_arrow.gif new file mode 100644 index 00000000..85e31dfb Binary files /dev/null and b/askbot/skins/default/media/js/tinymce/themes/advanced/skins/default/img/menu_arrow.gif differ diff --git a/askbot/skins/default/media/js/tinymce/themes/advanced/skins/default/img/menu_check.gif b/askbot/skins/default/media/js/tinymce/themes/advanced/skins/default/img/menu_check.gif new file mode 100644 index 00000000..adfdddcc Binary files /dev/null and b/askbot/skins/default/media/js/tinymce/themes/advanced/skins/default/img/menu_check.gif differ diff --git a/askbot/skins/default/media/js/tinymce/themes/advanced/skins/default/img/progress.gif b/askbot/skins/default/media/js/tinymce/themes/advanced/skins/default/img/progress.gif new file mode 100644 index 00000000..5bb90fd6 Binary files /dev/null and b/askbot/skins/default/media/js/tinymce/themes/advanced/skins/default/img/progress.gif differ diff --git a/askbot/skins/default/media/js/tinymce/themes/advanced/skins/default/img/tabs.gif b/askbot/skins/default/media/js/tinymce/themes/advanced/skins/default/img/tabs.gif new file mode 100644 index 00000000..06812cb4 Binary files /dev/null and b/askbot/skins/default/media/js/tinymce/themes/advanced/skins/default/img/tabs.gif differ diff --git a/askbot/skins/default/media/js/tinymce/themes/advanced/skins/default/ui.css b/askbot/skins/default/media/js/tinymce/themes/advanced/skins/default/ui.css new file mode 100644 index 00000000..77083f31 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/themes/advanced/skins/default/ui.css @@ -0,0 +1,219 @@ +/* Reset */ +.defaultSkin table, .defaultSkin tbody, .defaultSkin a, .defaultSkin img, .defaultSkin tr, .defaultSkin div, .defaultSkin td, .defaultSkin iframe, .defaultSkin span, .defaultSkin *, .defaultSkin .mceText {border:0; margin:0; padding:0; background:transparent; white-space:nowrap; text-decoration:none; font-weight:normal; cursor:default; color:#000; vertical-align:baseline; width:auto; border-collapse:separate; text-align:left} +.defaultSkin a:hover, .defaultSkin a:link, .defaultSkin a:visited, .defaultSkin a:active {text-decoration:none; font-weight:normal; cursor:default; color:#000} +.defaultSkin table td {vertical-align:middle} + +/* Containers */ +.defaultSkin table {direction:ltr;background:transparent} +.defaultSkin iframe {display:block;} +.defaultSkin .mceToolbar {height:26px} +.defaultSkin .mceLeft {text-align:left} +.defaultSkin .mceRight {text-align:right} + +/* External */ +.defaultSkin .mceExternalToolbar {position:absolute; border:1px solid #CCC; border-bottom:0; display:none;} +.defaultSkin .mceExternalToolbar td.mceToolbar {padding-right:13px;} +.defaultSkin .mceExternalClose {position:absolute; top:3px; right:3px; width:7px; height:7px; background:url(../../img/icons.gif) -820px 0} + +/* Layout */ +.defaultSkin table.mceLayout {border:0; border-left:1px solid #CCC; border-right:1px solid #CCC} +.defaultSkin table.mceLayout tr.mceFirst td {border-top:1px solid #CCC} +.defaultSkin table.mceLayout tr.mceLast td {border-bottom:1px solid #CCC} +.defaultSkin table.mceToolbar, .defaultSkin tr.mceFirst .mceToolbar tr td, .defaultSkin tr.mceLast .mceToolbar tr td {border:0; margin:0; padding:0;} +.defaultSkin td.mceToolbar {background:#F0F0EE; padding-top:1px; vertical-align:top} +.defaultSkin .mceIframeContainer {border-top:1px solid #CCC; border-bottom:1px solid #CCC} +.defaultSkin .mceStatusbar {background:#F0F0EE; font-family:'MS Sans Serif',sans-serif,Verdana,Arial; font-size:9pt; line-height:16px; overflow:visible; color:#000; display:block; height:20px} +.defaultSkin .mceStatusbar div {float:left; margin:2px} +.defaultSkin .mceStatusbar a.mceResize {display:block; float:right; background:url(../../img/icons.gif) -800px 0; width:20px; height:20px; cursor:se-resize; outline:0} +.defaultSkin .mceStatusbar a:hover {text-decoration:underline} +.defaultSkin table.mceToolbar {margin-left:3px} +.defaultSkin span.mceIcon, .defaultSkin img.mceIcon {display:block; width:20px; height:20px} +.defaultSkin .mceIcon {background:url(../../img/icons.gif) no-repeat 20px 20px} +.defaultSkin td.mceCenter {text-align:center;} +.defaultSkin td.mceCenter table {margin:0 auto; text-align:left;} +.defaultSkin td.mceRight table {margin:0 0 0 auto;} + +/* Button */ +.defaultSkin .mceButton {display:block; border:1px solid #F0F0EE; width:20px; height:20px; margin-right:1px} +.defaultSkin a.mceButtonEnabled:hover {border:1px solid #0A246A; background-color:#B2BBD0} +.defaultSkin a.mceButtonActive, .defaultSkin a.mceButtonSelected {border:1px solid #0A246A; background-color:#C2CBE0} +.defaultSkin .mceButtonDisabled .mceIcon {opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)} +.defaultSkin .mceButtonLabeled {width:auto} +.defaultSkin .mceButtonLabeled span.mceIcon {float:left} +.defaultSkin span.mceButtonLabel {display:block; font-size:10px; padding:4px 6px 0 22px; font-family:Tahoma,Verdana,Arial,Helvetica} +.defaultSkin .mceButtonDisabled .mceButtonLabel {color:#888} + +/* Separator */ +.defaultSkin .mceSeparator {display:block; background:url(../../img/icons.gif) -180px 0; width:2px; height:20px; margin:2px 2px 0 4px} + +/* ListBox */ +.defaultSkin .mceListBox, .defaultSkin .mceListBox a {display:block} +.defaultSkin .mceListBox .mceText {padding-left:4px; width:70px; text-align:left; border:1px solid #CCC; border-right:0; background:#FFF; font-family:Tahoma,Verdana,Arial,Helvetica; font-size:11px; height:20px; line-height:20px; overflow:hidden} +.defaultSkin .mceListBox .mceOpen {width:9px; height:20px; background:url(../../img/icons.gif) -741px 0; margin-right:2px; border:1px solid #CCC;} +.defaultSkin table.mceListBoxEnabled:hover .mceText, .defaultSkin .mceListBoxHover .mceText, .defaultSkin .mceListBoxSelected .mceText {border:1px solid #A2ABC0; border-right:0; background:#FFF} +.defaultSkin table.mceListBoxEnabled:hover .mceOpen, .defaultSkin .mceListBoxHover .mceOpen, .defaultSkin .mceListBoxSelected .mceOpen {background-color:#FFF; border:1px solid #A2ABC0} +.defaultSkin .mceListBoxDisabled a.mceText {color:gray; background-color:transparent;} +.defaultSkin .mceListBoxMenu {overflow:auto; overflow-x:hidden} +.defaultSkin .mceOldBoxModel .mceListBox .mceText {height:22px} +.defaultSkin .mceOldBoxModel .mceListBox .mceOpen {width:11px; height:22px;} +.defaultSkin select.mceNativeListBox {font-family:'MS Sans Serif',sans-serif,Verdana,Arial; font-size:7pt; background:#F0F0EE; border:1px solid gray; margin-right:2px;} + +/* SplitButton */ +.defaultSkin .mceSplitButton {width:32px; height:20px; direction:ltr} +.defaultSkin .mceSplitButton a, .defaultSkin .mceSplitButton span {height:20px; display:block} +.defaultSkin .mceSplitButton a.mceAction {width:20px; border:1px solid #F0F0EE; border-right:0;} +.defaultSkin .mceSplitButton span.mceAction {width:20px; background-image:url(../../img/icons.gif);} +.defaultSkin .mceSplitButton a.mceOpen {width:9px; background:url(../../img/icons.gif) -741px 0; border:1px solid #F0F0EE;} +.defaultSkin .mceSplitButton span.mceOpen {display:none} +.defaultSkin table.mceSplitButtonEnabled:hover a.mceAction, .defaultSkin .mceSplitButtonHover a.mceAction, .defaultSkin .mceSplitButtonSelected a.mceAction {border:1px solid #0A246A; border-right:0; background-color:#B2BBD0} +.defaultSkin table.mceSplitButtonEnabled:hover a.mceOpen, .defaultSkin .mceSplitButtonHover a.mceOpen, .defaultSkin .mceSplitButtonSelected a.mceOpen {background-color:#B2BBD0; border:1px solid #0A246A;} +.defaultSkin .mceSplitButtonDisabled .mceAction, .defaultSkin .mceSplitButtonDisabled a.mceOpen {opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)} +.defaultSkin .mceSplitButtonActive a.mceAction {border:1px solid #0A246A; background-color:#C2CBE0} +.defaultSkin .mceSplitButtonActive a.mceOpen {border-left:0;} + +/* ColorSplitButton */ +.defaultSkin div.mceColorSplitMenu table {background:#FFF; border:1px solid gray} +.defaultSkin .mceColorSplitMenu td {padding:2px} +.defaultSkin .mceColorSplitMenu a {display:block; width:9px; height:9px; overflow:hidden; border:1px solid #808080} +.defaultSkin .mceColorSplitMenu td.mceMoreColors {padding:1px 3px 1px 1px} +.defaultSkin .mceColorSplitMenu a.mceMoreColors {width:100%; height:auto; text-align:center; font-family:Tahoma,Verdana,Arial,Helvetica; font-size:11px; line-height:20px; border:1px solid #FFF} +.defaultSkin .mceColorSplitMenu a.mceMoreColors:hover {border:1px solid #0A246A; background-color:#B6BDD2} +.defaultSkin a.mceMoreColors:hover {border:1px solid #0A246A} +.defaultSkin .mceColorPreview {margin-left:2px; width:16px; height:4px; overflow:hidden; background:#9a9b9a} +.defaultSkin .mce_forecolor span.mceAction, .defaultSkin .mce_backcolor span.mceAction {overflow:hidden; height:16px} + +/* Menu */ +.defaultSkin .mceMenu {position:absolute; left:0; top:0; z-index:1000; border:1px solid #D4D0C8; direction:ltr} +.defaultSkin .mceNoIcons span.mceIcon {width:0;} +.defaultSkin .mceNoIcons a .mceText {padding-left:10px} +.defaultSkin .mceMenu table {background:#FFF} +.defaultSkin .mceMenu a, .defaultSkin .mceMenu span, .defaultSkin .mceMenu {display:block} +.defaultSkin .mceMenu td {height:20px} +.defaultSkin .mceMenu a {position:relative;padding:3px 0 4px 0} +.defaultSkin .mceMenu .mceText {position:relative; display:block; font-family:Tahoma,Verdana,Arial,Helvetica; color:#000; cursor:default; margin:0; padding:0 25px 0 25px; display:block} +.defaultSkin .mceMenu span.mceText, .defaultSkin .mceMenu .mcePreview {font-size:11px} +.defaultSkin .mceMenu pre.mceText {font-family:Monospace} +.defaultSkin .mceMenu .mceIcon {position:absolute; top:0; left:0; width:22px;} +.defaultSkin .mceMenu .mceMenuItemEnabled a:hover, .defaultSkin .mceMenu .mceMenuItemActive {background-color:#dbecf3} +.defaultSkin td.mceMenuItemSeparator {background:#DDD; height:1px} +.defaultSkin .mceMenuItemTitle a {border:0; background:#EEE; border-bottom:1px solid #DDD} +.defaultSkin .mceMenuItemTitle span.mceText {color:#000; font-weight:bold; padding-left:4px} +.defaultSkin .mceMenuItemDisabled .mceText {color:#888} +.defaultSkin .mceMenuItemSelected .mceIcon {background:url(img/menu_check.gif)} +.defaultSkin .mceNoIcons .mceMenuItemSelected a {background:url(img/menu_arrow.gif) no-repeat -6px center} +.defaultSkin .mceMenu span.mceMenuLine {display:none} +.defaultSkin .mceMenuItemSub a {background:url(img/menu_arrow.gif) no-repeat top right;} +.defaultSkin .mceMenuItem td, .defaultSkin .mceMenuItem th {line-height: normal} + +/* Progress,Resize */ +.defaultSkin .mceBlocker {position:absolute; left:0; top:0; z-index:1000; opacity:0.5; -ms-filter:'alpha(opacity=50)'; filter:alpha(opacity=50); background:#FFF} +.defaultSkin .mceProgress {position:absolute; left:0; top:0; z-index:1001; background:url(img/progress.gif) no-repeat; width:32px; height:32px; margin:-16px 0 0 -16px} + +/* Rtl */ +.mceRtl .mceListBox .mceText {text-align: right; padding: 0 4px 0 0} +.mceRtl .mceMenuItem .mceText {text-align: right} + +/* Formats */ +.defaultSkin .mce_formatPreview a {font-size:10px} +.defaultSkin .mce_p span.mceText {} +.defaultSkin .mce_address span.mceText {font-style:italic} +.defaultSkin .mce_pre span.mceText {font-family:monospace} +.defaultSkin .mce_h1 span.mceText {font-weight:bolder; font-size: 2em} +.defaultSkin .mce_h2 span.mceText {font-weight:bolder; font-size: 1.5em} +.defaultSkin .mce_h3 span.mceText {font-weight:bolder; font-size: 1.17em} +.defaultSkin .mce_h4 span.mceText {font-weight:bolder; font-size: 1em} +.defaultSkin .mce_h5 span.mceText {font-weight:bolder; font-size: .83em} +.defaultSkin .mce_h6 span.mceText {font-weight:bolder; font-size: .75em} + +/* Theme */ +.defaultSkin span.mce_bold {background-position:0 0} +.defaultSkin span.mce_italic {background-position:-60px 0} +.defaultSkin span.mce_underline {background-position:-140px 0} +.defaultSkin span.mce_strikethrough {background-position:-120px 0} +.defaultSkin span.mce_undo {background-position:-160px 0} +.defaultSkin span.mce_redo {background-position:-100px 0} +.defaultSkin span.mce_cleanup {background-position:-40px 0} +.defaultSkin span.mce_bullist {background-position:-20px 0} +.defaultSkin span.mce_numlist {background-position:-80px 0} +.defaultSkin span.mce_justifyleft {background-position:-460px 0} +.defaultSkin span.mce_justifyright {background-position:-480px 0} +.defaultSkin span.mce_justifycenter {background-position:-420px 0} +.defaultSkin span.mce_justifyfull {background-position:-440px 0} +.defaultSkin span.mce_anchor {background-position:-200px 0} +.defaultSkin span.mce_indent {background-position:-400px 0} +.defaultSkin span.mce_outdent {background-position:-540px 0} +.defaultSkin span.mce_link {background-position:-500px 0} +.defaultSkin span.mce_unlink {background-position:-640px 0} +.defaultSkin span.mce_sub {background-position:-600px 0} +.defaultSkin span.mce_sup {background-position:-620px 0} +.defaultSkin span.mce_removeformat {background-position:-580px 0} +.defaultSkin span.mce_newdocument {background-position:-520px 0} +.defaultSkin span.mce_image {background-position:-380px 0} +.defaultSkin span.mce_help {background-position:-340px 0} +.defaultSkin span.mce_code {background-position:-260px 0} +.defaultSkin span.mce_hr {background-position:-360px 0} +.defaultSkin span.mce_visualaid {background-position:-660px 0} +.defaultSkin span.mce_charmap {background-position:-240px 0} +.defaultSkin span.mce_paste {background-position:-560px 0} +.defaultSkin span.mce_copy {background-position:-700px 0} +.defaultSkin span.mce_cut {background-position:-680px 0} +.defaultSkin span.mce_blockquote {background-position:-220px 0} +.defaultSkin .mce_forecolor span.mceAction {background-position:-720px 0} +.defaultSkin .mce_backcolor span.mceAction {background-position:-760px 0} +.defaultSkin span.mce_forecolorpicker {background-position:-720px 0} +.defaultSkin span.mce_backcolorpicker {background-position:-760px 0} + +/* Plugins */ +.defaultSkin span.mce_advhr {background-position:-0px -20px} +.defaultSkin span.mce_ltr {background-position:-20px -20px} +.defaultSkin span.mce_rtl {background-position:-40px -20px} +.defaultSkin span.mce_emotions {background-position:-60px -20px} +.defaultSkin span.mce_fullpage {background-position:-80px -20px} +.defaultSkin span.mce_fullscreen {background-position:-100px -20px} +.defaultSkin span.mce_iespell {background-position:-120px -20px} +.defaultSkin span.mce_insertdate {background-position:-140px -20px} +.defaultSkin span.mce_inserttime {background-position:-160px -20px} +.defaultSkin span.mce_absolute {background-position:-180px -20px} +.defaultSkin span.mce_backward {background-position:-200px -20px} +.defaultSkin span.mce_forward {background-position:-220px -20px} +.defaultSkin span.mce_insert_layer {background-position:-240px -20px} +.defaultSkin span.mce_insertlayer {background-position:-260px -20px} +.defaultSkin span.mce_movebackward {background-position:-280px -20px} +.defaultSkin span.mce_moveforward {background-position:-300px -20px} +.defaultSkin span.mce_media {background-position:-320px -20px} +.defaultSkin span.mce_nonbreaking {background-position:-340px -20px} +.defaultSkin span.mce_pastetext {background-position:-360px -20px} +.defaultSkin span.mce_pasteword {background-position:-380px -20px} +.defaultSkin span.mce_selectall {background-position:-400px -20px} +.defaultSkin span.mce_preview {background-position:-420px -20px} +.defaultSkin span.mce_print {background-position:-440px -20px} +.defaultSkin span.mce_cancel {background-position:-460px -20px} +.defaultSkin span.mce_save {background-position:-480px -20px} +.defaultSkin span.mce_replace {background-position:-500px -20px} +.defaultSkin span.mce_search {background-position:-520px -20px} +.defaultSkin span.mce_styleprops {background-position:-560px -20px} +.defaultSkin span.mce_table {background-position:-580px -20px} +.defaultSkin span.mce_cell_props {background-position:-600px -20px} +.defaultSkin span.mce_delete_table {background-position:-620px -20px} +.defaultSkin span.mce_delete_col {background-position:-640px -20px} +.defaultSkin span.mce_delete_row {background-position:-660px -20px} +.defaultSkin span.mce_col_after {background-position:-680px -20px} +.defaultSkin span.mce_col_before {background-position:-700px -20px} +.defaultSkin span.mce_row_after {background-position:-720px -20px} +.defaultSkin span.mce_row_before {background-position:-740px -20px} +.defaultSkin span.mce_merge_cells {background-position:-760px -20px} +.defaultSkin span.mce_table_props {background-position:-980px -20px} +.defaultSkin span.mce_row_props {background-position:-780px -20px} +.defaultSkin span.mce_split_cells {background-position:-800px -20px} +.defaultSkin span.mce_template {background-position:-820px -20px} +.defaultSkin span.mce_visualchars {background-position:-840px -20px} +.defaultSkin span.mce_abbr {background-position:-860px -20px} +.defaultSkin span.mce_acronym {background-position:-880px -20px} +.defaultSkin span.mce_attribs {background-position:-900px -20px} +.defaultSkin span.mce_cite {background-position:-920px -20px} +.defaultSkin span.mce_del {background-position:-940px -20px} +.defaultSkin span.mce_ins {background-position:-960px -20px} +.defaultSkin span.mce_pagebreak {background-position:0 -40px} +.defaultSkin span.mce_restoredraft {background-position:-20px -40px} +.defaultSkin span.mce_spellchecker {background-position:-540px -20px} +.defaultSkin span.mce_visualblocks {background-position: -40px -40px} diff --git a/askbot/skins/default/media/js/tinymce/themes/advanced/skins/highcontrast/content.css b/askbot/skins/default/media/js/tinymce/themes/advanced/skins/highcontrast/content.css new file mode 100644 index 00000000..cbce6c6a --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/themes/advanced/skins/highcontrast/content.css @@ -0,0 +1,24 @@ +body, td, pre { margin:8px;} +body.mceForceColors {background:#FFF; color:#000;} +h1 {font-size: 2em} +h2 {font-size: 1.5em} +h3 {font-size: 1.17em} +h4 {font-size: 1em} +h5 {font-size: .83em} +h6 {font-size: .75em} +.mceItemTable, .mceItemTable td, .mceItemTable th, .mceItemTable caption, .mceItemVisualAid {border: 1px dashed #BBB;} +a.mceItemAnchor {display:inline-block; width:11px !important; height:11px !important; background:url(../default/img/items.gif) no-repeat 0 0;} +span.mceItemNbsp {background: #DDD} +td.mceSelected, th.mceSelected {background-color:#3399ff !important} +img {border:0;} +table, img, hr, .mceItemAnchor {cursor:default} +table td, table th {cursor:text} +ins {border-bottom:1px solid green; text-decoration: none; color:green} +del {color:red; text-decoration:line-through} +cite {border-bottom:1px dashed blue} +acronym {border-bottom:1px dotted #CCC; cursor:help} +abbr {border-bottom:1px dashed #CCC; cursor:help} + +img:-moz-broken {-moz-force-broken-image-icon:1; width:24px; height:24px} +font[face=mceinline] {font-family:inherit !important} +*[contentEditable]:focus {outline:0} diff --git a/askbot/skins/default/media/js/tinymce/themes/advanced/skins/highcontrast/dialog.css b/askbot/skins/default/media/js/tinymce/themes/advanced/skins/highcontrast/dialog.css new file mode 100644 index 00000000..6d9fc8dd --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/themes/advanced/skins/highcontrast/dialog.css @@ -0,0 +1,106 @@ +/* Generic */ +body { +font-family:Verdana, Arial, Helvetica, sans-serif; font-size:11px; +background:#F0F0EE; +color: black; +padding:0; +margin:8px 8px 0 8px; +} + +html {background:#F0F0EE; color:#000;} +td {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;} +textarea {resize:none;outline:none;} +a:link, a:visited {color:black;background-color:transparent;} +a:hover {color:#2B6FB6;background-color:transparent;} +.nowrap {white-space: nowrap} + +/* Forms */ +fieldset {margin:0; padding:4px; border:1px solid #919B9C; font-family:Verdana, Arial; font-size:10px;} +legend {color:#2B6FB6; font-weight:bold;} +label.msg {display:none;} +label.invalid {color:#EE0000; display:inline;background-color:transparent;} +input.invalid {border:1px solid #EE0000;background-color:transparent;} +input {background:#FFF; border:1px solid #CCC;color:black;} +input, select, textarea {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;} +input, select, textarea {border:1px solid #808080;} +input.radio {border:1px none #000000; background:transparent; vertical-align:middle;} +input.checkbox {border:1px none #000000; background:transparent; vertical-align:middle;} +.input_noborder {border:0;} + +/* Buttons */ +#insert, #cancel, input.button, .updateButton { +font-weight:bold; +width:94px; height:23px; +cursor:pointer; +padding-bottom:2px; +float:left; +} + +#cancel {float:right} + +/* Browse */ +a.pickcolor, a.browse {text-decoration:none} +a.browse span {display:block; width:20px; height:18px; background:url(../../img/icons.gif) -860px 0; border:1px solid #FFF; margin-left:1px;} +.mceOldBoxModel a.browse span {width:22px; height:20px;} +a.browse:hover span {border:1px solid #0A246A; background-color:#B2BBD0;} +a.browse span.disabled {border:1px solid white; opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)} +a.browse:hover span.disabled {border:1px solid white; background-color:transparent;} +a.pickcolor span {display:block; width:20px; height:16px; background:url(../../img/icons.gif) -840px 0; margin-left:2px;} +.mceOldBoxModel a.pickcolor span {width:21px; height:17px;} +a.pickcolor:hover span {background-color:#B2BBD0;} +a.pickcolor:hover span.disabled {} + +/* Charmap */ +table.charmap {border:1px solid #AAA; text-align:center} +td.charmap, #charmap a {width:18px; height:18px; color:#000; border:1px solid #AAA; text-align:center; font-size:12px; vertical-align:middle; line-height: 18px;} +#charmap a {display:block; color:#000; text-decoration:none; border:0} +#charmap a:hover {background:#CCC;color:#2B6FB6} +#charmap #codeN {font-size:10px; font-family:Arial,Helvetica,sans-serif; text-align:center} +#charmap #codeV {font-size:40px; height:80px; border:1px solid #AAA; text-align:center} + +/* Source */ +.wordWrapCode {vertical-align:middle; border:1px none #000000; background:transparent;} +.mceActionPanel {margin-top:5px;} + +/* Tabs classes */ +.tabs {width:100%; height:18px; line-height:normal;} +.tabs ul {margin:0; padding:0; list-style:none;} +.tabs li {float:left; border: 1px solid black; border-bottom:0; margin:0 2px 0 0; padding:0 0 0 10px; line-height:17px; height:18px; display:block; cursor:pointer;} +.tabs li.current {font-weight: bold; margin-right:2px;} +.tabs span {float:left; display:block; padding:0px 10px 0 0;} +.tabs a {text-decoration:none; font-family:Verdana, Arial; font-size:10px;} +.tabs a:link, .tabs a:visited, .tabs a:hover {color:black;} + +/* Panels */ +.panel_wrapper div.panel {display:none;} +.panel_wrapper div.current {display:block; width:100%; height:300px; overflow:visible;} +.panel_wrapper {border:1px solid #919B9C; padding:10px; padding-top:5px; clear:both; background:white;} + +/* Columns */ +.column {float:left;} +.properties {width:100%;} +.properties .column1 {} +.properties .column2 {text-align:left;} + +/* Titles */ +h1, h2, h3, h4 {color:#2B6FB6; margin:0; padding:0; padding-top:5px;} +h3 {font-size:14px;} +.title {font-size:12px; font-weight:bold; color:#2B6FB6;} + +/* Dialog specific */ +#link .panel_wrapper, #link div.current {height:125px;} +#image .panel_wrapper, #image div.current {height:200px;} +#plugintable thead {font-weight:bold; background:#DDD;} +#plugintable, #about #plugintable td {border:1px solid #919B9C;} +#plugintable {width:96%; margin-top:10px;} +#pluginscontainer {height:290px; overflow:auto;} +#colorpicker #preview {display:inline-block; padding-left:40px; height:14px; border:1px solid black; margin-left:5px; margin-right: 5px} +#colorpicker #previewblock {position: relative; top: -3px; padding-left:5px; padding-top: 0px; display:inline} +#colorpicker #preview_wrapper { text-align:center; padding-top:4px; white-space: nowrap} +#colorpicker #colors {float:left; border:1px solid gray; cursor:crosshair;} +#colorpicker #light {border:1px solid gray; margin-left:5px; float:left;width:15px; height:150px; cursor:crosshair;} +#colorpicker #light div {overflow:hidden;} +#colorpicker .panel_wrapper div.current {height:175px;} +#colorpicker #namedcolors {width:150px;} +#colorpicker #namedcolors a {display:block; float:left; width:10px; height:10px; margin:1px 1px 0 0; overflow:hidden;} +#colorpicker #colornamecontainer {margin-top:5px;} diff --git a/askbot/skins/default/media/js/tinymce/themes/advanced/skins/highcontrast/ui.css b/askbot/skins/default/media/js/tinymce/themes/advanced/skins/highcontrast/ui.css new file mode 100644 index 00000000..effbbe15 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/themes/advanced/skins/highcontrast/ui.css @@ -0,0 +1,106 @@ +/* Reset */ +.highcontrastSkin table, .highcontrastSkin tbody, .highcontrastSkin a, .highcontrastSkin img, .highcontrastSkin tr, .highcontrastSkin div, .highcontrastSkin td, .highcontrastSkin iframe, .highcontrastSkin span, .highcontrastSkin *, .highcontrastSkin .mceText {border:0; margin:0; padding:0; vertical-align:baseline; border-collapse:separate;} +.highcontrastSkin a:hover, .highcontrastSkin a:link, .highcontrastSkin a:visited, .highcontrastSkin a:active {text-decoration:none; font-weight:normal; cursor:default;} +.highcontrastSkin table td {vertical-align:middle} + +.highcontrastSkin .mceIconOnly {display: block !important;} + +/* External */ +.highcontrastSkin .mceExternalToolbar {position:absolute; border:1px solid; border-bottom:0; display:none; background-color: white;} +.highcontrastSkin .mceExternalToolbar td.mceToolbar {padding-right:13px;} +.highcontrastSkin .mceExternalClose {position:absolute; top:3px; right:3px; width:7px; height:7px;} + +/* Layout */ +.highcontrastSkin table.mceLayout {border: 1px solid;} +.highcontrastSkin .mceIframeContainer {border-top:1px solid; border-bottom:1px solid} +.highcontrastSkin .mceStatusbar a:hover {text-decoration:underline} +.highcontrastSkin .mceStatusbar {display:block; line-height:1.5em; overflow:visible;} +.highcontrastSkin .mceStatusbar div {float:left} +.highcontrastSkin .mceStatusbar a.mceResize {display:block; float:right; width:20px; height:20px; cursor:se-resize; outline:0} + +.highcontrastSkin .mceToolbar td { display: inline-block; float: left;} +.highcontrastSkin .mceToolbar tr { display: block;} +.highcontrastSkin .mceToolbar table { display: block; } + +/* Button */ + +.highcontrastSkin .mceButton { display:block; margin: 2px; padding: 5px 10px;border: 1px solid; border-radius: 3px; -moz-border-radius: 3px; -webkit-border-radius: 3px; -ms-border-radius: 3px; height: 2em;} +.highcontrastSkin .mceButton .mceVoiceLabel { height: 100%; vertical-align: center; line-height: 2em} +.highcontrastSkin .mceButtonDisabled .mceVoiceLabel { opacity:0.6; -ms-filter:'alpha(opacity=60)'; filter:alpha(opacity=60);} +.highcontrastSkin .mceButtonActive, .highcontrastSkin .mceButton:focus, .highcontrastSkin .mceButton:active { border: 5px solid; padding: 1px 6px;-webkit-focus-ring-color:none;outline:none;} + +/* Separator */ +.highcontrastSkin .mceSeparator {display:block; width:16px; height:26px;} + +/* ListBox */ +.highcontrastSkin .mceListBox { display: block; margin:2px;-webkit-focus-ring-color:none;outline:none;} +.highcontrastSkin .mceListBox .mceText {padding: 5px 6px; line-height: 2em; width: 15ex; overflow: hidden;} +.highcontrastSkin .mceListBoxDisabled .mceText { opacity:0.6; -ms-filter:'alpha(opacity=60)'; filter:alpha(opacity=60);} +.highcontrastSkin .mceListBox a.mceText { padding: 5px 10px; display: block; height: 2em; line-height: 2em; border: 1px solid; border-right: 0; border-radius: 3px 0px 0px 3px; -moz-border-radius: 3px 0px 0px 3px; -webkit-border-radius: 3px 0px 0px 3px; -ms-border-radius: 3px 0px 0px 3px;} +.highcontrastSkin .mceListBox a.mceOpen { padding: 5px 4px; display: block; height: 2em; line-height: 2em; border: 1px solid; border-left: 0; border-radius: 0px 3px 3px 0px; -moz-border-radius: 0px 3px 3px 0px; -webkit-border-radius: 0px 3px 3px 0px; -ms-border-radius: 0px 3px 3px 0px;} +.highcontrastSkin .mceListBox:focus a.mceText, .highcontrastSkin .mceListBox:active a.mceText { border-width: 5px; padding: 1px 10px 1px 6px;} +.highcontrastSkin .mceListBox:focus a.mceOpen, .highcontrastSkin .mceListBox:active a.mceOpen { border-width: 5px; padding: 1px 0px 1px 4px;} + +.highcontrastSkin .mceListBoxMenu {overflow-y:auto} + +/* SplitButton */ +.highcontrastSkin .mceSplitButtonDisabled .mceAction {opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)} + +.highcontrastSkin .mceSplitButton { border-collapse: collapse; margin: 2px; height: 2em; line-height: 2em;-webkit-focus-ring-color:none;outline:none;} +.highcontrastSkin .mceSplitButton td { display: table-cell; float: none; margin: 0; padding: 0; height: 2em;} +.highcontrastSkin .mceSplitButton tr { display: table-row; } +.highcontrastSkin table.mceSplitButton { display: table; } +.highcontrastSkin .mceSplitButton a.mceAction { padding: 5px 10px; display: block; height: 2em; line-height: 2em; overflow: hidden; border: 1px solid; border-right: 0; border-radius: 3px 0px 0px 3px; -moz-border-radius: 3px 0px 0px 3px; -webkit-border-radius: 3px 0px 0px 3px; -ms-border-radius: 3px 0px 0px 3px;} +.highcontrastSkin .mceSplitButton a.mceOpen { padding: 5px 4px; display: block; height: 2em; line-height: 2em; border: 1px solid; border-radius: 0px 3px 3px 0px; -moz-border-radius: 0px 3px 3px 0px; -webkit-border-radius: 0px 3px 3px 0px; -ms-border-radius: 0px 3px 3px 0px;} +.highcontrastSkin .mceSplitButton .mceVoiceLabel { height: 2em; vertical-align: center; line-height: 2em; } +.highcontrastSkin .mceSplitButton:focus a.mceAction, .highcontrastSkin .mceSplitButton:active a.mceAction { border-width: 5px; border-right-width: 1px; padding: 1px 10px 1px 6px;-webkit-focus-ring-color:none;outline:none;} +.highcontrastSkin .mceSplitButton:focus a.mceOpen, .highcontrastSkin .mceSplitButton:active a.mceOpen { border-width: 5px; border-left-width: 1px; padding: 1px 0px 1px 4px;-webkit-focus-ring-color:none;outline:none;} + +/* Menu */ +.highcontrastSkin .mceNoIcons span.mceIcon {width:0;} +.highcontrastSkin .mceMenu {position:absolute; left:0; top:0; z-index:1000; border:1px solid; direction:ltr} +.highcontrastSkin .mceMenu table {background:white; color: black} +.highcontrastSkin .mceNoIcons a .mceText {padding-left:10px} +.highcontrastSkin .mceMenu a, .highcontrastSkin .mceMenu span, .highcontrastSkin .mceMenu {display:block;background:white; color: black} +.highcontrastSkin .mceMenu td {height:2em} +.highcontrastSkin .mceMenu a {position:relative;padding:3px 0 4px 0; display: block;} +.highcontrastSkin .mceMenu .mceText {position:relative; display:block; cursor:default; margin:0; padding:0 25px 0 25px;} +.highcontrastSkin .mceMenu pre.mceText {font-family:Monospace} +.highcontrastSkin .mceMenu .mceIcon {position:absolute; top:0; left:0; width:26px;} +.highcontrastSkin td.mceMenuItemSeparator {border-top:1px solid; height:1px} +.highcontrastSkin .mceMenuItemTitle a {border:0; border-bottom:1px solid} +.highcontrastSkin .mceMenuItemTitle span.mceText {font-weight:bold; padding-left:4px} +.highcontrastSkin .mceNoIcons .mceMenuItemSelected span.mceText:before {content: "\2713\A0";} +.highcontrastSkin .mceMenu span.mceMenuLine {display:none} +.highcontrastSkin .mceMenuItemSub a .mceText:after {content: "\A0\25B8"} +.highcontrastSkin .mceMenuItem td, .highcontrastSkin .mceMenuItem th {line-height: normal} + +/* ColorSplitButton */ +.highcontrastSkin div.mceColorSplitMenu table {background:#FFF; border:1px solid; color: #000} +.highcontrastSkin .mceColorSplitMenu td {padding:2px} +.highcontrastSkin .mceColorSplitMenu a {display:block; width:16px; height:16px; overflow:hidden; color:#000; margin: 0; padding: 0;} +.highcontrastSkin .mceColorSplitMenu td.mceMoreColors {padding:1px 3px 1px 1px} +.highcontrastSkin .mceColorSplitMenu a.mceMoreColors {width:100%; height:auto; text-align:center; font-family:Tahoma,Verdana,Arial,Helvetica; font-size:11px; line-height:20px; border:1px solid #FFF} +.highcontrastSkin .mceColorSplitMenu a.mceMoreColors:hover {border:1px solid; background-color:#B6BDD2} +.highcontrastSkin a.mceMoreColors:hover {border:1px solid #0A246A; color: #000;} +.highcontrastSkin .mceColorPreview {display:none;} +.highcontrastSkin .mce_forecolor span.mceAction, .highcontrastSkin .mce_backcolor span.mceAction {height:17px;overflow:hidden} + +/* Progress,Resize */ +.highcontrastSkin .mceBlocker {position:absolute; left:0; top:0; z-index:1000; opacity:0.5; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=50); background:#FFF} +.highcontrastSkin .mceProgress {position:absolute; left:0; top:0; z-index:1001; background:url(../default/img/progress.gif) no-repeat; width:32px; height:32px; margin:-16px 0 0 -16px} + +/* Rtl */ +.mceRtl .mceListBox .mceText {text-align: right; padding: 0 4px 0 0} +.mceRtl .mceMenuItem .mceText {text-align: right} + +/* Formats */ +.highcontrastSkin .mce_p span.mceText {} +.highcontrastSkin .mce_address span.mceText {font-style:italic} +.highcontrastSkin .mce_pre span.mceText {font-family:monospace} +.highcontrastSkin .mce_h1 span.mceText {font-weight:bolder; font-size: 2em} +.highcontrastSkin .mce_h2 span.mceText {font-weight:bolder; font-size: 1.5em} +.highcontrastSkin .mce_h3 span.mceText {font-weight:bolder; font-size: 1.17em} +.highcontrastSkin .mce_h4 span.mceText {font-weight:bolder; font-size: 1em} +.highcontrastSkin .mce_h5 span.mceText {font-weight:bolder; font-size: .83em} +.highcontrastSkin .mce_h6 span.mceText {font-weight:bolder; font-size: .75em} diff --git a/askbot/skins/default/media/js/tinymce/themes/advanced/skins/o2k7/content.css b/askbot/skins/default/media/js/tinymce/themes/advanced/skins/o2k7/content.css new file mode 100644 index 00000000..a1a8f9bd --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/themes/advanced/skins/o2k7/content.css @@ -0,0 +1,48 @@ +body, td, pre {color:#000; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px; margin:8px;} +body {background:#FFF;} +body.mceForceColors {background:#FFF; color:#000;} +h1 {font-size: 2em} +h2 {font-size: 1.5em} +h3 {font-size: 1.17em} +h4 {font-size: 1em} +h5 {font-size: .83em} +h6 {font-size: .75em} +.mceItemTable, .mceItemTable td, .mceItemTable th, .mceItemTable caption, .mceItemVisualAid {border: 1px dashed #BBB;} +a.mceItemAnchor {display:inline-block; width:11px !important; height:11px !important; background:url(../default/img/items.gif) no-repeat 0 0;} +span.mceItemNbsp {background: #DDD} +td.mceSelected, th.mceSelected {background-color:#3399ff !important} +img {border:0;} +table, img, hr, .mceItemAnchor {cursor:default} +table td, table th {cursor:text} +ins {border-bottom:1px solid green; text-decoration: none; color:green} +del {color:red; text-decoration:line-through} +cite {border-bottom:1px dashed blue} +acronym {border-bottom:1px dotted #CCC; cursor:help} +abbr {border-bottom:1px dashed #CCC; cursor:help} + +/* IE */ +* html body { +scrollbar-3dlight-color:#F0F0EE; +scrollbar-arrow-color:#676662; +scrollbar-base-color:#F0F0EE; +scrollbar-darkshadow-color:#DDD; +scrollbar-face-color:#E0E0DD; +scrollbar-highlight-color:#F0F0EE; +scrollbar-shadow-color:#F0F0EE; +scrollbar-track-color:#F5F5F5; +} + +img:-moz-broken {-moz-force-broken-image-icon:1; width:24px; height:24px} +font[face=mceinline] {font-family:inherit !important} +*[contentEditable]:focus {outline:0} + +.mceItemMedia {border:1px dotted #cc0000; background-position:center; background-repeat:no-repeat; background-color:#ffffcc} +.mceItemShockWave {background-image:url(../../img/shockwave.gif)} +.mceItemFlash {background-image:url(../../img/flash.gif)} +.mceItemQuickTime {background-image:url(../../img/quicktime.gif)} +.mceItemWindowsMedia {background-image:url(../../img/windowsmedia.gif)} +.mceItemRealMedia {background-image:url(../../img/realmedia.gif)} +.mceItemVideo {background-image:url(../../img/video.gif)} +.mceItemAudio {background-image:url(../../img/video.gif)} +.mceItemIframe {background-image:url(../../img/iframe.gif)} +.mcePageBreak {display:block;border:0;width:100%;height:12px;border-top:1px dotted #ccc;margin-top:15px;background:#fff url(../../img/pagebreak.gif) no-repeat center top;} diff --git a/askbot/skins/default/media/js/tinymce/themes/advanced/skins/o2k7/dialog.css b/askbot/skins/default/media/js/tinymce/themes/advanced/skins/o2k7/dialog.css new file mode 100644 index 00000000..a54db98d --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/themes/advanced/skins/o2k7/dialog.css @@ -0,0 +1,118 @@ +/* Generic */ +body { +font-family:Verdana, Arial, Helvetica, sans-serif; font-size:11px; +scrollbar-3dlight-color:#F0F0EE; +scrollbar-arrow-color:#676662; +scrollbar-base-color:#F0F0EE; +scrollbar-darkshadow-color:#DDDDDD; +scrollbar-face-color:#E0E0DD; +scrollbar-highlight-color:#F0F0EE; +scrollbar-shadow-color:#F0F0EE; +scrollbar-track-color:#F5F5F5; +background:#F0F0EE; +padding:0; +margin:8px 8px 0 8px; +} + +html {background:#F0F0EE;} +td {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;} +textarea {resize:none;outline:none;} +a:link, a:visited {color:black;} +a:hover {color:#2B6FB6;} +.nowrap {white-space: nowrap} + +/* Forms */ +fieldset {margin:0; padding:4px; border:1px solid #919B9C; font-family:Verdana, Arial; font-size:10px;} +legend {color:#2B6FB6; font-weight:bold;} +label.msg {display:none;} +label.invalid {color:#EE0000; display:inline;} +input.invalid {border:1px solid #EE0000;} +input {background:#FFF; border:1px solid #CCC;} +input, select, textarea {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;} +input, select, textarea {border:1px solid #808080;} +input.radio {border:1px none #000000; background:transparent; vertical-align:middle;} +input.checkbox {border:1px none #000000; background:transparent; vertical-align:middle;} +.input_noborder {border:0;} + +/* Buttons */ +#insert, #cancel, input.button, .updateButton { +border:0; margin:0; padding:0; +font-weight:bold; +width:94px; height:26px; +background:url(../default/img/buttons.png) 0 -26px; +cursor:pointer; +padding-bottom:2px; +float:left; +} + +#insert {background:url(../default/img/buttons.png) 0 -52px} +#cancel {background:url(../default/img/buttons.png) 0 0; float:right} + +/* Browse */ +a.pickcolor, a.browse {text-decoration:none} +a.browse span {display:block; width:20px; height:18px; background:url(../../img/icons.gif) -860px 0; border:1px solid #FFF; margin-left:1px;} +.mceOldBoxModel a.browse span {width:22px; height:20px;} +a.browse:hover span {border:1px solid #0A246A; background-color:#B2BBD0;} +a.browse span.disabled {border:1px solid white; opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)} +a.browse:hover span.disabled {border:1px solid white; background-color:transparent;} +a.pickcolor span {display:block; width:20px; height:16px; background:url(../../img/icons.gif) -840px 0; margin-left:2px;} +.mceOldBoxModel a.pickcolor span {width:21px; height:17px;} +a.pickcolor:hover span {background-color:#B2BBD0;} +a.pickcolor:hover span.disabled {} + +/* Charmap */ +table.charmap {border:1px solid #AAA; text-align:center} +td.charmap, #charmap a {width:18px; height:18px; color:#000; border:1px solid #AAA; text-align:center; font-size:12px; vertical-align:middle; line-height: 18px;} +#charmap a {display:block; color:#000; text-decoration:none; border:0} +#charmap a:hover {background:#CCC;color:#2B6FB6} +#charmap #codeN {font-size:10px; font-family:Arial,Helvetica,sans-serif; text-align:center} +#charmap #codeV {font-size:40px; height:80px; border:1px solid #AAA; text-align:center} + +/* Source */ +.wordWrapCode {vertical-align:middle; border:1px none #000000; background:transparent;} +.mceActionPanel {margin-top:5px;} + +/* Tabs classes */ +.tabs {width:100%; height:18px; line-height:normal; background:url(../default/img/tabs.gif) repeat-x 0 -72px;} +.tabs ul {margin:0; padding:0; list-style:none;} +.tabs li {float:left; background:url(../default/img/tabs.gif) no-repeat 0 0; margin:0 2px 0 0; padding:0 0 0 10px; line-height:17px; height:18px; display:block;} +.tabs li.current {background:url(../default/img/tabs.gif) no-repeat 0 -18px; margin-right:2px;} +.tabs span {float:left; display:block; background:url(../default/img/tabs.gif) no-repeat right -36px; padding:0px 10px 0 0;} +.tabs .current span {background:url(../default/img/tabs.gif) no-repeat right -54px;} +.tabs a {text-decoration:none; font-family:Verdana, Arial; font-size:10px;} +.tabs a:link, .tabs a:visited, .tabs a:hover {color:black;} + +/* Panels */ +.panel_wrapper div.panel {display:none;} +.panel_wrapper div.current {display:block; width:100%; height:300px; overflow:visible;} +.panel_wrapper {border:1px solid #919B9C; border-top:0px; padding:10px; padding-top:5px; clear:both; background:white;} + +/* Columns */ +.column {float:left;} +.properties {width:100%;} +.properties .column1 {} +.properties .column2 {text-align:left;} + +/* Titles */ +h1, h2, h3, h4 {color:#2B6FB6; margin:0; padding:0; padding-top:5px;} +h3 {font-size:14px;} +.title {font-size:12px; font-weight:bold; color:#2B6FB6;} + +/* Dialog specific */ +#link .panel_wrapper, #link div.current {height:125px;} +#image .panel_wrapper, #image div.current {height:200px;} +#plugintable thead {font-weight:bold; background:#DDD;} +#plugintable, #about #plugintable td {border:1px solid #919B9C;} +#plugintable {width:96%; margin-top:10px;} +#pluginscontainer {height:290px; overflow:auto;} +#colorpicker #preview {display:inline-block; padding-left:40px; height:14px; border:1px solid black; margin-left:5px; margin-right: 5px} +#colorpicker #previewblock {position: relative; top: -3px; padding-left:5px; padding-top: 0px; display:inline} +#colorpicker #preview_wrapper { text-align:center; padding-top:4px; white-space: nowrap} +#colorpicker #colors {float:left; border:1px solid gray; cursor:crosshair;} +#colorpicker #light {border:1px solid gray; margin-left:5px; float:left;width:15px; height:150px; cursor:crosshair;} +#colorpicker #light div {overflow:hidden;} +#colorpicker .panel_wrapper div.current {height:175px;} +#colorpicker #namedcolors {width:150px;} +#colorpicker #namedcolors a {display:block; float:left; width:10px; height:10px; margin:1px 1px 0 0; overflow:hidden;} +#colorpicker #colornamecontainer {margin-top:5px;} +#colorpicker #picker_panel fieldset {margin:auto;width:325px;} diff --git a/askbot/skins/default/media/js/tinymce/themes/advanced/skins/o2k7/img/button_bg.png b/askbot/skins/default/media/js/tinymce/themes/advanced/skins/o2k7/img/button_bg.png new file mode 100644 index 00000000..13a5cb03 Binary files /dev/null and b/askbot/skins/default/media/js/tinymce/themes/advanced/skins/o2k7/img/button_bg.png differ diff --git a/askbot/skins/default/media/js/tinymce/themes/advanced/skins/o2k7/img/button_bg_black.png b/askbot/skins/default/media/js/tinymce/themes/advanced/skins/o2k7/img/button_bg_black.png new file mode 100644 index 00000000..7fc57f2b Binary files /dev/null and b/askbot/skins/default/media/js/tinymce/themes/advanced/skins/o2k7/img/button_bg_black.png differ diff --git a/askbot/skins/default/media/js/tinymce/themes/advanced/skins/o2k7/img/button_bg_silver.png b/askbot/skins/default/media/js/tinymce/themes/advanced/skins/o2k7/img/button_bg_silver.png new file mode 100644 index 00000000..c0dcc6ca Binary files /dev/null and b/askbot/skins/default/media/js/tinymce/themes/advanced/skins/o2k7/img/button_bg_silver.png differ diff --git a/askbot/skins/default/media/js/tinymce/themes/advanced/skins/o2k7/ui.css b/askbot/skins/default/media/js/tinymce/themes/advanced/skins/o2k7/ui.css new file mode 100644 index 00000000..a3102237 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/themes/advanced/skins/o2k7/ui.css @@ -0,0 +1,222 @@ +/* Reset */ +.o2k7Skin table, .o2k7Skin tbody, .o2k7Skin a, .o2k7Skin img, .o2k7Skin tr, .o2k7Skin div, .o2k7Skin td, .o2k7Skin iframe, .o2k7Skin span, .o2k7Skin *, .o2k7Skin .mceText {border:0; margin:0; padding:0; background:transparent; white-space:nowrap; text-decoration:none; font-weight:normal; cursor:default; color:#000; vertical-align:baseline; width:auto; border-collapse:separate; text-align:left} +.o2k7Skin a:hover, .o2k7Skin a:link, .o2k7Skin a:visited, .o2k7Skin a:active {text-decoration:none; font-weight:normal; cursor:default; color:#000} +.o2k7Skin table td {vertical-align:middle} + +/* Containers */ +.o2k7Skin table {background:transparent} +.o2k7Skin iframe {display:block;} +.o2k7Skin .mceToolbar {height:26px} + +/* External */ +.o2k7Skin .mceExternalToolbar {position:absolute; border:1px solid #ABC6DD; border-bottom:0; display:none} +.o2k7Skin .mceExternalToolbar td.mceToolbar {padding-right:13px;} +.o2k7Skin .mceExternalClose {position:absolute; top:3px; right:3px; width:7px; height:7px; background:url(../../img/icons.gif) -820px 0} + +/* Layout */ +.o2k7Skin table.mceLayout {border:0; border-left:1px solid #ABC6DD; border-right:1px solid #ABC6DD} +.o2k7Skin table.mceLayout tr.mceFirst td {border-top:1px solid #ABC6DD} +.o2k7Skin table.mceLayout tr.mceLast td {border-bottom:1px solid #ABC6DD} +.o2k7Skin table.mceToolbar, .o2k7Skin tr.mceFirst .mceToolbar tr td, .o2k7Skin tr.mceLast .mceToolbar tr td {border:0; margin:0; padding:0} +.o2k7Skin .mceIframeContainer {border-top:1px solid #ABC6DD; border-bottom:1px solid #ABC6DD} +.o2k7Skin td.mceToolbar{background:#E5EFFD} +.o2k7Skin .mceStatusbar {background:#E5EFFD; display:block; font-family:'MS Sans Serif',sans-serif,Verdana,Arial; font-size:9pt; line-height:16px; overflow:visible; color:#000; height:20px} +.o2k7Skin .mceStatusbar div {float:left; padding:2px} +.o2k7Skin .mceStatusbar a.mceResize {display:block; float:right; background:url(../../img/icons.gif) -800px 0; width:20px; height:20px; cursor:se-resize; outline:0} +.o2k7Skin .mceStatusbar a:hover {text-decoration:underline} +.o2k7Skin table.mceToolbar {margin-left:3px} +.o2k7Skin .mceToolbar .mceToolbarStart span {display:block; background:url(img/button_bg.png) -22px 0; width:1px; height:22px; margin-left:3px;} +.o2k7Skin .mceToolbar td.mceFirst span {margin:0} +.o2k7Skin .mceToolbar .mceToolbarEnd span {display:block; background:url(img/button_bg.png) -22px 0; width:1px; height:22px} +.o2k7Skin .mceToolbar .mceToolbarEndListBox span, .o2k7Skin .mceToolbar .mceToolbarStartListBox span {display:none} +.o2k7Skin span.mceIcon, .o2k7Skin img.mceIcon {display:block; width:20px; height:20px} +.o2k7Skin .mceIcon {background:url(../../img/icons.gif) no-repeat 20px 20px} +.o2k7Skin td.mceCenter {text-align:center;} +.o2k7Skin td.mceCenter table {margin:0 auto; text-align:left;} +.o2k7Skin td.mceRight table {margin:0 0 0 auto;} + +/* Button */ +.o2k7Skin .mceButton {display:block; background:url(img/button_bg.png); width:22px; height:22px} +.o2k7Skin a.mceButton span, .o2k7Skin a.mceButton img {margin-left:1px} +.o2k7Skin .mceOldBoxModel a.mceButton span, .o2k7Skin .mceOldBoxModel a.mceButton img {margin:0 0 0 1px} +.o2k7Skin a.mceButtonEnabled:hover {background-color:#B2BBD0; background-position:0 -22px} +.o2k7Skin a.mceButtonActive, .o2k7Skin a.mceButtonSelected {background-position:0 -44px} +.o2k7Skin .mceButtonDisabled .mceIcon {opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)} +.o2k7Skin .mceButtonLabeled {width:auto} +.o2k7Skin .mceButtonLabeled span.mceIcon {float:left} +.o2k7Skin span.mceButtonLabel {display:block; font-size:10px; padding:4px 6px 0 22px; font-family:Tahoma,Verdana,Arial,Helvetica} +.o2k7Skin .mceButtonDisabled .mceButtonLabel {color:#888} + +/* Separator */ +.o2k7Skin .mceSeparator {display:block; background:url(img/button_bg.png) -22px 0; width:5px; height:22px} + +/* ListBox */ +.o2k7Skin .mceListBox {padding-left: 3px} +.o2k7Skin .mceListBox, .o2k7Skin .mceListBox a {display:block} +.o2k7Skin .mceListBox .mceText {padding-left:4px; text-align:left; width:70px; border:1px solid #b3c7e1; border-right:0; background:#eaf2fb; font-family:Tahoma,Verdana,Arial,Helvetica; font-size:11px; height:20px; line-height:20px; overflow:hidden} +.o2k7Skin .mceListBox .mceOpen {width:14px; height:22px; background:url(img/button_bg.png) -66px 0} +.o2k7Skin table.mceListBoxEnabled:hover .mceText, .o2k7Skin .mceListBoxHover .mceText, .o2k7Skin .mceListBoxSelected .mceText {background:#FFF} +.o2k7Skin table.mceListBoxEnabled:hover .mceOpen, .o2k7Skin .mceListBoxHover .mceOpen, .o2k7Skin .mceListBoxSelected .mceOpen {background-position:-66px -22px} +.o2k7Skin .mceListBoxDisabled .mceText {color:gray} +.o2k7Skin .mceListBoxMenu {overflow:auto; overflow-x:hidden; margin-left:3px} +.o2k7Skin .mceOldBoxModel .mceListBox .mceText {height:22px} +.o2k7Skin select.mceListBox {font-family:Tahoma,Verdana,Arial,Helvetica; font-size:12px; border:1px solid #b3c7e1; background:#FFF;} + +/* SplitButton */ +.o2k7Skin .mceSplitButton, .o2k7Skin .mceSplitButton a, .o2k7Skin .mceSplitButton span {display:block; height:22px; direction:ltr} +.o2k7Skin .mceSplitButton {background:url(img/button_bg.png)} +.o2k7Skin .mceSplitButton a.mceAction {width:22px} +.o2k7Skin .mceSplitButton span.mceAction {width:22px; background-image:url(../../img/icons.gif)} +.o2k7Skin .mceSplitButton a.mceOpen {width:10px; background:url(img/button_bg.png) -44px 0} +.o2k7Skin .mceSplitButton span.mceOpen {display:none} +.o2k7Skin table.mceSplitButtonEnabled:hover a.mceAction, .o2k7Skin .mceSplitButtonHover a.mceAction, .o2k7Skin .mceSplitButtonSelected {background:url(img/button_bg.png) 0 -22px} +.o2k7Skin table.mceSplitButtonEnabled:hover a.mceOpen, .o2k7Skin .mceSplitButtonHover a.mceOpen, .o2k7Skin .mceSplitButtonSelected a.mceOpen {background-position:-44px -44px} +.o2k7Skin .mceSplitButtonDisabled .mceAction {opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)} +.o2k7Skin .mceSplitButtonActive {background-position:0 -44px} + +/* ColorSplitButton */ +.o2k7Skin div.mceColorSplitMenu table {background:#FFF; border:1px solid gray} +.o2k7Skin .mceColorSplitMenu td {padding:2px} +.o2k7Skin .mceColorSplitMenu a {display:block; width:9px; height:9px; overflow:hidden; border:1px solid #808080} +.o2k7Skin .mceColorSplitMenu td.mceMoreColors {padding:1px 3px 1px 1px} +.o2k7Skin .mceColorSplitMenu a.mceMoreColors {width:100%; height:auto; text-align:center; font-family:Tahoma,Verdana,Arial,Helvetica; font-size:11px; line-height:20px; border:1px solid #FFF} +.o2k7Skin .mceColorSplitMenu a.mceMoreColors:hover {border:1px solid #0A246A; background-color:#B6BDD2} +.o2k7Skin a.mceMoreColors:hover {border:1px solid #0A246A} +.o2k7Skin .mceColorPreview {margin-left:2px; width:16px; height:4px; overflow:hidden; background:#9a9b9a;overflow:hidden} +.o2k7Skin .mce_forecolor span.mceAction, .o2k7Skin .mce_backcolor span.mceAction {height:15px;overflow:hidden} + +/* Menu */ +.o2k7Skin .mceMenu {position:absolute; left:0; top:0; z-index:1000; border:1px solid #ABC6DD; direction:ltr} +.o2k7Skin .mceNoIcons span.mceIcon {width:0;} +.o2k7Skin .mceNoIcons a .mceText {padding-left:10px} +.o2k7Skin .mceMenu table {background:#FFF} +.o2k7Skin .mceMenu a, .o2k7Skin .mceMenu span, .o2k7Skin .mceMenu {display:block} +.o2k7Skin .mceMenu td {height:20px} +.o2k7Skin .mceMenu a {position:relative;padding:3px 0 4px 0} +.o2k7Skin .mceMenu .mceText {position:relative; display:block; font-family:Tahoma,Verdana,Arial,Helvetica; color:#000; cursor:default; margin:0; padding:0 25px 0 25px; display:block} +.o2k7Skin .mceMenu span.mceText, .o2k7Skin .mceMenu .mcePreview {font-size:11px} +.o2k7Skin .mceMenu pre.mceText {font-family:Monospace} +.o2k7Skin .mceMenu .mceIcon {position:absolute; top:0; left:0; width:22px;} +.o2k7Skin .mceMenu .mceMenuItemEnabled a:hover, .o2k7Skin .mceMenu .mceMenuItemActive {background-color:#dbecf3} +.o2k7Skin td.mceMenuItemSeparator {background:#DDD; height:1px} +.o2k7Skin .mceMenuItemTitle a {border:0; background:#E5EFFD; border-bottom:1px solid #ABC6DD} +.o2k7Skin .mceMenuItemTitle span.mceText {color:#000; font-weight:bold; padding-left:4px} +.o2k7Skin .mceMenuItemDisabled .mceText {color:#888} +.o2k7Skin .mceMenuItemSelected .mceIcon {background:url(../default/img/menu_check.gif)} +.o2k7Skin .mceNoIcons .mceMenuItemSelected a {background:url(../default/img/menu_arrow.gif) no-repeat -6px center} +.o2k7Skin .mceMenu span.mceMenuLine {display:none} +.o2k7Skin .mceMenuItemSub a {background:url(../default/img/menu_arrow.gif) no-repeat top right;} +.o2k7Skin .mceMenuItem td, .o2k7Skin .mceMenuItem th {line-height: normal} + +/* Progress,Resize */ +.o2k7Skin .mceBlocker {position:absolute; left:0; top:0; z-index:1000; opacity:0.5; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=50); background:#FFF} +.o2k7Skin .mceProgress {position:absolute; left:0; top:0; z-index:1001; background:url(../default/img/progress.gif) no-repeat; width:32px; height:32px; margin:-16px 0 0 -16px} + +/* Rtl */ +.mceRtl .mceListBox .mceText {text-align: right; padding: 0 4px 0 0} +.mceRtl .mceMenuItem .mceText {text-align: right} + +/* Formats */ +.o2k7Skin .mce_formatPreview a {font-size:10px} +.o2k7Skin .mce_p span.mceText {} +.o2k7Skin .mce_address span.mceText {font-style:italic} +.o2k7Skin .mce_pre span.mceText {font-family:monospace} +.o2k7Skin .mce_h1 span.mceText {font-weight:bolder; font-size: 2em} +.o2k7Skin .mce_h2 span.mceText {font-weight:bolder; font-size: 1.5em} +.o2k7Skin .mce_h3 span.mceText {font-weight:bolder; font-size: 1.17em} +.o2k7Skin .mce_h4 span.mceText {font-weight:bolder; font-size: 1em} +.o2k7Skin .mce_h5 span.mceText {font-weight:bolder; font-size: .83em} +.o2k7Skin .mce_h6 span.mceText {font-weight:bolder; font-size: .75em} + +/* Theme */ +.o2k7Skin span.mce_bold {background-position:0 0} +.o2k7Skin span.mce_italic {background-position:-60px 0} +.o2k7Skin span.mce_underline {background-position:-140px 0} +.o2k7Skin span.mce_strikethrough {background-position:-120px 0} +.o2k7Skin span.mce_undo {background-position:-160px 0} +.o2k7Skin span.mce_redo {background-position:-100px 0} +.o2k7Skin span.mce_cleanup {background-position:-40px 0} +.o2k7Skin span.mce_bullist {background-position:-20px 0} +.o2k7Skin span.mce_numlist {background-position:-80px 0} +.o2k7Skin span.mce_justifyleft {background-position:-460px 0} +.o2k7Skin span.mce_justifyright {background-position:-480px 0} +.o2k7Skin span.mce_justifycenter {background-position:-420px 0} +.o2k7Skin span.mce_justifyfull {background-position:-440px 0} +.o2k7Skin span.mce_anchor {background-position:-200px 0} +.o2k7Skin span.mce_indent {background-position:-400px 0} +.o2k7Skin span.mce_outdent {background-position:-540px 0} +.o2k7Skin span.mce_link {background-position:-500px 0} +.o2k7Skin span.mce_unlink {background-position:-640px 0} +.o2k7Skin span.mce_sub {background-position:-600px 0} +.o2k7Skin span.mce_sup {background-position:-620px 0} +.o2k7Skin span.mce_removeformat {background-position:-580px 0} +.o2k7Skin span.mce_newdocument {background-position:-520px 0} +.o2k7Skin span.mce_image {background-position:-380px 0} +.o2k7Skin span.mce_help {background-position:-340px 0} +.o2k7Skin span.mce_code {background-position:-260px 0} +.o2k7Skin span.mce_hr {background-position:-360px 0} +.o2k7Skin span.mce_visualaid {background-position:-660px 0} +.o2k7Skin span.mce_charmap {background-position:-240px 0} +.o2k7Skin span.mce_paste {background-position:-560px 0} +.o2k7Skin span.mce_copy {background-position:-700px 0} +.o2k7Skin span.mce_cut {background-position:-680px 0} +.o2k7Skin span.mce_blockquote {background-position:-220px 0} +.o2k7Skin .mce_forecolor span.mceAction {background-position:-720px 0} +.o2k7Skin .mce_backcolor span.mceAction {background-position:-760px 0} +.o2k7Skin span.mce_forecolorpicker {background-position:-720px 0} +.o2k7Skin span.mce_backcolorpicker {background-position:-760px 0} + +/* Plugins */ +.o2k7Skin span.mce_advhr {background-position:-0px -20px} +.o2k7Skin span.mce_ltr {background-position:-20px -20px} +.o2k7Skin span.mce_rtl {background-position:-40px -20px} +.o2k7Skin span.mce_emotions {background-position:-60px -20px} +.o2k7Skin span.mce_fullpage {background-position:-80px -20px} +.o2k7Skin span.mce_fullscreen {background-position:-100px -20px} +.o2k7Skin span.mce_iespell {background-position:-120px -20px} +.o2k7Skin span.mce_insertdate {background-position:-140px -20px} +.o2k7Skin span.mce_inserttime {background-position:-160px -20px} +.o2k7Skin span.mce_absolute {background-position:-180px -20px} +.o2k7Skin span.mce_backward {background-position:-200px -20px} +.o2k7Skin span.mce_forward {background-position:-220px -20px} +.o2k7Skin span.mce_insert_layer {background-position:-240px -20px} +.o2k7Skin span.mce_insertlayer {background-position:-260px -20px} +.o2k7Skin span.mce_movebackward {background-position:-280px -20px} +.o2k7Skin span.mce_moveforward {background-position:-300px -20px} +.o2k7Skin span.mce_media {background-position:-320px -20px} +.o2k7Skin span.mce_nonbreaking {background-position:-340px -20px} +.o2k7Skin span.mce_pastetext {background-position:-360px -20px} +.o2k7Skin span.mce_pasteword {background-position:-380px -20px} +.o2k7Skin span.mce_selectall {background-position:-400px -20px} +.o2k7Skin span.mce_preview {background-position:-420px -20px} +.o2k7Skin span.mce_print {background-position:-440px -20px} +.o2k7Skin span.mce_cancel {background-position:-460px -20px} +.o2k7Skin span.mce_save {background-position:-480px -20px} +.o2k7Skin span.mce_replace {background-position:-500px -20px} +.o2k7Skin span.mce_search {background-position:-520px -20px} +.o2k7Skin span.mce_styleprops {background-position:-560px -20px} +.o2k7Skin span.mce_table {background-position:-580px -20px} +.o2k7Skin span.mce_cell_props {background-position:-600px -20px} +.o2k7Skin span.mce_delete_table {background-position:-620px -20px} +.o2k7Skin span.mce_delete_col {background-position:-640px -20px} +.o2k7Skin span.mce_delete_row {background-position:-660px -20px} +.o2k7Skin span.mce_col_after {background-position:-680px -20px} +.o2k7Skin span.mce_col_before {background-position:-700px -20px} +.o2k7Skin span.mce_row_after {background-position:-720px -20px} +.o2k7Skin span.mce_row_before {background-position:-740px -20px} +.o2k7Skin span.mce_merge_cells {background-position:-760px -20px} +.o2k7Skin span.mce_table_props {background-position:-980px -20px} +.o2k7Skin span.mce_row_props {background-position:-780px -20px} +.o2k7Skin span.mce_split_cells {background-position:-800px -20px} +.o2k7Skin span.mce_template {background-position:-820px -20px} +.o2k7Skin span.mce_visualchars {background-position:-840px -20px} +.o2k7Skin span.mce_abbr {background-position:-860px -20px} +.o2k7Skin span.mce_acronym {background-position:-880px -20px} +.o2k7Skin span.mce_attribs {background-position:-900px -20px} +.o2k7Skin span.mce_cite {background-position:-920px -20px} +.o2k7Skin span.mce_del {background-position:-940px -20px} +.o2k7Skin span.mce_ins {background-position:-960px -20px} +.o2k7Skin span.mce_pagebreak {background-position:0 -40px} +.o2k7Skin span.mce_restoredraft {background-position:-20px -40px} +.o2k7Skin span.mce_spellchecker {background-position:-540px -20px} +.o2k7Skin span.mce_visualblocks {background-position: -40px -40px} diff --git a/askbot/skins/default/media/js/tinymce/themes/advanced/skins/o2k7/ui_black.css b/askbot/skins/default/media/js/tinymce/themes/advanced/skins/o2k7/ui_black.css new file mode 100644 index 00000000..50c9b76a --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/themes/advanced/skins/o2k7/ui_black.css @@ -0,0 +1,8 @@ +/* Black */ +.o2k7SkinBlack .mceToolbar .mceToolbarStart span, .o2k7SkinBlack .mceToolbar .mceToolbarEnd span, .o2k7SkinBlack .mceButton, .o2k7SkinBlack .mceSplitButton, .o2k7SkinBlack .mceSeparator, .o2k7SkinBlack .mceSplitButton a.mceOpen, .o2k7SkinBlack .mceListBox a.mceOpen {background-image:url(img/button_bg_black.png)} +.o2k7SkinBlack td.mceToolbar, .o2k7SkinBlack td.mceStatusbar, .o2k7SkinBlack .mceMenuItemTitle a, .o2k7SkinBlack .mceMenuItemTitle span.mceText, .o2k7SkinBlack .mceStatusbar div, .o2k7SkinBlack .mceStatusbar span, .o2k7SkinBlack .mceStatusbar a {background:#535353; color:#FFF} +.o2k7SkinBlack table.mceListBoxEnabled .mceText, o2k7SkinBlack .mceListBox .mceText {background:#FFF; border:1px solid #CBCFD4; border-bottom-color:#989FA9; border-right:0} +.o2k7SkinBlack table.mceListBoxEnabled:hover .mceText, .o2k7SkinBlack .mceListBoxHover .mceText, .o2k7SkinBlack .mceListBoxSelected .mceText {background:#FFF; border:1px solid #FFBD69; border-right:0} +.o2k7SkinBlack .mceExternalToolbar, .o2k7SkinBlack .mceListBox .mceText, .o2k7SkinBlack div.mceMenu, .o2k7SkinBlack table.mceLayout, .o2k7SkinBlack .mceMenuItemTitle a, .o2k7SkinBlack table.mceLayout tr.mceFirst td, .o2k7SkinBlack table.mceLayout, .o2k7SkinBlack .mceMenuItemTitle a, .o2k7SkinBlack table.mceLayout tr.mceLast td, .o2k7SkinBlack .mceIframeContainer {border-color: #535353;} +.o2k7SkinBlack table.mceSplitButtonEnabled:hover a.mceAction, .o2k7SkinBlack .mceSplitButtonHover a.mceAction, .o2k7SkinBlack .mceSplitButtonSelected {background-image:url(img/button_bg_black.png)} +.o2k7SkinBlack .mceMenu .mceMenuItemEnabled a:hover, .o2k7SkinBlack .mceMenu .mceMenuItemActive {background-color:#FFE7A1} \ No newline at end of file diff --git a/askbot/skins/default/media/js/tinymce/themes/advanced/skins/o2k7/ui_silver.css b/askbot/skins/default/media/js/tinymce/themes/advanced/skins/o2k7/ui_silver.css new file mode 100644 index 00000000..960a8e47 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/themes/advanced/skins/o2k7/ui_silver.css @@ -0,0 +1,5 @@ +/* Silver */ +.o2k7SkinSilver .mceToolbar .mceToolbarStart span, .o2k7SkinSilver .mceButton, .o2k7SkinSilver .mceSplitButton, .o2k7SkinSilver .mceSeparator, .o2k7SkinSilver .mceSplitButton a.mceOpen, .o2k7SkinSilver .mceListBox a.mceOpen {background-image:url(img/button_bg_silver.png)} +.o2k7SkinSilver td.mceToolbar, .o2k7SkinSilver td.mceStatusbar, .o2k7SkinSilver .mceMenuItemTitle a {background:#eee} +.o2k7SkinSilver .mceListBox .mceText {background:#FFF} +.o2k7SkinSilver .mceExternalToolbar, .o2k7SkinSilver .mceListBox .mceText, .o2k7SkinSilver div.mceMenu, .o2k7SkinSilver table.mceLayout, .o2k7SkinSilver .mceMenuItemTitle a, .o2k7SkinSilver table.mceLayout tr.mceFirst td, .o2k7SkinSilver table.mceLayout, .o2k7SkinSilver .mceMenuItemTitle a, .o2k7SkinSilver table.mceLayout tr.mceLast td, .o2k7SkinSilver .mceIframeContainer {border-color: #bbb} diff --git a/askbot/skins/default/media/js/tinymce/themes/advanced/source_editor.htm b/askbot/skins/default/media/js/tinymce/themes/advanced/source_editor.htm new file mode 100644 index 00000000..dd973fcc --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/themes/advanced/source_editor.htm @@ -0,0 +1,25 @@ + + + {#advanced_dlg.code_title} + + + + +
          +
          + +
          + +
          + +
          + + + +
          + + +
          +
          + + diff --git a/askbot/skins/default/media/js/tinymce/themes/simple/editor_template.js b/askbot/skins/default/media/js/tinymce/themes/simple/editor_template.js new file mode 100644 index 00000000..4b3209cc --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/themes/simple/editor_template.js @@ -0,0 +1 @@ +(function(){var a=tinymce.DOM;tinymce.ThemeManager.requireLangPack("simple");tinymce.create("tinymce.themes.SimpleTheme",{init:function(c,d){var e=this,b=["Bold","Italic","Underline","Strikethrough","InsertUnorderedList","InsertOrderedList"],f=c.settings;e.editor=c;c.contentCSS.push(d+"/skins/"+f.skin+"/content.css");c.onInit.add(function(){c.onNodeChange.add(function(h,g){tinymce.each(b,function(i){g.get(i.toLowerCase()).setActive(h.queryCommandState(i))})})});a.loadCSS((f.editor_css?c.documentBaseURI.toAbsolute(f.editor_css):"")||d+"/skins/"+f.skin+"/ui.css")},renderUI:function(h){var e=this,i=h.targetNode,b,c,d=e.editor,f=d.controlManager,g;i=a.insertAfter(a.create("span",{id:d.id+"_container","class":"mceEditor "+d.settings.skin+"SimpleSkin"}),i);i=g=a.add(i,"table",{cellPadding:0,cellSpacing:0,"class":"mceLayout"});i=c=a.add(i,"tbody");i=a.add(c,"tr");i=b=a.add(a.add(i,"td"),"div",{"class":"mceIframeContainer"});i=a.add(a.add(c,"tr",{"class":"last"}),"td",{"class":"mceToolbar mceLast",align:"center"});c=e.toolbar=f.createToolbar("tools1");c.add(f.createButton("bold",{title:"simple.bold_desc",cmd:"Bold"}));c.add(f.createButton("italic",{title:"simple.italic_desc",cmd:"Italic"}));c.add(f.createButton("underline",{title:"simple.underline_desc",cmd:"Underline"}));c.add(f.createButton("strikethrough",{title:"simple.striketrough_desc",cmd:"Strikethrough"}));c.add(f.createSeparator());c.add(f.createButton("undo",{title:"simple.undo_desc",cmd:"Undo"}));c.add(f.createButton("redo",{title:"simple.redo_desc",cmd:"Redo"}));c.add(f.createSeparator());c.add(f.createButton("cleanup",{title:"simple.cleanup_desc",cmd:"mceCleanup"}));c.add(f.createSeparator());c.add(f.createButton("insertunorderedlist",{title:"simple.bullist_desc",cmd:"InsertUnorderedList"}));c.add(f.createButton("insertorderedlist",{title:"simple.numlist_desc",cmd:"InsertOrderedList"}));c.renderTo(i);return{iframeContainer:b,editorContainer:d.id+"_container",sizeContainer:g,deltaHeight:-20}},getInfo:function(){return{longname:"Simple theme",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.ThemeManager.add("simple",tinymce.themes.SimpleTheme)})(); \ No newline at end of file diff --git a/askbot/skins/default/media/js/tinymce/themes/simple/editor_template_src.js b/askbot/skins/default/media/js/tinymce/themes/simple/editor_template_src.js new file mode 100644 index 00000000..01ce87c5 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/themes/simple/editor_template_src.js @@ -0,0 +1,84 @@ +/** + * editor_template_src.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +(function() { + var DOM = tinymce.DOM; + + // Tell it to load theme specific language pack(s) + tinymce.ThemeManager.requireLangPack('simple'); + + tinymce.create('tinymce.themes.SimpleTheme', { + init : function(ed, url) { + var t = this, states = ['Bold', 'Italic', 'Underline', 'Strikethrough', 'InsertUnorderedList', 'InsertOrderedList'], s = ed.settings; + + t.editor = ed; + ed.contentCSS.push(url + "/skins/" + s.skin + "/content.css"); + + ed.onInit.add(function() { + ed.onNodeChange.add(function(ed, cm) { + tinymce.each(states, function(c) { + cm.get(c.toLowerCase()).setActive(ed.queryCommandState(c)); + }); + }); + }); + + DOM.loadCSS((s.editor_css ? ed.documentBaseURI.toAbsolute(s.editor_css) : '') || url + "/skins/" + s.skin + "/ui.css"); + }, + + renderUI : function(o) { + var t = this, n = o.targetNode, ic, tb, ed = t.editor, cf = ed.controlManager, sc; + + n = DOM.insertAfter(DOM.create('span', {id : ed.id + '_container', 'class' : 'mceEditor ' + ed.settings.skin + 'SimpleSkin'}), n); + n = sc = DOM.add(n, 'table', {cellPadding : 0, cellSpacing : 0, 'class' : 'mceLayout'}); + n = tb = DOM.add(n, 'tbody'); + + // Create iframe container + n = DOM.add(tb, 'tr'); + n = ic = DOM.add(DOM.add(n, 'td'), 'div', {'class' : 'mceIframeContainer'}); + + // Create toolbar container + n = DOM.add(DOM.add(tb, 'tr', {'class' : 'last'}), 'td', {'class' : 'mceToolbar mceLast', align : 'center'}); + + // Create toolbar + tb = t.toolbar = cf.createToolbar("tools1"); + tb.add(cf.createButton('bold', {title : 'simple.bold_desc', cmd : 'Bold'})); + tb.add(cf.createButton('italic', {title : 'simple.italic_desc', cmd : 'Italic'})); + tb.add(cf.createButton('underline', {title : 'simple.underline_desc', cmd : 'Underline'})); + tb.add(cf.createButton('strikethrough', {title : 'simple.striketrough_desc', cmd : 'Strikethrough'})); + tb.add(cf.createSeparator()); + tb.add(cf.createButton('undo', {title : 'simple.undo_desc', cmd : 'Undo'})); + tb.add(cf.createButton('redo', {title : 'simple.redo_desc', cmd : 'Redo'})); + tb.add(cf.createSeparator()); + tb.add(cf.createButton('cleanup', {title : 'simple.cleanup_desc', cmd : 'mceCleanup'})); + tb.add(cf.createSeparator()); + tb.add(cf.createButton('insertunorderedlist', {title : 'simple.bullist_desc', cmd : 'InsertUnorderedList'})); + tb.add(cf.createButton('insertorderedlist', {title : 'simple.numlist_desc', cmd : 'InsertOrderedList'})); + tb.renderTo(n); + + return { + iframeContainer : ic, + editorContainer : ed.id + '_container', + sizeContainer : sc, + deltaHeight : -20 + }; + }, + + getInfo : function() { + return { + longname : 'Simple theme', + author : 'Moxiecode Systems AB', + authorurl : 'http://tinymce.moxiecode.com', + version : tinymce.majorVersion + "." + tinymce.minorVersion + } + } + }); + + tinymce.ThemeManager.add('simple', tinymce.themes.SimpleTheme); +})(); \ No newline at end of file diff --git a/askbot/skins/default/media/js/tinymce/themes/simple/img/icons.gif b/askbot/skins/default/media/js/tinymce/themes/simple/img/icons.gif new file mode 100644 index 00000000..6fcbcb5d Binary files /dev/null and b/askbot/skins/default/media/js/tinymce/themes/simple/img/icons.gif differ diff --git a/askbot/skins/default/media/js/tinymce/themes/simple/langs/en.js b/askbot/skins/default/media/js/tinymce/themes/simple/langs/en.js new file mode 100644 index 00000000..088ed0fc --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/themes/simple/langs/en.js @@ -0,0 +1 @@ +tinyMCE.addI18n('en.simple',{"cleanup_desc":"Cleanup Messy Code","redo_desc":"Redo (Ctrl+Y)","undo_desc":"Undo (Ctrl+Z)","numlist_desc":"Insert/Remove Numbered List","bullist_desc":"Insert/Remove Bulleted List","striketrough_desc":"Strikethrough","underline_desc":"Underline (Ctrl+U)","italic_desc":"Italic (Ctrl+I)","bold_desc":"Bold (Ctrl+B)"}); \ No newline at end of file diff --git a/askbot/skins/default/media/js/tinymce/themes/simple/skins/default/content.css b/askbot/skins/default/media/js/tinymce/themes/simple/skins/default/content.css new file mode 100644 index 00000000..2506c807 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/themes/simple/skins/default/content.css @@ -0,0 +1,25 @@ +body, td, pre { + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 10px; +} + +body { + background-color: #FFFFFF; +} + +.mceVisualAid { + border: 1px dashed #BBBBBB; +} + +/* MSIE specific */ + +* html body { + scrollbar-3dlight-color: #F0F0EE; + scrollbar-arrow-color: #676662; + scrollbar-base-color: #F0F0EE; + scrollbar-darkshadow-color: #DDDDDD; + scrollbar-face-color: #E0E0DD; + scrollbar-highlight-color: #F0F0EE; + scrollbar-shadow-color: #F0F0EE; + scrollbar-track-color: #F5F5F5; +} diff --git a/askbot/skins/default/media/js/tinymce/themes/simple/skins/default/ui.css b/askbot/skins/default/media/js/tinymce/themes/simple/skins/default/ui.css new file mode 100644 index 00000000..076fe84e --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/themes/simple/skins/default/ui.css @@ -0,0 +1,32 @@ +/* Reset */ +.defaultSimpleSkin table, .defaultSimpleSkin tbody, .defaultSimpleSkin a, .defaultSimpleSkin img, .defaultSimpleSkin tr, .defaultSimpleSkin div, .defaultSimpleSkin td, .defaultSimpleSkin iframe, .defaultSimpleSkin span, .defaultSimpleSkin * {border:0; margin:0; padding:0; background:transparent; white-space:nowrap; text-decoration:none; font-weight:normal; cursor:default; color:#000} + +/* Containers */ +.defaultSimpleSkin {position:relative} +.defaultSimpleSkin table.mceLayout {background:#F0F0EE; border:1px solid #CCC;} +.defaultSimpleSkin iframe {display:block; background:#FFF; border-bottom:1px solid #CCC;} +.defaultSimpleSkin .mceToolbar {height:24px;} + +/* Layout */ +.defaultSimpleSkin span.mceIcon, .defaultSimpleSkin img.mceIcon {display:block; width:20px; height:20px} +.defaultSimpleSkin .mceIcon {background:url(../../img/icons.gif) no-repeat 20px 20px} + +/* Button */ +.defaultSimpleSkin .mceButton {display:block; border:1px solid #F0F0EE; width:20px; height:20px} +.defaultSimpleSkin a.mceButtonEnabled:hover {border:1px solid #0A246A; background-color:#B2BBD0} +.defaultSimpleSkin a.mceButtonActive {border:1px solid #0A246A; background-color:#C2CBE0} +.defaultSimpleSkin .mceButtonDisabled span {opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)} + +/* Separator */ +.defaultSimpleSkin .mceSeparator {display:block; background:url(../../img/icons.gif) -180px 0; width:2px; height:20px; margin:0 2px 0 4px} + +/* Theme */ +.defaultSimpleSkin span.mce_bold {background-position:0 0} +.defaultSimpleSkin span.mce_italic {background-position:-60px 0} +.defaultSimpleSkin span.mce_underline {background-position:-140px 0} +.defaultSimpleSkin span.mce_strikethrough {background-position:-120px 0} +.defaultSimpleSkin span.mce_undo {background-position:-160px 0} +.defaultSimpleSkin span.mce_redo {background-position:-100px 0} +.defaultSimpleSkin span.mce_cleanup {background-position:-40px 0} +.defaultSimpleSkin span.mce_insertunorderedlist {background-position:-20px 0} +.defaultSimpleSkin span.mce_insertorderedlist {background-position:-80px 0} diff --git a/askbot/skins/default/media/js/tinymce/themes/simple/skins/o2k7/content.css b/askbot/skins/default/media/js/tinymce/themes/simple/skins/o2k7/content.css new file mode 100644 index 00000000..595809fa --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/themes/simple/skins/o2k7/content.css @@ -0,0 +1,17 @@ +body, td, pre {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;} + +body {background: #FFF;} +.mceVisualAid {border: 1px dashed #BBB;} + +/* IE */ + +* html body { +scrollbar-3dlight-color: #F0F0EE; +scrollbar-arrow-color: #676662; +scrollbar-base-color: #F0F0EE; +scrollbar-darkshadow-color: #DDDDDD; +scrollbar-face-color: #E0E0DD; +scrollbar-highlight-color: #F0F0EE; +scrollbar-shadow-color: #F0F0EE; +scrollbar-track-color: #F5F5F5; +} diff --git a/askbot/skins/default/media/js/tinymce/themes/simple/skins/o2k7/img/button_bg.png b/askbot/skins/default/media/js/tinymce/themes/simple/skins/o2k7/img/button_bg.png new file mode 100644 index 00000000..527e3495 Binary files /dev/null and b/askbot/skins/default/media/js/tinymce/themes/simple/skins/o2k7/img/button_bg.png differ diff --git a/askbot/skins/default/media/js/tinymce/themes/simple/skins/o2k7/ui.css b/askbot/skins/default/media/js/tinymce/themes/simple/skins/o2k7/ui.css new file mode 100644 index 00000000..cf6c35d1 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/themes/simple/skins/o2k7/ui.css @@ -0,0 +1,35 @@ +/* Reset */ +.o2k7SimpleSkin table, .o2k7SimpleSkin tbody, .o2k7SimpleSkin a, .o2k7SimpleSkin img, .o2k7SimpleSkin tr, .o2k7SimpleSkin div, .o2k7SimpleSkin td, .o2k7SimpleSkin iframe, .o2k7SimpleSkin span, .o2k7SimpleSkin * {border:0; margin:0; padding:0; background:transparent; white-space:nowrap; text-decoration:none; font-weight:normal; cursor:default; color:#000} + +/* Containers */ +.o2k7SimpleSkin {position:relative} +.o2k7SimpleSkin table.mceLayout {background:#E5EFFD; border:1px solid #ABC6DD;} +.o2k7SimpleSkin iframe {display:block; background:#FFF; border-bottom:1px solid #ABC6DD;} +.o2k7SimpleSkin .mceToolbar {height:26px;} + +/* Layout */ +.o2k7SimpleSkin .mceToolbar .mceToolbarStart span {display:block; background:url(img/button_bg.png) -22px 0; width:1px; height:22px; } +.o2k7SimpleSkin .mceToolbar .mceToolbarEnd span {display:block; background:url(img/button_bg.png) -22px 0; width:1px; height:22px} +.o2k7SimpleSkin span.mceIcon, .o2k7SimpleSkin img.mceIcon {display:block; width:20px; height:20px} +.o2k7SimpleSkin .mceIcon {background:url(../../img/icons.gif) no-repeat 20px 20px} + +/* Button */ +.o2k7SimpleSkin .mceButton {display:block; background:url(img/button_bg.png); width:22px; height:22px} +.o2k7SimpleSkin a.mceButton span, .o2k7SimpleSkin a.mceButton img {margin:1px 0 0 1px} +.o2k7SimpleSkin a.mceButtonEnabled:hover {background-color:#B2BBD0; background-position:0 -22px} +.o2k7SimpleSkin a.mceButtonActive {background-position:0 -44px} +.o2k7SimpleSkin .mceButtonDisabled span {opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)} + +/* Separator */ +.o2k7SimpleSkin .mceSeparator {display:block; background:url(img/button_bg.png) -22px 0; width:5px; height:22px} + +/* Theme */ +.o2k7SimpleSkin span.mce_bold {background-position:0 0} +.o2k7SimpleSkin span.mce_italic {background-position:-60px 0} +.o2k7SimpleSkin span.mce_underline {background-position:-140px 0} +.o2k7SimpleSkin span.mce_strikethrough {background-position:-120px 0} +.o2k7SimpleSkin span.mce_undo {background-position:-160px 0} +.o2k7SimpleSkin span.mce_redo {background-position:-100px 0} +.o2k7SimpleSkin span.mce_cleanup {background-position:-40px 0} +.o2k7SimpleSkin span.mce_insertunorderedlist {background-position:-20px 0} +.o2k7SimpleSkin span.mce_insertorderedlist {background-position:-80px 0} diff --git a/askbot/skins/default/media/js/tinymce/tiny_mce.js b/askbot/skins/default/media/js/tinymce/tiny_mce.js new file mode 100644 index 00000000..ef712d82 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/tiny_mce.js @@ -0,0 +1 @@ +(function(e){var a=/^\s*|\s*$/g,b,d="B".replace(/A(.)|B/,"$1")==="$1";var c={majorVersion:"3",minorVersion:"5.3",releaseDate:"2012-06-19",_init:function(){var s=this,q=document,o=navigator,g=o.userAgent,m,f,l,k,j,r;s.isOpera=e.opera&&opera.buildNumber;s.isWebKit=/WebKit/.test(g);s.isIE=!s.isWebKit&&!s.isOpera&&(/MSIE/gi).test(g)&&(/Explorer/gi).test(o.appName);s.isIE6=s.isIE&&/MSIE [56]/.test(g);s.isIE7=s.isIE&&/MSIE [7]/.test(g);s.isIE8=s.isIE&&/MSIE [8]/.test(g);s.isIE9=s.isIE&&/MSIE [9]/.test(g);s.isGecko=!s.isWebKit&&/Gecko/.test(g);s.isMac=g.indexOf("Mac")!=-1;s.isAir=/adobeair/i.test(g);s.isIDevice=/(iPad|iPhone)/.test(g);s.isIOS5=s.isIDevice&&g.match(/AppleWebKit\/(\d*)/)[1]>=534;if(e.tinyMCEPreInit){s.suffix=tinyMCEPreInit.suffix;s.baseURL=tinyMCEPreInit.base;s.query=tinyMCEPreInit.query;return}s.suffix="";f=q.getElementsByTagName("base");for(m=0;m0?b:[f.scope]);if(e===false){break}}a.inDispatch=false;return e}});(function(){var a=tinymce.each;tinymce.create("tinymce.util.URI",{URI:function(e,g){var f=this,i,d,c,h;e=tinymce.trim(e);g=f.settings=g||{};if(/^([\w\-]+):([^\/]{2})/i.test(e)||/^\s*#/.test(e)){f.source=e;return}if(e.indexOf("/")===0&&e.indexOf("//")!==0){e=(g.base_uri?g.base_uri.protocol||"http":"http")+"://mce_host"+e}if(!/^[\w\-]*:?\/\//.test(e)){h=g.base_uri?g.base_uri.path:new tinymce.util.URI(location.href).directory;e=((g.base_uri&&g.base_uri.protocol)||"http")+"://mce_host"+f.toAbsPath(h,e)}e=e.replace(/@@/g,"(mce_at)");e=/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@\/]*):?([^:@\/]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(e);a(["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],function(b,j){var k=e[j];if(k){k=k.replace(/\(mce_at\)/g,"@@")}f[b]=k});c=g.base_uri;if(c){if(!f.protocol){f.protocol=c.protocol}if(!f.userInfo){f.userInfo=c.userInfo}if(!f.port&&f.host==="mce_host"){f.port=c.port}if(!f.host||f.host==="mce_host"){f.host=c.host}f.source=""}},setPath:function(c){var b=this;c=/^(.*?)\/?(\w+)?$/.exec(c);b.path=c[0];b.directory=c[1];b.file=c[2];b.source="";b.getURI()},toRelative:function(b){var d=this,f;if(b==="./"){return b}b=new tinymce.util.URI(b,{base_uri:d});if((b.host!="mce_host"&&d.host!=b.host&&b.host)||d.port!=b.port||d.protocol!=b.protocol){return b.getURI()}var c=d.getURI(),e=b.getURI();if(c==e||(c.charAt(c.length-1)=="/"&&c.substr(0,c.length-1)==e)){return c}f=d.toRelPath(d.path,b.path);if(b.query){f+="?"+b.query}if(b.anchor){f+="#"+b.anchor}return f},toAbsolute:function(b,c){b=new tinymce.util.URI(b,{base_uri:this});return b.getURI(this.host==b.host&&this.protocol==b.protocol?c:0)},toRelPath:function(g,h){var c,f=0,d="",e,b;g=g.substring(0,g.lastIndexOf("/"));g=g.split("/");c=h.split("/");if(g.length>=c.length){for(e=0,b=g.length;e=c.length||g[e]!=c[e]){f=e+1;break}}}if(g.length=g.length||g[e]!=c[e]){f=e+1;break}}}if(f===1){return h}for(e=0,b=g.length-(f-1);e=0;c--){if(f[c].length===0||f[c]==="."){continue}if(f[c]===".."){b++;continue}if(b>0){b--;continue}h.push(f[c])}c=e.length-b;if(c<=0){g=h.reverse().join("/")}else{g=e.slice(0,c).join("/")+"/"+h.reverse().join("/")}if(g.indexOf("/")!==0){g="/"+g}if(d&&g.lastIndexOf("/")!==g.length-1){g+=d}return g},getURI:function(d){var c,b=this;if(!b.source||d){c="";if(!d){if(b.protocol){c+=b.protocol+"://"}if(b.userInfo){c+=b.userInfo+"@"}if(b.host){c+=b.host}if(b.port){c+=":"+b.port}}if(b.path){c+=b.path}if(b.query){c+="?"+b.query}if(b.anchor){c+="#"+b.anchor}b.source=c}return b.source}})})();(function(){var a=tinymce.each;tinymce.create("static tinymce.util.Cookie",{getHash:function(d){var b=this.get(d),c;if(b){a(b.split("&"),function(e){e=e.split("=");c=c||{};c[unescape(e[0])]=unescape(e[1])})}return c},setHash:function(j,b,g,f,i,c){var h="";a(b,function(e,d){h+=(!h?"":"&")+escape(d)+"="+escape(e)});this.set(j,h,g,f,i,c)},get:function(i){var h=document.cookie,g,f=i+"=",d;if(!h){return}d=h.indexOf("; "+f);if(d==-1){d=h.indexOf(f);if(d!==0){return null}}else{d+=2}g=h.indexOf(";",d);if(g==-1){g=h.length}return unescape(h.substring(d+f.length,g))},set:function(i,b,g,f,h,c){document.cookie=i+"="+escape(b)+((g)?"; expires="+g.toGMTString():"")+((f)?"; path="+escape(f):"")+((h)?"; domain="+h:"")+((c)?"; secure":"")},remove:function(c,e,d){var b=new Date();b.setTime(b.getTime()-1000);this.set(c,"",b,e,d)}})})();(function(){function serialize(o,quote){var i,v,t,name;quote=quote||'"';if(o==null){return"null"}t=typeof o;if(t=="string"){v="\bb\tt\nn\ff\rr\"\"''\\\\";return quote+o.replace(/([\u0080-\uFFFF\x00-\x1f\"\'\\])/g,function(a,b){if(quote==='"'&&a==="'"){return a}i=v.indexOf(b);if(i+1){return"\\"+v.charAt(i+1)}a=b.charCodeAt().toString(16);return"\\u"+"0000".substring(a.length)+a})+quote}if(t=="object"){if(o.hasOwnProperty&&o instanceof Array){for(i=0,v="[";i0?",":"")+serialize(o[i],quote)}return v+"]"}v="{";for(name in o){if(o.hasOwnProperty(name)){v+=typeof o[name]!="function"?(v.length>1?","+quote:quote)+name+quote+":"+serialize(o[name],quote):""}}return v+"}"}return""+o}tinymce.util.JSON={serialize:serialize,parse:function(s){try{return eval("("+s+")")}catch(ex){}}}})();tinymce.create("static tinymce.util.XHR",{send:function(g){var a,e,b=window,h=0;function f(){if(!g.async||a.readyState==4||h++>10000){if(g.success&&h<10000&&a.status==200){g.success.call(g.success_scope,""+a.responseText,a,g)}else{if(g.error){g.error.call(g.error_scope,h>10000?"TIMED_OUT":"GENERAL",a,g)}}a=null}else{b.setTimeout(f,10)}}g.scope=g.scope||this;g.success_scope=g.success_scope||g.scope;g.error_scope=g.error_scope||g.scope;g.async=g.async===false?false:true;g.data=g.data||"";function d(i){a=0;try{a=new ActiveXObject(i)}catch(c){}return a}a=b.XMLHttpRequest?new XMLHttpRequest():d("Microsoft.XMLHTTP")||d("Msxml2.XMLHTTP");if(a){if(a.overrideMimeType){a.overrideMimeType(g.content_type)}a.open(g.type||(g.data?"POST":"GET"),g.url,g.async);if(g.content_type){a.setRequestHeader("Content-Type",g.content_type)}a.setRequestHeader("X-Requested-With","XMLHttpRequest");a.send(g.data);if(!g.async){return f()}e=b.setTimeout(f,10)}}});(function(){var c=tinymce.extend,b=tinymce.util.JSON,a=tinymce.util.XHR;tinymce.create("tinymce.util.JSONRequest",{JSONRequest:function(d){this.settings=c({},d);this.count=0},send:function(f){var e=f.error,d=f.success;f=c(this.settings,f);f.success=function(h,g){h=b.parse(h);if(typeof(h)=="undefined"){h={error:"JSON Parse error."}}if(h.error){e.call(f.error_scope||f.scope,h.error,g)}else{d.call(f.success_scope||f.scope,h.result)}};f.error=function(h,g){if(e){e.call(f.error_scope||f.scope,h,g)}};f.data=b.serialize({id:f.id||"c"+(this.count++),method:f.method,params:f.params});f.content_type="application/json";a.send(f)},"static":{sendRPC:function(d){return new tinymce.util.JSONRequest().send(d)}}})}());(function(a){a.VK={BACKSPACE:8,DELETE:46,DOWN:40,ENTER:13,LEFT:37,RIGHT:39,SPACEBAR:32,TAB:9,UP:38,modifierPressed:function(b){return b.shiftKey||b.ctrlKey||b.altKey}}})(tinymce);tinymce.util.Quirks=function(d){var l=tinymce.VK,s=l.BACKSPACE,t=l.DELETE,o=d.dom,C=d.selection,r=d.settings;function c(G,F){try{d.getDoc().execCommand(G,false,F)}catch(E){}}function x(){var E=d.getDoc().documentMode;return E?E:6}function i(){function E(H){var F,J,G,I;F=C.getRng();J=o.getParent(F.startContainer,o.isBlock);if(H){J=o.getNext(J,o.isBlock)}if(J){G=J.firstChild;while(G&&G.nodeType==3&&G.nodeValue.length===0){G=G.nextSibling}if(G&&G.nodeName==="SPAN"){I=G.cloneNode(false)}}d.getDoc().execCommand(H?"ForwardDelete":"Delete",false,null);J=o.getParent(F.startContainer,o.isBlock);tinymce.each(o.select("span.Apple-style-span,font.Apple-style-span",J),function(K){var L=C.getBookmark();if(I){o.replace(I.cloneNode(false),K,true)}else{o.remove(K,true)}C.moveToBookmark(L)})}d.onKeyDown.add(function(F,H){var G;G=H.keyCode==t;if(!H.isDefaultPrevented()&&(G||H.keyCode==s)&&!l.modifierPressed(H)){H.preventDefault();E(G)}});d.addCommand("Delete",function(){E()})}function D(){function F(H,K){var G,J,I=K?"start":"end";G=H[I+"Container"];J=H[I+"Offset"];if(G.nodeType==1&&G.hasChildNodes()){G=G.childNodes[Math.min(K?J:(J>0?J-1:0),G.childNodes.length-1)]}return G}function E(J,N){var I,M,H,K,L=N?"start":"end",G;I=J[L+"Container"];M=J[L+"Offset"];H=o.getRoot();if(I.nodeType==1){G=M>=I.childNodes.length;I=F(J,N);if(I.nodeType==3){M=N&&!G?0:I.nodeValue.length}}if(I.nodeType==3&&((N&&M>0)||(!N&&M7){return}c("RespectVisibilityInDesign",true);d.contentStyles.push(".mceHideBrInPre pre br {display: none}");o.addClass(d.getBody(),"mceHideBrInPre");d.parser.addNodeFilter("pre",function(E,G){var H=E.length,J,F,K,I;while(H--){J=E[H].getAll("br");F=J.length;while(F--){K=J[F];I=K.prev;if(I&&I.type===3&&I.value.charAt(I.value-1)!="\n"){I.value+="\n"}else{K.parent.insert(new tinymce.html.Node("#text",3),K,true).value="\n"}}}});d.serializer.addNodeFilter("pre",function(E,G){var H=E.length,J,F,K,I;while(H--){J=E[H].getAll("br");F=J.length;while(F--){K=J[F];I=K.prev;if(I&&I.type==3){I.value=I.value.replace(/\r?\n$/,"")}}}})}function f(){o.bind(d.getBody(),"mouseup",function(G){var F,E=C.getNode();if(E.nodeName=="IMG"){if(F=o.getStyle(E,"width")){o.setAttrib(E,"width",F.replace(/[^0-9%]+/g,""));o.setStyle(E,"width","")}if(F=o.getStyle(E,"height")){o.setAttrib(E,"height",F.replace(/[^0-9%]+/g,""));o.setStyle(E,"height","")}}})}function q(){d.onKeyDown.add(function(K,L){var J,E,F,H,I,M,G;J=L.keyCode==t;if(!L.isDefaultPrevented()&&(J||L.keyCode==s)&&!l.modifierPressed(L)){E=C.getRng();F=E.startContainer;H=E.startOffset;G=E.collapsed;if(F.nodeType==3&&F.nodeValue.length>0&&((H===0&&!G)||(G&&H===(J?0:1)))){nonEmptyElements=K.schema.getNonEmptyElements();L.preventDefault();I=o.create("br",{id:"__tmp"});F.parentNode.insertBefore(I,F);K.getDoc().execCommand(J?"ForwardDelete":"Delete",false,null);F=C.getRng().startContainer;M=F.previousSibling;if(M&&M.nodeType==1&&!o.isBlock(M)&&o.isEmpty(M)&&!nonEmptyElements[M.nodeName.toLowerCase()]){o.remove(M)}o.remove("__tmp")}}})}function e(){d.onKeyDown.add(function(I,J){var G,F,K,E,H;if(J.isDefaultPrevented()||J.keyCode!=l.BACKSPACE){return}G=C.getRng();F=G.startContainer;K=G.startOffset;E=o.getRoot();H=F;if(!G.collapsed||K!==0){return}while(H&&H.parentNode&&H.parentNode.firstChild==H&&H.parentNode!=E){H=H.parentNode}if(H.tagName==="BLOCKQUOTE"){I.formatter.toggle("blockquote",null,H);G.setStart(F,0);G.setEnd(F,0);C.setRng(G);C.collapse(false)}})}function k(){function E(){d._refreshContentEditable();c("StyleWithCSS",false);c("enableInlineTableEditing",false);if(!r.object_resizing){c("enableObjectResizing",false)}}if(!r.readonly){d.onBeforeExecCommand.add(E);d.onMouseDown.add(E)}}function n(){function E(F,G){tinymce.each(o.select("a"),function(J){var H=J.parentNode,I=o.getRoot();if(H.lastChild===J){while(H&&!o.isBlock(H)){if(H.parentNode.lastChild!==H||H===I){return}H=H.parentNode}o.add(H,"br",{"data-mce-bogus":1})}})}d.onExecCommand.add(function(F,G){if(G==="CreateLink"){E(F)}});d.onSetContent.add(C.onSetContent.add(E))}function u(){if(r.forced_root_block){d.onInit.add(function(){c("DefaultParagraphSeparator",r.forced_root_block)})}}function a(){function E(G,F){if(!G||!F.initial){d.execCommand("mceRepaint")}}d.onUndo.add(E);d.onRedo.add(E);d.onSetContent.add(E)}function p(){d.onKeyDown.add(function(F,G){var E;if(!G.isDefaultPrevented()&&G.keyCode==s){E=F.getDoc().selection.createRange();if(E&&E.item){G.preventDefault();F.undoManager.beforeChange();o.remove(E.item(0));F.undoManager.add()}}})}function h(){var E;if(x()>=10){E="";tinymce.each("p div h1 h2 h3 h4 h5 h6".split(" "),function(F,G){E+=(G>0?",":"")+F+":empty"});d.contentStyles.push(E+"{padding-right: 1px !important}")}}y();e();D();if(tinymce.isWebKit){q();i();v();z();u();if(tinymce.isIDevice){j()}}if(tinymce.isIE){m();B();g();f();p();h()}if(tinymce.isGecko){m();b();A();k();n();a()}};(function(j){var a,g,d,k=/[&<>\"\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,b=/[<>&\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,f=/[<>&\"\']/g,c=/&(#x|#)?([\w]+);/g,i={128:"\u20AC",130:"\u201A",131:"\u0192",132:"\u201E",133:"\u2026",134:"\u2020",135:"\u2021",136:"\u02C6",137:"\u2030",138:"\u0160",139:"\u2039",140:"\u0152",142:"\u017D",145:"\u2018",146:"\u2019",147:"\u201C",148:"\u201D",149:"\u2022",150:"\u2013",151:"\u2014",152:"\u02DC",153:"\u2122",154:"\u0161",155:"\u203A",156:"\u0153",158:"\u017E",159:"\u0178"};g={'"':""","'":"'","<":"<",">":">","&":"&"};d={"<":"<",">":">","&":"&",""":'"',"'":"'"};function h(l){var m;m=document.createElement("div");m.innerHTML=l;return m.textContent||m.innerText||l}function e(m,p){var n,o,l,q={};if(m){m=m.split(",");p=p||10;for(n=0;n1){return"&#"+(((n.charCodeAt(0)-55296)*1024)+(n.charCodeAt(1)-56320)+65536)+";"}return g[n]||"&#"+n.charCodeAt(0)+";"})},encodeNamed:function(n,l,m){m=m||a;return n.replace(l?k:b,function(o){return g[o]||m[o]||o})},getEncodeFunc:function(l,o){var p=j.html.Entities;o=e(o)||a;function m(r,q){return r.replace(q?k:b,function(s){return g[s]||o[s]||"&#"+s.charCodeAt(0)+";"||s})}function n(r,q){return p.encodeNamed(r,q,o)}l=j.makeMap(l.replace(/\+/g,","));if(l.named&&l.numeric){return m}if(l.named){if(o){return n}return p.encodeNamed}if(l.numeric){return p.encodeNumeric}return p.encodeRaw},decode:function(l){return l.replace(c,function(n,m,o){if(m){o=parseInt(o,m.length===2?16:10);if(o>65535){o-=65536;return String.fromCharCode(55296+(o>>10),56320+(o&1023))}else{return i[o]||String.fromCharCode(o)}}return d[n]||a[n]||h(n)})}}})(tinymce);tinymce.html.Styles=function(d,f){var k=/rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)/gi,h=/(?:url(?:(?:\(\s*\"([^\"]+)\"\s*\))|(?:\(\s*\'([^\']+)\'\s*\))|(?:\(\s*([^)\s]+)\s*\))))|(?:\'([^\']+)\')|(?:\"([^\"]+)\")/gi,b=/\s*([^:]+):\s*([^;]+);?/g,l=/\s+$/,m=/rgb/,e,g,a={},j;d=d||{};j="\\\" \\' \\; \\: ; : \uFEFF".split(" ");for(g=0;g1?r:"0"+r}return"#"+o(q)+o(p)+o(i)}return{toHex:function(i){return i.replace(k,c)},parse:function(s){var z={},q,n,x,r,v=d.url_converter,y=d.url_converter_scope||this;function p(D,G){var F,C,B,E;F=z[D+"-top"+G];if(!F){return}C=z[D+"-right"+G];if(F!=C){return}B=z[D+"-bottom"+G];if(C!=B){return}E=z[D+"-left"+G];if(B!=E){return}z[D+G]=E;delete z[D+"-top"+G];delete z[D+"-right"+G];delete z[D+"-bottom"+G];delete z[D+"-left"+G]}function u(C){var D=z[C],B;if(!D||D.indexOf(" ")<0){return}D=D.split(" ");B=D.length;while(B--){if(D[B]!==D[0]){return false}}z[C]=D[0];return true}function A(D,C,B,E){if(!u(C)){return}if(!u(B)){return}if(!u(E)){return}z[D]=z[C]+" "+z[B]+" "+z[E];delete z[C];delete z[B];delete z[E]}function t(B){r=true;return a[B]}function i(C,B){if(r){C=C.replace(/\uFEFF[0-9]/g,function(D){return a[D]})}if(!B){C=C.replace(/\\([\'\";:])/g,"$1")}return C}function o(C,B,F,E,G,D){G=G||D;if(G){G=i(G);return"'"+G.replace(/\'/g,"\\'")+"'"}B=i(B||F||E);if(v){B=v.call(y,B,"style")}return"url('"+B.replace(/\'/g,"\\'")+"')"}if(s){s=s.replace(/\\[\"\';:\uFEFF]/g,t).replace(/\"[^\"]+\"|\'[^\']+\'/g,function(B){return B.replace(/[;:]/g,t)});while(q=b.exec(s)){n=q[1].replace(l,"").toLowerCase();x=q[2].replace(l,"");if(n&&x.length>0){if(n==="font-weight"&&x==="700"){x="bold"}else{if(n==="color"||n==="background-color"){x=x.toLowerCase()}}x=x.replace(k,c);x=x.replace(h,o);z[n]=r?i(x,true):x}b.lastIndex=q.index+q[0].length}p("border","");p("border","-width");p("border","-color");p("border","-style");p("padding","");p("margin","");A("border","border-width","border-style","border-color");if(z.border==="medium none"){delete z.border}}return z},serialize:function(p,r){var o="",n,q;function i(t){var x,u,s,v;x=f.styles[t];if(x){for(u=0,s=x.length;u0){o+=(o.length>0?" ":"")+t+": "+v+";"}}}}if(r&&f&&f.styles){i("*");i(r)}else{for(n in p){q=p[n];if(q!==e&&q.length>0){o+=(o.length>0?" ":"")+n+": "+q+";"}}}return o}}};(function(f){var a={},e=f.makeMap,g=f.each;function d(j,i){return j.split(i||",")}function h(m,l){var j,k={};function i(n){return n.replace(/[A-Z]+/g,function(o){return i(m[o])})}for(j in m){if(m.hasOwnProperty(j)){m[j]=i(m[j])}}i(l).replace(/#/g,"#text").replace(/(\w+)\[([^\]]+)\]\[([^\]]*)\]/g,function(q,o,n,p){n=d(n,"|");k[o]={attributes:e(n),attributesOrder:n,children:e(p,"|",{"#comment":{}})}});return k}function b(){var i=a.html5;if(!i){i=a.html5=h({A:"id|accesskey|class|dir|draggable|item|hidden|itemprop|role|spellcheck|style|subject|title",B:"#|a|abbr|area|audio|b|bdo|br|button|canvas|cite|code|command|datalist|del|dfn|em|embed|i|iframe|img|input|ins|kbd|keygen|label|link|map|mark|meta|meter|noscript|object|output|progress|q|ruby|samp|script|select|small|span|strong|sub|sup|svg|textarea|time|var|video|wbr",C:"#|a|abbr|area|address|article|aside|audio|b|bdo|blockquote|br|button|canvas|cite|code|command|datalist|del|details|dfn|dialog|div|dl|em|embed|fieldset|figure|footer|form|h1|h2|h3|h4|h5|h6|header|hgroup|hr|i|iframe|img|input|ins|kbd|keygen|label|link|map|mark|menu|meta|meter|nav|noscript|ol|object|output|p|pre|progress|q|ruby|samp|script|section|select|small|span|strong|style|sub|sup|svg|table|textarea|time|ul|var|video"},"html[A|manifest][body|head]head[A][base|command|link|meta|noscript|script|style|title]title[A][#]base[A|href|target][]link[A|href|rel|media|type|sizes][]meta[A|http-equiv|name|content|charset][]style[A|type|media|scoped][#]script[A|charset|type|src|defer|async][#]noscript[A][C]body[A][C]section[A][C]nav[A][C]article[A][C]aside[A][C]h1[A][B]h2[A][B]h3[A][B]h4[A][B]h5[A][B]h6[A][B]hgroup[A][h1|h2|h3|h4|h5|h6]header[A][C]footer[A][C]address[A][C]p[A][B]br[A][]pre[A][B]dialog[A][dd|dt]blockquote[A|cite][C]ol[A|start|reversed][li]ul[A][li]li[A|value][C]dl[A][dd|dt]dt[A][B]dd[A][C]a[A|href|target|ping|rel|media|type][B]em[A][B]strong[A][B]small[A][B]cite[A][B]q[A|cite][B]dfn[A][B]abbr[A][B]code[A][B]var[A][B]samp[A][B]kbd[A][B]sub[A][B]sup[A][B]i[A][B]b[A][B]mark[A][B]progress[A|value|max][B]meter[A|value|min|max|low|high|optimum][B]time[A|datetime][B]ruby[A][B|rt|rp]rt[A][B]rp[A][B]bdo[A][B]span[A][B]ins[A|cite|datetime][B]del[A|cite|datetime][B]figure[A][C|legend|figcaption]figcaption[A][C]img[A|alt|src|height|width|usemap|ismap][]iframe[A|name|src|height|width|sandbox|seamless][]embed[A|src|height|width|type][]object[A|data|type|height|width|usemap|name|form|classid][param]param[A|name|value][]details[A|open][C|legend]command[A|type|label|icon|disabled|checked|radiogroup][]menu[A|type|label][C|li]legend[A][C|B]div[A][C]source[A|src|type|media][]audio[A|src|autobuffer|autoplay|loop|controls][source]video[A|src|autobuffer|autoplay|loop|controls|width|height|poster][source]hr[A][]form[A|accept-charset|action|autocomplete|enctype|method|name|novalidate|target][C]fieldset[A|disabled|form|name][C|legend]label[A|form|for][B]input[A|type|accept|alt|autocomplete|checked|disabled|form|formaction|formenctype|formmethod|formnovalidate|formtarget|height|list|max|maxlength|min|multiple|pattern|placeholder|readonly|required|size|src|step|width|files|value|name][]button[A|autofocus|disabled|form|formaction|formenctype|formmethod|formnovalidate|formtarget|name|value|type][B]select[A|autofocus|disabled|form|multiple|name|size][option|optgroup]datalist[A][B|option]optgroup[A|disabled|label][option]option[A|disabled|selected|label|value][]textarea[A|autofocus|disabled|form|maxlength|name|placeholder|readonly|required|rows|cols|wrap][]keygen[A|autofocus|challenge|disabled|form|keytype|name][]output[A|for|form|name][B]canvas[A|width|height][]map[A|name][B|C]area[A|shape|coords|href|alt|target|media|rel|ping|type][]mathml[A][]svg[A][]table[A|border][caption|colgroup|thead|tfoot|tbody|tr]caption[A][C]colgroup[A|span][col]col[A|span][]thead[A][tr]tfoot[A][tr]tbody[A][tr]tr[A][th|td]th[A|headers|rowspan|colspan|scope][B]td[A|headers|rowspan|colspan][C]wbr[A][]")}return i}function c(){var i=a.html4;if(!i){i=a.html4=h({Z:"H|K|N|O|P",Y:"X|form|R|Q",ZG:"E|span|width|align|char|charoff|valign",X:"p|T|div|U|W|isindex|fieldset|table",ZF:"E|align|char|charoff|valign",W:"pre|hr|blockquote|address|center|noframes",ZE:"abbr|axis|headers|scope|rowspan|colspan|align|char|charoff|valign|nowrap|bgcolor|width|height",ZD:"[E][S]",U:"ul|ol|dl|menu|dir",ZC:"p|Y|div|U|W|table|br|span|bdo|object|applet|img|map|K|N|Q",T:"h1|h2|h3|h4|h5|h6",ZB:"X|S|Q",S:"R|P",ZA:"a|G|J|M|O|P",R:"a|H|K|N|O",Q:"noscript|P",P:"ins|del|script",O:"input|select|textarea|label|button",N:"M|L",M:"em|strong|dfn|code|q|samp|kbd|var|cite|abbr|acronym",L:"sub|sup",K:"J|I",J:"tt|i|b|u|s|strike",I:"big|small|font|basefont",H:"G|F",G:"br|span|bdo",F:"object|applet|img|map|iframe",E:"A|B|C",D:"accesskey|tabindex|onfocus|onblur",C:"onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup",B:"lang|xml:lang|dir",A:"id|class|style|title"},"script[id|charset|type|language|src|defer|xml:space][]style[B|id|type|media|title|xml:space][]object[E|declare|classid|codebase|data|type|codetype|archive|standby|width|height|usemap|name|tabindex|align|border|hspace|vspace][#|param|Y]param[id|name|value|valuetype|type][]p[E|align][#|S]a[E|D|charset|type|name|href|hreflang|rel|rev|shape|coords|target][#|Z]br[A|clear][]span[E][#|S]bdo[A|C|B][#|S]applet[A|codebase|archive|code|object|alt|name|width|height|align|hspace|vspace][#|param|Y]h1[E|align][#|S]img[E|src|alt|name|longdesc|width|height|usemap|ismap|align|border|hspace|vspace][]map[B|C|A|name][X|form|Q|area]h2[E|align][#|S]iframe[A|longdesc|name|src|frameborder|marginwidth|marginheight|scrolling|align|width|height][#|Y]h3[E|align][#|S]tt[E][#|S]i[E][#|S]b[E][#|S]u[E][#|S]s[E][#|S]strike[E][#|S]big[E][#|S]small[E][#|S]font[A|B|size|color|face][#|S]basefont[id|size|color|face][]em[E][#|S]strong[E][#|S]dfn[E][#|S]code[E][#|S]q[E|cite][#|S]samp[E][#|S]kbd[E][#|S]var[E][#|S]cite[E][#|S]abbr[E][#|S]acronym[E][#|S]sub[E][#|S]sup[E][#|S]input[E|D|type|name|value|checked|disabled|readonly|size|maxlength|src|alt|usemap|onselect|onchange|accept|align][]select[E|name|size|multiple|disabled|tabindex|onfocus|onblur|onchange][optgroup|option]optgroup[E|disabled|label][option]option[E|selected|disabled|label|value][]textarea[E|D|name|rows|cols|disabled|readonly|onselect|onchange][]label[E|for|accesskey|onfocus|onblur][#|S]button[E|D|name|value|type|disabled][#|p|T|div|U|W|table|G|object|applet|img|map|K|N|Q]h4[E|align][#|S]ins[E|cite|datetime][#|Y]h5[E|align][#|S]del[E|cite|datetime][#|Y]h6[E|align][#|S]div[E|align][#|Y]ul[E|type|compact][li]li[E|type|value][#|Y]ol[E|type|compact|start][li]dl[E|compact][dt|dd]dt[E][#|S]dd[E][#|Y]menu[E|compact][li]dir[E|compact][li]pre[E|width|xml:space][#|ZA]hr[E|align|noshade|size|width][]blockquote[E|cite][#|Y]address[E][#|S|p]center[E][#|Y]noframes[E][#|Y]isindex[A|B|prompt][]fieldset[E][#|legend|Y]legend[E|accesskey|align][#|S]table[E|summary|width|border|frame|rules|cellspacing|cellpadding|align|bgcolor][caption|col|colgroup|thead|tfoot|tbody|tr]caption[E|align][#|S]col[ZG][]colgroup[ZG][col]thead[ZF][tr]tr[ZF|bgcolor][th|td]th[E|ZE][#|Y]form[E|action|method|name|enctype|onsubmit|onreset|accept|accept-charset|target][#|X|R|Q]noscript[E][#|Y]td[E|ZE][#|Y]tfoot[ZF][tr]tbody[ZF][tr]area[E|D|shape|coords|href|nohref|alt|target][]base[id|href|target][]body[E|onload|onunload|background|bgcolor|text|link|vlink|alink][#|Y]")}return i}f.html.Schema=function(A){var u=this,s={},k={},j=[],D,y;var o,q,z,r,v,n,p={};function m(F,E,H){var G=A[F];if(!G){G=a[F];if(!G){G=e(E," ",e(E.toUpperCase()," "));G=f.extend(G,H);a[F]=G}}else{G=e(G,",",e(G.toUpperCase()," "))}return G}A=A||{};y=A.schema=="html5"?b():c();if(A.verify_html===false){A.valid_elements="*[*]"}if(A.valid_styles){D={};g(A.valid_styles,function(F,E){D[E]=f.explode(F)})}o=m("whitespace_elements","pre script style textarea");q=m("self_closing_elements","colgroup dd dt li option p td tfoot th thead tr");z=m("short_ended_elements","area base basefont br col frame hr img input isindex link meta param embed source wbr");r=m("boolean_attributes","checked compact declare defer disabled ismap multiple nohref noresize noshade nowrap readonly selected autoplay loop controls");n=m("non_empty_elements","td th iframe video audio object",z);v=m("block_elements","h1 h2 h3 h4 h5 h6 hr p div address pre form table tbody thead tfoot th tr td li ol ul caption blockquote center dl dt dd dir fieldset noscript menu isindex samp header footer article section hgroup aside nav figure option datalist select optgroup");function i(E){return new RegExp("^"+E.replace(/([?+*])/g,".$1")+"$")}function C(L){var K,G,Z,V,aa,F,I,U,X,Q,Y,ac,O,J,W,E,S,H,ab,ad,P,T,N=/^([#+\-])?([^\[\/]+)(?:\/([^\[]+))?(?:\[([^\]]+)\])?$/,R=/^([!\-])?(\w+::\w+|[^=:<]+)?(?:([=:<])(.*))?$/,M=/[*?+]/;if(L){L=d(L);if(s["@"]){S=s["@"].attributes;H=s["@"].attributesOrder}for(K=0,G=L.length;K=0){for(U=A.length-1;U>=V;U--){T=A[U];if(T.valid){n.end(T.name)}}A.length=V}}function p(U,T,Y,X,W){var Z,V;T=T.toLowerCase();Y=T in H?T:j(Y||X||W||"");if(v&&!z&&T.indexOf("data-")!==0){Z=P[T];if(!Z&&F){V=F.length;while(V--){Z=F[V];if(Z.pattern.test(T)){break}}if(V===-1){Z=null}}if(!Z){return}if(Z.validValues&&!(Y in Z.validValues)){return}}N.map[T]=Y;N.push({name:T,value:Y})}l=new RegExp("<(?:(?:!--([\\w\\W]*?)-->)|(?:!\\[CDATA\\[([\\w\\W]*?)\\]\\]>)|(?:!DOCTYPE([\\w\\W]*?)>)|(?:\\?([^\\s\\/<>]+) ?([\\w\\W]*?)[?/]>)|(?:\\/([^>]+)>)|(?:([A-Za-z0-9\\-\\:]+)((?:\\s+[^\"'>]+(?:(?:\"[^\"]*\")|(?:'[^']*')|[^>]*))*|\\/|\\s+)>))","g");D=/([\w:\-]+)(?:\s*=\s*(?:(?:\"((?:\\.|[^\"])*)\")|(?:\'((?:\\.|[^\'])*)\')|([^>\s]+)))?/g;K={script:/<\/script[^>]*>/gi,style:/<\/style[^>]*>/gi,noscript:/<\/noscript[^>]*>/gi};M=e.getShortEndedElements();J=c.self_closing_elements||e.getSelfClosingElements();H=e.getBoolAttrs();v=c.validate;s=c.remove_internals;y=c.fix_self_closing;q=a.isIE;o=/^:/;while(g=l.exec(E)){if(G0&&A[A.length-1].name===I){u(I)}if(!v||(m=e.getElementRule(I))){k=true;if(v){P=m.attributes;F=m.attributePatterns}if(R=g[8]){z=R.indexOf("data-mce-type")!==-1;if(z&&s){k=false}N=[];N.map={};R.replace(D,p)}else{N=[];N.map={}}if(v&&!z){S=m.attributesRequired;L=m.attributesDefault;f=m.attributesForced;if(f){Q=f.length;while(Q--){t=f[Q];r=t.name;h=t.value;if(h==="{$uid}"){h="mce_"+x++}N.map[r]=h;N.push({name:r,value:h})}}if(L){Q=L.length;while(Q--){t=L[Q];r=t.name;if(!(r in N.map)){h=t.value;if(h==="{$uid}"){h="mce_"+x++}N.map[r]=h;N.push({name:r,value:h})}}}if(S){Q=S.length;while(Q--){if(S[Q] in N.map){break}}if(Q===-1){k=false}}if(N.map["data-mce-bogus"]){k=false}}if(k){n.start(I,N,O)}}else{k=false}if(B=K[I]){B.lastIndex=G=g.index+g[0].length;if(g=B.exec(E)){if(k){C=E.substr(G,g.index-G)}G=g.index+g[0].length}else{C=E.substr(G);G=E.length}if(k&&C.length>0){n.text(C,true)}if(k){n.end(I)}l.lastIndex=G;continue}if(!O){if(!R||R.indexOf("/")!=R.length-1){A.push({name:I,valid:k})}else{if(k){n.end(I)}}}}else{if(I=g[1]){n.comment(I)}else{if(I=g[2]){n.cdata(I)}else{if(I=g[3]){n.doctype(I)}else{if(I=g[4]){n.pi(I,g[5])}}}}}}G=g.index+g[0].length}if(G=0;Q--){I=A[Q];if(I.valid){n.end(I.name)}}}}})(tinymce);(function(d){var c=/^[ \t\r\n]*$/,e={"#text":3,"#comment":8,"#cdata":4,"#pi":7,"#doctype":10,"#document-fragment":11};function a(k,l,j){var i,h,f=j?"lastChild":"firstChild",g=j?"prev":"next";if(k[f]){return k[f]}if(k!==l){i=k[g];if(i){return i}for(h=k.parent;h&&h!==l;h=h.parent){i=h[g];if(i){return i}}}}function b(f,g){this.name=f;this.type=g;if(g===1){this.attributes=[];this.attributes.map={}}}d.extend(b.prototype,{replace:function(g){var f=this;if(g.parent){g.remove()}f.insert(g,f);f.remove();return f},attr:function(h,l){var f=this,g,j,k;if(typeof h!=="string"){for(j in h){f.attr(j,h[j])}return f}if(g=f.attributes){if(l!==k){if(l===null){if(h in g.map){delete g.map[h];j=g.length;while(j--){if(g[j].name===h){g=g.splice(j,1);return f}}}return f}if(h in g.map){j=g.length;while(j--){if(g[j].name===h){g[j].value=l;break}}}else{g.push({name:h,value:l})}g.map[h]=l;return f}else{return g.map[h]}}},clone:function(){var g=this,n=new b(g.name,g.type),h,f,m,j,k;if(m=g.attributes){k=[];k.map={};for(h=0,f=m.length;h1){v.reverse();z=n=f.filterNode(v[0].clone());for(t=0;t0){Q.value=l;Q=Q.prev}else{O=Q.prev;Q.remove();Q=O}}}function H(O){var P,l={};for(P in O){if(P!=="li"&&P!="p"){l[P]=O[P]}}return l}n=new b.html.SaxParser({validate:z,self_closing_elements:H(h.getSelfClosingElements()),cdata:function(l){B.append(K("#cdata",4)).value=l},text:function(P,l){var O;if(!L){P=P.replace(k," ");if(B.lastChild&&o[B.lastChild.name]){P=P.replace(E,"")}}if(P.length!==0){O=K("#text",3);O.raw=!!l;B.append(O).value=P}},comment:function(l){B.append(K("#comment",8)).value=l},pi:function(l,O){B.append(K(l,7)).value=O;I(B)},doctype:function(O){var l;l=B.append(K("#doctype",10));l.value=O;I(B)},start:function(l,W,P){var U,R,Q,O,S,X,V,T;Q=z?h.getElementRule(l):{};if(Q){U=K(Q.outputName||l,1);U.attributes=W;U.shortEnded=P;B.append(U);T=p[B.name];if(T&&p[U.name]&&!T[U.name]){M.push(U)}R=d.length;while(R--){S=d[R].name;if(S in W.map){F=c[S];if(F){F.push(U)}else{c[S]=[U]}}}if(o[l]){I(U)}if(!P){B=U}if(!L&&s[l]){L=true}}},end:function(l){var S,P,R,O,Q;P=z?h.getElementRule(l):{};if(P){if(o[l]){if(!L){S=B.firstChild;if(S&&S.type===3){R=S.value.replace(E,"");if(R.length>0){S.value=R;S=S.next}else{O=S.next;S.remove();S=O}while(S&&S.type===3){R=S.value;O=S.next;if(R.length===0||y.test(R)){S.remove();S=O}S=O}}S=B.lastChild;if(S&&S.type===3){R=S.value.replace(t,"");if(R.length>0){S.value=R;S=S.prev}else{O=S.prev;S.remove();S=O}while(S&&S.type===3){R=S.value;O=S.prev;if(R.length===0||y.test(R)){S.remove();S=O}S=O}}}S=B.prev;if(S&&S.type===3){R=S.value.replace(E,"");if(R.length>0){S.value=R}else{S.remove()}}}if(L&&s[l]){L=false}if(P.removeEmpty||P.paddEmpty){if(B.isEmpty(u)){if(P.paddEmpty){B.empty().append(new a("#text","3")).value="\u00a0"}else{if(!B.attributes.map.name&&!B.attributes.map.id){Q=B.parent;B.empty().remove();B=Q;return}}}}B=B.parent}}},h);J=B=new a(m.context||g.root_name,11);n.parse(v);if(z&&M.length){if(!m.context){j(M)}else{m.invalid=true}}if(q&&J.name=="body"){G()}if(!m.invalid){for(N in i){F=e[N];A=i[N];x=A.length;while(x--){if(!A[x].parent){A.splice(x,1)}}for(D=0,C=F.length;D0){o=c[c.length-1];if(o.length>0&&o!=="\n"){c.push("\n")}}c.push("<",m);if(k){for(n=0,j=k.length;n0){o=c[c.length-1];if(o.length>0&&o!=="\n"){c.push("\n")}}},end:function(h){var i;c.push("");if(a&&d[h]&&c.length>0){i=c[c.length-1];if(i.length>0&&i!=="\n"){c.push("\n")}}},text:function(i,h){if(i.length>0){c[c.length]=h?i:f(i)}},cdata:function(h){c.push("")},comment:function(h){c.push("")},pi:function(h,i){if(i){c.push("")}else{c.push("")}if(a){c.push("\n")}},doctype:function(h){c.push("",a?"\n":"")},reset:function(){c.length=0},getContent:function(){return c.join("").replace(/\n$/,"")}}};(function(a){a.html.Serializer=function(c,d){var b=this,e=new a.html.Writer(c);c=c||{};c.validate="validate" in c?c.validate:true;b.schema=d=d||new a.html.Schema();b.writer=e;b.serialize=function(h){var g,i;i=c.validate;g={3:function(k,j){e.text(k.value,k.raw)},8:function(j){e.comment(j.value)},7:function(j){e.pi(j.name,j.value)},10:function(j){e.doctype(j.value)},4:function(j){e.cdata(j.value)},11:function(j){if((j=j.firstChild)){do{f(j)}while(j=j.next)}}};e.reset();function f(k){var t=g[k.type],j,o,s,r,p,u,n,m,q;if(!t){j=k.name;o=k.shortEnded;s=k.attributes;if(i&&s&&s.length>1){u=[];u.map={};q=d.getElementRule(k.name);for(n=0,m=q.attributesOrder.length;n=8;k.boxModel=!e.isIE||o.compatMode=="CSS1Compat"||k.stdMode;k.hasOuterHTML="outerHTML" in o.createElement("a");k.settings=l=e.extend({keep_values:false,hex_colors:1},l);k.schema=l.schema;k.styles=new e.html.Styles({url_converter:l.url_converter,url_converter_scope:l.url_converter_scope},l.schema);if(e.isIE6){try{o.execCommand("BackgroundImageCache",false,true)}catch(m){k.cssFlicker=true}}k.fixDoc(o);k.events=l.ownEvents?new e.dom.EventUtils(l.proxy):e.dom.Event;e.addUnload(k.destroy,k);n=l.schema?l.schema.getBlockElements():{};k.isBlock=function(q){var p=q.nodeType;if(p){return !!(p===1&&n[q.nodeName])}return !!n[q]}},fixDoc:function(k){var j=this.settings,i;if(b&&j.schema){("abbr article aside audio canvas details figcaption figure footer header hgroup mark menu meter nav output progress section summary time video").replace(/\w+/g,function(l){k.createElement(l)});for(i in j.schema.getCustomElements()){k.createElement(i)}}},clone:function(k,i){var j=this,m,l;if(!b||k.nodeType!==1||i){return k.cloneNode(i)}l=j.doc;if(!i){m=l.createElement(k.nodeName);g(j.getAttribs(k),function(n){j.setAttrib(m,n.nodeName,j.getAttrib(k,n.nodeName))});return m}return m.firstChild},getRoot:function(){var i=this,j=i.settings;return(j&&i.get(j.root_element))||i.doc.body},getViewPort:function(j){var k,i;j=!j?this.win:j;k=j.document;i=this.boxModel?k.documentElement:k.body;return{x:j.pageXOffset||i.scrollLeft,y:j.pageYOffset||i.scrollTop,w:j.innerWidth||i.clientWidth,h:j.innerHeight||i.clientHeight}},getRect:function(l){var k,i=this,j;l=i.get(l);k=i.getPos(l);j=i.getSize(l);return{x:k.x,y:k.y,w:j.w,h:j.h}},getSize:function(l){var j=this,i,k;l=j.get(l);i=j.getStyle(l,"width");k=j.getStyle(l,"height");if(i.indexOf("px")===-1){i=0}if(k.indexOf("px")===-1){k=0}return{w:parseInt(i,10)||l.offsetWidth||l.clientWidth,h:parseInt(k,10)||l.offsetHeight||l.clientHeight}},getParent:function(k,j,i){return this.getParents(k,j,i,false)},getParents:function(s,m,k,q){var j=this,i,l=j.settings,p=[];s=j.get(s);q=q===undefined;if(l.strict_root){k=k||j.getRoot()}if(d(m,"string")){i=m;if(m==="*"){m=function(o){return o.nodeType==1}}else{m=function(o){return j.is(o,i)}}}while(s){if(s==k||!s.nodeType||s.nodeType===9){break}if(!m||m(s)){if(q){p.push(s)}else{return s}}s=s.parentNode}return q?p:null},get:function(i){var j;if(i&&this.doc&&typeof(i)=="string"){j=i;i=this.doc.getElementById(i);if(i&&i.id!==j){return this.doc.getElementsByName(j)[1]}}return i},getNext:function(j,i){return this._findSib(j,i,"nextSibling")},getPrev:function(j,i){return this._findSib(j,i,"previousSibling")},select:function(k,j){var i=this;return e.dom.Sizzle(k,i.get(j)||i.get(i.settings.root_element)||i.doc,[])},is:function(l,j){var k;if(l.length===undefined){if(j==="*"){return l.nodeType==1}if(c.test(j)){j=j.toLowerCase().split(/,/);l=l.nodeName.toLowerCase();for(k=j.length-1;k>=0;k--){if(j[k]==l){return true}}return false}}return e.dom.Sizzle.matches(j,l.nodeType?[l]:l).length>0},add:function(l,o,i,k,m){var j=this;return this.run(l,function(r){var q,n;q=d(o,"string")?j.doc.createElement(o):o;j.setAttribs(q,i);if(k){if(k.nodeType){q.appendChild(k)}else{j.setHTML(q,k)}}return !m?r.appendChild(q):q})},create:function(k,i,j){return this.add(this.doc.createElement(k),k,i,j,1)},createHTML:function(q,i,m){var p="",l=this,j;p+="<"+q;for(j in i){if(i.hasOwnProperty(j)){p+=" "+j+'="'+l.encode(i[j])+'"'}}if(typeof(m)!="undefined"){return p+">"+m+""}return p+" />"},remove:function(i,j){return this.run(i,function(l){var m,k=l.parentNode;if(!k){return null}if(j){while(m=l.firstChild){if(!e.isIE||m.nodeType!==3||m.nodeValue){k.insertBefore(m,l)}else{l.removeChild(m)}}}return k.removeChild(l)})},setStyle:function(l,i,j){var k=this;return k.run(l,function(o){var n,m;n=o.style;i=i.replace(/-(\D)/g,function(q,p){return p.toUpperCase()});if(k.pixelStyles.test(i)&&(e.is(j,"number")||/^[\-0-9\.]+$/.test(j))){j+="px"}switch(i){case"opacity":if(b){n.filter=j===""?"":"alpha(opacity="+(j*100)+")";if(!l.currentStyle||!l.currentStyle.hasLayout){n.display="inline-block"}}n[i]=n["-moz-opacity"]=n["-khtml-opacity"]=j||"";break;case"float":b?n.styleFloat=j:n.cssFloat=j;break;default:n[i]=j||""}if(k.settings.update_styles){k.setAttrib(o,"data-mce-style")}})},getStyle:function(l,i,k){l=this.get(l);if(!l){return}if(this.doc.defaultView&&k){i=i.replace(/[A-Z]/g,function(m){return"-"+m});try{return this.doc.defaultView.getComputedStyle(l,null).getPropertyValue(i)}catch(j){return null}}i=i.replace(/-(\D)/g,function(n,m){return m.toUpperCase()});if(i=="float"){i=b?"styleFloat":"cssFloat"}if(l.currentStyle&&k){return l.currentStyle[i]}return l.style?l.style[i]:undefined},setStyles:function(l,m){var j=this,k=j.settings,i;i=k.update_styles;k.update_styles=0;g(m,function(o,p){j.setStyle(l,p,o)});k.update_styles=i;if(k.update_styles){j.setAttrib(l,k.cssText)}},removeAllAttribs:function(i){return this.run(i,function(l){var k,j=l.attributes;for(k=j.length-1;k>=0;k--){l.removeAttributeNode(j.item(k))}})},setAttrib:function(k,l,i){var j=this;if(!k||!l){return}if(j.settings.strict){l=l.toLowerCase()}return this.run(k,function(p){var o=j.settings;var m=p.getAttribute(l);if(i!==null){switch(l){case"style":if(!d(i,"string")){g(i,function(q,r){j.setStyle(p,r,q)});return}if(o.keep_values){if(i&&!j._isRes(i)){p.setAttribute("data-mce-style",i,2)}else{p.removeAttribute("data-mce-style",2)}}p.style.cssText=i;break;case"class":p.className=i||"";break;case"src":case"href":if(o.keep_values){if(o.url_converter){i=o.url_converter.call(o.url_converter_scope||j,i,l,p)}j.setAttrib(p,"data-mce-"+l,i,2)}break;case"shape":p.setAttribute("data-mce-style",i);break}}if(d(i)&&i!==null&&i.length!==0){p.setAttribute(l,""+i,2)}else{p.removeAttribute(l,2)}if(tinyMCE.activeEditor&&m!=i){var n=tinyMCE.activeEditor;n.onSetAttrib.dispatch(n,p,l,i)}})},setAttribs:function(j,k){var i=this;return this.run(j,function(l){g(k,function(m,o){i.setAttrib(l,o,m)})})},getAttrib:function(m,o,k){var i,j=this,l;m=j.get(m);if(!m||m.nodeType!==1){return k===l?false:k}if(!d(k)){k=""}if(/^(src|href|style|coords|shape)$/.test(o)){i=m.getAttribute("data-mce-"+o);if(i){return i}}if(b&&j.props[o]){i=m[j.props[o]];i=i&&i.nodeValue?i.nodeValue:i}if(!i){i=m.getAttribute(o,2)}if(/^(checked|compact|declare|defer|disabled|ismap|multiple|nohref|noshade|nowrap|readonly|selected)$/.test(o)){if(m[j.props[o]]===true&&i===""){return o}return i?o:""}if(m.nodeName==="FORM"&&m.getAttributeNode(o)){return m.getAttributeNode(o).nodeValue}if(o==="style"){i=i||m.style.cssText;if(i){i=j.serializeStyle(j.parseStyle(i),m.nodeName);if(j.settings.keep_values&&!j._isRes(i)){m.setAttribute("data-mce-style",i)}}}if(f&&o==="class"&&i){i=i.replace(/(apple|webkit)\-[a-z\-]+/gi,"")}if(b){switch(o){case"rowspan":case"colspan":if(i===1){i=""}break;case"size":if(i==="+0"||i===20||i===0){i=""}break;case"width":case"height":case"vspace":case"checked":case"disabled":case"readonly":if(i===0){i=""}break;case"hspace":if(i===-1){i=""}break;case"maxlength":case"tabindex":if(i===32768||i===2147483647||i==="32768"){i=""}break;case"multiple":case"compact":case"noshade":case"nowrap":if(i===65535){return o}return k;case"shape":i=i.toLowerCase();break;default:if(o.indexOf("on")===0&&i){i=e._replace(/^function\s+\w+\(\)\s+\{\s+(.*)\s+\}$/,"$1",""+i)}}}return(i!==l&&i!==null&&i!=="")?""+i:k},getPos:function(q,l){var j=this,i=0,p=0,m,o=j.doc,k;q=j.get(q);l=l||o.body;if(q){if(q.getBoundingClientRect){q=q.getBoundingClientRect();m=j.boxModel?o.documentElement:o.body;i=q.left+(o.documentElement.scrollLeft||o.body.scrollLeft)-m.clientTop;p=q.top+(o.documentElement.scrollTop||o.body.scrollTop)-m.clientLeft;return{x:i,y:p}}k=q;while(k&&k!=l&&k.nodeType){i+=k.offsetLeft||0;p+=k.offsetTop||0;k=k.offsetParent}k=q.parentNode;while(k&&k!=l&&k.nodeType){i-=k.scrollLeft||0;p-=k.scrollTop||0;k=k.parentNode}}return{x:i,y:p}},parseStyle:function(i){return this.styles.parse(i)},serializeStyle:function(j,i){return this.styles.serialize(j,i)},addStyle:function(j){var k=this.doc,i;styleElm=k.getElementById("mceDefaultStyles");if(!styleElm){styleElm=k.createElement("style"),styleElm.id="mceDefaultStyles";styleElm.type="text/css";i=k.getElementsByTagName("head")[0];if(i.firstChild){i.insertBefore(styleElm,i.firstChild)}else{i.appendChild(styleElm)}}if(styleElm.styleSheet){styleElm.styleSheet.cssText+=j}else{styleElm.appendChild(k.createTextNode(j))}},loadCSS:function(i){var k=this,l=k.doc,j;if(!i){i=""}j=l.getElementsByTagName("head")[0];g(i.split(","),function(m){var n;if(k.files[m]){return}k.files[m]=true;n=k.create("link",{rel:"stylesheet",href:e._addVer(m)});if(b&&l.documentMode&&l.recalc){n.onload=function(){if(l.recalc){l.recalc()}n.onload=null}}j.appendChild(n)})},addClass:function(i,j){return this.run(i,function(k){var l;if(!j){return 0}if(this.hasClass(k,j)){return k.className}l=this.removeClass(k,j);return k.className=(l!=""?(l+" "):"")+j})},removeClass:function(k,l){var i=this,j;return i.run(k,function(n){var m;if(i.hasClass(n,l)){if(!j){j=new RegExp("(^|\\s+)"+l+"(\\s+|$)","g")}m=n.className.replace(j," ");m=e.trim(m!=" "?m:"");n.className=m;if(!m){n.removeAttribute("class");n.removeAttribute("className")}return m}return n.className})},hasClass:function(j,i){j=this.get(j);if(!j||!i){return false}return(" "+j.className+" ").indexOf(" "+i+" ")!==-1},show:function(i){return this.setStyle(i,"display","block")},hide:function(i){return this.setStyle(i,"display","none")},isHidden:function(i){i=this.get(i);return !i||i.style.display=="none"||this.getStyle(i,"display")=="none"},uniqueId:function(i){return(!i?"mce_":i)+(this.counter++)},setHTML:function(k,j){var i=this;return i.run(k,function(m){if(b){while(m.firstChild){m.removeChild(m.firstChild)}try{m.innerHTML="
          "+j;m.removeChild(m.firstChild)}catch(l){var n=i.create("div");n.innerHTML="
          "+j;g(e.grep(n.childNodes),function(p,o){if(o&&m.canHaveHTML){m.appendChild(p)}})}}else{m.innerHTML=j}return j})},getOuterHTML:function(k){var j,i=this;k=i.get(k);if(!k){return null}if(k.nodeType===1&&i.hasOuterHTML){return k.outerHTML}j=(k.ownerDocument||i.doc).createElement("body");j.appendChild(k.cloneNode(true));return j.innerHTML},setOuterHTML:function(l,j,m){var i=this;function k(p,o,r){var s,q;q=r.createElement("body");q.innerHTML=o;s=q.lastChild;while(s){i.insertAfter(s.cloneNode(true),p);s=s.previousSibling}i.remove(p)}return this.run(l,function(o){o=i.get(o);if(o.nodeType==1){m=m||o.ownerDocument||i.doc;if(b){try{if(b&&o.nodeType==1){o.outerHTML=j}else{k(o,j,m)}}catch(n){k(o,j,m)}}else{k(o,j,m)}}})},decode:h.decode,encode:h.encodeAllRaw,insertAfter:function(i,j){j=this.get(j);return this.run(i,function(l){var k,m;k=j.parentNode;m=j.nextSibling;if(m){k.insertBefore(l,m)}else{k.appendChild(l)}return l})},replace:function(m,l,i){var j=this;if(d(l,"array")){m=m.cloneNode(true)}return j.run(l,function(k){if(i){g(e.grep(k.childNodes),function(n){m.appendChild(n)})}return k.parentNode.replaceChild(m,k)})},rename:function(l,i){var k=this,j;if(l.nodeName!=i.toUpperCase()){j=k.create(i);g(k.getAttribs(l),function(m){k.setAttrib(j,m.nodeName,k.getAttrib(l,m.nodeName))});k.replace(j,l,1)}return j||l},findCommonAncestor:function(k,i){var l=k,j;while(l){j=i;while(j&&l!=j){j=j.parentNode}if(l==j){break}l=l.parentNode}if(!l&&k.ownerDocument){return k.ownerDocument.documentElement}return l},toHex:function(i){var k=/^\s*rgb\s*?\(\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?\)\s*$/i.exec(i);function j(l){l=parseInt(l,10).toString(16);return l.length>1?l:"0"+l}if(k){i="#"+j(k[1])+j(k[2])+j(k[3]);return i}return i},getClasses:function(){var n=this,j=[],m,o={},p=n.settings.class_filter,l;if(n.classes){return n.classes}function q(i){g(i.imports,function(s){q(s)});g(i.cssRules||i.rules,function(s){switch(s.type||1){case 1:if(s.selectorText){g(s.selectorText.split(","),function(r){r=r.replace(/^\s*|\s*$|^\s\./g,"");if(/\.mce/.test(r)||!/\.[\w\-]+$/.test(r)){return}l=r;r=e._replace(/.*\.([a-z0-9_\-]+).*/i,"$1",r);if(p&&!(r=p(r,l))){return}if(!o[r]){j.push({"class":r});o[r]=1}})}break;case 3:q(s.styleSheet);break}})}try{g(n.doc.styleSheets,q)}catch(k){}if(j.length>0){n.classes=j}return j},run:function(l,k,j){var i=this,m;if(i.doc&&typeof(l)==="string"){l=i.get(l)}if(!l){return false}j=j||this;if(!l.nodeType&&(l.length||l.length===0)){m=[];g(l,function(o,n){if(o){if(typeof(o)=="string"){o=i.doc.getElementById(o)}m.push(k.call(j,o,n))}});return m}return k.call(j,l)},getAttribs:function(j){var i;j=this.get(j);if(!j){return[]}if(b){i=[];if(j.nodeName=="OBJECT"){return j.attributes}if(j.nodeName==="OPTION"&&this.getAttrib(j,"selected")){i.push({specified:1,nodeName:"selected"})}j.cloneNode(false).outerHTML.replace(/<\/?[\w:\-]+ ?|=[\"][^\"]+\"|=\'[^\']+\'|=[\w\-]+|>/gi,"").replace(/[\w:\-]+/gi,function(k){i.push({specified:1,nodeName:k})});return i}return j.attributes},isEmpty:function(m,k){var r=this,o,n,q,j,l,p=0;m=m.firstChild;if(m){j=new e.dom.TreeWalker(m,m.parentNode);k=k||r.schema?r.schema.getNonEmptyElements():null;do{q=m.nodeType;if(q===1){if(m.getAttribute("data-mce-bogus")){continue}l=m.nodeName.toLowerCase();if(k&&k[l]){if(l==="br"){p++;continue}return false}n=r.getAttribs(m);o=m.attributes.length;while(o--){l=m.attributes[o].nodeName;if(l==="name"||l==="data-mce-bookmark"){return false}}}if(q==8){return false}if((q===3&&!a.test(m.nodeValue))){return false}}while(m=j.next())}return p<=1},destroy:function(j){var i=this;i.win=i.doc=i.root=i.events=i.frag=null;if(!j){e.removeUnload(i.destroy)}},createRng:function(){var i=this.doc;return i.createRange?i.createRange():new e.dom.Range(this)},nodeIndex:function(m,n){var i=0,k,l,j;if(m){for(k=m.nodeType,m=m.previousSibling,l=m;m;m=m.previousSibling){j=m.nodeType;if(n&&j==3){if(j==k||!m.nodeValue.length){continue}}i++;k=j}}return i},split:function(m,l,p){var q=this,i=q.createRng(),n,k,o;function j(v){var t,s=v.childNodes,u=v.nodeType;function x(A){var z=A.previousSibling&&A.previousSibling.nodeName=="SPAN";var y=A.nextSibling&&A.nextSibling.nodeName=="SPAN";return z&&y}if(u==1&&v.getAttribute("data-mce-type")=="bookmark"){return}for(t=s.length-1;t>=0;t--){j(s[t])}if(u!=9){if(u==3&&v.nodeValue.length>0){var r=e.trim(v.nodeValue).length;if(!q.isBlock(v.parentNode)||r>0||r===0&&x(v)){return}}else{if(u==1){s=v.childNodes;if(s.length==1&&s[0]&&s[0].nodeType==1&&s[0].getAttribute("data-mce-type")=="bookmark"){v.parentNode.insertBefore(s[0],v)}if(s.length||/^(br|hr|input|img)$/i.test(v.nodeName)){return}}}q.remove(v)}return v}if(m&&l){i.setStart(m.parentNode,q.nodeIndex(m));i.setEnd(l.parentNode,q.nodeIndex(l));n=i.extractContents();i=q.createRng();i.setStart(l.parentNode,q.nodeIndex(l)+1);i.setEnd(m.parentNode,q.nodeIndex(m)+1);k=i.extractContents();o=m.parentNode;o.insertBefore(j(n),m);if(p){o.replaceChild(p,l)}else{o.insertBefore(l,m)}o.insertBefore(j(k),m);q.remove(m);return p||l}},bind:function(l,i,k,j){return this.events.add(l,i,k,j||this)},unbind:function(k,i,j){return this.events.remove(k,i,j)},fire:function(k,j,i){return this.events.fire(k,j,i)},getContentEditable:function(j){var i;if(j.nodeType!=1){return null}i=j.getAttribute("data-mce-contenteditable");if(i&&i!=="inherit"){return i}return j.contentEditable!=="inherit"?j.contentEditable:null},_findSib:function(l,i,j){var k=this,m=i;if(l){if(d(m,"string")){m=function(n){return k.is(n,i)}}for(l=l[j];l;l=l[j]){if(m(l)){return l}}}return null},_isRes:function(i){return/^(top|left|bottom|right|width|height)/i.test(i)||/;\s*(top|left|bottom|right|width|height)/i.test(i)}});e.DOM=new e.dom.DOMUtils(document,{process_html:0})})(tinymce);(function(a){function b(c){var O=this,e=c.doc,U=0,F=1,j=2,E=true,S=false,W="startOffset",h="startContainer",Q="endContainer",A="endOffset",k=tinymce.extend,n=c.nodeIndex;k(O,{startContainer:e,startOffset:0,endContainer:e,endOffset:0,collapsed:E,commonAncestorContainer:e,START_TO_START:0,START_TO_END:1,END_TO_END:2,END_TO_START:3,setStart:q,setEnd:s,setStartBefore:g,setStartAfter:J,setEndBefore:K,setEndAfter:u,collapse:B,selectNode:y,selectNodeContents:G,compareBoundaryPoints:v,deleteContents:p,extractContents:I,cloneContents:d,insertNode:D,surroundContents:N,cloneRange:L,toStringIE:T});function x(){return e.createDocumentFragment()}function q(X,t){C(E,X,t)}function s(X,t){C(S,X,t)}function g(t){q(t.parentNode,n(t))}function J(t){q(t.parentNode,n(t)+1)}function K(t){s(t.parentNode,n(t))}function u(t){s(t.parentNode,n(t)+1)}function B(t){if(t){O[Q]=O[h];O[A]=O[W]}else{O[h]=O[Q];O[W]=O[A]}O.collapsed=E}function y(t){g(t);u(t)}function G(t){q(t,0);s(t,t.nodeType===1?t.childNodes.length:t.nodeValue.length)}function v(aa,t){var ad=O[h],Y=O[W],ac=O[Q],X=O[A],ab=t.startContainer,af=t.startOffset,Z=t.endContainer,ae=t.endOffset;if(aa===0){return H(ad,Y,ab,af)}if(aa===1){return H(ac,X,ab,af)}if(aa===2){return H(ac,X,Z,ae)}if(aa===3){return H(ad,Y,Z,ae)}}function p(){l(j)}function I(){return l(U)}function d(){return l(F)}function D(aa){var X=this[h],t=this[W],Z,Y;if((X.nodeType===3||X.nodeType===4)&&X.nodeValue){if(!t){X.parentNode.insertBefore(aa,X)}else{if(t>=X.nodeValue.length){c.insertAfter(aa,X)}else{Z=X.splitText(t);X.parentNode.insertBefore(aa,Z)}}}else{if(X.childNodes.length>0){Y=X.childNodes[t]}if(Y){X.insertBefore(aa,Y)}else{X.appendChild(aa)}}}function N(X){var t=O.extractContents();O.insertNode(X);X.appendChild(t);O.selectNode(X)}function L(){return k(new b(c),{startContainer:O[h],startOffset:O[W],endContainer:O[Q],endOffset:O[A],collapsed:O.collapsed,commonAncestorContainer:O.commonAncestorContainer})}function P(t,X){var Y;if(t.nodeType==3){return t}if(X<0){return t}Y=t.firstChild;while(Y&&X>0){--X;Y=Y.nextSibling}if(Y){return Y}return t}function m(){return(O[h]==O[Q]&&O[W]==O[A])}function H(Z,ab,X,aa){var ac,Y,t,ad,af,ae;if(Z==X){if(ab==aa){return 0}if(ab0){O.collapse(X)}}else{O.collapse(X)}O.collapsed=m();O.commonAncestorContainer=c.findCommonAncestor(O[h],O[Q])}function l(ad){var ac,Z=0,af=0,X,ab,Y,aa,t,ae;if(O[h]==O[Q]){return f(ad)}for(ac=O[Q],X=ac.parentNode;X;ac=X,X=X.parentNode){if(X==O[h]){return r(ac,ad)}++Z}for(ac=O[h],X=ac.parentNode;X;ac=X,X=X.parentNode){if(X==O[Q]){return V(ac,ad)}++af}ab=af-Z;Y=O[h];while(ab>0){Y=Y.parentNode;ab--}aa=O[Q];while(ab<0){aa=aa.parentNode;ab++}for(t=Y.parentNode,ae=aa.parentNode;t!=ae;t=t.parentNode,ae=ae.parentNode){Y=t;aa=ae}return o(Y,aa,ad)}function f(ac){var ae,af,t,Y,Z,ad,aa,X,ab;if(ac!=j){ae=x()}if(O[W]==O[A]){return ae}if(O[h].nodeType==3){af=O[h].nodeValue;t=af.substring(O[W],O[A]);if(ac!=F){Y=O[h];X=O[W];ab=O[A]-O[W];if(X===0&&ab>=Y.nodeValue.length-1){Y.parentNode.removeChild(Y)}else{Y.deleteData(X,ab)}O.collapse(E)}if(ac==j){return}if(t.length>0){ae.appendChild(e.createTextNode(t))}return ae}Y=P(O[h],O[W]);Z=O[A]-O[W];while(Y&&Z>0){ad=Y.nextSibling;aa=z(Y,ac);if(ae){ae.appendChild(aa)}--Z;Y=ad}if(ac!=F){O.collapse(E)}return ae}function r(ad,aa){var ac,ab,X,t,Z,Y;if(aa!=j){ac=x()}ab=i(ad,aa);if(ac){ac.appendChild(ab)}X=n(ad);t=X-O[W];if(t<=0){if(aa!=F){O.setEndBefore(ad);O.collapse(S)}return ac}ab=ad.previousSibling;while(t>0){Z=ab.previousSibling;Y=z(ab,aa);if(ac){ac.insertBefore(Y,ac.firstChild)}--t;ab=Z}if(aa!=F){O.setEndBefore(ad);O.collapse(S)}return ac}function V(ab,aa){var ad,X,ac,t,Z,Y;if(aa!=j){ad=x()}ac=R(ab,aa);if(ad){ad.appendChild(ac)}X=n(ab);++X;t=O[A]-X;ac=ab.nextSibling;while(ac&&t>0){Z=ac.nextSibling;Y=z(ac,aa);if(ad){ad.appendChild(Y)}--t;ac=Z}if(aa!=F){O.setStartAfter(ab);O.collapse(E)}return ad}function o(ab,t,ae){var Y,ag,aa,ac,ad,X,af,Z;if(ae!=j){ag=x()}Y=R(ab,ae);if(ag){ag.appendChild(Y)}aa=ab.parentNode;ac=n(ab);ad=n(t);++ac;X=ad-ac;af=ab.nextSibling;while(X>0){Z=af.nextSibling;Y=z(af,ae);if(ag){ag.appendChild(Y)}af=Z;--X}Y=i(t,ae);if(ag){ag.appendChild(Y)}if(ae!=F){O.setStartAfter(ab);O.collapse(E)}return ag}function i(ac,ad){var Y=P(O[Q],O[A]-1),ae,ab,aa,t,X,Z=Y!=O[Q];if(Y==ac){return M(Y,Z,S,ad)}ae=Y.parentNode;ab=M(ae,S,S,ad);while(ae){while(Y){aa=Y.previousSibling;t=M(Y,Z,S,ad);if(ad!=j){ab.insertBefore(t,ab.firstChild)}Z=E;Y=aa}if(ae==ac){return ab}Y=ae.previousSibling;ae=ae.parentNode;X=M(ae,S,S,ad);if(ad!=j){X.appendChild(ab)}ab=X}}function R(ac,ad){var Z=P(O[h],O[W]),aa=Z!=O[h],ae,ab,Y,t,X;if(Z==ac){return M(Z,aa,E,ad)}ae=Z.parentNode;ab=M(ae,S,E,ad);while(ae){while(Z){Y=Z.nextSibling;t=M(Z,aa,E,ad);if(ad!=j){ab.appendChild(t)}aa=E;Z=Y}if(ae==ac){return ab}Z=ae.nextSibling;ae=ae.parentNode;X=M(ae,S,E,ad);if(ad!=j){X.appendChild(ab)}ab=X}}function M(t,aa,ad,ae){var Z,Y,ab,X,ac;if(aa){return z(t,ae)}if(t.nodeType==3){Z=t.nodeValue;if(ad){X=O[W];Y=Z.substring(X);ab=Z.substring(0,X)}else{X=O[A];Y=Z.substring(0,X);ab=Z.substring(X)}if(ae!=F){t.nodeValue=ab}if(ae==j){return}ac=c.clone(t,S);ac.nodeValue=Y;return ac}if(ae==j){return}return c.clone(t,S)}function z(X,t){if(t!=j){return t==F?c.clone(X,E):X}X.parentNode.removeChild(X)}function T(){return c.create("body",null,d()).outerText}return O}a.Range=b;b.prototype.toString=function(){return this.toStringIE()}})(tinymce.dom);(function(){function a(d){var b=this,h=d.dom,c=true,f=false;function e(i,j){var k,t=0,q,n,m,l,o,r,p=-1,s;k=i.duplicate();k.collapse(j);s=k.parentElement();if(s.ownerDocument!==d.dom.doc){return}while(s.contentEditable==="false"){s=s.parentNode}if(!s.hasChildNodes()){return{node:s,inside:1}}m=s.children;q=m.length-1;while(t<=q){r=Math.floor((t+q)/2);l=m[r];k.moveToElementText(l);p=k.compareEndPoints(j?"StartToStart":"EndToEnd",i);if(p>0){q=r-1}else{if(p<0){t=r+1}else{return{node:l}}}}if(p<0){if(!l){k.moveToElementText(s);k.collapse(true);l=s;n=true}else{k.collapse(false)}o=0;while(k.compareEndPoints(j?"StartToStart":"StartToEnd",i)!==0){if(k.move("character",1)===0||s!=k.parentElement()){break}o++}}else{k.collapse(true);o=0;while(k.compareEndPoints(j?"StartToStart":"StartToEnd",i)!==0){if(k.move("character",-1)===0||s!=k.parentElement()){break}o++}}return{node:l,position:p,offset:o,inside:n}}function g(){var i=d.getRng(),r=h.createRng(),l,k,p,q,m,j;l=i.item?i.item(0):i.parentElement();if(l.ownerDocument!=h.doc){return r}k=d.isCollapsed();if(i.item){r.setStart(l.parentNode,h.nodeIndex(l));r.setEnd(r.startContainer,r.startOffset+1);return r}function o(A){var u=e(i,A),s,y,z=0,x,v,t;s=u.node;y=u.offset;if(u.inside&&!s.hasChildNodes()){r[A?"setStart":"setEnd"](s,0);return}if(y===v){r[A?"setStartBefore":"setEndAfter"](s);return}if(u.position<0){x=u.inside?s.firstChild:s.nextSibling;if(!x){r[A?"setStartAfter":"setEndAfter"](s);return}if(!y){if(x.nodeType==3){r[A?"setStart":"setEnd"](x,0)}else{r[A?"setStartBefore":"setEndBefore"](x)}return}while(x){t=x.nodeValue;z+=t.length;if(z>=y){s=x;z-=y;z=t.length-z;break}x=x.nextSibling}}else{x=s.previousSibling;if(!x){return r[A?"setStartBefore":"setEndBefore"](s)}if(!y){if(s.nodeType==3){r[A?"setStart":"setEnd"](x,s.nodeValue.length)}else{r[A?"setStartAfter":"setEndAfter"](x)}return}while(x){z+=x.nodeValue.length;if(z>=y){s=x;z-=y;break}x=x.previousSibling}}r[A?"setStart":"setEnd"](s,z)}try{o(true);if(!k){o()}}catch(n){if(n.number==-2147024809){m=b.getBookmark(2);p=i.duplicate();p.collapse(true);l=p.parentElement();if(!k){p=i.duplicate();p.collapse(false);q=p.parentElement();q.innerHTML=q.innerHTML}l.innerHTML=l.innerHTML;b.moveToBookmark(m);i=d.getRng();o(true);if(!k){o()}}else{throw n}}return r}this.getBookmark=function(m){var j=d.getRng(),o,i,l={};function n(u){var t,p,s,r,q=[];t=u.parentNode;p=h.getRoot().parentNode;while(t!=p&&t.nodeType!==9){s=t.children;r=s.length;while(r--){if(u===s[r]){q.push(r);break}}u=t;t=t.parentNode}return q}function k(q){var p;p=e(j,q);if(p){return{position:p.position,offset:p.offset,indexes:n(p.node),inside:p.inside}}}if(m===2){if(!j.item){l.start=k(true);if(!d.isCollapsed()){l.end=k()}}else{l.start={ctrl:true,indexes:n(j.item(0))}}}return l};this.moveToBookmark=function(k){var j,i=h.doc.body;function m(o){var r,q,n,p;r=h.getRoot();for(q=o.length-1;q>=0;q--){p=r.children;n=o[q];if(n<=p.length-1){r=p[n]}}return r}function l(r){var n=k[r?"start":"end"],q,p,o;if(n){q=n.position>0;p=i.createTextRange();p.moveToElementText(m(n.indexes));offset=n.offset;if(offset!==o){p.collapse(n.inside||q);p.moveStart("character",q?-offset:offset)}else{p.collapse(r)}j.setEndPoint(r?"StartToStart":"EndToStart",p);if(r){j.collapse(true)}}}if(k.start){if(k.start.ctrl){j=i.createControlRange();j.addElement(m(k.start.indexes));j.select()}else{j=i.createTextRange();l(true);l();j.select()}}};this.addRange=function(i){var n,l,k,p,t,q,s,r=d.dom.doc,m=r.body;function j(A){var v,z,u,y,x;u=h.create("a");v=A?k:t;z=A?p:q;y=n.duplicate();if(v==r||v==r.documentElement){v=m;z=0}if(v.nodeType==3){v.parentNode.insertBefore(u,v);y.moveToElementText(u);y.moveStart("character",z);h.remove(u);n.setEndPoint(A?"StartToStart":"EndToEnd",y)}else{x=v.childNodes;if(x.length){if(z>=x.length){h.insertAfter(u,x[x.length-1])}else{v.insertBefore(u,x[z])}y.moveToElementText(u)}else{if(v.canHaveHTML){v.innerHTML="\uFEFF";u=v.firstChild;y.moveToElementText(u);y.collapse(f)}}n.setEndPoint(A?"StartToStart":"EndToEnd",y);h.remove(u)}}k=i.startContainer;p=i.startOffset;t=i.endContainer;q=i.endOffset;n=m.createTextRange();if(k==t&&k.nodeType==1){if(p==q&&!k.hasChildNodes()){if(k.canHaveHTML){s=k.previousSibling;if(s&&!s.hasChildNodes()&&h.isBlock(s)){s.innerHTML="\uFEFF"}else{s=null}k.innerHTML="\uFEFF\uFEFF";n.moveToElementText(k.lastChild);n.select();h.doc.selection.clear();k.innerHTML="";if(s){s.innerHTML=""}return}else{p=h.nodeIndex(k);k=k.parentNode}}if(p==q-1){try{l=m.createControlRange();l.addElement(k.childNodes[p]);l.select();return}catch(o){}}}j(true);j();n.select()};this.getRangeAt=g}tinymce.dom.TridentSelection=a})();(function(){var n=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,i="sizcache",o=0,r=Object.prototype.toString,h=false,g=true,q=/\\/g,u=/\r\n/g,x=/\W/;[0,0].sort(function(){g=false;return 0});var d=function(C,e,F,G){F=F||[];e=e||document;var I=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!C||typeof C!=="string"){return F}var z,K,N,y,J,M,L,E,B=true,A=d.isXML(e),D=[],H=C;do{n.exec("");z=n.exec(H);if(z){H=z[3];D.push(z[1]);if(z[2]){y=z[3];break}}}while(z);if(D.length>1&&j.exec(C)){if(D.length===2&&k.relative[D[0]]){K=s(D[0]+D[1],e,G)}else{K=k.relative[D[0]]?[e]:d(D.shift(),e);while(D.length){C=D.shift();if(k.relative[C]){C+=D.shift()}K=s(C,K,G)}}}else{if(!G&&D.length>1&&e.nodeType===9&&!A&&k.match.ID.test(D[0])&&!k.match.ID.test(D[D.length-1])){J=d.find(D.shift(),e,A);e=J.expr?d.filter(J.expr,J.set)[0]:J.set[0]}if(e){J=G?{expr:D.pop(),set:l(G)}:d.find(D.pop(),D.length===1&&(D[0]==="~"||D[0]==="+")&&e.parentNode?e.parentNode:e,A);K=J.expr?d.filter(J.expr,J.set):J.set;if(D.length>0){N=l(K)}else{B=false}while(D.length){M=D.pop();L=M;if(!k.relative[M]){M=""}else{L=D.pop()}if(L==null){L=e}k.relative[M](N,L,A)}}else{N=D=[]}}if(!N){N=K}if(!N){d.error(M||C)}if(r.call(N)==="[object Array]"){if(!B){F.push.apply(F,N)}else{if(e&&e.nodeType===1){for(E=0;N[E]!=null;E++){if(N[E]&&(N[E]===true||N[E].nodeType===1&&d.contains(e,N[E]))){F.push(K[E])}}}else{for(E=0;N[E]!=null;E++){if(N[E]&&N[E].nodeType===1){F.push(K[E])}}}}}else{l(N,F)}if(y){d(y,I,F,G);d.uniqueSort(F)}return F};d.uniqueSort=function(y){if(p){h=g;y.sort(p);if(h){for(var e=1;e0};d.find=function(E,e,F){var D,z,B,A,C,y;if(!E){return[]}for(z=0,B=k.order.length;z":function(D,y){var C,B=typeof y==="string",z=0,e=D.length;if(B&&!x.test(y)){y=y.toLowerCase();for(;z=0)){if(!z){e.push(C)}}else{if(z){y[B]=false}}}}return false},ID:function(e){return e[1].replace(q,"")},TAG:function(y,e){return y[1].replace(q,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){if(!e[2]){d.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g,"");var y=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(y[1]+(y[2]||1))-0;e[3]=y[3]-0}else{if(e[2]){d.error(e[0])}}e[0]=o++;return e},ATTR:function(B,y,z,e,C,D){var A=B[1]=B[1].replace(q,"");if(!D&&k.attrMap[A]){B[1]=k.attrMap[A]}B[4]=(B[4]||B[5]||"").replace(q,"");if(B[2]==="~="){B[4]=" "+B[4]+" "}return B},PSEUDO:function(B,y,z,e,C){if(B[1]==="not"){if((n.exec(B[3])||"").length>1||/^\w/.test(B[3])){B[3]=d(B[3],null,null,y)}else{var A=d.filter(B[3],y,z,true^C);if(!z){e.push.apply(e,A)}return false}}else{if(k.match.POS.test(B[0])||k.match.CHILD.test(B[0])){return true}}return B},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(z,y,e){return !!d(e[3],z).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(z){var e=z.getAttribute("type"),y=z.type;return z.nodeName.toLowerCase()==="input"&&"text"===y&&(e===y||e===null)},radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type},file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type},password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type},submit:function(y){var e=y.nodeName.toLowerCase();return(e==="input"||e==="button")&&"submit"===y.type},image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type},reset:function(y){var e=y.nodeName.toLowerCase();return(e==="input"||e==="button")&&"reset"===y.type},button:function(y){var e=y.nodeName.toLowerCase();return e==="input"&&"button"===y.type||e==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(y,e){return e===0},last:function(z,y,e,A){return y===A.length-1},even:function(y,e){return e%2===0},odd:function(y,e){return e%2===1},lt:function(z,y,e){return ye[3]-0},nth:function(z,y,e){return e[3]-0===y},eq:function(z,y,e){return e[3]-0===y}},filter:{PSEUDO:function(z,E,D,F){var e=E[1],y=k.filters[e];if(y){return y(z,D,E,F)}else{if(e==="contains"){return(z.textContent||z.innerText||b([z])||"").indexOf(E[3])>=0}else{if(e==="not"){var A=E[3];for(var C=0,B=A.length;C=0)}}},ID:function(y,e){return y.nodeType===1&&y.getAttribute("id")===e},TAG:function(y,e){return(e==="*"&&y.nodeType===1)||!!y.nodeName&&y.nodeName.toLowerCase()===e},CLASS:function(y,e){return(" "+(y.className||y.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(C,A){var z=A[1],e=d.attr?d.attr(C,z):k.attrHandle[z]?k.attrHandle[z](C):C[z]!=null?C[z]:C.getAttribute(z),D=e+"",B=A[2],y=A[4];return e==null?B==="!=":!B&&d.attr?e!=null:B==="="?D===y:B==="*="?D.indexOf(y)>=0:B==="~="?(" "+D+" ").indexOf(y)>=0:!y?D&&e!==false:B==="!="?D!==y:B==="^="?D.indexOf(y)===0:B==="$="?D.substr(D.length-y.length)===y:B==="|="?D===y||D.substr(0,y.length+1)===y+"-":false},POS:function(B,y,z,C){var e=y[2],A=k.setFilters[e];if(A){return A(B,z,y,C)}}}};var j=k.match.POS,c=function(y,e){return"\\"+(e-0+1)};for(var f in k.match){k.match[f]=new RegExp(k.match[f].source+(/(?![^\[]*\])(?![^\(]*\))/.source));k.leftMatch[f]=new RegExp(/(^(?:.|\r|\n)*?)/.source+k.match[f].source.replace(/\\(\d+)/g,c))}k.match.globalPOS=j;var l=function(y,e){y=Array.prototype.slice.call(y,0);if(e){e.push.apply(e,y);return e}return y};try{Array.prototype.slice.call(document.documentElement.childNodes,0)[0].nodeType}catch(v){l=function(B,A){var z=0,y=A||[];if(r.call(B)==="[object Array]"){Array.prototype.push.apply(y,B)}else{if(typeof B.length==="number"){for(var e=B.length;z";e.insertBefore(y,e.firstChild);if(document.getElementById(z)){k.find.ID=function(B,C,D){if(typeof C.getElementById!=="undefined"&&!D){var A=C.getElementById(B[1]);return A?A.id===B[1]||typeof A.getAttributeNode!=="undefined"&&A.getAttributeNode("id").nodeValue===B[1]?[A]:undefined:[]}};k.filter.ID=function(C,A){var B=typeof C.getAttributeNode!=="undefined"&&C.getAttributeNode("id");return C.nodeType===1&&B&&B.nodeValue===A}}e.removeChild(y);e=y=null})();(function(){var e=document.createElement("div");e.appendChild(document.createComment(""));if(e.getElementsByTagName("*").length>0){k.find.TAG=function(y,C){var B=C.getElementsByTagName(y[1]);if(y[1]==="*"){var A=[];for(var z=0;B[z];z++){if(B[z].nodeType===1){A.push(B[z])}}B=A}return B}}e.innerHTML="";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){k.attrHandle.href=function(y){return y.getAttribute("href",2)}}e=null})();if(document.querySelectorAll){(function(){var e=d,A=document.createElement("div"),z="__sizzle__";A.innerHTML="

          ";if(A.querySelectorAll&&A.querySelectorAll(".TEST").length===0){return}d=function(L,C,G,K){C=C||document;if(!K&&!d.isXML(C)){var J=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(L);if(J&&(C.nodeType===1||C.nodeType===9)){if(J[1]){return l(C.getElementsByTagName(L),G)}else{if(J[2]&&k.find.CLASS&&C.getElementsByClassName){return l(C.getElementsByClassName(J[2]),G)}}}if(C.nodeType===9){if(L==="body"&&C.body){return l([C.body],G)}else{if(J&&J[3]){var F=C.getElementById(J[3]);if(F&&F.parentNode){if(F.id===J[3]){return l([F],G)}}else{return l([],G)}}}try{return l(C.querySelectorAll(L),G)}catch(H){}}else{if(C.nodeType===1&&C.nodeName.toLowerCase()!=="object"){var D=C,E=C.getAttribute("id"),B=E||z,N=C.parentNode,M=/^\s*[+~]/.test(L);if(!E){C.setAttribute("id",B)}else{B=B.replace(/'/g,"\\$&")}if(M&&N){C=C.parentNode}try{if(!M||N){return l(C.querySelectorAll("[id='"+B+"'] "+L),G)}}catch(I){}finally{if(!E){D.removeAttribute("id")}}}}}return e(L,C,G,K)};for(var y in e){d[y]=e[y]}A=null})()}(function(){var e=document.documentElement,z=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(z){var B=!z.call(document.createElement("div"),"div"),y=false;try{z.call(document.documentElement,"[test!='']:sizzle")}catch(A){y=true}d.matchesSelector=function(D,F){F=F.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!d.isXML(D)){try{if(y||!k.match.PSEUDO.test(F)&&!/!=/.test(F)){var C=z.call(D,F);if(C||!B||D.document&&D.document.nodeType!==11){return C}}}catch(E){}}return d(F,null,null,[D]).length>0}}})();(function(){var e=document.createElement("div");e.innerHTML="
          ";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}k.order.splice(1,0,"CLASS");k.find.CLASS=function(y,z,A){if(typeof z.getElementsByClassName!=="undefined"&&!A){return z.getElementsByClassName(y[1])}};e=null})();function a(y,D,C,G,E,F){for(var A=0,z=G.length;A0){B=e;break}}}e=e[y]}G[A]=B}}}if(document.documentElement.contains){d.contains=function(y,e){return y!==e&&(y.contains?y.contains(e):true)}}else{if(document.documentElement.compareDocumentPosition){d.contains=function(y,e){return !!(y.compareDocumentPosition(e)&16)}}else{d.contains=function(){return false}}}d.isXML=function(e){var y=(e?e.ownerDocument||e:0).documentElement;return y?y.nodeName!=="HTML":false};var s=function(z,e,D){var C,E=[],B="",F=e.nodeType?[e]:e;while((C=k.match.PSEUDO.exec(z))){B+=C[0];z=z.replace(k.match.PSEUDO,"")}z=k.relative[z]?z+"*":z;for(var A=0,y=F.length;A"+(i.item?i.item(0).outerHTML:i.htmlText);m.removeChild(m.firstChild)}else{m.innerHTML=i.toString()}}if(/^\s/.test(m.innerHTML)){j=" "}if(/\s+$/.test(m.innerHTML)){l=" "}h.getInner=true;h.content=g.isCollapsed()?"":j+g.serializer.serialize(m,h)+l;g.onGetContent.dispatch(g,h);return h.content},setContent:function(h,j){var o=this,g=o.getRng(),k,l=o.win.document,n,m;j=j||{format:"html"};j.set=true;h=j.content=h;if(!j.no_events){o.onBeforeSetContent.dispatch(o,j)}h=j.content;if(g.insertNode){h+='_';if(g.startContainer==l&&g.endContainer==l){l.body.innerHTML=h}else{g.deleteContents();if(l.body.childNodes.length===0){l.body.innerHTML=h}else{if(g.createContextualFragment){g.insertNode(g.createContextualFragment(h))}else{n=l.createDocumentFragment();m=l.createElement("div");n.appendChild(m);m.outerHTML=h;g.insertNode(n)}}}k=o.dom.get("__caret");g=l.createRange();g.setStartBefore(k);g.setEndBefore(k);o.setRng(g);o.dom.remove("__caret");try{o.setRng(g)}catch(i){}}else{if(g.item){l.execCommand("Delete",false,null);g=o.getRng()}if(/^\s+/.test(h)){g.pasteHTML('_'+h);o.dom.remove("__mce_tmp")}else{g.pasteHTML(h)}}if(!j.no_events){o.onSetContent.dispatch(o,j)}},getStart:function(){var i=this,h=i.getRng(),j,g,l,k;if(h.duplicate||h.item){if(h.item){return h.item(0)}l=h.duplicate();l.collapse(1);j=l.parentElement();if(j.ownerDocument!==i.dom.doc){j=i.dom.getRoot()}g=k=h.parentElement();while(k=k.parentNode){if(k==j){j=g;break}}return j}else{j=h.startContainer;if(j.nodeType==1&&j.hasChildNodes()){j=j.childNodes[Math.min(j.childNodes.length-1,h.startOffset)]}if(j&&j.nodeType==3){return j.parentNode}return j}},getEnd:function(){var h=this,g=h.getRng(),j,i;if(g.duplicate||g.item){if(g.item){return g.item(0)}g=g.duplicate();g.collapse(0);j=g.parentElement();if(j.ownerDocument!==h.dom.doc){j=h.dom.getRoot()}if(j&&j.nodeName=="BODY"){return j.lastChild||j}return j}else{j=g.endContainer;i=g.endOffset;if(j.nodeType==1&&j.hasChildNodes()){j=j.childNodes[i>0?i-1:i]}if(j&&j.nodeType==3){return j.parentNode}return j}},getBookmark:function(s,v){var y=this,n=y.dom,h,k,j,o,i,p,q,m="\uFEFF",x;function g(z,A){var t=0;e(n.select(z),function(C,B){if(C==A){t=B}});return t}function u(t){function z(E){var A,D,C,B=E?"start":"end";A=t[B+"Container"];D=t[B+"Offset"];if(A.nodeType==1&&A.nodeName=="TR"){C=A.childNodes;A=C[Math.min(E?D:D-1,C.length-1)];if(A){D=E?0:A.childNodes.length;t["set"+(E?"Start":"End")](A,D)}}}z(true);z();return t}function l(){var z=y.getRng(true),t=n.getRoot(),A={};function B(E,J){var D=E[J?"startContainer":"endContainer"],I=E[J?"startOffset":"endOffset"],C=[],F,H,G=0;if(D.nodeType==3){if(v){for(F=D.previousSibling;F&&F.nodeType==3;F=F.previousSibling){I+=F.nodeValue.length}}C.push(I)}else{H=D.childNodes;if(I>=H.length&&H.length){G=1;I=Math.max(0,H.length-1)}C.push(y.dom.nodeIndex(H[I],v)+G)}for(;D&&D!=t;D=D.parentNode){C.push(y.dom.nodeIndex(D,v))}return C}A.start=B(z,true);if(!y.isCollapsed()){A.end=B(z)}return A}if(s==2){if(y.tridentSel){return y.tridentSel.getBookmark(s)}return l()}if(s){return{rng:y.getRng()}}h=y.getRng();j=n.uniqueId();o=tinyMCE.activeEditor.selection.isCollapsed();x="overflow:hidden;line-height:0px";if(h.duplicate||h.item){if(!h.item){k=h.duplicate();try{h.collapse();h.pasteHTML(''+m+"");if(!o){k.collapse(false);h.moveToElementText(k.parentElement());if(h.compareEndPoints("StartToEnd",k)===0){k.move("character",-1)}k.pasteHTML(''+m+"")}}catch(r){return null}}else{p=h.item(0);i=p.nodeName;return{name:i,index:g(i,p)}}}else{p=y.getNode();i=p.nodeName;if(i=="IMG"){return{name:i,index:g(i,p)}}k=u(h.cloneRange());if(!o){k.collapse(false);k.insertNode(n.create("span",{"data-mce-type":"bookmark",id:j+"_end",style:x},m))}h=u(h);h.collapse(true);h.insertNode(n.create("span",{"data-mce-type":"bookmark",id:j+"_start",style:x},m))}y.moveToBookmark({id:j,keep:1});return{id:j}},moveToBookmark:function(o){var s=this,m=s.dom,j,i,g,r,k,u,p,q;function h(A){var t=o[A?"start":"end"],x,y,z,v;if(t){z=t[0];for(y=r,x=t.length-1;x>=1;x--){v=y.childNodes;if(t[x]>v.length-1){return}y=v[t[x]]}if(y.nodeType===3){z=Math.min(t[0],y.nodeValue.length)}if(y.nodeType===1){z=Math.min(t[0],y.childNodes.length)}if(A){g.setStart(y,z)}else{g.setEnd(y,z)}}return true}function l(B){var v=m.get(o.id+"_"+B),A,t,y,z,x=o.keep;if(v){A=v.parentNode;if(B=="start"){if(!x){t=m.nodeIndex(v)}else{A=v.firstChild;t=1}k=u=A;p=q=t}else{if(!x){t=m.nodeIndex(v)}else{A=v.firstChild;t=1}u=A;q=t}if(!x){z=v.previousSibling;y=v.nextSibling;e(d.grep(v.childNodes),function(C){if(C.nodeType==3){C.nodeValue=C.nodeValue.replace(/\uFEFF/g,"")}});while(v=m.get(o.id+"_"+B)){m.remove(v,1)}if(z&&y&&z.nodeType==y.nodeType&&z.nodeType==3&&!d.isOpera){t=z.nodeValue.length;z.appendData(y.nodeValue);m.remove(y);if(B=="start"){k=u=z;p=q=t}else{u=z;q=t}}}}}function n(t){if(m.isBlock(t)&&!t.innerHTML&&!b){t.innerHTML='
          '}return t}if(o){if(o.start){g=m.createRng();r=m.getRoot();if(s.tridentSel){return s.tridentSel.moveToBookmark(o)}if(h(true)&&h()){s.setRng(g)}}else{if(o.id){l("start");l("end");if(k){g=m.createRng();g.setStart(n(k),p);g.setEnd(n(u),q);s.setRng(g)}}else{if(o.name){s.select(m.select(o.name)[o.index])}else{if(o.rng){s.setRng(o.rng)}}}}}},select:function(l,k){var j=this,m=j.dom,h=m.createRng(),g;function i(n,p){var o=new a(n,n);do{if(n.nodeType==3&&d.trim(n.nodeValue).length!==0){if(p){h.setStart(n,0)}else{h.setEnd(n,n.nodeValue.length)}return}if(n.nodeName=="BR"){if(p){h.setStartBefore(n)}else{h.setEndBefore(n)}return}}while(n=(p?o.next():o.prev()))}if(l){g=m.nodeIndex(l);h.setStart(l.parentNode,g);h.setEnd(l.parentNode,g+1);if(k){i(l,1);i(l)}j.setRng(h)}return l},isCollapsed:function(){var g=this,i=g.getRng(),h=g.getSel();if(!i||i.item){return false}if(i.compareEndPoints){return i.compareEndPoints("StartToEnd",i)===0}return !h||i.collapsed},collapse:function(g){var i=this,h=i.getRng(),j;if(h.item){j=h.item(0);h=i.win.document.body.createTextRange();h.moveToElementText(j)}h.collapse(!!g);i.setRng(h)},getSel:function(){var h=this,g=this.win;return g.getSelection?g.getSelection():g.document.selection},getRng:function(m){var h=this,j,g,l,k=h.win.document;if(m&&h.tridentSel){return h.tridentSel.getRangeAt(0)}try{if(j=h.getSel()){g=j.rangeCount>0?j.getRangeAt(0):(j.createRange?j.createRange():k.createRange())}}catch(i){}if(d.isIE&&g&&g.setStart&&k.selection.createRange().item){l=k.selection.createRange().item(0);g=k.createRange();g.setStartBefore(l);g.setEndAfter(l)}if(!g){g=k.createRange?k.createRange():k.body.createTextRange()}if(g.setStart&&g.startContainer.nodeType===9&&g.collapsed){l=h.dom.getRoot();g.setStart(l,0);g.setEnd(l,0)}if(h.selectedRange&&h.explicitRange){if(g.compareBoundaryPoints(g.START_TO_START,h.selectedRange)===0&&g.compareBoundaryPoints(g.END_TO_END,h.selectedRange)===0){g=h.explicitRange}else{h.selectedRange=null;h.explicitRange=null}}return g},setRng:function(k,g){var j,i=this;if(!i.tridentSel){j=i.getSel();if(j){i.explicitRange=k;try{j.removeAllRanges()}catch(h){}j.addRange(k);if(g===false&&j.extend){j.collapse(k.endContainer,k.endOffset);j.extend(k.startContainer,k.startOffset)}i.selectedRange=j.rangeCount>0?j.getRangeAt(0):null}}else{if(k.cloneRange){try{i.tridentSel.addRange(k);return}catch(h){}}try{k.select()}catch(h){}}},setNode:function(h){var g=this;g.setContent(g.dom.getOuterHTML(h));return h},getNode:function(){var i=this,h=i.getRng(),j=i.getSel(),m,l=h.startContainer,g=h.endContainer;function k(q,o){var p=q;while(q&&q.nodeType===3&&q.length===0){q=o?q.nextSibling:q.previousSibling}return q||p}if(!h){return i.dom.getRoot()}if(h.setStart){m=h.commonAncestorContainer;if(!h.collapsed){if(h.startContainer==h.endContainer){if(h.endOffset-h.startOffset<2){if(h.startContainer.hasChildNodes()){m=h.startContainer.childNodes[h.startOffset]}}}if(l.nodeType===3&&g.nodeType===3){if(l.length===h.startOffset){l=k(l.nextSibling,true)}else{l=l.parentNode}if(h.endOffset===0){g=k(g.previousSibling,false)}else{g=g.parentNode}if(l&&l===g){return l}}}if(m&&m.nodeType==3){return m.parentNode}return m}return h.item?h.item(0):h.parentElement()},getSelectedBlocks:function(p,h){var o=this,k=o.dom,m,l,i,j=[];m=k.getParent(p||o.getStart(),k.isBlock);l=k.getParent(h||o.getEnd(),k.isBlock);if(m){j.push(m)}if(m&&l&&m!=l){i=m;var g=new a(m,k.getRoot());while((i=g.next())&&i!=l){if(k.isBlock(i)){j.push(i)}}}if(l&&m!=l){j.push(l)}return j},isForward:function(){var i=this.dom,g=this.getSel(),j,h;if(!g||g.anchorNode==null||g.focusNode==null){return true}j=i.createRng();j.setStart(g.anchorNode,g.anchorOffset);j.collapse(true);h=i.createRng();h.setStart(g.focusNode,g.focusOffset);h.collapse(true);return j.compareBoundaryPoints(j.START_TO_START,h)<=0},normalize:function(){var h=this,g,m,l,j,i;function k(p){var o,r,n,s=h.dom,u=s.getRoot(),q,t,v;function y(z,A){var B=new a(z,s.getParent(z.parentNode,s.isBlock)||u);while(z=B[A?"prev":"next"]()){if(z.nodeName==="BR"){return true}}}function x(B,z){var C,A;z=z||o;C=new a(z,s.getParent(z.parentNode,s.isBlock)||u);while(q=C[B?"prev":"next"]()){if(q.nodeType===3&&q.nodeValue.length>0){o=q;r=B?q.nodeValue.length:0;m=true;return}if(s.isBlock(q)||t[q.nodeName.toLowerCase()]){return}A=q}if(l&&A){o=A;m=true;r=0}}o=g[(p?"start":"end")+"Container"];r=g[(p?"start":"end")+"Offset"];t=s.schema.getNonEmptyElements();if(o.nodeType===9){o=s.getRoot();r=0}if(o===u){if(p){q=o.childNodes[r>0?r-1:0];if(q){v=q.nodeName.toLowerCase();if(t[q.nodeName]||q.nodeName=="TABLE"){return}}}if(o.hasChildNodes()){o=o.childNodes[Math.min(!p&&r>0?r-1:r,o.childNodes.length-1)];r=0;if(o.hasChildNodes()&&!/TABLE/.test(o.nodeName)){q=o;n=new a(o,u);do{if(q.nodeType===3&&q.nodeValue.length>0){r=p?0:q.nodeValue.length;o=q;m=true;break}if(t[q.nodeName.toLowerCase()]){r=s.nodeIndex(q);o=q.parentNode;if(q.nodeName=="IMG"&&!p){r++}m=true;break}}while(q=(p?n.next():n.prev()))}}}if(l){if(o.nodeType===3&&r===0){x(true)}if(o.nodeType===1){q=o.childNodes[r];if(q&&q.nodeName==="BR"&&!y(q)&&!y(q,true)){x(true,o.childNodes[r])}}}if(p&&!l&&o.nodeType===3&&r===o.nodeValue.length){x(false)}if(m){g["set"+(p?"Start":"End")](o,r)}}if(d.isIE){return}g=h.getRng();l=g.collapsed;k(true);if(!l){k()}if(m){if(l){g.collapse(true)}h.setRng(g,h.isForward())}},selectorChanged:function(g,j){var h=this,i;if(!h.selectorChangedData){h.selectorChangedData={};i={};h.editor.onNodeChange.addToTop(function(l,k,o){var p=h.dom,m=p.getParents(o,null,p.getRoot()),n={};e(h.selectorChangedData,function(r,q){e(m,function(s){if(p.is(s,q)){if(!i[q]){e(r,function(t){t(true,{node:s,selector:q,parents:m})});i[q]=r}n[q]=r;return false}})});e(i,function(r,q){if(!n[q]){delete i[q];e(r,function(s){s(false,{node:o,selector:q,parents:m})})}})})}if(!h.selectorChangedData[g]){h.selectorChangedData[g]=[]}h.selectorChangedData[g].push(j);return h},destroy:function(h){var g=this;g.win=null;if(!h){d.removeUnload(g.destroy)}},_fixIESelection:function(){var h=this.dom,n=h.doc,i=n.body,k,o,g;function j(p,s){var q=i.createTextRange();try{q.moveToPoint(p,s)}catch(r){q=null}return q}function m(q){var p;if(q.button){p=j(q.x,q.y);if(p){if(p.compareEndPoints("StartToStart",o)>0){p.setEndPoint("StartToStart",o)}else{p.setEndPoint("EndToEnd",o)}p.select()}}else{l()}}function l(){var p=n.selection.createRange();if(o&&!p.item&&p.compareEndPoints("StartToEnd",p)===0){o.select()}h.unbind(n,"mouseup",l);h.unbind(n,"mousemove",m);o=k=0}n.documentElement.unselectable=true;h.bind(n,["mousedown","contextmenu"],function(p){if(p.target.nodeName==="HTML"){if(k){l()}g=n.documentElement;if(g.scrollHeight>g.clientHeight){return}k=1;o=j(p.x,p.y);if(o){h.bind(n,"mouseup",l);h.bind(n,"mousemove",m);h.win.focus();o.select()}}})}})})(tinymce);(function(a){a.dom.Serializer=function(e,i,f){var h,b,d=a.isIE,g=a.each,c;if(!e.apply_source_formatting){e.indent=false}i=i||a.DOM;f=f||new a.html.Schema(e);e.entity_encoding=e.entity_encoding||"named";e.remove_trailing_brs="remove_trailing_brs" in e?e.remove_trailing_brs:true;h=new a.util.Dispatcher(self);b=new a.util.Dispatcher(self);c=new a.html.DomParser(e,f);c.addAttributeFilter("src,href,style",function(k,j){var o=k.length,l,q,n="data-mce-"+j,p=e.url_converter,r=e.url_converter_scope,m;while(o--){l=k[o];q=l.attributes.map[n];if(q!==m){l.attr(j,q.length>0?q:null);l.attr(n,null)}else{q=l.attributes.map[j];if(j==="style"){q=i.serializeStyle(i.parseStyle(q),l.name)}else{if(p){q=p.call(r,q,j,l.name)}}l.attr(j,q.length>0?q:null)}}});c.addAttributeFilter("class",function(j,k){var l=j.length,m,n;while(l--){m=j[l];n=m.attr("class").replace(/(?:^|\s)mce(Item\w+|Selected)(?!\S)/g,"");m.attr("class",n.length>0?n:null)}});c.addAttributeFilter("data-mce-type",function(j,l,k){var m=j.length,n;while(m--){n=j[m];if(n.attributes.map["data-mce-type"]==="bookmark"&&!k.cleanup){n.remove()}}});c.addAttributeFilter("data-mce-expando",function(j,l,k){var m=j.length;while(m--){j[m].attr(l,null)}});c.addNodeFilter("script,style",function(k,l){var m=k.length,n,o;function j(p){return p.replace(/()/g,"\n").replace(/^[\r\n]*|[\r\n]*$/g,"").replace(/^\s*(()?|\s*\/\/\s*\]\]>(-->)?|\/\/\s*(-->)?|\]\]>|\/\*\s*-->\s*\*\/|\s*-->\s*)\s*$/g,"")}while(m--){n=k[m];o=n.firstChild?n.firstChild.value:"";if(l==="script"){n.attr("type",(n.attr("type")||"text/javascript").replace(/^mce\-/,""));if(o.length>0){n.firstChild.value="// "}}else{if(o.length>0){n.firstChild.value=""}}}});c.addNodeFilter("#comment",function(j,k){var l=j.length,m;while(l--){m=j[l];if(m.value.indexOf("[CDATA[")===0){m.name="#cdata";m.type=4;m.value=m.value.replace(/^\[CDATA\[|\]\]$/g,"")}else{if(m.value.indexOf("mce:protected ")===0){m.name="#text";m.type=3;m.raw=true;m.value=unescape(m.value).substr(14)}}}});c.addNodeFilter("xml:namespace,input",function(j,k){var l=j.length,m;while(l--){m=j[l];if(m.type===7){m.remove()}else{if(m.type===1){if(k==="input"&&!("type" in m.attributes.map)){m.attr("type","text")}}}}});if(e.fix_list_elements){c.addNodeFilter("ul,ol",function(k,l){var m=k.length,n,j;while(m--){n=k[m];j=n.parent;if(j.name==="ul"||j.name==="ol"){if(n.prev&&n.prev.name==="li"){n.prev.append(n)}}}})}c.addAttributeFilter("data-mce-src,data-mce-href,data-mce-style",function(j,k){var l=j.length;while(l--){j[l].attr(k,null)}});return{schema:f,addNodeFilter:c.addNodeFilter,addAttributeFilter:c.addAttributeFilter,onPreProcess:h,onPostProcess:b,serialize:function(o,m){var l,p,k,j,n;if(d&&i.select("script,style,select,map").length>0){n=o.innerHTML;o=o.cloneNode(false);i.setHTML(o,n)}else{o=o.cloneNode(true)}l=o.ownerDocument.implementation;if(l.createHTMLDocument){p=l.createHTMLDocument("");g(o.nodeName=="BODY"?o.childNodes:[o],function(q){p.body.appendChild(p.importNode(q,true))});if(o.nodeName!="BODY"){o=p.body.firstChild}else{o=p.body}k=i.doc;i.doc=p}m=m||{};m.format=m.format||"html";if(!m.no_events){m.node=o;h.dispatch(self,m)}j=new a.html.Serializer(e,f);m.content=j.serialize(c.parse(a.trim(m.getInner?o.innerHTML:i.getOuterHTML(o)),m));if(!m.cleanup){m.content=m.content.replace(/\uFEFF|\u200B/g,"")}if(!m.no_events){b.dispatch(self,m)}if(k){i.doc=k}m.node=null;return m.content},addRules:function(j){f.addValidElements(j)},setRules:function(j){f.setValidElements(j)}}}})(tinymce);(function(a){a.dom.ScriptLoader=function(h){var c=0,k=1,i=2,l={},j=[],e={},d=[],g=0,f;function b(m,v){var x=this,q=a.DOM,s,o,r,n;function p(){q.remove(n);if(s){s.onreadystatechange=s.onload=s=null}v()}function u(){if(typeof(console)!=="undefined"&&console.log){console.log("Failed to load: "+m)}}n=q.uniqueId();if(a.isIE6){o=new a.util.URI(m);r=location;if(o.host==r.hostname&&o.port==r.port&&(o.protocol+":")==r.protocol&&o.protocol.toLowerCase()!="file"){a.util.XHR.send({url:a._addVer(o.getURI()),success:function(y){var t=q.create("script",{type:"text/javascript"});t.text=y;document.getElementsByTagName("head")[0].appendChild(t);q.remove(t);p()},error:u});return}}s=document.createElement("script");s.id=n;s.type="text/javascript";s.src=a._addVer(m);if(!a.isIE){s.onload=p}s.onerror=u;if(!a.isOpera){s.onreadystatechange=function(){var t=s.readyState;if(t=="complete"||t=="loaded"){p()}}}(document.getElementsByTagName("head")[0]||document.body).appendChild(s)}this.isDone=function(m){return l[m]==i};this.markDone=function(m){l[m]=i};this.add=this.load=function(m,q,n){var o,p=l[m];if(p==f){j.push(m);l[m]=c}if(q){if(!e[m]){e[m]=[]}e[m].push({func:q,scope:n||this})}};this.loadQueue=function(n,m){this.loadScripts(j,n,m)};this.loadScripts=function(m,q,p){var o;function n(r){a.each(e[r],function(s){s.func.call(s.scope)});e[r]=f}d.push({func:q,scope:p||this});o=function(){var r=a.grep(m);m.length=0;a.each(r,function(s){if(l[s]==i){n(s);return}if(l[s]!=k){l[s]=k;g++;b(s,function(){l[s]=i;g--;n(s);o()})}});if(!g){a.each(d,function(s){s.func.call(s.scope)});d.length=0}};o()}};a.ScriptLoader=new a.dom.ScriptLoader()})(tinymce);(function(a){a.dom.RangeUtils=function(c){var b="\uFEFF";this.walk=function(d,s){var i=d.startContainer,l=d.startOffset,t=d.endContainer,m=d.endOffset,j,g,o,h,r,q,e;e=c.select("td.mceSelected,th.mceSelected");if(e.length>0){a.each(e,function(u){s([u])});return}function f(u){var v;v=u[0];if(v.nodeType===3&&v===i&&l>=v.nodeValue.length){u.splice(0,1)}v=u[u.length-1];if(m===0&&u.length>0&&v===t&&v.nodeType===3){u.splice(u.length-1,1)}return u}function p(x,v,u){var y=[];for(;x&&x!=u;x=x[v]){y.push(x)}return y}function n(v,u){do{if(v.parentNode==u){return v}v=v.parentNode}while(v)}function k(x,v,y){var u=y?"nextSibling":"previousSibling";for(h=x,r=h.parentNode;h&&h!=v;h=r){r=h.parentNode;q=p(h==x?h:h[u],u);if(q.length){if(!y){q.reverse()}s(f(q))}}}if(i.nodeType==1&&i.hasChildNodes()){i=i.childNodes[l]}if(t.nodeType==1&&t.hasChildNodes()){t=t.childNodes[Math.min(m-1,t.childNodes.length-1)]}if(i==t){return s(f([i]))}j=c.findCommonAncestor(i,t);for(h=i;h;h=h.parentNode){if(h===t){return k(i,j,true)}if(h===j){break}}for(h=t;h;h=h.parentNode){if(h===i){return k(t,j)}if(h===j){break}}g=n(i,j)||i;o=n(t,j)||t;k(i,g,true);q=p(g==i?g:g.nextSibling,"nextSibling",o==t?o.nextSibling:o);if(q.length){s(f(q))}k(t,o)};this.split=function(e){var h=e.startContainer,d=e.startOffset,i=e.endContainer,g=e.endOffset;function f(j,k){return j.splitText(k)}if(h==i&&h.nodeType==3){if(d>0&&dd){g=g-d;h=i=f(i,g).previousSibling;g=i.nodeValue.length;d=0}else{g=0}}}else{if(h.nodeType==3&&d>0&&d0&&g=m.length){r=0}}t=m[r];f.setAttrib(g,"tabindex","-1");f.setAttrib(t.id,"tabindex","0");f.get(t.id).focus();if(e.actOnFocus){e.onAction(t.id)}if(s){a.cancel(s)}};p=function(z){var v=37,u=39,y=38,A=40,r=27,t=14,s=13,x=32;switch(z.keyCode){case v:if(i){q.moveFocus(-1)}break;case u:if(i){q.moveFocus(1)}break;case y:if(o){q.moveFocus(-1)}break;case A:if(o){q.moveFocus(1)}break;case r:if(e.onCancel){e.onCancel();a.cancel(z)}break;case t:case s:case x:if(e.onAction){e.onAction(g);a.cancel(z)}break}};c(m,function(t,r){var s,u;if(!t.id){t.id=f.uniqueId("_mce_item_")}u=f.get(t.id);if(l){f.bind(u,"blur",h);s="-1"}else{s=(r===0?"0":"-1")}u.setAttribute("tabindex",s);f.bind(u,"focus",k)});if(m[0]){g=m[0].id}f.setAttrib(n,"tabindex","-1");var j=f.get(n);f.bind(j,"focus",d);f.bind(j,"keydown",p)}})})(tinymce);(function(c){var b=c.DOM,a=c.is;c.create("tinymce.ui.Control",{Control:function(f,e,d){this.id=f;this.settings=e=e||{};this.rendered=false;this.onRender=new c.util.Dispatcher(this);this.classPrefix="";this.scope=e.scope||this;this.disabled=0;this.active=0;this.editor=d},setAriaProperty:function(f,e){var d=b.get(this.id+"_aria")||b.get(this.id);if(d){b.setAttrib(d,"aria-"+f,!!e)}},focus:function(){b.get(this.id).focus()},setDisabled:function(d){if(d!=this.disabled){this.setAriaProperty("disabled",d);this.setState("Disabled",d);this.setState("Enabled",!d);this.disabled=d}},isDisabled:function(){return this.disabled},setActive:function(d){if(d!=this.active){this.setState("Active",d);this.active=d;this.setAriaProperty("pressed",d)}},isActive:function(){return this.active},setState:function(f,d){var e=b.get(this.id);f=this.classPrefix+f;if(d){b.addClass(e,f)}else{b.removeClass(e,f)}},isRendered:function(){return this.rendered},renderHTML:function(){},renderTo:function(d){b.setHTML(d,this.renderHTML())},postRender:function(){var e=this,d;if(a(e.disabled)){d=e.disabled;e.disabled=-1;e.setDisabled(d)}if(a(e.active)){d=e.active;e.active=-1;e.setActive(d)}},remove:function(){b.remove(this.id);this.destroy()},destroy:function(){c.dom.Event.clear(this.id)}})})(tinymce);tinymce.create("tinymce.ui.Container:tinymce.ui.Control",{Container:function(c,b,a){this.parent(c,b,a);this.controls=[];this.lookup={}},add:function(a){this.lookup[a.id]=a;this.controls.push(a);return a},get:function(a){return this.lookup[a]}});tinymce.create("tinymce.ui.Separator:tinymce.ui.Control",{Separator:function(b,a){this.parent(b,a);this.classPrefix="mceSeparator";this.setDisabled(true)},renderHTML:function(){return tinymce.DOM.createHTML("span",{"class":this.classPrefix,role:"separator","aria-orientation":"vertical",tabindex:"-1"})}});(function(d){var c=d.is,b=d.DOM,e=d.each,a=d.walk;d.create("tinymce.ui.MenuItem:tinymce.ui.Control",{MenuItem:function(g,f){this.parent(g,f);this.classPrefix="mceMenuItem"},setSelected:function(f){this.setState("Selected",f);this.setAriaProperty("checked",!!f);this.selected=f},isSelected:function(){return this.selected},postRender:function(){var f=this;f.parent();if(c(f.selected)){f.setSelected(f.selected)}}})})(tinymce);(function(d){var c=d.is,b=d.DOM,e=d.each,a=d.walk;d.create("tinymce.ui.Menu:tinymce.ui.MenuItem",{Menu:function(h,g){var f=this;f.parent(h,g);f.items={};f.collapsed=false;f.menuCount=0;f.onAddItem=new d.util.Dispatcher(this)},expand:function(g){var f=this;if(g){a(f,function(h){if(h.expand){h.expand()}},"items",f)}f.collapsed=false},collapse:function(g){var f=this;if(g){a(f,function(h){if(h.collapse){h.collapse()}},"items",f)}f.collapsed=true},isCollapsed:function(){return this.collapsed},add:function(f){if(!f.settings){f=new d.ui.MenuItem(f.id||b.uniqueId(),f)}this.onAddItem.dispatch(this,f);return this.items[f.id]=f},addSeparator:function(){return this.add({separator:true})},addMenu:function(f){if(!f.collapse){f=this.createMenu(f)}this.menuCount++;return this.add(f)},hasMenus:function(){return this.menuCount!==0},remove:function(f){delete this.items[f.id]},removeAll:function(){var f=this;a(f,function(g){if(g.removeAll){g.removeAll()}else{g.remove()}g.destroy()},"items",f);f.items={}},createMenu:function(g){var f=new d.ui.Menu(g.id||b.uniqueId(),g);f.onAddItem.add(this.onAddItem.dispatch,this.onAddItem);return f}})})(tinymce);(function(e){var d=e.is,c=e.DOM,f=e.each,a=e.dom.Event,b=e.dom.Element;e.create("tinymce.ui.DropMenu:tinymce.ui.Menu",{DropMenu:function(h,g){g=g||{};g.container=g.container||c.doc.body;g.offset_x=g.offset_x||0;g.offset_y=g.offset_y||0;g.vp_offset_x=g.vp_offset_x||0;g.vp_offset_y=g.vp_offset_y||0;if(d(g.icons)&&!g.icons){g["class"]+=" mceNoIcons"}this.parent(h,g);this.onShowMenu=new e.util.Dispatcher(this);this.onHideMenu=new e.util.Dispatcher(this);this.classPrefix="mceMenu"},createMenu:function(j){var h=this,i=h.settings,g;j.container=j.container||i.container;j.parent=h;j.constrain=j.constrain||i.constrain;j["class"]=j["class"]||i["class"];j.vp_offset_x=j.vp_offset_x||i.vp_offset_x;j.vp_offset_y=j.vp_offset_y||i.vp_offset_y;j.keyboard_focus=i.keyboard_focus;g=new e.ui.DropMenu(j.id||c.uniqueId(),j);g.onAddItem.add(h.onAddItem.dispatch,h.onAddItem);return g},focus:function(){var g=this;if(g.keyboardNav){g.keyboardNav.focus()}},update:function(){var i=this,j=i.settings,g=c.get("menu_"+i.id+"_tbl"),l=c.get("menu_"+i.id+"_co"),h,k;h=j.max_width?Math.min(g.offsetWidth,j.max_width):g.offsetWidth;k=j.max_height?Math.min(g.offsetHeight,j.max_height):g.offsetHeight;if(!c.boxModel){i.element.setStyles({width:h+2,height:k+2})}else{i.element.setStyles({width:h,height:k})}if(j.max_width){c.setStyle(l,"width",h)}if(j.max_height){c.setStyle(l,"height",k);if(g.clientHeightv){p=r?r-u:Math.max(0,(v-A.vp_offset_x)-u)}if((n+A.vp_offset_y+l)>q){n=Math.max(0,(q-A.vp_offset_y)-l)}}c.setStyles(o,{left:p,top:n});z.element.update();z.isMenuVisible=1;z.mouseClickFunc=a.add(o,"click",function(s){var h;s=s.target;if(s&&(s=c.getParent(s,"tr"))&&!c.hasClass(s,m+"ItemSub")){h=z.items[s.id];if(h.isDisabled()){return}k=z;while(k){if(k.hideMenu){k.hideMenu()}k=k.settings.parent}if(h.settings.onclick){h.settings.onclick(s)}return false}});if(z.hasMenus()){z.mouseOverFunc=a.add(o,"mouseover",function(x){var h,t,s;x=x.target;if(x&&(x=c.getParent(x,"tr"))){h=z.items[x.id];if(z.lastMenu){z.lastMenu.collapse(1)}if(h.isDisabled()){return}if(x&&c.hasClass(x,m+"ItemSub")){t=c.getRect(x);h.showMenu((t.x+t.w-i),t.y-i,t.x);z.lastMenu=h;c.addClass(c.get(h.id).firstChild,m+"ItemActive")}}})}a.add(o,"keydown",z._keyHandler,z);z.onShowMenu.dispatch(z);if(A.keyboard_focus){z._setupKeyboardNav()}},hideMenu:function(j){var g=this,i=c.get("menu_"+g.id),h;if(!g.isMenuVisible){return}if(g.keyboardNav){g.keyboardNav.destroy()}a.remove(i,"mouseover",g.mouseOverFunc);a.remove(i,"click",g.mouseClickFunc);a.remove(i,"keydown",g._keyHandler);c.hide(i);g.isMenuVisible=0;if(!j){g.collapse(1)}if(g.element){g.element.hide()}if(h=c.get(g.id)){c.removeClass(h.firstChild,g.classPrefix+"ItemActive")}g.onHideMenu.dispatch(g)},add:function(i){var g=this,h;i=g.parent(i);if(g.isRendered&&(h=c.get("menu_"+g.id))){g._add(c.select("tbody",h)[0],i)}return i},collapse:function(g){this.parent(g);this.hideMenu(1)},remove:function(g){c.remove(g.id);this.destroy();return this.parent(g)},destroy:function(){var g=this,h=c.get("menu_"+g.id);if(g.keyboardNav){g.keyboardNav.destroy()}a.remove(h,"mouseover",g.mouseOverFunc);a.remove(c.select("a",h),"focus",g.mouseOverFunc);a.remove(h,"click",g.mouseClickFunc);a.remove(h,"keydown",g._keyHandler);if(g.element){g.element.remove()}c.remove(h)},renderNode:function(){var i=this,j=i.settings,l,h,k,g;g=c.create("div",{role:"listbox",id:"menu_"+i.id,"class":j["class"],style:"position:absolute;left:0;top:0;z-index:200000;outline:0"});if(i.settings.parent){c.setAttrib(g,"aria-parent","menu_"+i.settings.parent.id)}k=c.add(g,"div",{role:"presentation",id:"menu_"+i.id+"_co","class":i.classPrefix+(j["class"]?" "+j["class"]:"")});i.element=new b("menu_"+i.id,{blocker:1,container:j.container});if(j.menu_line){c.add(k,"span",{"class":i.classPrefix+"Line"})}l=c.add(k,"table",{role:"presentation",id:"menu_"+i.id+"_tbl",border:0,cellPadding:0,cellSpacing:0});h=c.add(l,"tbody");f(i.items,function(m){i._add(h,m)});i.rendered=true;return g},_setupKeyboardNav:function(){var i,h,g=this;i=c.get("menu_"+g.id);h=c.select("a[role=option]","menu_"+g.id);h.splice(0,0,i);g.keyboardNav=new e.ui.KeyboardNavigation({root:"menu_"+g.id,items:h,onCancel:function(){g.hideMenu()},enableUpDown:true});i.focus()},_keyHandler:function(g){var h=this,i;switch(g.keyCode){case 37:if(h.settings.parent){h.hideMenu();h.settings.parent.focus();a.cancel(g)}break;case 39:if(h.mouseOverFunc){h.mouseOverFunc(g)}break}},_add:function(j,h){var i,q=h.settings,p,l,k,m=this.classPrefix,g;if(q.separator){l=c.add(j,"tr",{id:h.id,"class":m+"ItemSeparator"});c.add(l,"td",{"class":m+"ItemSeparator"});if(i=l.previousSibling){c.addClass(i,"mceLast")}return}i=l=c.add(j,"tr",{id:h.id,"class":m+"Item "+m+"ItemEnabled"});i=k=c.add(i,q.titleItem?"th":"td");i=p=c.add(i,"a",{id:h.id+"_aria",role:q.titleItem?"presentation":"option",href:"javascript:;",onclick:"return false;",onmousedown:"return false;"});if(q.parent){c.setAttrib(p,"aria-haspopup","true");c.setAttrib(p,"aria-owns","menu_"+h.id)}c.addClass(k,q["class"]);g=c.add(i,"span",{"class":"mceIcon"+(q.icon?" mce_"+q.icon:"")});if(q.icon_src){c.add(g,"img",{src:q.icon_src})}i=c.add(i,q.element||"span",{"class":"mceText",title:h.settings.title},h.settings.title);if(h.settings.style){if(typeof h.settings.style=="function"){h.settings.style=h.settings.style()}c.setAttrib(i,"style",h.settings.style)}if(j.childNodes.length==1){c.addClass(l,"mceFirst")}if((i=l.previousSibling)&&c.hasClass(i,m+"ItemSeparator")){c.addClass(l,"mceFirst")}if(h.collapse){c.addClass(l,m+"ItemSub")}if(i=l.previousSibling){c.removeClass(i,"mceLast")}c.addClass(l,"mceLast")}})})(tinymce);(function(b){var a=b.DOM;b.create("tinymce.ui.Button:tinymce.ui.Control",{Button:function(e,d,c){this.parent(e,d,c);this.classPrefix="mceButton"},renderHTML:function(){var f=this.classPrefix,e=this.settings,d,c;c=a.encode(e.label||"");d='';if(e.image&&!(this.editor&&this.editor.forcedHighContrastMode)){d+=''+a.encode(e.title)+''+(c?''+c+"":"")}else{d+=''+(c?''+c+"":"")}d+='";d+="";return d},postRender:function(){var d=this,e=d.settings,c;if(b.isIE&&d.editor){b.dom.Event.add(d.id,"mousedown",function(f){var g=d.editor.selection.getNode().nodeName;c=g==="IMG"?d.editor.selection.getBookmark():null})}b.dom.Event.add(d.id,"click",function(f){if(!d.isDisabled()){if(b.isIE&&d.editor&&c!==null){d.editor.selection.moveToBookmark(c)}return e.onclick.call(e.scope,f)}});b.dom.Event.add(d.id,"keyup",function(f){if(!d.isDisabled()&&f.keyCode==b.VK.SPACEBAR){return e.onclick.call(e.scope,f)}})}})})(tinymce);(function(e){var d=e.DOM,b=e.dom.Event,f=e.each,a=e.util.Dispatcher,c;e.create("tinymce.ui.ListBox:tinymce.ui.Control",{ListBox:function(j,i,g){var h=this;h.parent(j,i,g);h.items=[];h.onChange=new a(h);h.onPostRender=new a(h);h.onAdd=new a(h);h.onRenderMenu=new e.util.Dispatcher(this);h.classPrefix="mceListBox";h.marked={}},select:function(h){var g=this,j,i;g.marked={};if(h==c){return g.selectByIndex(-1)}if(h&&typeof(h)=="function"){i=h}else{i=function(k){return k==h}}if(h!=g.selectedValue){f(g.items,function(l,k){if(i(l.value)){j=1;g.selectByIndex(k);return false}});if(!j){g.selectByIndex(-1)}}},selectByIndex:function(g){var i=this,j,k,h;i.marked={};if(g!=i.selectedIndex){j=d.get(i.id+"_text");h=d.get(i.id+"_voiceDesc");k=i.items[g];if(k){i.selectedValue=k.value;i.selectedIndex=g;d.setHTML(j,d.encode(k.title));d.setHTML(h,i.settings.title+" - "+k.title);d.removeClass(j,"mceTitle");d.setAttrib(i.id,"aria-valuenow",k.title)}else{d.setHTML(j,d.encode(i.settings.title));d.setHTML(h,d.encode(i.settings.title));d.addClass(j,"mceTitle");i.selectedValue=i.selectedIndex=null;d.setAttrib(i.id,"aria-valuenow",i.settings.title)}j=0}},mark:function(g){this.marked[g]=true},add:function(j,g,i){var h=this;i=i||{};i=e.extend(i,{title:j,value:g});h.items.push(i);h.onAdd.dispatch(h,i)},getLength:function(){return this.items.length},renderHTML:function(){var j="",g=this,i=g.settings,k=g.classPrefix;j='';j+="";j+="";j+="";return j},showMenu:function(){var h=this,j,i=d.get(this.id),g;if(h.isDisabled()||h.items.length===0){return}if(h.menu&&h.menu.isMenuVisible){return h.hideMenu()}if(!h.isMenuRendered){h.renderMenu();h.isMenuRendered=true}j=d.getPos(i);g=h.menu;g.settings.offset_x=j.x;g.settings.offset_y=j.y;g.settings.keyboard_focus=!e.isOpera;f(h.items,function(k){if(g.items[k.id]){g.items[k.id].setSelected(0)}});f(h.items,function(k){if(g.items[k.id]&&h.marked[k.value]){g.items[k.id].setSelected(1)}if(k.value===h.selectedValue){g.items[k.id].setSelected(1)}});g.showMenu(0,i.clientHeight);b.add(d.doc,"mousedown",h.hideMenu,h);d.addClass(h.id,h.classPrefix+"Selected")},hideMenu:function(h){var g=this;if(g.menu&&g.menu.isMenuVisible){d.removeClass(g.id,g.classPrefix+"Selected");if(h&&h.type=="mousedown"&&(h.target.id==g.id+"_text"||h.target.id==g.id+"_open")){return}if(!h||!d.getParent(h.target,".mceMenu")){d.removeClass(g.id,g.classPrefix+"Selected");b.remove(d.doc,"mousedown",g.hideMenu,g);g.menu.hideMenu()}}},renderMenu:function(){var h=this,g;g=h.settings.control_manager.createDropMenu(h.id+"_menu",{menu_line:1,"class":h.classPrefix+"Menu mceNoIcons",max_width:250,max_height:150});g.onHideMenu.add(function(){h.hideMenu();h.focus()});g.add({title:h.settings.title,"class":"mceMenuItemTitle",onclick:function(){if(h.settings.onselect("")!==false){h.select("")}}});f(h.items,function(i){if(i.value===c){g.add({title:i.title,role:"option","class":"mceMenuItemTitle",onclick:function(){if(h.settings.onselect("")!==false){h.select("")}}})}else{i.id=d.uniqueId();i.role="option";i.onclick=function(){if(h.settings.onselect(i.value)!==false){h.select(i.value)}};g.add(i)}});h.onRenderMenu.dispatch(h,g);h.menu=g},postRender:function(){var g=this,h=g.classPrefix;b.add(g.id,"click",g.showMenu,g);b.add(g.id,"keydown",function(i){if(i.keyCode==32){g.showMenu(i);b.cancel(i)}});b.add(g.id,"focus",function(){if(!g._focused){g.keyDownHandler=b.add(g.id,"keydown",function(i){if(i.keyCode==40){g.showMenu();b.cancel(i)}});g.keyPressHandler=b.add(g.id,"keypress",function(j){var i;if(j.keyCode==13){i=g.selectedValue;g.selectedValue=null;b.cancel(j);g.settings.onselect(i)}})}g._focused=1});b.add(g.id,"blur",function(){b.remove(g.id,"keydown",g.keyDownHandler);b.remove(g.id,"keypress",g.keyPressHandler);g._focused=0});if(e.isIE6||!d.boxModel){b.add(g.id,"mouseover",function(){if(!d.hasClass(g.id,h+"Disabled")){d.addClass(g.id,h+"Hover")}});b.add(g.id,"mouseout",function(){if(!d.hasClass(g.id,h+"Disabled")){d.removeClass(g.id,h+"Hover")}})}g.onPostRender.dispatch(g,d.get(g.id))},destroy:function(){this.parent();b.clear(this.id+"_text");b.clear(this.id+"_open")}})})(tinymce);(function(e){var d=e.DOM,b=e.dom.Event,f=e.each,a=e.util.Dispatcher,c;e.create("tinymce.ui.NativeListBox:tinymce.ui.ListBox",{NativeListBox:function(h,g){this.parent(h,g);this.classPrefix="mceNativeListBox"},setDisabled:function(g){d.get(this.id).disabled=g;this.setAriaProperty("disabled",g)},isDisabled:function(){return d.get(this.id).disabled},select:function(h){var g=this,j,i;if(h==c){return g.selectByIndex(-1)}if(h&&typeof(h)=="function"){i=h}else{i=function(k){return k==h}}if(h!=g.selectedValue){f(g.items,function(l,k){if(i(l.value)){j=1;g.selectByIndex(k);return false}});if(!j){g.selectByIndex(-1)}}},selectByIndex:function(g){d.get(this.id).selectedIndex=g+1;this.selectedValue=this.items[g]?this.items[g].value:null},add:function(k,h,g){var j,i=this;g=g||{};g.value=h;if(i.isRendered()){d.add(d.get(this.id),"option",g,k)}j={title:k,value:h,attribs:g};i.items.push(j);i.onAdd.dispatch(i,j)},getLength:function(){return this.items.length},renderHTML:function(){var i,g=this;i=d.createHTML("option",{value:""},"-- "+g.settings.title+" --");f(g.items,function(h){i+=d.createHTML("option",{value:h.value},h.title)});i=d.createHTML("select",{id:g.id,"class":"mceNativeListBox","aria-labelledby":g.id+"_aria"},i);i+=d.createHTML("span",{id:g.id+"_aria",style:"display: none"},g.settings.title);return i},postRender:function(){var h=this,i,j=true;h.rendered=true;function g(l){var k=h.items[l.target.selectedIndex-1];if(k&&(k=k.value)){h.onChange.dispatch(h,k);if(h.settings.onselect){h.settings.onselect(k)}}}b.add(h.id,"change",g);b.add(h.id,"keydown",function(l){var k;b.remove(h.id,"change",i);j=false;k=b.add(h.id,"blur",function(){if(j){return}j=true;b.add(h.id,"change",g);b.remove(h.id,"blur",k)});if(e.isWebKit&&(l.keyCode==37||l.keyCode==39)){return b.prevent(l)}if(l.keyCode==13||l.keyCode==32){g(l);return b.cancel(l)}});h.onPostRender.dispatch(h,d.get(h.id))}})})(tinymce);(function(c){var b=c.DOM,a=c.dom.Event,d=c.each;c.create("tinymce.ui.MenuButton:tinymce.ui.Button",{MenuButton:function(g,f,e){this.parent(g,f,e);this.onRenderMenu=new c.util.Dispatcher(this);f.menu_container=f.menu_container||b.doc.body},showMenu:function(){var g=this,j,i,h=b.get(g.id),f;if(g.isDisabled()){return}if(!g.isMenuRendered){g.renderMenu();g.isMenuRendered=true}if(g.isMenuVisible){return g.hideMenu()}j=b.getPos(g.settings.menu_container);i=b.getPos(h);f=g.menu;f.settings.offset_x=i.x;f.settings.offset_y=i.y;f.settings.vp_offset_x=i.x;f.settings.vp_offset_y=i.y;f.settings.keyboard_focus=g._focused;f.showMenu(0,h.firstChild.clientHeight);a.add(b.doc,"mousedown",g.hideMenu,g);g.setState("Selected",1);g.isMenuVisible=1},renderMenu:function(){var f=this,e;e=f.settings.control_manager.createDropMenu(f.id+"_menu",{menu_line:1,"class":this.classPrefix+"Menu",icons:f.settings.icons});e.onHideMenu.add(function(){f.hideMenu();f.focus()});f.onRenderMenu.dispatch(f,e);f.menu=e},hideMenu:function(g){var f=this;if(g&&g.type=="mousedown"&&b.getParent(g.target,function(h){return h.id===f.id||h.id===f.id+"_open"})){return}if(!g||!b.getParent(g.target,".mceMenu")){f.setState("Selected",0);a.remove(b.doc,"mousedown",f.hideMenu,f);if(f.menu){f.menu.hideMenu()}}f.isMenuVisible=0},postRender:function(){var e=this,f=e.settings;a.add(e.id,"click",function(){if(!e.isDisabled()){if(f.onclick){f.onclick(e.value)}e.showMenu()}})}})})(tinymce);(function(c){var b=c.DOM,a=c.dom.Event,d=c.each;c.create("tinymce.ui.SplitButton:tinymce.ui.MenuButton",{SplitButton:function(g,f,e){this.parent(g,f,e);this.classPrefix="mceSplitButton"},renderHTML:function(){var i,f=this,g=f.settings,e;i="";if(g.image){e=b.createHTML("img ",{src:g.image,role:"presentation","class":"mceAction "+g["class"]})}else{e=b.createHTML("span",{"class":"mceAction "+g["class"]},"")}e+=b.createHTML("span",{"class":"mceVoiceLabel mceIconOnly",id:f.id+"_voice",style:"display:none;"},g.title);i+=""+b.createHTML("a",{role:"button",id:f.id+"_action",tabindex:"-1",href:"javascript:;","class":"mceAction "+g["class"],onclick:"return false;",onmousedown:"return false;",title:g.title},e)+"";e=b.createHTML("span",{"class":"mceOpen "+g["class"]},'');i+=""+b.createHTML("a",{role:"button",id:f.id+"_open",tabindex:"-1",href:"javascript:;","class":"mceOpen "+g["class"],onclick:"return false;",onmousedown:"return false;",title:g.title},e)+"";i+="";i=b.createHTML("table",{role:"presentation","class":"mceSplitButton mceSplitButtonEnabled "+g["class"],cellpadding:"0",cellspacing:"0",title:g.title},i);return b.createHTML("div",{id:f.id,role:"button",tabindex:"0","aria-labelledby":f.id+"_voice","aria-haspopup":"true"},i)},postRender:function(){var e=this,g=e.settings,f;if(g.onclick){f=function(h){if(!e.isDisabled()){g.onclick(e.value);a.cancel(h)}};a.add(e.id+"_action","click",f);a.add(e.id,["click","keydown"],function(h){var k=32,m=14,i=13,j=38,l=40;if((h.keyCode===32||h.keyCode===13||h.keyCode===14)&&!h.altKey&&!h.ctrlKey&&!h.metaKey){f();a.cancel(h)}else{if(h.type==="click"||h.keyCode===l){e.showMenu();a.cancel(h)}}})}a.add(e.id+"_open","click",function(h){e.showMenu();a.cancel(h)});a.add([e.id,e.id+"_open"],"focus",function(){e._focused=1});a.add([e.id,e.id+"_open"],"blur",function(){e._focused=0});if(c.isIE6||!b.boxModel){a.add(e.id,"mouseover",function(){if(!b.hasClass(e.id,"mceSplitButtonDisabled")){b.addClass(e.id,"mceSplitButtonHover")}});a.add(e.id,"mouseout",function(){if(!b.hasClass(e.id,"mceSplitButtonDisabled")){b.removeClass(e.id,"mceSplitButtonHover")}})}},destroy:function(){this.parent();a.clear(this.id+"_action");a.clear(this.id+"_open");a.clear(this.id)}})})(tinymce);(function(d){var c=d.DOM,a=d.dom.Event,b=d.is,e=d.each;d.create("tinymce.ui.ColorSplitButton:tinymce.ui.SplitButton",{ColorSplitButton:function(i,h,f){var g=this;g.parent(i,h,f);g.settings=h=d.extend({colors:"000000,993300,333300,003300,003366,000080,333399,333333,800000,FF6600,808000,008000,008080,0000FF,666699,808080,FF0000,FF9900,99CC00,339966,33CCCC,3366FF,800080,999999,FF00FF,FFCC00,FFFF00,00FF00,00FFFF,00CCFF,993366,C0C0C0,FF99CC,FFCC99,FFFF99,CCFFCC,CCFFFF,99CCFF,CC99FF,FFFFFF",grid_width:8,default_color:"#888888"},g.settings);g.onShowMenu=new d.util.Dispatcher(g);g.onHideMenu=new d.util.Dispatcher(g);g.value=h.default_color},showMenu:function(){var f=this,g,j,i,h;if(f.isDisabled()){return}if(!f.isMenuRendered){f.renderMenu();f.isMenuRendered=true}if(f.isMenuVisible){return f.hideMenu()}i=c.get(f.id);c.show(f.id+"_menu");c.addClass(i,"mceSplitButtonSelected");h=c.getPos(i);c.setStyles(f.id+"_menu",{left:h.x,top:h.y+i.firstChild.clientHeight,zIndex:200000});i=0;a.add(c.doc,"mousedown",f.hideMenu,f);f.onShowMenu.dispatch(f);if(f._focused){f._keyHandler=a.add(f.id+"_menu","keydown",function(k){if(k.keyCode==27){f.hideMenu()}});c.select("a",f.id+"_menu")[0].focus()}f.keyboardNav=new d.ui.KeyboardNavigation({root:f.id+"_menu",items:c.select("a",f.id+"_menu"),onCancel:function(){f.hideMenu();f.focus()}});f.keyboardNav.focus();f.isMenuVisible=1},hideMenu:function(g){var f=this;if(f.isMenuVisible){if(g&&g.type=="mousedown"&&c.getParent(g.target,function(h){return h.id===f.id+"_open"})){return}if(!g||!c.getParent(g.target,".mceSplitButtonMenu")){c.removeClass(f.id,"mceSplitButtonSelected");a.remove(c.doc,"mousedown",f.hideMenu,f);a.remove(f.id+"_menu","keydown",f._keyHandler);c.hide(f.id+"_menu")}f.isMenuVisible=0;f.onHideMenu.dispatch();f.keyboardNav.destroy()}},renderMenu:function(){var p=this,h,k=0,q=p.settings,g,j,l,o,f;o=c.add(q.menu_container,"div",{role:"listbox",id:p.id+"_menu","class":q.menu_class+" "+q["class"],style:"position:absolute;left:0;top:-1000px;"});h=c.add(o,"div",{"class":q["class"]+" mceSplitButtonMenu"});c.add(h,"span",{"class":"mceMenuLine"});g=c.add(h,"table",{role:"presentation","class":"mceColorSplitMenu"});j=c.add(g,"tbody");k=0;e(b(q.colors,"array")?q.colors:q.colors.split(","),function(m){m=m.replace(/^#/,"");if(!k--){l=c.add(j,"tr");k=q.grid_width-1}g=c.add(l,"td");var i={href:"javascript:;",style:{backgroundColor:"#"+m},title:p.editor.getLang("colors."+m,m),"data-mce-color":"#"+m};if(!d.isIE){i.role="option"}g=c.add(g,"a",i);if(p.editor.forcedHighContrastMode){g=c.add(g,"canvas",{width:16,height:16,"aria-hidden":"true"});if(g.getContext&&(f=g.getContext("2d"))){f.fillStyle="#"+m;f.fillRect(0,0,16,16)}else{c.remove(g)}}});if(q.more_colors_func){g=c.add(j,"tr");g=c.add(g,"td",{colspan:q.grid_width,"class":"mceMoreColors"});g=c.add(g,"a",{role:"option",id:p.id+"_more",href:"javascript:;",onclick:"return false;","class":"mceMoreColors"},q.more_colors_title);a.add(g,"click",function(i){q.more_colors_func.call(q.more_colors_scope||this);return a.cancel(i)})}c.addClass(h,"mceColorSplitMenu");a.add(p.id+"_menu","mousedown",function(i){return a.cancel(i)});a.add(p.id+"_menu","click",function(i){var m;i=c.getParent(i.target,"a",j);if(i&&i.nodeName.toLowerCase()=="a"&&(m=i.getAttribute("data-mce-color"))){p.setColor(m)}return false});return o},setColor:function(f){this.displayColor(f);this.hideMenu();this.settings.onselect(f)},displayColor:function(g){var f=this;c.setStyle(f.id+"_preview","backgroundColor",g);f.value=g},postRender:function(){var f=this,g=f.id;f.parent();c.add(g+"_action","div",{id:g+"_preview","class":"mceColorPreview"});c.setStyle(f.id+"_preview","backgroundColor",f.value)},destroy:function(){var f=this;f.parent();a.clear(f.id+"_menu");a.clear(f.id+"_more");c.remove(f.id+"_menu");if(f.keyboardNav){f.keyboardNav.destroy()}}})})(tinymce);(function(b){var d=b.DOM,c=b.each,a=b.dom.Event;b.create("tinymce.ui.ToolbarGroup:tinymce.ui.Container",{renderHTML:function(){var f=this,i=[],e=f.controls,j=b.each,g=f.settings;i.push('
          ');i.push("");i.push('");j(e,function(h){i.push(h.renderHTML())});i.push("");i.push("
          ");return i.join("")},focus:function(){var e=this;d.get(e.id).focus()},postRender:function(){var f=this,e=[];c(f.controls,function(g){c(g.controls,function(h){if(h.id){e.push(h)}})});f.keyNav=new b.ui.KeyboardNavigation({root:f.id,items:e,onCancel:function(){if(b.isWebKit){d.get(f.editor.id+"_ifr").focus()}f.editor.focus()},excludeFromTabOrder:!f.settings.tab_focus_toolbar})},destroy:function(){var e=this;e.parent();e.keyNav.destroy();a.clear(e.id)}})})(tinymce);(function(a){var c=a.DOM,b=a.each;a.create("tinymce.ui.Toolbar:tinymce.ui.Container",{renderHTML:function(){var m=this,f="",j,k,n=m.settings,e,d,g,l;l=m.controls;for(e=0;e"))}if(d&&k.ListBox){if(d.Button||d.SplitButton){f+=c.createHTML("td",{"class":"mceToolbarEnd"},c.createHTML("span",null,""))}}if(c.stdMode){f+=''+k.renderHTML()+""}else{f+=""+k.renderHTML()+""}if(g&&k.ListBox){if(g.Button||g.SplitButton){f+=c.createHTML("td",{"class":"mceToolbarStart"},c.createHTML("span",null,""))}}}j="mceToolbarEnd";if(k.Button){j+=" mceToolbarEndButton"}else{if(k.SplitButton){j+=" mceToolbarEndSplitButton"}else{if(k.ListBox){j+=" mceToolbarEndListBox"}}}f+=c.createHTML("td",{"class":j},c.createHTML("span",null,""));return c.createHTML("table",{id:m.id,"class":"mceToolbar"+(n["class"]?" "+n["class"]:""),cellpadding:"0",cellspacing:"0",align:m.settings.align||"",role:"presentation",tabindex:"-1"},""+f+"")}})})(tinymce);(function(b){var a=b.util.Dispatcher,c=b.each;b.create("tinymce.AddOnManager",{AddOnManager:function(){var d=this;d.items=[];d.urls={};d.lookup={};d.onAdd=new a(d)},get:function(d){if(this.lookup[d]){return this.lookup[d].instance}else{return undefined}},dependencies:function(e){var d;if(this.lookup[e]){d=this.lookup[e].dependencies}return d||[]},requireLangPack:function(e){var d=b.settings;if(d&&d.language&&d.language_load!==false){b.ScriptLoader.add(this.urls[e]+"/langs/"+d.language+".js")}},add:function(f,e,d){this.items.push(e);this.lookup[f]={instance:e,dependencies:d};this.onAdd.dispatch(this,f,e);return e},createUrl:function(d,e){if(typeof e==="object"){return e}else{return{prefix:d.prefix,resource:e,suffix:d.suffix}}},addComponents:function(f,d){var e=this.urls[f];b.each(d,function(g){b.ScriptLoader.add(e+"/"+g)})},load:function(j,f,d,h){var g=this,e=f;function i(){var k=g.dependencies(j);b.each(k,function(m){var l=g.createUrl(f,m);g.load(l.resource,l,undefined,undefined)});if(d){if(h){d.call(h)}else{d.call(b.ScriptLoader)}}}if(g.urls[j]){return}if(typeof f==="object"){e=f.prefix+f.resource+f.suffix}if(e.indexOf("/")!==0&&e.indexOf("://")==-1){e=b.baseURL+"/"+e}g.urls[j]=e.substring(0,e.lastIndexOf("/"));if(g.lookup[j]){i()}else{b.ScriptLoader.add(e,i,h)}}});b.PluginManager=new b.AddOnManager();b.ThemeManager=new b.AddOnManager()}(tinymce));(function(j){var g=j.each,d=j.extend,k=j.DOM,i=j.dom.Event,f=j.ThemeManager,b=j.PluginManager,e=j.explode,h=j.util.Dispatcher,a,c=0;j.documentBaseURL=window.location.href.replace(/[\?#].*$/,"").replace(/[\/\\][^\/]+$/,"");if(!/[\/\\]$/.test(j.documentBaseURL)){j.documentBaseURL+="/"}j.baseURL=new j.util.URI(j.documentBaseURL).toAbsolute(j.baseURL);j.baseURI=new j.util.URI(j.baseURL);j.onBeforeUnload=new h(j);i.add(window,"beforeunload",function(l){j.onBeforeUnload.dispatch(j,l)});j.onAddEditor=new h(j);j.onRemoveEditor=new h(j);j.EditorManager=d(j,{editors:[],i18n:{},activeEditor:null,init:function(x){var v=this,o,n=j.ScriptLoader,u,l=[],r;function q(t){var s=t.id;if(!s){s=t.name;if(s&&!k.get(s)){s=t.name}else{s=k.uniqueId()}t.setAttribute("id",s)}return s}function m(z,A,t){var y=z[A];if(!y){return}if(j.is(y,"string")){t=y.replace(/\.\w+$/,"");t=t?j.resolve(t):0;y=j.resolve(y)}return y.apply(t||this,Array.prototype.slice.call(arguments,2))}function p(t,s){return s.constructor===RegExp?s.test(t.className):k.hasClass(t,s)}v.settings=x;i.bind(window,"ready",function(){var s,t;m(x,"onpageload");switch(x.mode){case"exact":s=x.elements||"";if(s.length>0){g(e(s),function(y){if(k.get(y)){r=new j.Editor(y,x);l.push(r);r.render(1)}else{g(document.forms,function(z){g(z.elements,function(A){if(A.name===y){y="mce_editor_"+c++;k.setAttrib(A,"id",y);r=new j.Editor(y,x);l.push(r);r.render(1)}})})}})}break;case"textareas":case"specific_textareas":g(k.select("textarea"),function(y){if(x.editor_deselector&&p(y,x.editor_deselector)){return}if(!x.editor_selector||p(y,x.editor_selector)){r=new j.Editor(q(y),x);l.push(r);r.render(1)}});break;default:if(x.types){g(x.types,function(y){g(k.select(y.selector),function(A){var z=new j.Editor(q(A),j.extend({},x,y));l.push(z);z.render(1)})})}else{if(x.selector){g(k.select(x.selector),function(z){var y=new j.Editor(q(z),x);l.push(y);y.render(1)})}}}if(x.oninit){s=t=0;g(l,function(y){t++;if(!y.initialized){y.onInit.add(function(){s++;if(s==t){m(x,"oninit")}})}else{s++}if(s==t){m(x,"oninit")}})}})},get:function(l){if(l===a){return this.editors}return this.editors[l]},getInstanceById:function(l){return this.get(l)},add:function(m){var l=this,n=l.editors;n[m.id]=m;n.push(m);l._setActive(m);l.onAddEditor.dispatch(l,m);return m},remove:function(n){var m=this,l,o=m.editors;if(!o[n.id]){return null}delete o[n.id];for(l=0;l':"",visual:n,font_size_style_values:"xx-small,x-small,small,medium,large,x-large,xx-large",font_size_legacy_values:"xx-small,small,medium,large,x-large,xx-large,300%",apply_source_formatting:n,directionality:"ltr",forced_root_block:"p",hidden_input:n,padd_empty_editor:n,render_ui:n,indentation:"30px",fix_table_elements:n,inline_styles:n,convert_fonts_to_spans:n,indent:"simple",indent_before:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,ul,li,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,option,optgroup,datalist",indent_after:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,ul,li,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,option,optgroup,datalist",validate:n,entity_encoding:"named",url_converter:m.convertURL,url_converter_scope:m,ie7_compat:n},o);m.id=m.editorId=p;m.isNotDirty=false;m.plugins={};m.documentBaseURI=new k.util.URI(o.document_base_url||k.documentBaseURL,{base_uri:tinyMCE.baseURI});m.baseURI=k.baseURI;m.contentCSS=[];m.contentStyles=[];m.setupEvents();m.execCommands={};m.queryStateCommands={};m.queryValueCommands={};m.execCallback("setup",m)},render:function(o){var p=this,q=p.settings,r=p.id,m=k.ScriptLoader;if(!j.domLoaded){j.add(window,"ready",function(){p.render()});return}tinyMCE.settings=q;if(!p.getElement()){return}if(k.isIDevice&&!k.isIOS5){return}if(!/TEXTAREA|INPUT/i.test(p.getElement().nodeName)&&q.hidden_input&&l.getParent(r,"form")){l.insertAfter(l.create("input",{type:"hidden",name:r}),r)}if(!q.content_editable){p.orgVisibility=p.getElement().style.visibility;p.getElement().style.visibility="hidden"}if(k.WindowManager){p.windowManager=new k.WindowManager(p)}if(q.encoding=="xml"){p.onGetContent.add(function(s,t){if(t.save){t.content=l.encode(t.content)}})}if(q.add_form_submit_trigger){p.onSubmit.addToTop(function(){if(p.initialized){p.save();p.isNotDirty=1}})}if(q.add_unload_trigger){p._beforeUnload=tinyMCE.onBeforeUnload.add(function(){if(p.initialized&&!p.destroyed&&!p.isHidden()){p.save({format:"raw",no_events:true})}})}k.addUnload(p.destroy,p);if(q.submit_patch){p.onBeforeRenderUI.add(function(){var s=p.getElement().form;if(!s){return}if(s._mceOldSubmit){return}if(!s.submit.nodeType&&!s.submit.length){p.formElement=s;s._mceOldSubmit=s.submit;s.submit=function(){k.triggerSave();p.isNotDirty=1;return p.formElement._mceOldSubmit(p.formElement)}}s=null})}function n(){if(q.language&&q.language_load!==false){m.add(k.baseURL+"/langs/"+q.language+".js")}if(q.theme&&typeof q.theme!="function"&&q.theme.charAt(0)!="-"&&!h.urls[q.theme]){h.load(q.theme,"themes/"+q.theme+"/editor_template"+k.suffix+".js")}i(g(q.plugins),function(t){if(t&&!c.urls[t]){if(t.charAt(0)=="-"){t=t.substr(1,t.length);var s=c.dependencies(t);i(s,function(v){var u={prefix:"plugins/",resource:v,suffix:"/editor_plugin"+k.suffix+".js"};v=c.createUrl(u,v);c.load(v.resource,v)})}else{if(t=="safari"){return}c.load(t,{prefix:"plugins/",resource:t,suffix:"/editor_plugin"+k.suffix+".js"})}}});m.loadQueue(function(){if(!p.removed){p.init()}})}n()},init:function(){var q,G=this,H=G.settings,D,y,z,C=G.getElement(),p,m,E,v,B,F,x,r=[];k.add(G);H.aria_label=H.aria_label||l.getAttrib(C,"aria-label",G.getLang("aria.rich_text_area"));if(H.theme){if(typeof H.theme!="function"){H.theme=H.theme.replace(/-/,"");p=h.get(H.theme);G.theme=new p();if(G.theme.init){G.theme.init(G,h.urls[H.theme]||k.documentBaseURL.replace(/\/$/,""))}}else{G.theme=H.theme}}function A(s){var t=c.get(s),o=c.urls[s]||k.documentBaseURL.replace(/\/$/,""),n;if(t&&k.inArray(r,s)===-1){i(c.dependencies(s),function(u){A(u)});n=new t(G,o);G.plugins[s]=n;if(n.init){n.init(G,o);r.push(s)}}}i(g(H.plugins.replace(/\-/g,"")),A);if(H.popup_css!==false){if(H.popup_css){H.popup_css=G.documentBaseURI.toAbsolute(H.popup_css)}else{H.popup_css=G.baseURI.toAbsolute("themes/"+H.theme+"/skins/"+H.skin+"/dialog.css")}}if(H.popup_css_add){H.popup_css+=","+G.documentBaseURI.toAbsolute(H.popup_css_add)}G.controlManager=new k.ControlManager(G);G.onBeforeRenderUI.dispatch(G,G.controlManager);if(H.render_ui&&G.theme){G.orgDisplay=C.style.display;if(typeof H.theme!="function"){D=H.width||C.style.width||C.offsetWidth;y=H.height||C.style.height||C.offsetHeight;z=H.min_height||100;F=/^[0-9\.]+(|px)$/i;if(F.test(""+D)){D=Math.max(parseInt(D,10)+(p.deltaWidth||0),100)}if(F.test(""+y)){y=Math.max(parseInt(y,10)+(p.deltaHeight||0),z)}p=G.theme.renderUI({targetNode:C,width:D,height:y,deltaWidth:H.delta_width,deltaHeight:H.delta_height});l.setStyles(p.sizeContainer||p.editorContainer,{width:D,height:y});y=(p.iframeHeight||y)+(typeof(y)=="number"?(p.deltaHeight||0):"");if(y';if(H.document_base_url!=k.documentBaseURL){G.iframeHTML+=''}if(H.ie7_compat){G.iframeHTML+=''}else{G.iframeHTML+=''}G.iframeHTML+='';for(x=0;x'}G.contentCSS=[];v=H.body_id||"tinymce";if(v.indexOf("=")!=-1){v=G.getParam("body_id","","hash");v=v[G.id]||v}B=H.body_class||"";if(B.indexOf("=")!=-1){B=G.getParam("body_class","","hash");B=B[G.id]||""}G.iframeHTML+='
          ";if(k.relaxedDomain&&(b||(k.isOpera&&parseFloat(opera.version())<11))){E='javascript:(function(){document.open();document.domain="'+document.domain+'";var ed = window.parent.tinyMCE.get("'+G.id+'");document.write(ed.iframeHTML);document.close();ed.initContentBody();})()'}q=l.add(p.iframeContainer,"iframe",{id:G.id+"_ifr",src:E||'javascript:""',frameBorder:"0",allowTransparency:"true",title:H.aria_label,style:{width:"100%",height:y,display:"block"}});G.contentAreaContainer=p.iframeContainer;if(p.editorContainer){l.get(p.editorContainer).style.display=G.orgDisplay}C.style.visibility=G.orgVisibility;l.get(G.id).style.display="none";l.setAttrib(G.id,"aria-hidden",true);if(!k.relaxedDomain||!E){G.initContentBody()}C=q=p=null},initContentBody:function(){var n=this,p=n.settings,q=l.get(n.id),r=n.getDoc(),o,m,s;if((!b||!k.relaxedDomain)&&!p.content_editable){r.open();r.write(n.iframeHTML);r.close();if(k.relaxedDomain){r.domain=k.relaxedDomain}}if(p.content_editable){l.addClass(q,"mceContentBody");n.contentDocument=r=p.content_document||document;n.contentWindow=p.content_window||window;n.bodyElement=q;p.content_document=p.content_window=null}m=n.getBody();m.disabled=true;if(!p.readonly){m.contentEditable=n.getParam("content_editable_state",true)}m.disabled=false;n.schema=new k.html.Schema(p);n.dom=new k.dom.DOMUtils(r,{keep_values:true,url_converter:n.convertURL,url_converter_scope:n,hex_colors:p.force_hex_style_colors,class_filter:p.class_filter,update_styles:true,root_element:p.content_editable?n.id:null,schema:n.schema});n.parser=new k.html.DomParser(p,n.schema);n.parser.addAttributeFilter("src,href,style",function(t,u){var v=t.length,y,A=n.dom,z,x;while(v--){y=t[v];z=y.attr(u);x="data-mce-"+u;if(!y.attributes.map[x]){if(u==="style"){y.attr(x,A.serializeStyle(A.parseStyle(z),y.name))}else{y.attr(x,n.convertURL(z,u,y.name))}}}});n.parser.addNodeFilter("script",function(t,u){var v=t.length,x;while(v--){x=t[v];x.attr("type","mce-"+(x.attr("type")||"text/javascript"))}});n.parser.addNodeFilter("#cdata",function(t,u){var v=t.length,x;while(v--){x=t[v];x.type=8;x.name="#comment";x.value="[CDATA["+x.value+"]]"}});n.parser.addNodeFilter("p,h1,h2,h3,h4,h5,h6,div",function(u,v){var x=u.length,y,t=n.schema.getNonEmptyElements();while(x--){y=u[x];if(y.isEmpty(t)){y.empty().append(new k.html.Node("br",1)).shortEnded=true}}});n.serializer=new k.dom.Serializer(p,n.dom,n.schema);n.selection=new k.dom.Selection(n.dom,n.getWin(),n.serializer,n);n.formatter=new k.Formatter(n);n.undoManager=new k.UndoManager(n);n.forceBlocks=new k.ForceBlocks(n);n.enterKey=new k.EnterKey(n);n.editorCommands=new k.EditorCommands(n);n.onExecCommand.add(function(t,u){if(!/^(FontName|FontSize)$/.test(u)){n.nodeChanged()}});n.serializer.onPreProcess.add(function(t,u){return n.onPreProcess.dispatch(n,u,t)});n.serializer.onPostProcess.add(function(t,u){return n.onPostProcess.dispatch(n,u,t)});n.onPreInit.dispatch(n);if(!p.browser_spellcheck&&!p.gecko_spellcheck){r.body.spellcheck=false}if(!p.readonly){n.bindNativeEvents()}n.controlManager.onPostRender.dispatch(n,n.controlManager);n.onPostRender.dispatch(n);n.quirks=k.util.Quirks(n);if(p.directionality){m.dir=p.directionality}if(p.nowrap){m.style.whiteSpace="nowrap"}if(p.protect){n.onBeforeSetContent.add(function(t,u){i(p.protect,function(v){u.content=u.content.replace(v,function(x){return""})})})}n.onSetContent.add(function(){n.addVisual(n.getBody())});if(p.padd_empty_editor){n.onPostProcess.add(function(t,u){u.content=u.content.replace(/^(]*>( | |\s|\u00a0|)<\/p>[\r\n]*|
          [\r\n]*)$/,"")})}n.load({initial:true,format:"html"});n.startContent=n.getContent({format:"raw"});n.initialized=true;n.onInit.dispatch(n);n.execCallback("setupcontent_callback",n.id,m,r);n.execCallback("init_instance_callback",n);n.focus(true);n.nodeChanged({initial:true});if(n.contentStyles.length>0){s="";i(n.contentStyles,function(t){s+=t+"\r\n"});n.dom.addStyle(s)}i(n.contentCSS,function(t){n.dom.loadCSS(t)});if(p.auto_focus){setTimeout(function(){var t=k.get(p.auto_focus);t.selection.select(t.getBody(),1);t.selection.collapse(1);t.getBody().focus();t.getWin().focus()},100)}q=r=m=null},focus:function(p){var o,u=this,t=u.selection,q=u.settings.content_editable,n,r,s=u.getDoc(),m;if(!p){if(u.lastIERng){t.setRng(u.lastIERng)}n=t.getRng();if(n.item){r=n.item(0)}u._refreshContentEditable();if(!q){u.getWin().focus()}if(k.isGecko||q){m=u.getBody();if(m.setActive){m.setActive()}else{m.focus()}if(q){t.normalize()}}if(r&&r.ownerDocument==s){n=s.body.createControlRange();n.addElement(r);n.select()}}if(k.activeEditor!=u){if((o=k.activeEditor)!=null){o.onDeactivate.dispatch(o,u)}u.onActivate.dispatch(u,o)}k._setActive(u)},execCallback:function(q){var m=this,p=m.settings[q],o;if(!p){return}if(m.callbackLookup&&(o=m.callbackLookup[q])){p=o.func;o=o.scope}if(d(p,"string")){o=p.replace(/\.\w+$/,"");o=o?k.resolve(o):0;p=k.resolve(p);m.callbackLookup=m.callbackLookup||{};m.callbackLookup[q]={func:p,scope:o}}return p.apply(o||m,Array.prototype.slice.call(arguments,1))},translate:function(m){var o=this.settings.language||"en",n=k.i18n;if(!m){return""}return n[o+"."+m]||m.replace(/\{\#([^\}]+)\}/g,function(q,p){return n[o+"."+p]||"{#"+p+"}"})},getLang:function(o,m){return k.i18n[(this.settings.language||"en")+"."+o]||(d(m)?m:"{#"+o+"}")},getParam:function(t,q,m){var r=k.trim,p=d(this.settings[t])?this.settings[t]:q,s;if(m==="hash"){s={};if(d(p,"string")){i(p.indexOf("=")>0?p.split(/[;,](?![^=;,]*(?:[;,]|$))/):p.split(","),function(n){n=n.split("=");if(n.length>1){s[r(n[0])]=r(n[1])}else{s[r(n[0])]=r(n)}})}else{s=p}return s}return p},nodeChanged:function(q){var m=this,n=m.selection,p;if(m.initialized){q=q||{};p=n.getStart()||m.getBody();p=b&&p.ownerDocument!=m.getDoc()?m.getBody():p;q.parents=[];m.dom.getParent(p,function(o){if(o.nodeName=="BODY"){return true}q.parents.push(o)});m.onNodeChange.dispatch(m,q?q.controlManager||m.controlManager:m.controlManager,p,n.isCollapsed(),q)}},addButton:function(n,o){var m=this;m.buttons=m.buttons||{};m.buttons[n]=o},addCommand:function(m,o,n){this.execCommands[m]={func:o,scope:n||this}},addQueryStateHandler:function(m,o,n){this.queryStateCommands[m]={func:o,scope:n||this}},addQueryValueHandler:function(m,o,n){this.queryValueCommands[m]={func:o,scope:n||this}},addShortcut:function(o,q,m,p){var n=this,r;if(n.settings.custom_shortcuts===false){return false}n.shortcuts=n.shortcuts||{};if(d(m,"string")){r=m;m=function(){n.execCommand(r,false,null)}}if(d(m,"object")){r=m;m=function(){n.execCommand(r[0],r[1],r[2])}}i(g(o),function(s){var t={func:m,scope:p||this,desc:n.translate(q),alt:false,ctrl:false,shift:false};i(g(s,"+"),function(u){switch(u){case"alt":case"ctrl":case"shift":t[u]=true;break;default:t.charCode=u.charCodeAt(0);t.keyCode=u.toUpperCase().charCodeAt(0)}});n.shortcuts[(t.ctrl?"ctrl":"")+","+(t.alt?"alt":"")+","+(t.shift?"shift":"")+","+t.keyCode]=t});return true},execCommand:function(u,r,x,m){var p=this,q=0,v,n;if(!/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint|SelectAll)$/.test(u)&&(!m||!m.skip_focus)){p.focus()}m=f({},m);p.onBeforeExecCommand.dispatch(p,u,r,x,m);if(m.terminate){return false}if(p.execCallback("execcommand_callback",p.id,p.selection.getNode(),u,r,x)){p.onExecCommand.dispatch(p,u,r,x,m);return true}if(v=p.execCommands[u]){n=v.func.call(v.scope,r,x);if(n!==true){p.onExecCommand.dispatch(p,u,r,x,m);return n}}i(p.plugins,function(o){if(o.execCommand&&o.execCommand(u,r,x)){p.onExecCommand.dispatch(p,u,r,x,m);q=1;return false}});if(q){return true}if(p.theme&&p.theme.execCommand&&p.theme.execCommand(u,r,x)){p.onExecCommand.dispatch(p,u,r,x,m);return true}if(p.editorCommands.execCommand(u,r,x)){p.onExecCommand.dispatch(p,u,r,x,m);return true}p.getDoc().execCommand(u,r,x);p.onExecCommand.dispatch(p,u,r,x,m)},queryCommandState:function(q){var n=this,r,p;if(n._isHidden()){return}if(r=n.queryStateCommands[q]){p=r.func.call(r.scope);if(p!==true){return p}}r=n.editorCommands.queryCommandState(q);if(r!==-1){return r}try{return this.getDoc().queryCommandState(q)}catch(m){}},queryCommandValue:function(r){var n=this,q,p;if(n._isHidden()){return}if(q=n.queryValueCommands[r]){p=q.func.call(q.scope);if(p!==true){return p}}q=n.editorCommands.queryCommandValue(r);if(d(q)){return q}try{return this.getDoc().queryCommandValue(r)}catch(m){}},show:function(){var m=this;l.show(m.getContainer());l.hide(m.id);m.load()},hide:function(){var m=this,n=m.getDoc();if(b&&n){n.execCommand("SelectAll")}m.save();l.hide(m.getContainer());l.setStyle(m.id,"display",m.orgDisplay)},isHidden:function(){return !l.isHidden(this.id)},setProgressState:function(m,n,p){this.onSetProgressState.dispatch(this,m,n,p);return m},load:function(q){var m=this,p=m.getElement(),n;if(p){q=q||{};q.load=true;n=m.setContent(d(p.value)?p.value:p.innerHTML,q);q.element=p;if(!q.no_events){m.onLoadContent.dispatch(m,q)}q.element=p=null;return n}},save:function(r){var m=this,q=m.getElement(),n,p;if(!q||!m.initialized){return}r=r||{};r.save=true;r.element=q;n=r.content=m.getContent(r);if(!r.no_events){m.onSaveContent.dispatch(m,r)}n=r.content;if(!/TEXTAREA|INPUT/i.test(q.nodeName)){q.innerHTML=n;if(p=l.getParent(m.id,"form")){i(p.elements,function(o){if(o.name==m.id){o.value=n;return false}})}}else{q.value=n}r.element=q=null;return n},setContent:function(r,p){var o=this,n,m=o.getBody(),q;p=p||{};p.format=p.format||"html";p.set=true;p.content=r;if(!p.no_events){o.onBeforeSetContent.dispatch(o,p)}r=p.content;if(!k.isIE&&(r.length===0||/^\s+$/.test(r))){q=o.settings.forced_root_block;if(q){r="<"+q+'>
          "}else{r='
          '}m.innerHTML=r;o.selection.select(m,true);o.selection.collapse(true);return}if(p.format!=="raw"){r=new k.html.Serializer({},o.schema).serialize(o.parser.parse(r))}p.content=k.trim(r);o.dom.setHTML(m,p.content);if(!p.no_events){o.onSetContent.dispatch(o,p)}if(!o.settings.content_editable||document.activeElement===o.getBody()){o.selection.normalize()}return p.content},getContent:function(n){var m=this,o;n=n||{};n.format=n.format||"html";n.get=true;n.getInner=true;if(!n.no_events){m.onBeforeGetContent.dispatch(m,n)}if(n.format=="raw"){o=m.getBody().innerHTML}else{o=m.serializer.serialize(m.getBody(),n)}n.content=k.trim(o);if(!n.no_events){m.onGetContent.dispatch(m,n)}return n.content},isDirty:function(){var m=this;return k.trim(m.startContent)!=k.trim(m.getContent({format:"raw",no_events:1}))&&!m.isNotDirty},getContainer:function(){var m=this;if(!m.container){m.container=l.get(m.editorContainer||m.id+"_parent")}return m.container},getContentAreaContainer:function(){return this.contentAreaContainer},getElement:function(){return l.get(this.settings.content_element||this.id)},getWin:function(){var m=this,n;if(!m.contentWindow){n=l.get(m.id+"_ifr");if(n){m.contentWindow=n.contentWindow}}return m.contentWindow},getDoc:function(){var m=this,n;if(!m.contentDocument){n=m.getWin();if(n){m.contentDocument=n.document}}return m.contentDocument},getBody:function(){return this.bodyElement||this.getDoc().body},convertURL:function(o,n,q){var m=this,p=m.settings;if(p.urlconverter_callback){return m.execCallback("urlconverter_callback",o,q,true,n)}if(!p.convert_urls||(q&&q.nodeName=="LINK")||o.indexOf("file:")===0){return o}if(p.relative_urls){return m.documentBaseURI.toRelative(o)}o=m.documentBaseURI.toAbsolute(o,p.remove_script_host);return o},addVisual:function(q){var n=this,o=n.settings,p=n.dom,m;q=q||n.getBody();if(!d(n.hasVisual)){n.hasVisual=o.visual}i(p.select("table,a",q),function(s){var r;switch(s.nodeName){case"TABLE":m=o.visual_table_class||"mceItemTable";r=p.getAttrib(s,"border");if(!r||r=="0"){if(n.hasVisual){p.addClass(s,m)}else{p.removeClass(s,m)}}return;case"A":if(!p.getAttrib(s,"href",false)){r=p.getAttrib(s,"name")||s.id;m="mceItemAnchor";if(r){if(n.hasVisual){p.addClass(s,m)}else{p.removeClass(s,m)}}}return}});n.onVisualAid.dispatch(n,q,n.hasVisual)},remove:function(){var m=this,n=m.getContainer();if(!m.removed){m.removed=1;m.hide();if(!m.settings.content_editable){j.unbind(m.getWin());j.unbind(m.getDoc())}j.unbind(m.getBody());j.clear(n);m.execCallback("remove_instance_callback",m);m.onRemove.dispatch(m);m.onExecCommand.listeners=[];k.remove(m);l.remove(n)}},destroy:function(n){var m=this;if(m.destroyed){return}if(a){j.unbind(m.getDoc());j.unbind(m.getWin());j.unbind(m.getBody())}if(!n){k.removeUnload(m.destroy);tinyMCE.onBeforeUnload.remove(m._beforeUnload);if(m.theme&&m.theme.destroy){m.theme.destroy()}m.controlManager.destroy();m.selection.destroy();m.dom.destroy()}if(m.formElement){m.formElement.submit=m.formElement._mceOldSubmit;m.formElement._mceOldSubmit=null}m.contentAreaContainer=m.formElement=m.container=m.settings.content_element=m.bodyElement=m.contentDocument=m.contentWindow=null;if(m.selection){m.selection=m.selection.win=m.selection.dom=m.selection.dom.doc=null}m.destroyed=1},_refreshContentEditable:function(){var n=this,m,o;if(n._isHidden()){m=n.getBody();o=m.parentNode;o.removeChild(m);o.appendChild(m);m.focus()}},_isHidden:function(){var m;if(!a){return 0}m=this.selection.getSel();return(!m||!m.rangeCount||m.rangeCount===0)}})})(tinymce);(function(a){var b=a.each;a.Editor.prototype.setupEvents=function(){var c=this,d=c.settings;b(["onPreInit","onBeforeRenderUI","onPostRender","onLoad","onInit","onRemove","onActivate","onDeactivate","onClick","onEvent","onMouseUp","onMouseDown","onDblClick","onKeyDown","onKeyUp","onKeyPress","onContextMenu","onSubmit","onReset","onPaste","onPreProcess","onPostProcess","onBeforeSetContent","onBeforeGetContent","onSetContent","onGetContent","onLoadContent","onSaveContent","onNodeChange","onChange","onBeforeExecCommand","onExecCommand","onUndo","onRedo","onVisualAid","onSetProgressState","onSetAttrib"],function(e){c[e]=new a.util.Dispatcher(c)});if(d.cleanup_callback){c.onBeforeSetContent.add(function(e,f){f.content=e.execCallback("cleanup_callback","insert_to_editor",f.content,f)});c.onPreProcess.add(function(e,f){if(f.set){e.execCallback("cleanup_callback","insert_to_editor_dom",f.node,f)}if(f.get){e.execCallback("cleanup_callback","get_from_editor_dom",f.node,f)}});c.onPostProcess.add(function(e,f){if(f.set){f.content=e.execCallback("cleanup_callback","insert_to_editor",f.content,f)}if(f.get){f.content=e.execCallback("cleanup_callback","get_from_editor",f.content,f)}})}if(d.save_callback){c.onGetContent.add(function(e,f){if(f.save){f.content=e.execCallback("save_callback",e.id,f.content,e.getBody())}})}if(d.handle_event_callback){c.onEvent.add(function(f,g,h){if(c.execCallback("handle_event_callback",g,f,h)===false){g.preventDefault();g.stopPropagation()}})}if(d.handle_node_change_callback){c.onNodeChange.add(function(f,e,g){f.execCallback("handle_node_change_callback",f.id,g,-1,-1,true,f.selection.isCollapsed())})}if(d.save_callback){c.onSaveContent.add(function(e,g){var f=e.execCallback("save_callback",e.id,g.content,e.getBody());if(f){g.content=f}})}if(d.onchange_callback){c.onChange.add(function(f,e){f.execCallback("onchange_callback",f,e)})}};a.Editor.prototype.bindNativeEvents=function(){var l=this,f,d=l.settings,e=l.dom,h;h={mouseup:"onMouseUp",mousedown:"onMouseDown",click:"onClick",keyup:"onKeyUp",keydown:"onKeyDown",keypress:"onKeyPress",submit:"onSubmit",reset:"onReset",contextmenu:"onContextMenu",dblclick:"onDblClick",paste:"onPaste"};function c(i,m){var n=i.type;if(l.removed){return}if(l.onEvent.dispatch(l,i,m)!==false){l[h[i.fakeType||i.type]].dispatch(l,i,m)}}function j(i){l.focus(true)}function k(){l.selection.normalize();l.nodeChanged()}b(h,function(m,n){var i=d.content_editable?l.getBody():l.getDoc();switch(n){case"contextmenu":e.bind(i,n,c);break;case"paste":e.bind(l.getBody(),n,c);break;case"submit":case"reset":e.bind(l.getElement().form||a.DOM.getParent(l.id,"form"),n,c);break;default:e.bind(i,n,c)}});e.bind(d.content_editable?l.getBody():(a.isGecko?l.getDoc():l.getWin()),"focus",function(i){l.focus(true)});if(d.content_editable&&a.isOpera){e.bind(l.getBody(),"click",j);e.bind(l.getBody(),"keydown",j)}l.onMouseUp.add(k);l.onKeyUp.add(function(i,n){var m=n.keyCode;if((m>=33&&m<=36)||(m>=37&&m<=40)||m==13||m==45||m==46||m==8||(a.isMac&&(m==91||m==93))||n.ctrlKey){k()}});l.onReset.add(function(){l.setContent(l.startContent,{format:"raw"})});function g(m,i){if(m.altKey||m.ctrlKey||m.metaKey){b(l.shortcuts,function(n){var o=a.isMac?m.metaKey:m.ctrlKey;if(n.ctrl!=o||n.alt!=m.altKey||n.shift!=m.shiftKey){return}if(m.keyCode==n.keyCode||(m.charCode&&m.charCode==n.charCode)){m.preventDefault();if(i){n.func.call(n.scope)}return true}})}}l.onKeyUp.add(function(i,m){g(m)});l.onKeyPress.add(function(i,m){g(m)});l.onKeyDown.add(function(i,m){g(m,true)});if(a.isOpera){l.onClick.add(function(i,m){m.preventDefault()})}}})(tinymce);(function(d){var e=d.each,b,a=true,c=false;d.EditorCommands=function(n){var m=n.dom,p=n.selection,j={state:{},exec:{},value:{}},k=n.settings,q=n.formatter,o;function r(z,y,x){var v;z=z.toLowerCase();if(v=j.exec[z]){v(z,y,x);return a}return c}function l(x){var v;x=x.toLowerCase();if(v=j.state[x]){return v(x)}return -1}function h(x){var v;x=x.toLowerCase();if(v=j.value[x]){return v(x)}return c}function u(v,x){x=x||"exec";e(v,function(z,y){e(y.toLowerCase().split(","),function(A){j[x][A]=z})})}d.extend(this,{execCommand:r,queryCommandState:l,queryCommandValue:h,addCommands:u});function f(y,x,v){if(x===b){x=c}if(v===b){v=null}return n.getDoc().execCommand(y,x,v)}function t(v){return q.match(v)}function s(v,x){q.toggle(v,x?{value:x}:b)}function i(v){o=p.getBookmark(v)}function g(){p.moveToBookmark(o)}u({"mceResetDesignMode,mceBeginUndoLevel":function(){},"mceEndUndoLevel,mceAddUndoLevel":function(){n.undoManager.add()},"Cut,Copy,Paste":function(z){var y=n.getDoc(),v;try{f(z)}catch(x){v=a}if(v||!y.queryCommandSupported(z)){if(d.isGecko){n.windowManager.confirm(n.getLang("clipboard_msg"),function(A){if(A){open("http://www.mozilla.org/editor/midasdemo/securityprefs.html","_blank")}})}else{n.windowManager.alert(n.getLang("clipboard_no_support"))}}},unlink:function(v){if(p.isCollapsed()){p.select(p.getNode())}f(v);p.collapse(c)},"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull":function(v){var x=v.substring(7);e("left,center,right,full".split(","),function(y){if(x!=y){q.remove("align"+y)}});s("align"+x);r("mceRepaint")},"InsertUnorderedList,InsertOrderedList":function(y){var v,x;f(y);v=m.getParent(p.getNode(),"ol,ul");if(v){x=v.parentNode;if(/^(H[1-6]|P|ADDRESS|PRE)$/.test(x.nodeName)){i();m.split(x,v);g()}}},"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(v){s(v)},"ForeColor,HiliteColor,FontName":function(y,x,v){s(y,v)},FontSize:function(z,y,x){var v,A;if(x>=1&&x<=7){A=d.explode(k.font_size_style_values);v=d.explode(k.font_size_classes);if(v){x=v[x-1]||x}else{x=A[x-1]||x}}s(z,x)},RemoveFormat:function(v){q.remove(v)},mceBlockQuote:function(v){s("blockquote")},FormatBlock:function(y,x,v){return s(v||"p")},mceCleanup:function(){var v=p.getBookmark();n.setContent(n.getContent({cleanup:a}),{cleanup:a});p.moveToBookmark(v)},mceRemoveNode:function(z,y,x){var v=x||p.getNode();if(v!=n.getBody()){i();n.dom.remove(v,a);g()}},mceSelectNodeDepth:function(z,y,x){var v=0;m.getParent(p.getNode(),function(A){if(A.nodeType==1&&v++==x){p.select(A);return c}},n.getBody())},mceSelectNode:function(y,x,v){p.select(v)},mceInsertContent:function(B,I,K){var y,J,E,z,F,G,D,C,L,x,A,M,v,H;y=n.parser;J=new d.html.Serializer({},n.schema);v='\uFEFF';G={content:K,format:"html"};p.onBeforeSetContent.dispatch(p,G);K=G.content;if(K.indexOf("{$caret}")==-1){K+="{$caret}"}K=K.replace(/\{\$caret\}/,v);if(!p.isCollapsed()){n.getDoc().execCommand("Delete",false,null)}E=p.getNode();G={context:E.nodeName.toLowerCase()};F=y.parse(K,G);A=F.lastChild;if(A.attr("id")=="mce_marker"){D=A;for(A=A.prev;A;A=A.walk(true)){if(A.type==3||!m.isBlock(A.name)){A.parent.insert(D,A,A.name==="br");break}}}if(!G.invalid){K=J.serialize(F);A=E.firstChild;M=E.lastChild;if(!A||(A===M&&A.nodeName==="BR")){m.setHTML(E,K)}else{p.setContent(K)}}else{p.setContent(v);E=n.selection.getNode();z=n.getBody();if(E.nodeType==9){E=A=z}else{A=E}while(A!==z){E=A;A=A.parentNode}K=E==z?z.innerHTML:m.getOuterHTML(E);K=J.serialize(y.parse(K.replace(//i,function(){return J.serialize(F)})));if(E==z){m.setHTML(z,K)}else{m.setOuterHTML(E,K)}}D=m.get("mce_marker");C=m.getRect(D);L=m.getViewPort(n.getWin());if((C.y+C.h>L.y+L.h||C.yL.x+L.w||C.x")},mceToggleVisualAid:function(){n.hasVisual=!n.hasVisual;n.addVisual()},mceReplaceContent:function(y,x,v){n.execCommand("mceInsertContent",false,v.replace(/\{\$selection\}/g,p.getContent({format:"text"})))},mceInsertLink:function(z,y,x){var v;if(typeof(x)=="string"){x={href:x}}v=m.getParent(p.getNode(),"a");x.href=x.href.replace(" ","%20");if(!v||!x.href){q.remove("link")}if(x.href){q.apply("link",x,v)}},selectAll:function(){var x=m.getRoot(),v=m.createRng();v.setStart(x,0);v.setEnd(x,x.childNodes.length);n.selection.setRng(v)}});u({"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull":function(z){var x="align"+z.substring(7);var v=p.isCollapsed()?[m.getParent(p.getNode(),m.isBlock)]:p.getSelectedBlocks();var y=d.map(v,function(A){return !!q.matchNode(A,x)});return d.inArray(y,a)!==-1},"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(v){return t(v)},mceBlockQuote:function(){return t("blockquote")},Outdent:function(){var v;if(k.inline_styles){if((v=m.getParent(p.getStart(),m.isBlock))&&parseInt(v.style.paddingLeft)>0){return a}if((v=m.getParent(p.getEnd(),m.isBlock))&&parseInt(v.style.paddingLeft)>0){return a}}return l("InsertUnorderedList")||l("InsertOrderedList")||(!k.inline_styles&&!!m.getParent(p.getNode(),"BLOCKQUOTE"))},"InsertUnorderedList,InsertOrderedList":function(v){return m.getParent(p.getNode(),v=="insertunorderedlist"?"UL":"OL")}},"state");u({"FontSize,FontName":function(y){var x=0,v;if(v=m.getParent(p.getNode(),"span")){if(y=="fontsize"){x=v.style.fontSize}else{x=v.style.fontFamily.replace(/, /g,",").replace(/[\'\"]/g,"").toLowerCase()}}return x}},"value");u({Undo:function(){n.undoManager.undo()},Redo:function(){n.undoManager.redo()}})}})(tinymce);(function(b){var a=b.util.Dispatcher;b.UndoManager=function(h){var l,i=0,e=[],g,k,j,f;function c(){return b.trim(h.getContent({format:"raw",no_events:1}).replace(/]+data-mce-bogus[^>]+>[\u200B\uFEFF]+<\/span>/g,""))}function d(){l.typing=false;l.add()}onBeforeAdd=new a(l);k=new a(l);j=new a(l);f=new a(l);k.add(function(m,n){if(m.hasUndo()){return h.onChange.dispatch(h,n,m)}});j.add(function(m,n){return h.onUndo.dispatch(h,n,m)});f.add(function(m,n){return h.onRedo.dispatch(h,n,m)});h.onInit.add(function(){l.add()});h.onBeforeExecCommand.add(function(m,p,o,q,n){if(p!="Undo"&&p!="Redo"&&p!="mceRepaint"&&(!n||!n.skip_undo)){l.beforeChange()}});h.onExecCommand.add(function(m,p,o,q,n){if(p!="Undo"&&p!="Redo"&&p!="mceRepaint"&&(!n||!n.skip_undo)){l.add()}});h.onSaveContent.add(d);h.dom.bind(h.dom.getRoot(),"dragend",d);h.dom.bind(h.getDoc(),b.isGecko?"blur":"focusout",function(m){if(!h.removed&&l.typing){d()}});h.onKeyUp.add(function(m,o){var n=o.keyCode;if((n>=33&&n<=36)||(n>=37&&n<=40)||n==45||n==13||o.ctrlKey){d()}});h.onKeyDown.add(function(m,o){var n=o.keyCode;if((n>=33&&n<=36)||(n>=37&&n<=40)||n==45){if(l.typing){d()}return}if((n<16||n>20)&&n!=224&&n!=91&&!l.typing){l.beforeChange();l.typing=true;l.add()}});h.onMouseDown.add(function(m,n){if(l.typing){d()}});h.addShortcut("ctrl+z","undo_desc","Undo");h.addShortcut("ctrl+y","redo_desc","Redo");l={data:e,typing:false,onBeforeAdd:onBeforeAdd,onAdd:k,onUndo:j,onRedo:f,beforeChange:function(){g=h.selection.getBookmark(2,true)},add:function(p){var m,n=h.settings,o;p=p||{};p.content=c();l.onBeforeAdd.dispatch(l,p);o=e[i];if(o&&o.content==p.content){return null}if(e[i]){e[i].beforeBookmark=g}if(n.custom_undo_redo_levels){if(e.length>n.custom_undo_redo_levels){for(m=0;m0){n=e[--i];h.setContent(n.content,{format:"raw"});h.selection.moveToBookmark(n.beforeBookmark);l.onUndo.dispatch(l,n)}return n},redo:function(){var m;if(i0||this.typing},hasRedo:function(){return i0){g.moveEnd("character",q)}g.select()}catch(n){}}}c.nodeChanged()}}if(b.forced_root_block){c.onKeyUp.add(f);c.onNodeChange.add(f)}};(function(c){var b=c.DOM,a=c.dom.Event,d=c.each,e=c.extend;c.create("tinymce.ControlManager",{ControlManager:function(f,j){var h=this,g;j=j||{};h.editor=f;h.controls={};h.onAdd=new c.util.Dispatcher(h);h.onPostRender=new c.util.Dispatcher(h);h.prefix=j.prefix||f.id+"_";h._cls={};h.onPostRender.add(function(){d(h.controls,function(i){i.postRender()})})},get:function(f){return this.controls[this.prefix+f]||this.controls[f]},setActive:function(h,f){var g=null;if(g=this.get(h)){g.setActive(f)}return g},setDisabled:function(h,f){var g=null;if(g=this.get(h)){g.setDisabled(f)}return g},add:function(g){var f=this;if(g){f.controls[g.id]=g;f.onAdd.dispatch(g,f)}return g},createControl:function(j){var o,k,g,h=this,m=h.editor,n,f;if(!h.controlFactories){h.controlFactories=[];d(m.plugins,function(i){if(i.createControl){h.controlFactories.push(i)}})}n=h.controlFactories;for(k=0,g=n.length;k1||ag==ay||ag.tagName=="BR"){return ag}}}var aq=aa.selection.getRng();var av=aq.startContainer;var ap=aq.endContainer;if(av!=ap&&aq.endOffset===0){var au=ar(av,ap);var at=au.nodeType==3?au.length:au.childNodes.length;aq.setEnd(au,at)}return aq}function ad(at,ay,aw,av,aq){var ap=[],ar=-1,ax,aA=-1,au=-1,az;T(at.childNodes,function(aC,aB){if(aC.nodeName==="UL"||aC.nodeName==="OL"){ar=aB;ax=aC;return false}});T(at.childNodes,function(aC,aB){if(aC.nodeName==="SPAN"&&c.getAttrib(aC,"data-mce-type")=="bookmark"){if(aC.id==ay.id+"_start"){aA=aB}else{if(aC.id==ay.id+"_end"){au=aB}}}});if(ar<=0||(aAar)){T(a.grep(at.childNodes),aq);return 0}else{az=c.clone(aw,X);T(a.grep(at.childNodes),function(aC,aB){if((aAar&&aB>ar)){ap.push(aC);aC.parentNode.removeChild(aC)}});if(aAar){at.insertBefore(az,ax.nextSibling)}}av.push(az);T(ap,function(aB){az.appendChild(aB)});return az}}function an(aq,at,aw){var ap=[],av,ar,au=true;av=am.inline||am.block;ar=c.create(av);ab(ar);N.walk(aq,function(ax){var ay;function az(aA){var aF,aD,aB,aC,aE;aE=au;aF=aA.nodeName.toLowerCase();aD=aA.parentNode.nodeName.toLowerCase();if(aA.nodeType===1&&x(aA)){aE=au;au=x(aA)==="true";aC=true}if(g(aF,"br")){ay=0;if(am.block){c.remove(aA)}return}if(am.wrapper&&y(aA,ae,al)){ay=0;return}if(au&&!aC&&am.block&&!am.wrapper&&I(aF)){aA=c.rename(aA,av);ab(aA);ap.push(aA);ay=0;return}if(am.selector){T(ah,function(aG){if("collapsed" in aG&&aG.collapsed!==ai){return}if(c.is(aA,aG.selector)&&!b(aA)){ab(aA,aG);aB=true}});if(!am.inline||aB){ay=0;return}}if(au&&!aC&&d(av,aF)&&d(aD,av)&&!(!aw&&aA.nodeType===3&&aA.nodeValue.length===1&&aA.nodeValue.charCodeAt(0)===65279)&&!b(aA)){if(!ay){ay=c.clone(ar,X);aA.parentNode.insertBefore(ay,aA);ap.push(ay)}ay.appendChild(aA)}else{if(aF=="li"&&at){ay=ad(aA,at,ar,ap,az)}else{ay=0;T(a.grep(aA.childNodes),az);if(aC){au=aE}ay=0}}}T(ax,az)});if(am.wrap_links===false){T(ap,function(ax){function ay(aC){var aB,aA,az;if(aC.nodeName==="A"){aA=c.clone(ar,X);ap.push(aA);az=a.grep(aC.childNodes);for(aB=0;aB1||!H(az))&&ax===0){c.remove(az,1);return}if(am.inline||am.wrapper){if(!am.exact&&ax===1){az=ay(az)}T(ah,function(aB){T(c.select(aB.inline,az),function(aD){var aC;if(aB.wrap_links===false){aC=aD.parentNode;do{if(aC.nodeName==="A"){return}}while(aC=aC.parentNode)}Z(aB,al,aD,aB.exact?aD:null)})});if(y(az.parentNode,ae,al)){c.remove(az,1);az=0;return C}if(am.merge_with_parents){c.getParent(az.parentNode,function(aB){if(y(aB,ae,al)){c.remove(az,1);az=0;return C}})}if(az&&am.merge_siblings!==false){az=u(E(az),az);az=u(az,E(az,C))}}})}if(am){if(ag){if(ag.nodeType){ac=c.createRng();ac.setStartBefore(ag);ac.setEndAfter(ag);an(p(ac,ah),null,true)}else{an(ag,null,true)}}else{if(!ai||!am.inline||c.select("td.mceSelected,th.mceSelected").length){var ao=aa.selection.getNode();if(!m&&ah[0].defaultBlock&&!c.getParent(ao,c.isBlock)){Y(ah[0].defaultBlock)}aa.selection.setRng(af());ak=r.getBookmark();an(p(r.getRng(C),ah),ak);if(am.styles&&(am.styles.color||am.styles.textDecoration)){a.walk(ao,L,"childNodes");L(ao)}r.moveToBookmark(ak);R(r.getRng(C));aa.nodeChanged()}else{U("apply",ae,al)}}}}function B(ad,am,af){var ag=V(ad),ao=ag[0],ak,aj,ac,al=true;function ae(av){var au,at,ar,aq,ax,aw;if(av.nodeType===1&&x(av)){ax=al;al=x(av)==="true";aw=true}au=a.grep(av.childNodes);if(al&&!aw){for(at=0,ar=ag.length;at=0;ac--){ab=ah[ac].selector;if(!ab){return C}for(ag=ad.length-1;ag>=0;ag--){if(c.is(ad[ag],ab)){return C}}}}return X}function J(ab,ad){var ac;if(!P){P={};ac={};aa.onNodeChange.addToTop(function(af,ae,ah){var ag=n(ah),ai={};T(P,function(aj,ak){T(ag,function(al){if(y(al,ak,{},true)){if(!ac[ak]){T(aj,function(am){am(true,{node:al,format:ak,parents:ag})});ac[ak]=aj}ai[ak]=aj;return false}})});T(ac,function(aj,ak){if(!ai[ak]){delete ac[ak];T(aj,function(al){al(false,{node:ah,format:ak,parents:ag})})}})})}T(ab.split(","),function(ae){if(!P[ae]){P[ae]=[]}P[ae].push(ad)});return this}a.extend(this,{get:V,register:l,apply:Y,remove:B,toggle:F,match:k,matchAll:v,matchNode:y,canApply:z,formatChanged:J});j();W();function h(ab,ac){if(g(ab,ac.inline)){return C}if(g(ab,ac.block)){return C}if(ac.selector){return c.is(ab,ac.selector)}}function g(ac,ab){ac=ac||"";ab=ab||"";ac=""+(ac.nodeName||ac);ab=""+(ab.nodeName||ab);return ac.toLowerCase()==ab.toLowerCase()}function O(ac,ab){var ad=c.getStyle(ac,ab);if(ab=="color"||ab=="backgroundColor"){ad=c.toHex(ad)}if(ab=="fontWeight"&&ad==700){ad="bold"}return""+ad}function q(ab,ac){if(typeof(ab)!="string"){ab=ab(ac)}else{if(ac){ab=ab.replace(/%(\w+)/g,function(ae,ad){return ac[ad]||ae})}}return ab}function f(ab){return ab&&ab.nodeType===3&&/^([\t \r\n]+|)$/.test(ab.nodeValue)}function S(ad,ac,ab){var ae=c.create(ac,ab);ad.parentNode.insertBefore(ae,ad);ae.appendChild(ad);return ae}function p(ab,am,ae){var ap,an,ah,al,ad=ab.startContainer,ai=ab.startOffset,ar=ab.endContainer,ak=ab.endOffset;function ao(az){var au,ax,ay,aw,av,at;au=ax=az?ad:ar;av=az?"previousSibling":"nextSibling";at=c.getRoot();if(au.nodeType==3&&!f(au)){if(az?ai>0:akan?an:ai];if(ad.nodeType==3){ai=0}}if(ar.nodeType==1&&ar.hasChildNodes()){an=ar.childNodes.length-1;ar=ar.childNodes[ak>an?an:ak-1];if(ar.nodeType==3){ak=ar.nodeValue.length}}function aq(au){var at=au;while(at){if(at.nodeType===1&&x(at)){return x(at)==="false"?at:au}at=at.parentNode}return au}function aj(au,ay,aA){var ax,av,az,at;function aw(aC,aE){var aF,aB,aD=aC.nodeValue;if(typeof(aE)=="undefined"){aE=aA?aD.length:0}if(aA){aF=aD.lastIndexOf(" ",aE);aB=aD.lastIndexOf("\u00a0",aE);aF=aF>aB?aF:aB;if(aF!==-1&&!ae){aF++}}else{aF=aD.indexOf(" ",aE);aB=aD.indexOf("\u00a0",aE);aF=aF!==-1&&(aB===-1||aF0&&ah.node.nodeType===3&&ah.node.nodeValue.charAt(ah.offset-1)===" "){if(ah.offset>1){ar=ah.node;ar.splitText(ah.offset-1)}}}}if(am[0].inline||am[0].block_expand){if(!am[0].inline||(ad.nodeType!=3||ai===0)){ad=ao(true)}if(!am[0].inline||(ar.nodeType!=3||ak===ar.nodeValue.length)){ar=ao()}}if(am[0].selector&&am[0].expand!==X&&!am[0].inline){ad=af(ad,"previousSibling");ar=af(ar,"nextSibling")}if(am[0].block||am[0].selector){ad=ac(ad,"previousSibling");ar=ac(ar,"nextSibling");if(am[0].block){if(!H(ad)){ad=ao(true)}if(!H(ar)){ar=ao()}}}if(ad.nodeType==1){ai=s(ad);ad=ad.parentNode}if(ar.nodeType==1){ak=s(ar)+1;ar=ar.parentNode}return{startContainer:ad,startOffset:ai,endContainer:ar,endOffset:ak}}function Z(ah,ag,ae,ab){var ad,ac,af;if(!h(ae,ah)){return X}if(ah.remove!="all"){T(ah.styles,function(aj,ai){aj=q(aj,ag);if(typeof(ai)==="number"){ai=aj;ab=0}if(!ab||g(O(ab,ai),aj)){c.setStyle(ae,ai,"")}af=1});if(af&&c.getAttrib(ae,"style")==""){ae.removeAttribute("style");ae.removeAttribute("data-mce-style")}T(ah.attributes,function(ak,ai){var aj;ak=q(ak,ag);if(typeof(ai)==="number"){ai=ak;ab=0}if(!ab||g(c.getAttrib(ab,ai),ak)){if(ai=="class"){ak=c.getAttrib(ae,ai);if(ak){aj="";T(ak.split(/\s+/),function(al){if(/mce\w+/.test(al)){aj+=(aj?" ":"")+al}});if(aj){c.setAttrib(ae,ai,aj);return}}}if(ai=="class"){ae.removeAttribute("className")}if(e.test(ai)){ae.removeAttribute("data-mce-"+ai)}ae.removeAttribute(ai)}});T(ah.classes,function(ai){ai=q(ai,ag);if(!ab||c.hasClass(ab,ai)){c.removeClass(ae,ai)}});ac=c.getAttribs(ae);for(ad=0;adad?ad:af]}if(ab.nodeType===3&&ag&&af>=ab.nodeValue.length){ab=new t(ab,aa.getBody()).next()||ab}if(ab.nodeType===3&&!ag&&af===0){ab=new t(ab,aa.getBody()).prev()||ab}return ab}function U(ak,ab,ai){var al="_mce_caret",ac=aa.settings.caret_debug;function ad(ap){var ao=c.create("span",{id:al,"data-mce-bogus":true,style:ac?"color:red":""});if(ap){ao.appendChild(aa.getDoc().createTextNode(G))}return ao}function aj(ap,ao){while(ap){if((ap.nodeType===3&&ap.nodeValue!==G)||ap.childNodes.length>1){return false}if(ao&&ap.nodeType===1){ao.push(ap)}ap=ap.firstChild}return true}function ag(ao){while(ao){if(ao.id===al){return ao}ao=ao.parentNode}}function af(ao){var ap;if(ao){ap=new t(ao,ao);for(ao=ap.current();ao;ao=ap.next()){if(ao.nodeType===3){return ao}}}}function ae(aq,ap){var ar,ao;if(!aq){aq=ag(r.getStart());if(!aq){while(aq=c.get(al)){ae(aq,false)}}}else{ao=r.getRng(true);if(aj(aq)){if(ap!==false){ao.setStartBefore(aq);ao.setEndBefore(aq)}c.remove(aq)}else{ar=af(aq);if(ar.nodeValue.charAt(0)===G){ar=ar.deleteData(0,1)}c.remove(aq,1)}r.setRng(ao)}}function ah(){var aq,ao,av,au,ar,ap,at;aq=r.getRng(true);au=aq.startOffset;ap=aq.startContainer;at=ap.nodeValue;ao=ag(r.getStart());if(ao){av=af(ao)}if(at&&au>0&&au=0;at--){aq.appendChild(c.clone(ax[at],false));aq=aq.firstChild}aq.appendChild(c.doc.createTextNode(G));aq=aq.firstChild;c.insertAfter(aw,ay);r.setCursorLocation(aq,1)}}function an(){var ap,ao,aq;ao=ag(r.getStart());if(ao&&!c.isEmpty(ao)){a.walk(ao,function(ar){if(ar.nodeType==1&&ar.id!==al&&!c.isEmpty(ar)){c.setAttrib(ar,"data-mce-bogus",null)}},"childNodes")}}if(!self._hasCaretEvents){aa.onBeforeGetContent.addToTop(function(){var ao=[],ap;if(aj(ag(r.getStart()),ao)){ap=ao.length;while(ap--){c.setAttrib(ao[ap],"data-mce-bogus","1")}}});a.each("onMouseUp onKeyUp".split(" "),function(ao){aa[ao].addToTop(function(){ae();an()})});aa.onKeyDown.addToTop(function(ao,aq){var ap=aq.keyCode;if(ap==8||ap==37||ap==39){ae(ag(r.getStart()))}an()});r.onSetContent.add(an);self._hasCaretEvents=true}if(ak=="apply"){ah()}else{am()}}function R(ac){var ab=ac.startContainer,ai=ac.startOffset,ae,ah,ag,ad,af;if(ab.nodeType==3&&ai>=ab.nodeValue.length){ai=s(ab);ab=ab.parentNode;ae=true}if(ab.nodeType==1){ad=ab.childNodes;ab=ad[Math.min(ai,ad.length-1)];ah=new t(ab,c.getParent(ab,c.isBlock));if(ai>ad.length-1||ae){ah.next()}for(ag=ah.current();ag;ag=ah.next()){if(ag.nodeType==3&&!f(ag)){af=c.create("a",null,G);ag.parentNode.insertBefore(af,ag);ac.setStart(ag,0);r.setRng(ac);c.remove(af);return}}}}}})(tinymce);tinymce.onAddEditor.add(function(e,a){var d,h,g,c=a.settings;function b(j,i){e.each(i,function(l,k){if(l){g.setStyle(j,k,l)}});g.rename(j,"span")}function f(i,j){g=i.dom;if(c.convert_fonts_to_spans){e.each(g.select("font,u,strike",j.node),function(k){d[k.nodeName.toLowerCase()](a.dom,k)})}}if(c.inline_styles){h=e.explode(c.font_size_legacy_values);d={font:function(j,i){b(i,{backgroundColor:i.style.backgroundColor,color:i.color,fontFamily:i.face,fontSize:h[parseInt(i.size,10)-1]})},u:function(j,i){b(i,{textDecoration:"underline"})},strike:function(j,i){b(i,{textDecoration:"line-through"})}};a.onPreProcess.add(f);a.onSetContent.add(f);a.onInit.add(function(){a.selection.onSetContent.add(f)})}});(function(b){var a=b.dom.TreeWalker;b.EnterKey=function(f){var i=f.dom,e=f.selection,d=f.settings,h=f.undoManager,c=f.schema.getNonEmptyElements();function g(A){var v=e.getRng(true),E,j,z,u,p,L,o,k,n,t,I,x,B;function D(M){return M&&i.isBlock(M)&&!/^(TD|TH|CAPTION|FORM)$/.test(M.nodeName)&&!/^(fixed|absolute)/i.test(M.style.position)&&i.getContentEditable(M)!=="true"}function F(N){var M;if(b.isIE&&i.isBlock(N)){M=e.getRng();N.appendChild(i.create("span",null,"\u00a0"));e.select(N);N.lastChild.outerHTML="";e.setRng(M)}}function y(O){var N=O,P=[],M;while(N=N.firstChild){if(i.isBlock(N)){return}if(N.nodeType==1&&!c[N.nodeName.toLowerCase()]){P.push(N)}}M=P.length;while(M--){N=P[M];if(!N.hasChildNodes()||(N.firstChild==N.lastChild&&N.firstChild.nodeValue==="")){i.remove(N)}}}function m(N){var S,Q,M,T,R,P=N,O;M=i.createRng();if(N.hasChildNodes()){S=new a(N,N);while(Q=S.current()){if(Q.nodeType==3){M.setStart(Q,0);M.setEnd(Q,0);break}if(c[Q.nodeName.toLowerCase()]){M.setStartBefore(Q);M.setEndBefore(Q);break}P=Q;Q=S.next()}if(!Q){M.setStart(P,0);M.setEnd(P,0)}}else{if(N.nodeName=="BR"){if(N.nextSibling&&i.isBlock(N.nextSibling)){if(!L||L<9){O=i.create("br");N.parentNode.insertBefore(O,N)}M.setStartBefore(N);M.setEndBefore(N)}else{M.setStartAfter(N);M.setEndAfter(N)}}else{M.setStart(N,0);M.setEnd(N,0)}}e.setRng(M);i.remove(O);R=i.getViewPort(f.getWin());T=i.getPos(N).y;if(TR.y+R.h){f.getWin().scrollTo(0,T"}return Q}function q(P){var O,N,M;if(z.nodeType==3&&(P?u>0:u=z.nodeValue.length){if(!b.isIE&&!C()){N=i.create("br");v.insertNode(N);v.setStartAfter(N);v.setEndAfter(N);M=true}}N=i.create("br");v.insertNode(N);if(b.isIE&&t=="PRE"&&(!L||L<8)){N.parentNode.insertBefore(i.doc.createTextNode("\r"),N)}if(!M){v.setStartAfter(N);v.setEndAfter(N)}else{v.setStartBefore(N);v.setEndBefore(N)}e.setRng(v);h.add()}function s(M){do{if(M.nodeType===3){M.nodeValue=M.nodeValue.replace(/^[\r\n]+/,"")}M=M.firstChild}while(M)}function J(O){var M=i.getRoot(),N,P;N=O;while(N!==M&&i.getContentEditable(N)!=="false"){if(i.getContentEditable(N)==="true"){P=N}N=N.parentNode}return N!==M?P:M}function H(N){var M;if(!b.isIE){N.normalize();M=N.lastChild;if(!M||(/^(left|right)$/gi.test(i.getStyle(M,"float",true)))){i.add(N,"br")}}}if(!v.collapsed){f.execCommand("Delete");return}if(A.isDefaultPrevented()){return}z=v.startContainer;u=v.startOffset;x=d.forced_root_block;x=x?x.toUpperCase():"";L=i.doc.documentMode;if(z.nodeType==1&&z.hasChildNodes()){B=u>z.childNodes.length-1;z=z.childNodes[Math.min(u,z.childNodes.length-1)]||z;if(B&&z.nodeType==3){u=z.nodeValue.length}else{u=0}}j=J(z);if(!j){return}h.beforeChange();if(!i.isBlock(j)&&j!=i.getRoot()){if(!x||A.shiftKey){K()}return}if((x&&!A.shiftKey)||(!x&&A.shiftKey)){z=l(z,u)}p=i.getParent(z,i.isBlock);n=p?i.getParent(p.parentNode,i.isBlock):null;t=p?p.nodeName.toUpperCase():"";I=n?n.nodeName.toUpperCase():"";if(t=="LI"&&i.isEmpty(p)){if(/^(UL|OL|LI)$/.test(n.parentNode.nodeName)){return false}G();return}if(t=="PRE"&&d.br_in_pre!==false){if(!A.shiftKey){K();return}}else{if((!x&&!A.shiftKey&&t!="LI")||(x&&A.shiftKey)){K();return}}x=x||"P";if(q()){if(/^(H[1-6]|PRE)$/.test(t)&&I!="HGROUP"){o=r(x)}else{o=r()}if(d.end_container_on_empty_block&&D(n)&&i.isEmpty(p)){o=i.split(n,p)}else{i.insertAfter(o,p)}m(o)}else{if(q(true)){o=p.parentNode.insertBefore(r(),p);F(o)}else{E=v.cloneRange();E.setEndAfter(p);k=E.extractContents();s(k);o=k.firstChild;i.insertAfter(k,p);y(o);H(p);m(o)}}i.setAttrib(o,"id","");h.add()}f.onKeyDown.add(function(k,j){if(j.keyCode==13){if(g(j)!==false){j.preventDefault()}}})}})(tinymce); \ No newline at end of file diff --git a/askbot/skins/default/media/js/tinymce/tiny_mce_popup.js b/askbot/skins/default/media/js/tinymce/tiny_mce_popup.js new file mode 100644 index 00000000..bb8e58c8 --- /dev/null +++ b/askbot/skins/default/media/js/tinymce/tiny_mce_popup.js @@ -0,0 +1,5 @@ + +// Uncomment and change this document.domain value if you are loading the script cross subdomains +// document.domain = 'moxiecode.com'; + +var tinymce=null,tinyMCEPopup,tinyMCE;tinyMCEPopup={init:function(){var b=this,a,c;a=b.getWin();tinymce=a.tinymce;tinyMCE=a.tinyMCE;b.editor=tinymce.EditorManager.activeEditor;b.params=b.editor.windowManager.params;b.features=b.editor.windowManager.features;b.dom=b.editor.windowManager.createInstance("tinymce.dom.DOMUtils",document,{ownEvents:true,proxy:tinyMCEPopup._eventProxy});b.dom.bind(window,"ready",b._onDOMLoaded,b);if(b.features.popup_css!==false){b.dom.loadCSS(b.features.popup_css||b.editor.settings.popup_css)}b.listeners=[];b.onInit={add:function(e,d){b.listeners.push({func:e,scope:d})}};b.isWindow=!b.getWindowArg("mce_inline");b.id=b.getWindowArg("mce_window_id");b.editor.windowManager.onOpen.dispatch(b.editor.windowManager,window)},getWin:function(){return(!window.frameElement&&window.dialogArguments)||opener||parent||top},getWindowArg:function(c,b){var a=this.params[c];return tinymce.is(a)?a:b},getParam:function(b,a){return this.editor.getParam(b,a)},getLang:function(b,a){return this.editor.getLang(b,a)},execCommand:function(d,c,e,b){b=b||{};b.skip_focus=1;this.restoreSelection();return this.editor.execCommand(d,c,e,b)},resizeToInnerSize:function(){var a=this;setTimeout(function(){var b=a.dom.getViewPort(window);a.editor.windowManager.resizeBy(a.getWindowArg("mce_width")-b.w,a.getWindowArg("mce_height")-b.h,a.id||window)},10)},executeOnLoad:function(s){this.onInit.add(function(){eval(s)})},storeSelection:function(){this.editor.windowManager.bookmark=tinyMCEPopup.editor.selection.getBookmark(1)},restoreSelection:function(){var a=tinyMCEPopup;if(!a.isWindow&&tinymce.isIE){a.editor.selection.moveToBookmark(a.editor.windowManager.bookmark)}},requireLangPack:function(){var b=this,a=b.getWindowArg("plugin_url")||b.getWindowArg("theme_url");if(a&&b.editor.settings.language&&b.features.translate_i18n!==false&&b.editor.settings.language_load!==false){a+="/langs/"+b.editor.settings.language+"_dlg.js";if(!tinymce.ScriptLoader.isDone(a)){document.write(' + + + + +
          +
          + +
          +
          +
          +
          + +

          To test that page up/down and arrow keys work, copy this above the WMD + control.

          + + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + Scroll Down!
          + + + + \ No newline at end of file diff --git a/askbot/skins/default/media/js/wmd/wmd.css b/askbot/skins/default/media/js/wmd/wmd.css new file mode 100644 index 00000000..678d70f3 --- /dev/null +++ b/askbot/skins/default/media/js/wmd/wmd.css @@ -0,0 +1,130 @@ +/*body +{ + background-color: White +} +*/ +.wmd-panel +{ +} + +#wmd-button-bar +{ + background: url(images/editor-toolbar-background.png) repeat-x bottom; + height: 30px; + border: 0; + display: block; +} + +#wmd-input +{ + height: 500px; + background-color: Gainsboro; + border: 1px solid DarkGray; + margin-top: -20px; +} + +#wmd-preview +{ + background-color: LightSkyBlue; +} + +#wmd-output +{ + background-color: Pink; +} + +#wmd-button-row +{ + position: relative; + margin: 10px 2px 0 2px; + padding: 0px; + height: 20px; +} + +.wmd-spacer +{ + width: 1px; + height: 20px; + margin-left: 2px; + margin-right: 4px; + /*position: absolute;*/ + background-color: Silver; + display: inline-block; + list-style: none; +} + +.wmd-button +{ + width: 20px; + height: 20px; + margin-left: 5px; + margin-right: 5px; + + /*position: absolute;*/ + background-image: url(images/wmd-buttons.png); + background-repeat: no-repeat; + background-position: 0px 0px; + display: inline-block; + list-style: none; +} + +.wmd-button > a +{ + width: 20px; + height: 20px; + margin-left: 5px; + margin-right: 5px; + + position: absolute; + display: inline-block; +} + + +/* sprite button slicing style information */ +#wmd-button-bar #wmd-bold-button {left: 0px; background-position: 0px 0;} +#wmd-button-bar #wmd-italic-button {left: 25px; background-position: -20px 0;} +#wmd-button-bar #wmd-spacer1 {left: 50px;} +#wmd-button-bar #wmd-link-button {left: 75px; background-position: -40px 0;} +#wmd-button-bar #wmd-quote-button {left: 100px; background-position: -60px 0;} +#wmd-button-bar #wmd-code-button {left: 125px; background-position: -80px 0;} +#wmd-button-bar #wmd-image-button {left: 150px; background-position: -100px 0;} +#wmd-button-bar #wmd-attachment-button {left: 175px; background-position: -120px 0;} +#wmd-button-bar #wmd-spacer2 {left: 200px;} +#wmd-button-bar #wmd-olist-button {left: 225px; background-position: -140px 0;} +#wmd-button-bar #wmd-ulist-button {left: 250px; background-position: -160px 0;} +#wmd-button-bar #wmd-heading-button {left: 275px; background-position: -180px 0;} +#wmd-button-bar #wmd-hr-button {left: 300px; background-position: -200px 0;} +#wmd-button-bar #wmd-spacer3 {left: 325px;} +#wmd-button-bar #wmd-undo-button {left: 350px; background-position: -220px 0;} +#wmd-button-bar #wmd-redo-button {left: 375px; background-position: -240px 0;} +#wmd-button-bar #wmd-help-button {right: 0px; background-position: -260px 0;} + + +.wmd-prompt-background +{ + background-color: Black; +} + +.wmd-prompt-dialog +{ + border: 1px solid #999999; + background-color: #F5F5F5; +} + +.wmd-prompt-dialog > div { + font-size: 1em; + font-family: arial, helvetica, sans-serif; +} + + +.wmd-prompt-dialog > form > input[type="text"] { + border: 1px solid #999999; + color: black; +} + +.wmd-prompt-dialog > form > input[type="button"]{ + border: 1px solid #888888; + font-family: trebuchet MS, helvetica, sans-serif; + font-size: 1em; + font-weight: bold; +} diff --git a/askbot/skins/default/media/js/wmd/wmd.js b/askbot/skins/default/media/js/wmd/wmd.js new file mode 100644 index 00000000..5aeacd98 --- /dev/null +++ b/askbot/skins/default/media/js/wmd/wmd.js @@ -0,0 +1,2510 @@ +var Attacklab = Attacklab || {}; + +Attacklab.wmdBase = function(){ + + // A few handy aliases for readability. + var wmd = self.Attacklab; + var doc = self.document; + var re = self.RegExp; + var nav = self.navigator; + + // Some namespaces. + wmd.Util = {}; + wmd.Position = {}; + wmd.Command = {}; + wmd.Global = {}; + + var util = wmd.Util; + var position = wmd.Position; + var command = wmd.Command; + var global = wmd.Global; + + + // Used to work around some browser bugs where we can't use feature testing. + global.isChrome = /chrome/.test(nav.userAgent.toLowerCase()); + global.isIE = /msie/.test(nav.userAgent.toLowerCase()); + global.isIE_5or6 = /msie 6/.test(nav.userAgent.toLowerCase()) || /msie 5/.test(nav.userAgent.toLowerCase()); + global.isIE_7plus = global.isIE && !global.isIE_5or6; + global.isOpera = /opera/.test(nav.userAgent.toLowerCase()); + global.isKonqueror = /konqueror/.test(nav.userAgent.toLowerCase()); + + var toolbar_strong_label = gettext('bold') + " Ctrl-B"; + var toolbar_emphasis_label = gettext('italic') + " Ctrl-I"; + var toolbar_hyperlink_label = gettext('link') + " Ctrl-L"; + var toolbar_blockquote_label = gettext('quote') + "
          Ctrl-."; + var toolbar_code_label = gettext('preformatted text') + "
           Ctrl-K";
          +    var toolbar_image_label = gettext('image') + "  Ctrl-G";
          +    var toolbar_attachment_label = gettext('attachment') + " Ctrl-F";
          +    var toolbar_numbered_label = gettext('numbered list') + " 
            Ctrl-O"; + var toolbar_bulleted_label = gettext('bulleted list') + "
              Ctrl-U"; + var toolbar_heading_label = gettext('heading') + "

              /

              Ctrl-H"; + var toolbar_horizontal_label = gettext('horizontal bar') + "
              Ctrl-R"; + var toolbar_undo_label = gettext('undo') + " Ctrl-Z"; + var toolbar_redo_label = gettext('redo') + " Ctrl-Y"; + + // ------------------------------------------------------------------- + // YOUR CHANGES GO HERE + // + // I've tried to localize the things you are likely to change to + // this area. + // ------------------------------------------------------------------- + + // The text that appears on the upper part of the dialog box when + // entering links. + var imageDialogText = "

              " + gettext('enter image url') + '

              '; + var linkDialogText = "

              " + gettext('enter url') + '

              '; + var fileDialogText = "

              " + gettext('upload file attachment') + '

              '; + // The default text that appears in the dialog input box when entering + // links. + var imageDefaultText = "http://"; + var linkDefaultText = "http://"; + + // The location of your button images relative to the base directory. + var imageDirectory = "images/"; + + // Some intervals in ms. These can be adjusted to reduce the control's load. + var previewPollInterval = 500; + var pastePollInterval = 100; + + // The link and title for the help button + var helpLink = "http://wmd-editor.com/"; + var helpHoverTitle = "WMD website"; + var helpTarget = "_blank"; + var localUploadFileName = null; + + // ------------------------------------------------------------------- + // END OF YOUR CHANGES + // ------------------------------------------------------------------- + + // A collection of the important regions on the page. + // Cached so we don't have to keep traversing the DOM. + wmd.PanelCollection = function(){ + this.buttonBar = doc.getElementById("wmd-button-bar"); + this.preview = doc.getElementById("previewer"); + this.output = doc.getElementById("wmd-output"); + this.input = doc.getElementById("editor"); + }; + + // This PanelCollection object can't be filled until after the page + // has loaded. + wmd.panels = undefined; + + // Internet explorer has problems with CSS sprite buttons that use HTML + // lists. When you click on the background image "button", IE will + // select the non-existent link text and discard the selection in the + // textarea. The solution to this is to cache the textarea selection + // on the button's mousedown event and set a flag. In the part of the + // code where we need to grab the selection, we check for the flag + // and, if it's set, use the cached area instead of querying the + // textarea. + // + // This ONLY affects Internet Explorer (tested on versions 6, 7 + // and 8) and ONLY on button clicks. Keyboard shortcuts work + // normally since the focus never leaves the textarea. + wmd.ieCachedRange = null; // cached textarea selection + wmd.ieRetardedClick = false; // flag + + // Returns true if the DOM element is visible, false if it's hidden. + // Checks if display is anything other than none. + util.isVisible = function (elem) { + + if (window.getComputedStyle) { + // Most browsers + return window.getComputedStyle(elem, null).getPropertyValue("display") !== "none"; + } + else if (elem.currentStyle) { + // IE + return elem.currentStyle.display !== "none"; + } + }; + + + // Adds a listener callback to a DOM element which is fired on a specified + // event. + util.addEvent = function(elem, event, listener){ + if (elem.attachEvent) { + // IE only. The "on" is mandatory. + elem.attachEvent("on" + event, listener); + } + else { + // Other browsers. + elem.addEventListener(event, listener, false); + } + }; + + + // Removes a listener callback from a DOM element which is fired on a specified + // event. + util.removeEvent = function(elem, event, listener){ + if (elem.detachEvent) { + // IE only. The "on" is mandatory. + elem.detachEvent("on" + event, listener); + } + else { + // Other browsers. + elem.removeEventListener(event, listener, false); + } + }; + + // Converts \r\n and \r to \n. + util.fixEolChars = function(text){ + text = text.replace(/\r\n/g, "\n"); + text = text.replace(/\r/g, "\n"); + return text; + }; + + // Extends a regular expression. Returns a new RegExp + // using pre + regex + post as the expression. + // Used in a few functions where we have a base + // expression and we want to pre- or append some + // conditions to it (e.g. adding "$" to the end). + // The flags are unchanged. + // + // regex is a RegExp, pre and post are strings. + util.extendRegExp = function(regex, pre, post){ + + if (pre === null || pre === undefined) + { + pre = ""; + } + if(post === null || post === undefined) + { + post = ""; + } + + var pattern = regex.toString(); + var flags; + + // Replace the flags with empty space and store them. + pattern = pattern.replace(/\/([gim]*)$/, ""); + flags = re.$1; + + // Remove the slash delimiters on the regular expression. + pattern = pattern.replace(/(^\/|\/$)/g, ""); + pattern = pre + pattern + post; + + return new re(pattern, flags); + }; + + + // Sets the image for a button passed to the WMD editor. + // Returns a new element with the image attached. + // Adds several style properties to the image. + util.createImage = function(img){ + + var imgPath = imageDirectory + img; + + var elem = doc.createElement("img"); + elem.className = "wmd-button"; + elem.src = imgPath; + + return elem; + }; + + +// This simulates a modal dialog box and asks for the URL when you +// click the hyperlink or image buttons. +// +// text: The html for the input box. +// defaultInputText: The default value that appears in the input box. +// makeLinkMarkdown: The function which is executed when the prompt is dismissed, either via OK or Cancel +util.prompt = function(text, defaultInputText, makeLinkMarkdown, dialogType){ + + // These variables need to be declared at this level since they are used + // in multiple functions. + var dialog;// The dialog box. + var background;// The background beind the dialog box. + var input;// The text box where you enter the hyperlink. + + if (defaultInputText === undefined) { + defaultInputText = ""; + } + + // Used as a keydown event handler. Esc dismisses the prompt. + // Key code 27 is ESC. + var checkEscape = function(key){ + var code = (key.charCode || key.keyCode); + if (code === 27) { + close(true); + } + }; + + // Dismisses the hyperlink input box. + // isCancel is true if we don't care about the input text. + // isCancel is false if we are going to keep the text. + var close = function(isCancel){ + util.removeEvent(doc.body, "keydown", checkEscape); + var text = input.value; + + if (isCancel){ + text = null; + } + else{ + // Fixes common pasting errors. + text = text.replace('http://http://', 'http://'); + text = text.replace('http://https://', 'https://'); + text = text.replace('http://ftp://', 'ftp://'); + + if (text.indexOf('http://') === -1 && text.indexOf('ftp://') === -1 && text.indexOf('https://') === -1) { + if (dialogType == 'link'){ + //add http only to urls + text = 'http://' + text; + } + } + } + + dialog.parentNode.removeChild(dialog); + background.parentNode.removeChild(background); + makeLinkMarkdown(text); + return false; + }; + + // Creates the background behind the hyperlink text entry box. + // Most of this has been moved to CSS but the div creation and + // browser-specific hacks remain here. + var createBackground = function(){ + + background = doc.createElement("div"); + background.className = "wmd-prompt-background"; + style = background.style; + style.position = "absolute"; + style.top = "0"; + + style.zIndex = "1000"; + + // Some versions of Konqueror don't support transparent colors + // so we make the whole window transparent. + // + // Is this necessary on modern konqueror browsers? + if (global.isKonqueror){ + style.backgroundColor = "transparent"; + } + else if (global.isIE){ + style.filter = "alpha(opacity=50)"; + } + else { + style.opacity = "0.5"; + } + + var pageSize = position.getPageSize(); + style.height = pageSize[1] + "px"; + + if(global.isIE){ + style.left = doc.documentElement.scrollLeft; + style.width = doc.documentElement.clientWidth; + } + else { + style.left = "0"; + style.width = "100%"; + } + + doc.body.appendChild(background); + }; + + // Create the text input box form/window. + var createDialog = function(){ + + // The main dialog box. + dialog = doc.createElement("div"); + dialog.className = "wmd-prompt-dialog"; + dialog.style.padding = "10px;"; + dialog.style.position = "fixed"; + dialog.style.width = "400px"; + dialog.style.zIndex = "1001"; + + // The dialog text. + var question = doc.createElement("div"); + question.innerHTML = text; + question.style.padding = "5px"; + dialog.appendChild(question); + + // The web form container for the text box and buttons. + var form = doc.createElement("form"); + form.onsubmit = function(){ return close(false); }; + style = form.style; + style.padding = "0"; + style.margin = "0"; + style.cssFloat = "left"; + style.width = "100%"; + style.textAlign = "center"; + style.position = "relative"; + dialog.appendChild(form); + + // The input text box + input = doc.createElement("input"); + if(dialogType == 'image' || dialogType == 'file'){ + input.id = "image-url"; + } + input.type = "text"; + if (dialogType == 'file'){ + input.disabled = "disabled"; + }; + + input.value = defaultInputText; + style = input.style; + style.display = "block"; + style.width = "80%"; + style.marginLeft = style.marginRight = "auto"; + form.appendChild(input); + + //EF. fucus at the end of the input box + //putCursorAtEnd($(input)); + + // The upload file input + if(dialogType == 'image' || dialogType == 'file'){ + var upload_container = $('
              '); + var upload_input = $(''); + upload_input.attr('name', 'file-upload'); + upload_input.attr('id', 'file-upload'); + upload_input.attr('size', 26); + + var spinner = $(''); + spinner.attr('id', 'loading'); + spinner.attr('src', mediaUrl("media/images/indicator.gif")); + spinner.css('display', 'none'); + + var startUploadHandler = function(){ + localUploadFileName = $(this).val();//this is a local var + /* + * startUploadHandler is passed into the ajaxFileUpload + * in order to re-install the onchange handler + * because the jquery extension ajaxFileUpload removes the handler + */ + var options = { + spinner: spinner, + uploadInputId: 'file-upload', + urlInput: $(input), + startUploadHandler: startUploadHandler + }; + return ajaxFileUpload(options); + //$('#image-url'), startUploadHandler); + }; + + upload_input.change(startUploadHandler); + + upload_container.append(upload_input); + upload_container.append($('
              ')); + + upload_container.append(spinner); + + upload_container.css('padding', '5px'); + $(form).append(upload_container); + } + + // The ok button + var okButton = doc.createElement("input"); + okButton.type = "button"; + okButton.onclick = function(){ + var isCancel = false; + if ($.trim($(input).val()) === ''){ + isCancel = true; + } + return close(isCancel); + }; + okButton.value = "OK"; + style = okButton.style; + style.margin = "10px"; + style.display = "inline"; + style.width = "7em"; + + // The cancel button + var cancelButton = doc.createElement("input"); + cancelButton.type = "button"; + cancelButton.onclick = function(){ return close(true); }; + cancelButton.value = "Cancel"; + style = cancelButton.style; + style.margin = "10px"; + style.display = "inline"; + style.width = "7em"; + + // The order of these buttons is different on macs. + if (/mac/.test(nav.platform.toLowerCase())) { + form.appendChild(cancelButton); + form.appendChild(okButton); + } + else { + form.appendChild(okButton); + form.appendChild(cancelButton); + } + + util.addEvent(doc.body, "keydown", checkEscape); + dialog.style.top = "50%"; + dialog.style.left = "50%"; + dialog.style.display = "block"; + if(global.isIE_5or6){ + dialog.style.position = "absolute"; + dialog.style.top = doc.documentElement.scrollTop + 200 + "px"; + dialog.style.left = "50%"; + } + doc.body.appendChild(dialog); + + // This has to be done AFTER adding the dialog to the form if you + // want it to be centered. + dialog.style.marginTop = -(position.getHeight(dialog) / 2) + "px"; + dialog.style.marginLeft = -(position.getWidth(dialog) / 2) + "px"; + + }; + + createBackground(); + + // Why is this in a zero-length timeout? + // Is it working around a browser bug? + top.setTimeout(function(){ + createDialog(); + var defTextLen = defaultInputText.length; + if (input.type == 'text' && input.selectionStart !== undefined) { + input.selectionStart = 0; + input.selectionEnd = defTextLen; + } + else if (input.createTextRange) { + var range = input.createTextRange(); + range.collapse(false); + range.moveStart("character", -defTextLen); + range.moveEnd("character", defTextLen); + range.select(); + } + + input.focus(); + }, 0); +}; + + + // UNFINISHED + // The assignment in the while loop makes jslint cranky. + // I'll change it to a better loop later. + position.getTop = function(elem, isInner){ + var result = elem.offsetTop; + if (!isInner) { + while (elem.offsetParent) { + elem = elem.offsetParent; + result += elem.offsetTop; + } + } + return result; + }; + + position.getHeight = function (elem) { + return elem.offsetHeight || elem.scrollHeight; + }; + + position.getWidth = function (elem) { + return elem.offsetWidth || elem.scrollWidth; + }; + + position.getPageSize = function(){ + + var scrollWidth, scrollHeight; + var innerWidth, innerHeight; + + // It's not very clear which blocks work with which browsers. + if(self.innerHeight && self.scrollMaxY){ + scrollWidth = doc.body.scrollWidth; + scrollHeight = self.innerHeight + self.scrollMaxY; + } + else if(doc.body.scrollHeight > doc.body.offsetHeight){ + scrollWidth = doc.body.scrollWidth; + scrollHeight = doc.body.scrollHeight; + } + else{ + scrollWidth = doc.body.offsetWidth; + scrollHeight = doc.body.offsetHeight; + } + + if(self.innerHeight){ + // Non-IE browser + innerWidth = self.innerWidth; + innerHeight = self.innerHeight; + } + else if(doc.documentElement && doc.documentElement.clientHeight){ + // Some versions of IE (IE 6 w/ a DOCTYPE declaration) + innerWidth = doc.documentElement.clientWidth; + innerHeight = doc.documentElement.clientHeight; + } + else if(doc.body){ + // Other versions of IE + innerWidth = doc.body.clientWidth; + innerHeight = doc.body.clientHeight; + } + + var maxWidth = Math.max(scrollWidth, innerWidth); + var maxHeight = Math.max(scrollHeight, innerHeight); + return [maxWidth, maxHeight, innerWidth, innerHeight]; + }; + + // Watches the input textarea, polling at an interval and runs + // a callback function if anything has changed. + wmd.inputPoller = function(callback, interval){ + + var pollerObj = this; + var inputArea = wmd.panels.input; + + // Stored start, end and text. Used to see if there are changes to the input. + var lastStart; + var lastEnd; + var markdown; + + var killHandle; // Used to cancel monitoring on destruction. + // Checks to see if anything has changed in the textarea. + // If so, it runs the callback. + this.tick = function(){ + + if (!util.isVisible(inputArea)) { + return; + } + + // Update the selection start and end, text. + if (inputArea.selectionStart || inputArea.selectionStart === 0) { + var start = inputArea.selectionStart; + var end = inputArea.selectionEnd; + if (start != lastStart || end != lastEnd) { + lastStart = start; + lastEnd = end; + + if (markdown != inputArea.value) { + markdown = inputArea.value; + return true; + } + } + } + return false; + }; + + + var doTickCallback = function(){ + + if (!util.isVisible(inputArea)) { + return; + } + + // If anything has changed, call the function. + if (pollerObj.tick()) { + callback(); + } + }; + + // Set how often we poll the textarea for changes. + var assignInterval = function(){ + // previewPollInterval is set at the top of the namespace. + killHandle = top.setInterval(doTickCallback, interval); + }; + + this.destroy = function(){ + top.clearInterval(killHandle); + }; + + assignInterval(); + }; + + // Handles pushing and popping TextareaStates for undo/redo commands. + // I should rename the stack variables to list. + wmd.undoManager = function(callback){ + + var undoObj = this; + var undoStack = []; // A stack of undo states + var stackPtr = 0; // The index of the current state + var mode = "none"; + var lastState; // The last state + var poller; + var timer; // The setTimeout handle for cancelling the timer + var inputStateObj; + + // Set the mode for later logic steps. + var setMode = function(newMode, noSave){ + + if (mode != newMode) { + mode = newMode; + if (!noSave) { + saveState(); + } + } + + if (!global.isIE || mode != "moving") { + timer = top.setTimeout(refreshState, 1); + } + else { + inputStateObj = null; + } + }; + + var refreshState = function(){ + inputStateObj = new wmd.TextareaState(); + poller.tick(); + timer = undefined; + }; + + this.setCommandMode = function(){ + mode = "command"; + saveState(); + timer = top.setTimeout(refreshState, 0); + }; + + this.canUndo = function(){ + return stackPtr > 1; + }; + + this.canRedo = function(){ + if (undoStack[stackPtr + 1]) { + return true; + } + return false; + }; + + // Removes the last state and restores it. + this.undo = function(){ + + if (undoObj.canUndo()) { + if (lastState) { + // What about setting state -1 to null or checking for undefined? + lastState.restore(); + lastState = null; + } + else { + undoStack[stackPtr] = new wmd.TextareaState(); + undoStack[--stackPtr].restore(); + + if (callback) { + callback(); + } + } + } + + mode = "none"; + wmd.panels.input.focus(); + refreshState(); + }; + + // Redo an action. + this.redo = function(){ + + if (undoObj.canRedo()) { + + undoStack[++stackPtr].restore(); + + if (callback) { + callback(); + } + } + + mode = "none"; + wmd.panels.input.focus(); + refreshState(); + }; + + // Push the input area state to the stack. + var saveState = function(){ + + var currState = inputStateObj || new wmd.TextareaState(); + + if (!currState) { + return false; + } + if (mode == "moving") { + if (!lastState) { + lastState = currState; + } + return; + } + if (lastState) { + if (undoStack[stackPtr - 1].text != lastState.text) { + undoStack[stackPtr++] = lastState; + } + lastState = null; + } + undoStack[stackPtr++] = currState; + undoStack[stackPtr + 1] = null; + if (callback) { + callback(); + } + }; + + var handleCtrlYZ = function(event){ + + var handled = false; + + if (event.ctrlKey || event.metaKey) { + + // IE and Opera do not support charCode. + var keyCode = event.charCode || event.keyCode; + var keyCodeChar = String.fromCharCode(keyCode); + + switch (keyCodeChar) { + + case "y": + undoObj.redo(); + handled = true; + break; + + case "z": + if (!event.shiftKey) { + undoObj.undo(); + } + else { + undoObj.redo(); + } + handled = true; + break; + } + } + + if (handled) { + if (event.preventDefault) { + event.preventDefault(); + } + if (top.event) { + top.event.returnValue = false; + } + return; + } + }; + + // Set the mode depending on what is going on in the input area. + var handleModeChange = function(event){ + + if (!event.ctrlKey && !event.metaKey) { + + var keyCode = event.keyCode; + + if ((keyCode >= 33 && keyCode <= 40) || (keyCode >= 63232 && keyCode <= 63235)) { + // 33 - 40: page up/dn and arrow keys + // 63232 - 63235: page up/dn and arrow keys on safari + setMode("moving"); + } + else if (keyCode == 8 || keyCode == 46 || keyCode == 127) { + // 8: backspace + // 46: delete + // 127: delete + setMode("deleting"); + } + else if (keyCode == 13) { + // 13: Enter + setMode("newlines"); + } + else if (keyCode == 27) { + // 27: escape + setMode("escape"); + } + else if ((keyCode < 16 || keyCode > 20) && keyCode != 91) { + // 16-20 are shift, etc. + // 91: left window key + // I think this might be a little messed up since there are + // a lot of nonprinting keys above 20. + setMode("typing"); + } + } + }; + + var setEventHandlers = function(){ + + util.addEvent(wmd.panels.input, "keypress", function(event){ + // keyCode 89: y + // keyCode 90: z + if ((event.ctrlKey || event.metaKey) && (event.keyCode == 89 || event.keyCode == 90)) { + event.preventDefault(); + } + }); + + var handlePaste = function(){ + if (global.isIE || (inputStateObj && inputStateObj.text != wmd.panels.input.value)) { + if (timer === undefined) { + mode = "paste"; + saveState(); + refreshState(); + } + } + }; + + // pastePollInterval is specified at the beginning of this namespace. + poller = new wmd.inputPoller(handlePaste, pastePollInterval); + + util.addEvent(wmd.panels.input, "keydown", handleCtrlYZ); + util.addEvent(wmd.panels.input, "keydown", handleModeChange); + + util.addEvent(wmd.panels.input, "mousedown", function(){ + setMode("moving"); + }); + wmd.panels.input.onpaste = handlePaste; + wmd.panels.input.ondrop = handlePaste; + }; + + var init = function(){ + setEventHandlers(); + refreshState(); + saveState(); + }; + + this.destroy = function(){ + if (poller) { + poller.destroy(); + } + }; + + init(); + }; + + // I think my understanding of how the buttons and callbacks are stored in the array is incomplete. + wmd.editor = function(previewRefreshCallback){ + + if (!previewRefreshCallback) { + previewRefreshCallback = function(){}; + } + + var inputBox = wmd.panels.input; + + var offsetHeight = 0; + + var editObj = this; + + var mainDiv; + var mainSpan; + + var div; // This name is pretty ambiguous. I should rename this. + + // Used to cancel recurring events from setInterval. + var creationHandle; + + var undoMgr; // The undo manager + + var isButtonUsed = function(button){ + var buttons = $.trim(wmd.wmd_env.buttons).split(/\s+/); + return $.inArray(button, buttons) !== -1; + }; + + // Perform the button's action. + var doClick = function(button){ + + inputBox.focus(); + + if (button.textOp) { + + if (undoMgr) { + undoMgr.setCommandMode(); + } + + var state = new wmd.TextareaState(); + + if (!state) { + return; + } + + var chunks = state.getChunks(); + + // Some commands launch a "modal" prompt dialog. Javascript + // can't really make a modal dialog box and the WMD code + // will continue to execute while the dialog is displayed. + // This prevents the dialog pattern I'm used to and means + // I can't do something like this: + // + // var link = CreateLinkDialog(); + // makeMarkdownLink(link); + // + // Instead of this straightforward method of handling a + // dialog I have to pass any code which would execute + // after the dialog is dismissed (e.g. link creation) + // in a function parameter. + // + // Yes this is awkward and I think it sucks, but there's + // no real workaround. Only the image and link code + // create dialogs and require the function pointers. + var fixupInputArea = function(){ + + inputBox.focus(); + + if (chunks) { + state.setChunks(chunks); + } + + state.restore(); + previewRefreshCallback(); + }; + + var noCleanup = button.textOp(chunks, fixupInputArea); + + if(!noCleanup) { + fixupInputArea(); + } + + } + + if (button.execute) { + button.execute(editObj); + } + }; + + var setUndoRedoButtonStates = function(){ + if(undoMgr){ + setupButton(document.getElementById("wmd-undo-button"), undoMgr.canUndo()); + setupButton(document.getElementById("wmd-redo-button"), undoMgr.canRedo()); + } + }; + + var setupButton = function(button, isEnabled) { + + var normalYShift = "0px"; + var disabledYShift = "-20px"; + var highlightYShift = "-40px"; + + if(isEnabled) { + button.style.backgroundPosition = button.XShift + " " + normalYShift; + button.onmouseover = function(){ + this.style.backgroundPosition = this.XShift + " " + highlightYShift; + }; + + button.onmouseout = function(){ + this.style.backgroundPosition = this.XShift + " " + normalYShift; + }; + + // IE tries to select the background image "button" text (it's + // implemented in a list item) so we have to cache the selection + // on mousedown. + if(global.isIE) { + button.onmousedown = function() { + wmd.ieRetardedClick = true; + wmd.ieCachedRange = document.selection.createRange(); + }; + } + + if (!button.isHelp) + { + button.onclick = function() { + if (this.onmouseout) { + this.onmouseout(); + } + doClick(this); + return false; + }; + } + } + else { + button.style.backgroundPosition = button.XShift + " " + disabledYShift; + button.onmouseover = button.onmouseout = button.onclick = function(){}; + } + }; + + var makeSpritedButtonRow = function(){ + var buttonBar = document.getElementById("wmd-button-bar"); + var normalYShift = "0px"; + var disabledYShift = "-20px"; + var highlightYShift = "-40px"; + + var buttonRow = document.createElement("ul"); + buttonRow.id = "wmd-button-row"; + buttonRow = buttonBar.appendChild(buttonRow); + + if (isButtonUsed('bold')){ + var boldButton = document.createElement("li"); + boldButton.className = "wmd-button"; + boldButton.id = "wmd-bold-button"; + boldButton.title = toolbar_strong_label; + boldButton.XShift = "0px"; + boldButton.textOp = command.doBold; + setupButton(boldButton, true); + buttonRow.appendChild(boldButton); + } + + if (isButtonUsed('italic')){ + var italicButton = document.createElement("li"); + italicButton.className = "wmd-button"; + italicButton.id = "wmd-italic-button"; + italicButton.title = toolbar_emphasis_label; + italicButton.XShift = "-20px"; + italicButton.textOp = command.doItalic; + setupButton(italicButton, true); + buttonRow.appendChild(italicButton); + } + + if ( + isButtonUsed('link') || + isButtonUsed('blockquote') || + isButtonUsed('code') || + isButtonUsed('image') || + isButtonUsed('attachment') + ) { + var spacer1 = document.createElement("li"); + spacer1.className = "wmd-spacer"; + spacer1.id = "wmd-spacer1"; + buttonRow.appendChild(spacer1); + } + + if (isButtonUsed('link')){ + var linkButton = document.createElement("li"); + linkButton.className = "wmd-button"; + linkButton.id = "wmd-link-button"; + linkButton.title = toolbar_hyperlink_label; + linkButton.XShift = "-40px"; + linkButton.textOp = function(chunk, postProcessing){ + return command.doLinkOrImage(chunk, postProcessing, 'link'); + }; + setupButton(linkButton, true); + buttonRow.appendChild(linkButton); + } + + if (isButtonUsed('blockquote')){ + var quoteButton = document.createElement("li"); + quoteButton.className = "wmd-button"; + quoteButton.id = "wmd-quote-button"; + quoteButton.title = toolbar_blockquote_label; + quoteButton.XShift = "-60px"; + quoteButton.textOp = command.doBlockquote; + setupButton(quoteButton, true); + buttonRow.appendChild(quoteButton); + } + + if (isButtonUsed('code')){ + var codeButton = document.createElement("li"); + codeButton.className = "wmd-button"; + codeButton.id = "wmd-code-button"; + codeButton.title = toolbar_code_label; + codeButton.XShift = "-80px"; + codeButton.textOp = command.doCode; + setupButton(codeButton, true); + buttonRow.appendChild(codeButton); + } + + if (isButtonUsed('image')){ + var imageButton = document.createElement("li"); + imageButton.className = "wmd-button"; + imageButton.id = "wmd-image-button"; + imageButton.title = toolbar_image_label; + imageButton.XShift = "-100px"; + imageButton.textOp = function(chunk, postProcessing){ + return command.doLinkOrImage(chunk, postProcessing, 'image'); + }; + setupButton(imageButton, true); + buttonRow.appendChild(imageButton); + } + + if (isButtonUsed('attachment')){ + var attachmentButton = document.createElement("li"); + attachmentButton.className = "wmd-button"; + attachmentButton.id = "wmd-attachment-button"; + attachmentButton.title = toolbar_attachment_label; + attachmentButton.XShift = "-120px"; + attachmentButton.textOp = function(chunk, postProcessing){ + return command.doLinkOrImage(chunk, postProcessing, 'file'); + }; + setupButton(attachmentButton, true); + buttonRow.appendChild(attachmentButton); + } + + if ( + isButtonUsed('ol') || + isButtonUsed('ul') || + isButtonUsed('heading') || + isButtonUsed('hr') + ) { + var spacer2 = document.createElement("li"); + spacer2.className = "wmd-spacer"; + spacer2.id = "wmd-spacer2"; + buttonRow.appendChild(spacer2); + } + + if (isButtonUsed('ol')) { + var olistButton = document.createElement("li"); + olistButton.className = "wmd-button"; + olistButton.id = "wmd-olist-button"; + olistButton.title = toolbar_numbered_label; + olistButton.XShift = "-140px"; + olistButton.textOp = function(chunk, postProcessing){ + command.doList(chunk, postProcessing, true); + }; + setupButton(olistButton, true); + buttonRow.appendChild(olistButton); + } + + if (isButtonUsed('ul')) { + var ulistButton = document.createElement("li"); + ulistButton.className = "wmd-button"; + ulistButton.id = "wmd-ulist-button"; + ulistButton.title = toolbar_bulleted_label; + ulistButton.XShift = "-160px"; + ulistButton.textOp = function(chunk, postProcessing){ + command.doList(chunk, postProcessing, false); + }; + setupButton(ulistButton, true); + buttonRow.appendChild(ulistButton); + } + + if (isButtonUsed('heading')) { + var headingButton = document.createElement("li"); + headingButton.className = "wmd-button"; + headingButton.id = "wmd-heading-button"; + headingButton.title = toolbar_heading_label; + headingButton.XShift = "-180px"; + headingButton.textOp = command.doHeading; + setupButton(headingButton, true); + buttonRow.appendChild(headingButton); + } + + if (isButtonUsed('hr')) { + var hrButton = document.createElement("li"); + hrButton.className = "wmd-button"; + hrButton.id = "wmd-hr-button"; + hrButton.title = toolbar_horizontal_label; + hrButton.XShift = "-200px"; + hrButton.textOp = command.doHorizontalRule; + setupButton(hrButton, true); + buttonRow.appendChild(hrButton); + } + + if (isButtonUsed('undo')){ + var spacer3 = document.createElement("li"); + spacer3.className = "wmd-spacer"; + spacer3.id = "wmd-spacer3"; + buttonRow.appendChild(spacer3); + + var undoButton = document.createElement("li"); + undoButton.className = "wmd-button"; + undoButton.id = "wmd-undo-button"; + undoButton.title = toolbar_undo_label; + undoButton.XShift = "-220px"; + undoButton.execute = function(manager){ + manager.undo(); + }; + setupButton(undoButton, true); + buttonRow.appendChild(undoButton); + + var redoButton = document.createElement("li"); + redoButton.className = "wmd-button"; + redoButton.id = "wmd-redo-button"; + redoButton.title = toolbar_redo_label; + if (/win/.test(nav.platform.toLowerCase())) { + redoButton.title = toolbar_redo_label; + } + else { + // mac and other non-Windows platforms + redoButton.title = gettext('redo') + " - Ctrl+Shift+Z"; + } + redoButton.XShift = "-240px"; + redoButton.execute = function(manager){ + manager.redo(); + }; + setupButton(redoButton, true); + buttonRow.appendChild(redoButton); + setUndoRedoButtonStates(); + } + /* + var helpButton = document.createElement("li"); + helpButton.className = "wmd-button"; + helpButton.id = "wmd-help-button"; + helpButton.XShift = "-240px"; + helpButton.isHelp = true; + + var helpAnchor = document.createElement("a"); + helpAnchor.href = helpLink; + helpAnchor.target = helpTarget + helpAnchor.title = helpHoverTitle; + helpButton.appendChild(helpAnchor); + + setupButton(helpButton, true); + buttonRow.appendChild(helpButton); + */ + }; + + var setupEditor = function(){ + + if (/\?noundo/.test(doc.location.href)) { + wmd.nativeUndo = true; + } + + if (!wmd.nativeUndo && isButtonUsed('undo')) { + undoMgr = new wmd.undoManager(function(){ + previewRefreshCallback(); + setUndoRedoButtonStates(); + }); + } + + makeSpritedButtonRow(); + + + var keyEvent = "keydown"; + if (global.isOpera) { + keyEvent = "keypress"; + } + + util.addEvent(inputBox, keyEvent, function(key){ + + // Check to see if we have a button key and, if so execute the callback. + if (key.ctrlKey || key.metaKey) { + + var keyCode = key.charCode || key.keyCode; + var keyCodeStr = String.fromCharCode(keyCode).toLowerCase(); + + // Bugfix for messed up DEL and . + if (keyCode === 46) { + keyCodeStr = ""; + } + if (keyCode === 190) { + keyCodeStr = "."; + } + + switch(keyCodeStr) { + case "b": + doClick(document.getElementById("wmd-bold-button")); + break; + case "i": + doClick(document.getElementById("wmd-italic-button")); + break; + case "l": + doClick(document.getElementById("wmd-link-button")); + break; + case ".": + doClick(document.getElementById("wmd-quote-button")); + break; + case "k": + doClick(document.getElementById("wmd-code-button")); + break; + case "g": + doClick(document.getElementById("wmd-image-button")); + break; + case "o": + doClick(document.getElementById("wmd-olist-button")); + break; + case "u": + doClick(document.getElementById("wmd-ulist-button")); + break; + case "h": + doClick(document.getElementById("wmd-heading-button")); + break; + case "r": + doClick(document.getElementById("wmd-hr-button")); + break; + case "y": + doClick(document.getElementById("wmd-redo-button")); + break; + case "z": + if(key.shiftKey) { + doClick(document.getElementById("wmd-redo-button")); + } + else { + doClick(document.getElementById("wmd-undo-button")); + } + break; + default: + return; + } + + + if (key.preventDefault) { + key.preventDefault(); + } + + if (top.event) { + top.event.returnValue = false; + } + } + }); + + // Auto-indent on shift-enter + util.addEvent(inputBox, "keyup", function(key){ + if (key.shiftKey && !key.ctrlKey && !key.metaKey) { + var keyCode = key.charCode || key.keyCode; + // Character 13 is Enter + if (keyCode === 13) { + fakeButton = {}; + fakeButton.textOp = command.doAutoindent; + doClick(fakeButton); + } + } + }); + + if (inputBox.form) { + var submitCallback = inputBox.form.onsubmit; + inputBox.form.onsubmit = function(){ + convertToHtml(); + if (submitCallback) { + return submitCallback.apply(this, arguments); + } + }; + } + }; + + // Convert the contents of the input textarea to HTML in the output/preview panels. + var convertToHtml = function(){ + + if (wmd.showdown) { + var markdownConverter = new wmd.showdown.converter(); + } + var text = inputBox.value; + + var callback = function(){ + inputBox.value = text; + //value is assigned here + }; + + if (!/markdown/.test(wmd.wmd_env.output.toLowerCase())) { + if (markdownConverter) { + inputBox.value = markdownConverter.makeHtml(text); + //value is assigned here + top.setTimeout(callback, 0); + } + } + return true; + }; + + + this.undo = function(){ + if (undoMgr) { + undoMgr.undo(); + } + }; + + this.redo = function(){ + if (undoMgr) { + undoMgr.redo(); + } + }; + + // This is pretty useless. The setupEditor function contents + // should just be copied here. + var init = function(){ + setupEditor(); + }; + + this.destroy = function(){ + if (undoMgr) { + undoMgr.destroy(); + } + if (div.parentNode) { + div.parentNode.removeChild(div); + } + if (inputBox) { + inputBox.style.marginTop = ""; + } + top.clearInterval(creationHandle); + }; + + init(); + }; + + // The input textarea state/contents. + // This is used to implement undo/redo by the undo manager. + wmd.TextareaState = function(){ + + // Aliases + var stateObj = this; + var inputArea = wmd.panels.input; + + this.init = function() { + + if (!util.isVisible(inputArea)) { + return; + } + + this.setInputAreaSelectionStartEnd(); + this.scrollTop = inputArea.scrollTop; + if (!this.text && inputArea.selectionStart || inputArea.selectionStart === 0) { + this.text = inputArea.value; + } + + }; + + // Sets the selected text in the input box after we've performed an + // operation. + this.setInputAreaSelection = function(){ + + if (!util.isVisible(inputArea)) { + return; + } + + if (inputArea.selectionStart !== undefined && !global.isOpera) { + + inputArea.focus(); + inputArea.selectionStart = stateObj.start; + inputArea.selectionEnd = stateObj.end; + inputArea.scrollTop = stateObj.scrollTop; + } + else if (doc.selection) { + + if (doc.activeElement && doc.activeElement !== inputArea) { + return; + } + + inputArea.focus(); + var range = inputArea.createTextRange(); + range.moveStart("character", -inputArea.value.length); + range.moveEnd("character", -inputArea.value.length); + range.moveEnd("character", stateObj.end); + range.moveStart("character", stateObj.start); + range.select(); + } + }; + + this.setInputAreaSelectionStartEnd = function(){ + + if (inputArea.selectionStart || inputArea.selectionStart === 0) { + + stateObj.start = inputArea.selectionStart; + stateObj.end = inputArea.selectionEnd; + } + else if (doc.selection) { + + stateObj.text = util.fixEolChars(inputArea.value); + + // IE loses the selection in the textarea when buttons are + // clicked. On IE we cache the selection and set a flag + // which we check for here. + var range; + if(wmd.ieRetardedClick && wmd.ieCachedRange) { + range = wmd.ieCachedRange; + wmd.ieRetardedClick = false; + } + else { + range = doc.selection.createRange(); + } + + var fixedRange = util.fixEolChars(range.text); + var marker = "\x07"; + var markedRange = marker + fixedRange + marker; + range.text = markedRange; + var inputText = util.fixEolChars(inputArea.value); + + range.moveStart("character", -markedRange.length); + range.text = fixedRange; + + stateObj.start = inputText.indexOf(marker); + stateObj.end = inputText.lastIndexOf(marker) - marker.length; + + var len = stateObj.text.length - util.fixEolChars(inputArea.value).length; + + if (len) { + range.moveStart("character", -fixedRange.length); + while (len--) { + fixedRange += "\n"; + stateObj.end += 1; + } + range.text = fixedRange; + } + + this.setInputAreaSelection(); + } + }; + + // Restore this state into the input area. + this.restore = function(){ + + if (stateObj.text !== undefined && stateObj.text != inputArea.value) { + inputArea.value = stateObj.text; + //value is assigned here + } + this.setInputAreaSelection(); + inputArea.scrollTop = stateObj.scrollTop; + }; + + // Gets a collection of HTML chunks from the inptut textarea. + this.getChunks = function(){ + + var chunk = new wmd.Chunks(); + + chunk.before = util.fixEolChars(stateObj.text.substring(0, stateObj.start)); + chunk.startTag = ""; + chunk.selection = util.fixEolChars(stateObj.text.substring(stateObj.start, stateObj.end)); + chunk.endTag = ""; + chunk.after = util.fixEolChars(stateObj.text.substring(stateObj.end)); + chunk.scrollTop = stateObj.scrollTop; + + return chunk; + }; + + // Sets the TextareaState properties given a chunk of markdown. + this.setChunks = function(chunk){ + + chunk.before = chunk.before + chunk.startTag; + chunk.after = chunk.endTag + chunk.after; + + if (global.isOpera) { + chunk.before = chunk.before.replace(/\n/g, "\r\n"); + chunk.selection = chunk.selection.replace(/\n/g, "\r\n"); + chunk.after = chunk.after.replace(/\n/g, "\r\n"); + } + + this.start = chunk.before.length; + this.end = chunk.before.length + chunk.selection.length; + this.text = chunk.before + chunk.selection + chunk.after; + this.scrollTop = chunk.scrollTop; + }; + + this.init(); + }; + + // before: contains all the text in the input box BEFORE the selection. + // after: contains all the text in the input box AFTER the selection. + wmd.Chunks = function(){ + }; + + // startRegex: a regular expression to find the start tag + // endRegex: a regular expresssion to find the end tag + wmd.Chunks.prototype.findTags = function(startRegex, endRegex){ + + var chunkObj = this; + var regex; + + if (startRegex) { + + regex = util.extendRegExp(startRegex, "", "$"); + + this.before = this.before.replace(regex, + function(match){ + chunkObj.startTag = chunkObj.startTag + match; + return ""; + }); + + regex = util.extendRegExp(startRegex, "^", ""); + + this.selection = this.selection.replace(regex, + function(match){ + chunkObj.startTag = chunkObj.startTag + match; + return ""; + }); + } + + if (endRegex) { + + regex = util.extendRegExp(endRegex, "", "$"); + + this.selection = this.selection.replace(regex, + function(match){ + chunkObj.endTag = match + chunkObj.endTag; + return ""; + }); + + regex = util.extendRegExp(endRegex, "^", ""); + + this.after = this.after.replace(regex, + function(match){ + chunkObj.endTag = match + chunkObj.endTag; + return ""; + }); + } + }; + + // If remove is false, the whitespace is transferred + // to the before/after regions. + // + // If remove is true, the whitespace disappears. + wmd.Chunks.prototype.trimWhitespace = function(remove){ + + this.selection = this.selection.replace(/^(\s*)/, ""); + + if (!remove) { + this.before += re.$1; + } + + this.selection = this.selection.replace(/(\s*)$/, ""); + + if (!remove) { + this.after = re.$1 + this.after; + } + }; + + + wmd.Chunks.prototype.skipLines = function(nLinesBefore, nLinesAfter, findExtraNewlines){ + + if (nLinesBefore === undefined) { + nLinesBefore = 1; + } + + if (nLinesAfter === undefined) { + nLinesAfter = 1; + } + + nLinesBefore++; + nLinesAfter++; + + var regexText; + var replacementText; + + if (global.isChrome) {//Chrome bug workaround + 'X'.match(/()./); + } + + this.selection = this.selection.replace(/(^\n*)/, ""); + this.startTag = this.startTag + re.$1; + this.selection = this.selection.replace(/(\n*$)/, ""); + this.endTag = this.endTag + re.$1; + this.startTag = this.startTag.replace(/(^\n*)/, ""); + this.before = this.before + re.$1; + this.endTag = this.endTag.replace(/(\n*$)/, ""); + this.after = this.after + re.$1; + + if (this.before) { + + regexText = replacementText = ""; + + while (nLinesBefore--) { + regexText += "\\n?"; + replacementText += "\n"; + } + + if (findExtraNewlines) { + regexText = "\\n*"; + } + this.before = this.before.replace(new re(regexText + "$", ""), replacementText); + } + + if (this.after) { + + regexText = replacementText = ""; + + while (nLinesAfter--) { + regexText += "\\n?"; + replacementText += "\n"; + } + if (findExtraNewlines) { + regexText = "\\n*"; + } + + this.after = this.after.replace(new re(regexText, ""), replacementText); + } + }; + + // The markdown symbols - 4 spaces = code, > = blockquote, etc. + command.prefixes = "(?:\\s{4,}|\\s*>|\\s*-\\s+|\\s*\\d+\\.|=|\\+|-|_|\\*|#|\\s*\\[[^\n]]+\\]:)"; + + // Remove markdown symbols from the chunk selection. + command.unwrap = function(chunk){ + var txt = new re("([^\\n])\\n(?!(\\n|" + command.prefixes + "))", "g"); + chunk.selection = chunk.selection.replace(txt, "$1 $2"); + }; + + command.wrap = function(chunk, len){ + command.unwrap(chunk); + var regex = new re("(.{1," + len + "})( +|$\\n?)", "gm"); + + chunk.selection = chunk.selection.replace(regex, function(line, marked){ + if (new re("^" + command.prefixes, "").test(line)) { + return line; + } + return marked + "\n"; + }); + + chunk.selection = chunk.selection.replace(/\s+$/, ""); + }; + + command.doBold = function(chunk, postProcessing){ + return command.doBorI(chunk, postProcessing, 2, "strong text"); + }; + + command.doItalic = function(chunk, postProcessing){ + return command.doBorI(chunk, postProcessing, 1, "emphasized text"); + }; + + // chunk: The selected region that will be enclosed with */** + // nStars: 1 for italics, 2 for bold + // insertText: If you just click the button without highlighting text, this gets inserted + command.doBorI = function(chunk, postProcessing, nStars, insertText){ + + // Get rid of whitespace and fixup newlines. + chunk.trimWhitespace(); + chunk.selection = chunk.selection.replace(/\n{2,}/g, "\n"); + + // Look for stars before and after. Is the chunk already marked up? + chunk.before.search(/(\**$)/); + var starsBefore = re.$1; + + chunk.after.search(/(^\**)/); + var starsAfter = re.$1; + + var prevStars = Math.min(starsBefore.length, starsAfter.length); + + // Remove stars if we have to since the button acts as a toggle. + if ((prevStars >= nStars) && (prevStars != 2 || nStars != 1)) { + chunk.before = chunk.before.replace(re("[*]{" + nStars + "}$", ""), ""); + chunk.after = chunk.after.replace(re("^[*]{" + nStars + "}", ""), ""); + } + else if (!chunk.selection && starsAfter) { + // It's not really clear why this code is necessary. It just moves + // some arbitrary stuff around. + chunk.after = chunk.after.replace(/^([*_]*)/, ""); + chunk.before = chunk.before.replace(/(\s?)$/, ""); + var whitespace = re.$1; + chunk.before = chunk.before + starsAfter + whitespace; + } + else { + + // In most cases, if you don't have any selected text and click the button + // you'll get a selected, marked up region with the default text inserted. + if (!chunk.selection && !starsAfter) { + chunk.selection = insertText; + } + + // Add the true markup. + var markup = nStars <= 1 ? "*" : "**"; // shouldn't the test be = ? + chunk.before = chunk.before + markup; + chunk.after = markup + chunk.after; + } + + return; + }; + + command.stripLinkDefs = function(text, defsToAdd){ + + text = text.replace(/^[ ]{0,3}\[(\d+)\]:[ \t]*\n?[ \t]*?[ \t]*\n?[ \t]*(?:(\n*)["(](.+?)[")][ \t]*)?(?:\n+|$)/gm, + function(totalMatch, id, link, newlines, title){ + defsToAdd[id] = totalMatch.replace(/\s*$/, ""); + if (newlines) { + // Strip the title and return that separately. + defsToAdd[id] = totalMatch.replace(/["(](.+?)[")]$/, ""); + return newlines + title; + } + return ""; + }); + + return text; + }; + + command.addLinkDef = function(chunk, linkDef){ + + var refNumber = 0; // The current reference number + var defsToAdd = {}; // + // Start with a clean slate by removing all previous link definitions. + chunk.before = command.stripLinkDefs(chunk.before, defsToAdd); + chunk.selection = command.stripLinkDefs(chunk.selection, defsToAdd); + chunk.after = command.stripLinkDefs(chunk.after, defsToAdd); + + var defs = ""; + var regex = /(\[(?:\[[^\]]*\]|[^\[\]])*\][ ]?(?:\n[ ]*)?\[)(\d+)(\])/g; + + var addDefNumber = function(def){ + refNumber++; + def = def.replace(/^[ ]{0,3}\[(\d+)\]:/, " [" + refNumber + "]:"); + defs += "\n" + def; + }; + + var getLink = function(wholeMatch, link, id, end){ + + if (defsToAdd[id]) { + addDefNumber(defsToAdd[id]); + return link + refNumber + end; + + } + return wholeMatch; + }; + + chunk.before = chunk.before.replace(regex, getLink); + + if (linkDef) { + addDefNumber(linkDef); + } + else { + chunk.selection = chunk.selection.replace(regex, getLink); + } + + var refOut = refNumber; + + chunk.after = chunk.after.replace(regex, getLink); + + if (chunk.after) { + chunk.after = chunk.after.replace(/\n*$/, ""); + } + if (!chunk.after) { + chunk.selection = chunk.selection.replace(/\n*$/, ""); + } + + chunk.after += "\n\n" + defs; + + return refOut; + }; + + command.doLinkOrImage = function(chunk, postProcessing, itemType){ + + chunk.trimWhitespace(); + chunk.findTags(/\s*!?\[/, /\][ ]?(?:\n[ ]*)?(\[.*?\])?/); + + if (chunk.endTag.length > 1) { + + chunk.startTag = chunk.startTag.replace(/!?\[/, ""); + chunk.endTag = ""; + command.addLinkDef(chunk, null); + + } + else { + + if (/\n\n/.test(chunk.selection)) { + command.addLinkDef(chunk, null); + return; + } + + // The function to be executed when you enter a link and press OK or Cancel. + // Marks up the link and adds the ref. + var makeLinkMarkdown = function(link){ + + if (link !== null) { + + chunk.startTag = chunk.endTag = ""; + //var linkDef = " [999]: " + link; + + //var num = command.addLinkDef(chunk, linkDef); + chunk.startTag = (itemType == 'image') ? "![" : "["; + chunk.endTag = "](" + link + ")"; + + if (!chunk.selection) { + if (itemType == 'image') { + chunk.selection = gettext("image description"); + } + else if (itemType == 'file'){ + chunk.selection = localUploadFileName || gettext("file name"); + localUploadFileName = null; + } + else { + chunk.selection = gettext("link text"); + } + } + } + else { + if (itemType == 'image' || itemType == 'file'){ + return; + } + } + postProcessing(); + }; + + if (itemType == 'image') { + // add forth param to identify image window + util.prompt(imageDialogText, imageDefaultText, makeLinkMarkdown, 'image'); + } + else if (itemType == 'file'){ + util.prompt(fileDialogText, '', makeLinkMarkdown, 'file'); + } + else { + util.prompt(linkDialogText, linkDefaultText, makeLinkMarkdown, 'link'); + } + return true; + } +}; + + util.makeAPI = function(){ + wmd.wmd = {}; + wmd.wmd.editor = wmd.editor; + wmd.wmd.previewManager = wmd.previewManager; + }; + + util.startEditor = function(start_now, buttons){ + + if (wmd.wmd_env.autostart === false) { + util.makeAPI(); + return; + } + + if (buttons){ + wmd.wmd_env.buttons = buttons; + } + + var edit; // The editor (buttons + input + outputs) - the main object. + var previewMgr; // The preview manager. + + // Fired after the page has fully loaded. + var loadListener = function(){ + + wmd.panels = new wmd.PanelCollection(); + + previewMgr = new wmd.previewManager(); + var previewRefreshCallback = previewMgr.refresh; + + edit = new wmd.editor(previewRefreshCallback); + + previewMgr.refresh(true); + + }; + + if (start_now){ + loadListener(); + } else { + util.addEvent(top, "load", loadListener); + } + }; + + wmd.previewManager = function(){ + + var managerObj = this; + var converter; + var poller; + var timeout; + var elapsedTime; + var oldInputText; + var htmlOut; + var maxDelay = 3000; + var startType = "delayed"; // The other legal value is "manual" + + // Adds event listeners to elements and creates the input poller. + var setupEvents = function(inputElem, listener){ + + util.addEvent(inputElem, "input", listener); + inputElem.onpaste = listener; + inputElem.ondrop = listener; + + util.addEvent(inputElem, "keypress", listener); + util.addEvent(inputElem, "keydown", listener); + // previewPollInterval is set at the top of this file. + poller = new wmd.inputPoller(listener, previewPollInterval); + }; + + var getDocScrollTop = function(){ + + var result = 0; + + if (top.innerHeight) { + result = top.pageYOffset; + } + else + if (doc.documentElement && doc.documentElement.scrollTop) { + result = doc.documentElement.scrollTop; + } + else + if (doc.body) { + result = doc.body.scrollTop; + } + + return result; + }; + + var makePreviewHtml = function(){ + + // If there are no registered preview and output panels + // there is nothing to do. + if (!wmd.panels.preview && !wmd.panels.output) { + return; + } + + var text = wmd.panels.input.value; + if (text && text == oldInputText) { + return; // Input text hasn't changed. + } + else { + oldInputText = text; + } + + var prevTime = new Date().getTime(); + + if (!converter && wmd.showdown) { + converter = new wmd.showdown.converter(); + } + + if (converter) { + text = converter.makeHtml(text); + } + + // Calculate the processing time of the HTML creation. + // It's used as the delay time in the event listener. + var currTime = new Date().getTime(); + elapsedTime = currTime - prevTime; + + pushPreviewHtml(text); + htmlOut = text; + }; + + // setTimeout is already used. Used as an event listener. + var applyTimeout = function(){ + + if (timeout) { + top.clearTimeout(timeout); + timeout = undefined; + } + + if (startType !== "manual") { + + var delay = 0; + + if (startType === "delayed") { + delay = elapsedTime; + } + + if (delay > maxDelay) { + delay = maxDelay; + } + timeout = top.setTimeout(makePreviewHtml, delay); + } + }; + + var getScaleFactor = function(panel){ + if (panel.scrollHeight <= panel.clientHeight) { + return 1; + } + return panel.scrollTop / (panel.scrollHeight - panel.clientHeight); + }; + + var setPanelScrollTops = function(){ + + if (wmd.panels.preview) { + wmd.panels.preview.scrollTop = (wmd.panels.preview.scrollHeight - wmd.panels.preview.clientHeight) * getScaleFactor(wmd.panels.preview); + } + + if (wmd.panels.output) { + wmd.panels.output.scrollTop = (wmd.panels.output.scrollHeight - wmd.panels.output.clientHeight) * getScaleFactor(wmd.panels.output); + } + }; + + this.refresh = function(requiresRefresh){ + + if (requiresRefresh) { + oldInputText = ""; + makePreviewHtml(); + } + else { + applyTimeout(); + } + }; + + this.processingTime = function(){ + return elapsedTime; + }; + + // The output HTML + this.output = function(){ + return htmlOut; + }; + + // The mode can be "manual" or "delayed" + this.setUpdateMode = function(mode){ + startType = mode; + managerObj.refresh(); + }; + + var isFirstTimeFilled = true; + + var pushPreviewHtml = function(text){ + + var emptyTop = position.getTop(wmd.panels.input) - getDocScrollTop(); + + // Send the encoded HTML to the output textarea/div. + if (wmd.panels.output) { + // The value property is only defined if the output is a textarea. + if (wmd.panels.output.value !== undefined) { + wmd.panels.output.value = text; + //value is assigned here + wmd.panels.output.readOnly = true; + } + // Otherwise we are just replacing the text in a div. + // Send the HTML wrapped in
              
              +				else {
              +					var newText = text.replace(/&/g, "&");
              +					newText = newText.replace(/
              "; + } + } + + if (wmd.panels.preview) { + wmd.panels.preview.innerHTML = text; + } + + setPanelScrollTops(); + + if (isFirstTimeFilled) { + isFirstTimeFilled = false; + return; + } + + var fullTop = position.getTop(wmd.panels.input) - getDocScrollTop(); + + if (global.isIE) { + top.setTimeout(function(){ + top.scrollBy(0, fullTop - emptyTop); + }, 0); + } + else { + top.scrollBy(0, fullTop - emptyTop); + } + }; + + var init = function(){ + + setupEvents(wmd.panels.input, applyTimeout); + makePreviewHtml(); + + if (wmd.panels.preview) { + wmd.panels.preview.scrollTop = 0; + } + if (wmd.panels.output) { + wmd.panels.output.scrollTop = 0; + } + }; + + this.destroy = function(){ + if (poller) { + poller.destroy(); + } + }; + + init(); + }; + + // When making a list, hitting shift-enter will put your cursor on the next line + // at the current indent level. + command.doAutoindent = function(chunk, postProcessing){ + + chunk.before = chunk.before.replace(/(\n|^)[ ]{0,3}([*+-]|\d+[.])[ \t]*\n$/, "\n\n"); + chunk.before = chunk.before.replace(/(\n|^)[ ]{0,3}>[ \t]*\n$/, "\n\n"); + chunk.before = chunk.before.replace(/(\n|^)[ \t]+\n$/, "\n\n"); + + if(/(\n|^)[ ]{0,3}([*+-]|\d+[.])[ \t]+.*\n$/.test(chunk.before)){ + if(command.doList){ + command.doList(chunk); + } + } + if(/(\n|^)[ ]{0,3}>[ \t]+.*\n$/.test(chunk.before)){ + if(command.doBlockquote){ + command.doBlockquote(chunk); + } + } + if(/(\n|^)(\t|[ ]{4,}).*\n$/.test(chunk.before)){ + if(command.doCode){ + command.doCode(chunk); + } + } + }; + + command.doBlockquote = function(chunk, postProcessing){ + + chunk.selection = chunk.selection.replace(/^(\n*)([^\r]+?)(\n*)$/, + function(totalMatch, newlinesBefore, text, newlinesAfter){ + chunk.before += newlinesBefore; + chunk.after = newlinesAfter + chunk.after; + return text; + }); + + chunk.before = chunk.before.replace(/(>[ \t]*)$/, + function(totalMatch, blankLine){ + chunk.selection = blankLine + chunk.selection; + return ""; + }); + + chunk.selection = chunk.selection.replace(/^(\s|>)+$/ ,""); + chunk.selection = chunk.selection || "Blockquote"; + + if(chunk.before){ + chunk.before = chunk.before.replace(/\n?$/,"\n"); + } + if(chunk.after){ + chunk.after = chunk.after.replace(/^\n?/,"\n"); + } + + chunk.before = chunk.before.replace(/(((\n|^)(\n[ \t]*)*>(.+\n)*.*)+(\n[ \t]*)*$)/, + function(totalMatch){ + chunk.startTag = totalMatch; + return ""; + }); + + chunk.after = chunk.after.replace(/^(((\n|^)(\n[ \t]*)*>(.+\n)*.*)+(\n[ \t]*)*)/, + function(totalMatch){ + chunk.endTag = totalMatch; + return ""; + }); + + var replaceBlanksInTags = function(useBracket){ + + var replacement = useBracket ? "> " : ""; + + if(chunk.startTag){ + chunk.startTag = chunk.startTag.replace(/\n((>|\s)*)\n$/, + function(totalMatch, markdown){ + return "\n" + markdown.replace(/^[ ]{0,3}>?[ \t]*$/gm, replacement) + "\n"; + }); + } + if(chunk.endTag){ + chunk.endTag = chunk.endTag.replace(/^\n((>|\s)*)\n/, + function(totalMatch, markdown){ + return "\n" + markdown.replace(/^[ ]{0,3}>?[ \t]*$/gm, replacement) + "\n"; + }); + } + }; + + if(/^(?![ ]{0,3}>)/m.test(chunk.selection)){ + command.wrap(chunk, wmd.wmd_env.lineLength - 2); + chunk.selection = chunk.selection.replace(/^/gm, "> "); + replaceBlanksInTags(true); + chunk.skipLines(); + } + else{ + chunk.selection = chunk.selection.replace(/^[ ]{0,3}> ?/gm, ""); + command.unwrap(chunk); + replaceBlanksInTags(false); + + if(!/^(\n|^)[ ]{0,3}>/.test(chunk.selection) && chunk.startTag){ + chunk.startTag = chunk.startTag.replace(/\n{0,2}$/, "\n\n"); + } + + if(!/(\n|^)[ ]{0,3}>.*$/.test(chunk.selection) && chunk.endTag){ + chunk.endTag=chunk.endTag.replace(/^\n{0,2}/, "\n\n"); + } + } + + if(!/\n/.test(chunk.selection)){ + chunk.selection = chunk.selection.replace(/^(> *)/, + function(wholeMatch, blanks){ + chunk.startTag += blanks; + return ""; + }); + } + }; + + command.doCode = function(chunk, postProcessing){ + + var hasTextBefore = /\S[ ]*$/.test(chunk.before); + var hasTextAfter = /^[ ]*\S/.test(chunk.after); + + // Use 'four space' markdown if the selection is on its own + // line or is multiline. + if((!hasTextAfter && !hasTextBefore) || /\n/.test(chunk.selection)){ + + chunk.before = chunk.before.replace(/[ ]{4}$/, + function(totalMatch){ + chunk.selection = totalMatch + chunk.selection; + return ""; + }); + + var nLinesBack = 1; + var nLinesForward = 1; + + if(/\n(\t|[ ]{4,}).*\n$/.test(chunk.before)){ + nLinesBack = 0; + } + if(/^\n(\t|[ ]{4,})/.test(chunk.after)){ + nLinesForward = 0; + } + + chunk.skipLines(nLinesBack, nLinesForward); + + if(!chunk.selection){ + chunk.startTag = " "; + chunk.selection = "enter code here"; + } + else { + if(/^[ ]{0,3}\S/m.test(chunk.selection)){ + chunk.selection = chunk.selection.replace(/^/gm, " "); + } + else{ + chunk.selection = chunk.selection.replace(/^[ ]{4}/gm, ""); + } + } + } + else{ + // Use backticks (`) to delimit the code block. + + chunk.trimWhitespace(); + chunk.findTags(/`/, /`/); + + if(!chunk.startTag && !chunk.endTag){ + chunk.startTag = chunk.endTag="`"; + if(!chunk.selection){ + chunk.selection = "enter code here"; + } + } + else if(chunk.endTag && !chunk.startTag){ + chunk.before += chunk.endTag; + chunk.endTag = ""; + } + else{ + chunk.startTag = chunk.endTag=""; + } + } + }; + + command.doList = function(chunk, postProcessing, isNumberedList){ + + // These are identical except at the very beginning and end. + // Should probably use the regex extension function to make this clearer. + var previousItemsRegex = /(\n|^)(([ ]{0,3}([*+-]|\d+[.])[ \t]+.*)(\n.+|\n{2,}([*+-].*|\d+[.])[ \t]+.*|\n{2,}[ \t]+\S.*)*)\n*$/; + var nextItemsRegex = /^\n*(([ ]{0,3}([*+-]|\d+[.])[ \t]+.*)(\n.+|\n{2,}([*+-].*|\d+[.])[ \t]+.*|\n{2,}[ \t]+\S.*)*)\n*/; + + // The default bullet is a dash but others are possible. + // This has nothing to do with the particular HTML bullet, + // it's just a markdown bullet. + var bullet = "-"; + + // The number in a numbered list. + var num = 1; + + // Get the item prefix - e.g. " 1. " for a numbered list, " - " for a bulleted list. + var getItemPrefix = function(){ + var prefix; + if(isNumberedList){ + prefix = " " + num + ". "; + num++; + } + else{ + prefix = " " + bullet + " "; + } + return prefix; + }; + + // Fixes the prefixes of the other list items. + var getPrefixedItem = function(itemText){ + + // The numbering flag is unset when called by autoindent. + if(isNumberedList === undefined){ + isNumberedList = /^\s*\d/.test(itemText); + } + + // Renumber/bullet the list element. + itemText = itemText.replace(/^[ ]{0,3}([*+-]|\d+[.])\s/gm, + function( _ ){ + return getItemPrefix(); + }); + + return itemText; + }; + + chunk.findTags(/(\n|^)*[ ]{0,3}([*+-]|\d+[.])\s+/, null); + + if(chunk.before && !/\n$/.test(chunk.before) && !/^\n/.test(chunk.startTag)){ + chunk.before += chunk.startTag; + chunk.startTag = ""; + } + + if(chunk.startTag){ + + var hasDigits = /\d+[.]/.test(chunk.startTag); + chunk.startTag = ""; + chunk.selection = chunk.selection.replace(/\n[ ]{4}/g, "\n"); + command.unwrap(chunk); + chunk.skipLines(); + + if(hasDigits){ + // Have to renumber the bullet points if this is a numbered list. + chunk.after = chunk.after.replace(nextItemsRegex, getPrefixedItem); + } + if(isNumberedList == hasDigits){ + return; + } + } + + var nLinesUp = 1; + + chunk.before = chunk.before.replace(previousItemsRegex, + function(itemText){ + if(/^\s*([*+-])/.test(itemText)){ + bullet = re.$1; + } + nLinesUp = /[^\n]\n\n[^\n]/.test(itemText) ? 1 : 0; + return getPrefixedItem(itemText); + }); + + if(!chunk.selection){ + chunk.selection = "List item"; + } + + var prefix = getItemPrefix(); + + var nLinesDown = 1; + + chunk.after = chunk.after.replace(nextItemsRegex, + function(itemText){ + nLinesDown = /[^\n]\n\n[^\n]/.test(itemText) ? 1 : 0; + return getPrefixedItem(itemText); + }); + + chunk.trimWhitespace(true); + chunk.skipLines(nLinesUp, nLinesDown, true); + chunk.startTag = prefix; + var spaces = prefix.replace(/./g, " "); + command.wrap(chunk, wmd.wmd_env.lineLength - spaces.length); + chunk.selection = chunk.selection.replace(/\n/g, "\n" + spaces); + + }; + + command.doHeading = function(chunk, postProcessing){ + + // Remove leading/trailing whitespace and reduce internal spaces to single spaces. + chunk.selection = chunk.selection.replace(/\s+/g, " "); + chunk.selection = chunk.selection.replace(/(^\s+|\s+$)/g, ""); + + // If we clicked the button with no selected text, we just + // make a level 2 hash header around some default text. + if(!chunk.selection){ + chunk.startTag = "## "; + chunk.selection = "Heading"; + chunk.endTag = " ##"; + return; + } + + var headerLevel = 0; // The existing header level of the selected text. + + // Remove any existing hash heading markdown and save the header level. + chunk.findTags(/#+[ ]*/, /[ ]*#+/); + if(/#+/.test(chunk.startTag)){ + headerLevel = re.lastMatch.length; + } + chunk.startTag = chunk.endTag = ""; + + // Try to get the current header level by looking for - and = in the line + // below the selection. + chunk.findTags(null, /\s?(-+|=+)/); + if(/=+/.test(chunk.endTag)){ + headerLevel = 1; + } + if(/-+/.test(chunk.endTag)){ + headerLevel = 2; + } + + // Skip to the next line so we can create the header markdown. + chunk.startTag = chunk.endTag = ""; + chunk.skipLines(1, 1); + + // We make a level 2 header if there is no current header. + // If there is a header level, we substract one from the header level. + // If it's already a level 1 header, it's removed. + var headerLevelToCreate = headerLevel == 0 ? 2 : headerLevel - 1; + + if(headerLevelToCreate > 0){ + + // The button only creates level 1 and 2 underline headers. + // Why not have it iterate over hash header levels? Wouldn't that be easier and cleaner? + var headerChar = headerLevelToCreate >= 2 ? "-" : "="; + var len = chunk.selection.length; + if(len > wmd.wmd_env.lineLength){ + len = wmd.wmd_env.lineLength; + } + chunk.endTag = "\n"; + while(len--){ + chunk.endTag += headerChar; + } + } + }; + + command.doHorizontalRule = function(chunk, postProcessing){ + chunk.startTag = "----------\n"; + chunk.selection = ""; + chunk.skipLines(2, 1, true); + } +}; + + +Attacklab.wmd_env = {}; +Attacklab.account_options = {}; +Attacklab.wmd_defaults = {version:1, output:"Markdown", lineLength:40, delayLoad:false}; + +if(!Attacklab.wmd) +{ + Attacklab.wmd = function() + { + Attacklab.loadEnv = function() + { + var mergeEnv = function(env) + { + if(!env) + { + return; + } + + for(var key in env) + { + Attacklab.wmd_env[key] = env[key]; + } + }; + + mergeEnv(Attacklab.wmd_defaults); + mergeEnv(Attacklab.account_options); + mergeEnv(top["wmd_options"]); + Attacklab.full = true; + + var defaultButtons = "bold italic link blockquote code image attachment ol ul heading hr"; + Attacklab.wmd_env.buttons = Attacklab.wmd_env.buttons || defaultButtons; + }; + Attacklab.loadEnv(); + + }; + + Attacklab.wmd(); + Attacklab.wmdBase(); + Attacklab.Util.startEditor(); +}; + diff --git a/askbot/skins/utils.py b/askbot/skins/utils.py index 0c0dba9c..9ef38402 100644 --- a/askbot/skins/utils.py +++ b/askbot/skins/utils.py @@ -42,7 +42,6 @@ def get_available_skins(selected=None): stock_dir = os.path.normpath(os.path.dirname(__file__)) stock_skins = get_skins_from_dir(stock_dir) default_dir = stock_skins.pop('default') - common_dir = stock_skins.pop('common') skins.update(stock_skins) if selected: @@ -51,12 +50,11 @@ def get_available_skins(selected=None): skins.clear() skins[selected] = selected_dir else: - assert(selected == 'default' or selected == 'common') + assert(selected == 'default') skins = SortedDict() #re-insert default as a last item skins['default'] = default_dir - skins['common'] = common_dir return skins @@ -74,7 +72,6 @@ def get_skin_choices(): """returns a tuple for use as a set of choices in the form""" available_skins = get_available_skins().keys() - available_skins.remove('common') skin_names = list(reversed(available_skins)) return zip(skin_names, skin_names) @@ -183,7 +180,6 @@ def update_media_revision(skin = None): media_dirs = [ os.path.join(skin_path, 'media'), - os.path.join(get_path_to_skin('common'), 'media')#we always use common ] if skin != 'default': -- cgit v1.2.3-1-g7c22 From 84e7bb367538c0626d2259203ee25616f3387d66 Mon Sep 17 00:00:00 2001 From: Evgeny Fadeev Date: Wed, 19 Sep 2012 20:43:57 -0400 Subject: moved default skin to the root of the askbot app tree --- askbot/media/bootstrap/bootstrap.zip | Bin 0 -> 273108 bytes askbot/media/bootstrap/css/bootstrap.css | 4559 +++++ askbot/media/bootstrap/css/bootstrap.min.css | 706 + .../bootstrap/img/glyphicons-halflings-white.png | Bin 0 -> 4352 bytes .../media/bootstrap/img/glyphicons-halflings.png | Bin 0 -> 4352 bytes askbot/media/bootstrap/js/bootstrap.js | 1737 ++ askbot/media/bootstrap/js/bootstrap.min.js | 7 + askbot/media/images/OFL.txt | 93 + askbot/media/images/OpenSans-CondBold.ttf | Bin 0 -> 264372 bytes askbot/media/images/OpenSans-CondLight.ttf | Bin 0 -> 221108 bytes askbot/media/images/OpenSans-CondLightItalic.ttf | Bin 0 -> 210804 bytes askbot/media/images/YanoneKaffeesatz-Bold.ttf | Bin 0 -> 73000 bytes .../media/images/YanoneKaffeesatz-ExtraLight.ttf | Bin 0 -> 77024 bytes askbot/media/images/YanoneKaffeesatz-Light.ttf | Bin 0 -> 77296 bytes askbot/media/images/YanoneKaffeesatz-Regular.ttf | Bin 0 -> 76588 bytes askbot/media/images/Yanone_Kaffeesatz.zip | Bin 0 -> 154362 bytes askbot/media/images/accept.png | Bin 0 -> 727 bytes askbot/media/images/anon.png | Bin 0 -> 687 bytes askbot/media/images/answers-background.png | Bin 0 -> 235 bytes askbot/media/images/attachment.png | Bin 0 -> 3142 bytes askbot/media/images/background-user-info.png | Bin 0 -> 361 bytes askbot/media/images/bigbutton.png | Bin 0 -> 263 bytes askbot/media/images/bigbuttonhover.png | Bin 0 -> 236 bytes askbot/media/images/blue-up-arrow-h18px.png | Bin 0 -> 593 bytes askbot/media/images/box-arrow.gif | Bin 0 -> 69 bytes askbot/media/images/bullet_green.gif | Bin 0 -> 64 bytes askbot/media/images/cc-88x31.png | Bin 0 -> 5460 bytes askbot/media/images/cc-by-sa.png | Bin 0 -> 5083 bytes askbot/media/images/close-small-dark.png | Bin 0 -> 879 bytes askbot/media/images/close-small-hover.png | Bin 0 -> 337 bytes askbot/media/images/close-small.png | Bin 0 -> 293 bytes askbot/media/images/close.png | Bin 0 -> 469 bytes askbot/media/images/comment-background.png | Bin 0 -> 250 bytes askbot/media/images/comment.png | Bin 0 -> 606 bytes askbot/media/images/contributorsback.png | Bin 0 -> 714 bytes askbot/media/images/dash.gif | Bin 0 -> 44 bytes askbot/media/images/delete.png | Bin 0 -> 434 bytes askbot/media/images/dialog-warning-off.png | Bin 0 -> 419 bytes askbot/media/images/dialog-warning.png | Bin 0 -> 603 bytes askbot/media/images/djangomade124x25_grey.gif | Bin 0 -> 2035 bytes askbot/media/images/dot-g.gif | Bin 0 -> 61 bytes askbot/media/images/dot-list.gif | Bin 0 -> 56 bytes askbot/media/images/edit.png | Bin 0 -> 758 bytes askbot/media/images/edit2.png | Bin 0 -> 498 bytes askbot/media/images/expander-arrow-hide.gif | Bin 0 -> 126 bytes askbot/media/images/expander-arrow-show.gif | Bin 0 -> 135 bytes askbot/media/images/favicon.gif | Bin 0 -> 898 bytes askbot/media/images/favicon.ico | Bin 0 -> 1150 bytes askbot/media/images/feed-icon-small.png | Bin 0 -> 669 bytes askbot/media/images/flag.png | Bin 0 -> 515 bytes askbot/media/images/flags/ad.gif | Bin 0 -> 371 bytes askbot/media/images/flags/ae.gif | Bin 0 -> 361 bytes askbot/media/images/flags/af.gif | Bin 0 -> 369 bytes askbot/media/images/flags/ag.gif | Bin 0 -> 361 bytes askbot/media/images/flags/ai.gif | Bin 0 -> 369 bytes askbot/media/images/flags/al.gif | Bin 0 -> 370 bytes askbot/media/images/flags/am.gif | Bin 0 -> 363 bytes askbot/media/images/flags/an.gif | Bin 0 -> 368 bytes askbot/media/images/flags/ao.gif | Bin 0 -> 244 bytes askbot/media/images/flags/ar.gif | Bin 0 -> 366 bytes askbot/media/images/flags/as.gif | Bin 0 -> 365 bytes askbot/media/images/flags/at.gif | Bin 0 -> 361 bytes askbot/media/images/flags/au.gif | Bin 0 -> 378 bytes askbot/media/images/flags/aw.gif | Bin 0 -> 365 bytes askbot/media/images/flags/ax.gif | Bin 0 -> 376 bytes askbot/media/images/flags/az.gif | Bin 0 -> 370 bytes askbot/media/images/flags/ba.gif | Bin 0 -> 363 bytes askbot/media/images/flags/bb.gif | Bin 0 -> 368 bytes askbot/media/images/flags/bd.gif | Bin 0 -> 361 bytes askbot/media/images/flags/be.gif | Bin 0 -> 359 bytes askbot/media/images/flags/bf.gif | Bin 0 -> 358 bytes askbot/media/images/flags/bg.gif | Bin 0 -> 360 bytes askbot/media/images/flags/bh.gif | Bin 0 -> 367 bytes askbot/media/images/flags/bi.gif | Bin 0 -> 374 bytes askbot/media/images/flags/bj.gif | Bin 0 -> 368 bytes askbot/media/images/flags/bm.gif | Bin 0 -> 367 bytes askbot/media/images/flags/bn.gif | Bin 0 -> 373 bytes askbot/media/images/flags/bo.gif | Bin 0 -> 359 bytes askbot/media/images/flags/br.gif | Bin 0 -> 367 bytes askbot/media/images/flags/bs.gif | Bin 0 -> 351 bytes askbot/media/images/flags/bt.gif | Bin 0 -> 377 bytes askbot/media/images/flags/bv.gif | Bin 0 -> 376 bytes askbot/media/images/flags/bw.gif | Bin 0 -> 364 bytes askbot/media/images/flags/by.gif | Bin 0 -> 361 bytes askbot/media/images/flags/bz.gif | Bin 0 -> 368 bytes askbot/media/images/flags/ca.gif | Bin 0 -> 376 bytes askbot/media/images/flags/catalonia.gif | Bin 0 -> 238 bytes askbot/media/images/flags/cc.gif | Bin 0 -> 371 bytes askbot/media/images/flags/cd.gif | Bin 0 -> 243 bytes askbot/media/images/flags/cf.gif | Bin 0 -> 364 bytes askbot/media/images/flags/cg.gif | Bin 0 -> 359 bytes askbot/media/images/flags/ch.gif | Bin 0 -> 332 bytes askbot/media/images/flags/ci.gif | Bin 0 -> 368 bytes askbot/media/images/flags/ck.gif | Bin 0 -> 362 bytes askbot/media/images/flags/cl.gif | Bin 0 -> 364 bytes askbot/media/images/flags/cm.gif | Bin 0 -> 369 bytes askbot/media/images/flags/cn.gif | Bin 0 -> 366 bytes askbot/media/images/flags/co.gif | Bin 0 -> 353 bytes askbot/media/images/flags/cr.gif | Bin 0 -> 359 bytes askbot/media/images/flags/cs.gif | Bin 0 -> 364 bytes askbot/media/images/flags/cu.gif | Bin 0 -> 367 bytes askbot/media/images/flags/cv.gif | Bin 0 -> 367 bytes askbot/media/images/flags/cx.gif | Bin 0 -> 363 bytes askbot/media/images/flags/cy.gif | Bin 0 -> 365 bytes askbot/media/images/flags/cz.gif | Bin 0 -> 362 bytes askbot/media/images/flags/de.gif | Bin 0 -> 362 bytes askbot/media/images/flags/dj.gif | Bin 0 -> 369 bytes askbot/media/images/flags/dk.gif | Bin 0 -> 374 bytes askbot/media/images/flags/dm.gif | Bin 0 -> 368 bytes askbot/media/images/flags/do.gif | Bin 0 -> 362 bytes askbot/media/images/flags/dz.gif | Bin 0 -> 370 bytes askbot/media/images/flags/ec.gif | Bin 0 -> 362 bytes askbot/media/images/flags/ee.gif | Bin 0 -> 364 bytes askbot/media/images/flags/eg.gif | Bin 0 -> 363 bytes askbot/media/images/flags/eh.gif | Bin 0 -> 359 bytes askbot/media/images/flags/england.gif | Bin 0 -> 367 bytes askbot/media/images/flags/er.gif | Bin 0 -> 361 bytes askbot/media/images/flags/es.gif | Bin 0 -> 360 bytes askbot/media/images/flags/et.gif | Bin 0 -> 364 bytes askbot/media/images/flags/europeanunion.gif | Bin 0 -> 171 bytes askbot/media/images/flags/fam.gif | Bin 0 -> 370 bytes askbot/media/images/flags/fi.gif | Bin 0 -> 371 bytes askbot/media/images/flags/fj.gif | Bin 0 -> 370 bytes askbot/media/images/flags/fk.gif | Bin 0 -> 372 bytes askbot/media/images/flags/fm.gif | Bin 0 -> 377 bytes askbot/media/images/flags/fo.gif | Bin 0 -> 370 bytes askbot/media/images/flags/fr.gif | Bin 0 -> 366 bytes askbot/media/images/flags/ga.gif | Bin 0 -> 359 bytes askbot/media/images/flags/gb.gif | Bin 0 -> 260 bytes askbot/media/images/flags/gd.gif | Bin 0 -> 364 bytes askbot/media/images/flags/ge.gif | Bin 0 -> 379 bytes askbot/media/images/flags/gf.gif | Bin 0 -> 366 bytes askbot/media/images/flags/gh.gif | Bin 0 -> 358 bytes askbot/media/images/flags/gi.gif | Bin 0 -> 370 bytes askbot/media/images/flags/gl.gif | Bin 0 -> 368 bytes askbot/media/images/flags/gm.gif | Bin 0 -> 362 bytes askbot/media/images/flags/gn.gif | Bin 0 -> 363 bytes askbot/media/images/flags/gp.gif | Bin 0 -> 357 bytes askbot/media/images/flags/gq.gif | Bin 0 -> 361 bytes askbot/media/images/flags/gr.gif | Bin 0 -> 368 bytes askbot/media/images/flags/gs.gif | Bin 0 -> 363 bytes askbot/media/images/flags/gt.gif | Bin 0 -> 374 bytes askbot/media/images/flags/gu.gif | Bin 0 -> 370 bytes askbot/media/images/flags/gw.gif | Bin 0 -> 358 bytes askbot/media/images/flags/gy.gif | Bin 0 -> 367 bytes askbot/media/images/flags/hk.gif | Bin 0 -> 373 bytes askbot/media/images/flags/hm.gif | Bin 0 -> 378 bytes askbot/media/images/flags/hn.gif | Bin 0 -> 367 bytes askbot/media/images/flags/hr.gif | Bin 0 -> 364 bytes askbot/media/images/flags/ht.gif | Bin 0 -> 361 bytes askbot/media/images/flags/hu.gif | Bin 0 -> 357 bytes askbot/media/images/flags/id.gif | Bin 0 -> 362 bytes askbot/media/images/flags/ie.gif | Bin 0 -> 371 bytes askbot/media/images/flags/il.gif | Bin 0 -> 366 bytes askbot/media/images/flags/in.gif | Bin 0 -> 363 bytes askbot/media/images/flags/io.gif | Bin 0 -> 373 bytes askbot/media/images/flags/iq.gif | Bin 0 -> 361 bytes askbot/media/images/flags/ir.gif | Bin 0 -> 366 bytes askbot/media/images/flags/is.gif | Bin 0 -> 373 bytes askbot/media/images/flags/it.gif | Bin 0 -> 366 bytes askbot/media/images/flags/jm.gif | Bin 0 -> 365 bytes askbot/media/images/flags/jo.gif | Bin 0 -> 360 bytes askbot/media/images/flags/jp.gif | Bin 0 -> 366 bytes askbot/media/images/flags/ke.gif | Bin 0 -> 360 bytes askbot/media/images/flags/kg.gif | Bin 0 -> 373 bytes askbot/media/images/flags/kh.gif | Bin 0 -> 367 bytes askbot/media/images/flags/ki.gif | Bin 0 -> 371 bytes askbot/media/images/flags/km.gif | Bin 0 -> 358 bytes askbot/media/images/flags/kn.gif | Bin 0 -> 370 bytes askbot/media/images/flags/kp.gif | Bin 0 -> 366 bytes askbot/media/images/flags/kr.gif | Bin 0 -> 385 bytes askbot/media/images/flags/kw.gif | Bin 0 -> 362 bytes askbot/media/images/flags/ky.gif | Bin 0 -> 373 bytes askbot/media/images/flags/kz.gif | Bin 0 -> 374 bytes askbot/media/images/flags/la.gif | Bin 0 -> 366 bytes askbot/media/images/flags/lb.gif | Bin 0 -> 366 bytes askbot/media/images/flags/lc.gif | Bin 0 -> 259 bytes askbot/media/images/flags/li.gif | Bin 0 -> 359 bytes askbot/media/images/flags/lk.gif | Bin 0 -> 377 bytes askbot/media/images/flags/lr.gif | Bin 0 -> 360 bytes askbot/media/images/flags/ls.gif | Bin 0 -> 369 bytes askbot/media/images/flags/lt.gif | Bin 0 -> 362 bytes askbot/media/images/flags/lu.gif | Bin 0 -> 368 bytes askbot/media/images/flags/lv.gif | Bin 0 -> 363 bytes askbot/media/images/flags/ly.gif | Bin 0 -> 362 bytes askbot/media/images/flags/ma.gif | Bin 0 -> 367 bytes askbot/media/images/flags/mc.gif | Bin 0 -> 359 bytes askbot/media/images/flags/md.gif | Bin 0 -> 367 bytes askbot/media/images/flags/me.gif | Bin 0 -> 238 bytes askbot/media/images/flags/mg.gif | Bin 0 -> 372 bytes askbot/media/images/flags/mh.gif | Bin 0 -> 370 bytes askbot/media/images/flags/mk.gif | Bin 0 -> 382 bytes askbot/media/images/flags/ml.gif | Bin 0 -> 363 bytes askbot/media/images/flags/mm.gif | Bin 0 -> 365 bytes askbot/media/images/flags/mn.gif | Bin 0 -> 368 bytes askbot/media/images/flags/mo.gif | Bin 0 -> 378 bytes askbot/media/images/flags/mp.gif | Bin 0 -> 368 bytes askbot/media/images/flags/mq.gif | Bin 0 -> 379 bytes askbot/media/images/flags/mr.gif | Bin 0 -> 377 bytes askbot/media/images/flags/ms.gif | Bin 0 -> 371 bytes askbot/media/images/flags/mt.gif | Bin 0 -> 369 bytes askbot/media/images/flags/mu.gif | Bin 0 -> 358 bytes askbot/media/images/flags/mv.gif | Bin 0 -> 372 bytes askbot/media/images/flags/mw.gif | Bin 0 -> 364 bytes askbot/media/images/flags/mx.gif | Bin 0 -> 366 bytes askbot/media/images/flags/my.gif | Bin 0 -> 375 bytes askbot/media/images/flags/mz.gif | Bin 0 -> 366 bytes askbot/media/images/flags/na.gif | Bin 0 -> 371 bytes askbot/media/images/flags/nc.gif | Bin 0 -> 364 bytes askbot/media/images/flags/ne.gif | Bin 0 -> 366 bytes askbot/media/images/flags/nf.gif | Bin 0 -> 375 bytes askbot/media/images/flags/ng.gif | Bin 0 -> 371 bytes askbot/media/images/flags/ni.gif | Bin 0 -> 366 bytes askbot/media/images/flags/nl.gif | Bin 0 -> 360 bytes askbot/media/images/flags/no.gif | Bin 0 -> 376 bytes askbot/media/images/flags/np.gif | Bin 0 -> 302 bytes askbot/media/images/flags/nr.gif | Bin 0 -> 364 bytes askbot/media/images/flags/nu.gif | Bin 0 -> 369 bytes askbot/media/images/flags/nz.gif | Bin 0 -> 369 bytes askbot/media/images/flags/om.gif | Bin 0 -> 364 bytes askbot/media/images/flags/pa.gif | Bin 0 -> 367 bytes askbot/media/images/flags/pe.gif | Bin 0 -> 361 bytes askbot/media/images/flags/pf.gif | Bin 0 -> 366 bytes askbot/media/images/flags/pg.gif | Bin 0 -> 360 bytes askbot/media/images/flags/ph.gif | Bin 0 -> 361 bytes askbot/media/images/flags/pk.gif | Bin 0 -> 377 bytes askbot/media/images/flags/pl.gif | Bin 0 -> 360 bytes askbot/media/images/flags/pm.gif | Bin 0 -> 374 bytes askbot/media/images/flags/pn.gif | Bin 0 -> 367 bytes askbot/media/images/flags/pr.gif | Bin 0 -> 369 bytes askbot/media/images/flags/ps.gif | Bin 0 -> 358 bytes askbot/media/images/flags/pt.gif | Bin 0 -> 369 bytes askbot/media/images/flags/pw.gif | Bin 0 -> 374 bytes askbot/media/images/flags/py.gif | Bin 0 -> 363 bytes askbot/media/images/flags/qa.gif | Bin 0 -> 364 bytes askbot/media/images/flags/re.gif | Bin 0 -> 366 bytes askbot/media/images/flags/ro.gif | Bin 0 -> 363 bytes askbot/media/images/flags/rs.gif | Bin 0 -> 238 bytes askbot/media/images/flags/ru.gif | Bin 0 -> 361 bytes askbot/media/images/flags/rw.gif | Bin 0 -> 361 bytes askbot/media/images/flags/sa.gif | Bin 0 -> 370 bytes askbot/media/images/flags/sb.gif | Bin 0 -> 366 bytes askbot/media/images/flags/sc.gif | Bin 0 -> 357 bytes askbot/media/images/flags/scotland.gif | Bin 0 -> 378 bytes askbot/media/images/flags/sd.gif | Bin 0 -> 355 bytes askbot/media/images/flags/se.gif | Bin 0 -> 367 bytes askbot/media/images/flags/sg.gif | Bin 0 -> 364 bytes askbot/media/images/flags/sh.gif | Bin 0 -> 371 bytes askbot/media/images/flags/si.gif | Bin 0 -> 362 bytes askbot/media/images/flags/sj.gif | Bin 0 -> 376 bytes askbot/media/images/flags/sk.gif | Bin 0 -> 361 bytes askbot/media/images/flags/sl.gif | Bin 0 -> 363 bytes askbot/media/images/flags/sm.gif | Bin 0 -> 367 bytes askbot/media/images/flags/sn.gif | Bin 0 -> 364 bytes askbot/media/images/flags/so.gif | Bin 0 -> 376 bytes askbot/media/images/flags/sr.gif | Bin 0 -> 361 bytes askbot/media/images/flags/st.gif | Bin 0 -> 367 bytes askbot/media/images/flags/sv.gif | Bin 0 -> 363 bytes askbot/media/images/flags/sy.gif | Bin 0 -> 361 bytes askbot/media/images/flags/sz.gif | Bin 0 -> 363 bytes askbot/media/images/flags/tc.gif | Bin 0 -> 366 bytes askbot/media/images/flags/td.gif | Bin 0 -> 368 bytes askbot/media/images/flags/tf.gif | Bin 0 -> 365 bytes askbot/media/images/flags/tg.gif | Bin 0 -> 366 bytes askbot/media/images/flags/th.gif | Bin 0 -> 360 bytes askbot/media/images/flags/tj.gif | Bin 0 -> 361 bytes askbot/media/images/flags/tk.gif | Bin 0 -> 372 bytes askbot/media/images/flags/tl.gif | Bin 0 -> 360 bytes askbot/media/images/flags/tm.gif | Bin 0 -> 367 bytes askbot/media/images/flags/tn.gif | Bin 0 -> 375 bytes askbot/media/images/flags/to.gif | Bin 0 -> 367 bytes askbot/media/images/flags/tr.gif | Bin 0 -> 371 bytes askbot/media/images/flags/tt.gif | Bin 0 -> 377 bytes askbot/media/images/flags/tv.gif | Bin 0 -> 361 bytes askbot/media/images/flags/tw.gif | Bin 0 -> 367 bytes askbot/media/images/flags/tz.gif | Bin 0 -> 366 bytes askbot/media/images/flags/ua.gif | Bin 0 -> 360 bytes askbot/media/images/flags/ug.gif | Bin 0 -> 359 bytes askbot/media/images/flags/um.gif | Bin 0 -> 371 bytes askbot/media/images/flags/us.gif | Bin 0 -> 367 bytes askbot/media/images/flags/uy.gif | Bin 0 -> 373 bytes askbot/media/images/flags/uz.gif | Bin 0 -> 364 bytes askbot/media/images/flags/va.gif | Bin 0 -> 369 bytes askbot/media/images/flags/vc.gif | Bin 0 -> 370 bytes askbot/media/images/flags/ve.gif | Bin 0 -> 364 bytes askbot/media/images/flags/vg.gif | Bin 0 -> 368 bytes askbot/media/images/flags/vi.gif | Bin 0 -> 376 bytes askbot/media/images/flags/vn.gif | Bin 0 -> 370 bytes askbot/media/images/flags/vu.gif | Bin 0 -> 365 bytes askbot/media/images/flags/wales.gif | Bin 0 -> 372 bytes askbot/media/images/flags/wf.gif | Bin 0 -> 377 bytes askbot/media/images/flags/ws.gif | Bin 0 -> 365 bytes askbot/media/images/flags/ye.gif | Bin 0 -> 356 bytes askbot/media/images/flags/yt.gif | Bin 0 -> 382 bytes askbot/media/images/flags/za.gif | Bin 0 -> 363 bytes askbot/media/images/flags/zm.gif | Bin 0 -> 358 bytes askbot/media/images/flags/zw.gif | Bin 0 -> 365 bytes askbot/media/images/go-up-grey.png | Bin 0 -> 563 bytes askbot/media/images/go-up-orange.png | Bin 0 -> 586 bytes askbot/media/images/gray-up-arrow-h18px.png | Bin 0 -> 383 bytes askbot/media/images/grippie.png | Bin 0 -> 162 bytes askbot/media/images/indicator.gif | Bin 0 -> 2545 bytes askbot/media/images/link.png | Bin 0 -> 601 bytes askbot/media/images/logo.gif | Bin 0 -> 2249 bytes askbot/media/images/logo.png | Bin 0 -> 5841 bytes askbot/media/images/logo1.png | Bin 0 -> 2752 bytes askbot/media/images/logo2.png | Bin 0 -> 2124 bytes askbot/media/images/mail-envelope-empty.png | Bin 0 -> 547 bytes askbot/media/images/mail-envelope-full.png | Bin 0 -> 482 bytes askbot/media/images/medala.gif | Bin 0 -> 801 bytes askbot/media/images/medala_on.gif | Bin 0 -> 957 bytes askbot/media/images/medium-button.png | Bin 0 -> 217 bytes askbot/media/images/new.gif | Bin 0 -> 635 bytes askbot/media/images/nophoto.png | Bin 0 -> 696 bytes askbot/media/images/notification.png | Bin 0 -> 217 bytes askbot/media/images/openid.gif | Bin 0 -> 910 bytes askbot/media/images/openid/aol.gif | Bin 0 -> 2205 bytes askbot/media/images/openid/blogger.ico | Bin 0 -> 3638 bytes askbot/media/images/openid/claimid.ico | Bin 0 -> 3638 bytes askbot/media/images/openid/facebook.gif | Bin 0 -> 2075 bytes askbot/media/images/openid/flickr.ico | Bin 0 -> 1150 bytes askbot/media/images/openid/google.gif | Bin 0 -> 1596 bytes askbot/media/images/openid/livejournal.ico | Bin 0 -> 5222 bytes askbot/media/images/openid/myopenid.ico | Bin 0 -> 2862 bytes askbot/media/images/openid/openid-inputicon.gif | Bin 0 -> 237 bytes askbot/media/images/openid/openid.gif | Bin 0 -> 740 bytes askbot/media/images/openid/technorati.ico | Bin 0 -> 2294 bytes askbot/media/images/openid/twitter.png | Bin 0 -> 3130 bytes askbot/media/images/openid/verisign.ico | Bin 0 -> 4710 bytes askbot/media/images/openid/vidoop.ico | Bin 0 -> 1406 bytes askbot/media/images/openid/wordpress.ico | Bin 0 -> 1150 bytes askbot/media/images/openid/yahoo.gif | Bin 0 -> 1510 bytes askbot/media/images/print.png | Bin 0 -> 1391 bytes askbot/media/images/publish.png | Bin 0 -> 282 bytes askbot/media/images/pw-login.gif | Bin 0 -> 1818 bytes askbot/media/images/quest-bg.gif | Bin 0 -> 294 bytes askbot/media/images/retag.png | Bin 0 -> 474 bytes askbot/media/images/scopearrow.png | Bin 0 -> 538 bytes askbot/media/images/small-button-blue.png | Bin 0 -> 202 bytes askbot/media/images/small-button-cancel.png | Bin 0 -> 211 bytes askbot/media/images/socialsprite.png | Bin 0 -> 3030 bytes askbot/media/images/sprite.png | Bin 0 -> 5325 bytes askbot/media/images/sprites.png | Bin 0 -> 12478 bytes askbot/media/images/sprites_source/graphics.svg | 1291 ++ askbot/media/images/sprites_source/other.svg | 732 + askbot/media/images/sprites_source/sprites.svg | 519 + askbot/media/images/summary-background.png | Bin 0 -> 233 bytes askbot/media/images/tag-left.png | Bin 0 -> 488 bytes askbot/media/images/tag-right.png | Bin 0 -> 365 bytes askbot/media/images/tips.png | Bin 0 -> 716 bytes askbot/media/images/unpublish.png | Bin 0 -> 294 bytes askbot/media/images/view-background.png | Bin 0 -> 265 bytes askbot/media/images/vote-accepted-on.png | Bin 0 -> 1124 bytes askbot/media/images/vote-accepted.png | Bin 0 -> 1058 bytes askbot/media/images/vote-arrow-down-new.png | Bin 0 -> 1458 bytes askbot/media/images/vote-arrow-down-on-new.png | Bin 0 -> 980 bytes askbot/media/images/vote-arrow-down-on.png | Bin 0 -> 905 bytes askbot/media/images/vote-arrow-down.png | Bin 0 -> 876 bytes askbot/media/images/vote-arrow-up-new.png | Bin 0 -> 979 bytes askbot/media/images/vote-arrow-up-on-new.png | Bin 0 -> 1029 bytes askbot/media/images/vote-arrow-up-on.png | Bin 0 -> 906 bytes askbot/media/images/vote-arrow-up.png | Bin 0 -> 843 bytes askbot/media/images/vote-background.png | Bin 0 -> 225 bytes askbot/media/images/vote-favorite-off.png | Bin 0 -> 930 bytes askbot/media/images/vote-favorite-on.png | Bin 0 -> 1023 bytes askbot/media/images/wiki.png | Bin 0 -> 5178 bytes askbot/media/jquery-openid/images/aol.gif | Bin 0 -> 1872 bytes askbot/media/jquery-openid/images/blogger-1.png | Bin 0 -> 432 bytes askbot/media/jquery-openid/images/blogger.ico | Bin 0 -> 3638 bytes askbot/media/jquery-openid/images/claimid-0.png | Bin 0 -> 629 bytes askbot/media/jquery-openid/images/claimid.ico | Bin 0 -> 3638 bytes askbot/media/jquery-openid/images/facebook.gif | Bin 0 -> 1737 bytes askbot/media/jquery-openid/images/flickr.ico | Bin 0 -> 1150 bytes askbot/media/jquery-openid/images/flickr.png | Bin 0 -> 426 bytes askbot/media/jquery-openid/images/google.gif | Bin 0 -> 1528 bytes askbot/media/jquery-openid/images/identica.png | Bin 0 -> 6601 bytes askbot/media/jquery-openid/images/linkedin.gif | Bin 0 -> 1530 bytes .../media/jquery-openid/images/livejournal-1.png | Bin 0 -> 713 bytes askbot/media/jquery-openid/images/livejournal.ico | Bin 0 -> 5222 bytes askbot/media/jquery-openid/images/myopenid-2.png | Bin 0 -> 511 bytes askbot/media/jquery-openid/images/myopenid.ico | Bin 0 -> 2862 bytes .../jquery-openid/images/openid-inputicon.gif | Bin 0 -> 237 bytes askbot/media/jquery-openid/images/openid.gif | Bin 0 -> 1473 bytes askbot/media/jquery-openid/images/openidico.png | Bin 0 -> 654 bytes askbot/media/jquery-openid/images/openidico16.png | Bin 0 -> 554 bytes askbot/media/jquery-openid/images/technorati-1.png | Bin 0 -> 606 bytes askbot/media/jquery-openid/images/technorati.ico | Bin 0 -> 2294 bytes askbot/media/jquery-openid/images/twitter.gif | Bin 0 -> 1913 bytes askbot/media/jquery-openid/images/verisign-2.png | Bin 0 -> 859 bytes askbot/media/jquery-openid/images/verisign.ico | Bin 0 -> 4710 bytes askbot/media/jquery-openid/images/vidoop.ico | Bin 0 -> 1406 bytes askbot/media/jquery-openid/images/vidoop.png | Bin 0 -> 499 bytes askbot/media/jquery-openid/images/wordpress.ico | Bin 0 -> 1150 bytes askbot/media/jquery-openid/images/wordpress.png | Bin 0 -> 566 bytes askbot/media/jquery-openid/images/yahoo.gif | Bin 0 -> 1607 bytes askbot/media/jquery-openid/jquery.openid.js | 440 + askbot/media/jquery-openid/openid.css | 39 + askbot/media/js/autocompleter.js | 794 + askbot/media/js/compress.bat | 5 + askbot/media/js/editor.js | 81 + askbot/media/js/excanvas.min.js | 1 + askbot/media/js/flot-build.bat | 3 + askbot/media/js/group_messaging.js | 186 + askbot/media/js/jquery-1.4.3.js | 6883 +++++++ askbot/media/js/jquery-1.7.2.min.js | 4 + askbot/media/js/jquery-fieldselection.js | 83 + askbot/media/js/jquery-fieldselection.min.js | 1 + askbot/media/js/jquery.ajaxfileupload.js | 186 + askbot/media/js/jquery.animate-colors.js | 105 + askbot/media/js/jquery.fancybox-1.3.4/ajax.txt | 6 + .../js/jquery.fancybox-1.3.4/example/10_b.jpg | Bin 0 -> 39922 bytes .../js/jquery.fancybox-1.3.4/example/10_s.jpg | Bin 0 -> 2725 bytes .../js/jquery.fancybox-1.3.4/example/11_b.jpg | Bin 0 -> 39422 bytes .../js/jquery.fancybox-1.3.4/example/11_s.jpg | Bin 0 -> 2548 bytes .../js/jquery.fancybox-1.3.4/example/12_b.jpg | Bin 0 -> 39950 bytes .../js/jquery.fancybox-1.3.4/example/12_s.jpg | Bin 0 -> 3109 bytes .../media/js/jquery.fancybox-1.3.4/example/1_b.jpg | Bin 0 -> 30700 bytes .../media/js/jquery.fancybox-1.3.4/example/1_s.jpg | Bin 0 -> 4258 bytes .../media/js/jquery.fancybox-1.3.4/example/2_b.jpg | Bin 0 -> 44175 bytes .../media/js/jquery.fancybox-1.3.4/example/2_s.jpg | Bin 0 -> 2929 bytes .../media/js/jquery.fancybox-1.3.4/example/3_b.jpg | Bin 0 -> 36756 bytes .../media/js/jquery.fancybox-1.3.4/example/3_s.jpg | Bin 0 -> 3720 bytes .../media/js/jquery.fancybox-1.3.4/example/4_b.jpg | Bin 0 -> 44606 bytes .../media/js/jquery.fancybox-1.3.4/example/4_s.jpg | Bin 0 -> 3840 bytes .../media/js/jquery.fancybox-1.3.4/example/5_b.jpg | Bin 0 -> 44793 bytes .../media/js/jquery.fancybox-1.3.4/example/5_s.jpg | Bin 0 -> 4208 bytes .../media/js/jquery.fancybox-1.3.4/example/6_b.jpg | Bin 0 -> 52956 bytes .../media/js/jquery.fancybox-1.3.4/example/6_s.jpg | Bin 0 -> 3552 bytes .../media/js/jquery.fancybox-1.3.4/example/7_b.jpg | Bin 0 -> 47087 bytes .../media/js/jquery.fancybox-1.3.4/example/7_s.jpg | Bin 0 -> 3644 bytes .../media/js/jquery.fancybox-1.3.4/example/8_b.jpg | Bin 0 -> 40470 bytes .../media/js/jquery.fancybox-1.3.4/example/8_s.jpg | Bin 0 -> 3020 bytes .../media/js/jquery.fancybox-1.3.4/example/9_b.jpg | Bin 0 -> 51690 bytes .../media/js/jquery.fancybox-1.3.4/example/9_s.jpg | Bin 0 -> 3226 bytes .../js/jquery.fancybox-1.3.4/fancybox/blank.gif | Bin 0 -> 43 bytes .../jquery.fancybox-1.3.4/fancybox/fancy_close.png | Bin 0 -> 1517 bytes .../fancybox/fancy_loading.png | Bin 0 -> 10195 bytes .../fancybox/fancy_nav_left.png | Bin 0 -> 1446 bytes .../fancybox/fancy_nav_right.png | Bin 0 -> 1454 bytes .../fancybox/fancy_shadow_e.png | Bin 0 -> 107 bytes .../fancybox/fancy_shadow_n.png | Bin 0 -> 106 bytes .../fancybox/fancy_shadow_ne.png | Bin 0 -> 347 bytes .../fancybox/fancy_shadow_nw.png | Bin 0 -> 324 bytes .../fancybox/fancy_shadow_s.png | Bin 0 -> 111 bytes .../fancybox/fancy_shadow_se.png | Bin 0 -> 352 bytes .../fancybox/fancy_shadow_sw.png | Bin 0 -> 340 bytes .../fancybox/fancy_shadow_w.png | Bin 0 -> 103 bytes .../fancybox/fancy_title_left.png | Bin 0 -> 503 bytes .../fancybox/fancy_title_main.png | Bin 0 -> 96 bytes .../fancybox/fancy_title_over.png | Bin 0 -> 70 bytes .../fancybox/fancy_title_right.png | Bin 0 -> 506 bytes .../jquery.fancybox-1.3.4/fancybox/fancybox-x.png | Bin 0 -> 203 bytes .../jquery.fancybox-1.3.4/fancybox/fancybox-y.png | Bin 0 -> 176 bytes .../js/jquery.fancybox-1.3.4/fancybox/fancybox.png | Bin 0 -> 15287 bytes .../fancybox/jquery.easing-1.3.pack.js | 72 + .../fancybox/jquery.fancybox-1.3.4.css | 359 + .../fancybox/jquery.fancybox-1.3.4.js | 1156 ++ .../fancybox/jquery.fancybox-1.3.4.pack.js | 46 + .../fancybox/jquery.mousewheel-3.0.4.pack.js | 14 + askbot/media/js/jquery.fancybox-1.3.4/index.html | 165 + .../js/jquery.fancybox-1.3.4/jquery-1.4.3.min.js | 166 + askbot/media/js/jquery.fancybox-1.3.4/style.css | 65 + askbot/media/js/jquery.flot.js | 2119 +++ askbot/media/js/jquery.flot.min.js | 1 + askbot/media/js/jquery.form.js | 654 + askbot/media/js/jquery.history.js | 1 + askbot/media/js/jquery.i18n.js | 133 + askbot/media/js/jquery.openid.js | 176 + askbot/media/js/jquery.validate.js | 1146 ++ askbot/media/js/jquery.validate.min.js | 16 + askbot/media/js/jquery.validate.pack.js | 15 + askbot/media/js/less.min.js | 16 + askbot/media/js/live_search.js | 405 + askbot/media/js/live_search_new_thread.js | 93 + askbot/media/js/modernizr.custom.js | 4 + askbot/media/js/output-words.html | 49 + askbot/media/js/output-words.js | 97 + askbot/media/js/post.js | 4081 ++++ askbot/media/js/se_hilite.js | 1 + askbot/media/js/se_hilite_src.js | 273 + askbot/media/js/tag_moderation.js | 217 + askbot/media/js/tag_selector.js | 402 + askbot/media/js/tinymce/langs/en.js | 1 + askbot/media/js/tinymce/license.txt | 504 + .../media/js/tinymce/plugins/advhr/css/advhr.css | 5 + .../js/tinymce/plugins/advhr/editor_plugin.js | 1 + .../js/tinymce/plugins/advhr/editor_plugin_src.js | 57 + askbot/media/js/tinymce/plugins/advhr/js/rule.js | 43 + .../media/js/tinymce/plugins/advhr/langs/en_dlg.js | 1 + askbot/media/js/tinymce/plugins/advhr/rule.htm | 58 + .../js/tinymce/plugins/advimage/css/advimage.css | 13 + .../js/tinymce/plugins/advimage/editor_plugin.js | 1 + .../tinymce/plugins/advimage/editor_plugin_src.js | 50 + askbot/media/js/tinymce/plugins/advimage/image.htm | 235 + .../js/tinymce/plugins/advimage/img/sample.gif | Bin 0 -> 1624 bytes .../media/js/tinymce/plugins/advimage/js/image.js | 462 + .../js/tinymce/plugins/advimage/langs/en_dlg.js | 1 + .../js/tinymce/plugins/advlink/css/advlink.css | 8 + .../js/tinymce/plugins/advlink/editor_plugin.js | 1 + .../tinymce/plugins/advlink/editor_plugin_src.js | 61 + .../media/js/tinymce/plugins/advlink/js/advlink.js | 539 + .../js/tinymce/plugins/advlink/langs/en_dlg.js | 1 + askbot/media/js/tinymce/plugins/advlink/link.htm | 338 + .../js/tinymce/plugins/advlist/editor_plugin.js | 1 + .../tinymce/plugins/advlist/editor_plugin_src.js | 176 + .../plugins/askbot_attachment/editor_plugin.js | 111 + .../tinymce/plugins/askbot_attachment/langs/en.js | 3 + .../plugins/askbot_attachment/langs/en_dlg.js | 3 + .../plugins/askbot_imageuploader/editor_plugin.js | 111 + .../plugins/askbot_imageuploader/langs/en.js | 3 + .../plugins/askbot_imageuploader/langs/en_dlg.js | 3 + .../js/tinymce/plugins/autolink/editor_plugin.js | 1 + .../tinymce/plugins/autolink/editor_plugin_src.js | 181 + .../js/tinymce/plugins/autoresize/editor_plugin.js | 1 + .../plugins/autoresize/editor_plugin_src.js | 119 + .../js/tinymce/plugins/autosave/editor_plugin.js | 1 + .../tinymce/plugins/autosave/editor_plugin_src.js | 433 + .../media/js/tinymce/plugins/autosave/langs/en.js | 4 + .../js/tinymce/plugins/bbcode/editor_plugin.js | 1 + .../js/tinymce/plugins/bbcode/editor_plugin_src.js | 120 + .../tinymce/plugins/contextmenu/editor_plugin.js | 1 + .../plugins/contextmenu/editor_plugin_src.js | 161 + .../plugins/directionality/editor_plugin.js | 1 + .../plugins/directionality/editor_plugin_src.js | 82 + .../js/tinymce/plugins/emotions/editor_plugin.js | 1 + .../tinymce/plugins/emotions/editor_plugin_src.js | 43 + .../media/js/tinymce/plugins/emotions/emotions.htm | 42 + .../tinymce/plugins/emotions/img/smiley-cool.gif | Bin 0 -> 354 bytes .../js/tinymce/plugins/emotions/img/smiley-cry.gif | Bin 0 -> 329 bytes .../plugins/emotions/img/smiley-embarassed.gif | Bin 0 -> 331 bytes .../plugins/emotions/img/smiley-foot-in-mouth.gif | Bin 0 -> 342 bytes .../tinymce/plugins/emotions/img/smiley-frown.gif | Bin 0 -> 340 bytes .../plugins/emotions/img/smiley-innocent.gif | Bin 0 -> 336 bytes .../tinymce/plugins/emotions/img/smiley-kiss.gif | Bin 0 -> 338 bytes .../plugins/emotions/img/smiley-laughing.gif | Bin 0 -> 343 bytes .../plugins/emotions/img/smiley-money-mouth.gif | Bin 0 -> 321 bytes .../tinymce/plugins/emotions/img/smiley-sealed.gif | Bin 0 -> 323 bytes .../tinymce/plugins/emotions/img/smiley-smile.gif | Bin 0 -> 344 bytes .../plugins/emotions/img/smiley-surprised.gif | Bin 0 -> 338 bytes .../plugins/emotions/img/smiley-tongue-out.gif | Bin 0 -> 328 bytes .../plugins/emotions/img/smiley-undecided.gif | Bin 0 -> 337 bytes .../tinymce/plugins/emotions/img/smiley-wink.gif | Bin 0 -> 350 bytes .../tinymce/plugins/emotions/img/smiley-yell.gif | Bin 0 -> 336 bytes .../js/tinymce/plugins/emotions/js/emotions.js | 43 + .../js/tinymce/plugins/emotions/langs/en_dlg.js | 1 + askbot/media/js/tinymce/plugins/example/dialog.htm | 22 + .../js/tinymce/plugins/example/editor_plugin.js | 1 + .../tinymce/plugins/example/editor_plugin_src.js | 84 + .../js/tinymce/plugins/example/img/example.gif | Bin 0 -> 87 bytes .../media/js/tinymce/plugins/example/js/dialog.js | 19 + .../media/js/tinymce/plugins/example/langs/en.js | 3 + .../js/tinymce/plugins/example/langs/en_dlg.js | 3 + .../plugins/example_dependency/editor_plugin.js | 1 + .../example_dependency/editor_plugin_src.js | 50 + .../js/tinymce/plugins/fullpage/css/fullpage.css | 143 + .../js/tinymce/plugins/fullpage/editor_plugin.js | 1 + .../tinymce/plugins/fullpage/editor_plugin_src.js | 405 + .../media/js/tinymce/plugins/fullpage/fullpage.htm | 259 + .../js/tinymce/plugins/fullpage/js/fullpage.js | 232 + .../js/tinymce/plugins/fullpage/langs/en_dlg.js | 1 + .../js/tinymce/plugins/fullscreen/editor_plugin.js | 1 + .../plugins/fullscreen/editor_plugin_src.js | 159 + .../js/tinymce/plugins/fullscreen/fullscreen.htm | 110 + .../js/tinymce/plugins/iespell/editor_plugin.js | 1 + .../tinymce/plugins/iespell/editor_plugin_src.js | 54 + .../tinymce/plugins/inlinepopups/editor_plugin.js | 1 + .../plugins/inlinepopups/editor_plugin_src.js | 699 + .../inlinepopups/skins/clearlooks2/img/alert.gif | Bin 0 -> 810 bytes .../inlinepopups/skins/clearlooks2/img/button.gif | Bin 0 -> 272 bytes .../inlinepopups/skins/clearlooks2/img/buttons.gif | Bin 0 -> 1195 bytes .../inlinepopups/skins/clearlooks2/img/confirm.gif | Bin 0 -> 907 bytes .../inlinepopups/skins/clearlooks2/img/corners.gif | Bin 0 -> 909 bytes .../skins/clearlooks2/img/horizontal.gif | Bin 0 -> 769 bytes .../skins/clearlooks2/img/vertical.gif | Bin 0 -> 84 bytes .../inlinepopups/skins/clearlooks2/window.css | 90 + .../js/tinymce/plugins/inlinepopups/template.htm | 387 + .../plugins/insertdatetime/editor_plugin.js | 1 + .../plugins/insertdatetime/editor_plugin_src.js | 83 + .../js/tinymce/plugins/layer/editor_plugin.js | 1 + .../js/tinymce/plugins/layer/editor_plugin_src.js | 262 + .../tinymce/plugins/legacyoutput/editor_plugin.js | 1 + .../plugins/legacyoutput/editor_plugin_src.js | 139 + .../js/tinymce/plugins/lists/editor_plugin.js | 1 + .../js/tinymce/plugins/lists/editor_plugin_src.js | 952 + .../media/js/tinymce/plugins/media/css/media.css | 17 + .../js/tinymce/plugins/media/editor_plugin.js | 1 + .../js/tinymce/plugins/media/editor_plugin_src.js | 890 + askbot/media/js/tinymce/plugins/media/js/embed.js | 73 + askbot/media/js/tinymce/plugins/media/js/media.js | 470 + .../media/js/tinymce/plugins/media/langs/en_dlg.js | 1 + askbot/media/js/tinymce/plugins/media/media.htm | 922 + .../media/js/tinymce/plugins/media/moxieplayer.swf | Bin 0 -> 19980 bytes .../tinymce/plugins/nonbreaking/editor_plugin.js | 1 + .../plugins/nonbreaking/editor_plugin_src.js | 54 + .../tinymce/plugins/noneditable/editor_plugin.js | 1 + .../plugins/noneditable/editor_plugin_src.js | 540 + .../js/tinymce/plugins/pagebreak/editor_plugin.js | 1 + .../tinymce/plugins/pagebreak/editor_plugin_src.js | 74 + .../js/tinymce/plugins/paste/editor_plugin.js | 1 + .../js/tinymce/plugins/paste/editor_plugin_src.js | 871 + .../media/js/tinymce/plugins/paste/js/pastetext.js | 36 + .../media/js/tinymce/plugins/paste/js/pasteword.js | 51 + .../media/js/tinymce/plugins/paste/langs/en_dlg.js | 1 + .../media/js/tinymce/plugins/paste/pastetext.htm | 27 + .../media/js/tinymce/plugins/paste/pasteword.htm | 21 + .../js/tinymce/plugins/preview/editor_plugin.js | 1 + .../tinymce/plugins/preview/editor_plugin_src.js | 53 + .../media/js/tinymce/plugins/preview/example.html | 28 + .../js/tinymce/plugins/preview/jscripts/embed.js | 73 + .../media/js/tinymce/plugins/preview/preview.html | 17 + .../js/tinymce/plugins/print/editor_plugin.js | 1 + .../js/tinymce/plugins/print/editor_plugin_src.js | 34 + .../media/js/tinymce/plugins/save/editor_plugin.js | 1 + .../js/tinymce/plugins/save/editor_plugin_src.js | 101 + .../plugins/searchreplace/css/searchreplace.css | 6 + .../tinymce/plugins/searchreplace/editor_plugin.js | 1 + .../plugins/searchreplace/editor_plugin_src.js | 61 + .../plugins/searchreplace/js/searchreplace.js | 142 + .../tinymce/plugins/searchreplace/langs/en_dlg.js | 1 + .../plugins/searchreplace/searchreplace.htm | 100 + .../tinymce/plugins/spellchecker/css/content.css | 1 + .../tinymce/plugins/spellchecker/editor_plugin.js | 1 + .../plugins/spellchecker/editor_plugin_src.js | 436 + .../js/tinymce/plugins/spellchecker/img/wline.gif | Bin 0 -> 46 bytes .../media/js/tinymce/plugins/style/css/props.css | 14 + .../js/tinymce/plugins/style/editor_plugin.js | 1 + .../js/tinymce/plugins/style/editor_plugin_src.js | 71 + askbot/media/js/tinymce/plugins/style/js/props.js | 709 + .../media/js/tinymce/plugins/style/langs/en_dlg.js | 1 + askbot/media/js/tinymce/plugins/style/props.htm | 845 + askbot/media/js/tinymce/plugins/style/readme.txt | 19 + .../js/tinymce/plugins/tabfocus/editor_plugin.js | 1 + .../tinymce/plugins/tabfocus/editor_plugin_src.js | 122 + askbot/media/js/tinymce/plugins/table/cell.htm | 180 + askbot/media/js/tinymce/plugins/table/css/cell.css | 17 + askbot/media/js/tinymce/plugins/table/css/row.css | 25 + .../media/js/tinymce/plugins/table/css/table.css | 13 + .../js/tinymce/plugins/table/editor_plugin.js | 1 + .../js/tinymce/plugins/table/editor_plugin_src.js | 1449 ++ askbot/media/js/tinymce/plugins/table/js/cell.js | 319 + .../js/tinymce/plugins/table/js/merge_cells.js | 27 + askbot/media/js/tinymce/plugins/table/js/row.js | 237 + askbot/media/js/tinymce/plugins/table/js/table.js | 501 + .../media/js/tinymce/plugins/table/langs/en_dlg.js | 1 + .../media/js/tinymce/plugins/table/merge_cells.htm | 32 + askbot/media/js/tinymce/plugins/table/row.htm | 158 + askbot/media/js/tinymce/plugins/table/table.htm | 188 + askbot/media/js/tinymce/plugins/template/blank.htm | 12 + .../js/tinymce/plugins/template/css/template.css | 23 + .../js/tinymce/plugins/template/editor_plugin.js | 1 + .../tinymce/plugins/template/editor_plugin_src.js | 159 + .../js/tinymce/plugins/template/js/template.js | 106 + .../js/tinymce/plugins/template/langs/en_dlg.js | 1 + .../media/js/tinymce/plugins/template/template.htm | 31 + .../plugins/visualblocks/css/visualblocks.css | 21 + .../tinymce/plugins/visualblocks/editor_plugin.js | 1 + .../plugins/visualblocks/editor_plugin_src.js | 63 + .../tinymce/plugins/visualchars/editor_plugin.js | 1 + .../plugins/visualchars/editor_plugin_src.js | 83 + .../js/tinymce/plugins/wordcount/editor_plugin.js | 1 + .../tinymce/plugins/wordcount/editor_plugin_src.js | 122 + .../media/js/tinymce/plugins/xhtmlxtras/abbr.htm | 142 + .../js/tinymce/plugins/xhtmlxtras/acronym.htm | 142 + .../js/tinymce/plugins/xhtmlxtras/attributes.htm | 149 + .../media/js/tinymce/plugins/xhtmlxtras/cite.htm | 142 + .../tinymce/plugins/xhtmlxtras/css/attributes.css | 11 + .../js/tinymce/plugins/xhtmlxtras/css/popup.css | 9 + askbot/media/js/tinymce/plugins/xhtmlxtras/del.htm | 162 + .../js/tinymce/plugins/xhtmlxtras/editor_plugin.js | 1 + .../plugins/xhtmlxtras/editor_plugin_src.js | 132 + askbot/media/js/tinymce/plugins/xhtmlxtras/ins.htm | 162 + .../media/js/tinymce/plugins/xhtmlxtras/js/abbr.js | 28 + .../js/tinymce/plugins/xhtmlxtras/js/acronym.js | 28 + .../js/tinymce/plugins/xhtmlxtras/js/attributes.js | 111 + .../media/js/tinymce/plugins/xhtmlxtras/js/cite.js | 28 + .../media/js/tinymce/plugins/xhtmlxtras/js/del.js | 53 + .../plugins/xhtmlxtras/js/element_common.js | 229 + .../media/js/tinymce/plugins/xhtmlxtras/js/ins.js | 53 + .../js/tinymce/plugins/xhtmlxtras/langs/en_dlg.js | 1 + askbot/media/js/tinymce/themes/advanced/about.htm | 52 + askbot/media/js/tinymce/themes/advanced/anchor.htm | 26 + .../media/js/tinymce/themes/advanced/charmap.htm | 55 + .../js/tinymce/themes/advanced/color_picker.htm | 70 + .../js/tinymce/themes/advanced/editor_template.js | 1 + .../tinymce/themes/advanced/editor_template_src.js | 1487 ++ askbot/media/js/tinymce/themes/advanced/image.htm | 80 + .../js/tinymce/themes/advanced/img/colorpicker.jpg | Bin 0 -> 2584 bytes .../media/js/tinymce/themes/advanced/img/flash.gif | Bin 0 -> 239 bytes .../media/js/tinymce/themes/advanced/img/icons.gif | Bin 0 -> 11982 bytes .../js/tinymce/themes/advanced/img/iframe.gif | Bin 0 -> 600 bytes .../js/tinymce/themes/advanced/img/pagebreak.gif | Bin 0 -> 325 bytes .../js/tinymce/themes/advanced/img/quicktime.gif | Bin 0 -> 301 bytes .../js/tinymce/themes/advanced/img/realmedia.gif | Bin 0 -> 439 bytes .../js/tinymce/themes/advanced/img/shockwave.gif | Bin 0 -> 384 bytes .../media/js/tinymce/themes/advanced/img/trans.gif | Bin 0 -> 43 bytes .../media/js/tinymce/themes/advanced/img/video.gif | Bin 0 -> 597 bytes .../tinymce/themes/advanced/img/windowsmedia.gif | Bin 0 -> 415 bytes .../media/js/tinymce/themes/advanced/js/about.js | 73 + .../media/js/tinymce/themes/advanced/js/anchor.js | 56 + .../media/js/tinymce/themes/advanced/js/charmap.js | 363 + .../js/tinymce/themes/advanced/js/color_picker.js | 345 + .../media/js/tinymce/themes/advanced/js/image.js | 253 + askbot/media/js/tinymce/themes/advanced/js/link.js | 159 + .../js/tinymce/themes/advanced/js/source_editor.js | 78 + .../media/js/tinymce/themes/advanced/langs/en.js | 1 + .../js/tinymce/themes/advanced/langs/en_dlg.js | 1 + askbot/media/js/tinymce/themes/advanced/link.htm | 57 + .../media/js/tinymce/themes/advanced/shortcuts.htm | 47 + .../themes/advanced/skins/default/content.css | 50 + .../themes/advanced/skins/default/dialog.css | 118 + .../themes/advanced/skins/default/img/buttons.png | Bin 0 -> 3133 bytes .../themes/advanced/skins/default/img/items.gif | Bin 0 -> 64 bytes .../advanced/skins/default/img/menu_arrow.gif | Bin 0 -> 68 bytes .../advanced/skins/default/img/menu_check.gif | Bin 0 -> 70 bytes .../themes/advanced/skins/default/img/progress.gif | Bin 0 -> 1787 bytes .../themes/advanced/skins/default/img/tabs.gif | Bin 0 -> 1322 bytes .../tinymce/themes/advanced/skins/default/ui.css | 219 + .../themes/advanced/skins/highcontrast/content.css | 24 + .../themes/advanced/skins/highcontrast/dialog.css | 106 + .../themes/advanced/skins/highcontrast/ui.css | 106 + .../tinymce/themes/advanced/skins/o2k7/content.css | 48 + .../tinymce/themes/advanced/skins/o2k7/dialog.css | 118 + .../themes/advanced/skins/o2k7/img/button_bg.png | Bin 0 -> 2766 bytes .../advanced/skins/o2k7/img/button_bg_black.png | Bin 0 -> 651 bytes .../advanced/skins/o2k7/img/button_bg_silver.png | Bin 0 -> 2084 bytes .../js/tinymce/themes/advanced/skins/o2k7/ui.css | 222 + .../themes/advanced/skins/o2k7/ui_black.css | 8 + .../themes/advanced/skins/o2k7/ui_silver.css | 5 + .../js/tinymce/themes/advanced/source_editor.htm | 25 + .../js/tinymce/themes/simple/editor_template.js | 1 + .../tinymce/themes/simple/editor_template_src.js | 84 + .../media/js/tinymce/themes/simple/img/icons.gif | Bin 0 -> 806 bytes askbot/media/js/tinymce/themes/simple/langs/en.js | 1 + .../themes/simple/skins/default/content.css | 25 + .../js/tinymce/themes/simple/skins/default/ui.css | 32 + .../tinymce/themes/simple/skins/o2k7/content.css | 17 + .../themes/simple/skins/o2k7/img/button_bg.png | Bin 0 -> 5102 bytes .../js/tinymce/themes/simple/skins/o2k7/ui.css | 35 + askbot/media/js/tinymce/tiny_mce.js | 1 + askbot/media/js/tinymce/tiny_mce_popup.js | 5 + askbot/media/js/tinymce/tiny_mce_src.js | 18576 +++++++++++++++++++ askbot/media/js/tinymce/utils/editable_selects.js | 70 + askbot/media/js/tinymce/utils/form_utils.js | 210 + askbot/media/js/tinymce/utils/mctabs.js | 162 + askbot/media/js/tinymce/utils/validate.js | 252 + askbot/media/js/user.js | 1014 + askbot/media/js/utils.js | 2917 +++ .../js/wmd/images/editor-toolbar-background.png | Bin 0 -> 282 bytes askbot/media/js/wmd/images/wmd-buttons.png | Bin 0 -> 11480 bytes askbot/media/js/wmd/showdown-min.js | 1 + askbot/media/js/wmd/showdown.js | 1332 ++ askbot/media/js/wmd/wmd-min.js | 1 + askbot/media/js/wmd/wmd-test.html | 158 + askbot/media/js/wmd/wmd.css | 130 + askbot/media/js/wmd/wmd.js | 2510 +++ askbot/media/style/auth.css | 48 + askbot/media/style/jquery.autocomplete.css | 40 + askbot/media/style/lib_style.css | 22 + askbot/media/style/lib_style.less | 101 + askbot/media/style/openid.css | 45 + askbot/media/style/prettify.css | 27 + askbot/media/style/style.css | 4114 ++++ askbot/media/style/style.less | 4001 ++++ askbot/media/style/tinymce/content.css | 58 + askbot/skins/README | 4 +- askbot/skins/default/media/bootstrap/bootstrap.zip | Bin 273108 -> 0 bytes .../default/media/bootstrap/css/bootstrap.css | 4559 ----- .../default/media/bootstrap/css/bootstrap.min.css | 706 - .../bootstrap/img/glyphicons-halflings-white.png | Bin 4352 -> 0 bytes .../media/bootstrap/img/glyphicons-halflings.png | Bin 4352 -> 0 bytes .../skins/default/media/bootstrap/js/bootstrap.js | 1737 -- .../default/media/bootstrap/js/bootstrap.min.js | 7 - askbot/skins/default/media/images/OFL.txt | 93 - .../default/media/images/OpenSans-CondBold.ttf | Bin 264372 -> 0 bytes .../default/media/images/OpenSans-CondLight.ttf | Bin 221108 -> 0 bytes .../media/images/OpenSans-CondLightItalic.ttf | Bin 210804 -> 0 bytes .../default/media/images/YanoneKaffeesatz-Bold.ttf | Bin 73000 -> 0 bytes .../media/images/YanoneKaffeesatz-ExtraLight.ttf | Bin 77024 -> 0 bytes .../media/images/YanoneKaffeesatz-Light.ttf | Bin 77296 -> 0 bytes .../media/images/YanoneKaffeesatz-Regular.ttf | Bin 76588 -> 0 bytes .../default/media/images/Yanone_Kaffeesatz.zip | Bin 154362 -> 0 bytes askbot/skins/default/media/images/accept.png | Bin 727 -> 0 bytes askbot/skins/default/media/images/anon.png | Bin 687 -> 0 bytes .../default/media/images/answers-background.png | Bin 235 -> 0 bytes askbot/skins/default/media/images/attachment.png | Bin 3142 -> 0 bytes .../default/media/images/background-user-info.png | Bin 361 -> 0 bytes askbot/skins/default/media/images/bigbutton.png | Bin 263 -> 0 bytes .../skins/default/media/images/bigbuttonhover.png | Bin 236 -> 0 bytes .../default/media/images/blue-up-arrow-h18px.png | Bin 593 -> 0 bytes askbot/skins/default/media/images/box-arrow.gif | Bin 69 -> 0 bytes askbot/skins/default/media/images/bullet_green.gif | Bin 64 -> 0 bytes askbot/skins/default/media/images/cc-88x31.png | Bin 5460 -> 0 bytes askbot/skins/default/media/images/cc-by-sa.png | Bin 5083 -> 0 bytes .../default/media/images/close-small-dark.png | Bin 879 -> 0 bytes .../default/media/images/close-small-hover.png | Bin 337 -> 0 bytes askbot/skins/default/media/images/close-small.png | Bin 293 -> 0 bytes askbot/skins/default/media/images/close.png | Bin 469 -> 0 bytes .../default/media/images/comment-background.png | Bin 250 -> 0 bytes askbot/skins/default/media/images/comment.png | Bin 606 -> 0 bytes .../default/media/images/contributorsback.png | Bin 714 -> 0 bytes askbot/skins/default/media/images/dash.gif | Bin 44 -> 0 bytes askbot/skins/default/media/images/delete.png | Bin 434 -> 0 bytes .../default/media/images/dialog-warning-off.png | Bin 419 -> 0 bytes .../skins/default/media/images/dialog-warning.png | Bin 603 -> 0 bytes .../default/media/images/djangomade124x25_grey.gif | Bin 2035 -> 0 bytes askbot/skins/default/media/images/dot-g.gif | Bin 61 -> 0 bytes askbot/skins/default/media/images/dot-list.gif | Bin 56 -> 0 bytes askbot/skins/default/media/images/edit.png | Bin 758 -> 0 bytes askbot/skins/default/media/images/edit2.png | Bin 498 -> 0 bytes .../default/media/images/expander-arrow-hide.gif | Bin 126 -> 0 bytes .../default/media/images/expander-arrow-show.gif | Bin 135 -> 0 bytes askbot/skins/default/media/images/favicon.gif | Bin 898 -> 0 bytes askbot/skins/default/media/images/favicon.ico | Bin 1150 -> 0 bytes .../skins/default/media/images/feed-icon-small.png | Bin 669 -> 0 bytes askbot/skins/default/media/images/flag.png | Bin 515 -> 0 bytes askbot/skins/default/media/images/flags/ad.gif | Bin 371 -> 0 bytes askbot/skins/default/media/images/flags/ae.gif | Bin 361 -> 0 bytes askbot/skins/default/media/images/flags/af.gif | Bin 369 -> 0 bytes askbot/skins/default/media/images/flags/ag.gif | Bin 361 -> 0 bytes askbot/skins/default/media/images/flags/ai.gif | Bin 369 -> 0 bytes askbot/skins/default/media/images/flags/al.gif | Bin 370 -> 0 bytes askbot/skins/default/media/images/flags/am.gif | Bin 363 -> 0 bytes askbot/skins/default/media/images/flags/an.gif | Bin 368 -> 0 bytes askbot/skins/default/media/images/flags/ao.gif | Bin 244 -> 0 bytes askbot/skins/default/media/images/flags/ar.gif | Bin 366 -> 0 bytes askbot/skins/default/media/images/flags/as.gif | Bin 365 -> 0 bytes askbot/skins/default/media/images/flags/at.gif | Bin 361 -> 0 bytes askbot/skins/default/media/images/flags/au.gif | Bin 378 -> 0 bytes askbot/skins/default/media/images/flags/aw.gif | Bin 365 -> 0 bytes askbot/skins/default/media/images/flags/ax.gif | Bin 376 -> 0 bytes askbot/skins/default/media/images/flags/az.gif | Bin 370 -> 0 bytes askbot/skins/default/media/images/flags/ba.gif | Bin 363 -> 0 bytes askbot/skins/default/media/images/flags/bb.gif | Bin 368 -> 0 bytes askbot/skins/default/media/images/flags/bd.gif | Bin 361 -> 0 bytes askbot/skins/default/media/images/flags/be.gif | Bin 359 -> 0 bytes askbot/skins/default/media/images/flags/bf.gif | Bin 358 -> 0 bytes askbot/skins/default/media/images/flags/bg.gif | Bin 360 -> 0 bytes askbot/skins/default/media/images/flags/bh.gif | Bin 367 -> 0 bytes askbot/skins/default/media/images/flags/bi.gif | Bin 374 -> 0 bytes askbot/skins/default/media/images/flags/bj.gif | Bin 368 -> 0 bytes askbot/skins/default/media/images/flags/bm.gif | Bin 367 -> 0 bytes askbot/skins/default/media/images/flags/bn.gif | Bin 373 -> 0 bytes askbot/skins/default/media/images/flags/bo.gif | Bin 359 -> 0 bytes askbot/skins/default/media/images/flags/br.gif | Bin 367 -> 0 bytes askbot/skins/default/media/images/flags/bs.gif | Bin 351 -> 0 bytes askbot/skins/default/media/images/flags/bt.gif | Bin 377 -> 0 bytes askbot/skins/default/media/images/flags/bv.gif | Bin 376 -> 0 bytes askbot/skins/default/media/images/flags/bw.gif | Bin 364 -> 0 bytes askbot/skins/default/media/images/flags/by.gif | Bin 361 -> 0 bytes askbot/skins/default/media/images/flags/bz.gif | Bin 368 -> 0 bytes askbot/skins/default/media/images/flags/ca.gif | Bin 376 -> 0 bytes .../skins/default/media/images/flags/catalonia.gif | Bin 238 -> 0 bytes askbot/skins/default/media/images/flags/cc.gif | Bin 371 -> 0 bytes askbot/skins/default/media/images/flags/cd.gif | Bin 243 -> 0 bytes askbot/skins/default/media/images/flags/cf.gif | Bin 364 -> 0 bytes askbot/skins/default/media/images/flags/cg.gif | Bin 359 -> 0 bytes askbot/skins/default/media/images/flags/ch.gif | Bin 332 -> 0 bytes askbot/skins/default/media/images/flags/ci.gif | Bin 368 -> 0 bytes askbot/skins/default/media/images/flags/ck.gif | Bin 362 -> 0 bytes askbot/skins/default/media/images/flags/cl.gif | Bin 364 -> 0 bytes askbot/skins/default/media/images/flags/cm.gif | Bin 369 -> 0 bytes askbot/skins/default/media/images/flags/cn.gif | Bin 366 -> 0 bytes askbot/skins/default/media/images/flags/co.gif | Bin 353 -> 0 bytes askbot/skins/default/media/images/flags/cr.gif | Bin 359 -> 0 bytes askbot/skins/default/media/images/flags/cs.gif | Bin 364 -> 0 bytes askbot/skins/default/media/images/flags/cu.gif | Bin 367 -> 0 bytes askbot/skins/default/media/images/flags/cv.gif | Bin 367 -> 0 bytes askbot/skins/default/media/images/flags/cx.gif | Bin 363 -> 0 bytes askbot/skins/default/media/images/flags/cy.gif | Bin 365 -> 0 bytes askbot/skins/default/media/images/flags/cz.gif | Bin 362 -> 0 bytes askbot/skins/default/media/images/flags/de.gif | Bin 362 -> 0 bytes askbot/skins/default/media/images/flags/dj.gif | Bin 369 -> 0 bytes askbot/skins/default/media/images/flags/dk.gif | Bin 374 -> 0 bytes askbot/skins/default/media/images/flags/dm.gif | Bin 368 -> 0 bytes askbot/skins/default/media/images/flags/do.gif | Bin 362 -> 0 bytes askbot/skins/default/media/images/flags/dz.gif | Bin 370 -> 0 bytes askbot/skins/default/media/images/flags/ec.gif | Bin 362 -> 0 bytes askbot/skins/default/media/images/flags/ee.gif | Bin 364 -> 0 bytes askbot/skins/default/media/images/flags/eg.gif | Bin 363 -> 0 bytes askbot/skins/default/media/images/flags/eh.gif | Bin 359 -> 0 bytes .../skins/default/media/images/flags/england.gif | Bin 367 -> 0 bytes askbot/skins/default/media/images/flags/er.gif | Bin 361 -> 0 bytes askbot/skins/default/media/images/flags/es.gif | Bin 360 -> 0 bytes askbot/skins/default/media/images/flags/et.gif | Bin 364 -> 0 bytes .../default/media/images/flags/europeanunion.gif | Bin 171 -> 0 bytes askbot/skins/default/media/images/flags/fam.gif | Bin 370 -> 0 bytes askbot/skins/default/media/images/flags/fi.gif | Bin 371 -> 0 bytes askbot/skins/default/media/images/flags/fj.gif | Bin 370 -> 0 bytes askbot/skins/default/media/images/flags/fk.gif | Bin 372 -> 0 bytes askbot/skins/default/media/images/flags/fm.gif | Bin 377 -> 0 bytes askbot/skins/default/media/images/flags/fo.gif | Bin 370 -> 0 bytes askbot/skins/default/media/images/flags/fr.gif | Bin 366 -> 0 bytes askbot/skins/default/media/images/flags/ga.gif | Bin 359 -> 0 bytes askbot/skins/default/media/images/flags/gb.gif | Bin 260 -> 0 bytes askbot/skins/default/media/images/flags/gd.gif | Bin 364 -> 0 bytes askbot/skins/default/media/images/flags/ge.gif | Bin 379 -> 0 bytes askbot/skins/default/media/images/flags/gf.gif | Bin 366 -> 0 bytes askbot/skins/default/media/images/flags/gh.gif | Bin 358 -> 0 bytes askbot/skins/default/media/images/flags/gi.gif | Bin 370 -> 0 bytes askbot/skins/default/media/images/flags/gl.gif | Bin 368 -> 0 bytes askbot/skins/default/media/images/flags/gm.gif | Bin 362 -> 0 bytes askbot/skins/default/media/images/flags/gn.gif | Bin 363 -> 0 bytes askbot/skins/default/media/images/flags/gp.gif | Bin 357 -> 0 bytes askbot/skins/default/media/images/flags/gq.gif | Bin 361 -> 0 bytes askbot/skins/default/media/images/flags/gr.gif | Bin 368 -> 0 bytes askbot/skins/default/media/images/flags/gs.gif | Bin 363 -> 0 bytes askbot/skins/default/media/images/flags/gt.gif | Bin 374 -> 0 bytes askbot/skins/default/media/images/flags/gu.gif | Bin 370 -> 0 bytes askbot/skins/default/media/images/flags/gw.gif | Bin 358 -> 0 bytes askbot/skins/default/media/images/flags/gy.gif | Bin 367 -> 0 bytes askbot/skins/default/media/images/flags/hk.gif | Bin 373 -> 0 bytes askbot/skins/default/media/images/flags/hm.gif | Bin 378 -> 0 bytes askbot/skins/default/media/images/flags/hn.gif | Bin 367 -> 0 bytes askbot/skins/default/media/images/flags/hr.gif | Bin 364 -> 0 bytes askbot/skins/default/media/images/flags/ht.gif | Bin 361 -> 0 bytes askbot/skins/default/media/images/flags/hu.gif | Bin 357 -> 0 bytes askbot/skins/default/media/images/flags/id.gif | Bin 362 -> 0 bytes askbot/skins/default/media/images/flags/ie.gif | Bin 371 -> 0 bytes askbot/skins/default/media/images/flags/il.gif | Bin 366 -> 0 bytes askbot/skins/default/media/images/flags/in.gif | Bin 363 -> 0 bytes askbot/skins/default/media/images/flags/io.gif | Bin 373 -> 0 bytes askbot/skins/default/media/images/flags/iq.gif | Bin 361 -> 0 bytes askbot/skins/default/media/images/flags/ir.gif | Bin 366 -> 0 bytes askbot/skins/default/media/images/flags/is.gif | Bin 373 -> 0 bytes askbot/skins/default/media/images/flags/it.gif | Bin 366 -> 0 bytes askbot/skins/default/media/images/flags/jm.gif | Bin 365 -> 0 bytes askbot/skins/default/media/images/flags/jo.gif | Bin 360 -> 0 bytes askbot/skins/default/media/images/flags/jp.gif | Bin 366 -> 0 bytes askbot/skins/default/media/images/flags/ke.gif | Bin 360 -> 0 bytes askbot/skins/default/media/images/flags/kg.gif | Bin 373 -> 0 bytes askbot/skins/default/media/images/flags/kh.gif | Bin 367 -> 0 bytes askbot/skins/default/media/images/flags/ki.gif | Bin 371 -> 0 bytes askbot/skins/default/media/images/flags/km.gif | Bin 358 -> 0 bytes askbot/skins/default/media/images/flags/kn.gif | Bin 370 -> 0 bytes askbot/skins/default/media/images/flags/kp.gif | Bin 366 -> 0 bytes askbot/skins/default/media/images/flags/kr.gif | Bin 385 -> 0 bytes askbot/skins/default/media/images/flags/kw.gif | Bin 362 -> 0 bytes askbot/skins/default/media/images/flags/ky.gif | Bin 373 -> 0 bytes askbot/skins/default/media/images/flags/kz.gif | Bin 374 -> 0 bytes askbot/skins/default/media/images/flags/la.gif | Bin 366 -> 0 bytes askbot/skins/default/media/images/flags/lb.gif | Bin 366 -> 0 bytes askbot/skins/default/media/images/flags/lc.gif | Bin 259 -> 0 bytes askbot/skins/default/media/images/flags/li.gif | Bin 359 -> 0 bytes askbot/skins/default/media/images/flags/lk.gif | Bin 377 -> 0 bytes askbot/skins/default/media/images/flags/lr.gif | Bin 360 -> 0 bytes askbot/skins/default/media/images/flags/ls.gif | Bin 369 -> 0 bytes askbot/skins/default/media/images/flags/lt.gif | Bin 362 -> 0 bytes askbot/skins/default/media/images/flags/lu.gif | Bin 368 -> 0 bytes askbot/skins/default/media/images/flags/lv.gif | Bin 363 -> 0 bytes askbot/skins/default/media/images/flags/ly.gif | Bin 362 -> 0 bytes askbot/skins/default/media/images/flags/ma.gif | Bin 367 -> 0 bytes askbot/skins/default/media/images/flags/mc.gif | Bin 359 -> 0 bytes askbot/skins/default/media/images/flags/md.gif | Bin 367 -> 0 bytes askbot/skins/default/media/images/flags/me.gif | Bin 238 -> 0 bytes askbot/skins/default/media/images/flags/mg.gif | Bin 372 -> 0 bytes askbot/skins/default/media/images/flags/mh.gif | Bin 370 -> 0 bytes askbot/skins/default/media/images/flags/mk.gif | Bin 382 -> 0 bytes askbot/skins/default/media/images/flags/ml.gif | Bin 363 -> 0 bytes askbot/skins/default/media/images/flags/mm.gif | Bin 365 -> 0 bytes askbot/skins/default/media/images/flags/mn.gif | Bin 368 -> 0 bytes askbot/skins/default/media/images/flags/mo.gif | Bin 378 -> 0 bytes askbot/skins/default/media/images/flags/mp.gif | Bin 368 -> 0 bytes askbot/skins/default/media/images/flags/mq.gif | Bin 379 -> 0 bytes askbot/skins/default/media/images/flags/mr.gif | Bin 377 -> 0 bytes askbot/skins/default/media/images/flags/ms.gif | Bin 371 -> 0 bytes askbot/skins/default/media/images/flags/mt.gif | Bin 369 -> 0 bytes askbot/skins/default/media/images/flags/mu.gif | Bin 358 -> 0 bytes askbot/skins/default/media/images/flags/mv.gif | Bin 372 -> 0 bytes askbot/skins/default/media/images/flags/mw.gif | Bin 364 -> 0 bytes askbot/skins/default/media/images/flags/mx.gif | Bin 366 -> 0 bytes askbot/skins/default/media/images/flags/my.gif | Bin 375 -> 0 bytes askbot/skins/default/media/images/flags/mz.gif | Bin 366 -> 0 bytes askbot/skins/default/media/images/flags/na.gif | Bin 371 -> 0 bytes askbot/skins/default/media/images/flags/nc.gif | Bin 364 -> 0 bytes askbot/skins/default/media/images/flags/ne.gif | Bin 366 -> 0 bytes askbot/skins/default/media/images/flags/nf.gif | Bin 375 -> 0 bytes askbot/skins/default/media/images/flags/ng.gif | Bin 371 -> 0 bytes askbot/skins/default/media/images/flags/ni.gif | Bin 366 -> 0 bytes askbot/skins/default/media/images/flags/nl.gif | Bin 360 -> 0 bytes askbot/skins/default/media/images/flags/no.gif | Bin 376 -> 0 bytes askbot/skins/default/media/images/flags/np.gif | Bin 302 -> 0 bytes askbot/skins/default/media/images/flags/nr.gif | Bin 364 -> 0 bytes askbot/skins/default/media/images/flags/nu.gif | Bin 369 -> 0 bytes askbot/skins/default/media/images/flags/nz.gif | Bin 369 -> 0 bytes askbot/skins/default/media/images/flags/om.gif | Bin 364 -> 0 bytes askbot/skins/default/media/images/flags/pa.gif | Bin 367 -> 0 bytes askbot/skins/default/media/images/flags/pe.gif | Bin 361 -> 0 bytes askbot/skins/default/media/images/flags/pf.gif | Bin 366 -> 0 bytes askbot/skins/default/media/images/flags/pg.gif | Bin 360 -> 0 bytes askbot/skins/default/media/images/flags/ph.gif | Bin 361 -> 0 bytes askbot/skins/default/media/images/flags/pk.gif | Bin 377 -> 0 bytes askbot/skins/default/media/images/flags/pl.gif | Bin 360 -> 0 bytes askbot/skins/default/media/images/flags/pm.gif | Bin 374 -> 0 bytes askbot/skins/default/media/images/flags/pn.gif | Bin 367 -> 0 bytes askbot/skins/default/media/images/flags/pr.gif | Bin 369 -> 0 bytes askbot/skins/default/media/images/flags/ps.gif | Bin 358 -> 0 bytes askbot/skins/default/media/images/flags/pt.gif | Bin 369 -> 0 bytes askbot/skins/default/media/images/flags/pw.gif | Bin 374 -> 0 bytes askbot/skins/default/media/images/flags/py.gif | Bin 363 -> 0 bytes askbot/skins/default/media/images/flags/qa.gif | Bin 364 -> 0 bytes askbot/skins/default/media/images/flags/re.gif | Bin 366 -> 0 bytes askbot/skins/default/media/images/flags/ro.gif | Bin 363 -> 0 bytes askbot/skins/default/media/images/flags/rs.gif | Bin 238 -> 0 bytes askbot/skins/default/media/images/flags/ru.gif | Bin 361 -> 0 bytes askbot/skins/default/media/images/flags/rw.gif | Bin 361 -> 0 bytes askbot/skins/default/media/images/flags/sa.gif | Bin 370 -> 0 bytes askbot/skins/default/media/images/flags/sb.gif | Bin 366 -> 0 bytes askbot/skins/default/media/images/flags/sc.gif | Bin 357 -> 0 bytes .../skins/default/media/images/flags/scotland.gif | Bin 378 -> 0 bytes askbot/skins/default/media/images/flags/sd.gif | Bin 355 -> 0 bytes askbot/skins/default/media/images/flags/se.gif | Bin 367 -> 0 bytes askbot/skins/default/media/images/flags/sg.gif | Bin 364 -> 0 bytes askbot/skins/default/media/images/flags/sh.gif | Bin 371 -> 0 bytes askbot/skins/default/media/images/flags/si.gif | Bin 362 -> 0 bytes askbot/skins/default/media/images/flags/sj.gif | Bin 376 -> 0 bytes askbot/skins/default/media/images/flags/sk.gif | Bin 361 -> 0 bytes askbot/skins/default/media/images/flags/sl.gif | Bin 363 -> 0 bytes askbot/skins/default/media/images/flags/sm.gif | Bin 367 -> 0 bytes askbot/skins/default/media/images/flags/sn.gif | Bin 364 -> 0 bytes askbot/skins/default/media/images/flags/so.gif | Bin 376 -> 0 bytes askbot/skins/default/media/images/flags/sr.gif | Bin 361 -> 0 bytes askbot/skins/default/media/images/flags/st.gif | Bin 367 -> 0 bytes askbot/skins/default/media/images/flags/sv.gif | Bin 363 -> 0 bytes askbot/skins/default/media/images/flags/sy.gif | Bin 361 -> 0 bytes askbot/skins/default/media/images/flags/sz.gif | Bin 363 -> 0 bytes askbot/skins/default/media/images/flags/tc.gif | Bin 366 -> 0 bytes askbot/skins/default/media/images/flags/td.gif | Bin 368 -> 0 bytes askbot/skins/default/media/images/flags/tf.gif | Bin 365 -> 0 bytes askbot/skins/default/media/images/flags/tg.gif | Bin 366 -> 0 bytes askbot/skins/default/media/images/flags/th.gif | Bin 360 -> 0 bytes askbot/skins/default/media/images/flags/tj.gif | Bin 361 -> 0 bytes askbot/skins/default/media/images/flags/tk.gif | Bin 372 -> 0 bytes askbot/skins/default/media/images/flags/tl.gif | Bin 360 -> 0 bytes askbot/skins/default/media/images/flags/tm.gif | Bin 367 -> 0 bytes askbot/skins/default/media/images/flags/tn.gif | Bin 375 -> 0 bytes askbot/skins/default/media/images/flags/to.gif | Bin 367 -> 0 bytes askbot/skins/default/media/images/flags/tr.gif | Bin 371 -> 0 bytes askbot/skins/default/media/images/flags/tt.gif | Bin 377 -> 0 bytes askbot/skins/default/media/images/flags/tv.gif | Bin 361 -> 0 bytes askbot/skins/default/media/images/flags/tw.gif | Bin 367 -> 0 bytes askbot/skins/default/media/images/flags/tz.gif | Bin 366 -> 0 bytes askbot/skins/default/media/images/flags/ua.gif | Bin 360 -> 0 bytes askbot/skins/default/media/images/flags/ug.gif | Bin 359 -> 0 bytes askbot/skins/default/media/images/flags/um.gif | Bin 371 -> 0 bytes askbot/skins/default/media/images/flags/us.gif | Bin 367 -> 0 bytes askbot/skins/default/media/images/flags/uy.gif | Bin 373 -> 0 bytes askbot/skins/default/media/images/flags/uz.gif | Bin 364 -> 0 bytes askbot/skins/default/media/images/flags/va.gif | Bin 369 -> 0 bytes askbot/skins/default/media/images/flags/vc.gif | Bin 370 -> 0 bytes askbot/skins/default/media/images/flags/ve.gif | Bin 364 -> 0 bytes askbot/skins/default/media/images/flags/vg.gif | Bin 368 -> 0 bytes askbot/skins/default/media/images/flags/vi.gif | Bin 376 -> 0 bytes askbot/skins/default/media/images/flags/vn.gif | Bin 370 -> 0 bytes askbot/skins/default/media/images/flags/vu.gif | Bin 365 -> 0 bytes askbot/skins/default/media/images/flags/wales.gif | Bin 372 -> 0 bytes askbot/skins/default/media/images/flags/wf.gif | Bin 377 -> 0 bytes askbot/skins/default/media/images/flags/ws.gif | Bin 365 -> 0 bytes askbot/skins/default/media/images/flags/ye.gif | Bin 356 -> 0 bytes askbot/skins/default/media/images/flags/yt.gif | Bin 382 -> 0 bytes askbot/skins/default/media/images/flags/za.gif | Bin 363 -> 0 bytes askbot/skins/default/media/images/flags/zm.gif | Bin 358 -> 0 bytes askbot/skins/default/media/images/flags/zw.gif | Bin 365 -> 0 bytes askbot/skins/default/media/images/go-up-grey.png | Bin 563 -> 0 bytes askbot/skins/default/media/images/go-up-orange.png | Bin 586 -> 0 bytes .../default/media/images/gray-up-arrow-h18px.png | Bin 383 -> 0 bytes askbot/skins/default/media/images/grippie.png | Bin 162 -> 0 bytes askbot/skins/default/media/images/indicator.gif | Bin 2545 -> 0 bytes askbot/skins/default/media/images/link.png | Bin 601 -> 0 bytes askbot/skins/default/media/images/logo.gif | Bin 2249 -> 0 bytes askbot/skins/default/media/images/logo.png | Bin 5841 -> 0 bytes askbot/skins/default/media/images/logo1.png | Bin 2752 -> 0 bytes askbot/skins/default/media/images/logo2.png | Bin 2124 -> 0 bytes .../default/media/images/mail-envelope-empty.png | Bin 547 -> 0 bytes .../default/media/images/mail-envelope-full.png | Bin 482 -> 0 bytes askbot/skins/default/media/images/medala.gif | Bin 801 -> 0 bytes askbot/skins/default/media/images/medala_on.gif | Bin 957 -> 0 bytes .../skins/default/media/images/medium-button.png | Bin 217 -> 0 bytes askbot/skins/default/media/images/new.gif | Bin 635 -> 0 bytes askbot/skins/default/media/images/nophoto.png | Bin 696 -> 0 bytes askbot/skins/default/media/images/notification.png | Bin 217 -> 0 bytes askbot/skins/default/media/images/openid.gif | Bin 910 -> 0 bytes askbot/skins/default/media/images/openid/aol.gif | Bin 2205 -> 0 bytes .../skins/default/media/images/openid/blogger.ico | Bin 3638 -> 0 bytes .../skins/default/media/images/openid/claimid.ico | Bin 3638 -> 0 bytes .../skins/default/media/images/openid/facebook.gif | Bin 2075 -> 0 bytes .../skins/default/media/images/openid/flickr.ico | Bin 1150 -> 0 bytes .../skins/default/media/images/openid/google.gif | Bin 1596 -> 0 bytes .../default/media/images/openid/livejournal.ico | Bin 5222 -> 0 bytes .../skins/default/media/images/openid/myopenid.ico | Bin 2862 -> 0 bytes .../media/images/openid/openid-inputicon.gif | Bin 237 -> 0 bytes .../skins/default/media/images/openid/openid.gif | Bin 740 -> 0 bytes .../default/media/images/openid/technorati.ico | Bin 2294 -> 0 bytes .../skins/default/media/images/openid/twitter.png | Bin 3130 -> 0 bytes .../skins/default/media/images/openid/verisign.ico | Bin 4710 -> 0 bytes .../skins/default/media/images/openid/vidoop.ico | Bin 1406 -> 0 bytes .../default/media/images/openid/wordpress.ico | Bin 1150 -> 0 bytes askbot/skins/default/media/images/openid/yahoo.gif | Bin 1510 -> 0 bytes askbot/skins/default/media/images/print.png | Bin 1391 -> 0 bytes askbot/skins/default/media/images/publish.png | Bin 282 -> 0 bytes askbot/skins/default/media/images/pw-login.gif | Bin 1818 -> 0 bytes askbot/skins/default/media/images/quest-bg.gif | Bin 294 -> 0 bytes askbot/skins/default/media/images/retag.png | Bin 474 -> 0 bytes askbot/skins/default/media/images/scopearrow.png | Bin 538 -> 0 bytes .../default/media/images/small-button-blue.png | Bin 202 -> 0 bytes .../default/media/images/small-button-cancel.png | Bin 211 -> 0 bytes askbot/skins/default/media/images/socialsprite.png | Bin 3030 -> 0 bytes askbot/skins/default/media/images/sprite.png | Bin 5325 -> 0 bytes askbot/skins/default/media/images/sprites.png | Bin 12478 -> 0 bytes .../media/images/sprites_source/graphics.svg | 1291 -- .../default/media/images/sprites_source/other.svg | 732 - .../media/images/sprites_source/sprites.svg | 519 - .../default/media/images/summary-background.png | Bin 233 -> 0 bytes askbot/skins/default/media/images/tag-left.png | Bin 488 -> 0 bytes askbot/skins/default/media/images/tag-right.png | Bin 365 -> 0 bytes askbot/skins/default/media/images/tips.png | Bin 716 -> 0 bytes askbot/skins/default/media/images/unpublish.png | Bin 294 -> 0 bytes .../skins/default/media/images/view-background.png | Bin 265 -> 0 bytes .../default/media/images/vote-accepted-on.png | Bin 1124 -> 0 bytes .../skins/default/media/images/vote-accepted.png | Bin 1058 -> 0 bytes .../default/media/images/vote-arrow-down-new.png | Bin 1458 -> 0 bytes .../media/images/vote-arrow-down-on-new.png | Bin 980 -> 0 bytes .../default/media/images/vote-arrow-down-on.png | Bin 905 -> 0 bytes .../skins/default/media/images/vote-arrow-down.png | Bin 876 -> 0 bytes .../default/media/images/vote-arrow-up-new.png | Bin 979 -> 0 bytes .../default/media/images/vote-arrow-up-on-new.png | Bin 1029 -> 0 bytes .../default/media/images/vote-arrow-up-on.png | Bin 906 -> 0 bytes .../skins/default/media/images/vote-arrow-up.png | Bin 843 -> 0 bytes .../skins/default/media/images/vote-background.png | Bin 225 -> 0 bytes .../default/media/images/vote-favorite-off.png | Bin 930 -> 0 bytes .../default/media/images/vote-favorite-on.png | Bin 1023 -> 0 bytes askbot/skins/default/media/images/wiki.png | Bin 5178 -> 0 bytes .../default/media/jquery-openid/images/aol.gif | Bin 1872 -> 0 bytes .../media/jquery-openid/images/blogger-1.png | Bin 432 -> 0 bytes .../default/media/jquery-openid/images/blogger.ico | Bin 3638 -> 0 bytes .../media/jquery-openid/images/claimid-0.png | Bin 629 -> 0 bytes .../default/media/jquery-openid/images/claimid.ico | Bin 3638 -> 0 bytes .../media/jquery-openid/images/facebook.gif | Bin 1737 -> 0 bytes .../default/media/jquery-openid/images/flickr.ico | Bin 1150 -> 0 bytes .../default/media/jquery-openid/images/flickr.png | Bin 426 -> 0 bytes .../default/media/jquery-openid/images/google.gif | Bin 1528 -> 0 bytes .../media/jquery-openid/images/identica.png | Bin 6601 -> 0 bytes .../media/jquery-openid/images/linkedin.gif | Bin 1530 -> 0 bytes .../media/jquery-openid/images/livejournal-1.png | Bin 713 -> 0 bytes .../media/jquery-openid/images/livejournal.ico | Bin 5222 -> 0 bytes .../media/jquery-openid/images/myopenid-2.png | Bin 511 -> 0 bytes .../media/jquery-openid/images/myopenid.ico | Bin 2862 -> 0 bytes .../jquery-openid/images/openid-inputicon.gif | Bin 237 -> 0 bytes .../default/media/jquery-openid/images/openid.gif | Bin 1473 -> 0 bytes .../media/jquery-openid/images/openidico.png | Bin 654 -> 0 bytes .../media/jquery-openid/images/openidico16.png | Bin 554 -> 0 bytes .../media/jquery-openid/images/technorati-1.png | Bin 606 -> 0 bytes .../media/jquery-openid/images/technorati.ico | Bin 2294 -> 0 bytes .../default/media/jquery-openid/images/twitter.gif | Bin 1913 -> 0 bytes .../media/jquery-openid/images/verisign-2.png | Bin 859 -> 0 bytes .../media/jquery-openid/images/verisign.ico | Bin 4710 -> 0 bytes .../default/media/jquery-openid/images/vidoop.ico | Bin 1406 -> 0 bytes .../default/media/jquery-openid/images/vidoop.png | Bin 499 -> 0 bytes .../media/jquery-openid/images/wordpress.ico | Bin 1150 -> 0 bytes .../media/jquery-openid/images/wordpress.png | Bin 566 -> 0 bytes .../default/media/jquery-openid/images/yahoo.gif | Bin 1607 -> 0 bytes .../default/media/jquery-openid/jquery.openid.js | 440 - .../skins/default/media/jquery-openid/openid.css | 39 - askbot/skins/default/media/js/autocompleter.js | 794 - askbot/skins/default/media/js/compress.bat | 5 - askbot/skins/default/media/js/editor.js | 81 - askbot/skins/default/media/js/excanvas.min.js | 1 - askbot/skins/default/media/js/flot-build.bat | 3 - askbot/skins/default/media/js/group_messaging.js | 186 - askbot/skins/default/media/js/jquery-1.4.3.js | 6883 ------- askbot/skins/default/media/js/jquery-1.7.2.min.js | 4 - .../default/media/js/jquery-fieldselection.js | 83 - .../default/media/js/jquery-fieldselection.min.js | 1 - .../default/media/js/jquery.ajaxfileupload.js | 186 - .../default/media/js/jquery.animate-colors.js | 105 - .../media/js/jquery.fancybox-1.3.4/ajax.txt | 6 - .../js/jquery.fancybox-1.3.4/example/10_b.jpg | Bin 39922 -> 0 bytes .../js/jquery.fancybox-1.3.4/example/10_s.jpg | Bin 2725 -> 0 bytes .../js/jquery.fancybox-1.3.4/example/11_b.jpg | Bin 39422 -> 0 bytes .../js/jquery.fancybox-1.3.4/example/11_s.jpg | Bin 2548 -> 0 bytes .../js/jquery.fancybox-1.3.4/example/12_b.jpg | Bin 39950 -> 0 bytes .../js/jquery.fancybox-1.3.4/example/12_s.jpg | Bin 3109 -> 0 bytes .../media/js/jquery.fancybox-1.3.4/example/1_b.jpg | Bin 30700 -> 0 bytes .../media/js/jquery.fancybox-1.3.4/example/1_s.jpg | Bin 4258 -> 0 bytes .../media/js/jquery.fancybox-1.3.4/example/2_b.jpg | Bin 44175 -> 0 bytes .../media/js/jquery.fancybox-1.3.4/example/2_s.jpg | Bin 2929 -> 0 bytes .../media/js/jquery.fancybox-1.3.4/example/3_b.jpg | Bin 36756 -> 0 bytes .../media/js/jquery.fancybox-1.3.4/example/3_s.jpg | Bin 3720 -> 0 bytes .../media/js/jquery.fancybox-1.3.4/example/4_b.jpg | Bin 44606 -> 0 bytes .../media/js/jquery.fancybox-1.3.4/example/4_s.jpg | Bin 3840 -> 0 bytes .../media/js/jquery.fancybox-1.3.4/example/5_b.jpg | Bin 44793 -> 0 bytes .../media/js/jquery.fancybox-1.3.4/example/5_s.jpg | Bin 4208 -> 0 bytes .../media/js/jquery.fancybox-1.3.4/example/6_b.jpg | Bin 52956 -> 0 bytes .../media/js/jquery.fancybox-1.3.4/example/6_s.jpg | Bin 3552 -> 0 bytes .../media/js/jquery.fancybox-1.3.4/example/7_b.jpg | Bin 47087 -> 0 bytes .../media/js/jquery.fancybox-1.3.4/example/7_s.jpg | Bin 3644 -> 0 bytes .../media/js/jquery.fancybox-1.3.4/example/8_b.jpg | Bin 40470 -> 0 bytes .../media/js/jquery.fancybox-1.3.4/example/8_s.jpg | Bin 3020 -> 0 bytes .../media/js/jquery.fancybox-1.3.4/example/9_b.jpg | Bin 51690 -> 0 bytes .../media/js/jquery.fancybox-1.3.4/example/9_s.jpg | Bin 3226 -> 0 bytes .../js/jquery.fancybox-1.3.4/fancybox/blank.gif | Bin 43 -> 0 bytes .../jquery.fancybox-1.3.4/fancybox/fancy_close.png | Bin 1517 -> 0 bytes .../fancybox/fancy_loading.png | Bin 10195 -> 0 bytes .../fancybox/fancy_nav_left.png | Bin 1446 -> 0 bytes .../fancybox/fancy_nav_right.png | Bin 1454 -> 0 bytes .../fancybox/fancy_shadow_e.png | Bin 107 -> 0 bytes .../fancybox/fancy_shadow_n.png | Bin 106 -> 0 bytes .../fancybox/fancy_shadow_ne.png | Bin 347 -> 0 bytes .../fancybox/fancy_shadow_nw.png | Bin 324 -> 0 bytes .../fancybox/fancy_shadow_s.png | Bin 111 -> 0 bytes .../fancybox/fancy_shadow_se.png | Bin 352 -> 0 bytes .../fancybox/fancy_shadow_sw.png | Bin 340 -> 0 bytes .../fancybox/fancy_shadow_w.png | Bin 103 -> 0 bytes .../fancybox/fancy_title_left.png | Bin 503 -> 0 bytes .../fancybox/fancy_title_main.png | Bin 96 -> 0 bytes .../fancybox/fancy_title_over.png | Bin 70 -> 0 bytes .../fancybox/fancy_title_right.png | Bin 506 -> 0 bytes .../jquery.fancybox-1.3.4/fancybox/fancybox-x.png | Bin 203 -> 0 bytes .../jquery.fancybox-1.3.4/fancybox/fancybox-y.png | Bin 176 -> 0 bytes .../js/jquery.fancybox-1.3.4/fancybox/fancybox.png | Bin 15287 -> 0 bytes .../fancybox/jquery.easing-1.3.pack.js | 72 - .../fancybox/jquery.fancybox-1.3.4.css | 359 - .../fancybox/jquery.fancybox-1.3.4.js | 1156 -- .../fancybox/jquery.fancybox-1.3.4.pack.js | 46 - .../fancybox/jquery.mousewheel-3.0.4.pack.js | 14 - .../media/js/jquery.fancybox-1.3.4/index.html | 165 - .../js/jquery.fancybox-1.3.4/jquery-1.4.3.min.js | 166 - .../media/js/jquery.fancybox-1.3.4/style.css | 65 - askbot/skins/default/media/js/jquery.flot.js | 2119 --- askbot/skins/default/media/js/jquery.flot.min.js | 1 - askbot/skins/default/media/js/jquery.form.js | 654 - askbot/skins/default/media/js/jquery.history.js | 1 - askbot/skins/default/media/js/jquery.i18n.js | 133 - askbot/skins/default/media/js/jquery.openid.js | 176 - askbot/skins/default/media/js/jquery.validate.js | 1146 -- .../skins/default/media/js/jquery.validate.min.js | 16 - .../skins/default/media/js/jquery.validate.pack.js | 15 - askbot/skins/default/media/js/less.min.js | 16 - askbot/skins/default/media/js/live_search.js | 405 - .../default/media/js/live_search_new_thread.js | 93 - askbot/skins/default/media/js/modernizr.custom.js | 4 - askbot/skins/default/media/js/output-words.html | 49 - askbot/skins/default/media/js/output-words.js | 97 - askbot/skins/default/media/js/post.js | 4081 ---- askbot/skins/default/media/js/se_hilite.js | 1 - askbot/skins/default/media/js/se_hilite_src.js | 273 - askbot/skins/default/media/js/tag_moderation.js | 217 - askbot/skins/default/media/js/tag_selector.js | 402 - askbot/skins/default/media/js/tinymce/langs/en.js | 1 - askbot/skins/default/media/js/tinymce/license.txt | 504 - .../media/js/tinymce/plugins/advhr/css/advhr.css | 5 - .../js/tinymce/plugins/advhr/editor_plugin.js | 1 - .../js/tinymce/plugins/advhr/editor_plugin_src.js | 57 - .../media/js/tinymce/plugins/advhr/js/rule.js | 43 - .../media/js/tinymce/plugins/advhr/langs/en_dlg.js | 1 - .../media/js/tinymce/plugins/advhr/rule.htm | 58 - .../js/tinymce/plugins/advimage/css/advimage.css | 13 - .../js/tinymce/plugins/advimage/editor_plugin.js | 1 - .../tinymce/plugins/advimage/editor_plugin_src.js | 50 - .../media/js/tinymce/plugins/advimage/image.htm | 235 - .../js/tinymce/plugins/advimage/img/sample.gif | Bin 1624 -> 0 bytes .../media/js/tinymce/plugins/advimage/js/image.js | 462 - .../js/tinymce/plugins/advimage/langs/en_dlg.js | 1 - .../js/tinymce/plugins/advlink/css/advlink.css | 8 - .../js/tinymce/plugins/advlink/editor_plugin.js | 1 - .../tinymce/plugins/advlink/editor_plugin_src.js | 61 - .../media/js/tinymce/plugins/advlink/js/advlink.js | 539 - .../js/tinymce/plugins/advlink/langs/en_dlg.js | 1 - .../media/js/tinymce/plugins/advlink/link.htm | 338 - .../js/tinymce/plugins/advlist/editor_plugin.js | 1 - .../tinymce/plugins/advlist/editor_plugin_src.js | 176 - .../plugins/askbot_attachment/editor_plugin.js | 111 - .../tinymce/plugins/askbot_attachment/langs/en.js | 3 - .../plugins/askbot_attachment/langs/en_dlg.js | 3 - .../plugins/askbot_imageuploader/editor_plugin.js | 111 - .../plugins/askbot_imageuploader/langs/en.js | 3 - .../plugins/askbot_imageuploader/langs/en_dlg.js | 3 - .../js/tinymce/plugins/autolink/editor_plugin.js | 1 - .../tinymce/plugins/autolink/editor_plugin_src.js | 181 - .../js/tinymce/plugins/autoresize/editor_plugin.js | 1 - .../plugins/autoresize/editor_plugin_src.js | 119 - .../js/tinymce/plugins/autosave/editor_plugin.js | 1 - .../tinymce/plugins/autosave/editor_plugin_src.js | 433 - .../media/js/tinymce/plugins/autosave/langs/en.js | 4 - .../js/tinymce/plugins/bbcode/editor_plugin.js | 1 - .../js/tinymce/plugins/bbcode/editor_plugin_src.js | 120 - .../tinymce/plugins/contextmenu/editor_plugin.js | 1 - .../plugins/contextmenu/editor_plugin_src.js | 161 - .../plugins/directionality/editor_plugin.js | 1 - .../plugins/directionality/editor_plugin_src.js | 82 - .../js/tinymce/plugins/emotions/editor_plugin.js | 1 - .../tinymce/plugins/emotions/editor_plugin_src.js | 43 - .../media/js/tinymce/plugins/emotions/emotions.htm | 42 - .../tinymce/plugins/emotions/img/smiley-cool.gif | Bin 354 -> 0 bytes .../js/tinymce/plugins/emotions/img/smiley-cry.gif | Bin 329 -> 0 bytes .../plugins/emotions/img/smiley-embarassed.gif | Bin 331 -> 0 bytes .../plugins/emotions/img/smiley-foot-in-mouth.gif | Bin 342 -> 0 bytes .../tinymce/plugins/emotions/img/smiley-frown.gif | Bin 340 -> 0 bytes .../plugins/emotions/img/smiley-innocent.gif | Bin 336 -> 0 bytes .../tinymce/plugins/emotions/img/smiley-kiss.gif | Bin 338 -> 0 bytes .../plugins/emotions/img/smiley-laughing.gif | Bin 343 -> 0 bytes .../plugins/emotions/img/smiley-money-mouth.gif | Bin 321 -> 0 bytes .../tinymce/plugins/emotions/img/smiley-sealed.gif | Bin 323 -> 0 bytes .../tinymce/plugins/emotions/img/smiley-smile.gif | Bin 344 -> 0 bytes .../plugins/emotions/img/smiley-surprised.gif | Bin 338 -> 0 bytes .../plugins/emotions/img/smiley-tongue-out.gif | Bin 328 -> 0 bytes .../plugins/emotions/img/smiley-undecided.gif | Bin 337 -> 0 bytes .../tinymce/plugins/emotions/img/smiley-wink.gif | Bin 350 -> 0 bytes .../tinymce/plugins/emotions/img/smiley-yell.gif | Bin 336 -> 0 bytes .../js/tinymce/plugins/emotions/js/emotions.js | 43 - .../js/tinymce/plugins/emotions/langs/en_dlg.js | 1 - .../media/js/tinymce/plugins/example/dialog.htm | 22 - .../js/tinymce/plugins/example/editor_plugin.js | 1 - .../tinymce/plugins/example/editor_plugin_src.js | 84 - .../js/tinymce/plugins/example/img/example.gif | Bin 87 -> 0 bytes .../media/js/tinymce/plugins/example/js/dialog.js | 19 - .../media/js/tinymce/plugins/example/langs/en.js | 3 - .../js/tinymce/plugins/example/langs/en_dlg.js | 3 - .../plugins/example_dependency/editor_plugin.js | 1 - .../example_dependency/editor_plugin_src.js | 50 - .../js/tinymce/plugins/fullpage/css/fullpage.css | 143 - .../js/tinymce/plugins/fullpage/editor_plugin.js | 1 - .../tinymce/plugins/fullpage/editor_plugin_src.js | 405 - .../media/js/tinymce/plugins/fullpage/fullpage.htm | 259 - .../js/tinymce/plugins/fullpage/js/fullpage.js | 232 - .../js/tinymce/plugins/fullpage/langs/en_dlg.js | 1 - .../js/tinymce/plugins/fullscreen/editor_plugin.js | 1 - .../plugins/fullscreen/editor_plugin_src.js | 159 - .../js/tinymce/plugins/fullscreen/fullscreen.htm | 110 - .../js/tinymce/plugins/iespell/editor_plugin.js | 1 - .../tinymce/plugins/iespell/editor_plugin_src.js | 54 - .../tinymce/plugins/inlinepopups/editor_plugin.js | 1 - .../plugins/inlinepopups/editor_plugin_src.js | 699 - .../inlinepopups/skins/clearlooks2/img/alert.gif | Bin 810 -> 0 bytes .../inlinepopups/skins/clearlooks2/img/button.gif | Bin 272 -> 0 bytes .../inlinepopups/skins/clearlooks2/img/buttons.gif | Bin 1195 -> 0 bytes .../inlinepopups/skins/clearlooks2/img/confirm.gif | Bin 907 -> 0 bytes .../inlinepopups/skins/clearlooks2/img/corners.gif | Bin 909 -> 0 bytes .../skins/clearlooks2/img/horizontal.gif | Bin 769 -> 0 bytes .../skins/clearlooks2/img/vertical.gif | Bin 84 -> 0 bytes .../inlinepopups/skins/clearlooks2/window.css | 90 - .../js/tinymce/plugins/inlinepopups/template.htm | 387 - .../plugins/insertdatetime/editor_plugin.js | 1 - .../plugins/insertdatetime/editor_plugin_src.js | 83 - .../js/tinymce/plugins/layer/editor_plugin.js | 1 - .../js/tinymce/plugins/layer/editor_plugin_src.js | 262 - .../tinymce/plugins/legacyoutput/editor_plugin.js | 1 - .../plugins/legacyoutput/editor_plugin_src.js | 139 - .../js/tinymce/plugins/lists/editor_plugin.js | 1 - .../js/tinymce/plugins/lists/editor_plugin_src.js | 952 - .../media/js/tinymce/plugins/media/css/media.css | 17 - .../js/tinymce/plugins/media/editor_plugin.js | 1 - .../js/tinymce/plugins/media/editor_plugin_src.js | 890 - .../media/js/tinymce/plugins/media/js/embed.js | 73 - .../media/js/tinymce/plugins/media/js/media.js | 470 - .../media/js/tinymce/plugins/media/langs/en_dlg.js | 1 - .../media/js/tinymce/plugins/media/media.htm | 922 - .../media/js/tinymce/plugins/media/moxieplayer.swf | Bin 19980 -> 0 bytes .../tinymce/plugins/nonbreaking/editor_plugin.js | 1 - .../plugins/nonbreaking/editor_plugin_src.js | 54 - .../tinymce/plugins/noneditable/editor_plugin.js | 1 - .../plugins/noneditable/editor_plugin_src.js | 540 - .../js/tinymce/plugins/pagebreak/editor_plugin.js | 1 - .../tinymce/plugins/pagebreak/editor_plugin_src.js | 74 - .../js/tinymce/plugins/paste/editor_plugin.js | 1 - .../js/tinymce/plugins/paste/editor_plugin_src.js | 871 - .../media/js/tinymce/plugins/paste/js/pastetext.js | 36 - .../media/js/tinymce/plugins/paste/js/pasteword.js | 51 - .../media/js/tinymce/plugins/paste/langs/en_dlg.js | 1 - .../media/js/tinymce/plugins/paste/pastetext.htm | 27 - .../media/js/tinymce/plugins/paste/pasteword.htm | 21 - .../js/tinymce/plugins/preview/editor_plugin.js | 1 - .../tinymce/plugins/preview/editor_plugin_src.js | 53 - .../media/js/tinymce/plugins/preview/example.html | 28 - .../js/tinymce/plugins/preview/jscripts/embed.js | 73 - .../media/js/tinymce/plugins/preview/preview.html | 17 - .../js/tinymce/plugins/print/editor_plugin.js | 1 - .../js/tinymce/plugins/print/editor_plugin_src.js | 34 - .../media/js/tinymce/plugins/save/editor_plugin.js | 1 - .../js/tinymce/plugins/save/editor_plugin_src.js | 101 - .../plugins/searchreplace/css/searchreplace.css | 6 - .../tinymce/plugins/searchreplace/editor_plugin.js | 1 - .../plugins/searchreplace/editor_plugin_src.js | 61 - .../plugins/searchreplace/js/searchreplace.js | 142 - .../tinymce/plugins/searchreplace/langs/en_dlg.js | 1 - .../plugins/searchreplace/searchreplace.htm | 100 - .../tinymce/plugins/spellchecker/css/content.css | 1 - .../tinymce/plugins/spellchecker/editor_plugin.js | 1 - .../plugins/spellchecker/editor_plugin_src.js | 436 - .../js/tinymce/plugins/spellchecker/img/wline.gif | Bin 46 -> 0 bytes .../media/js/tinymce/plugins/style/css/props.css | 14 - .../js/tinymce/plugins/style/editor_plugin.js | 1 - .../js/tinymce/plugins/style/editor_plugin_src.js | 71 - .../media/js/tinymce/plugins/style/js/props.js | 709 - .../media/js/tinymce/plugins/style/langs/en_dlg.js | 1 - .../media/js/tinymce/plugins/style/props.htm | 845 - .../media/js/tinymce/plugins/style/readme.txt | 19 - .../js/tinymce/plugins/tabfocus/editor_plugin.js | 1 - .../tinymce/plugins/tabfocus/editor_plugin_src.js | 122 - .../media/js/tinymce/plugins/table/cell.htm | 180 - .../media/js/tinymce/plugins/table/css/cell.css | 17 - .../media/js/tinymce/plugins/table/css/row.css | 25 - .../media/js/tinymce/plugins/table/css/table.css | 13 - .../js/tinymce/plugins/table/editor_plugin.js | 1 - .../js/tinymce/plugins/table/editor_plugin_src.js | 1449 -- .../media/js/tinymce/plugins/table/js/cell.js | 319 - .../js/tinymce/plugins/table/js/merge_cells.js | 27 - .../media/js/tinymce/plugins/table/js/row.js | 237 - .../media/js/tinymce/plugins/table/js/table.js | 501 - .../media/js/tinymce/plugins/table/langs/en_dlg.js | 1 - .../media/js/tinymce/plugins/table/merge_cells.htm | 32 - .../default/media/js/tinymce/plugins/table/row.htm | 158 - .../media/js/tinymce/plugins/table/table.htm | 188 - .../media/js/tinymce/plugins/template/blank.htm | 12 - .../js/tinymce/plugins/template/css/template.css | 23 - .../js/tinymce/plugins/template/editor_plugin.js | 1 - .../tinymce/plugins/template/editor_plugin_src.js | 159 - .../js/tinymce/plugins/template/js/template.js | 106 - .../js/tinymce/plugins/template/langs/en_dlg.js | 1 - .../media/js/tinymce/plugins/template/template.htm | 31 - .../plugins/visualblocks/css/visualblocks.css | 21 - .../tinymce/plugins/visualblocks/editor_plugin.js | 1 - .../plugins/visualblocks/editor_plugin_src.js | 63 - .../tinymce/plugins/visualchars/editor_plugin.js | 1 - .../plugins/visualchars/editor_plugin_src.js | 83 - .../js/tinymce/plugins/wordcount/editor_plugin.js | 1 - .../tinymce/plugins/wordcount/editor_plugin_src.js | 122 - .../media/js/tinymce/plugins/xhtmlxtras/abbr.htm | 142 - .../js/tinymce/plugins/xhtmlxtras/acronym.htm | 142 - .../js/tinymce/plugins/xhtmlxtras/attributes.htm | 149 - .../media/js/tinymce/plugins/xhtmlxtras/cite.htm | 142 - .../tinymce/plugins/xhtmlxtras/css/attributes.css | 11 - .../js/tinymce/plugins/xhtmlxtras/css/popup.css | 9 - .../media/js/tinymce/plugins/xhtmlxtras/del.htm | 162 - .../js/tinymce/plugins/xhtmlxtras/editor_plugin.js | 1 - .../plugins/xhtmlxtras/editor_plugin_src.js | 132 - .../media/js/tinymce/plugins/xhtmlxtras/ins.htm | 162 - .../media/js/tinymce/plugins/xhtmlxtras/js/abbr.js | 28 - .../js/tinymce/plugins/xhtmlxtras/js/acronym.js | 28 - .../js/tinymce/plugins/xhtmlxtras/js/attributes.js | 111 - .../media/js/tinymce/plugins/xhtmlxtras/js/cite.js | 28 - .../media/js/tinymce/plugins/xhtmlxtras/js/del.js | 53 - .../plugins/xhtmlxtras/js/element_common.js | 229 - .../media/js/tinymce/plugins/xhtmlxtras/js/ins.js | 53 - .../js/tinymce/plugins/xhtmlxtras/langs/en_dlg.js | 1 - .../media/js/tinymce/themes/advanced/about.htm | 52 - .../media/js/tinymce/themes/advanced/anchor.htm | 26 - .../media/js/tinymce/themes/advanced/charmap.htm | 55 - .../js/tinymce/themes/advanced/color_picker.htm | 70 - .../js/tinymce/themes/advanced/editor_template.js | 1 - .../tinymce/themes/advanced/editor_template_src.js | 1487 -- .../media/js/tinymce/themes/advanced/image.htm | 80 - .../js/tinymce/themes/advanced/img/colorpicker.jpg | Bin 2584 -> 0 bytes .../media/js/tinymce/themes/advanced/img/flash.gif | Bin 239 -> 0 bytes .../media/js/tinymce/themes/advanced/img/icons.gif | Bin 11982 -> 0 bytes .../js/tinymce/themes/advanced/img/iframe.gif | Bin 600 -> 0 bytes .../js/tinymce/themes/advanced/img/pagebreak.gif | Bin 325 -> 0 bytes .../js/tinymce/themes/advanced/img/quicktime.gif | Bin 301 -> 0 bytes .../js/tinymce/themes/advanced/img/realmedia.gif | Bin 439 -> 0 bytes .../js/tinymce/themes/advanced/img/shockwave.gif | Bin 384 -> 0 bytes .../media/js/tinymce/themes/advanced/img/trans.gif | Bin 43 -> 0 bytes .../media/js/tinymce/themes/advanced/img/video.gif | Bin 597 -> 0 bytes .../tinymce/themes/advanced/img/windowsmedia.gif | Bin 415 -> 0 bytes .../media/js/tinymce/themes/advanced/js/about.js | 73 - .../media/js/tinymce/themes/advanced/js/anchor.js | 56 - .../media/js/tinymce/themes/advanced/js/charmap.js | 363 - .../js/tinymce/themes/advanced/js/color_picker.js | 345 - .../media/js/tinymce/themes/advanced/js/image.js | 253 - .../media/js/tinymce/themes/advanced/js/link.js | 159 - .../js/tinymce/themes/advanced/js/source_editor.js | 78 - .../media/js/tinymce/themes/advanced/langs/en.js | 1 - .../js/tinymce/themes/advanced/langs/en_dlg.js | 1 - .../media/js/tinymce/themes/advanced/link.htm | 57 - .../media/js/tinymce/themes/advanced/shortcuts.htm | 47 - .../themes/advanced/skins/default/content.css | 50 - .../themes/advanced/skins/default/dialog.css | 118 - .../themes/advanced/skins/default/img/buttons.png | Bin 3133 -> 0 bytes .../themes/advanced/skins/default/img/items.gif | Bin 64 -> 0 bytes .../advanced/skins/default/img/menu_arrow.gif | Bin 68 -> 0 bytes .../advanced/skins/default/img/menu_check.gif | Bin 70 -> 0 bytes .../themes/advanced/skins/default/img/progress.gif | Bin 1787 -> 0 bytes .../themes/advanced/skins/default/img/tabs.gif | Bin 1322 -> 0 bytes .../tinymce/themes/advanced/skins/default/ui.css | 219 - .../themes/advanced/skins/highcontrast/content.css | 24 - .../themes/advanced/skins/highcontrast/dialog.css | 106 - .../themes/advanced/skins/highcontrast/ui.css | 106 - .../tinymce/themes/advanced/skins/o2k7/content.css | 48 - .../tinymce/themes/advanced/skins/o2k7/dialog.css | 118 - .../themes/advanced/skins/o2k7/img/button_bg.png | Bin 2766 -> 0 bytes .../advanced/skins/o2k7/img/button_bg_black.png | Bin 651 -> 0 bytes .../advanced/skins/o2k7/img/button_bg_silver.png | Bin 2084 -> 0 bytes .../js/tinymce/themes/advanced/skins/o2k7/ui.css | 222 - .../themes/advanced/skins/o2k7/ui_black.css | 8 - .../themes/advanced/skins/o2k7/ui_silver.css | 5 - .../js/tinymce/themes/advanced/source_editor.htm | 25 - .../js/tinymce/themes/simple/editor_template.js | 1 - .../tinymce/themes/simple/editor_template_src.js | 84 - .../media/js/tinymce/themes/simple/img/icons.gif | Bin 806 -> 0 bytes .../media/js/tinymce/themes/simple/langs/en.js | 1 - .../themes/simple/skins/default/content.css | 25 - .../js/tinymce/themes/simple/skins/default/ui.css | 32 - .../tinymce/themes/simple/skins/o2k7/content.css | 17 - .../themes/simple/skins/o2k7/img/button_bg.png | Bin 5102 -> 0 bytes .../js/tinymce/themes/simple/skins/o2k7/ui.css | 35 - askbot/skins/default/media/js/tinymce/tiny_mce.js | 1 - .../default/media/js/tinymce/tiny_mce_popup.js | 5 - .../skins/default/media/js/tinymce/tiny_mce_src.js | 18576 ------------------- .../media/js/tinymce/utils/editable_selects.js | 70 - .../default/media/js/tinymce/utils/form_utils.js | 210 - .../skins/default/media/js/tinymce/utils/mctabs.js | 162 - .../default/media/js/tinymce/utils/validate.js | 252 - askbot/skins/default/media/js/user.js | 1014 - askbot/skins/default/media/js/utils.js | 2917 --- .../js/wmd/images/editor-toolbar-background.png | Bin 282 -> 0 bytes .../default/media/js/wmd/images/wmd-buttons.png | Bin 11480 -> 0 bytes askbot/skins/default/media/js/wmd/showdown-min.js | 1 - askbot/skins/default/media/js/wmd/showdown.js | 1332 -- askbot/skins/default/media/js/wmd/wmd-min.js | 1 - askbot/skins/default/media/js/wmd/wmd-test.html | 158 - askbot/skins/default/media/js/wmd/wmd.css | 130 - askbot/skins/default/media/js/wmd/wmd.js | 2510 --- askbot/skins/default/media/style/auth.css | 48 - .../default/media/style/jquery.autocomplete.css | 40 - askbot/skins/default/media/style/lib_style.css | 22 - askbot/skins/default/media/style/lib_style.less | 101 - askbot/skins/default/media/style/openid.css | 45 - askbot/skins/default/media/style/prettify.css | 27 - askbot/skins/default/media/style/style.css | 4114 ---- askbot/skins/default/media/style/style.less | 4001 ---- .../skins/default/media/style/tinymce/content.css | 58 - askbot/skins/default/templates/404.html | 5 - askbot/skins/default/templates/404.jinja.html | 44 - askbot/skins/default/templates/500.jinja.html | 25 - askbot/skins/default/templates/answer_edit.html | 99 - askbot/skins/default/templates/ask.html | 83 - askbot/skins/default/templates/ask_by_widget.html | 16 - .../default/templates/ask_widget_complete.html | 8 - .../templates/authopenid/authopenid_macros.html | 69 - .../default/templates/authopenid/changeemail.html | 112 - .../default/templates/authopenid/complete.html | 63 - .../default/templates/authopenid/confirm_email.txt | 12 - .../templates/authopenid/email_validation.txt | 14 - .../skins/default/templates/authopenid/logout.html | 31 - .../templates/authopenid/providers_javascript.html | 55 - .../skins/default/templates/authopenid/signin.html | 231 - .../templates/authopenid/signup_with_password.html | 55 - .../default/templates/authopenid/verify_email.html | 14 - .../templates/authopenid/widget_signin.html | 231 - askbot/skins/default/templates/avatar/add.html | 15 - askbot/skins/default/templates/avatar/change.html | 24 - .../default/templates/avatar/confirm_delete.html | 15 - askbot/skins/default/templates/badge.html | 30 - askbot/skins/default/templates/badges.html | 62 - askbot/skins/default/templates/base.html | 51 - askbot/skins/default/templates/close.html | 27 - askbot/skins/default/templates/debug_header.html | 27 - askbot/skins/default/templates/django_error.html | 31 - .../default/templates/email/ask_for_signature.html | 12 - .../default/templates/email/feedback_email.txt | 13 - askbot/skins/default/templates/email/footer.html | 1 - .../email/insufficient_rep_to_post_by_email.html | 15 - askbot/skins/default/templates/email/macros.html | 96 - .../email/notify_admins_about_new_tags.html | 8 - .../email/notify_author_about_approved_post.html | 21 - .../default/templates/email/post_as_subthread.html | 17 - .../skins/default/templates/email/quoted_post.html | 5 - .../templates/email/re_welcome_lamson_on.html | 7 - .../templates/email/reply_by_email_error.html | 4 - .../templates/email/welcome_lamson_off.html | 11 - .../default/templates/email/welcome_lamson_on.html | 15 - .../default/templates/embed/ask_by_widget.html | 225 - .../templates/embed/ask_widget_complete.html | 8 - .../default/templates/embed/askbot_widget.css | 38 - .../skins/default/templates/embed/askbot_widget.js | 74 - .../default/templates/embed/delete_widget.html | 14 - .../default/templates/embed/list_widgets.html | 45 - .../default/templates/embed/question_widget.html | 20 - .../skins/default/templates/embed/widget_form.html | 23 - askbot/skins/default/templates/embed/widgets.html | 36 - askbot/skins/default/templates/faq_static.html | 94 - askbot/skins/default/templates/feedback.html | 68 - .../default/templates/group_messaging/home.html | 12 - .../templates/group_messaging/senders_list.html | 9 - .../templates/group_messaging/threads_list.html | 13 - askbot/skins/default/templates/groups.html | 58 - askbot/skins/default/templates/help.html | 57 - askbot/skins/default/templates/import_data.html | 31 - .../default/templates/instant_notification.html | 7 - .../default/templates/list_suggested_tags.html | 67 - askbot/skins/default/templates/macros.html | 782 - askbot/skins/default/templates/main_page.html | 28 - .../skins/default/templates/main_page/content.html | 3 - .../default/templates/main_page/headline.html | 41 - .../default/templates/main_page/javascript.html | 51 - .../default/templates/main_page/nothing_found.html | 31 - .../default/templates/main_page/paginator.html | 7 - .../templates/main_page/questions_loop.html | 13 - .../skins/default/templates/main_page/sidebar.html | 29 - .../skins/default/templates/main_page/tab_bar.html | 81 - .../default/templates/main_page/tag_search.html | 8 - .../default/templates/meta/bottom_scripts.html | 98 - .../default/templates/meta/category_tree_js.html | 26 - .../skins/default/templates/meta/editor_data.html | 16 - askbot/skins/default/templates/meta/fonts.html | 8 - .../templates/meta/html_head_javascript.html | 34 - .../default/templates/meta/html_head_meta.html | 8 - .../templates/meta/html_head_stylesheets.html | 26 - .../default/templates/meta/mandatory_tags_js.html | 25 - .../skins/default/templates/meta/tinymce_css.html | 20 - .../skins/default/templates/one_column_body.html | 8 - askbot/skins/default/templates/question.html | 245 - .../templates/question/answer_author_info.html | 8 - .../default/templates/question/answer_card.html | 32 - .../templates/question/answer_comments.html | 10 - .../templates/question/answer_controls.html | 69 - .../default/templates/question/answer_tab_bar.html | 23 - .../templates/question/answer_vote_buttons.html | 10 - .../templates/question/closed_question_info.html | 5 - .../skins/default/templates/question/content.html | 49 - .../default/templates/question/javascript.html | 110 - .../templates/question/new_answer_form.html | 59 - .../templates/question/question_author_info.html | 8 - .../default/templates/question/question_card.html | 38 - .../templates/question/question_comments.html | 10 - .../templates/question/question_controls.html | 39 - .../default/templates/question/question_tags.html | 8 - .../templates/question/question_vote_buttons.html | 1 - .../default/templates/question/share_buttons.html | 5 - .../templates/question/sharing_prompt_phrase.html | 11 - .../skins/default/templates/question/sidebar.html | 176 - .../question/subscribe_by_email_prompt.html | 13 - askbot/skins/default/templates/question_edit.html | 114 - askbot/skins/default/templates/question_retag.html | 68 - askbot/skins/default/templates/reopen.html | 39 - askbot/skins/default/templates/revisions.html | 101 - askbot/skins/default/templates/static_page.html | 10 - .../default/templates/subscribe_for_tags.html | 19 - askbot/skins/default/templates/tags.html | 55 - askbot/skins/default/templates/tags/header.html | 38 - .../skins/default/templates/two_column_body.html | 12 - .../skins/default/templates/user_inbox/base.html | 65 - .../templates/user_inbox/group_join_requests.html | 50 - .../default/templates/user_inbox/messages.html | 42 - .../templates/user_inbox/responses_and_flags.html | 43 - .../default/templates/user_profile/custom_tab.html | 3 - .../default/templates/user_profile/macros.html | 24 - .../templates/user_profile/reject_post_dialog.html | 109 - .../skins/default/templates/user_profile/user.html | 46 - .../default/templates/user_profile/user_edit.html | 126 - .../user_profile/user_email_subscriptions.html | 28 - .../templates/user_profile/user_favorites.html | 9 - .../default/templates/user_profile/user_info.html | 121 - .../templates/user_profile/user_moderate.html | 93 - .../templates/user_profile/user_network.html | 39 - .../templates/user_profile/user_recent.html | 41 - .../templates/user_profile/user_reputation.html | 42 - .../default/templates/user_profile/user_stats.html | 165 - .../default/templates/user_profile/user_tabs.html | 60 - .../default/templates/user_profile/user_votes.html | 31 - .../templates/user_profile/users_questions.html | 14 - askbot/skins/default/templates/users.html | 146 - askbot/skins/default/templates/widget_base.html | 22 - .../templates/widgets/answer_edit_tips.html | 27 - .../default/templates/widgets/ask_button.html | 9 - .../skins/default/templates/widgets/ask_form.html | 52 - .../default/templates/widgets/contributors.html | 10 - .../skins/default/templates/widgets/edit_post.html | 115 - askbot/skins/default/templates/widgets/footer.html | 63 - .../default/templates/widgets/group_info.html | 103 - .../default/templates/widgets/group_snippet.html | 2 - .../default/templates/widgets/groups_list.html | 4 - askbot/skins/default/templates/widgets/header.html | 20 - askbot/skins/default/templates/widgets/logo.html | 5 - .../default/templates/widgets/markdown_help.html | 42 - .../skins/default/templates/widgets/meta_nav.html | 28 - .../templates/widgets/question_edit_tips.html | 22 - .../templates/widgets/question_summary.html | 59 - .../default/templates/widgets/related_tags.html | 28 - .../skins/default/templates/widgets/scope_nav.html | 15 - .../default/templates/widgets/search_bar.html | 46 - .../templates/widgets/secondary_header.html | 12 - .../default/templates/widgets/system_messages.html | 8 - .../templates/widgets/tag_category_selector.html | 3 - .../default/templates/widgets/tag_editor.html | 31 - .../default/templates/widgets/tag_selector.html | 89 - .../widgets/three_column_category_selector.html | 22 - .../skins/default/templates/widgets/user_list.html | 28 - .../widgets/user_long_score_and_badge_summary.html | 25 - .../default/templates/widgets/user_navigation.html | 26 - .../widgets/user_score_and_badge_summary.html | 23 - askbot/skins/loaders.py | 8 +- askbot/skins/utils.py | 44 +- askbot/startup_procedures.py | 4 +- askbot/templates/404.html | 5 + askbot/templates/404.jinja.html | 44 + askbot/templates/500.jinja.html | 25 + askbot/templates/answer_edit.html | 99 + askbot/templates/ask.html | 83 + askbot/templates/ask_by_widget.html | 16 + askbot/templates/ask_widget_complete.html | 8 + askbot/templates/authopenid/authopenid_macros.html | 69 + askbot/templates/authopenid/changeemail.html | 112 + askbot/templates/authopenid/complete.html | 63 + askbot/templates/authopenid/confirm_email.txt | 12 + askbot/templates/authopenid/email_validation.txt | 14 + askbot/templates/authopenid/logout.html | 31 + .../templates/authopenid/providers_javascript.html | 55 + askbot/templates/authopenid/signin.html | 231 + .../templates/authopenid/signup_with_password.html | 55 + askbot/templates/authopenid/verify_email.html | 14 + askbot/templates/authopenid/widget_signin.html | 231 + askbot/templates/avatar/add.html | 15 + askbot/templates/avatar/change.html | 24 + askbot/templates/avatar/confirm_delete.html | 15 + askbot/templates/badge.html | 30 + askbot/templates/badges.html | 62 + askbot/templates/base.html | 51 + askbot/templates/close.html | 27 + askbot/templates/debug_header.html | 27 + askbot/templates/django_error.html | 31 + askbot/templates/email/ask_for_signature.html | 12 + askbot/templates/email/feedback_email.txt | 13 + askbot/templates/email/footer.html | 1 + .../email/insufficient_rep_to_post_by_email.html | 15 + askbot/templates/email/macros.html | 96 + .../email/notify_admins_about_new_tags.html | 8 + .../email/notify_author_about_approved_post.html | 21 + askbot/templates/email/post_as_subthread.html | 17 + askbot/templates/email/quoted_post.html | 5 + askbot/templates/email/re_welcome_lamson_on.html | 7 + askbot/templates/email/reply_by_email_error.html | 4 + askbot/templates/email/welcome_lamson_off.html | 11 + askbot/templates/email/welcome_lamson_on.html | 15 + askbot/templates/embed/ask_by_widget.html | 225 + askbot/templates/embed/ask_widget_complete.html | 8 + askbot/templates/embed/askbot_widget.css | 38 + askbot/templates/embed/askbot_widget.js | 74 + askbot/templates/embed/delete_widget.html | 14 + askbot/templates/embed/list_widgets.html | 45 + askbot/templates/embed/question_widget.html | 20 + askbot/templates/embed/widget_form.html | 23 + askbot/templates/embed/widgets.html | 36 + askbot/templates/faq_static.html | 94 + askbot/templates/feedback.html | 68 + askbot/templates/group_messaging/home.html | 12 + askbot/templates/group_messaging/senders_list.html | 9 + askbot/templates/group_messaging/threads_list.html | 13 + askbot/templates/groups.html | 58 + askbot/templates/help.html | 57 + askbot/templates/import_data.html | 31 + askbot/templates/instant_notification.html | 7 + askbot/templates/list_suggested_tags.html | 67 + askbot/templates/macros.html | 782 + askbot/templates/main_page.html | 28 + askbot/templates/main_page/content.html | 3 + askbot/templates/main_page/headline.html | 41 + askbot/templates/main_page/javascript.html | 51 + askbot/templates/main_page/nothing_found.html | 31 + askbot/templates/main_page/paginator.html | 7 + askbot/templates/main_page/questions_loop.html | 13 + askbot/templates/main_page/sidebar.html | 29 + askbot/templates/main_page/tab_bar.html | 81 + askbot/templates/main_page/tag_search.html | 8 + askbot/templates/meta/bottom_scripts.html | 98 + askbot/templates/meta/category_tree_js.html | 26 + askbot/templates/meta/editor_data.html | 16 + askbot/templates/meta/fonts.html | 8 + askbot/templates/meta/html_head_javascript.html | 34 + askbot/templates/meta/html_head_meta.html | 8 + askbot/templates/meta/html_head_stylesheets.html | 26 + askbot/templates/meta/mandatory_tags_js.html | 25 + askbot/templates/meta/tinymce_css.html | 20 + askbot/templates/one_column_body.html | 8 + askbot/templates/question.html | 245 + askbot/templates/question/answer_author_info.html | 8 + askbot/templates/question/answer_card.html | 32 + askbot/templates/question/answer_comments.html | 10 + askbot/templates/question/answer_controls.html | 69 + askbot/templates/question/answer_tab_bar.html | 23 + askbot/templates/question/answer_vote_buttons.html | 10 + .../templates/question/closed_question_info.html | 5 + askbot/templates/question/content.html | 49 + askbot/templates/question/javascript.html | 110 + askbot/templates/question/new_answer_form.html | 59 + .../templates/question/question_author_info.html | 8 + askbot/templates/question/question_card.html | 38 + askbot/templates/question/question_comments.html | 10 + askbot/templates/question/question_controls.html | 39 + askbot/templates/question/question_tags.html | 8 + .../templates/question/question_vote_buttons.html | 1 + askbot/templates/question/share_buttons.html | 5 + .../templates/question/sharing_prompt_phrase.html | 11 + askbot/templates/question/sidebar.html | 176 + .../question/subscribe_by_email_prompt.html | 13 + askbot/templates/question_edit.html | 114 + askbot/templates/question_retag.html | 68 + askbot/templates/reopen.html | 39 + askbot/templates/revisions.html | 101 + askbot/templates/static_page.html | 10 + askbot/templates/subscribe_for_tags.html | 19 + askbot/templates/tags.html | 55 + askbot/templates/tags/header.html | 38 + askbot/templates/two_column_body.html | 12 + askbot/templates/user_inbox/base.html | 65 + .../templates/user_inbox/group_join_requests.html | 50 + askbot/templates/user_inbox/messages.html | 42 + .../templates/user_inbox/responses_and_flags.html | 43 + askbot/templates/user_profile/custom_tab.html | 3 + askbot/templates/user_profile/macros.html | 24 + .../templates/user_profile/reject_post_dialog.html | 109 + askbot/templates/user_profile/user.html | 46 + askbot/templates/user_profile/user_edit.html | 126 + .../user_profile/user_email_subscriptions.html | 28 + askbot/templates/user_profile/user_favorites.html | 9 + askbot/templates/user_profile/user_info.html | 121 + askbot/templates/user_profile/user_moderate.html | 93 + askbot/templates/user_profile/user_network.html | 39 + askbot/templates/user_profile/user_recent.html | 41 + askbot/templates/user_profile/user_reputation.html | 42 + askbot/templates/user_profile/user_stats.html | 165 + askbot/templates/user_profile/user_tabs.html | 60 + askbot/templates/user_profile/user_votes.html | 31 + askbot/templates/user_profile/users_questions.html | 14 + askbot/templates/users.html | 146 + askbot/templates/widget_base.html | 22 + askbot/templates/widgets/answer_edit_tips.html | 27 + askbot/templates/widgets/ask_button.html | 9 + askbot/templates/widgets/ask_form.html | 52 + askbot/templates/widgets/contributors.html | 10 + askbot/templates/widgets/edit_post.html | 115 + askbot/templates/widgets/footer.html | 63 + askbot/templates/widgets/group_info.html | 103 + askbot/templates/widgets/group_snippet.html | 2 + askbot/templates/widgets/groups_list.html | 4 + askbot/templates/widgets/header.html | 20 + askbot/templates/widgets/logo.html | 5 + askbot/templates/widgets/markdown_help.html | 42 + askbot/templates/widgets/meta_nav.html | 28 + askbot/templates/widgets/question_edit_tips.html | 22 + askbot/templates/widgets/question_summary.html | 59 + askbot/templates/widgets/related_tags.html | 28 + askbot/templates/widgets/scope_nav.html | 15 + askbot/templates/widgets/search_bar.html | 46 + askbot/templates/widgets/secondary_header.html | 12 + askbot/templates/widgets/system_messages.html | 8 + .../templates/widgets/tag_category_selector.html | 3 + askbot/templates/widgets/tag_editor.html | 31 + askbot/templates/widgets/tag_selector.html | 89 + .../widgets/three_column_category_selector.html | 22 + askbot/templates/widgets/user_list.html | 28 + .../widgets/user_long_score_and_badge_summary.html | 25 + askbot/templates/widgets/user_navigation.html | 26 + .../widgets/user_score_and_badge_summary.html | 23 + 1852 files changed, 98659 insertions(+), 98653 deletions(-) create mode 100644 askbot/media/bootstrap/bootstrap.zip create mode 100644 askbot/media/bootstrap/css/bootstrap.css create mode 100644 askbot/media/bootstrap/css/bootstrap.min.css create mode 100644 askbot/media/bootstrap/img/glyphicons-halflings-white.png create mode 100644 askbot/media/bootstrap/img/glyphicons-halflings.png create mode 100644 askbot/media/bootstrap/js/bootstrap.js create mode 100644 askbot/media/bootstrap/js/bootstrap.min.js create mode 100644 askbot/media/images/OFL.txt create mode 100644 askbot/media/images/OpenSans-CondBold.ttf create mode 100644 askbot/media/images/OpenSans-CondLight.ttf create mode 100644 askbot/media/images/OpenSans-CondLightItalic.ttf create mode 100644 askbot/media/images/YanoneKaffeesatz-Bold.ttf create mode 100644 askbot/media/images/YanoneKaffeesatz-ExtraLight.ttf create mode 100644 askbot/media/images/YanoneKaffeesatz-Light.ttf create mode 100644 askbot/media/images/YanoneKaffeesatz-Regular.ttf create mode 100644 askbot/media/images/Yanone_Kaffeesatz.zip create mode 100644 askbot/media/images/accept.png create mode 100644 askbot/media/images/anon.png create mode 100644 askbot/media/images/answers-background.png create mode 100644 askbot/media/images/attachment.png create mode 100644 askbot/media/images/background-user-info.png create mode 100644 askbot/media/images/bigbutton.png create mode 100644 askbot/media/images/bigbuttonhover.png create mode 100755 askbot/media/images/blue-up-arrow-h18px.png create mode 100755 askbot/media/images/box-arrow.gif create mode 100755 askbot/media/images/bullet_green.gif create mode 100755 askbot/media/images/cc-88x31.png create mode 100644 askbot/media/images/cc-by-sa.png create mode 100644 askbot/media/images/close-small-dark.png create mode 100755 askbot/media/images/close-small-hover.png create mode 100755 askbot/media/images/close-small.png create mode 100644 askbot/media/images/close.png create mode 100644 askbot/media/images/comment-background.png create mode 100644 askbot/media/images/comment.png create mode 100644 askbot/media/images/contributorsback.png create mode 100755 askbot/media/images/dash.gif create mode 100644 askbot/media/images/delete.png create mode 100644 askbot/media/images/dialog-warning-off.png create mode 100644 askbot/media/images/dialog-warning.png create mode 100755 askbot/media/images/djangomade124x25_grey.gif create mode 100755 askbot/media/images/dot-g.gif create mode 100755 askbot/media/images/dot-list.gif create mode 100755 askbot/media/images/edit.png create mode 100644 askbot/media/images/edit2.png create mode 100755 askbot/media/images/expander-arrow-hide.gif create mode 100755 askbot/media/images/expander-arrow-show.gif create mode 100644 askbot/media/images/favicon.gif create mode 100644 askbot/media/images/favicon.ico create mode 100644 askbot/media/images/feed-icon-small.png create mode 100644 askbot/media/images/flag.png create mode 100755 askbot/media/images/flags/ad.gif create mode 100755 askbot/media/images/flags/ae.gif create mode 100755 askbot/media/images/flags/af.gif create mode 100755 askbot/media/images/flags/ag.gif create mode 100755 askbot/media/images/flags/ai.gif create mode 100755 askbot/media/images/flags/al.gif create mode 100755 askbot/media/images/flags/am.gif create mode 100755 askbot/media/images/flags/an.gif create mode 100644 askbot/media/images/flags/ao.gif create mode 100755 askbot/media/images/flags/ar.gif create mode 100755 askbot/media/images/flags/as.gif create mode 100755 askbot/media/images/flags/at.gif create mode 100755 askbot/media/images/flags/au.gif create mode 100755 askbot/media/images/flags/aw.gif create mode 100755 askbot/media/images/flags/ax.gif create mode 100755 askbot/media/images/flags/az.gif create mode 100755 askbot/media/images/flags/ba.gif create mode 100755 askbot/media/images/flags/bb.gif create mode 100755 askbot/media/images/flags/bd.gif create mode 100755 askbot/media/images/flags/be.gif create mode 100755 askbot/media/images/flags/bf.gif create mode 100755 askbot/media/images/flags/bg.gif create mode 100755 askbot/media/images/flags/bh.gif create mode 100755 askbot/media/images/flags/bi.gif create mode 100755 askbot/media/images/flags/bj.gif create mode 100755 askbot/media/images/flags/bm.gif create mode 100755 askbot/media/images/flags/bn.gif create mode 100755 askbot/media/images/flags/bo.gif create mode 100755 askbot/media/images/flags/br.gif create mode 100755 askbot/media/images/flags/bs.gif create mode 100755 askbot/media/images/flags/bt.gif create mode 100755 askbot/media/images/flags/bv.gif create mode 100755 askbot/media/images/flags/bw.gif create mode 100755 askbot/media/images/flags/by.gif create mode 100755 askbot/media/images/flags/bz.gif create mode 100755 askbot/media/images/flags/ca.gif create mode 100644 askbot/media/images/flags/catalonia.gif create mode 100755 askbot/media/images/flags/cc.gif create mode 100644 askbot/media/images/flags/cd.gif create mode 100755 askbot/media/images/flags/cf.gif create mode 100755 askbot/media/images/flags/cg.gif create mode 100755 askbot/media/images/flags/ch.gif create mode 100755 askbot/media/images/flags/ci.gif create mode 100755 askbot/media/images/flags/ck.gif create mode 100755 askbot/media/images/flags/cl.gif create mode 100755 askbot/media/images/flags/cm.gif create mode 100755 askbot/media/images/flags/cn.gif create mode 100755 askbot/media/images/flags/co.gif create mode 100755 askbot/media/images/flags/cr.gif create mode 100755 askbot/media/images/flags/cs.gif create mode 100755 askbot/media/images/flags/cu.gif create mode 100755 askbot/media/images/flags/cv.gif create mode 100755 askbot/media/images/flags/cx.gif create mode 100755 askbot/media/images/flags/cy.gif create mode 100755 askbot/media/images/flags/cz.gif create mode 100755 askbot/media/images/flags/de.gif create mode 100755 askbot/media/images/flags/dj.gif create mode 100755 askbot/media/images/flags/dk.gif create mode 100755 askbot/media/images/flags/dm.gif create mode 100755 askbot/media/images/flags/do.gif create mode 100755 askbot/media/images/flags/dz.gif create mode 100755 askbot/media/images/flags/ec.gif create mode 100755 askbot/media/images/flags/ee.gif create mode 100755 askbot/media/images/flags/eg.gif create mode 100755 askbot/media/images/flags/eh.gif create mode 100755 askbot/media/images/flags/england.gif create mode 100755 askbot/media/images/flags/er.gif create mode 100755 askbot/media/images/flags/es.gif create mode 100755 askbot/media/images/flags/et.gif create mode 100644 askbot/media/images/flags/europeanunion.gif create mode 100755 askbot/media/images/flags/fam.gif create mode 100755 askbot/media/images/flags/fi.gif create mode 100755 askbot/media/images/flags/fj.gif create mode 100755 askbot/media/images/flags/fk.gif create mode 100755 askbot/media/images/flags/fm.gif create mode 100755 askbot/media/images/flags/fo.gif create mode 100755 askbot/media/images/flags/fr.gif create mode 100755 askbot/media/images/flags/ga.gif create mode 100644 askbot/media/images/flags/gb.gif create mode 100755 askbot/media/images/flags/gd.gif create mode 100755 askbot/media/images/flags/ge.gif create mode 100755 askbot/media/images/flags/gf.gif create mode 100755 askbot/media/images/flags/gh.gif create mode 100755 askbot/media/images/flags/gi.gif create mode 100755 askbot/media/images/flags/gl.gif create mode 100755 askbot/media/images/flags/gm.gif create mode 100755 askbot/media/images/flags/gn.gif create mode 100755 askbot/media/images/flags/gp.gif create mode 100755 askbot/media/images/flags/gq.gif create mode 100755 askbot/media/images/flags/gr.gif create mode 100755 askbot/media/images/flags/gs.gif create mode 100755 askbot/media/images/flags/gt.gif create mode 100755 askbot/media/images/flags/gu.gif create mode 100755 askbot/media/images/flags/gw.gif create mode 100755 askbot/media/images/flags/gy.gif create mode 100755 askbot/media/images/flags/hk.gif create mode 100755 askbot/media/images/flags/hm.gif create mode 100755 askbot/media/images/flags/hn.gif create mode 100755 askbot/media/images/flags/hr.gif create mode 100755 askbot/media/images/flags/ht.gif create mode 100755 askbot/media/images/flags/hu.gif create mode 100755 askbot/media/images/flags/id.gif create mode 100755 askbot/media/images/flags/ie.gif create mode 100755 askbot/media/images/flags/il.gif create mode 100755 askbot/media/images/flags/in.gif create mode 100755 askbot/media/images/flags/io.gif create mode 100755 askbot/media/images/flags/iq.gif create mode 100755 askbot/media/images/flags/ir.gif create mode 100755 askbot/media/images/flags/is.gif create mode 100755 askbot/media/images/flags/it.gif create mode 100755 askbot/media/images/flags/jm.gif create mode 100755 askbot/media/images/flags/jo.gif create mode 100755 askbot/media/images/flags/jp.gif create mode 100755 askbot/media/images/flags/ke.gif create mode 100755 askbot/media/images/flags/kg.gif create mode 100755 askbot/media/images/flags/kh.gif create mode 100755 askbot/media/images/flags/ki.gif create mode 100755 askbot/media/images/flags/km.gif create mode 100755 askbot/media/images/flags/kn.gif create mode 100755 askbot/media/images/flags/kp.gif create mode 100755 askbot/media/images/flags/kr.gif create mode 100755 askbot/media/images/flags/kw.gif create mode 100755 askbot/media/images/flags/ky.gif create mode 100755 askbot/media/images/flags/kz.gif create mode 100755 askbot/media/images/flags/la.gif create mode 100755 askbot/media/images/flags/lb.gif create mode 100644 askbot/media/images/flags/lc.gif create mode 100755 askbot/media/images/flags/li.gif create mode 100755 askbot/media/images/flags/lk.gif create mode 100755 askbot/media/images/flags/lr.gif create mode 100755 askbot/media/images/flags/ls.gif create mode 100755 askbot/media/images/flags/lt.gif create mode 100755 askbot/media/images/flags/lu.gif create mode 100755 askbot/media/images/flags/lv.gif create mode 100755 askbot/media/images/flags/ly.gif create mode 100755 askbot/media/images/flags/ma.gif create mode 100755 askbot/media/images/flags/mc.gif create mode 100755 askbot/media/images/flags/md.gif create mode 100644 askbot/media/images/flags/me.gif create mode 100755 askbot/media/images/flags/mg.gif create mode 100755 askbot/media/images/flags/mh.gif create mode 100755 askbot/media/images/flags/mk.gif create mode 100755 askbot/media/images/flags/ml.gif create mode 100755 askbot/media/images/flags/mm.gif create mode 100755 askbot/media/images/flags/mn.gif create mode 100755 askbot/media/images/flags/mo.gif create mode 100755 askbot/media/images/flags/mp.gif create mode 100755 askbot/media/images/flags/mq.gif create mode 100755 askbot/media/images/flags/mr.gif create mode 100755 askbot/media/images/flags/ms.gif create mode 100755 askbot/media/images/flags/mt.gif create mode 100755 askbot/media/images/flags/mu.gif create mode 100755 askbot/media/images/flags/mv.gif create mode 100755 askbot/media/images/flags/mw.gif create mode 100755 askbot/media/images/flags/mx.gif create mode 100755 askbot/media/images/flags/my.gif create mode 100755 askbot/media/images/flags/mz.gif create mode 100755 askbot/media/images/flags/na.gif create mode 100755 askbot/media/images/flags/nc.gif create mode 100755 askbot/media/images/flags/ne.gif create mode 100755 askbot/media/images/flags/nf.gif create mode 100755 askbot/media/images/flags/ng.gif create mode 100755 askbot/media/images/flags/ni.gif create mode 100755 askbot/media/images/flags/nl.gif create mode 100755 askbot/media/images/flags/no.gif create mode 100755 askbot/media/images/flags/np.gif create mode 100755 askbot/media/images/flags/nr.gif create mode 100755 askbot/media/images/flags/nu.gif create mode 100755 askbot/media/images/flags/nz.gif create mode 100755 askbot/media/images/flags/om.gif create mode 100755 askbot/media/images/flags/pa.gif create mode 100755 askbot/media/images/flags/pe.gif create mode 100755 askbot/media/images/flags/pf.gif create mode 100755 askbot/media/images/flags/pg.gif create mode 100755 askbot/media/images/flags/ph.gif create mode 100755 askbot/media/images/flags/pk.gif create mode 100755 askbot/media/images/flags/pl.gif create mode 100755 askbot/media/images/flags/pm.gif create mode 100755 askbot/media/images/flags/pn.gif create mode 100755 askbot/media/images/flags/pr.gif create mode 100755 askbot/media/images/flags/ps.gif create mode 100755 askbot/media/images/flags/pt.gif create mode 100755 askbot/media/images/flags/pw.gif create mode 100755 askbot/media/images/flags/py.gif create mode 100755 askbot/media/images/flags/qa.gif create mode 100755 askbot/media/images/flags/re.gif create mode 100755 askbot/media/images/flags/ro.gif create mode 100644 askbot/media/images/flags/rs.gif create mode 100755 askbot/media/images/flags/ru.gif create mode 100755 askbot/media/images/flags/rw.gif create mode 100755 askbot/media/images/flags/sa.gif create mode 100755 askbot/media/images/flags/sb.gif create mode 100755 askbot/media/images/flags/sc.gif create mode 100755 askbot/media/images/flags/scotland.gif create mode 100755 askbot/media/images/flags/sd.gif create mode 100755 askbot/media/images/flags/se.gif create mode 100755 askbot/media/images/flags/sg.gif create mode 100755 askbot/media/images/flags/sh.gif create mode 100755 askbot/media/images/flags/si.gif create mode 100755 askbot/media/images/flags/sj.gif create mode 100755 askbot/media/images/flags/sk.gif create mode 100755 askbot/media/images/flags/sl.gif create mode 100755 askbot/media/images/flags/sm.gif create mode 100755 askbot/media/images/flags/sn.gif create mode 100755 askbot/media/images/flags/so.gif create mode 100755 askbot/media/images/flags/sr.gif create mode 100755 askbot/media/images/flags/st.gif create mode 100755 askbot/media/images/flags/sv.gif create mode 100755 askbot/media/images/flags/sy.gif create mode 100755 askbot/media/images/flags/sz.gif create mode 100755 askbot/media/images/flags/tc.gif create mode 100755 askbot/media/images/flags/td.gif create mode 100755 askbot/media/images/flags/tf.gif create mode 100755 askbot/media/images/flags/tg.gif create mode 100755 askbot/media/images/flags/th.gif create mode 100755 askbot/media/images/flags/tj.gif create mode 100755 askbot/media/images/flags/tk.gif create mode 100755 askbot/media/images/flags/tl.gif create mode 100755 askbot/media/images/flags/tm.gif create mode 100755 askbot/media/images/flags/tn.gif create mode 100755 askbot/media/images/flags/to.gif create mode 100755 askbot/media/images/flags/tr.gif create mode 100755 askbot/media/images/flags/tt.gif create mode 100755 askbot/media/images/flags/tv.gif create mode 100755 askbot/media/images/flags/tw.gif create mode 100755 askbot/media/images/flags/tz.gif create mode 100755 askbot/media/images/flags/ua.gif create mode 100755 askbot/media/images/flags/ug.gif create mode 100755 askbot/media/images/flags/um.gif create mode 100755 askbot/media/images/flags/us.gif create mode 100755 askbot/media/images/flags/uy.gif create mode 100755 askbot/media/images/flags/uz.gif create mode 100755 askbot/media/images/flags/va.gif create mode 100755 askbot/media/images/flags/vc.gif create mode 100755 askbot/media/images/flags/ve.gif create mode 100755 askbot/media/images/flags/vg.gif create mode 100755 askbot/media/images/flags/vi.gif create mode 100755 askbot/media/images/flags/vn.gif create mode 100755 askbot/media/images/flags/vu.gif create mode 100755 askbot/media/images/flags/wales.gif create mode 100755 askbot/media/images/flags/wf.gif create mode 100755 askbot/media/images/flags/ws.gif create mode 100755 askbot/media/images/flags/ye.gif create mode 100755 askbot/media/images/flags/yt.gif create mode 100755 askbot/media/images/flags/za.gif create mode 100755 askbot/media/images/flags/zm.gif create mode 100755 askbot/media/images/flags/zw.gif create mode 100644 askbot/media/images/go-up-grey.png create mode 100644 askbot/media/images/go-up-orange.png create mode 100755 askbot/media/images/gray-up-arrow-h18px.png create mode 100755 askbot/media/images/grippie.png create mode 100755 askbot/media/images/indicator.gif create mode 100644 askbot/media/images/link.png create mode 100644 askbot/media/images/logo.gif create mode 100644 askbot/media/images/logo.png create mode 100755 askbot/media/images/logo1.png create mode 100755 askbot/media/images/logo2.png create mode 100644 askbot/media/images/mail-envelope-empty.png create mode 100644 askbot/media/images/mail-envelope-full.png create mode 100755 askbot/media/images/medala.gif create mode 100755 askbot/media/images/medala_on.gif create mode 100644 askbot/media/images/medium-button.png create mode 100755 askbot/media/images/new.gif create mode 100755 askbot/media/images/nophoto.png create mode 100644 askbot/media/images/notification.png create mode 100755 askbot/media/images/openid.gif create mode 100755 askbot/media/images/openid/aol.gif create mode 100755 askbot/media/images/openid/blogger.ico create mode 100755 askbot/media/images/openid/claimid.ico create mode 100755 askbot/media/images/openid/facebook.gif create mode 100755 askbot/media/images/openid/flickr.ico create mode 100755 askbot/media/images/openid/google.gif create mode 100755 askbot/media/images/openid/livejournal.ico create mode 100755 askbot/media/images/openid/myopenid.ico create mode 100755 askbot/media/images/openid/openid-inputicon.gif create mode 100755 askbot/media/images/openid/openid.gif create mode 100755 askbot/media/images/openid/technorati.ico create mode 100755 askbot/media/images/openid/twitter.png create mode 100755 askbot/media/images/openid/verisign.ico create mode 100755 askbot/media/images/openid/vidoop.ico create mode 100755 askbot/media/images/openid/wordpress.ico create mode 100755 askbot/media/images/openid/yahoo.gif create mode 100644 askbot/media/images/print.png create mode 100644 askbot/media/images/publish.png create mode 100644 askbot/media/images/pw-login.gif create mode 100755 askbot/media/images/quest-bg.gif create mode 100644 askbot/media/images/retag.png create mode 100644 askbot/media/images/scopearrow.png create mode 100644 askbot/media/images/small-button-blue.png create mode 100644 askbot/media/images/small-button-cancel.png create mode 100644 askbot/media/images/socialsprite.png create mode 100644 askbot/media/images/sprite.png create mode 100644 askbot/media/images/sprites.png create mode 100644 askbot/media/images/sprites_source/graphics.svg create mode 100644 askbot/media/images/sprites_source/other.svg create mode 100644 askbot/media/images/sprites_source/sprites.svg create mode 100644 askbot/media/images/summary-background.png create mode 100644 askbot/media/images/tag-left.png create mode 100644 askbot/media/images/tag-right.png create mode 100644 askbot/media/images/tips.png create mode 100644 askbot/media/images/unpublish.png create mode 100644 askbot/media/images/view-background.png create mode 100755 askbot/media/images/vote-accepted-on.png create mode 100755 askbot/media/images/vote-accepted.png create mode 100644 askbot/media/images/vote-arrow-down-new.png create mode 100644 askbot/media/images/vote-arrow-down-on-new.png create mode 100755 askbot/media/images/vote-arrow-down-on.png create mode 100755 askbot/media/images/vote-arrow-down.png create mode 100644 askbot/media/images/vote-arrow-up-new.png create mode 100644 askbot/media/images/vote-arrow-up-on-new.png create mode 100755 askbot/media/images/vote-arrow-up-on.png create mode 100755 askbot/media/images/vote-arrow-up.png create mode 100644 askbot/media/images/vote-background.png create mode 100755 askbot/media/images/vote-favorite-off.png create mode 100755 askbot/media/images/vote-favorite-on.png create mode 100644 askbot/media/images/wiki.png create mode 100755 askbot/media/jquery-openid/images/aol.gif create mode 100755 askbot/media/jquery-openid/images/blogger-1.png create mode 100755 askbot/media/jquery-openid/images/blogger.ico create mode 100755 askbot/media/jquery-openid/images/claimid-0.png create mode 100755 askbot/media/jquery-openid/images/claimid.ico create mode 100755 askbot/media/jquery-openid/images/facebook.gif create mode 100755 askbot/media/jquery-openid/images/flickr.ico create mode 100755 askbot/media/jquery-openid/images/flickr.png create mode 100755 askbot/media/jquery-openid/images/google.gif create mode 100644 askbot/media/jquery-openid/images/identica.png create mode 100644 askbot/media/jquery-openid/images/linkedin.gif create mode 100755 askbot/media/jquery-openid/images/livejournal-1.png create mode 100755 askbot/media/jquery-openid/images/livejournal.ico create mode 100755 askbot/media/jquery-openid/images/myopenid-2.png create mode 100755 askbot/media/jquery-openid/images/myopenid.ico create mode 100755 askbot/media/jquery-openid/images/openid-inputicon.gif create mode 100755 askbot/media/jquery-openid/images/openid.gif create mode 100755 askbot/media/jquery-openid/images/openidico.png create mode 100755 askbot/media/jquery-openid/images/openidico16.png create mode 100755 askbot/media/jquery-openid/images/technorati-1.png create mode 100755 askbot/media/jquery-openid/images/technorati.ico create mode 100644 askbot/media/jquery-openid/images/twitter.gif create mode 100755 askbot/media/jquery-openid/images/verisign-2.png create mode 100755 askbot/media/jquery-openid/images/verisign.ico create mode 100755 askbot/media/jquery-openid/images/vidoop.ico create mode 100755 askbot/media/jquery-openid/images/vidoop.png create mode 100755 askbot/media/jquery-openid/images/wordpress.ico create mode 100755 askbot/media/jquery-openid/images/wordpress.png create mode 100755 askbot/media/jquery-openid/images/yahoo.gif create mode 100644 askbot/media/jquery-openid/jquery.openid.js create mode 100644 askbot/media/jquery-openid/openid.css create mode 100644 askbot/media/js/autocompleter.js create mode 100644 askbot/media/js/compress.bat create mode 100644 askbot/media/js/editor.js create mode 100644 askbot/media/js/excanvas.min.js create mode 100644 askbot/media/js/flot-build.bat create mode 100644 askbot/media/js/group_messaging.js create mode 100644 askbot/media/js/jquery-1.4.3.js create mode 100644 askbot/media/js/jquery-1.7.2.min.js create mode 100644 askbot/media/js/jquery-fieldselection.js create mode 100644 askbot/media/js/jquery-fieldselection.min.js create mode 100644 askbot/media/js/jquery.ajaxfileupload.js create mode 100644 askbot/media/js/jquery.animate-colors.js create mode 100644 askbot/media/js/jquery.fancybox-1.3.4/ajax.txt create mode 100644 askbot/media/js/jquery.fancybox-1.3.4/example/10_b.jpg create mode 100644 askbot/media/js/jquery.fancybox-1.3.4/example/10_s.jpg create mode 100644 askbot/media/js/jquery.fancybox-1.3.4/example/11_b.jpg create mode 100644 askbot/media/js/jquery.fancybox-1.3.4/example/11_s.jpg create mode 100644 askbot/media/js/jquery.fancybox-1.3.4/example/12_b.jpg create mode 100644 askbot/media/js/jquery.fancybox-1.3.4/example/12_s.jpg create mode 100644 askbot/media/js/jquery.fancybox-1.3.4/example/1_b.jpg create mode 100644 askbot/media/js/jquery.fancybox-1.3.4/example/1_s.jpg create mode 100644 askbot/media/js/jquery.fancybox-1.3.4/example/2_b.jpg create mode 100644 askbot/media/js/jquery.fancybox-1.3.4/example/2_s.jpg create mode 100644 askbot/media/js/jquery.fancybox-1.3.4/example/3_b.jpg create mode 100644 askbot/media/js/jquery.fancybox-1.3.4/example/3_s.jpg create mode 100644 askbot/media/js/jquery.fancybox-1.3.4/example/4_b.jpg create mode 100644 askbot/media/js/jquery.fancybox-1.3.4/example/4_s.jpg create mode 100644 askbot/media/js/jquery.fancybox-1.3.4/example/5_b.jpg create mode 100644 askbot/media/js/jquery.fancybox-1.3.4/example/5_s.jpg create mode 100644 askbot/media/js/jquery.fancybox-1.3.4/example/6_b.jpg create mode 100644 askbot/media/js/jquery.fancybox-1.3.4/example/6_s.jpg create mode 100644 askbot/media/js/jquery.fancybox-1.3.4/example/7_b.jpg create mode 100644 askbot/media/js/jquery.fancybox-1.3.4/example/7_s.jpg create mode 100644 askbot/media/js/jquery.fancybox-1.3.4/example/8_b.jpg create mode 100644 askbot/media/js/jquery.fancybox-1.3.4/example/8_s.jpg create mode 100644 askbot/media/js/jquery.fancybox-1.3.4/example/9_b.jpg create mode 100644 askbot/media/js/jquery.fancybox-1.3.4/example/9_s.jpg create mode 100644 askbot/media/js/jquery.fancybox-1.3.4/fancybox/blank.gif create mode 100644 askbot/media/js/jquery.fancybox-1.3.4/fancybox/fancy_close.png create mode 100644 askbot/media/js/jquery.fancybox-1.3.4/fancybox/fancy_loading.png create mode 100644 askbot/media/js/jquery.fancybox-1.3.4/fancybox/fancy_nav_left.png create mode 100644 askbot/media/js/jquery.fancybox-1.3.4/fancybox/fancy_nav_right.png create mode 100644 askbot/media/js/jquery.fancybox-1.3.4/fancybox/fancy_shadow_e.png create mode 100644 askbot/media/js/jquery.fancybox-1.3.4/fancybox/fancy_shadow_n.png create mode 100644 askbot/media/js/jquery.fancybox-1.3.4/fancybox/fancy_shadow_ne.png create mode 100644 askbot/media/js/jquery.fancybox-1.3.4/fancybox/fancy_shadow_nw.png create mode 100644 askbot/media/js/jquery.fancybox-1.3.4/fancybox/fancy_shadow_s.png create mode 100644 askbot/media/js/jquery.fancybox-1.3.4/fancybox/fancy_shadow_se.png create mode 100644 askbot/media/js/jquery.fancybox-1.3.4/fancybox/fancy_shadow_sw.png create mode 100644 askbot/media/js/jquery.fancybox-1.3.4/fancybox/fancy_shadow_w.png create mode 100644 askbot/media/js/jquery.fancybox-1.3.4/fancybox/fancy_title_left.png create mode 100644 askbot/media/js/jquery.fancybox-1.3.4/fancybox/fancy_title_main.png create mode 100644 askbot/media/js/jquery.fancybox-1.3.4/fancybox/fancy_title_over.png create mode 100644 askbot/media/js/jquery.fancybox-1.3.4/fancybox/fancy_title_right.png create mode 100644 askbot/media/js/jquery.fancybox-1.3.4/fancybox/fancybox-x.png create mode 100644 askbot/media/js/jquery.fancybox-1.3.4/fancybox/fancybox-y.png create mode 100644 askbot/media/js/jquery.fancybox-1.3.4/fancybox/fancybox.png create mode 100644 askbot/media/js/jquery.fancybox-1.3.4/fancybox/jquery.easing-1.3.pack.js create mode 100644 askbot/media/js/jquery.fancybox-1.3.4/fancybox/jquery.fancybox-1.3.4.css create mode 100644 askbot/media/js/jquery.fancybox-1.3.4/fancybox/jquery.fancybox-1.3.4.js create mode 100644 askbot/media/js/jquery.fancybox-1.3.4/fancybox/jquery.fancybox-1.3.4.pack.js create mode 100644 askbot/media/js/jquery.fancybox-1.3.4/fancybox/jquery.mousewheel-3.0.4.pack.js create mode 100644 askbot/media/js/jquery.fancybox-1.3.4/index.html create mode 100644 askbot/media/js/jquery.fancybox-1.3.4/jquery-1.4.3.min.js create mode 100644 askbot/media/js/jquery.fancybox-1.3.4/style.css create mode 100644 askbot/media/js/jquery.flot.js create mode 100644 askbot/media/js/jquery.flot.min.js create mode 100644 askbot/media/js/jquery.form.js create mode 100644 askbot/media/js/jquery.history.js create mode 100644 askbot/media/js/jquery.i18n.js create mode 100644 askbot/media/js/jquery.openid.js create mode 100644 askbot/media/js/jquery.validate.js create mode 100644 askbot/media/js/jquery.validate.min.js create mode 100644 askbot/media/js/jquery.validate.pack.js create mode 100644 askbot/media/js/less.min.js create mode 100644 askbot/media/js/live_search.js create mode 100644 askbot/media/js/live_search_new_thread.js create mode 100644 askbot/media/js/modernizr.custom.js create mode 100644 askbot/media/js/output-words.html create mode 100644 askbot/media/js/output-words.js create mode 100644 askbot/media/js/post.js create mode 100644 askbot/media/js/se_hilite.js create mode 100644 askbot/media/js/se_hilite_src.js create mode 100644 askbot/media/js/tag_moderation.js create mode 100644 askbot/media/js/tag_selector.js create mode 100644 askbot/media/js/tinymce/langs/en.js create mode 100644 askbot/media/js/tinymce/license.txt create mode 100644 askbot/media/js/tinymce/plugins/advhr/css/advhr.css create mode 100644 askbot/media/js/tinymce/plugins/advhr/editor_plugin.js create mode 100644 askbot/media/js/tinymce/plugins/advhr/editor_plugin_src.js create mode 100644 askbot/media/js/tinymce/plugins/advhr/js/rule.js create mode 100644 askbot/media/js/tinymce/plugins/advhr/langs/en_dlg.js create mode 100644 askbot/media/js/tinymce/plugins/advhr/rule.htm create mode 100644 askbot/media/js/tinymce/plugins/advimage/css/advimage.css create mode 100644 askbot/media/js/tinymce/plugins/advimage/editor_plugin.js create mode 100644 askbot/media/js/tinymce/plugins/advimage/editor_plugin_src.js create mode 100644 askbot/media/js/tinymce/plugins/advimage/image.htm create mode 100644 askbot/media/js/tinymce/plugins/advimage/img/sample.gif create mode 100644 askbot/media/js/tinymce/plugins/advimage/js/image.js create mode 100644 askbot/media/js/tinymce/plugins/advimage/langs/en_dlg.js create mode 100644 askbot/media/js/tinymce/plugins/advlink/css/advlink.css create mode 100644 askbot/media/js/tinymce/plugins/advlink/editor_plugin.js create mode 100644 askbot/media/js/tinymce/plugins/advlink/editor_plugin_src.js create mode 100644 askbot/media/js/tinymce/plugins/advlink/js/advlink.js create mode 100644 askbot/media/js/tinymce/plugins/advlink/langs/en_dlg.js create mode 100644 askbot/media/js/tinymce/plugins/advlink/link.htm create mode 100644 askbot/media/js/tinymce/plugins/advlist/editor_plugin.js create mode 100644 askbot/media/js/tinymce/plugins/advlist/editor_plugin_src.js create mode 100644 askbot/media/js/tinymce/plugins/askbot_attachment/editor_plugin.js create mode 100644 askbot/media/js/tinymce/plugins/askbot_attachment/langs/en.js create mode 100644 askbot/media/js/tinymce/plugins/askbot_attachment/langs/en_dlg.js create mode 100644 askbot/media/js/tinymce/plugins/askbot_imageuploader/editor_plugin.js create mode 100644 askbot/media/js/tinymce/plugins/askbot_imageuploader/langs/en.js create mode 100644 askbot/media/js/tinymce/plugins/askbot_imageuploader/langs/en_dlg.js create mode 100644 askbot/media/js/tinymce/plugins/autolink/editor_plugin.js create mode 100644 askbot/media/js/tinymce/plugins/autolink/editor_plugin_src.js create mode 100644 askbot/media/js/tinymce/plugins/autoresize/editor_plugin.js create mode 100644 askbot/media/js/tinymce/plugins/autoresize/editor_plugin_src.js create mode 100644 askbot/media/js/tinymce/plugins/autosave/editor_plugin.js create mode 100644 askbot/media/js/tinymce/plugins/autosave/editor_plugin_src.js create mode 100644 askbot/media/js/tinymce/plugins/autosave/langs/en.js create mode 100644 askbot/media/js/tinymce/plugins/bbcode/editor_plugin.js create mode 100644 askbot/media/js/tinymce/plugins/bbcode/editor_plugin_src.js create mode 100644 askbot/media/js/tinymce/plugins/contextmenu/editor_plugin.js create mode 100644 askbot/media/js/tinymce/plugins/contextmenu/editor_plugin_src.js create mode 100644 askbot/media/js/tinymce/plugins/directionality/editor_plugin.js create mode 100644 askbot/media/js/tinymce/plugins/directionality/editor_plugin_src.js create mode 100644 askbot/media/js/tinymce/plugins/emotions/editor_plugin.js create mode 100644 askbot/media/js/tinymce/plugins/emotions/editor_plugin_src.js create mode 100644 askbot/media/js/tinymce/plugins/emotions/emotions.htm create mode 100644 askbot/media/js/tinymce/plugins/emotions/img/smiley-cool.gif create mode 100644 askbot/media/js/tinymce/plugins/emotions/img/smiley-cry.gif create mode 100644 askbot/media/js/tinymce/plugins/emotions/img/smiley-embarassed.gif create mode 100644 askbot/media/js/tinymce/plugins/emotions/img/smiley-foot-in-mouth.gif create mode 100644 askbot/media/js/tinymce/plugins/emotions/img/smiley-frown.gif create mode 100644 askbot/media/js/tinymce/plugins/emotions/img/smiley-innocent.gif create mode 100644 askbot/media/js/tinymce/plugins/emotions/img/smiley-kiss.gif create mode 100644 askbot/media/js/tinymce/plugins/emotions/img/smiley-laughing.gif create mode 100644 askbot/media/js/tinymce/plugins/emotions/img/smiley-money-mouth.gif create mode 100644 askbot/media/js/tinymce/plugins/emotions/img/smiley-sealed.gif create mode 100644 askbot/media/js/tinymce/plugins/emotions/img/smiley-smile.gif create mode 100644 askbot/media/js/tinymce/plugins/emotions/img/smiley-surprised.gif create mode 100644 askbot/media/js/tinymce/plugins/emotions/img/smiley-tongue-out.gif create mode 100644 askbot/media/js/tinymce/plugins/emotions/img/smiley-undecided.gif create mode 100644 askbot/media/js/tinymce/plugins/emotions/img/smiley-wink.gif create mode 100644 askbot/media/js/tinymce/plugins/emotions/img/smiley-yell.gif create mode 100644 askbot/media/js/tinymce/plugins/emotions/js/emotions.js create mode 100644 askbot/media/js/tinymce/plugins/emotions/langs/en_dlg.js create mode 100644 askbot/media/js/tinymce/plugins/example/dialog.htm create mode 100644 askbot/media/js/tinymce/plugins/example/editor_plugin.js create mode 100644 askbot/media/js/tinymce/plugins/example/editor_plugin_src.js create mode 100644 askbot/media/js/tinymce/plugins/example/img/example.gif create mode 100644 askbot/media/js/tinymce/plugins/example/js/dialog.js create mode 100644 askbot/media/js/tinymce/plugins/example/langs/en.js create mode 100644 askbot/media/js/tinymce/plugins/example/langs/en_dlg.js create mode 100644 askbot/media/js/tinymce/plugins/example_dependency/editor_plugin.js create mode 100644 askbot/media/js/tinymce/plugins/example_dependency/editor_plugin_src.js create mode 100644 askbot/media/js/tinymce/plugins/fullpage/css/fullpage.css create mode 100644 askbot/media/js/tinymce/plugins/fullpage/editor_plugin.js create mode 100644 askbot/media/js/tinymce/plugins/fullpage/editor_plugin_src.js create mode 100644 askbot/media/js/tinymce/plugins/fullpage/fullpage.htm create mode 100644 askbot/media/js/tinymce/plugins/fullpage/js/fullpage.js create mode 100644 askbot/media/js/tinymce/plugins/fullpage/langs/en_dlg.js create mode 100644 askbot/media/js/tinymce/plugins/fullscreen/editor_plugin.js create mode 100644 askbot/media/js/tinymce/plugins/fullscreen/editor_plugin_src.js create mode 100644 askbot/media/js/tinymce/plugins/fullscreen/fullscreen.htm create mode 100644 askbot/media/js/tinymce/plugins/iespell/editor_plugin.js create mode 100644 askbot/media/js/tinymce/plugins/iespell/editor_plugin_src.js create mode 100644 askbot/media/js/tinymce/plugins/inlinepopups/editor_plugin.js create mode 100644 askbot/media/js/tinymce/plugins/inlinepopups/editor_plugin_src.js create mode 100644 askbot/media/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif create mode 100644 askbot/media/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/button.gif create mode 100644 askbot/media/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif create mode 100644 askbot/media/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif create mode 100644 askbot/media/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif create mode 100644 askbot/media/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif create mode 100644 askbot/media/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif create mode 100644 askbot/media/js/tinymce/plugins/inlinepopups/skins/clearlooks2/window.css create mode 100644 askbot/media/js/tinymce/plugins/inlinepopups/template.htm create mode 100644 askbot/media/js/tinymce/plugins/insertdatetime/editor_plugin.js create mode 100644 askbot/media/js/tinymce/plugins/insertdatetime/editor_plugin_src.js create mode 100644 askbot/media/js/tinymce/plugins/layer/editor_plugin.js create mode 100644 askbot/media/js/tinymce/plugins/layer/editor_plugin_src.js create mode 100644 askbot/media/js/tinymce/plugins/legacyoutput/editor_plugin.js create mode 100644 askbot/media/js/tinymce/plugins/legacyoutput/editor_plugin_src.js create mode 100644 askbot/media/js/tinymce/plugins/lists/editor_plugin.js create mode 100644 askbot/media/js/tinymce/plugins/lists/editor_plugin_src.js create mode 100644 askbot/media/js/tinymce/plugins/media/css/media.css create mode 100644 askbot/media/js/tinymce/plugins/media/editor_plugin.js create mode 100644 askbot/media/js/tinymce/plugins/media/editor_plugin_src.js create mode 100644 askbot/media/js/tinymce/plugins/media/js/embed.js create mode 100644 askbot/media/js/tinymce/plugins/media/js/media.js create mode 100644 askbot/media/js/tinymce/plugins/media/langs/en_dlg.js create mode 100644 askbot/media/js/tinymce/plugins/media/media.htm create mode 100644 askbot/media/js/tinymce/plugins/media/moxieplayer.swf create mode 100644 askbot/media/js/tinymce/plugins/nonbreaking/editor_plugin.js create mode 100644 askbot/media/js/tinymce/plugins/nonbreaking/editor_plugin_src.js create mode 100644 askbot/media/js/tinymce/plugins/noneditable/editor_plugin.js create mode 100644 askbot/media/js/tinymce/plugins/noneditable/editor_plugin_src.js create mode 100644 askbot/media/js/tinymce/plugins/pagebreak/editor_plugin.js create mode 100644 askbot/media/js/tinymce/plugins/pagebreak/editor_plugin_src.js create mode 100644 askbot/media/js/tinymce/plugins/paste/editor_plugin.js create mode 100644 askbot/media/js/tinymce/plugins/paste/editor_plugin_src.js create mode 100644 askbot/media/js/tinymce/plugins/paste/js/pastetext.js create mode 100644 askbot/media/js/tinymce/plugins/paste/js/pasteword.js create mode 100644 askbot/media/js/tinymce/plugins/paste/langs/en_dlg.js create mode 100644 askbot/media/js/tinymce/plugins/paste/pastetext.htm create mode 100644 askbot/media/js/tinymce/plugins/paste/pasteword.htm create mode 100644 askbot/media/js/tinymce/plugins/preview/editor_plugin.js create mode 100644 askbot/media/js/tinymce/plugins/preview/editor_plugin_src.js create mode 100644 askbot/media/js/tinymce/plugins/preview/example.html create mode 100644 askbot/media/js/tinymce/plugins/preview/jscripts/embed.js create mode 100644 askbot/media/js/tinymce/plugins/preview/preview.html create mode 100644 askbot/media/js/tinymce/plugins/print/editor_plugin.js create mode 100644 askbot/media/js/tinymce/plugins/print/editor_plugin_src.js create mode 100644 askbot/media/js/tinymce/plugins/save/editor_plugin.js create mode 100644 askbot/media/js/tinymce/plugins/save/editor_plugin_src.js create mode 100644 askbot/media/js/tinymce/plugins/searchreplace/css/searchreplace.css create mode 100644 askbot/media/js/tinymce/plugins/searchreplace/editor_plugin.js create mode 100644 askbot/media/js/tinymce/plugins/searchreplace/editor_plugin_src.js create mode 100644 askbot/media/js/tinymce/plugins/searchreplace/js/searchreplace.js create mode 100644 askbot/media/js/tinymce/plugins/searchreplace/langs/en_dlg.js create mode 100644 askbot/media/js/tinymce/plugins/searchreplace/searchreplace.htm create mode 100644 askbot/media/js/tinymce/plugins/spellchecker/css/content.css create mode 100644 askbot/media/js/tinymce/plugins/spellchecker/editor_plugin.js create mode 100644 askbot/media/js/tinymce/plugins/spellchecker/editor_plugin_src.js create mode 100644 askbot/media/js/tinymce/plugins/spellchecker/img/wline.gif create mode 100644 askbot/media/js/tinymce/plugins/style/css/props.css create mode 100644 askbot/media/js/tinymce/plugins/style/editor_plugin.js create mode 100644 askbot/media/js/tinymce/plugins/style/editor_plugin_src.js create mode 100644 askbot/media/js/tinymce/plugins/style/js/props.js create mode 100644 askbot/media/js/tinymce/plugins/style/langs/en_dlg.js create mode 100644 askbot/media/js/tinymce/plugins/style/props.htm create mode 100644 askbot/media/js/tinymce/plugins/style/readme.txt create mode 100644 askbot/media/js/tinymce/plugins/tabfocus/editor_plugin.js create mode 100644 askbot/media/js/tinymce/plugins/tabfocus/editor_plugin_src.js create mode 100644 askbot/media/js/tinymce/plugins/table/cell.htm create mode 100644 askbot/media/js/tinymce/plugins/table/css/cell.css create mode 100644 askbot/media/js/tinymce/plugins/table/css/row.css create mode 100644 askbot/media/js/tinymce/plugins/table/css/table.css create mode 100644 askbot/media/js/tinymce/plugins/table/editor_plugin.js create mode 100644 askbot/media/js/tinymce/plugins/table/editor_plugin_src.js create mode 100644 askbot/media/js/tinymce/plugins/table/js/cell.js create mode 100644 askbot/media/js/tinymce/plugins/table/js/merge_cells.js create mode 100644 askbot/media/js/tinymce/plugins/table/js/row.js create mode 100644 askbot/media/js/tinymce/plugins/table/js/table.js create mode 100644 askbot/media/js/tinymce/plugins/table/langs/en_dlg.js create mode 100644 askbot/media/js/tinymce/plugins/table/merge_cells.htm create mode 100644 askbot/media/js/tinymce/plugins/table/row.htm create mode 100644 askbot/media/js/tinymce/plugins/table/table.htm create mode 100644 askbot/media/js/tinymce/plugins/template/blank.htm create mode 100644 askbot/media/js/tinymce/plugins/template/css/template.css create mode 100644 askbot/media/js/tinymce/plugins/template/editor_plugin.js create mode 100644 askbot/media/js/tinymce/plugins/template/editor_plugin_src.js create mode 100644 askbot/media/js/tinymce/plugins/template/js/template.js create mode 100644 askbot/media/js/tinymce/plugins/template/langs/en_dlg.js create mode 100644 askbot/media/js/tinymce/plugins/template/template.htm create mode 100644 askbot/media/js/tinymce/plugins/visualblocks/css/visualblocks.css create mode 100644 askbot/media/js/tinymce/plugins/visualblocks/editor_plugin.js create mode 100644 askbot/media/js/tinymce/plugins/visualblocks/editor_plugin_src.js create mode 100644 askbot/media/js/tinymce/plugins/visualchars/editor_plugin.js create mode 100644 askbot/media/js/tinymce/plugins/visualchars/editor_plugin_src.js create mode 100644 askbot/media/js/tinymce/plugins/wordcount/editor_plugin.js create mode 100644 askbot/media/js/tinymce/plugins/wordcount/editor_plugin_src.js create mode 100644 askbot/media/js/tinymce/plugins/xhtmlxtras/abbr.htm create mode 100644 askbot/media/js/tinymce/plugins/xhtmlxtras/acronym.htm create mode 100644 askbot/media/js/tinymce/plugins/xhtmlxtras/attributes.htm create mode 100644 askbot/media/js/tinymce/plugins/xhtmlxtras/cite.htm create mode 100644 askbot/media/js/tinymce/plugins/xhtmlxtras/css/attributes.css create mode 100644 askbot/media/js/tinymce/plugins/xhtmlxtras/css/popup.css create mode 100644 askbot/media/js/tinymce/plugins/xhtmlxtras/del.htm create mode 100644 askbot/media/js/tinymce/plugins/xhtmlxtras/editor_plugin.js create mode 100644 askbot/media/js/tinymce/plugins/xhtmlxtras/editor_plugin_src.js create mode 100644 askbot/media/js/tinymce/plugins/xhtmlxtras/ins.htm create mode 100644 askbot/media/js/tinymce/plugins/xhtmlxtras/js/abbr.js create mode 100644 askbot/media/js/tinymce/plugins/xhtmlxtras/js/acronym.js create mode 100644 askbot/media/js/tinymce/plugins/xhtmlxtras/js/attributes.js create mode 100644 askbot/media/js/tinymce/plugins/xhtmlxtras/js/cite.js create mode 100644 askbot/media/js/tinymce/plugins/xhtmlxtras/js/del.js create mode 100644 askbot/media/js/tinymce/plugins/xhtmlxtras/js/element_common.js create mode 100644 askbot/media/js/tinymce/plugins/xhtmlxtras/js/ins.js create mode 100644 askbot/media/js/tinymce/plugins/xhtmlxtras/langs/en_dlg.js create mode 100644 askbot/media/js/tinymce/themes/advanced/about.htm create mode 100644 askbot/media/js/tinymce/themes/advanced/anchor.htm create mode 100644 askbot/media/js/tinymce/themes/advanced/charmap.htm create mode 100644 askbot/media/js/tinymce/themes/advanced/color_picker.htm create mode 100644 askbot/media/js/tinymce/themes/advanced/editor_template.js create mode 100644 askbot/media/js/tinymce/themes/advanced/editor_template_src.js create mode 100644 askbot/media/js/tinymce/themes/advanced/image.htm create mode 100644 askbot/media/js/tinymce/themes/advanced/img/colorpicker.jpg create mode 100644 askbot/media/js/tinymce/themes/advanced/img/flash.gif create mode 100644 askbot/media/js/tinymce/themes/advanced/img/icons.gif create mode 100644 askbot/media/js/tinymce/themes/advanced/img/iframe.gif create mode 100644 askbot/media/js/tinymce/themes/advanced/img/pagebreak.gif create mode 100644 askbot/media/js/tinymce/themes/advanced/img/quicktime.gif create mode 100644 askbot/media/js/tinymce/themes/advanced/img/realmedia.gif create mode 100644 askbot/media/js/tinymce/themes/advanced/img/shockwave.gif create mode 100644 askbot/media/js/tinymce/themes/advanced/img/trans.gif create mode 100644 askbot/media/js/tinymce/themes/advanced/img/video.gif create mode 100644 askbot/media/js/tinymce/themes/advanced/img/windowsmedia.gif create mode 100644 askbot/media/js/tinymce/themes/advanced/js/about.js create mode 100644 askbot/media/js/tinymce/themes/advanced/js/anchor.js create mode 100644 askbot/media/js/tinymce/themes/advanced/js/charmap.js create mode 100644 askbot/media/js/tinymce/themes/advanced/js/color_picker.js create mode 100644 askbot/media/js/tinymce/themes/advanced/js/image.js create mode 100644 askbot/media/js/tinymce/themes/advanced/js/link.js create mode 100644 askbot/media/js/tinymce/themes/advanced/js/source_editor.js create mode 100644 askbot/media/js/tinymce/themes/advanced/langs/en.js create mode 100644 askbot/media/js/tinymce/themes/advanced/langs/en_dlg.js create mode 100644 askbot/media/js/tinymce/themes/advanced/link.htm create mode 100644 askbot/media/js/tinymce/themes/advanced/shortcuts.htm create mode 100644 askbot/media/js/tinymce/themes/advanced/skins/default/content.css create mode 100644 askbot/media/js/tinymce/themes/advanced/skins/default/dialog.css create mode 100644 askbot/media/js/tinymce/themes/advanced/skins/default/img/buttons.png create mode 100644 askbot/media/js/tinymce/themes/advanced/skins/default/img/items.gif create mode 100644 askbot/media/js/tinymce/themes/advanced/skins/default/img/menu_arrow.gif create mode 100644 askbot/media/js/tinymce/themes/advanced/skins/default/img/menu_check.gif create mode 100644 askbot/media/js/tinymce/themes/advanced/skins/default/img/progress.gif create mode 100644 askbot/media/js/tinymce/themes/advanced/skins/default/img/tabs.gif create mode 100644 askbot/media/js/tinymce/themes/advanced/skins/default/ui.css create mode 100644 askbot/media/js/tinymce/themes/advanced/skins/highcontrast/content.css create mode 100644 askbot/media/js/tinymce/themes/advanced/skins/highcontrast/dialog.css create mode 100644 askbot/media/js/tinymce/themes/advanced/skins/highcontrast/ui.css create mode 100644 askbot/media/js/tinymce/themes/advanced/skins/o2k7/content.css create mode 100644 askbot/media/js/tinymce/themes/advanced/skins/o2k7/dialog.css create mode 100644 askbot/media/js/tinymce/themes/advanced/skins/o2k7/img/button_bg.png create mode 100644 askbot/media/js/tinymce/themes/advanced/skins/o2k7/img/button_bg_black.png create mode 100644 askbot/media/js/tinymce/themes/advanced/skins/o2k7/img/button_bg_silver.png create mode 100644 askbot/media/js/tinymce/themes/advanced/skins/o2k7/ui.css create mode 100644 askbot/media/js/tinymce/themes/advanced/skins/o2k7/ui_black.css create mode 100644 askbot/media/js/tinymce/themes/advanced/skins/o2k7/ui_silver.css create mode 100644 askbot/media/js/tinymce/themes/advanced/source_editor.htm create mode 100644 askbot/media/js/tinymce/themes/simple/editor_template.js create mode 100644 askbot/media/js/tinymce/themes/simple/editor_template_src.js create mode 100644 askbot/media/js/tinymce/themes/simple/img/icons.gif create mode 100644 askbot/media/js/tinymce/themes/simple/langs/en.js create mode 100644 askbot/media/js/tinymce/themes/simple/skins/default/content.css create mode 100644 askbot/media/js/tinymce/themes/simple/skins/default/ui.css create mode 100644 askbot/media/js/tinymce/themes/simple/skins/o2k7/content.css create mode 100644 askbot/media/js/tinymce/themes/simple/skins/o2k7/img/button_bg.png create mode 100644 askbot/media/js/tinymce/themes/simple/skins/o2k7/ui.css create mode 100644 askbot/media/js/tinymce/tiny_mce.js create mode 100644 askbot/media/js/tinymce/tiny_mce_popup.js create mode 100644 askbot/media/js/tinymce/tiny_mce_src.js create mode 100644 askbot/media/js/tinymce/utils/editable_selects.js create mode 100644 askbot/media/js/tinymce/utils/form_utils.js create mode 100644 askbot/media/js/tinymce/utils/mctabs.js create mode 100644 askbot/media/js/tinymce/utils/validate.js create mode 100644 askbot/media/js/user.js create mode 100644 askbot/media/js/utils.js create mode 100644 askbot/media/js/wmd/images/editor-toolbar-background.png create mode 100755 askbot/media/js/wmd/images/wmd-buttons.png create mode 100644 askbot/media/js/wmd/showdown-min.js create mode 100644 askbot/media/js/wmd/showdown.js create mode 100644 askbot/media/js/wmd/wmd-min.js create mode 100644 askbot/media/js/wmd/wmd-test.html create mode 100644 askbot/media/js/wmd/wmd.css create mode 100644 askbot/media/js/wmd/wmd.js create mode 100644 askbot/media/style/auth.css create mode 100644 askbot/media/style/jquery.autocomplete.css create mode 100644 askbot/media/style/lib_style.css create mode 100644 askbot/media/style/lib_style.less create mode 100644 askbot/media/style/openid.css create mode 100644 askbot/media/style/prettify.css create mode 100644 askbot/media/style/style.css create mode 100644 askbot/media/style/style.less create mode 100644 askbot/media/style/tinymce/content.css delete mode 100644 askbot/skins/default/media/bootstrap/bootstrap.zip delete mode 100644 askbot/skins/default/media/bootstrap/css/bootstrap.css delete mode 100644 askbot/skins/default/media/bootstrap/css/bootstrap.min.css delete mode 100644 askbot/skins/default/media/bootstrap/img/glyphicons-halflings-white.png delete mode 100644 askbot/skins/default/media/bootstrap/img/glyphicons-halflings.png delete mode 100644 askbot/skins/default/media/bootstrap/js/bootstrap.js delete mode 100644 askbot/skins/default/media/bootstrap/js/bootstrap.min.js delete mode 100644 askbot/skins/default/media/images/OFL.txt delete mode 100644 askbot/skins/default/media/images/OpenSans-CondBold.ttf delete mode 100644 askbot/skins/default/media/images/OpenSans-CondLight.ttf delete mode 100644 askbot/skins/default/media/images/OpenSans-CondLightItalic.ttf delete mode 100644 askbot/skins/default/media/images/YanoneKaffeesatz-Bold.ttf delete mode 100644 askbot/skins/default/media/images/YanoneKaffeesatz-ExtraLight.ttf delete mode 100644 askbot/skins/default/media/images/YanoneKaffeesatz-Light.ttf delete mode 100644 askbot/skins/default/media/images/YanoneKaffeesatz-Regular.ttf delete mode 100644 askbot/skins/default/media/images/Yanone_Kaffeesatz.zip delete mode 100644 askbot/skins/default/media/images/accept.png delete mode 100644 askbot/skins/default/media/images/anon.png delete mode 100644 askbot/skins/default/media/images/answers-background.png delete mode 100644 askbot/skins/default/media/images/attachment.png delete mode 100644 askbot/skins/default/media/images/background-user-info.png delete mode 100644 askbot/skins/default/media/images/bigbutton.png delete mode 100644 askbot/skins/default/media/images/bigbuttonhover.png delete mode 100755 askbot/skins/default/media/images/blue-up-arrow-h18px.png delete mode 100755 askbot/skins/default/media/images/box-arrow.gif delete mode 100755 askbot/skins/default/media/images/bullet_green.gif delete mode 100755 askbot/skins/default/media/images/cc-88x31.png delete mode 100644 askbot/skins/default/media/images/cc-by-sa.png delete mode 100644 askbot/skins/default/media/images/close-small-dark.png delete mode 100755 askbot/skins/default/media/images/close-small-hover.png delete mode 100755 askbot/skins/default/media/images/close-small.png delete mode 100644 askbot/skins/default/media/images/close.png delete mode 100644 askbot/skins/default/media/images/comment-background.png delete mode 100644 askbot/skins/default/media/images/comment.png delete mode 100644 askbot/skins/default/media/images/contributorsback.png delete mode 100755 askbot/skins/default/media/images/dash.gif delete mode 100644 askbot/skins/default/media/images/delete.png delete mode 100644 askbot/skins/default/media/images/dialog-warning-off.png delete mode 100644 askbot/skins/default/media/images/dialog-warning.png delete mode 100755 askbot/skins/default/media/images/djangomade124x25_grey.gif delete mode 100755 askbot/skins/default/media/images/dot-g.gif delete mode 100755 askbot/skins/default/media/images/dot-list.gif delete mode 100755 askbot/skins/default/media/images/edit.png delete mode 100644 askbot/skins/default/media/images/edit2.png delete mode 100755 askbot/skins/default/media/images/expander-arrow-hide.gif delete mode 100755 askbot/skins/default/media/images/expander-arrow-show.gif delete mode 100644 askbot/skins/default/media/images/favicon.gif delete mode 100644 askbot/skins/default/media/images/favicon.ico delete mode 100644 askbot/skins/default/media/images/feed-icon-small.png delete mode 100644 askbot/skins/default/media/images/flag.png delete mode 100755 askbot/skins/default/media/images/flags/ad.gif delete mode 100755 askbot/skins/default/media/images/flags/ae.gif delete mode 100755 askbot/skins/default/media/images/flags/af.gif delete mode 100755 askbot/skins/default/media/images/flags/ag.gif delete mode 100755 askbot/skins/default/media/images/flags/ai.gif delete mode 100755 askbot/skins/default/media/images/flags/al.gif delete mode 100755 askbot/skins/default/media/images/flags/am.gif delete mode 100755 askbot/skins/default/media/images/flags/an.gif delete mode 100644 askbot/skins/default/media/images/flags/ao.gif delete mode 100755 askbot/skins/default/media/images/flags/ar.gif delete mode 100755 askbot/skins/default/media/images/flags/as.gif delete mode 100755 askbot/skins/default/media/images/flags/at.gif delete mode 100755 askbot/skins/default/media/images/flags/au.gif delete mode 100755 askbot/skins/default/media/images/flags/aw.gif delete mode 100755 askbot/skins/default/media/images/flags/ax.gif delete mode 100755 askbot/skins/default/media/images/flags/az.gif delete mode 100755 askbot/skins/default/media/images/flags/ba.gif delete mode 100755 askbot/skins/default/media/images/flags/bb.gif delete mode 100755 askbot/skins/default/media/images/flags/bd.gif delete mode 100755 askbot/skins/default/media/images/flags/be.gif delete mode 100755 askbot/skins/default/media/images/flags/bf.gif delete mode 100755 askbot/skins/default/media/images/flags/bg.gif delete mode 100755 askbot/skins/default/media/images/flags/bh.gif delete mode 100755 askbot/skins/default/media/images/flags/bi.gif delete mode 100755 askbot/skins/default/media/images/flags/bj.gif delete mode 100755 askbot/skins/default/media/images/flags/bm.gif delete mode 100755 askbot/skins/default/media/images/flags/bn.gif delete mode 100755 askbot/skins/default/media/images/flags/bo.gif delete mode 100755 askbot/skins/default/media/images/flags/br.gif delete mode 100755 askbot/skins/default/media/images/flags/bs.gif delete mode 100755 askbot/skins/default/media/images/flags/bt.gif delete mode 100755 askbot/skins/default/media/images/flags/bv.gif delete mode 100755 askbot/skins/default/media/images/flags/bw.gif delete mode 100755 askbot/skins/default/media/images/flags/by.gif delete mode 100755 askbot/skins/default/media/images/flags/bz.gif delete mode 100755 askbot/skins/default/media/images/flags/ca.gif delete mode 100644 askbot/skins/default/media/images/flags/catalonia.gif delete mode 100755 askbot/skins/default/media/images/flags/cc.gif delete mode 100644 askbot/skins/default/media/images/flags/cd.gif delete mode 100755 askbot/skins/default/media/images/flags/cf.gif delete mode 100755 askbot/skins/default/media/images/flags/cg.gif delete mode 100755 askbot/skins/default/media/images/flags/ch.gif delete mode 100755 askbot/skins/default/media/images/flags/ci.gif delete mode 100755 askbot/skins/default/media/images/flags/ck.gif delete mode 100755 askbot/skins/default/media/images/flags/cl.gif delete mode 100755 askbot/skins/default/media/images/flags/cm.gif delete mode 100755 askbot/skins/default/media/images/flags/cn.gif delete mode 100755 askbot/skins/default/media/images/flags/co.gif delete mode 100755 askbot/skins/default/media/images/flags/cr.gif delete mode 100755 askbot/skins/default/media/images/flags/cs.gif delete mode 100755 askbot/skins/default/media/images/flags/cu.gif delete mode 100755 askbot/skins/default/media/images/flags/cv.gif delete mode 100755 askbot/skins/default/media/images/flags/cx.gif delete mode 100755 askbot/skins/default/media/images/flags/cy.gif delete mode 100755 askbot/skins/default/media/images/flags/cz.gif delete mode 100755 askbot/skins/default/media/images/flags/de.gif delete mode 100755 askbot/skins/default/media/images/flags/dj.gif delete mode 100755 askbot/skins/default/media/images/flags/dk.gif delete mode 100755 askbot/skins/default/media/images/flags/dm.gif delete mode 100755 askbot/skins/default/media/images/flags/do.gif delete mode 100755 askbot/skins/default/media/images/flags/dz.gif delete mode 100755 askbot/skins/default/media/images/flags/ec.gif delete mode 100755 askbot/skins/default/media/images/flags/ee.gif delete mode 100755 askbot/skins/default/media/images/flags/eg.gif delete mode 100755 askbot/skins/default/media/images/flags/eh.gif delete mode 100755 askbot/skins/default/media/images/flags/england.gif delete mode 100755 askbot/skins/default/media/images/flags/er.gif delete mode 100755 askbot/skins/default/media/images/flags/es.gif delete mode 100755 askbot/skins/default/media/images/flags/et.gif delete mode 100644 askbot/skins/default/media/images/flags/europeanunion.gif delete mode 100755 askbot/skins/default/media/images/flags/fam.gif delete mode 100755 askbot/skins/default/media/images/flags/fi.gif delete mode 100755 askbot/skins/default/media/images/flags/fj.gif delete mode 100755 askbot/skins/default/media/images/flags/fk.gif delete mode 100755 askbot/skins/default/media/images/flags/fm.gif delete mode 100755 askbot/skins/default/media/images/flags/fo.gif delete mode 100755 askbot/skins/default/media/images/flags/fr.gif delete mode 100755 askbot/skins/default/media/images/flags/ga.gif delete mode 100644 askbot/skins/default/media/images/flags/gb.gif delete mode 100755 askbot/skins/default/media/images/flags/gd.gif delete mode 100755 askbot/skins/default/media/images/flags/ge.gif delete mode 100755 askbot/skins/default/media/images/flags/gf.gif delete mode 100755 askbot/skins/default/media/images/flags/gh.gif delete mode 100755 askbot/skins/default/media/images/flags/gi.gif delete mode 100755 askbot/skins/default/media/images/flags/gl.gif delete mode 100755 askbot/skins/default/media/images/flags/gm.gif delete mode 100755 askbot/skins/default/media/images/flags/gn.gif delete mode 100755 askbot/skins/default/media/images/flags/gp.gif delete mode 100755 askbot/skins/default/media/images/flags/gq.gif delete mode 100755 askbot/skins/default/media/images/flags/gr.gif delete mode 100755 askbot/skins/default/media/images/flags/gs.gif delete mode 100755 askbot/skins/default/media/images/flags/gt.gif delete mode 100755 askbot/skins/default/media/images/flags/gu.gif delete mode 100755 askbot/skins/default/media/images/flags/gw.gif delete mode 100755 askbot/skins/default/media/images/flags/gy.gif delete mode 100755 askbot/skins/default/media/images/flags/hk.gif delete mode 100755 askbot/skins/default/media/images/flags/hm.gif delete mode 100755 askbot/skins/default/media/images/flags/hn.gif delete mode 100755 askbot/skins/default/media/images/flags/hr.gif delete mode 100755 askbot/skins/default/media/images/flags/ht.gif delete mode 100755 askbot/skins/default/media/images/flags/hu.gif delete mode 100755 askbot/skins/default/media/images/flags/id.gif delete mode 100755 askbot/skins/default/media/images/flags/ie.gif delete mode 100755 askbot/skins/default/media/images/flags/il.gif delete mode 100755 askbot/skins/default/media/images/flags/in.gif delete mode 100755 askbot/skins/default/media/images/flags/io.gif delete mode 100755 askbot/skins/default/media/images/flags/iq.gif delete mode 100755 askbot/skins/default/media/images/flags/ir.gif delete mode 100755 askbot/skins/default/media/images/flags/is.gif delete mode 100755 askbot/skins/default/media/images/flags/it.gif delete mode 100755 askbot/skins/default/media/images/flags/jm.gif delete mode 100755 askbot/skins/default/media/images/flags/jo.gif delete mode 100755 askbot/skins/default/media/images/flags/jp.gif delete mode 100755 askbot/skins/default/media/images/flags/ke.gif delete mode 100755 askbot/skins/default/media/images/flags/kg.gif delete mode 100755 askbot/skins/default/media/images/flags/kh.gif delete mode 100755 askbot/skins/default/media/images/flags/ki.gif delete mode 100755 askbot/skins/default/media/images/flags/km.gif delete mode 100755 askbot/skins/default/media/images/flags/kn.gif delete mode 100755 askbot/skins/default/media/images/flags/kp.gif delete mode 100755 askbot/skins/default/media/images/flags/kr.gif delete mode 100755 askbot/skins/default/media/images/flags/kw.gif delete mode 100755 askbot/skins/default/media/images/flags/ky.gif delete mode 100755 askbot/skins/default/media/images/flags/kz.gif delete mode 100755 askbot/skins/default/media/images/flags/la.gif delete mode 100755 askbot/skins/default/media/images/flags/lb.gif delete mode 100644 askbot/skins/default/media/images/flags/lc.gif delete mode 100755 askbot/skins/default/media/images/flags/li.gif delete mode 100755 askbot/skins/default/media/images/flags/lk.gif delete mode 100755 askbot/skins/default/media/images/flags/lr.gif delete mode 100755 askbot/skins/default/media/images/flags/ls.gif delete mode 100755 askbot/skins/default/media/images/flags/lt.gif delete mode 100755 askbot/skins/default/media/images/flags/lu.gif delete mode 100755 askbot/skins/default/media/images/flags/lv.gif delete mode 100755 askbot/skins/default/media/images/flags/ly.gif delete mode 100755 askbot/skins/default/media/images/flags/ma.gif delete mode 100755 askbot/skins/default/media/images/flags/mc.gif delete mode 100755 askbot/skins/default/media/images/flags/md.gif delete mode 100644 askbot/skins/default/media/images/flags/me.gif delete mode 100755 askbot/skins/default/media/images/flags/mg.gif delete mode 100755 askbot/skins/default/media/images/flags/mh.gif delete mode 100755 askbot/skins/default/media/images/flags/mk.gif delete mode 100755 askbot/skins/default/media/images/flags/ml.gif delete mode 100755 askbot/skins/default/media/images/flags/mm.gif delete mode 100755 askbot/skins/default/media/images/flags/mn.gif delete mode 100755 askbot/skins/default/media/images/flags/mo.gif delete mode 100755 askbot/skins/default/media/images/flags/mp.gif delete mode 100755 askbot/skins/default/media/images/flags/mq.gif delete mode 100755 askbot/skins/default/media/images/flags/mr.gif delete mode 100755 askbot/skins/default/media/images/flags/ms.gif delete mode 100755 askbot/skins/default/media/images/flags/mt.gif delete mode 100755 askbot/skins/default/media/images/flags/mu.gif delete mode 100755 askbot/skins/default/media/images/flags/mv.gif delete mode 100755 askbot/skins/default/media/images/flags/mw.gif delete mode 100755 askbot/skins/default/media/images/flags/mx.gif delete mode 100755 askbot/skins/default/media/images/flags/my.gif delete mode 100755 askbot/skins/default/media/images/flags/mz.gif delete mode 100755 askbot/skins/default/media/images/flags/na.gif delete mode 100755 askbot/skins/default/media/images/flags/nc.gif delete mode 100755 askbot/skins/default/media/images/flags/ne.gif delete mode 100755 askbot/skins/default/media/images/flags/nf.gif delete mode 100755 askbot/skins/default/media/images/flags/ng.gif delete mode 100755 askbot/skins/default/media/images/flags/ni.gif delete mode 100755 askbot/skins/default/media/images/flags/nl.gif delete mode 100755 askbot/skins/default/media/images/flags/no.gif delete mode 100755 askbot/skins/default/media/images/flags/np.gif delete mode 100755 askbot/skins/default/media/images/flags/nr.gif delete mode 100755 askbot/skins/default/media/images/flags/nu.gif delete mode 100755 askbot/skins/default/media/images/flags/nz.gif delete mode 100755 askbot/skins/default/media/images/flags/om.gif delete mode 100755 askbot/skins/default/media/images/flags/pa.gif delete mode 100755 askbot/skins/default/media/images/flags/pe.gif delete mode 100755 askbot/skins/default/media/images/flags/pf.gif delete mode 100755 askbot/skins/default/media/images/flags/pg.gif delete mode 100755 askbot/skins/default/media/images/flags/ph.gif delete mode 100755 askbot/skins/default/media/images/flags/pk.gif delete mode 100755 askbot/skins/default/media/images/flags/pl.gif delete mode 100755 askbot/skins/default/media/images/flags/pm.gif delete mode 100755 askbot/skins/default/media/images/flags/pn.gif delete mode 100755 askbot/skins/default/media/images/flags/pr.gif delete mode 100755 askbot/skins/default/media/images/flags/ps.gif delete mode 100755 askbot/skins/default/media/images/flags/pt.gif delete mode 100755 askbot/skins/default/media/images/flags/pw.gif delete mode 100755 askbot/skins/default/media/images/flags/py.gif delete mode 100755 askbot/skins/default/media/images/flags/qa.gif delete mode 100755 askbot/skins/default/media/images/flags/re.gif delete mode 100755 askbot/skins/default/media/images/flags/ro.gif delete mode 100644 askbot/skins/default/media/images/flags/rs.gif delete mode 100755 askbot/skins/default/media/images/flags/ru.gif delete mode 100755 askbot/skins/default/media/images/flags/rw.gif delete mode 100755 askbot/skins/default/media/images/flags/sa.gif delete mode 100755 askbot/skins/default/media/images/flags/sb.gif delete mode 100755 askbot/skins/default/media/images/flags/sc.gif delete mode 100755 askbot/skins/default/media/images/flags/scotland.gif delete mode 100755 askbot/skins/default/media/images/flags/sd.gif delete mode 100755 askbot/skins/default/media/images/flags/se.gif delete mode 100755 askbot/skins/default/media/images/flags/sg.gif delete mode 100755 askbot/skins/default/media/images/flags/sh.gif delete mode 100755 askbot/skins/default/media/images/flags/si.gif delete mode 100755 askbot/skins/default/media/images/flags/sj.gif delete mode 100755 askbot/skins/default/media/images/flags/sk.gif delete mode 100755 askbot/skins/default/media/images/flags/sl.gif delete mode 100755 askbot/skins/default/media/images/flags/sm.gif delete mode 100755 askbot/skins/default/media/images/flags/sn.gif delete mode 100755 askbot/skins/default/media/images/flags/so.gif delete mode 100755 askbot/skins/default/media/images/flags/sr.gif delete mode 100755 askbot/skins/default/media/images/flags/st.gif delete mode 100755 askbot/skins/default/media/images/flags/sv.gif delete mode 100755 askbot/skins/default/media/images/flags/sy.gif delete mode 100755 askbot/skins/default/media/images/flags/sz.gif delete mode 100755 askbot/skins/default/media/images/flags/tc.gif delete mode 100755 askbot/skins/default/media/images/flags/td.gif delete mode 100755 askbot/skins/default/media/images/flags/tf.gif delete mode 100755 askbot/skins/default/media/images/flags/tg.gif delete mode 100755 askbot/skins/default/media/images/flags/th.gif delete mode 100755 askbot/skins/default/media/images/flags/tj.gif delete mode 100755 askbot/skins/default/media/images/flags/tk.gif delete mode 100755 askbot/skins/default/media/images/flags/tl.gif delete mode 100755 askbot/skins/default/media/images/flags/tm.gif delete mode 100755 askbot/skins/default/media/images/flags/tn.gif delete mode 100755 askbot/skins/default/media/images/flags/to.gif delete mode 100755 askbot/skins/default/media/images/flags/tr.gif delete mode 100755 askbot/skins/default/media/images/flags/tt.gif delete mode 100755 askbot/skins/default/media/images/flags/tv.gif delete mode 100755 askbot/skins/default/media/images/flags/tw.gif delete mode 100755 askbot/skins/default/media/images/flags/tz.gif delete mode 100755 askbot/skins/default/media/images/flags/ua.gif delete mode 100755 askbot/skins/default/media/images/flags/ug.gif delete mode 100755 askbot/skins/default/media/images/flags/um.gif delete mode 100755 askbot/skins/default/media/images/flags/us.gif delete mode 100755 askbot/skins/default/media/images/flags/uy.gif delete mode 100755 askbot/skins/default/media/images/flags/uz.gif delete mode 100755 askbot/skins/default/media/images/flags/va.gif delete mode 100755 askbot/skins/default/media/images/flags/vc.gif delete mode 100755 askbot/skins/default/media/images/flags/ve.gif delete mode 100755 askbot/skins/default/media/images/flags/vg.gif delete mode 100755 askbot/skins/default/media/images/flags/vi.gif delete mode 100755 askbot/skins/default/media/images/flags/vn.gif delete mode 100755 askbot/skins/default/media/images/flags/vu.gif delete mode 100755 askbot/skins/default/media/images/flags/wales.gif delete mode 100755 askbot/skins/default/media/images/flags/wf.gif delete mode 100755 askbot/skins/default/media/images/flags/ws.gif delete mode 100755 askbot/skins/default/media/images/flags/ye.gif delete mode 100755 askbot/skins/default/media/images/flags/yt.gif delete mode 100755 askbot/skins/default/media/images/flags/za.gif delete mode 100755 askbot/skins/default/media/images/flags/zm.gif delete mode 100755 askbot/skins/default/media/images/flags/zw.gif delete mode 100644 askbot/skins/default/media/images/go-up-grey.png delete mode 100644 askbot/skins/default/media/images/go-up-orange.png delete mode 100755 askbot/skins/default/media/images/gray-up-arrow-h18px.png delete mode 100755 askbot/skins/default/media/images/grippie.png delete mode 100755 askbot/skins/default/media/images/indicator.gif delete mode 100644 askbot/skins/default/media/images/link.png delete mode 100644 askbot/skins/default/media/images/logo.gif delete mode 100644 askbot/skins/default/media/images/logo.png delete mode 100755 askbot/skins/default/media/images/logo1.png delete mode 100755 askbot/skins/default/media/images/logo2.png delete mode 100644 askbot/skins/default/media/images/mail-envelope-empty.png delete mode 100644 askbot/skins/default/media/images/mail-envelope-full.png delete mode 100755 askbot/skins/default/media/images/medala.gif delete mode 100755 askbot/skins/default/media/images/medala_on.gif delete mode 100644 askbot/skins/default/media/images/medium-button.png delete mode 100755 askbot/skins/default/media/images/new.gif delete mode 100755 askbot/skins/default/media/images/nophoto.png delete mode 100644 askbot/skins/default/media/images/notification.png delete mode 100755 askbot/skins/default/media/images/openid.gif delete mode 100755 askbot/skins/default/media/images/openid/aol.gif delete mode 100755 askbot/skins/default/media/images/openid/blogger.ico delete mode 100755 askbot/skins/default/media/images/openid/claimid.ico delete mode 100755 askbot/skins/default/media/images/openid/facebook.gif delete mode 100755 askbot/skins/default/media/images/openid/flickr.ico delete mode 100755 askbot/skins/default/media/images/openid/google.gif delete mode 100755 askbot/skins/default/media/images/openid/livejournal.ico delete mode 100755 askbot/skins/default/media/images/openid/myopenid.ico delete mode 100755 askbot/skins/default/media/images/openid/openid-inputicon.gif delete mode 100755 askbot/skins/default/media/images/openid/openid.gif delete mode 100755 askbot/skins/default/media/images/openid/technorati.ico delete mode 100755 askbot/skins/default/media/images/openid/twitter.png delete mode 100755 askbot/skins/default/media/images/openid/verisign.ico delete mode 100755 askbot/skins/default/media/images/openid/vidoop.ico delete mode 100755 askbot/skins/default/media/images/openid/wordpress.ico delete mode 100755 askbot/skins/default/media/images/openid/yahoo.gif delete mode 100644 askbot/skins/default/media/images/print.png delete mode 100644 askbot/skins/default/media/images/publish.png delete mode 100644 askbot/skins/default/media/images/pw-login.gif delete mode 100755 askbot/skins/default/media/images/quest-bg.gif delete mode 100644 askbot/skins/default/media/images/retag.png delete mode 100644 askbot/skins/default/media/images/scopearrow.png delete mode 100644 askbot/skins/default/media/images/small-button-blue.png delete mode 100644 askbot/skins/default/media/images/small-button-cancel.png delete mode 100644 askbot/skins/default/media/images/socialsprite.png delete mode 100644 askbot/skins/default/media/images/sprite.png delete mode 100644 askbot/skins/default/media/images/sprites.png delete mode 100644 askbot/skins/default/media/images/sprites_source/graphics.svg delete mode 100644 askbot/skins/default/media/images/sprites_source/other.svg delete mode 100644 askbot/skins/default/media/images/sprites_source/sprites.svg delete mode 100644 askbot/skins/default/media/images/summary-background.png delete mode 100644 askbot/skins/default/media/images/tag-left.png delete mode 100644 askbot/skins/default/media/images/tag-right.png delete mode 100644 askbot/skins/default/media/images/tips.png delete mode 100644 askbot/skins/default/media/images/unpublish.png delete mode 100644 askbot/skins/default/media/images/view-background.png delete mode 100755 askbot/skins/default/media/images/vote-accepted-on.png delete mode 100755 askbot/skins/default/media/images/vote-accepted.png delete mode 100644 askbot/skins/default/media/images/vote-arrow-down-new.png delete mode 100644 askbot/skins/default/media/images/vote-arrow-down-on-new.png delete mode 100755 askbot/skins/default/media/images/vote-arrow-down-on.png delete mode 100755 askbot/skins/default/media/images/vote-arrow-down.png delete mode 100644 askbot/skins/default/media/images/vote-arrow-up-new.png delete mode 100644 askbot/skins/default/media/images/vote-arrow-up-on-new.png delete mode 100755 askbot/skins/default/media/images/vote-arrow-up-on.png delete mode 100755 askbot/skins/default/media/images/vote-arrow-up.png delete mode 100644 askbot/skins/default/media/images/vote-background.png delete mode 100755 askbot/skins/default/media/images/vote-favorite-off.png delete mode 100755 askbot/skins/default/media/images/vote-favorite-on.png delete mode 100644 askbot/skins/default/media/images/wiki.png delete mode 100755 askbot/skins/default/media/jquery-openid/images/aol.gif delete mode 100755 askbot/skins/default/media/jquery-openid/images/blogger-1.png delete mode 100755 askbot/skins/default/media/jquery-openid/images/blogger.ico delete mode 100755 askbot/skins/default/media/jquery-openid/images/claimid-0.png delete mode 100755 askbot/skins/default/media/jquery-openid/images/claimid.ico delete mode 100755 askbot/skins/default/media/jquery-openid/images/facebook.gif delete mode 100755 askbot/skins/default/media/jquery-openid/images/flickr.ico delete mode 100755 askbot/skins/default/media/jquery-openid/images/flickr.png delete mode 100755 askbot/skins/default/media/jquery-openid/images/google.gif delete mode 100644 askbot/skins/default/media/jquery-openid/images/identica.png delete mode 100644 askbot/skins/default/media/jquery-openid/images/linkedin.gif delete mode 100755 askbot/skins/default/media/jquery-openid/images/livejournal-1.png delete mode 100755 askbot/skins/default/media/jquery-openid/images/livejournal.ico delete mode 100755 askbot/skins/default/media/jquery-openid/images/myopenid-2.png delete mode 100755 askbot/skins/default/media/jquery-openid/images/myopenid.ico delete mode 100755 askbot/skins/default/media/jquery-openid/images/openid-inputicon.gif delete mode 100755 askbot/skins/default/media/jquery-openid/images/openid.gif delete mode 100755 askbot/skins/default/media/jquery-openid/images/openidico.png delete mode 100755 askbot/skins/default/media/jquery-openid/images/openidico16.png delete mode 100755 askbot/skins/default/media/jquery-openid/images/technorati-1.png delete mode 100755 askbot/skins/default/media/jquery-openid/images/technorati.ico delete mode 100644 askbot/skins/default/media/jquery-openid/images/twitter.gif delete mode 100755 askbot/skins/default/media/jquery-openid/images/verisign-2.png delete mode 100755 askbot/skins/default/media/jquery-openid/images/verisign.ico delete mode 100755 askbot/skins/default/media/jquery-openid/images/vidoop.ico delete mode 100755 askbot/skins/default/media/jquery-openid/images/vidoop.png delete mode 100755 askbot/skins/default/media/jquery-openid/images/wordpress.ico delete mode 100755 askbot/skins/default/media/jquery-openid/images/wordpress.png delete mode 100755 askbot/skins/default/media/jquery-openid/images/yahoo.gif delete mode 100644 askbot/skins/default/media/jquery-openid/jquery.openid.js delete mode 100644 askbot/skins/default/media/jquery-openid/openid.css delete mode 100644 askbot/skins/default/media/js/autocompleter.js delete mode 100644 askbot/skins/default/media/js/compress.bat delete mode 100644 askbot/skins/default/media/js/editor.js delete mode 100644 askbot/skins/default/media/js/excanvas.min.js delete mode 100644 askbot/skins/default/media/js/flot-build.bat delete mode 100644 askbot/skins/default/media/js/group_messaging.js delete mode 100644 askbot/skins/default/media/js/jquery-1.4.3.js delete mode 100644 askbot/skins/default/media/js/jquery-1.7.2.min.js delete mode 100644 askbot/skins/default/media/js/jquery-fieldselection.js delete mode 100644 askbot/skins/default/media/js/jquery-fieldselection.min.js delete mode 100644 askbot/skins/default/media/js/jquery.ajaxfileupload.js delete mode 100644 askbot/skins/default/media/js/jquery.animate-colors.js delete mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/ajax.txt delete mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/example/10_b.jpg delete mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/example/10_s.jpg delete mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/example/11_b.jpg delete mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/example/11_s.jpg delete mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/example/12_b.jpg delete mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/example/12_s.jpg delete mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/example/1_b.jpg delete mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/example/1_s.jpg delete mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/example/2_b.jpg delete mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/example/2_s.jpg delete mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/example/3_b.jpg delete mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/example/3_s.jpg delete mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/example/4_b.jpg delete mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/example/4_s.jpg delete mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/example/5_b.jpg delete mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/example/5_s.jpg delete mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/example/6_b.jpg delete mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/example/6_s.jpg delete mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/example/7_b.jpg delete mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/example/7_s.jpg delete mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/example/8_b.jpg delete mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/example/8_s.jpg delete mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/example/9_b.jpg delete mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/example/9_s.jpg delete mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/fancybox/blank.gif delete mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/fancybox/fancy_close.png delete mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/fancybox/fancy_loading.png delete mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/fancybox/fancy_nav_left.png delete mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/fancybox/fancy_nav_right.png delete mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/fancybox/fancy_shadow_e.png delete mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/fancybox/fancy_shadow_n.png delete mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/fancybox/fancy_shadow_ne.png delete mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/fancybox/fancy_shadow_nw.png delete mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/fancybox/fancy_shadow_s.png delete mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/fancybox/fancy_shadow_se.png delete mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/fancybox/fancy_shadow_sw.png delete mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/fancybox/fancy_shadow_w.png delete mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/fancybox/fancy_title_left.png delete mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/fancybox/fancy_title_main.png delete mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/fancybox/fancy_title_over.png delete mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/fancybox/fancy_title_right.png delete mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/fancybox/fancybox-x.png delete mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/fancybox/fancybox-y.png delete mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/fancybox/fancybox.png delete mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/fancybox/jquery.easing-1.3.pack.js delete mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/fancybox/jquery.fancybox-1.3.4.css delete mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/fancybox/jquery.fancybox-1.3.4.js delete mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/fancybox/jquery.fancybox-1.3.4.pack.js delete mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/fancybox/jquery.mousewheel-3.0.4.pack.js delete mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/index.html delete mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/jquery-1.4.3.min.js delete mode 100644 askbot/skins/default/media/js/jquery.fancybox-1.3.4/style.css delete mode 100644 askbot/skins/default/media/js/jquery.flot.js delete mode 100644 askbot/skins/default/media/js/jquery.flot.min.js delete mode 100644 askbot/skins/default/media/js/jquery.form.js delete mode 100644 askbot/skins/default/media/js/jquery.history.js delete mode 100644 askbot/skins/default/media/js/jquery.i18n.js delete mode 100644 askbot/skins/default/media/js/jquery.openid.js delete mode 100644 askbot/skins/default/media/js/jquery.validate.js delete mode 100644 askbot/skins/default/media/js/jquery.validate.min.js delete mode 100644 askbot/skins/default/media/js/jquery.validate.pack.js delete mode 100644 askbot/skins/default/media/js/less.min.js delete mode 100644 askbot/skins/default/media/js/live_search.js delete mode 100644 askbot/skins/default/media/js/live_search_new_thread.js delete mode 100644 askbot/skins/default/media/js/modernizr.custom.js delete mode 100644 askbot/skins/default/media/js/output-words.html delete mode 100644 askbot/skins/default/media/js/output-words.js delete mode 100644 askbot/skins/default/media/js/post.js delete mode 100644 askbot/skins/default/media/js/se_hilite.js delete mode 100644 askbot/skins/default/media/js/se_hilite_src.js delete mode 100644 askbot/skins/default/media/js/tag_moderation.js delete mode 100644 askbot/skins/default/media/js/tag_selector.js delete mode 100644 askbot/skins/default/media/js/tinymce/langs/en.js delete mode 100644 askbot/skins/default/media/js/tinymce/license.txt delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/advhr/css/advhr.css delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/advhr/editor_plugin.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/advhr/editor_plugin_src.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/advhr/js/rule.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/advhr/langs/en_dlg.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/advhr/rule.htm delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/advimage/css/advimage.css delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/advimage/editor_plugin.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/advimage/editor_plugin_src.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/advimage/image.htm delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/advimage/img/sample.gif delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/advimage/js/image.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/advimage/langs/en_dlg.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/advlink/css/advlink.css delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/advlink/editor_plugin.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/advlink/editor_plugin_src.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/advlink/js/advlink.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/advlink/langs/en_dlg.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/advlink/link.htm delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/advlist/editor_plugin.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/advlist/editor_plugin_src.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/askbot_attachment/editor_plugin.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/askbot_attachment/langs/en.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/askbot_attachment/langs/en_dlg.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/askbot_imageuploader/editor_plugin.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/askbot_imageuploader/langs/en.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/askbot_imageuploader/langs/en_dlg.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/autolink/editor_plugin.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/autolink/editor_plugin_src.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/autoresize/editor_plugin.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/autoresize/editor_plugin_src.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/autosave/editor_plugin.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/autosave/editor_plugin_src.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/autosave/langs/en.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/bbcode/editor_plugin.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/bbcode/editor_plugin_src.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/contextmenu/editor_plugin.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/contextmenu/editor_plugin_src.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/directionality/editor_plugin.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/directionality/editor_plugin_src.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/emotions/editor_plugin.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/emotions/editor_plugin_src.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/emotions/emotions.htm delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/emotions/img/smiley-cool.gif delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/emotions/img/smiley-cry.gif delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/emotions/img/smiley-embarassed.gif delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/emotions/img/smiley-foot-in-mouth.gif delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/emotions/img/smiley-frown.gif delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/emotions/img/smiley-innocent.gif delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/emotions/img/smiley-kiss.gif delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/emotions/img/smiley-laughing.gif delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/emotions/img/smiley-money-mouth.gif delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/emotions/img/smiley-sealed.gif delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/emotions/img/smiley-smile.gif delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/emotions/img/smiley-surprised.gif delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/emotions/img/smiley-tongue-out.gif delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/emotions/img/smiley-undecided.gif delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/emotions/img/smiley-wink.gif delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/emotions/img/smiley-yell.gif delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/emotions/js/emotions.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/emotions/langs/en_dlg.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/example/dialog.htm delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/example/editor_plugin.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/example/editor_plugin_src.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/example/img/example.gif delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/example/js/dialog.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/example/langs/en.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/example/langs/en_dlg.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/example_dependency/editor_plugin.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/example_dependency/editor_plugin_src.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/fullpage/css/fullpage.css delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/fullpage/editor_plugin.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/fullpage/editor_plugin_src.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/fullpage/fullpage.htm delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/fullpage/js/fullpage.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/fullpage/langs/en_dlg.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/fullscreen/editor_plugin.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/fullscreen/editor_plugin_src.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/fullscreen/fullscreen.htm delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/iespell/editor_plugin.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/iespell/editor_plugin_src.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/inlinepopups/editor_plugin.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/inlinepopups/editor_plugin_src.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/button.gif delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/inlinepopups/skins/clearlooks2/window.css delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/inlinepopups/template.htm delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/insertdatetime/editor_plugin.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/insertdatetime/editor_plugin_src.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/layer/editor_plugin.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/layer/editor_plugin_src.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/legacyoutput/editor_plugin.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/legacyoutput/editor_plugin_src.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/lists/editor_plugin.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/lists/editor_plugin_src.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/media/css/media.css delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/media/editor_plugin.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/media/editor_plugin_src.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/media/js/embed.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/media/js/media.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/media/langs/en_dlg.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/media/media.htm delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/media/moxieplayer.swf delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/nonbreaking/editor_plugin.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/nonbreaking/editor_plugin_src.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/noneditable/editor_plugin.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/noneditable/editor_plugin_src.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/pagebreak/editor_plugin.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/pagebreak/editor_plugin_src.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/paste/editor_plugin.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/paste/editor_plugin_src.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/paste/js/pastetext.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/paste/js/pasteword.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/paste/langs/en_dlg.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/paste/pastetext.htm delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/paste/pasteword.htm delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/preview/editor_plugin.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/preview/editor_plugin_src.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/preview/example.html delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/preview/jscripts/embed.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/preview/preview.html delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/print/editor_plugin.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/print/editor_plugin_src.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/save/editor_plugin.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/save/editor_plugin_src.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/searchreplace/css/searchreplace.css delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/searchreplace/editor_plugin.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/searchreplace/editor_plugin_src.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/searchreplace/js/searchreplace.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/searchreplace/langs/en_dlg.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/searchreplace/searchreplace.htm delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/spellchecker/css/content.css delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/spellchecker/editor_plugin.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/spellchecker/editor_plugin_src.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/spellchecker/img/wline.gif delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/style/css/props.css delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/style/editor_plugin.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/style/editor_plugin_src.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/style/js/props.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/style/langs/en_dlg.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/style/props.htm delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/style/readme.txt delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/tabfocus/editor_plugin.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/tabfocus/editor_plugin_src.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/table/cell.htm delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/table/css/cell.css delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/table/css/row.css delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/table/css/table.css delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/table/editor_plugin.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/table/editor_plugin_src.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/table/js/cell.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/table/js/merge_cells.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/table/js/row.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/table/js/table.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/table/langs/en_dlg.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/table/merge_cells.htm delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/table/row.htm delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/table/table.htm delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/template/blank.htm delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/template/css/template.css delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/template/editor_plugin.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/template/editor_plugin_src.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/template/js/template.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/template/langs/en_dlg.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/template/template.htm delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/visualblocks/css/visualblocks.css delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/visualblocks/editor_plugin.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/visualblocks/editor_plugin_src.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/visualchars/editor_plugin.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/visualchars/editor_plugin_src.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/wordcount/editor_plugin.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/wordcount/editor_plugin_src.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/abbr.htm delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/acronym.htm delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/attributes.htm delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/cite.htm delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/css/attributes.css delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/css/popup.css delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/del.htm delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/editor_plugin.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/editor_plugin_src.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/ins.htm delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/js/abbr.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/js/acronym.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/js/attributes.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/js/cite.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/js/del.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/js/element_common.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/js/ins.js delete mode 100644 askbot/skins/default/media/js/tinymce/plugins/xhtmlxtras/langs/en_dlg.js delete mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/about.htm delete mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/anchor.htm delete mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/charmap.htm delete mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/color_picker.htm delete mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/editor_template.js delete mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/editor_template_src.js delete mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/image.htm delete mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/img/colorpicker.jpg delete mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/img/flash.gif delete mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/img/icons.gif delete mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/img/iframe.gif delete mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/img/pagebreak.gif delete mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/img/quicktime.gif delete mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/img/realmedia.gif delete mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/img/shockwave.gif delete mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/img/trans.gif delete mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/img/video.gif delete mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/img/windowsmedia.gif delete mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/js/about.js delete mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/js/anchor.js delete mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/js/charmap.js delete mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/js/color_picker.js delete mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/js/image.js delete mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/js/link.js delete mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/js/source_editor.js delete mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/langs/en.js delete mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/langs/en_dlg.js delete mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/link.htm delete mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/shortcuts.htm delete mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/skins/default/content.css delete mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/skins/default/dialog.css delete mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/skins/default/img/buttons.png delete mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/skins/default/img/items.gif delete mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/skins/default/img/menu_arrow.gif delete mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/skins/default/img/menu_check.gif delete mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/skins/default/img/progress.gif delete mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/skins/default/img/tabs.gif delete mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/skins/default/ui.css delete mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/skins/highcontrast/content.css delete mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/skins/highcontrast/dialog.css delete mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/skins/highcontrast/ui.css delete mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/skins/o2k7/content.css delete mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/skins/o2k7/dialog.css delete mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/skins/o2k7/img/button_bg.png delete mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/skins/o2k7/img/button_bg_black.png delete mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/skins/o2k7/img/button_bg_silver.png delete mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/skins/o2k7/ui.css delete mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/skins/o2k7/ui_black.css delete mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/skins/o2k7/ui_silver.css delete mode 100644 askbot/skins/default/media/js/tinymce/themes/advanced/source_editor.htm delete mode 100644 askbot/skins/default/media/js/tinymce/themes/simple/editor_template.js delete mode 100644 askbot/skins/default/media/js/tinymce/themes/simple/editor_template_src.js delete mode 100644 askbot/skins/default/media/js/tinymce/themes/simple/img/icons.gif delete mode 100644 askbot/skins/default/media/js/tinymce/themes/simple/langs/en.js delete mode 100644 askbot/skins/default/media/js/tinymce/themes/simple/skins/default/content.css delete mode 100644 askbot/skins/default/media/js/tinymce/themes/simple/skins/default/ui.css delete mode 100644 askbot/skins/default/media/js/tinymce/themes/simple/skins/o2k7/content.css delete mode 100644 askbot/skins/default/media/js/tinymce/themes/simple/skins/o2k7/img/button_bg.png delete mode 100644 askbot/skins/default/media/js/tinymce/themes/simple/skins/o2k7/ui.css delete mode 100644 askbot/skins/default/media/js/tinymce/tiny_mce.js delete mode 100644 askbot/skins/default/media/js/tinymce/tiny_mce_popup.js delete mode 100644 askbot/skins/default/media/js/tinymce/tiny_mce_src.js delete mode 100644 askbot/skins/default/media/js/tinymce/utils/editable_selects.js delete mode 100644 askbot/skins/default/media/js/tinymce/utils/form_utils.js delete mode 100644 askbot/skins/default/media/js/tinymce/utils/mctabs.js delete mode 100644 askbot/skins/default/media/js/tinymce/utils/validate.js delete mode 100644 askbot/skins/default/media/js/user.js delete mode 100644 askbot/skins/default/media/js/utils.js delete mode 100644 askbot/skins/default/media/js/wmd/images/editor-toolbar-background.png delete mode 100755 askbot/skins/default/media/js/wmd/images/wmd-buttons.png delete mode 100644 askbot/skins/default/media/js/wmd/showdown-min.js delete mode 100644 askbot/skins/default/media/js/wmd/showdown.js delete mode 100644 askbot/skins/default/media/js/wmd/wmd-min.js delete mode 100644 askbot/skins/default/media/js/wmd/wmd-test.html delete mode 100644 askbot/skins/default/media/js/wmd/wmd.css delete mode 100644 askbot/skins/default/media/js/wmd/wmd.js delete mode 100644 askbot/skins/default/media/style/auth.css delete mode 100644 askbot/skins/default/media/style/jquery.autocomplete.css delete mode 100644 askbot/skins/default/media/style/lib_style.css delete mode 100644 askbot/skins/default/media/style/lib_style.less delete mode 100644 askbot/skins/default/media/style/openid.css delete mode 100644 askbot/skins/default/media/style/prettify.css delete mode 100644 askbot/skins/default/media/style/style.css delete mode 100644 askbot/skins/default/media/style/style.less delete mode 100644 askbot/skins/default/media/style/tinymce/content.css delete mode 100644 askbot/skins/default/templates/404.html delete mode 100644 askbot/skins/default/templates/404.jinja.html delete mode 100644 askbot/skins/default/templates/500.jinja.html delete mode 100644 askbot/skins/default/templates/answer_edit.html delete mode 100644 askbot/skins/default/templates/ask.html delete mode 100644 askbot/skins/default/templates/ask_by_widget.html delete mode 100644 askbot/skins/default/templates/ask_widget_complete.html delete mode 100644 askbot/skins/default/templates/authopenid/authopenid_macros.html delete mode 100644 askbot/skins/default/templates/authopenid/changeemail.html delete mode 100644 askbot/skins/default/templates/authopenid/complete.html delete mode 100644 askbot/skins/default/templates/authopenid/confirm_email.txt delete mode 100644 askbot/skins/default/templates/authopenid/email_validation.txt delete mode 100644 askbot/skins/default/templates/authopenid/logout.html delete mode 100644 askbot/skins/default/templates/authopenid/providers_javascript.html delete mode 100644 askbot/skins/default/templates/authopenid/signin.html delete mode 100644 askbot/skins/default/templates/authopenid/signup_with_password.html delete mode 100644 askbot/skins/default/templates/authopenid/verify_email.html delete mode 100644 askbot/skins/default/templates/authopenid/widget_signin.html delete mode 100644 askbot/skins/default/templates/avatar/add.html delete mode 100644 askbot/skins/default/templates/avatar/change.html delete mode 100644 askbot/skins/default/templates/avatar/confirm_delete.html delete mode 100644 askbot/skins/default/templates/badge.html delete mode 100644 askbot/skins/default/templates/badges.html delete mode 100644 askbot/skins/default/templates/base.html delete mode 100644 askbot/skins/default/templates/close.html delete mode 100644 askbot/skins/default/templates/debug_header.html delete mode 100644 askbot/skins/default/templates/django_error.html delete mode 100644 askbot/skins/default/templates/email/ask_for_signature.html delete mode 100644 askbot/skins/default/templates/email/feedback_email.txt delete mode 100644 askbot/skins/default/templates/email/footer.html delete mode 100644 askbot/skins/default/templates/email/insufficient_rep_to_post_by_email.html delete mode 100644 askbot/skins/default/templates/email/macros.html delete mode 100644 askbot/skins/default/templates/email/notify_admins_about_new_tags.html delete mode 100644 askbot/skins/default/templates/email/notify_author_about_approved_post.html delete mode 100644 askbot/skins/default/templates/email/post_as_subthread.html delete mode 100644 askbot/skins/default/templates/email/quoted_post.html delete mode 100644 askbot/skins/default/templates/email/re_welcome_lamson_on.html delete mode 100644 askbot/skins/default/templates/email/reply_by_email_error.html delete mode 100644 askbot/skins/default/templates/email/welcome_lamson_off.html delete mode 100644 askbot/skins/default/templates/email/welcome_lamson_on.html delete mode 100644 askbot/skins/default/templates/embed/ask_by_widget.html delete mode 100644 askbot/skins/default/templates/embed/ask_widget_complete.html delete mode 100755 askbot/skins/default/templates/embed/askbot_widget.css delete mode 100755 askbot/skins/default/templates/embed/askbot_widget.js delete mode 100644 askbot/skins/default/templates/embed/delete_widget.html delete mode 100644 askbot/skins/default/templates/embed/list_widgets.html delete mode 100644 askbot/skins/default/templates/embed/question_widget.html delete mode 100644 askbot/skins/default/templates/embed/widget_form.html delete mode 100644 askbot/skins/default/templates/embed/widgets.html delete mode 100644 askbot/skins/default/templates/faq_static.html delete mode 100644 askbot/skins/default/templates/feedback.html delete mode 100644 askbot/skins/default/templates/group_messaging/home.html delete mode 100644 askbot/skins/default/templates/group_messaging/senders_list.html delete mode 100644 askbot/skins/default/templates/group_messaging/threads_list.html delete mode 100644 askbot/skins/default/templates/groups.html delete mode 100644 askbot/skins/default/templates/help.html delete mode 100644 askbot/skins/default/templates/import_data.html delete mode 100644 askbot/skins/default/templates/instant_notification.html delete mode 100644 askbot/skins/default/templates/list_suggested_tags.html delete mode 100644 askbot/skins/default/templates/macros.html delete mode 100644 askbot/skins/default/templates/main_page.html delete mode 100644 askbot/skins/default/templates/main_page/content.html delete mode 100644 askbot/skins/default/templates/main_page/headline.html delete mode 100644 askbot/skins/default/templates/main_page/javascript.html delete mode 100644 askbot/skins/default/templates/main_page/nothing_found.html delete mode 100644 askbot/skins/default/templates/main_page/paginator.html delete mode 100644 askbot/skins/default/templates/main_page/questions_loop.html delete mode 100644 askbot/skins/default/templates/main_page/sidebar.html delete mode 100644 askbot/skins/default/templates/main_page/tab_bar.html delete mode 100644 askbot/skins/default/templates/main_page/tag_search.html delete mode 100644 askbot/skins/default/templates/meta/bottom_scripts.html delete mode 100644 askbot/skins/default/templates/meta/category_tree_js.html delete mode 100644 askbot/skins/default/templates/meta/editor_data.html delete mode 100644 askbot/skins/default/templates/meta/fonts.html delete mode 100644 askbot/skins/default/templates/meta/html_head_javascript.html delete mode 100644 askbot/skins/default/templates/meta/html_head_meta.html delete mode 100644 askbot/skins/default/templates/meta/html_head_stylesheets.html delete mode 100644 askbot/skins/default/templates/meta/mandatory_tags_js.html delete mode 100644 askbot/skins/default/templates/meta/tinymce_css.html delete mode 100644 askbot/skins/default/templates/one_column_body.html delete mode 100644 askbot/skins/default/templates/question.html delete mode 100644 askbot/skins/default/templates/question/answer_author_info.html delete mode 100644 askbot/skins/default/templates/question/answer_card.html delete mode 100644 askbot/skins/default/templates/question/answer_comments.html delete mode 100644 askbot/skins/default/templates/question/answer_controls.html delete mode 100644 askbot/skins/default/templates/question/answer_tab_bar.html delete mode 100644 askbot/skins/default/templates/question/answer_vote_buttons.html delete mode 100644 askbot/skins/default/templates/question/closed_question_info.html delete mode 100644 askbot/skins/default/templates/question/content.html delete mode 100644 askbot/skins/default/templates/question/javascript.html delete mode 100644 askbot/skins/default/templates/question/new_answer_form.html delete mode 100644 askbot/skins/default/templates/question/question_author_info.html delete mode 100644 askbot/skins/default/templates/question/question_card.html delete mode 100644 askbot/skins/default/templates/question/question_comments.html delete mode 100644 askbot/skins/default/templates/question/question_controls.html delete mode 100644 askbot/skins/default/templates/question/question_tags.html delete mode 100644 askbot/skins/default/templates/question/question_vote_buttons.html delete mode 100644 askbot/skins/default/templates/question/share_buttons.html delete mode 100644 askbot/skins/default/templates/question/sharing_prompt_phrase.html delete mode 100644 askbot/skins/default/templates/question/sidebar.html delete mode 100644 askbot/skins/default/templates/question/subscribe_by_email_prompt.html delete mode 100644 askbot/skins/default/templates/question_edit.html delete mode 100644 askbot/skins/default/templates/question_retag.html delete mode 100644 askbot/skins/default/templates/reopen.html delete mode 100644 askbot/skins/default/templates/revisions.html delete mode 100644 askbot/skins/default/templates/static_page.html delete mode 100644 askbot/skins/default/templates/subscribe_for_tags.html delete mode 100644 askbot/skins/default/templates/tags.html delete mode 100644 askbot/skins/default/templates/tags/header.html delete mode 100644 askbot/skins/default/templates/two_column_body.html delete mode 100644 askbot/skins/default/templates/user_inbox/base.html delete mode 100644 askbot/skins/default/templates/user_inbox/group_join_requests.html delete mode 100644 askbot/skins/default/templates/user_inbox/messages.html delete mode 100644 askbot/skins/default/templates/user_inbox/responses_and_flags.html delete mode 100644 askbot/skins/default/templates/user_profile/custom_tab.html delete mode 100644 askbot/skins/default/templates/user_profile/macros.html delete mode 100644 askbot/skins/default/templates/user_profile/reject_post_dialog.html delete mode 100644 askbot/skins/default/templates/user_profile/user.html delete mode 100644 askbot/skins/default/templates/user_profile/user_edit.html delete mode 100644 askbot/skins/default/templates/user_profile/user_email_subscriptions.html delete mode 100644 askbot/skins/default/templates/user_profile/user_favorites.html delete mode 100644 askbot/skins/default/templates/user_profile/user_info.html delete mode 100644 askbot/skins/default/templates/user_profile/user_moderate.html delete mode 100644 askbot/skins/default/templates/user_profile/user_network.html delete mode 100644 askbot/skins/default/templates/user_profile/user_recent.html delete mode 100644 askbot/skins/default/templates/user_profile/user_reputation.html delete mode 100644 askbot/skins/default/templates/user_profile/user_stats.html delete mode 100644 askbot/skins/default/templates/user_profile/user_tabs.html delete mode 100644 askbot/skins/default/templates/user_profile/user_votes.html delete mode 100644 askbot/skins/default/templates/user_profile/users_questions.html delete mode 100644 askbot/skins/default/templates/users.html delete mode 100644 askbot/skins/default/templates/widget_base.html delete mode 100644 askbot/skins/default/templates/widgets/answer_edit_tips.html delete mode 100644 askbot/skins/default/templates/widgets/ask_button.html delete mode 100644 askbot/skins/default/templates/widgets/ask_form.html delete mode 100644 askbot/skins/default/templates/widgets/contributors.html delete mode 100644 askbot/skins/default/templates/widgets/edit_post.html delete mode 100644 askbot/skins/default/templates/widgets/footer.html delete mode 100644 askbot/skins/default/templates/widgets/group_info.html delete mode 100644 askbot/skins/default/templates/widgets/group_snippet.html delete mode 100644 askbot/skins/default/templates/widgets/groups_list.html delete mode 100644 askbot/skins/default/templates/widgets/header.html delete mode 100644 askbot/skins/default/templates/widgets/logo.html delete mode 100644 askbot/skins/default/templates/widgets/markdown_help.html delete mode 100644 askbot/skins/default/templates/widgets/meta_nav.html delete mode 100644 askbot/skins/default/templates/widgets/question_edit_tips.html delete mode 100644 askbot/skins/default/templates/widgets/question_summary.html delete mode 100644 askbot/skins/default/templates/widgets/related_tags.html delete mode 100644 askbot/skins/default/templates/widgets/scope_nav.html delete mode 100644 askbot/skins/default/templates/widgets/search_bar.html delete mode 100644 askbot/skins/default/templates/widgets/secondary_header.html delete mode 100644 askbot/skins/default/templates/widgets/system_messages.html delete mode 100644 askbot/skins/default/templates/widgets/tag_category_selector.html delete mode 100644 askbot/skins/default/templates/widgets/tag_editor.html delete mode 100644 askbot/skins/default/templates/widgets/tag_selector.html delete mode 100644 askbot/skins/default/templates/widgets/three_column_category_selector.html delete mode 100644 askbot/skins/default/templates/widgets/user_list.html delete mode 100644 askbot/skins/default/templates/widgets/user_long_score_and_badge_summary.html delete mode 100644 askbot/skins/default/templates/widgets/user_navigation.html delete mode 100644 askbot/skins/default/templates/widgets/user_score_and_badge_summary.html create mode 100644 askbot/templates/404.html create mode 100644 askbot/templates/404.jinja.html create mode 100644 askbot/templates/500.jinja.html create mode 100644 askbot/templates/answer_edit.html create mode 100644 askbot/templates/ask.html create mode 100644 askbot/templates/ask_by_widget.html create mode 100644 askbot/templates/ask_widget_complete.html create mode 100644 askbot/templates/authopenid/authopenid_macros.html create mode 100644 askbot/templates/authopenid/changeemail.html create mode 100644 askbot/templates/authopenid/complete.html create mode 100644 askbot/templates/authopenid/confirm_email.txt create mode 100644 askbot/templates/authopenid/email_validation.txt create mode 100644 askbot/templates/authopenid/logout.html create mode 100644 askbot/templates/authopenid/providers_javascript.html create mode 100644 askbot/templates/authopenid/signin.html create mode 100644 askbot/templates/authopenid/signup_with_password.html create mode 100644 askbot/templates/authopenid/verify_email.html create mode 100644 askbot/templates/authopenid/widget_signin.html create mode 100644 askbot/templates/avatar/add.html create mode 100644 askbot/templates/avatar/change.html create mode 100644 askbot/templates/avatar/confirm_delete.html create mode 100644 askbot/templates/badge.html create mode 100644 askbot/templates/badges.html create mode 100644 askbot/templates/base.html create mode 100644 askbot/templates/close.html create mode 100644 askbot/templates/debug_header.html create mode 100644 askbot/templates/django_error.html create mode 100644 askbot/templates/email/ask_for_signature.html create mode 100644 askbot/templates/email/feedback_email.txt create mode 100644 askbot/templates/email/footer.html create mode 100644 askbot/templates/email/insufficient_rep_to_post_by_email.html create mode 100644 askbot/templates/email/macros.html create mode 100644 askbot/templates/email/notify_admins_about_new_tags.html create mode 100644 askbot/templates/email/notify_author_about_approved_post.html create mode 100644 askbot/templates/email/post_as_subthread.html create mode 100644 askbot/templates/email/quoted_post.html create mode 100644 askbot/templates/email/re_welcome_lamson_on.html create mode 100644 askbot/templates/email/reply_by_email_error.html create mode 100644 askbot/templates/email/welcome_lamson_off.html create mode 100644 askbot/templates/email/welcome_lamson_on.html create mode 100644 askbot/templates/embed/ask_by_widget.html create mode 100644 askbot/templates/embed/ask_widget_complete.html create mode 100755 askbot/templates/embed/askbot_widget.css create mode 100755 askbot/templates/embed/askbot_widget.js create mode 100644 askbot/templates/embed/delete_widget.html create mode 100644 askbot/templates/embed/list_widgets.html create mode 100644 askbot/templates/embed/question_widget.html create mode 100644 askbot/templates/embed/widget_form.html create mode 100644 askbot/templates/embed/widgets.html create mode 100644 askbot/templates/faq_static.html create mode 100644 askbot/templates/feedback.html create mode 100644 askbot/templates/group_messaging/home.html create mode 100644 askbot/templates/group_messaging/senders_list.html create mode 100644 askbot/templates/group_messaging/threads_list.html create mode 100644 askbot/templates/groups.html create mode 100644 askbot/templates/help.html create mode 100644 askbot/templates/import_data.html create mode 100644 askbot/templates/instant_notification.html create mode 100644 askbot/templates/list_suggested_tags.html create mode 100644 askbot/templates/macros.html create mode 100644 askbot/templates/main_page.html create mode 100644 askbot/templates/main_page/content.html create mode 100644 askbot/templates/main_page/headline.html create mode 100644 askbot/templates/main_page/javascript.html create mode 100644 askbot/templates/main_page/nothing_found.html create mode 100644 askbot/templates/main_page/paginator.html create mode 100644 askbot/templates/main_page/questions_loop.html create mode 100644 askbot/templates/main_page/sidebar.html create mode 100644 askbot/templates/main_page/tab_bar.html create mode 100644 askbot/templates/main_page/tag_search.html create mode 100644 askbot/templates/meta/bottom_scripts.html create mode 100644 askbot/templates/meta/category_tree_js.html create mode 100644 askbot/templates/meta/editor_data.html create mode 100644 askbot/templates/meta/fonts.html create mode 100644 askbot/templates/meta/html_head_javascript.html create mode 100644 askbot/templates/meta/html_head_meta.html create mode 100644 askbot/templates/meta/html_head_stylesheets.html create mode 100644 askbot/templates/meta/mandatory_tags_js.html create mode 100644 askbot/templates/meta/tinymce_css.html create mode 100644 askbot/templates/one_column_body.html create mode 100644 askbot/templates/question.html create mode 100644 askbot/templates/question/answer_author_info.html create mode 100644 askbot/templates/question/answer_card.html create mode 100644 askbot/templates/question/answer_comments.html create mode 100644 askbot/templates/question/answer_controls.html create mode 100644 askbot/templates/question/answer_tab_bar.html create mode 100644 askbot/templates/question/answer_vote_buttons.html create mode 100644 askbot/templates/question/closed_question_info.html create mode 100644 askbot/templates/question/content.html create mode 100644 askbot/templates/question/javascript.html create mode 100644 askbot/templates/question/new_answer_form.html create mode 100644 askbot/templates/question/question_author_info.html create mode 100644 askbot/templates/question/question_card.html create mode 100644 askbot/templates/question/question_comments.html create mode 100644 askbot/templates/question/question_controls.html create mode 100644 askbot/templates/question/question_tags.html create mode 100644 askbot/templates/question/question_vote_buttons.html create mode 100644 askbot/templates/question/share_buttons.html create mode 100644 askbot/templates/question/sharing_prompt_phrase.html create mode 100644 askbot/templates/question/sidebar.html create mode 100644 askbot/templates/question/subscribe_by_email_prompt.html create mode 100644 askbot/templates/question_edit.html create mode 100644 askbot/templates/question_retag.html create mode 100644 askbot/templates/reopen.html create mode 100644 askbot/templates/revisions.html create mode 100644 askbot/templates/static_page.html create mode 100644 askbot/templates/subscribe_for_tags.html create mode 100644 askbot/templates/tags.html create mode 100644 askbot/templates/tags/header.html create mode 100644 askbot/templates/two_column_body.html create mode 100644 askbot/templates/user_inbox/base.html create mode 100644 askbot/templates/user_inbox/group_join_requests.html create mode 100644 askbot/templates/user_inbox/messages.html create mode 100644 askbot/templates/user_inbox/responses_and_flags.html create mode 100644 askbot/templates/user_profile/custom_tab.html create mode 100644 askbot/templates/user_profile/macros.html create mode 100644 askbot/templates/user_profile/reject_post_dialog.html create mode 100644 askbot/templates/user_profile/user.html create mode 100644 askbot/templates/user_profile/user_edit.html create mode 100644 askbot/templates/user_profile/user_email_subscriptions.html create mode 100644 askbot/templates/user_profile/user_favorites.html create mode 100644 askbot/templates/user_profile/user_info.html create mode 100644 askbot/templates/user_profile/user_moderate.html create mode 100644 askbot/templates/user_profile/user_network.html create mode 100644 askbot/templates/user_profile/user_recent.html create mode 100644 askbot/templates/user_profile/user_reputation.html create mode 100644 askbot/templates/user_profile/user_stats.html create mode 100644 askbot/templates/user_profile/user_tabs.html create mode 100644 askbot/templates/user_profile/user_votes.html create mode 100644 askbot/templates/user_profile/users_questions.html create mode 100644 askbot/templates/users.html create mode 100644 askbot/templates/widget_base.html create mode 100644 askbot/templates/widgets/answer_edit_tips.html create mode 100644 askbot/templates/widgets/ask_button.html create mode 100644 askbot/templates/widgets/ask_form.html create mode 100644 askbot/templates/widgets/contributors.html create mode 100644 askbot/templates/widgets/edit_post.html create mode 100644 askbot/templates/widgets/footer.html create mode 100644 askbot/templates/widgets/group_info.html create mode 100644 askbot/templates/widgets/group_snippet.html create mode 100644 askbot/templates/widgets/groups_list.html create mode 100644 askbot/templates/widgets/header.html create mode 100644 askbot/templates/widgets/logo.html create mode 100644 askbot/templates/widgets/markdown_help.html create mode 100644 askbot/templates/widgets/meta_nav.html create mode 100644 askbot/templates/widgets/question_edit_tips.html create mode 100644 askbot/templates/widgets/question_summary.html create mode 100644 askbot/templates/widgets/related_tags.html create mode 100644 askbot/templates/widgets/scope_nav.html create mode 100644 askbot/templates/widgets/search_bar.html create mode 100644 askbot/templates/widgets/secondary_header.html create mode 100644 askbot/templates/widgets/system_messages.html create mode 100644 askbot/templates/widgets/tag_category_selector.html create mode 100644 askbot/templates/widgets/tag_editor.html create mode 100644 askbot/templates/widgets/tag_selector.html create mode 100644 askbot/templates/widgets/three_column_category_selector.html create mode 100644 askbot/templates/widgets/user_list.html create mode 100644 askbot/templates/widgets/user_long_score_and_badge_summary.html create mode 100644 askbot/templates/widgets/user_navigation.html create mode 100644 askbot/templates/widgets/user_score_and_badge_summary.html diff --git a/askbot/media/bootstrap/bootstrap.zip b/askbot/media/bootstrap/bootstrap.zip new file mode 100644 index 00000000..86a13bb9 Binary files /dev/null and b/askbot/media/bootstrap/bootstrap.zip differ diff --git a/askbot/media/bootstrap/css/bootstrap.css b/askbot/media/bootstrap/css/bootstrap.css new file mode 100644 index 00000000..e6190005 --- /dev/null +++ b/askbot/media/bootstrap/css/bootstrap.css @@ -0,0 +1,4559 @@ +/*! + * Bootstrap v2.0.2 + * This file was modified for Askbot + * some styles were deleted, others added at the bottom + * of this file. Also some fixes to bootstrap are added + * at the bottom of askbot's style.less. + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */ +.clearfix { + *zoom: 1; +} +.clearfix:before, +.clearfix:after { + display: table; + content: ""; +} +.clearfix:after { + clear: both; +} +.hide-text { + overflow: hidden; + text-indent: 100%; + white-space: nowrap; +} +.input-block-level { + display: block; + width: 100%; + min-height: 28px; + /* Make inputs at least the height of their button counterpart */ + + /* Makes inputs behave like true block-level elements */ + + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; +} +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +nav, +section { + display: block; +} +audio, +canvas, +video { + display: inline-block; + *display: inline; + *zoom: 1; +} +audio:not([controls]) { + display: none; +} +html { + font-size: 100%; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} +a:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +a:hover, +a:active { + outline: 0; +} +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} +sup { + top: -0.5em; +} +sub { + bottom: -0.25em; +} +img { + height: auto; + border: 0; + -ms-interpolation-mode: bicubic; + vertical-align: middle; +} +button, +input { + *overflow: visible; + line-height: normal; +} +button::-moz-focus-inner, +input::-moz-focus-inner { + padding: 0; + border: 0; +} +button, +input[type="button"], +input[type="reset"], +input[type="submit"] { + cursor: pointer; + -webkit-appearance: button; +} +input[type="search"] { + -webkit-appearance: textfield; + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; +} +input[type="search"]::-webkit-search-decoration, +input[type="search"]::-webkit-search-cancel-button { + -webkit-appearance: none; +} +textarea { + overflow: auto; + vertical-align: top; +} +a { + color: #0088cc; + text-decoration: none; +} +a:hover { + color: #005580; + text-decoration: underline; +} +.row { + margin-left: -20px; + *zoom: 1; +} +.row:before, +.row:after { + display: table; + content: ""; +} +.row:after { + clear: both; +} +[class*="span"] { + float: left; + margin-left: 20px; +} +.container, +.navbar-fixed-top .container, +.navbar-fixed-bottom .container { + width: 940px; +} +.span12 { + width: 940px; +} +.span11 { + width: 860px; +} +.span10 { + width: 780px; +} +.span9 { + width: 700px; +} +.span8 { + width: 620px; +} +.span7 { + width: 540px; +} +.span6 { + width: 460px; +} +.span5 { + width: 380px; +} +.span4 { + width: 300px; +} +.span3 { + width: 220px; +} +.span2 { + width: 140px; +} +.span1 { + width: 60px; +} +.offset12 { + margin-left: 980px; +} +.offset11 { + margin-left: 900px; +} +.offset10 { + margin-left: 820px; +} +.offset9 { + margin-left: 740px; +} +.offset8 { + margin-left: 660px; +} +.offset7 { + margin-left: 580px; +} +.offset6 { + margin-left: 500px; +} +.offset5 { + margin-left: 420px; +} +.offset4 { + margin-left: 340px; +} +.offset3 { + margin-left: 260px; +} +.offset2 { + margin-left: 180px; +} +.offset1 { + margin-left: 100px; +} +.row-fluid { + width: 100%; + *zoom: 1; +} +.row-fluid:before, +.row-fluid:after { + display: table; + content: ""; +} +.row-fluid:after { + clear: both; +} +.row-fluid > [class*="span"] { + float: left; + margin-left: 2.127659574%; +} +.row-fluid > [class*="span"]:first-child { + margin-left: 0; +} +.row-fluid > .span12 { + width: 99.99999998999999%; +} +.row-fluid > .span11 { + width: 91.489361693%; +} +.row-fluid > .span10 { + width: 82.97872339599999%; +} +.row-fluid > .span9 { + width: 74.468085099%; +} +.row-fluid > .span8 { + width: 65.95744680199999%; +} +.row-fluid > .span7 { + width: 57.446808505%; +} +.row-fluid > .span6 { + width: 48.93617020799999%; +} +.row-fluid > .span5 { + width: 40.425531911%; +} +.row-fluid > .span4 { + width: 31.914893614%; +} +.row-fluid > .span3 { + width: 23.404255317%; +} +.row-fluid > .span2 { + width: 14.89361702%; +} +.row-fluid > .span1 { + width: 6.382978723%; +} +.container { + margin-left: auto; + margin-right: auto; + *zoom: 1; +} +.container:before, +.container:after { + display: table; + content: ""; +} +.container:after { + clear: both; +} +.container-fluid { + padding-left: 20px; + padding-right: 20px; + *zoom: 1; +} +.container-fluid:before, +.container-fluid:after { + display: table; + content: ""; +} +.container-fluid:after { + clear: both; +} +p { + margin: 0 0 9px; + font-family: Arial, sans-serif; + font-size: 13px; + line-height: 18px; +} +p small { + font-size: 11px; + color: #999999; +} +.lead { + margin-bottom: 18px; + font-size: 20px; + font-weight: 200; + line-height: 27px; +} +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + font-family: inherit; + font-weight: bold; + color: inherit; + text-rendering: optimizelegibility; +} +h1 small, +h2 small, +h3 small, +h4 small, +h5 small, +h6 small { + font-weight: normal; + color: #999999; +} +h1 { + font-size: 30px; + line-height: 36px; +} +h1 small { + font-size: 18px; +} +h2 { + font-size: 24px; + line-height: 36px; +} +h2 small { + font-size: 18px; +} +h3 { + line-height: 27px; + font-size: 18px; +} +h3 small { + font-size: 14px; +} +h4, +h5, +h6 { + line-height: 18px; +} +h4 { + font-size: 14px; +} +h4 small { + font-size: 12px; +} +h5 { + font-size: 12px; +} +h6 { + font-size: 11px; + color: #999999; + text-transform: uppercase; +} +.page-header { + padding-bottom: 17px; + margin: 18px 0; + border-bottom: 1px solid #eeeeee; +} +.page-header h1 { + line-height: 1; +} +ul, +ol { + padding: 0; + margin: 0 0 9px 25px; +} +ul ul, +ul ol, +ol ol, +ol ul { + margin-bottom: 0; +} +ul { + list-style: disc; +} +ol { + list-style: decimal; +} +li { + line-height: 18px; +} +ul.unstyled, +ol.unstyled { + margin-left: 0; + list-style: none; +} +dl { + margin-bottom: 18px; +} +dt, +dd { + line-height: 18px; +} +dt { + font-weight: bold; + line-height: 17px; +} +dd { + margin-left: 9px; +} +.dl-horizontal dt { + float: left; + clear: left; + width: 120px; + text-align: right; +} +.dl-horizontal dd { + margin-left: 130px; +} +hr { + margin: 18px 0; + border: 0; + border-top: 1px solid #eeeeee; + border-bottom: 1px solid #ffffff; +} +strong { + font-weight: bold; +} +em { + font-style: italic; +} +.muted { + color: #999999; +} +abbr[title] { + border-bottom: 1px dotted #ddd; + cursor: help; +} +abbr.initialism { + font-size: 90%; + text-transform: uppercase; +} +blockquote { + padding: 0 0 0 15px; + margin: 0 0 18px; + border-left: 5px solid #eeeeee; +} +blockquote p { + margin-bottom: 0; + font-size: 16px; + font-weight: 300; + line-height: 22.5px; +} +blockquote small { + display: block; + line-height: 18px; + color: #999999; +} +blockquote small:before { + content: '\2014 \00A0'; +} +blockquote.pull-right { + float: right; + padding-left: 0; + padding-right: 15px; + border-left: 0; + border-right: 5px solid #eeeeee; +} +blockquote.pull-right p, +blockquote.pull-right small { + text-align: right; +} +q:before, +q:after, +blockquote:before, +blockquote:after { + content: ""; +} +address { + display: block; + margin-bottom: 18px; + line-height: 18px; + font-style: normal; +} +small { + font-size: 100%; +} +cite { + font-style: normal; +} +code, +pre { + padding: 0 3px 2px; + font-family: Menlo, Monaco, "Courier New", monospace; + font-size: 12px; + color: #333333; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} +code { + padding: 2px 4px; + color: #d14; + background-color: #f7f7f9; + border: 1px solid #e1e1e8; +} +pre { + display: block; + padding: 8.5px; + margin: 0 0 9px; + font-size: 12.025px; + line-height: 18px; + background-color: #f5f5f5; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.15); + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + white-space: pre; + white-space: pre-wrap; + word-break: break-all; + word-wrap: break-word; +} +pre.prettyprint { + margin-bottom: 18px; +} +pre code { + padding: 0; + color: inherit; + background-color: transparent; + border: 0; +} +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} +/*.label { + padding: 1px 4px 2px; + font-size: 10.998px; + font-weight: bold; + line-height: 13px; + color: #ffffff; + vertical-align: middle; + white-space: nowrap; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #999999; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} +.label:hover { + color: #ffffff; + text-decoration: none; +}*/ +.label-important { + background-color: #b94a48; +} +.label-important:hover { + background-color: #953b39; +} +.label-warning { + background-color: #f89406; +} +.label-warning:hover { + background-color: #c67605; +} +.label-success { + background-color: #468847; +} +.label-success:hover { + background-color: #356635; +} +.label-info { + background-color: #3a87ad; +} +.label-info:hover { + background-color: #2d6987; +} +.label-inverse { + background-color: #333333; +} +.label-inverse:hover { + background-color: #1a1a1a; +} +.badge { + padding: 1px 9px 2px; + font-size: 12.025px; + font-weight: bold; + white-space: nowrap; + color: #ffffff; + background-color: #999999; + -webkit-border-radius: 9px; + -moz-border-radius: 9px; + border-radius: 9px; +} +.badge:hover { + color: #ffffff; + text-decoration: none; + cursor: pointer; +} +.badge-error { + background-color: #b94a48; +} +.badge-error:hover { + background-color: #953b39; +} +.badge-warning { + background-color: #f89406; +} +.badge-warning:hover { + background-color: #c67605; +} +.badge-success { + background-color: #468847; +} +.badge-success:hover { + background-color: #356635; +} +.badge-info { + background-color: #3a87ad; +} +.badge-info:hover { + background-color: #2d6987; +} +.badge-inverse { + background-color: #333333; +} +.badge-inverse:hover { + background-color: #1a1a1a; +} +table { + max-width: 100%; + border-collapse: collapse; + border-spacing: 0; + background-color: transparent; +} +.table { + width: 100%; + margin-bottom: 18px; +} +.table th, +.table td { + padding: 8px; + line-height: 18px; + text-align: left; + vertical-align: top; + border-top: 1px solid #dddddd; +} +.table th { + font-weight: bold; +} +.table thead th { + vertical-align: bottom; +} +.table colgroup + thead tr:first-child th, +.table colgroup + thead tr:first-child td, +.table thead:first-child tr:first-child th, +.table thead:first-child tr:first-child td { + border-top: 0; +} +.table tbody + tbody { + border-top: 2px solid #dddddd; +} +.table-condensed th, +.table-condensed td { + padding: 4px 5px; +} +.table-bordered { + border: 1px solid #dddddd; + border-left: 0; + border-collapse: separate; + *border-collapse: collapsed; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.table-bordered th, +.table-bordered td { + border-left: 1px solid #dddddd; +} +.table-bordered thead:first-child tr:first-child th, +.table-bordered tbody:first-child tr:first-child th, +.table-bordered tbody:first-child tr:first-child td { + border-top: 0; +} +.table-bordered thead:first-child tr:first-child th:first-child, +.table-bordered tbody:first-child tr:first-child td:first-child { + -webkit-border-radius: 4px 0 0 0; + -moz-border-radius: 4px 0 0 0; + border-radius: 4px 0 0 0; +} +.table-bordered thead:first-child tr:first-child th:last-child, +.table-bordered tbody:first-child tr:first-child td:last-child { + -webkit-border-radius: 0 4px 0 0; + -moz-border-radius: 0 4px 0 0; + border-radius: 0 4px 0 0; +} +.table-bordered thead:last-child tr:last-child th:first-child, +.table-bordered tbody:last-child tr:last-child td:first-child { + -webkit-border-radius: 0 0 0 4px; + -moz-border-radius: 0 0 0 4px; + border-radius: 0 0 0 4px; +} +.table-bordered thead:last-child tr:last-child th:last-child, +.table-bordered tbody:last-child tr:last-child td:last-child { + -webkit-border-radius: 0 0 4px 0; + -moz-border-radius: 0 0 4px 0; + border-radius: 0 0 4px 0; +} +.table-striped tbody tr:nth-child(odd) td, +.table-striped tbody tr:nth-child(odd) th { + background-color: #f9f9f9; +} +.table tbody tr:hover td, +.table tbody tr:hover th { + background-color: #f5f5f5; +} +table .span1 { + float: none; + width: 44px; + margin-left: 0; +} +table .span2 { + float: none; + width: 124px; + margin-left: 0; +} +table .span3 { + float: none; + width: 204px; + margin-left: 0; +} +table .span4 { + float: none; + width: 284px; + margin-left: 0; +} +table .span5 { + float: none; + width: 364px; + margin-left: 0; +} +table .span6 { + float: none; + width: 444px; + margin-left: 0; +} +table .span7 { + float: none; + width: 524px; + margin-left: 0; +} +table .span8 { + float: none; + width: 604px; + margin-left: 0; +} +table .span9 { + float: none; + width: 684px; + margin-left: 0; +} +table .span10 { + float: none; + width: 764px; + margin-left: 0; +} +table .span11 { + float: none; + width: 844px; + margin-left: 0; +} +table .span12 { + float: none; + width: 924px; + margin-left: 0; +} +table .span13 { + float: none; + width: 1004px; + margin-left: 0; +} +table .span14 { + float: none; + width: 1084px; + margin-left: 0; +} +table .span15 { + float: none; + width: 1164px; + margin-left: 0; +} +table .span16 { + float: none; + width: 1244px; + margin-left: 0; +} +table .span17 { + float: none; + width: 1324px; + margin-left: 0; +} +table .span18 { + float: none; + width: 1404px; + margin-left: 0; +} +table .span19 { + float: none; + width: 1484px; + margin-left: 0; +} +table .span20 { + float: none; + width: 1564px; + margin-left: 0; +} +table .span21 { + float: none; + width: 1644px; + margin-left: 0; +} +table .span22 { + float: none; + width: 1724px; + margin-left: 0; +} +table .span23 { + float: none; + width: 1804px; + margin-left: 0; +} +table .span24 { + float: none; + width: 1884px; + margin-left: 0; +} +form { + margin: 0 0 18px; +} +fieldset { + padding: 0; + margin: 0; + border: 0; +} +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 27px; + font-size: 19.5px; + line-height: 36px; + color: #333333; + border: 0; + border-bottom: 1px solid #eee; +} +legend small { + font-size: 13.5px; + color: #999999; +} +label { + /*display: block; + margin-bottom: 5px; + color: #333333;*/ +} +input, +textarea, +select, +.uneditable-input { +} +.uneditable-textarea { + width: auto; + height: auto; +} +label input, +label textarea, +label select { + display: block; +} +input[type="image"] { + border: 0; +} +input[type="file"] { + width: auto; + padding: initial; + line-height: initial; + border: initial; + background-color: #ffffff; + background-color: initial; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} +input[type="button"], +input[type="reset"], +input[type="submit"] { + width: auto; + /*height: auto;*/ +} +select, +input[type="file"] { + height: 28px; + /* In IE7, the height of the select element cannot be changed by height, only font-size */ + + *margin-top: 4px; + /* For IE7, add top margin to align select with labels */ + + line-height: 28px; +} +input[type="file"] { + line-height: 18px \9; +} +select { + width: 220px; + background-color: #ffffff; +} +select[multiple], +select[size] { + height: auto; +} +input[type="image"] { + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} +textarea { + height: auto; +} +input[type="hidden"] { + display: none; +} +.radio.inline + .radio.inline, +.checkbox.inline + .checkbox.inline { + margin-left: 10px; +} +input, +textarea { + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -webkit-transition: border linear 0.2s, box-shadow linear 0.2s; + -moz-transition: border linear 0.2s, box-shadow linear 0.2s; + -ms-transition: border linear 0.2s, box-shadow linear 0.2s; + -o-transition: border linear 0.2s, box-shadow linear 0.2s; + transition: border linear 0.2s, box-shadow linear 0.2s; +} +input:focus, +textarea:focus { + border-color: rgba(82, 168, 236, 0.8); + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); + outline: 0; + outline: thin dotted \9; + /* IE6-9 */ + +} +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus, +select:focus { + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +.input-mini { + width: 60px; +} +.input-small { + width: 90px; +} +.input-medium { + width: 150px; +} +.input-large { + width: 210px; +} +.input-xlarge { + width: 270px; +} +.input-xxlarge { + width: 530px; +} +input.span12, textarea.span12, .uneditable-input.span12 { + width: 930px; +} +input.span11, textarea.span11, .uneditable-input.span11 { + width: 850px; +} +input.span10, textarea.span10, .uneditable-input.span10 { + width: 770px; +} +input.span9, textarea.span9, .uneditable-input.span9 { + width: 690px; +} +input.span8, textarea.span8, .uneditable-input.span8 { + width: 610px; +} +input.span7, textarea.span7, .uneditable-input.span7 { + width: 530px; +} +input.span6, textarea.span6, .uneditable-input.span6 { + width: 450px; +} +input.span5, textarea.span5, .uneditable-input.span5 { + width: 370px; +} +input.span4, textarea.span4, .uneditable-input.span4 { + width: 290px; +} +input.span3, textarea.span3, .uneditable-input.span3 { + width: 210px; +} +input.span2, textarea.span2, .uneditable-input.span2 { + width: 130px; +} +input.span1, textarea.span1, .uneditable-input.span1 { + width: 50px; +} +input[disabled], +select[disabled], +textarea[disabled], +input[readonly], +select[readonly], +textarea[readonly] { + background-color: #eeeeee; + border-color: #ddd; + cursor: not-allowed; +} +.control-group.warning > label, +.control-group.warning .help-block, +.control-group.warning .help-inline { + color: #c09853; +} +.control-group.warning input, +.control-group.warning select, +.control-group.warning textarea { + color: #c09853; + border-color: #c09853; +} +.control-group.warning input:focus, +.control-group.warning select:focus, +.control-group.warning textarea:focus { + border-color: #a47e3c; + -webkit-box-shadow: 0 0 6px #dbc59e; + -moz-box-shadow: 0 0 6px #dbc59e; + box-shadow: 0 0 6px #dbc59e; +} +.control-group.warning .input-prepend .add-on, +.control-group.warning .input-append .add-on { + color: #c09853; + background-color: #fcf8e3; + border-color: #c09853; +} +.control-group.error > label, +.control-group.error .help-block, +.control-group.error .help-inline { + color: #b94a48; +} +.control-group.error input, +.control-group.error select, +.control-group.error textarea { + color: #b94a48; + border-color: #b94a48; +} +.control-group.error input:focus, +.control-group.error select:focus, +.control-group.error textarea:focus { + border-color: #953b39; + -webkit-box-shadow: 0 0 6px #d59392; + -moz-box-shadow: 0 0 6px #d59392; + box-shadow: 0 0 6px #d59392; +} +.control-group.error .input-prepend .add-on, +.control-group.error .input-append .add-on { + color: #b94a48; + background-color: #f2dede; + border-color: #b94a48; +} +.control-group.success > label, +.control-group.success .help-block, +.control-group.success .help-inline { + color: #468847; +} +.control-group.success input, +.control-group.success select, +.control-group.success textarea { + color: #468847; + border-color: #468847; +} +.control-group.success input:focus, +.control-group.success select:focus, +.control-group.success textarea:focus { + border-color: #356635; + -webkit-box-shadow: 0 0 6px #7aba7b; + -moz-box-shadow: 0 0 6px #7aba7b; + box-shadow: 0 0 6px #7aba7b; +} +.control-group.success .input-prepend .add-on, +.control-group.success .input-append .add-on { + color: #468847; + background-color: #dff0d8; + border-color: #468847; +} +input:focus:required:invalid, +textarea:focus:required:invalid, +select:focus:required:invalid { + color: #b94a48; + border-color: #ee5f5b; +} +input:focus:required:invalid:focus, +textarea:focus:required:invalid:focus, +select:focus:required:invalid:focus { + border-color: #e9322d; + -webkit-box-shadow: 0 0 6px #f8b9b7; + -moz-box-shadow: 0 0 6px #f8b9b7; + box-shadow: 0 0 6px #f8b9b7; +} +.form-actions { + padding: 17px 20px 18px; + margin-top: 18px; + margin-bottom: 18px; + background-color: #eeeeee; + border-top: 1px solid #ddd; + *zoom: 1; +} +.form-actions:before, +.form-actions:after { + display: table; + content: ""; +} +.form-actions:after { + clear: both; +} +:-moz-placeholder { + color: #999999; +} +::-webkit-input-placeholder { + color: #999999; +} +.help-block, +.help-inline { + color: #555555; +} +.help-block { + display: block; + margin-bottom: 9px; +} +.help-inline { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; + vertical-align: middle; + padding-left: 5px; +} +.input-prepend, +.input-append { + margin-bottom: 5px; +} +.input-prepend input:focus, +.input-append input:focus, +.input-prepend select:focus, +.input-append select:focus, +.input-prepend .uneditable-input:focus, +.input-append .uneditable-input:focus { + position: relative; + z-index: 2; +} +.input-prepend .uneditable-input, +.input-append .uneditable-input { + border-left-color: #ccc; +} +.input-prepend .add-on, +.input-append .add-on { + display: inline-block; + width: auto; + min-width: 16px; + height: 18px; + padding: 4px 5px; + font-weight: normal; + line-height: 18px; + text-align: center; + text-shadow: 0 1px 0 #ffffff; + vertical-align: middle; + background-color: #eeeeee; + border: 1px solid #ccc; +} +.input-prepend .add-on, +.input-append .add-on, +.input-prepend .btn, +.input-append .btn { + -webkit-border-radius: 3px 0 0 3px; + -moz-border-radius: 3px 0 0 3px; + border-radius: 3px 0 0 3px; +} +.input-prepend .active, +.input-append .active { + background-color: #a9dba9; + border-color: #46a546; +} +.input-prepend .add-on, +.input-prepend .btn { + margin-right: -1px; +} +.input-append input, +.input-append select .uneditable-input { + -webkit-border-radius: 3px 0 0 3px; + -moz-border-radius: 3px 0 0 3px; + border-radius: 3px 0 0 3px; +} +.input-append .uneditable-input { + border-left-color: #eee; + border-right-color: #ccc; +} +.input-append .add-on, +.input-append .btn { + margin-left: -1px; + -webkit-border-radius: 0 3px 3px 0; + -moz-border-radius: 0 3px 3px 0; + border-radius: 0 3px 3px 0; +} +.input-prepend.input-append input, +.input-prepend.input-append select, +.input-prepend.input-append .uneditable-input { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.input-prepend.input-append .add-on:first-child, +.input-prepend.input-append .btn:first-child { + margin-right: -1px; + -webkit-border-radius: 3px 0 0 3px; + -moz-border-radius: 3px 0 0 3px; + border-radius: 3px 0 0 3px; +} +.input-prepend.input-append .add-on:last-child, +.input-prepend.input-append .btn:last-child { + margin-left: -1px; + -webkit-border-radius: 0 3px 3px 0; + -moz-border-radius: 0 3px 3px 0; + border-radius: 0 3px 3px 0; +} +.search-query { + padding-left: 14px; + padding-right: 14px; + margin-bottom: 0; + -webkit-border-radius: 14px; + -moz-border-radius: 14px; + border-radius: 14px; +} +.form-search input, +.form-inline input, +.form-horizontal input, +.form-search textarea, +.form-inline textarea, +.form-horizontal textarea, +.form-search select, +.form-inline select, +.form-horizontal select, +.form-search .help-inline, +.form-inline .help-inline, +.form-horizontal .help-inline, +.form-search .uneditable-input, +.form-inline .uneditable-input, +.form-horizontal .uneditable-input, +.form-search .input-prepend, +.form-inline .input-prepend, +.form-horizontal .input-prepend, +.form-search .input-append, +.form-inline .input-append, +.form-horizontal .input-append { + display: inline-block; + margin-bottom: 0; +} +.form-search .hide, +.form-inline .hide, +.form-horizontal .hide { + display: none; +} +.form-search label, +.form-inline label { + display: inline-block; +} +.form-search .input-append, +.form-inline .input-append, +.form-search .input-prepend, +.form-inline .input-prepend { + margin-bottom: 0; +} +.form-search .radio, +.form-search .checkbox, +.form-inline .radio, +.form-inline .checkbox { + padding-left: 0; + margin-bottom: 0; + vertical-align: middle; +} +.form-search .radio input[type="radio"], +.form-search .checkbox input[type="checkbox"], +.form-inline .radio input[type="radio"], +.form-inline .checkbox input[type="checkbox"] { + float: left; + margin-left: 0; + margin-right: 3px; +} +.control-group { + margin-bottom: 9px; +} +legend + .control-group { + margin-top: 18px; + -webkit-margin-top-collapse: separate; +} +.form-horizontal .control-group { + margin-bottom: 18px; + *zoom: 1; +} +.form-horizontal .control-group:before, +.form-horizontal .control-group:after { + display: table; + content: ""; +} +.form-horizontal .control-group:after { + clear: both; +} +.form-horizontal .control-label { + float: left; + width: 140px; + padding-top: 5px; + text-align: right; +} +.form-horizontal .controls { + margin-left: 160px; + /* Super jank IE7 fix to ensure the inputs in .input-append and input-prepend don't inherit the margin of the parent, in this case .controls */ + + *display: inline-block; + *margin-left: 0; + *padding-left: 20px; +} +.form-horizontal .help-block { + margin-top: 9px; + margin-bottom: 0; +} +.form-horizontal .form-actions { + padding-left: 160px; +} +.btn { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; + padding: 4px 10px 4px; + margin-bottom: 0; + font-size: 13px; + line-height: 18px; + color: #333333; + text-align: center; + text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); + vertical-align: middle; + background-color: #f5f5f5; + background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6); + background-image: -ms-linear-gradient(top, #ffffff, #e6e6e6); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6)); + background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6); + background-image: -o-linear-gradient(top, #ffffff, #e6e6e6); + background-image: linear-gradient(top, #ffffff, #e6e6e6); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0); + border-color: #e6e6e6 #e6e6e6 #bfbfbf; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:dximagetransform.microsoft.gradient(enabled=false); + border: 1px solid #cccccc; + border-bottom-color: #b3b3b3; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + cursor: pointer; + *margin-left: .3em; +} +.btn:hover, +.btn:active, +.btn.active, +.btn.disabled, +.btn[disabled] { + background-color: #e6e6e6; +} +.btn:active, +.btn.active { + background-color: #cccccc \9; +} +.btn:first-child { + *margin-left: 0; +} +.btn:hover { + color: #333333; + text-decoration: none; + background-color: #e6e6e6; + background-position: 0 -15px; + -webkit-transition: background-position 0.1s linear; + -moz-transition: background-position 0.1s linear; + -ms-transition: background-position 0.1s linear; + -o-transition: background-position 0.1s linear; + transition: background-position 0.1s linear; +} +.btn:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +.btn.active, +.btn:active { + background-image: none; + -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + background-color: #e6e6e6; + background-color: #d9d9d9 \9; + outline: 0; +} +.btn.disabled, +.btn[disabled] { + cursor: default; + background-image: none; + background-color: #e6e6e6; + opacity: 0.65; + filter: alpha(opacity=65); + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} +.btn-large { + padding: 9px 14px; + font-size: 15px; + line-height: normal; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} +.btn-large [class^="icon-"] { + margin-top: 1px; +} +.btn-small { + padding: 5px 9px; + font-size: 11px; + line-height: 16px; +} +.btn-small [class^="icon-"] { + margin-top: -1px; +} +.btn-mini { + padding: 2px 6px; + font-size: 11px; + line-height: 14px; +} +.btn-primary, +.btn-primary:hover, +.btn-warning, +.btn-warning:hover, +.btn-danger, +.btn-danger:hover, +.btn-success, +.btn-success:hover, +.btn-info, +.btn-info:hover, +.btn-inverse, +.btn-inverse:hover { + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + color: #ffffff; +} +.btn-primary.active, +.btn-warning.active, +.btn-danger.active, +.btn-success.active, +.btn-info.active, +.btn-inverse.active { + color: rgba(255, 255, 255, 0.75); +} +.btn-primary { + background-color: #0074cc; + background-image: -moz-linear-gradient(top, #0088cc, #0055cc); + background-image: -ms-linear-gradient(top, #0088cc, #0055cc); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0055cc)); + background-image: -webkit-linear-gradient(top, #0088cc, #0055cc); + background-image: -o-linear-gradient(top, #0088cc, #0055cc); + background-image: linear-gradient(top, #0088cc, #0055cc); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0055cc', GradientType=0); + border-color: #0055cc #0055cc #003580; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:dximagetransform.microsoft.gradient(enabled=false); +} +.btn-primary:hover, +.btn-primary:active, +.btn-primary.active, +.btn-primary.disabled, +.btn-primary[disabled] { + background-color: #0055cc; +} +.btn-primary:active, +.btn-primary.active { + background-color: #004099 \9; +} +.btn-warning { + background-color: #faa732; + background-image: -moz-linear-gradient(top, #fbb450, #f89406); + background-image: -ms-linear-gradient(top, #fbb450, #f89406); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); + background-image: -webkit-linear-gradient(top, #fbb450, #f89406); + background-image: -o-linear-gradient(top, #fbb450, #f89406); + background-image: linear-gradient(top, #fbb450, #f89406); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0); + border-color: #f89406 #f89406 #ad6704; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:dximagetransform.microsoft.gradient(enabled=false); +} +.btn-warning:hover, +.btn-warning:active, +.btn-warning.active, +.btn-warning.disabled, +.btn-warning[disabled] { + background-color: #f89406; +} +.btn-warning:active, +.btn-warning.active { + background-color: #c67605 \9; +} +.btn-danger { + background-color: #da4f49; + background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f); + background-image: -ms-linear-gradient(top, #ee5f5b, #bd362f); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f)); + background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f); + background-image: -o-linear-gradient(top, #ee5f5b, #bd362f); + background-image: linear-gradient(top, #ee5f5b, #bd362f); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#bd362f', GradientType=0); + border-color: #bd362f #bd362f #802420; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:dximagetransform.microsoft.gradient(enabled=false); +} +.btn-danger:hover, +.btn-danger:active, +.btn-danger.active, +.btn-danger.disabled, +.btn-danger[disabled] { + background-color: #bd362f; +} +.btn-danger:active, +.btn-danger.active { + background-color: #942a25 \9; +} +.btn-success { + background-color: #5bb75b; + background-image: -moz-linear-gradient(top, #62c462, #51a351); + background-image: -ms-linear-gradient(top, #62c462, #51a351); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351)); + background-image: -webkit-linear-gradient(top, #62c462, #51a351); + background-image: -o-linear-gradient(top, #62c462, #51a351); + background-image: linear-gradient(top, #62c462, #51a351); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#51a351', GradientType=0); + border-color: #51a351 #51a351 #387038; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:dximagetransform.microsoft.gradient(enabled=false); +} +.btn-success:hover, +.btn-success:active, +.btn-success.active, +.btn-success.disabled, +.btn-success[disabled] { + background-color: #51a351; +} +.btn-success:active, +.btn-success.active { + background-color: #408140 \9; +} +.btn-info { + background-color: #49afcd; + background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4); + background-image: -ms-linear-gradient(top, #5bc0de, #2f96b4); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4)); + background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4); + background-image: -o-linear-gradient(top, #5bc0de, #2f96b4); + background-image: linear-gradient(top, #5bc0de, #2f96b4); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#2f96b4', GradientType=0); + border-color: #2f96b4 #2f96b4 #1f6377; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:dximagetransform.microsoft.gradient(enabled=false); +} +.btn-info:hover, +.btn-info:active, +.btn-info.active, +.btn-info.disabled, +.btn-info[disabled] { + background-color: #2f96b4; +} +.btn-info:active, +.btn-info.active { + background-color: #24748c \9; +} +.btn-inverse { + background-color: #414141; + background-image: -moz-linear-gradient(top, #555555, #222222); + background-image: -ms-linear-gradient(top, #555555, #222222); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#555555), to(#222222)); + background-image: -webkit-linear-gradient(top, #555555, #222222); + background-image: -o-linear-gradient(top, #555555, #222222); + background-image: linear-gradient(top, #555555, #222222); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#555555', endColorstr='#222222', GradientType=0); + border-color: #222222 #222222 #000000; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:dximagetransform.microsoft.gradient(enabled=false); +} +.btn-inverse:hover, +.btn-inverse:active, +.btn-inverse.active, +.btn-inverse.disabled, +.btn-inverse[disabled] { + background-color: #222222; +} +.btn-inverse:active, +.btn-inverse.active { + background-color: #080808 \9; +} +button.btn, +input[type="submit"].btn { + *padding-top: 2px; + *padding-bottom: 2px; +} +button.btn::-moz-focus-inner, +input[type="submit"].btn::-moz-focus-inner { + padding: 0; + border: 0; +} +button.btn.btn-large, +input[type="submit"].btn.btn-large { + *padding-top: 7px; + *padding-bottom: 7px; +} +button.btn.btn-small, +input[type="submit"].btn.btn-small { + *padding-top: 3px; + *padding-bottom: 3px; +} +button.btn.btn-mini, +input[type="submit"].btn.btn-mini { + *padding-top: 1px; + *padding-bottom: 1px; +} +[class^="icon-"], +[class*=" icon-"] { + display: inline-block; + width: 14px; + height: 14px; + line-height: 14px; + vertical-align: text-top; + background-image: url("../img/glyphicons-halflings.png"); + background-position: 14px 14px; + background-repeat: no-repeat; + *margin-right: .3em; +} +[class^="icon-"]:last-child, +[class*=" icon-"]:last-child { + *margin-left: 0; +} +.icon-white { + background-image: url("../img/glyphicons-halflings-white.png"); +} +.icon-glass { + background-position: 0 0; +} +.icon-music { + background-position: -24px 0; +} +.icon-search { + background-position: -48px 0; +} +.icon-envelope { + background-position: -72px 0; +} +.icon-heart { + background-position: -96px 0; +} +.icon-star { + background-position: -120px 0; +} +.icon-star-empty { + background-position: -144px 0; +} +.icon-user { + background-position: -168px 0; +} +.icon-film { + background-position: -192px 0; +} +.icon-th-large { + background-position: -216px 0; +} +.icon-th { + background-position: -240px 0; +} +.icon-th-list { + background-position: -264px 0; +} +.icon-ok { + background-position: -288px 0; +} +.icon-remove { + background-position: -312px 0; +} +.icon-zoom-in { + background-position: -336px 0; +} +.icon-zoom-out { + background-position: -360px 0; +} +.icon-off { + background-position: -384px 0; +} +.icon-signal { + background-position: -408px 0; +} +.icon-cog { + background-position: -432px 0; +} +.icon-trash { + background-position: -456px 0; +} +.icon-home { + background-position: 0 -24px; +} +.icon-file { + background-position: -24px -24px; +} +.icon-time { + background-position: -48px -24px; +} +.icon-road { + background-position: -72px -24px; +} +.icon-download-alt { + background-position: -96px -24px; +} +.icon-download { + background-position: -120px -24px; +} +.icon-upload { + background-position: -144px -24px; +} +.icon-inbox { + background-position: -168px -24px; +} +.icon-play-circle { + background-position: -192px -24px; +} +.icon-repeat { + background-position: -216px -24px; +} +.icon-refresh { + background-position: -240px -24px; +} +.icon-list-alt { + background-position: -264px -24px; +} +.icon-lock { + background-position: -287px -24px; +} +.icon-flag { + background-position: -312px -24px; +} +.icon-headphones { + background-position: -336px -24px; +} +.icon-volume-off { + background-position: -360px -24px; +} +.icon-volume-down { + background-position: -384px -24px; +} +.icon-volume-up { + background-position: -408px -24px; +} +.icon-qrcode { + background-position: -432px -24px; +} +.icon-barcode { + background-position: -456px -24px; +} +.icon-tag { + background-position: 0 -48px; +} +.icon-tags { + background-position: -25px -48px; +} +.icon-book { + background-position: -48px -48px; +} +.icon-bookmark { + background-position: -72px -48px; +} +.icon-print { + background-position: -96px -48px; +} +.icon-camera { + background-position: -120px -48px; +} +.icon-font { + background-position: -144px -48px; +} +.icon-bold { + background-position: -167px -48px; +} +.icon-italic { + background-position: -192px -48px; +} +.icon-text-height { + background-position: -216px -48px; +} +.icon-text-width { + background-position: -240px -48px; +} +.icon-align-left { + background-position: -264px -48px; +} +.icon-align-center { + background-position: -288px -48px; +} +.icon-align-right { + background-position: -312px -48px; +} +.icon-align-justify { + background-position: -336px -48px; +} +.icon-list { + background-position: -360px -48px; +} +.icon-indent-left { + background-position: -384px -48px; +} +.icon-indent-right { + background-position: -408px -48px; +} +.icon-facetime-video { + background-position: -432px -48px; +} +.icon-picture { + background-position: -456px -48px; +} +.icon-pencil { + background-position: 0 -72px; +} +.icon-map-marker { + background-position: -24px -72px; +} +.icon-adjust { + background-position: -48px -72px; +} +.icon-tint { + background-position: -72px -72px; +} +.icon-edit { + background-position: -96px -72px; +} +.icon-share { + background-position: -120px -72px; +} +.icon-check { + background-position: -144px -72px; +} +.icon-move { + background-position: -168px -72px; +} +.icon-step-backward { + background-position: -192px -72px; +} +.icon-fast-backward { + background-position: -216px -72px; +} +.icon-backward { + background-position: -240px -72px; +} +.icon-play { + background-position: -264px -72px; +} +.icon-pause { + background-position: -288px -72px; +} +.icon-stop { + background-position: -312px -72px; +} +.icon-forward { + background-position: -336px -72px; +} +.icon-fast-forward { + background-position: -360px -72px; +} +.icon-step-forward { + background-position: -384px -72px; +} +.icon-eject { + background-position: -408px -72px; +} +.icon-chevron-left { + background-position: -432px -72px; +} +.icon-chevron-right { + background-position: -456px -72px; +} +.icon-plus-sign { + background-position: 0 -96px; +} +.icon-minus-sign { + background-position: -24px -96px; +} +.icon-remove-sign { + background-position: -48px -96px; +} +.icon-ok-sign { + background-position: -72px -96px; +} +.icon-question-sign { + background-position: -96px -96px; +} +.icon-info-sign { + background-position: -120px -96px; +} +.icon-screenshot { + background-position: -144px -96px; +} +.icon-remove-circle { + background-position: -168px -96px; +} +.icon-ok-circle { + background-position: -192px -96px; +} +.icon-ban-circle { + background-position: -216px -96px; +} +.icon-arrow-left { + background-position: -240px -96px; +} +.icon-arrow-right { + background-position: -264px -96px; +} +.icon-arrow-up { + background-position: -289px -96px; +} +.icon-arrow-down { + background-position: -312px -96px; +} +.icon-share-alt { + background-position: -336px -96px; +} +.icon-resize-full { + background-position: -360px -96px; +} +.icon-resize-small { + background-position: -384px -96px; +} +.icon-plus { + background-position: -408px -96px; +} +.icon-minus { + background-position: -433px -96px; +} +.icon-asterisk { + background-position: -456px -96px; +} +.icon-exclamation-sign { + background-position: 0 -120px; +} +.icon-gift { + background-position: -24px -120px; +} +.icon-leaf { + background-position: -48px -120px; +} +.icon-fire { + background-position: -72px -120px; +} +.icon-eye-open { + background-position: -96px -120px; +} +.icon-eye-close { + background-position: -120px -120px; +} +.icon-warning-sign { + background-position: -144px -120px; +} +.icon-plane { + background-position: -168px -120px; +} +.icon-calendar { + background-position: -192px -120px; +} +.icon-random { + background-position: -216px -120px; +} +.icon-comment { + background-position: -240px -120px; +} +.icon-magnet { + background-position: -264px -120px; +} +.icon-chevron-up { + background-position: -288px -120px; +} +.icon-chevron-down { + background-position: -313px -119px; +} +.icon-retweet { + background-position: -336px -120px; +} +.icon-shopping-cart { + background-position: -360px -120px; +} +.icon-folder-close { + background-position: -384px -120px; +} +.icon-folder-open { + background-position: -408px -120px; +} +.icon-resize-vertical { + background-position: -432px -119px; +} +.icon-resize-horizontal { + background-position: -456px -118px; +} +.btn-group { + position: relative; + *zoom: 1; + *margin-left: .3em; +} +.btn-group:before, +.btn-group:after { + display: table; + content: ""; +} +.btn-group:after { + clear: both; +} +.btn-group:first-child { + *margin-left: 0; +} +.btn-group + .btn-group { + margin-left: 5px; +} +.btn-toolbar { + margin-top: 9px; + margin-bottom: 9px; +} +.btn-toolbar .btn-group { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; +} +.btn-group .btn { + position: relative; + float: left; + margin-left: -1px; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.btn-group .btn:first-child { + margin-left: 0; + -webkit-border-top-left-radius: 4px; + -moz-border-radius-topleft: 4px; + border-top-left-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; + border-bottom-left-radius: 4px; +} +.btn-group .btn:last-child, +.btn-group .dropdown-toggle { + -webkit-border-top-right-radius: 4px; + -moz-border-radius-topright: 4px; + border-top-right-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -moz-border-radius-bottomright: 4px; + border-bottom-right-radius: 4px; +} +.btn-group .btn.large:first-child { + margin-left: 0; + -webkit-border-top-left-radius: 6px; + -moz-border-radius-topleft: 6px; + border-top-left-radius: 6px; + -webkit-border-bottom-left-radius: 6px; + -moz-border-radius-bottomleft: 6px; + border-bottom-left-radius: 6px; +} +.btn-group .btn.large:last-child, +.btn-group .large.dropdown-toggle { + -webkit-border-top-right-radius: 6px; + -moz-border-radius-topright: 6px; + border-top-right-radius: 6px; + -webkit-border-bottom-right-radius: 6px; + -moz-border-radius-bottomright: 6px; + border-bottom-right-radius: 6px; +} +.btn-group .btn:hover, +.btn-group .btn:focus, +.btn-group .btn:active, +.btn-group .btn.active { + z-index: 2; +} +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline: 0; +} +.btn-group .dropdown-toggle { + padding-left: 8px; + padding-right: 8px; + -webkit-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + *padding-top: 3px; + *padding-bottom: 3px; +} +.btn-group .btn-mini.dropdown-toggle { + padding-left: 5px; + padding-right: 5px; + *padding-top: 1px; + *padding-bottom: 1px; +} +.btn-group .btn-small.dropdown-toggle { + *padding-top: 4px; + *padding-bottom: 4px; +} +.btn-group .btn-large.dropdown-toggle { + padding-left: 12px; + padding-right: 12px; +} +.btn-group.open { + *z-index: 1000; +} +.btn-group.open .dropdown-menu { + display: block; + margin-top: 1px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} +.btn-group.open .dropdown-toggle { + background-image: none; + -webkit-box-shadow: inset 0 1px 6px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 6px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 6px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); +} +.btn .caret { + margin-top: 7px; + margin-left: 0; +} +.btn:hover .caret, +.open.btn-group .caret { + opacity: 1; + filter: alpha(opacity=100); +} +.btn-mini .caret { + margin-top: 5px; +} +.btn-small .caret { + margin-top: 6px; +} +.btn-large .caret { + margin-top: 6px; + border-left: 5px solid transparent; + border-right: 5px solid transparent; + border-top: 5px solid #000000; +} +.btn-primary .caret, +.btn-warning .caret, +.btn-danger .caret, +.btn-info .caret, +.btn-success .caret, +.btn-inverse .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; + opacity: 0.75; + filter: alpha(opacity=75); +} +.nav { + margin-left: 0; + margin-bottom: 18px; + list-style: none; +} +.nav > li > a { + display: block; +} +.nav > li > a:hover { + text-decoration: none; + background-color: #eeeeee; +} +.nav .nav-header { + display: block; + padding: 3px 15px; + font-size: 11px; + font-weight: bold; + line-height: 18px; + color: #999999; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + text-transform: uppercase; +} +.nav li + .nav-header { + margin-top: 9px; +} +.nav-list { + padding-left: 15px; + padding-right: 15px; + margin-bottom: 0; +} +.nav-list > li > a, +.nav-list .nav-header { + margin-left: -15px; + margin-right: -15px; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); +} +.nav-list > li > a { + padding: 3px 15px; +} +.nav-list > .active > a, +.nav-list > .active > a:hover { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); + background-color: #0088cc; +} +.nav-list [class^="icon-"] { + margin-right: 2px; +} +.nav-list .divider { + height: 1px; + margin: 8px 1px; + overflow: hidden; + background-color: #e5e5e5; + border-bottom: 1px solid #ffffff; + *width: 100%; + *margin: -5px 0 5px; +} +.nav-tabs, +.nav-pills { + *zoom: 1; +} +.nav-tabs:before, +.nav-pills:before, +.nav-tabs:after, +.nav-pills:after { + display: table; + content: ""; +} +.nav-tabs:after, +.nav-pills:after { + clear: both; +} +.nav-tabs > li, +.nav-pills > li { + float: left; +} +.nav-tabs > li > a, +.nav-pills > li > a { + padding-right: 12px; + padding-left: 12px; + margin-right: 2px; + line-height: 14px; +} +.nav-tabs { + border-bottom: 1px solid #ddd; +} +.nav-tabs > li { + margin-bottom: -1px; +} +.nav-tabs > li > a { + padding-top: 8px; + padding-bottom: 8px; + line-height: 18px; + border: 1px solid transparent; + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} +.nav-tabs > li > a:hover { + border-color: #eeeeee #eeeeee #dddddd; +} +.nav-tabs > .active > a, +.nav-tabs > .active > a:hover { + color: #555555; + background-color: #ffffff; + border: 1px solid #ddd; + border-bottom-color: transparent; + cursor: default; +} +.nav-pills > li > a { + padding-top: 8px; + padding-bottom: 8px; + margin-top: 2px; + margin-bottom: 2px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} +.nav-pills > .active > a, +.nav-pills > .active > a:hover { + color: #ffffff; + background-color: #0088cc; +} +.nav-stacked > li { + float: none; +} +.nav-stacked > li > a { + margin-right: 0; +} +.nav-tabs.nav-stacked { + border-bottom: 0; +} +.nav-tabs.nav-stacked > li > a { + border: 1px solid #ddd; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.nav-tabs.nav-stacked > li:first-child > a { + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} +.nav-tabs.nav-stacked > li:last-child > a { + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; +} +.nav-tabs.nav-stacked > li > a:hover { + border-color: #ddd; + z-index: 2; +} +.nav-pills.nav-stacked > li > a { + margin-bottom: 3px; +} +.nav-pills.nav-stacked > li:last-child > a { + margin-bottom: 1px; +} +.nav-tabs .dropdown-menu, +.nav-pills .dropdown-menu { + margin-top: 1px; + border-width: 1px; +} +.nav-pills .dropdown-menu { + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.nav-tabs .dropdown-toggle .caret, +.nav-pills .dropdown-toggle .caret { + border-top-color: #0088cc; + border-bottom-color: #0088cc; + margin-top: 6px; +} +.nav-tabs .dropdown-toggle:hover .caret, +.nav-pills .dropdown-toggle:hover .caret { + border-top-color: #005580; + border-bottom-color: #005580; +} +.nav-tabs .active .dropdown-toggle .caret, +.nav-pills .active .dropdown-toggle .caret { + border-top-color: #333333; + border-bottom-color: #333333; +} +.nav > .dropdown.active > a:hover { + color: #000000; + cursor: pointer; +} +.nav-tabs .open .dropdown-toggle, +.nav-pills .open .dropdown-toggle, +.nav > .open.active > a:hover { + color: #ffffff; + background-color: #999999; + border-color: #999999; +} +.nav .open .caret, +.nav .open.active .caret, +.nav .open a:hover .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; + opacity: 1; + filter: alpha(opacity=100); +} +.tabs-stacked .open > a:hover { + border-color: #999999; +} +.tabbable { + *zoom: 1; +} +.tabbable:before, +.tabbable:after { + display: table; + content: ""; +} +.tabbable:after { + clear: both; +} +.tab-content { + display: table; + width: 100%; +} +.tabs-below .nav-tabs, +.tabs-right .nav-tabs, +.tabs-left .nav-tabs { + border-bottom: 0; +} +.tab-content > .tab-pane, +.pill-content > .pill-pane { + display: none; +} +.tab-content > .active, +.pill-content > .active { + display: block; +} +.tabs-below .nav-tabs { + border-top: 1px solid #ddd; +} +.tabs-below .nav-tabs > li { + margin-top: -1px; + margin-bottom: 0; +} +.tabs-below .nav-tabs > li > a { + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; +} +.tabs-below .nav-tabs > li > a:hover { + border-bottom-color: transparent; + border-top-color: #ddd; +} +.tabs-below .nav-tabs .active > a, +.tabs-below .nav-tabs .active > a:hover { + border-color: transparent #ddd #ddd #ddd; +} +.tabs-left .nav-tabs > li, +.tabs-right .nav-tabs > li { + float: none; +} +.tabs-left .nav-tabs > li > a, +.tabs-right .nav-tabs > li > a { + min-width: 74px; + margin-right: 0; + margin-bottom: 3px; +} +.tabs-left .nav-tabs { + float: left; + margin-right: 19px; + border-right: 1px solid #ddd; +} +.tabs-left .nav-tabs > li > a { + margin-right: -1px; + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} +.tabs-left .nav-tabs > li > a:hover { + border-color: #eeeeee #dddddd #eeeeee #eeeeee; +} +.tabs-left .nav-tabs .active > a, +.tabs-left .nav-tabs .active > a:hover { + border-color: #ddd transparent #ddd #ddd; + *border-right-color: #ffffff; +} +.tabs-right .nav-tabs { + float: right; + margin-left: 19px; + border-left: 1px solid #ddd; +} +.tabs-right .nav-tabs > li > a { + margin-left: -1px; + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} +.tabs-right .nav-tabs > li > a:hover { + border-color: #eeeeee #eeeeee #eeeeee #dddddd; +} +.tabs-right .nav-tabs .active > a, +.tabs-right .nav-tabs .active > a:hover { + border-color: #ddd #ddd #ddd transparent; + *border-left-color: #ffffff; +} +.navbar { + *position: relative; + *z-index: 2; + overflow: visible; + margin-bottom: 18px; +} +.navbar-inner { + padding-left: 20px; + padding-right: 20px; + background-color: #2c2c2c; + background-image: -moz-linear-gradient(top, #333333, #222222); + background-image: -ms-linear-gradient(top, #333333, #222222); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222)); + background-image: -webkit-linear-gradient(top, #333333, #222222); + background-image: -o-linear-gradient(top, #333333, #222222); + background-image: linear-gradient(top, #333333, #222222); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0); + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1); +} +.navbar .container { + width: auto; +} +.btn-navbar { + display: none; + float: right; + padding: 7px 10px; + margin-left: 5px; + margin-right: 5px; + background-color: #2c2c2c; + background-image: -moz-linear-gradient(top, #333333, #222222); + background-image: -ms-linear-gradient(top, #333333, #222222); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222)); + background-image: -webkit-linear-gradient(top, #333333, #222222); + background-image: -o-linear-gradient(top, #333333, #222222); + background-image: linear-gradient(top, #333333, #222222); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0); + border-color: #222222 #222222 #000000; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:dximagetransform.microsoft.gradient(enabled=false); + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); +} +.btn-navbar:hover, +.btn-navbar:active, +.btn-navbar.active, +.btn-navbar.disabled, +.btn-navbar[disabled] { + background-color: #222222; +} +.btn-navbar:active, +.btn-navbar.active { + background-color: #080808 \9; +} +.btn-navbar .icon-bar { + display: block; + width: 18px; + height: 2px; + background-color: #f5f5f5; + -webkit-border-radius: 1px; + -moz-border-radius: 1px; + border-radius: 1px; + -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); + -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); + box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); +} +.btn-navbar .icon-bar + .icon-bar { + margin-top: 3px; +} +.nav-collapse.collapse { + height: auto; +} +.navbar { + color: #999999; +} +.navbar .brand:hover { + text-decoration: none; +} +.navbar .brand { + float: left; + display: block; + padding: 8px 20px 12px; + margin-left: -20px; + font-size: 20px; + font-weight: 200; + line-height: 1; + color: #ffffff; +} +.navbar .navbar-text { + margin-bottom: 0; + line-height: 40px; +} +.navbar .btn, +.navbar .btn-group { + margin-top: 5px; +} +.navbar .btn-group .btn { + margin-top: 0; +} +.navbar-form { + margin-bottom: 0; + *zoom: 1; +} +.navbar-form:before, +.navbar-form:after { + display: table; + content: ""; +} +.navbar-form:after { + clear: both; +} +.navbar-form input, +.navbar-form select, +.navbar-form .radio, +.navbar-form .checkbox { + margin-top: 5px; +} +.navbar-form input, +.navbar-form select { + display: inline-block; + margin-bottom: 0; +} +.navbar-form input[type="image"], +.navbar-form input[type="checkbox"], +.navbar-form input[type="radio"] { + margin-top: 3px; +} +.navbar-form .input-append, +.navbar-form .input-prepend { + margin-top: 6px; + white-space: nowrap; +} +.navbar-form .input-append input, +.navbar-form .input-prepend input { + margin-top: 0; +} +.navbar-search { + position: relative; + float: left; + margin-top: 6px; + margin-bottom: 0; +} +.navbar-search .search-query { + padding: 4px 9px; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 13px; + font-weight: normal; + line-height: 1; + color: #ffffff; + background-color: #626262; + border: 1px solid #151515; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.15); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.15); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.15); + -webkit-transition: none; + -moz-transition: none; + -ms-transition: none; + -o-transition: none; + transition: none; +} +.navbar-search .search-query:-moz-placeholder { + color: #cccccc; +} +.navbar-search .search-query::-webkit-input-placeholder { + color: #cccccc; +} +.navbar-search .search-query:focus, +.navbar-search .search-query.focused { + padding: 5px 10px; + color: #333333; + text-shadow: 0 1px 0 #ffffff; + background-color: #ffffff; + border: 0; + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + outline: 0; +} +.navbar-fixed-top, +.navbar-fixed-bottom { + position: fixed; + right: 0; + left: 0; + z-index: 1030; + margin-bottom: 0; +} +.navbar-fixed-top .navbar-inner, +.navbar-fixed-bottom .navbar-inner { + padding-left: 0; + padding-right: 0; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.navbar-fixed-top .container, +.navbar-fixed-bottom .container { + width: 940px; +} +.navbar-fixed-top { + top: 0; +} +.navbar-fixed-bottom { + bottom: 0; +} +.navbar .nav { + position: relative; + left: 0; + display: block; + float: left; + margin: 0 10px 0 0; +} +.navbar .nav.pull-right { + float: right; +} +.navbar .nav > li { + display: block; + float: left; +} +.navbar .nav > li > a { + float: none; + padding: 10px 10px 11px; + line-height: 19px; + color: #999999; + text-decoration: none; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} +.navbar .nav > li > a:hover { + background-color: transparent; + color: #ffffff; + text-decoration: none; +} +.navbar .nav .active > a, +.navbar .nav .active > a:hover { + color: #ffffff; + text-decoration: none; + background-color: #222222; +} +.navbar .divider-vertical { + height: 40px; + width: 1px; + margin: 0 9px; + overflow: hidden; + background-color: #222222; + border-right: 1px solid #333333; +} +.navbar .nav.pull-right { + margin-left: 10px; + margin-right: 0; +} +.navbar .dropdown-menu { + margin-top: 1px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.navbar .dropdown-menu:before { + content: ''; + display: inline-block; + border-left: 7px solid transparent; + border-right: 7px solid transparent; + border-bottom: 7px solid #ccc; + border-bottom-color: rgba(0, 0, 0, 0.2); + position: absolute; + top: -7px; + left: 9px; +} +.navbar .dropdown-menu:after { + content: ''; + display: inline-block; + border-left: 6px solid transparent; + border-right: 6px solid transparent; + border-bottom: 6px solid #ffffff; + position: absolute; + top: -6px; + left: 10px; +} +.navbar-fixed-bottom .dropdown-menu:before { + border-top: 7px solid #ccc; + border-top-color: rgba(0, 0, 0, 0.2); + border-bottom: 0; + bottom: -7px; + top: auto; +} +.navbar-fixed-bottom .dropdown-menu:after { + border-top: 6px solid #ffffff; + border-bottom: 0; + bottom: -6px; + top: auto; +} +.navbar .nav .dropdown-toggle .caret, +.navbar .nav .open.dropdown .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} +.navbar .nav .active .caret { + opacity: 1; + filter: alpha(opacity=100); +} +.navbar .nav .open > .dropdown-toggle, +.navbar .nav .active > .dropdown-toggle, +.navbar .nav .open.active > .dropdown-toggle { + background-color: transparent; +} +.navbar .nav .active > .dropdown-toggle:hover { + color: #ffffff; +} +.navbar .nav.pull-right .dropdown-menu, +.navbar .nav .dropdown-menu.pull-right { + left: auto; + right: 0; +} +.navbar .nav.pull-right .dropdown-menu:before, +.navbar .nav .dropdown-menu.pull-right:before { + left: auto; + right: 12px; +} +.navbar .nav.pull-right .dropdown-menu:after, +.navbar .nav .dropdown-menu.pull-right:after { + left: auto; + right: 13px; +} +.breadcrumb { + padding: 7px 14px; + margin: 0 0 18px; + list-style: none; + background-color: #fbfbfb; + background-image: -moz-linear-gradient(top, #ffffff, #f5f5f5); + background-image: -ms-linear-gradient(top, #ffffff, #f5f5f5); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f5f5f5)); + background-image: -webkit-linear-gradient(top, #ffffff, #f5f5f5); + background-image: -o-linear-gradient(top, #ffffff, #f5f5f5); + background-image: linear-gradient(top, #ffffff, #f5f5f5); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f5f5f5', GradientType=0); + border: 1px solid #ddd; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + -webkit-box-shadow: inset 0 1px 0 #ffffff; + -moz-box-shadow: inset 0 1px 0 #ffffff; + box-shadow: inset 0 1px 0 #ffffff; +} +.breadcrumb li { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; + text-shadow: 0 1px 0 #ffffff; +} +.breadcrumb .divider { + padding: 0 5px; + color: #999999; +} +.breadcrumb .active a { + color: #333333; +} +.pagination { + height: 36px; + margin: 18px 0; +} +.pagination ul { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; + margin-left: 0; + margin-bottom: 0; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); +} +.pagination li { + display: inline; +} +.pagination a { + float: left; + padding: 0 14px; + line-height: 34px; + text-decoration: none; + border: 1px solid #ddd; + border-left-width: 0; +} +.pagination a:hover, +.pagination .active a { + background-color: #f5f5f5; +} +.pagination .active a { + color: #999999; + cursor: default; +} +.pagination .disabled span, +.pagination .disabled a, +.pagination .disabled a:hover { + color: #999999; + background-color: transparent; + cursor: default; +} +.pagination li:first-child a { + border-left-width: 1px; + -webkit-border-radius: 3px 0 0 3px; + -moz-border-radius: 3px 0 0 3px; + border-radius: 3px 0 0 3px; +} +.pagination li:last-child a { + -webkit-border-radius: 0 3px 3px 0; + -moz-border-radius: 0 3px 3px 0; + border-radius: 0 3px 3px 0; +} +.pagination-centered { + text-align: center; +} +.pagination-right { + text-align: right; +} +.pager { + margin-left: 0; + margin-bottom: 18px; + list-style: none; + text-align: center; + *zoom: 1; +} +.pager:before, +.pager:after { + display: table; + content: ""; +} +.pager:after { + clear: both; +} +.pager li { + display: inline; +} +.pager a { + display: inline-block; + padding: 5px 14px; + background-color: #fff; + /*border: 1px solid #ddd; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px;*/ +} +.pager a:hover { + text-decoration: none; + background-color: #f5f5f5; +} +.pager .next a { + float: right; +} +.pager .previous a { + float: left; +} +.pager .disabled a, +.pager .disabled a:hover { + color: #999999; + background-color: #fff; + cursor: default; +} +.thumbnails { + margin-left: -20px; + list-style: none; + *zoom: 1; +} +.thumbnails:before, +.thumbnails:after { + display: table; + content: ""; +} +.thumbnails:after { + clear: both; +} +.thumbnails > li { + float: left; + margin: 0 0 18px 20px; +} +.thumbnail { + display: block; + padding: 4px; + line-height: 1; + border: 1px solid #ddd; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075); +} +a.thumbnail:hover { + border-color: #0088cc; + -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); + -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); + box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); +} +.thumbnail > img { + display: block; + max-width: 100%; + margin-left: auto; + margin-right: auto; +} +.thumbnail .caption { + padding: 9px; +} +.alert { + padding: 8px 35px 8px 14px; + margin-bottom: 18px; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + background-color: #fcf8e3; + border: 1px solid #fbeed5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + color: #c09853; +} +.alert-heading { + color: inherit; +} +.alert .close { + position: relative; + top: -2px; + right: -21px; + line-height: 18px; +} +.alert-success { + background-color: #dff0d8; + border-color: #d6e9c6; + color: #468847; +} +.alert-danger, +.alert-error { + background-color: #f2dede; + border-color: #eed3d7; + color: #b94a48; +} +.alert-info { + background-color: #d9edf7; + border-color: #bce8f1; + color: #3a87ad; +} +.alert-block { + padding-top: 14px; + padding-bottom: 14px; +} +.alert-block > p, +.alert-block > ul { + margin-bottom: 0; +} +.alert-block p + p { + margin-top: 5px; +} +@-webkit-keyframes progress-bar-stripes { + from { + background-position: 0 0; + } + to { + background-position: 40px 0; + } +} +@-moz-keyframes progress-bar-stripes { + from { + background-position: 0 0; + } + to { + background-position: 40px 0; + } +} +@-ms-keyframes progress-bar-stripes { + from { + background-position: 0 0; + } + to { + background-position: 40px 0; + } +} +@keyframes progress-bar-stripes { + from { + background-position: 0 0; + } + to { + background-position: 40px 0; + } +} +.progress { + overflow: hidden; + height: 18px; + margin-bottom: 18px; + background-color: #f7f7f7; + background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: -ms-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9)); + background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: linear-gradient(top, #f5f5f5, #f9f9f9); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f5f5f5', endColorstr='#f9f9f9', GradientType=0); + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.progress .bar { + width: 0%; + height: 18px; + color: #ffffff; + font-size: 12px; + text-align: center; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #0e90d2; + background-image: -moz-linear-gradient(top, #149bdf, #0480be); + background-image: -ms-linear-gradient(top, #149bdf, #0480be); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be)); + background-image: -webkit-linear-gradient(top, #149bdf, #0480be); + background-image: -o-linear-gradient(top, #149bdf, #0480be); + background-image: linear-gradient(top, #149bdf, #0480be); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#149bdf', endColorstr='#0480be', GradientType=0); + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + -webkit-transition: width 0.6s ease; + -moz-transition: width 0.6s ease; + -ms-transition: width 0.6s ease; + -o-transition: width 0.6s ease; + transition: width 0.6s ease; +} +.progress-striped .bar { + background-color: #149bdf; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + -webkit-background-size: 40px 40px; + -moz-background-size: 40px 40px; + -o-background-size: 40px 40px; + background-size: 40px 40px; +} +.progress.active .bar { + -webkit-animation: progress-bar-stripes 2s linear infinite; + -moz-animation: progress-bar-stripes 2s linear infinite; + animation: progress-bar-stripes 2s linear infinite; +} +.progress-danger .bar { + background-color: #dd514c; + background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -ms-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35)); + background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -o-linear-gradient(top, #ee5f5b, #c43c35); + background-image: linear-gradient(top, #ee5f5b, #c43c35); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0); +} +.progress-danger.progress-striped .bar { + background-color: #ee5f5b; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.progress-success .bar { + background-color: #5eb95e; + background-image: -moz-linear-gradient(top, #62c462, #57a957); + background-image: -ms-linear-gradient(top, #62c462, #57a957); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957)); + background-image: -webkit-linear-gradient(top, #62c462, #57a957); + background-image: -o-linear-gradient(top, #62c462, #57a957); + background-image: linear-gradient(top, #62c462, #57a957); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0); +} +.progress-success.progress-striped .bar { + background-color: #62c462; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.progress-info .bar { + background-color: #4bb1cf; + background-image: -moz-linear-gradient(top, #5bc0de, #339bb9); + background-image: -ms-linear-gradient(top, #5bc0de, #339bb9); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9)); + background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9); + background-image: -o-linear-gradient(top, #5bc0de, #339bb9); + background-image: linear-gradient(top, #5bc0de, #339bb9); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0); +} +.progress-info.progress-striped .bar { + background-color: #5bc0de; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.progress-warning .bar { + background-color: #faa732; + background-image: -moz-linear-gradient(top, #fbb450, #f89406); + background-image: -ms-linear-gradient(top, #fbb450, #f89406); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); + background-image: -webkit-linear-gradient(top, #fbb450, #f89406); + background-image: -o-linear-gradient(top, #fbb450, #f89406); + background-image: linear-gradient(top, #fbb450, #f89406); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0); +} +.progress-warning.progress-striped .bar { + background-color: #fbb450; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.hero-unit { + padding: 60px; + margin-bottom: 30px; + background-color: #eeeeee; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} +.hero-unit h1 { + margin-bottom: 0; + font-size: 60px; + line-height: 1; + color: inherit; + letter-spacing: -1px; +} +.hero-unit p { + font-size: 18px; + font-weight: 200; + line-height: 27px; + color: inherit; +} +.tooltip { + position: absolute; + z-index: 1020; + display: block; + visibility: visible; + padding: 5px; + font-size: 11px; + opacity: 0; + filter: alpha(opacity=0); +} +.tooltip.in { + opacity: 0.8; + filter: alpha(opacity=80); +} +.tooltip.top { + margin-top: -2px; +} +.tooltip.right { + margin-left: 2px; +} +.tooltip.bottom { + margin-top: 2px; +} +.tooltip.left { + margin-left: -2px; +} +.tooltip.top .tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-left: 5px solid transparent; + border-right: 5px solid transparent; + border-top: 5px solid #000000; +} +.tooltip.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + border-left: 5px solid #000000; +} +.tooltip.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-left: 5px solid transparent; + border-right: 5px solid transparent; + border-bottom: 5px solid #000000; +} +.tooltip.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + border-right: 5px solid #000000; +} +.tooltip-inner { + max-width: 200px; + padding: 3px 8px; + color: #ffffff; + text-align: center; + text-decoration: none; + background-color: #000000; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; +} +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1010; + display: none; + padding: 5px; +} +.popover.top { + margin-top: -5px; +} +.popover.right { + margin-left: 5px; +} +.popover.bottom { + margin-top: 5px; +} +.popover.left { + margin-left: -5px; +} +.popover.top .arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-left: 5px solid transparent; + border-right: 5px solid transparent; + border-top: 5px solid #000000; +} +.popover.right .arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + border-right: 5px solid #000000; +} +.popover.bottom .arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-left: 5px solid transparent; + border-right: 5px solid transparent; + border-bottom: 5px solid #000000; +} +.popover.left .arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + border-left: 5px solid #000000; +} +.popover .arrow { + position: absolute; + width: 0; + height: 0; +} +.popover-inner { + padding: 3px; + width: 280px; + overflow: hidden; + background: #000000; + background: rgba(0, 0, 0, 0.8); + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); +} +.popover-title { + padding: 9px 15px; + line-height: 1; + background-color: #f5f5f5; + border-bottom: 1px solid #eee; + -webkit-border-radius: 3px 3px 0 0; + -moz-border-radius: 3px 3px 0 0; + border-radius: 3px 3px 0 0; +} +.popover-content { + padding: 14px; + background-color: #ffffff; + -webkit-border-radius: 0 0 3px 3px; + -moz-border-radius: 0 0 3px 3px; + border-radius: 0 0 3px 3px; + -webkit-background-clip: padding-box; + -moz-background-clip: padding-box; + background-clip: padding-box; +} +.popover-content p, +.popover-content ul, +.popover-content ol { + margin-bottom: 0; +} +.modal-open .dropdown-menu { + z-index: 2050; +} +.modal-open .dropdown.open { + *z-index: 2050; +} +.modal-open .popover { + z-index: 2060; +} +.modal-open .tooltip { + z-index: 2070; +} +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + background-color: #000000; +} +.modal-backdrop.fade { + opacity: 0; +} +.modal-backdrop, +.modal-backdrop.fade.in { + opacity: 0.8; + filter: alpha(opacity=80); +} +.modal { + position: fixed; + top: 50%; + left: 50%; + z-index: 1050; + overflow: auto; + width: 560px; + margin: -250px 0 0 -280px; + background-color: #ffffff; + border: 1px solid #999; + border: 1px solid rgba(0, 0, 0, 0.3); + *border: 1px solid #999; + /* IE6-7 */ + + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -webkit-background-clip: padding-box; + -moz-background-clip: padding-box; + background-clip: padding-box; +} +.modal.fade { + -webkit-transition: opacity .3s linear, top .3s ease-out; + -moz-transition: opacity .3s linear, top .3s ease-out; + -ms-transition: opacity .3s linear, top .3s ease-out; + -o-transition: opacity .3s linear, top .3s ease-out; + transition: opacity .3s linear, top .3s ease-out; + top: -25%; +} +.modal.fade.in { + top: 50%; +} +.modal-header { + padding: 9px 15px; + border-bottom: 1px solid #eee; +} +.modal-header .close { + margin-top: 2px; +} +.modal-body { + overflow-y: auto; + max-height: 400px; + padding: 15px; +} +.modal-form { + margin-bottom: 0; +} +.modal-footer { + padding: 14px 15px 15px; + margin-bottom: 0; + text-align: right; + background-color: #f5f5f5; + border-top: 1px solid #ddd; + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; + -webkit-box-shadow: inset 0 1px 0 #ffffff; + -moz-box-shadow: inset 0 1px 0 #ffffff; + box-shadow: inset 0 1px 0 #ffffff; + *zoom: 1; +} +.modal-footer:before, +.modal-footer:after { + display: table; + content: ""; +} +.modal-footer:after { + clear: both; +} +.modal-footer .btn + .btn { + margin-left: 5px; + margin-bottom: 0; +} +.modal-footer .btn-group .btn + .btn { + margin-left: -1px; +} +.dropdown { + position: relative; +} +.dropdown-toggle { + *margin-bottom: -3px; +} +.dropdown-toggle:active, +.open .dropdown-toggle { + outline: 0; +} +.caret { + display: inline-block; + width: 0; + height: 0; + vertical-align: top; + border-left: 4px solid transparent; + border-right: 4px solid transparent; + border-top: 4px solid #000000; + opacity: 0.3; + filter: alpha(opacity=30); + content: ""; +} +.dropdown .caret { + margin-top: 8px; + margin-left: 2px; +} +.dropdown:hover .caret, +.open.dropdown .caret { + opacity: 1; + filter: alpha(opacity=100); +} +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + float: left; + display: none; + min-width: 160px; + padding: 4px 0; + margin: 0; + list-style: none; + background-color: #ffffff; + border-color: #ccc; + border-color: rgba(0, 0, 0, 0.2); + border-style: solid; + border-width: 1px; + -webkit-border-radius: 0 0 5px 5px; + -moz-border-radius: 0 0 5px 5px; + border-radius: 0 0 5px 5px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; + *border-right-width: 2px; + *border-bottom-width: 2px; +} +.dropdown-menu.pull-right { + right: 0; + left: auto; +} +.dropdown-menu .divider { + height: 1px; + margin: 8px 1px; + overflow: hidden; + background-color: #e5e5e5; + border-bottom: 1px solid #ffffff; + *width: 100%; + *margin: -5px 0 5px; +} +.dropdown-menu a { + display: block; + padding: 3px 15px; + clear: both; + font-weight: normal; + line-height: 18px; + color: #333333; + white-space: nowrap; +} +.dropdown-menu li > a:hover, +.dropdown-menu .active > a, +.dropdown-menu .active > a:hover { + color: #ffffff; + text-decoration: none; + background-color: #0088cc; +} +.dropdown.open { + *z-index: 1000; +} +.dropdown.open .dropdown-toggle { + color: #ffffff; + background: #ccc; + background: rgba(0, 0, 0, 0.3); +} +.dropdown.open .dropdown-menu { + display: block; +} +.pull-right .dropdown-menu { + left: auto; + right: 0; +} +.dropup .caret, +.navbar-fixed-bottom .dropdown .caret { + border-top: 0; + border-bottom: 4px solid #000000; + content: "\2191"; +} +.dropup .dropdown-menu, +.navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 1px; +} +.typeahead { + margin-top: 2px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.accordion { + margin-bottom: 18px; +} +.accordion-group { + margin-bottom: 2px; + border: 1px solid #e5e5e5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.accordion-heading { + border-bottom: 0; +} +.accordion-heading .accordion-toggle { + display: block; + padding: 8px 15px; +} +.accordion-inner { + padding: 9px 15px; + border-top: 1px solid #e5e5e5; +} +.carousel { + position: relative; + margin-bottom: 18px; + line-height: 1; +} +.carousel-inner { + overflow: hidden; + width: 100%; + position: relative; +} +.carousel .item { + display: none; + position: relative; + -webkit-transition: 0.6s ease-in-out left; + -moz-transition: 0.6s ease-in-out left; + -ms-transition: 0.6s ease-in-out left; + -o-transition: 0.6s ease-in-out left; + transition: 0.6s ease-in-out left; +} +.carousel .item > img { + display: block; + line-height: 1; +} +.carousel .active, +.carousel .next, +.carousel .prev { + display: block; +} +.carousel .active { + left: 0; +} +.carousel .next, +.carousel .prev { + position: absolute; + top: 0; + width: 100%; +} +.carousel .next { + left: 100%; +} +.carousel .prev { + left: -100%; +} +.carousel .next.left, +.carousel .prev.right { + left: 0; +} +.carousel .active.left { + left: -100%; +} +.carousel .active.right { + left: 100%; +} +.carousel-control { + position: absolute; + top: 40%; + left: 15px; + width: 40px; + height: 40px; + margin-top: -20px; + font-size: 60px; + font-weight: 100; + line-height: 30px; + color: #ffffff; + text-align: center; + background: #222222; + border: 3px solid #ffffff; + -webkit-border-radius: 23px; + -moz-border-radius: 23px; + border-radius: 23px; + opacity: 0.5; + filter: alpha(opacity=50); +} +.carousel-control.right { + left: auto; + right: 15px; +} +.carousel-control:hover { + color: #ffffff; + text-decoration: none; + opacity: 0.9; + filter: alpha(opacity=90); +} +.carousel-caption { + position: absolute; + left: 0; + right: 0; + bottom: 0; + padding: 10px 15px 5px; + background: #333333; + background: rgba(0, 0, 0, 0.75); +} +.carousel-caption h4, +.carousel-caption p { + color: #ffffff; +} +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: #f5f5f5; + border: 1px solid #eee; + border: 1px solid rgba(0, 0, 0, 0.05); + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); +} +.well blockquote { + border-color: #ddd; + border-color: rgba(0, 0, 0, 0.15); +} +.well-large { + padding: 24px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} +.well-small { + padding: 9px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} +.close { + float: right; + font-size: 20px; + font-weight: bold; + line-height: 18px; + color: #000000; + text-shadow: 0 1px 0 #ffffff; + opacity: 0.2; + filter: alpha(opacity=20); +} +.close:hover { + color: #000000; + text-decoration: none; + opacity: 0.4; + filter: alpha(opacity=40); + cursor: pointer; +} +.pull-right { + float: right; +} +.pull-left { + float: left; +} +.hide { + display: none; +} +.show { + display: block; +} +.invisible { + visibility: hidden; +} +.fade { + -webkit-transition: opacity 0.15s linear; + -moz-transition: opacity 0.15s linear; + -ms-transition: opacity 0.15s linear; + -o-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; + opacity: 0; +} +.fade.in { + opacity: 1; +} +.collapse { + -webkit-transition: height 0.35s ease; + -moz-transition: height 0.35s ease; + -ms-transition: height 0.35s ease; + -o-transition: height 0.35s ease; + transition: height 0.35s ease; + position: relative; + overflow: hidden; + height: 0; +} +.collapse.in { + height: auto; +} +/*! + * Bootstrap Responsive v2.0.2 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */ +.hidden { + display: none; + visibility: hidden; +} +.visible-phone { + display: none; +} +.visible-tablet { + display: none; +} +.visible-desktop { + display: block; +} +.hidden-phone { + display: block; +} +.hidden-tablet { + display: block; +} +.hidden-desktop { + display: none; +} +@media (max-width: 767px) { + .visible-phone { + display: block; + } + .hidden-phone { + display: none; + } + .hidden-desktop { + display: block; + } + .visible-desktop { + display: none; + } +} +@media (min-width: 768px) and (max-width: 979px) { + .visible-tablet { + display: block; + } + .hidden-tablet { + display: none; + } + .hidden-desktop { + display: block; + } + .visible-desktop { + display: none; + } +} +@media (max-width: 480px) { + .nav-collapse { + -webkit-transform: translate3d(0, 0, 0); + } + .page-header h1 small { + display: block; + line-height: 18px; + } + input[type="checkbox"], + input[type="radio"] { + border: 1px solid #ccc; + } + .form-horizontal .control-group > label { + float: none; + width: auto; + padding-top: 0; + text-align: left; + } + .form-horizontal .controls { + margin-left: 0; + } + .form-horizontal .control-list { + padding-top: 0; + } + .form-horizontal .form-actions { + padding-left: 10px; + padding-right: 10px; + } + .modal { + position: absolute; + top: 10px; + left: 10px; + right: 10px; + width: auto; + margin: 0; + } + .modal.fade.in { + top: auto; + } + .modal-header .close { + padding: 10px; + margin: -10px; + } + .carousel-caption { + position: static; + } +} +@media (max-width: 767px) { + body { + padding-left: 20px; + padding-right: 20px; + } + .navbar-fixed-top { + margin-left: -20px; + margin-right: -20px; + } + .container { + width: auto; + } + .row-fluid { + width: 100%; + } + .row { + margin-left: 0; + } + .row > [class*="span"], + .row-fluid > [class*="span"] { + float: none; + display: block; + width: auto; + margin: 0; + } + .thumbnails [class*="span"] { + width: auto; + } + input[class*="span"], + select[class*="span"], + textarea[class*="span"], + .uneditable-input { + display: block; + width: 100%; + min-height: 28px; + /* Make inputs at least the height of their button counterpart */ + + /* Makes inputs behave like true block-level elements */ + + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + } + .input-prepend input[class*="span"], + .input-append input[class*="span"] { + width: auto; + } +} +@media (min-width: 768px) and (max-width: 979px) { + .row { + margin-left: -20px; + *zoom: 1; + } + .row:before, + .row:after { + display: table; + content: ""; + } + .row:after { + clear: both; + } + [class*="span"] { + float: left; + margin-left: 20px; + } + .container, + .navbar-fixed-top .container, + .navbar-fixed-bottom .container { + width: 724px; + } + .span12 { + width: 724px; + } + .span11 { + width: 662px; + } + .span10 { + width: 600px; + } + .span9 { + width: 538px; + } + .span8 { + width: 476px; + } + .span7 { + width: 414px; + } + .span6 { + width: 352px; + } + .span5 { + width: 290px; + } + .span4 { + width: 228px; + } + .span3 { + width: 166px; + } + .span2 { + width: 104px; + } + .span1 { + width: 42px; + } + .offset12 { + margin-left: 764px; + } + .offset11 { + margin-left: 702px; + } + .offset10 { + margin-left: 640px; + } + .offset9 { + margin-left: 578px; + } + .offset8 { + margin-left: 516px; + } + .offset7 { + margin-left: 454px; + } + .offset6 { + margin-left: 392px; + } + .offset5 { + margin-left: 330px; + } + .offset4 { + margin-left: 268px; + } + .offset3 { + margin-left: 206px; + } + .offset2 { + margin-left: 144px; + } + .offset1 { + margin-left: 82px; + } + .row-fluid { + width: 100%; + *zoom: 1; + } + .row-fluid:before, + .row-fluid:after { + display: table; + content: ""; + } + .row-fluid:after { + clear: both; + } + .row-fluid > [class*="span"] { + float: left; + margin-left: 2.762430939%; + } + .row-fluid > [class*="span"]:first-child { + margin-left: 0; + } + .row-fluid > .span12 { + width: 99.999999993%; + } + .row-fluid > .span11 { + width: 91.436464082%; + } + .row-fluid > .span10 { + width: 82.87292817100001%; + } + .row-fluid > .span9 { + width: 74.30939226%; + } + .row-fluid > .span8 { + width: 65.74585634900001%; + } + .row-fluid > .span7 { + width: 57.182320438000005%; + } + .row-fluid > .span6 { + width: 48.618784527%; + } + .row-fluid > .span5 { + width: 40.055248616%; + } + .row-fluid > .span4 { + width: 31.491712705%; + } + .row-fluid > .span3 { + width: 22.928176794%; + } + .row-fluid > .span2 { + width: 14.364640883%; + } + .row-fluid > .span1 { + width: 5.801104972%; + } + input.span12, textarea.span12, .uneditable-input.span12 { + width: 714px; + } + input.span11, textarea.span11, .uneditable-input.span11 { + width: 652px; + } + input.span10, textarea.span10, .uneditable-input.span10 { + width: 590px; + } + input.span9, textarea.span9, .uneditable-input.span9 { + width: 528px; + } + input.span8, textarea.span8, .uneditable-input.span8 { + width: 466px; + } + input.span7, textarea.span7, .uneditable-input.span7 { + width: 404px; + } + input.span6, textarea.span6, .uneditable-input.span6 { + width: 342px; + } + input.span5, textarea.span5, .uneditable-input.span5 { + width: 280px; + } + input.span4, textarea.span4, .uneditable-input.span4 { + width: 218px; + } + input.span3, textarea.span3, .uneditable-input.span3 { + width: 156px; + } + input.span2, textarea.span2, .uneditable-input.span2 { + width: 94px; + } + input.span1, textarea.span1, .uneditable-input.span1 { + width: 32px; + } +} +@media (max-width: 979px) { + body { + padding-top: 0; + } + .navbar-fixed-top { + position: static; + margin-bottom: 18px; + } + .navbar-fixed-top .navbar-inner { + padding: 5px; + } + .navbar .container { + width: auto; + padding: 0; + } + .navbar .brand { + padding-left: 10px; + padding-right: 10px; + margin: 0 0 0 -5px; + } + .navbar .nav-collapse { + clear: left; + } + .navbar .nav { + float: none; + margin: 0 0 9px; + } + .navbar .nav > li { + float: none; + } + .navbar .nav > li > a { + margin-bottom: 2px; + } + .navbar .nav > .divider-vertical { + display: none; + } + .navbar .nav .nav-header { + color: #999999; + text-shadow: none; + } + .navbar .nav > li > a, + .navbar .dropdown-menu a { + padding: 6px 15px; + font-weight: bold; + color: #999999; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + } + .navbar .dropdown-menu li + li a { + margin-bottom: 2px; + } + .navbar .nav > li > a:hover, + .navbar .dropdown-menu a:hover { + background-color: #222222; + } + .navbar .dropdown-menu { + position: static; + top: auto; + left: auto; + float: none; + display: block; + max-width: none; + margin: 0 15px; + padding: 0; + background-color: transparent; + border: none; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + } + .navbar .dropdown-menu:before, + .navbar .dropdown-menu:after { + display: none; + } + .navbar .dropdown-menu .divider { + display: none; + } + .navbar-form, + .navbar-search { + float: none; + padding: 9px 15px; + margin: 9px 0; + border-top: 1px solid #222222; + border-bottom: 1px solid #222222; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + } + .navbar .nav.pull-right { + float: none; + margin-left: 0; + } + .navbar-static .navbar-inner { + padding-left: 10px; + padding-right: 10px; + } + .btn-navbar { + display: block; + } + .nav-collapse { + overflow: hidden; + height: 0; + } +} +@media (min-width: 980px) { + .nav-collapse.collapse { + height: auto !important; + overflow: visible !important; + } +} +@media (min-width: 1200px) { + .row { + margin-left: -30px; + *zoom: 1; + } + .row:before, + .row:after { + display: table; + content: ""; + } + .row:after { + clear: both; + } + [class*="span"] { + float: left; + margin-left: 30px; + } + .container, + .navbar-fixed-top .container, + .navbar-fixed-bottom .container { + width: 1170px; + } + .span12 { + width: 1170px; + } + .span11 { + width: 1070px; + } + .span10 { + width: 970px; + } + .span9 { + width: 870px; + } + .span8 { + width: 770px; + } + .span7 { + width: 670px; + } + .span6 { + width: 570px; + } + .span5 { + width: 470px; + } + .span4 { + width: 370px; + } + .span3 { + width: 270px; + } + .span2 { + width: 170px; + } + .span1 { + width: 70px; + } + .offset12 { + margin-left: 1230px; + } + .offset11 { + margin-left: 1130px; + } + .offset10 { + margin-left: 1030px; + } + .offset9 { + margin-left: 930px; + } + .offset8 { + margin-left: 830px; + } + .offset7 { + margin-left: 730px; + } + .offset6 { + margin-left: 630px; + } + .offset5 { + margin-left: 530px; + } + .offset4 { + margin-left: 430px; + } + .offset3 { + margin-left: 330px; + } + .offset2 { + margin-left: 230px; + } + .offset1 { + margin-left: 130px; + } + .row-fluid { + width: 100%; + *zoom: 1; + } + .row-fluid:before, + .row-fluid:after { + display: table; + content: ""; + } + .row-fluid:after { + clear: both; + } + .row-fluid > [class*="span"] { + float: left; + margin-left: 2.564102564%; + } + .row-fluid > [class*="span"]:first-child { + margin-left: 0; + } + .row-fluid > .span12 { + width: 100%; + } + .row-fluid > .span11 { + width: 91.45299145300001%; + } + .row-fluid > .span10 { + width: 82.905982906%; + } + .row-fluid > .span9 { + width: 74.358974359%; + } + .row-fluid > .span8 { + width: 65.81196581200001%; + } + .row-fluid > .span7 { + width: 57.264957265%; + } + .row-fluid > .span6 { + width: 48.717948718%; + } + .row-fluid > .span5 { + width: 40.170940171000005%; + } + .row-fluid > .span4 { + width: 31.623931624%; + } + .row-fluid > .span3 { + width: 23.076923077%; + } + .row-fluid > .span2 { + width: 14.529914530000001%; + } + .row-fluid > .span1 { + width: 5.982905983%; + } + input, + textarea, + .uneditable-input { + margin-left: 0; + } + input.span12, textarea.span12, .uneditable-input.span12 { + width: 1160px; + } + input.span11, textarea.span11, .uneditable-input.span11 { + width: 1060px; + } + input.span10, textarea.span10, .uneditable-input.span10 { + width: 960px; + } + input.span9, textarea.span9, .uneditable-input.span9 { + width: 860px; + } + input.span8, textarea.span8, .uneditable-input.span8 { + width: 760px; + } + input.span7, textarea.span7, .uneditable-input.span7 { + width: 660px; + } + input.span6, textarea.span6, .uneditable-input.span6 { + width: 560px; + } + input.span5, textarea.span5, .uneditable-input.span5 { + width: 460px; + } + input.span4, textarea.span4, .uneditable-input.span4 { + width: 360px; + } + input.span3, textarea.span3, .uneditable-input.span3 { + width: 260px; + } + input.span2, textarea.span2, .uneditable-input.span2 { + width: 160px; + } + input.span1, textarea.span1, .uneditable-input.span1 { + width: 60px; + } + .thumbnails { + margin-left: -30px; + } + .thumbnails > li { + margin-left: 30px; + } +} + +/* Modifications for askbot */ +.caret { + margin-bottom: 7px; +} +.btn-group { + text-align: left; +} +.btn-toolbar { + margin: 0; +} +.modal-footer { + text-align: left; +} +.modal p { + font-size: 14px; +} +.modal-body > textarea { + width: 515px; + margin-bottom: 0px; +} +.modal-backdrop { + z-index: 200000; +} +.modal { + z-index: 200001; +} diff --git a/askbot/media/bootstrap/css/bootstrap.min.css b/askbot/media/bootstrap/css/bootstrap.min.css new file mode 100644 index 00000000..17b18fb6 --- /dev/null +++ b/askbot/media/bootstrap/css/bootstrap.min.css @@ -0,0 +1,706 @@ +/*! + * Bootstrap v2.0.2 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */ +.clearfix{*zoom:1;}.clearfix:before,.clearfix:after{display:table;content:"";} +.clearfix:after{clear:both;} +.hide-text{overflow:hidden;text-indent:100%;white-space:nowrap;} +.input-block-level{display:block;width:100%;min-height:28px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;} +article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block;} +audio,canvas,video{display:inline-block;*display:inline;*zoom:1;} +audio:not([controls]){display:none;} +html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;} +a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;} +a:hover,a:active{outline:0;} +sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline;} +sup{top:-0.5em;} +sub{bottom:-0.25em;} +img{height:auto;border:0;-ms-interpolation-mode:bicubic;vertical-align:middle;} +button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle;} +button,input{*overflow:visible;line-height:normal;} +button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0;} +button,input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button;} +input[type="search"]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;} +input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none;} +textarea{overflow:auto;vertical-align:top;} +body{margin:0;font-family:Arial,sans-serif;font-size:13px;line-height:18px;color:#333333;background-color:#ffffff;} +a{color:#0088cc;text-decoration:none;} +a:hover{color:#005580;text-decoration:underline;} +.row{margin-left:-20px;*zoom:1;}.row:before,.row:after{display:table;content:"";} +.row:after{clear:both;} +[class*="span"]{float:left;margin-left:20px;} +.container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px;} +.span12{width:940px;} +.span11{width:860px;} +.span10{width:780px;} +.span9{width:700px;} +.span8{width:620px;} +.span7{width:540px;} +.span6{width:460px;} +.span5{width:380px;} +.span4{width:300px;} +.span3{width:220px;} +.span2{width:140px;} +.span1{width:60px;} +.offset12{margin-left:980px;} +.offset11{margin-left:900px;} +.offset10{margin-left:820px;} +.offset9{margin-left:740px;} +.offset8{margin-left:660px;} +.offset7{margin-left:580px;} +.offset6{margin-left:500px;} +.offset5{margin-left:420px;} +.offset4{margin-left:340px;} +.offset3{margin-left:260px;} +.offset2{margin-left:180px;} +.offset1{margin-left:100px;} +.row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";} +.row-fluid:after{clear:both;} +.row-fluid>[class*="span"]{float:left;margin-left:2.127659574%;} +.row-fluid>[class*="span"]:first-child{margin-left:0;} +.row-fluid > .span12{width:99.99999998999999%;} +.row-fluid > .span11{width:91.489361693%;} +.row-fluid > .span10{width:82.97872339599999%;} +.row-fluid > .span9{width:74.468085099%;} +.row-fluid > .span8{width:65.95744680199999%;} +.row-fluid > .span7{width:57.446808505%;} +.row-fluid > .span6{width:48.93617020799999%;} +.row-fluid > .span5{width:40.425531911%;} +.row-fluid > .span4{width:31.914893614%;} +.row-fluid > .span3{width:23.404255317%;} +.row-fluid > .span2{width:14.89361702%;} +.row-fluid > .span1{width:6.382978723%;} +.container{margin-left:auto;margin-right:auto;*zoom:1;}.container:before,.container:after{display:table;content:"";} +.container:after{clear:both;} +.container-fluid{padding-left:20px;padding-right:20px;*zoom:1;}.container-fluid:before,.container-fluid:after{display:table;content:"";} +.container-fluid:after{clear:both;} +p{margin:0 0 9px;font-family:Arial,sans-serif;font-size:13px;line-height:18px;}p small{font-size:11px;color:#999999;} +.lead{margin-bottom:18px;font-size:20px;font-weight:200;line-height:27px;} +h1,h2,h3,h4,h5,h6{margin:0;font-family:inherit;font-weight:bold;color:inherit;text-rendering:optimizelegibility;}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;color:#999999;} +h1{font-size:30px;line-height:36px;}h1 small{font-size:18px;} +h2{font-size:24px;line-height:36px;}h2 small{font-size:18px;} +h3{line-height:27px;font-size:18px;}h3 small{font-size:14px;} +h4,h5,h6{line-height:18px;} +h4{font-size:14px;}h4 small{font-size:12px;} +h5{font-size:12px;} +h6{font-size:11px;color:#999999;text-transform:uppercase;} +.page-header{padding-bottom:17px;margin:18px 0;border-bottom:1px solid #eeeeee;} +.page-header h1{line-height:1;} +ul,ol{padding:0;margin:0 0 9px 25px;} +ul ul,ul ol,ol ol,ol ul{margin-bottom:0;} +ul{list-style:disc;} +ol{list-style:decimal;} +li{line-height:18px;} +ul.unstyled,ol.unstyled{margin-left:0;list-style:none;} +dl{margin-bottom:18px;} +dt,dd{line-height:18px;} +dt{font-weight:bold;line-height:17px;} +dd{margin-left:9px;} +.dl-horizontal dt{float:left;clear:left;width:120px;text-align:right;} +.dl-horizontal dd{margin-left:130px;} +hr{margin:18px 0;border:0;border-top:1px solid #eeeeee;border-bottom:1px solid #ffffff;} +strong{font-weight:bold;} +em{font-style:italic;} +.muted{color:#999999;} +abbr[title]{border-bottom:1px dotted #ddd;cursor:help;} +abbr.initialism{font-size:90%;text-transform:uppercase;} +blockquote{padding:0 0 0 15px;margin:0 0 18px;border-left:5px solid #eeeeee;}blockquote p{margin-bottom:0;font-size:16px;font-weight:300;line-height:22.5px;} +blockquote small{display:block;line-height:18px;color:#999999;}blockquote small:before{content:'\2014 \00A0';} +blockquote.pull-right{float:right;padding-left:0;padding-right:15px;border-left:0;border-right:5px solid #eeeeee;}blockquote.pull-right p,blockquote.pull-right small{text-align:right;} +q:before,q:after,blockquote:before,blockquote:after{content:"";} +address{display:block;margin-bottom:18px;line-height:18px;font-style:normal;} +small{font-size:100%;} +cite{font-style:normal;} +code,pre{padding:0 3px 2px;font-family:Menlo,Monaco,"Courier New",monospace;font-size:12px;color:#333333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} +code{padding:2px 4px;color:#d14;background-color:#f7f7f9;border:1px solid #e1e1e8;} +pre{display:block;padding:8.5px;margin:0 0 9px;font-size:12.025px;line-height:18px;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;white-space:pre;white-space:pre-wrap;word-break:break-all;word-wrap:break-word;}pre.prettyprint{margin-bottom:18px;} +pre code{padding:0;color:inherit;background-color:transparent;border:0;} +.pre-scrollable{max-height:340px;overflow-y:scroll;} +.label{padding:1px 4px 2px;font-size:10.998px;font-weight:bold;line-height:13px;color:#ffffff;vertical-align:middle;white-space:nowrap;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#999999;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} +.label:hover{color:#ffffff;text-decoration:none;} +.label-important{background-color:#b94a48;} +.label-important:hover{background-color:#953b39;} +.label-warning{background-color:#f89406;} +.label-warning:hover{background-color:#c67605;} +.label-success{background-color:#468847;} +.label-success:hover{background-color:#356635;} +.label-info{background-color:#3a87ad;} +.label-info:hover{background-color:#2d6987;} +.label-inverse{background-color:#333333;} +.label-inverse:hover{background-color:#1a1a1a;} +.badge{padding:1px 9px 2px;font-size:12.025px;font-weight:bold;white-space:nowrap;color:#ffffff;background-color:#999999;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px;} +.badge:hover{color:#ffffff;text-decoration:none;cursor:pointer;} +.badge-error{background-color:#b94a48;} +.badge-error:hover{background-color:#953b39;} +.badge-warning{background-color:#f89406;} +.badge-warning:hover{background-color:#c67605;} +.badge-success{background-color:#468847;} +.badge-success:hover{background-color:#356635;} +.badge-info{background-color:#3a87ad;} +.badge-info:hover{background-color:#2d6987;} +.badge-inverse{background-color:#333333;} +.badge-inverse:hover{background-color:#1a1a1a;} +table{max-width:100%;border-collapse:collapse;border-spacing:0;background-color:transparent;} +.table{width:100%;margin-bottom:18px;}.table th,.table td{padding:8px;line-height:18px;text-align:left;vertical-align:top;border-top:1px solid #dddddd;} +.table th{font-weight:bold;} +.table thead th{vertical-align:bottom;} +.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0;} +.table tbody+tbody{border-top:2px solid #dddddd;} +.table-condensed th,.table-condensed td{padding:4px 5px;} +.table-bordered{border:1px solid #dddddd;border-left:0;border-collapse:separate;*border-collapse:collapsed;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}.table-bordered th,.table-bordered td{border-left:1px solid #dddddd;} +.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0;} +.table-bordered thead:first-child tr:first-child th:first-child,.table-bordered tbody:first-child tr:first-child td:first-child{-webkit-border-radius:4px 0 0 0;-moz-border-radius:4px 0 0 0;border-radius:4px 0 0 0;} +.table-bordered thead:first-child tr:first-child th:last-child,.table-bordered tbody:first-child tr:first-child td:last-child{-webkit-border-radius:0 4px 0 0;-moz-border-radius:0 4px 0 0;border-radius:0 4px 0 0;} +.table-bordered thead:last-child tr:last-child th:first-child,.table-bordered tbody:last-child tr:last-child td:first-child{-webkit-border-radius:0 0 0 4px;-moz-border-radius:0 0 0 4px;border-radius:0 0 0 4px;} +.table-bordered thead:last-child tr:last-child th:last-child,.table-bordered tbody:last-child tr:last-child td:last-child{-webkit-border-radius:0 0 4px 0;-moz-border-radius:0 0 4px 0;border-radius:0 0 4px 0;} +.table-striped tbody tr:nth-child(odd) td,.table-striped tbody tr:nth-child(odd) th{background-color:#f9f9f9;} +.table tbody tr:hover td,.table tbody tr:hover th{background-color:#f5f5f5;} +table .span1{float:none;width:44px;margin-left:0;} +table .span2{float:none;width:124px;margin-left:0;} +table .span3{float:none;width:204px;margin-left:0;} +table .span4{float:none;width:284px;margin-left:0;} +table .span5{float:none;width:364px;margin-left:0;} +table .span6{float:none;width:444px;margin-left:0;} +table .span7{float:none;width:524px;margin-left:0;} +table .span8{float:none;width:604px;margin-left:0;} +table .span9{float:none;width:684px;margin-left:0;} +table .span10{float:none;width:764px;margin-left:0;} +table .span11{float:none;width:844px;margin-left:0;} +table .span12{float:none;width:924px;margin-left:0;} +table .span13{float:none;width:1004px;margin-left:0;} +table .span14{float:none;width:1084px;margin-left:0;} +table .span15{float:none;width:1164px;margin-left:0;} +table .span16{float:none;width:1244px;margin-left:0;} +table .span17{float:none;width:1324px;margin-left:0;} +table .span18{float:none;width:1404px;margin-left:0;} +table .span19{float:none;width:1484px;margin-left:0;} +table .span20{float:none;width:1564px;margin-left:0;} +table .span21{float:none;width:1644px;margin-left:0;} +table .span22{float:none;width:1724px;margin-left:0;} +table .span23{float:none;width:1804px;margin-left:0;} +table .span24{float:none;width:1884px;margin-left:0;} +form{margin:0 0 18px;} +fieldset{padding:0;margin:0;border:0;} +legend{display:block;width:100%;padding:0;margin-bottom:27px;font-size:19.5px;line-height:36px;color:#333333;border:0;border-bottom:1px solid #eee;}legend small{font-size:13.5px;color:#999999;} +label,input,button,select,textarea{font-size:13px;font-weight:normal;line-height:18px;} +input,button,select,textarea{font-family:Arial,sans-serif;} +label{display:block;margin-bottom:5px;color:#333333;} +input,textarea,select,.uneditable-input{display:inline-block;width:210px;height:18px;padding:4px;margin-bottom:9px;font-size:13px;line-height:18px;color:#555555;border:1px solid #cccccc;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} +.uneditable-textarea{width:auto;height:auto;} +label input,label textarea,label select{display:block;} +input[type="image"],input[type="checkbox"],input[type="radio"]{width:auto;height:auto;padding:0;margin:3px 0;*margin-top:0;line-height:normal;cursor:pointer;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;border:0 \9;} +input[type="image"]{border:0;} +input[type="file"]{width:auto;padding:initial;line-height:initial;border:initial;background-color:#ffffff;background-color:initial;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;} +input[type="button"],input[type="reset"],input[type="submit"]{width:auto;height:auto;} +select,input[type="file"]{height:28px;*margin-top:4px;line-height:28px;} +input[type="file"]{line-height:18px \9;} +select{width:220px;background-color:#ffffff;} +select[multiple],select[size]{height:auto;} +input[type="image"]{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;} +textarea{height:auto;} +input[type="hidden"]{display:none;} +.radio,.checkbox{padding-left:18px;} +.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-18px;} +.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px;} +.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle;} +.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px;} +input,textarea{-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-webkit-transition:border linear 0.2s,box-shadow linear 0.2s;-moz-transition:border linear 0.2s,box-shadow linear 0.2s;-ms-transition:border linear 0.2s,box-shadow linear 0.2s;-o-transition:border linear 0.2s,box-shadow linear 0.2s;transition:border linear 0.2s,box-shadow linear 0.2s;} +input:focus,textarea:focus{border-color:rgba(82, 168, 236, 0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 8px rgba(82, 168, 236, 0.6);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 8px rgba(82, 168, 236, 0.6);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 8px rgba(82, 168, 236, 0.6);outline:0;outline:thin dotted \9;} +input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus,select:focus{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;} +.input-mini{width:60px;} +.input-small{width:90px;} +.input-medium{width:150px;} +.input-large{width:210px;} +.input-xlarge{width:270px;} +.input-xxlarge{width:530px;} +input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{float:none;margin-left:0;} +input,textarea,.uneditable-input{margin-left:0;} +input.span12, textarea.span12, .uneditable-input.span12{width:930px;} +input.span11, textarea.span11, .uneditable-input.span11{width:850px;} +input.span10, textarea.span10, .uneditable-input.span10{width:770px;} +input.span9, textarea.span9, .uneditable-input.span9{width:690px;} +input.span8, textarea.span8, .uneditable-input.span8{width:610px;} +input.span7, textarea.span7, .uneditable-input.span7{width:530px;} +input.span6, textarea.span6, .uneditable-input.span6{width:450px;} +input.span5, textarea.span5, .uneditable-input.span5{width:370px;} +input.span4, textarea.span4, .uneditable-input.span4{width:290px;} +input.span3, textarea.span3, .uneditable-input.span3{width:210px;} +input.span2, textarea.span2, .uneditable-input.span2{width:130px;} +input.span1, textarea.span1, .uneditable-input.span1{width:50px;} +input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{background-color:#eeeeee;border-color:#ddd;cursor:not-allowed;} +.control-group.warning>label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853;} +.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853;border-color:#c09853;}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:0 0 6px #dbc59e;-moz-box-shadow:0 0 6px #dbc59e;box-shadow:0 0 6px #dbc59e;} +.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853;} +.control-group.error>label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48;} +.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48;border-color:#b94a48;}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:0 0 6px #d59392;-moz-box-shadow:0 0 6px #d59392;box-shadow:0 0 6px #d59392;} +.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48;} +.control-group.success>label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847;} +.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847;border-color:#468847;}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:0 0 6px #7aba7b;-moz-box-shadow:0 0 6px #7aba7b;box-shadow:0 0 6px #7aba7b;} +.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847;} +input:focus:required:invalid,textarea:focus:required:invalid,select:focus:required:invalid{color:#b94a48;border-color:#ee5f5b;}input:focus:required:invalid:focus,textarea:focus:required:invalid:focus,select:focus:required:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7;} +.form-actions{padding:17px 20px 18px;margin-top:18px;margin-bottom:18px;background-color:#eeeeee;border-top:1px solid #ddd;*zoom:1;}.form-actions:before,.form-actions:after{display:table;content:"";} +.form-actions:after{clear:both;} +.uneditable-input{display:block;background-color:#ffffff;border-color:#eee;-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);cursor:not-allowed;} +:-moz-placeholder{color:#999999;} +::-webkit-input-placeholder{color:#999999;} +.help-block,.help-inline{color:#555555;} +.help-block{display:block;margin-bottom:9px;} +.help-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle;padding-left:5px;} +.input-prepend,.input-append{margin-bottom:5px;}.input-prepend input,.input-append input,.input-prepend select,.input-append select,.input-prepend .uneditable-input,.input-append .uneditable-input{*margin-left:0;-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0;}.input-prepend input:focus,.input-append input:focus,.input-prepend select:focus,.input-append select:focus,.input-prepend .uneditable-input:focus,.input-append .uneditable-input:focus{position:relative;z-index:2;} +.input-prepend .uneditable-input,.input-append .uneditable-input{border-left-color:#ccc;} +.input-prepend .add-on,.input-append .add-on{display:inline-block;width:auto;min-width:16px;height:18px;padding:4px 5px;font-weight:normal;line-height:18px;text-align:center;text-shadow:0 1px 0 #ffffff;vertical-align:middle;background-color:#eeeeee;border:1px solid #ccc;} +.input-prepend .add-on,.input-append .add-on,.input-prepend .btn,.input-append .btn{-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;} +.input-prepend .active,.input-append .active{background-color:#a9dba9;border-color:#46a546;} +.input-prepend .add-on,.input-prepend .btn{margin-right:-1px;} +.input-append input,.input-append select .uneditable-input{-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;} +.input-append .uneditable-input{border-left-color:#eee;border-right-color:#ccc;} +.input-append .add-on,.input-append .btn{margin-left:-1px;-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0;} +.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;} +.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;} +.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0;} +.search-query{padding-left:14px;padding-right:14px;margin-bottom:0;-webkit-border-radius:14px;-moz-border-radius:14px;border-radius:14px;} +.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;margin-bottom:0;} +.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none;} +.form-search label,.form-inline label{display:inline-block;} +.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0;} +.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle;} +.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-left:0;margin-right:3px;} +.control-group{margin-bottom:9px;} +legend+.control-group{margin-top:18px;-webkit-margin-top-collapse:separate;} +.form-horizontal .control-group{margin-bottom:18px;*zoom:1;}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;content:"";} +.form-horizontal .control-group:after{clear:both;} +.form-horizontal .control-label{float:left;width:140px;padding-top:5px;text-align:right;} +.form-horizontal .controls{margin-left:160px;*display:inline-block;*margin-left:0;*padding-left:20px;} +.form-horizontal .help-block{margin-top:9px;margin-bottom:0;} +.form-horizontal .form-actions{padding-left:160px;} +.btn{display:inline-block;*display:inline;*zoom:1;padding:4px 10px 4px;margin-bottom:0;font-size:13px;line-height:18px;color:#333333;text-align:center;text-shadow:0 1px 1px rgba(255, 255, 255, 0.75);vertical-align:middle;background-color:#f5f5f5;background-image:-moz-linear-gradient(top, #ffffff, #e6e6e6);background-image:-ms-linear-gradient(top, #ffffff, #e6e6e6);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));background-image:-webkit-linear-gradient(top, #ffffff, #e6e6e6);background-image:-o-linear-gradient(top, #ffffff, #e6e6e6);background-image:linear-gradient(top, #ffffff, #e6e6e6);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:dximagetransform.microsoft.gradient(enabled=false);border:1px solid #cccccc;border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);cursor:pointer;*margin-left:.3em;}.btn:hover,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{background-color:#e6e6e6;} +.btn:active,.btn.active{background-color:#cccccc \9;} +.btn:first-child{*margin-left:0;} +.btn:hover{color:#333333;text-decoration:none;background-color:#e6e6e6;background-position:0 -15px;-webkit-transition:background-position 0.1s linear;-moz-transition:background-position 0.1s linear;-ms-transition:background-position 0.1s linear;-o-transition:background-position 0.1s linear;transition:background-position 0.1s linear;} +.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;} +.btn.active,.btn:active{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);background-color:#e6e6e6;background-color:#d9d9d9 \9;outline:0;} +.btn.disabled,.btn[disabled]{cursor:default;background-image:none;background-color:#e6e6e6;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;} +.btn-large{padding:9px 14px;font-size:15px;line-height:normal;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;} +.btn-large [class^="icon-"]{margin-top:1px;} +.btn-small{padding:5px 9px;font-size:11px;line-height:16px;} +.btn-small [class^="icon-"]{margin-top:-1px;} +.btn-mini{padding:2px 6px;font-size:11px;line-height:14px;} +.btn-primary,.btn-primary:hover,.btn-warning,.btn-warning:hover,.btn-danger,.btn-danger:hover,.btn-success,.btn-success:hover,.btn-info,.btn-info:hover,.btn-inverse,.btn-inverse:hover{text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);color:#ffffff;} +.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255, 255, 255, 0.75);} +.btn-primary{background-color:#0074cc;background-image:-moz-linear-gradient(top, #0088cc, #0055cc);background-image:-ms-linear-gradient(top, #0088cc, #0055cc);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0055cc));background-image:-webkit-linear-gradient(top, #0088cc, #0055cc);background-image:-o-linear-gradient(top, #0088cc, #0055cc);background-image:linear-gradient(top, #0088cc, #0055cc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0055cc', GradientType=0);border-color:#0055cc #0055cc #003580;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:dximagetransform.microsoft.gradient(enabled=false);}.btn-primary:hover,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{background-color:#0055cc;} +.btn-primary:active,.btn-primary.active{background-color:#004099 \9;} +.btn-warning{background-color:#faa732;background-image:-moz-linear-gradient(top, #fbb450, #f89406);background-image:-ms-linear-gradient(top, #fbb450, #f89406);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));background-image:-webkit-linear-gradient(top, #fbb450, #f89406);background-image:-o-linear-gradient(top, #fbb450, #f89406);background-image:linear-gradient(top, #fbb450, #f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0);border-color:#f89406 #f89406 #ad6704;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:dximagetransform.microsoft.gradient(enabled=false);}.btn-warning:hover,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{background-color:#f89406;} +.btn-warning:active,.btn-warning.active{background-color:#c67605 \9;} +.btn-danger{background-color:#da4f49;background-image:-moz-linear-gradient(top, #ee5f5b, #bd362f);background-image:-ms-linear-gradient(top, #ee5f5b, #bd362f);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f));background-image:-webkit-linear-gradient(top, #ee5f5b, #bd362f);background-image:-o-linear-gradient(top, #ee5f5b, #bd362f);background-image:linear-gradient(top, #ee5f5b, #bd362f);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#bd362f', GradientType=0);border-color:#bd362f #bd362f #802420;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:dximagetransform.microsoft.gradient(enabled=false);}.btn-danger:hover,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{background-color:#bd362f;} +.btn-danger:active,.btn-danger.active{background-color:#942a25 \9;} +.btn-success{background-color:#5bb75b;background-image:-moz-linear-gradient(top, #62c462, #51a351);background-image:-ms-linear-gradient(top, #62c462, #51a351);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351));background-image:-webkit-linear-gradient(top, #62c462, #51a351);background-image:-o-linear-gradient(top, #62c462, #51a351);background-image:linear-gradient(top, #62c462, #51a351);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#51a351', GradientType=0);border-color:#51a351 #51a351 #387038;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:dximagetransform.microsoft.gradient(enabled=false);}.btn-success:hover,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{background-color:#51a351;} +.btn-success:active,.btn-success.active{background-color:#408140 \9;} +.btn-info{background-color:#49afcd;background-image:-moz-linear-gradient(top, #5bc0de, #2f96b4);background-image:-ms-linear-gradient(top, #5bc0de, #2f96b4);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4));background-image:-webkit-linear-gradient(top, #5bc0de, #2f96b4);background-image:-o-linear-gradient(top, #5bc0de, #2f96b4);background-image:linear-gradient(top, #5bc0de, #2f96b4);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#2f96b4', GradientType=0);border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:dximagetransform.microsoft.gradient(enabled=false);}.btn-info:hover,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{background-color:#2f96b4;} +.btn-info:active,.btn-info.active{background-color:#24748c \9;} +.btn-inverse{background-color:#414141;background-image:-moz-linear-gradient(top, #555555, #222222);background-image:-ms-linear-gradient(top, #555555, #222222);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#555555), to(#222222));background-image:-webkit-linear-gradient(top, #555555, #222222);background-image:-o-linear-gradient(top, #555555, #222222);background-image:linear-gradient(top, #555555, #222222);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#555555', endColorstr='#222222', GradientType=0);border-color:#222222 #222222 #000000;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:dximagetransform.microsoft.gradient(enabled=false);}.btn-inverse:hover,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{background-color:#222222;} +.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9;} +button.btn,input[type="submit"].btn{*padding-top:2px;*padding-bottom:2px;}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0;} +button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px;} +button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px;} +button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px;} +[class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;line-height:14px;vertical-align:text-top;background-image:url("../img/glyphicons-halflings.png");background-position:14px 14px;background-repeat:no-repeat;*margin-right:.3em;}[class^="icon-"]:last-child,[class*=" icon-"]:last-child{*margin-left:0;} +.icon-white{background-image:url("../img/glyphicons-halflings-white.png");} +.icon-glass{background-position:0 0;} +.icon-music{background-position:-24px 0;} +.icon-search{background-position:-48px 0;} +.icon-envelope{background-position:-72px 0;} +.icon-heart{background-position:-96px 0;} +.icon-star{background-position:-120px 0;} +.icon-star-empty{background-position:-144px 0;} +.icon-user{background-position:-168px 0;} +.icon-film{background-position:-192px 0;} +.icon-th-large{background-position:-216px 0;} +.icon-th{background-position:-240px 0;} +.icon-th-list{background-position:-264px 0;} +.icon-ok{background-position:-288px 0;} +.icon-remove{background-position:-312px 0;} +.icon-zoom-in{background-position:-336px 0;} +.icon-zoom-out{background-position:-360px 0;} +.icon-off{background-position:-384px 0;} +.icon-signal{background-position:-408px 0;} +.icon-cog{background-position:-432px 0;} +.icon-trash{background-position:-456px 0;} +.icon-home{background-position:0 -24px;} +.icon-file{background-position:-24px -24px;} +.icon-time{background-position:-48px -24px;} +.icon-road{background-position:-72px -24px;} +.icon-download-alt{background-position:-96px -24px;} +.icon-download{background-position:-120px -24px;} +.icon-upload{background-position:-144px -24px;} +.icon-inbox{background-position:-168px -24px;} +.icon-play-circle{background-position:-192px -24px;} +.icon-repeat{background-position:-216px -24px;} +.icon-refresh{background-position:-240px -24px;} +.icon-list-alt{background-position:-264px -24px;} +.icon-lock{background-position:-287px -24px;} +.icon-flag{background-position:-312px -24px;} +.icon-headphones{background-position:-336px -24px;} +.icon-volume-off{background-position:-360px -24px;} +.icon-volume-down{background-position:-384px -24px;} +.icon-volume-up{background-position:-408px -24px;} +.icon-qrcode{background-position:-432px -24px;} +.icon-barcode{background-position:-456px -24px;} +.icon-tag{background-position:0 -48px;} +.icon-tags{background-position:-25px -48px;} +.icon-book{background-position:-48px -48px;} +.icon-bookmark{background-position:-72px -48px;} +.icon-print{background-position:-96px -48px;} +.icon-camera{background-position:-120px -48px;} +.icon-font{background-position:-144px -48px;} +.icon-bold{background-position:-167px -48px;} +.icon-italic{background-position:-192px -48px;} +.icon-text-height{background-position:-216px -48px;} +.icon-text-width{background-position:-240px -48px;} +.icon-align-left{background-position:-264px -48px;} +.icon-align-center{background-position:-288px -48px;} +.icon-align-right{background-position:-312px -48px;} +.icon-align-justify{background-position:-336px -48px;} +.icon-list{background-position:-360px -48px;} +.icon-indent-left{background-position:-384px -48px;} +.icon-indent-right{background-position:-408px -48px;} +.icon-facetime-video{background-position:-432px -48px;} +.icon-picture{background-position:-456px -48px;} +.icon-pencil{background-position:0 -72px;} +.icon-map-marker{background-position:-24px -72px;} +.icon-adjust{background-position:-48px -72px;} +.icon-tint{background-position:-72px -72px;} +.icon-edit{background-position:-96px -72px;} +.icon-share{background-position:-120px -72px;} +.icon-check{background-position:-144px -72px;} +.icon-move{background-position:-168px -72px;} +.icon-step-backward{background-position:-192px -72px;} +.icon-fast-backward{background-position:-216px -72px;} +.icon-backward{background-position:-240px -72px;} +.icon-play{background-position:-264px -72px;} +.icon-pause{background-position:-288px -72px;} +.icon-stop{background-position:-312px -72px;} +.icon-forward{background-position:-336px -72px;} +.icon-fast-forward{background-position:-360px -72px;} +.icon-step-forward{background-position:-384px -72px;} +.icon-eject{background-position:-408px -72px;} +.icon-chevron-left{background-position:-432px -72px;} +.icon-chevron-right{background-position:-456px -72px;} +.icon-plus-sign{background-position:0 -96px;} +.icon-minus-sign{background-position:-24px -96px;} +.icon-remove-sign{background-position:-48px -96px;} +.icon-ok-sign{background-position:-72px -96px;} +.icon-question-sign{background-position:-96px -96px;} +.icon-info-sign{background-position:-120px -96px;} +.icon-screenshot{background-position:-144px -96px;} +.icon-remove-circle{background-position:-168px -96px;} +.icon-ok-circle{background-position:-192px -96px;} +.icon-ban-circle{background-position:-216px -96px;} +.icon-arrow-left{background-position:-240px -96px;} +.icon-arrow-right{background-position:-264px -96px;} +.icon-arrow-up{background-position:-289px -96px;} +.icon-arrow-down{background-position:-312px -96px;} +.icon-share-alt{background-position:-336px -96px;} +.icon-resize-full{background-position:-360px -96px;} +.icon-resize-small{background-position:-384px -96px;} +.icon-plus{background-position:-408px -96px;} +.icon-minus{background-position:-433px -96px;} +.icon-asterisk{background-position:-456px -96px;} +.icon-exclamation-sign{background-position:0 -120px;} +.icon-gift{background-position:-24px -120px;} +.icon-leaf{background-position:-48px -120px;} +.icon-fire{background-position:-72px -120px;} +.icon-eye-open{background-position:-96px -120px;} +.icon-eye-close{background-position:-120px -120px;} +.icon-warning-sign{background-position:-144px -120px;} +.icon-plane{background-position:-168px -120px;} +.icon-calendar{background-position:-192px -120px;} +.icon-random{background-position:-216px -120px;} +.icon-comment{background-position:-240px -120px;} +.icon-magnet{background-position:-264px -120px;} +.icon-chevron-up{background-position:-288px -120px;} +.icon-chevron-down{background-position:-313px -119px;} +.icon-retweet{background-position:-336px -120px;} +.icon-shopping-cart{background-position:-360px -120px;} +.icon-folder-close{background-position:-384px -120px;} +.icon-folder-open{background-position:-408px -120px;} +.icon-resize-vertical{background-position:-432px -119px;} +.icon-resize-horizontal{background-position:-456px -118px;} +.btn-group{position:relative;*zoom:1;*margin-left:.3em;}.btn-group:before,.btn-group:after{display:table;content:"";} +.btn-group:after{clear:both;} +.btn-group:first-child{*margin-left:0;} +.btn-group+.btn-group{margin-left:5px;} +.btn-toolbar{margin-top:9px;margin-bottom:9px;}.btn-toolbar .btn-group{display:inline-block;*display:inline;*zoom:1;} +.btn-group .btn{position:relative;float:left;margin-left:-1px;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;} +.btn-group .btn:first-child{margin-left:0;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px;} +.btn-group .btn:last-child,.btn-group .dropdown-toggle{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px;} +.btn-group .btn.large:first-child{margin-left:0;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px;} +.btn-group .btn.large:last-child,.btn-group .large.dropdown-toggle{-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;} +.btn-group .btn:hover,.btn-group .btn:focus,.btn-group .btn:active,.btn-group .btn.active{z-index:2;} +.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0;} +.btn-group .dropdown-toggle{padding-left:8px;padding-right:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255, 255, 255, 0.125),inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 1px 0 0 rgba(255, 255, 255, 0.125),inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 1px 0 0 rgba(255, 255, 255, 0.125),inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);*padding-top:3px;*padding-bottom:3px;} +.btn-group .btn-mini.dropdown-toggle{padding-left:5px;padding-right:5px;*padding-top:1px;*padding-bottom:1px;} +.btn-group .btn-small.dropdown-toggle{*padding-top:4px;*padding-bottom:4px;} +.btn-group .btn-large.dropdown-toggle{padding-left:12px;padding-right:12px;} +.btn-group.open{*z-index:1000;}.btn-group.open .dropdown-menu{display:block;margin-top:1px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;} +.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 1px 6px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 6px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 6px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);} +.btn .caret{margin-top:7px;margin-left:0;} +.btn:hover .caret,.open.btn-group .caret{opacity:1;filter:alpha(opacity=100);} +.btn-mini .caret{margin-top:5px;} +.btn-small .caret{margin-top:6px;} +.btn-large .caret{margin-top:6px;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #000000;} +.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;opacity:0.75;filter:alpha(opacity=75);} +.nav{margin-left:0;margin-bottom:18px;list-style:none;} +.nav>li>a{display:block;} +.nav>li>a:hover{text-decoration:none;background-color:#eeeeee;} +.nav .nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:18px;color:#999999;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);text-transform:uppercase;} +.nav li+.nav-header{margin-top:9px;} +.nav-list{padding-left:15px;padding-right:15px;margin-bottom:0;} +.nav-list>li>a,.nav-list .nav-header{margin-left:-15px;margin-right:-15px;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);} +.nav-list>li>a{padding:3px 15px;} +.nav-list>.active>a,.nav-list>.active>a:hover{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.2);background-color:#0088cc;} +.nav-list [class^="icon-"]{margin-right:2px;} +.nav-list .divider{height:1px;margin:8px 1px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #ffffff;*width:100%;*margin:-5px 0 5px;} +.nav-tabs,.nav-pills{*zoom:1;}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;content:"";} +.nav-tabs:after,.nav-pills:after{clear:both;} +.nav-tabs>li,.nav-pills>li{float:left;} +.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px;} +.nav-tabs{border-bottom:1px solid #ddd;} +.nav-tabs>li{margin-bottom:-1px;} +.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:18px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;}.nav-tabs>li>a:hover{border-color:#eeeeee #eeeeee #dddddd;} +.nav-tabs>.active>a,.nav-tabs>.active>a:hover{color:#555555;background-color:#ffffff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default;} +.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;} +.nav-pills>.active>a,.nav-pills>.active>a:hover{color:#ffffff;background-color:#0088cc;} +.nav-stacked>li{float:none;} +.nav-stacked>li>a{margin-right:0;} +.nav-tabs.nav-stacked{border-bottom:0;} +.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;} +.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;} +.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px;} +.nav-tabs.nav-stacked>li>a:hover{border-color:#ddd;z-index:2;} +.nav-pills.nav-stacked>li>a{margin-bottom:3px;} +.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px;} +.nav-tabs .dropdown-menu,.nav-pills .dropdown-menu{margin-top:1px;border-width:1px;} +.nav-pills .dropdown-menu{-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} +.nav-tabs .dropdown-toggle .caret,.nav-pills .dropdown-toggle .caret{border-top-color:#0088cc;border-bottom-color:#0088cc;margin-top:6px;} +.nav-tabs .dropdown-toggle:hover .caret,.nav-pills .dropdown-toggle:hover .caret{border-top-color:#005580;border-bottom-color:#005580;} +.nav-tabs .active .dropdown-toggle .caret,.nav-pills .active .dropdown-toggle .caret{border-top-color:#333333;border-bottom-color:#333333;} +.nav>.dropdown.active>a:hover{color:#000000;cursor:pointer;} +.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>.open.active>a:hover{color:#ffffff;background-color:#999999;border-color:#999999;} +.nav .open .caret,.nav .open.active .caret,.nav .open a:hover .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;opacity:1;filter:alpha(opacity=100);} +.tabs-stacked .open>a:hover{border-color:#999999;} +.tabbable{*zoom:1;}.tabbable:before,.tabbable:after{display:table;content:"";} +.tabbable:after{clear:both;} +.tab-content{display:table;width:100%;} +.tabs-below .nav-tabs,.tabs-right .nav-tabs,.tabs-left .nav-tabs{border-bottom:0;} +.tab-content>.tab-pane,.pill-content>.pill-pane{display:none;} +.tab-content>.active,.pill-content>.active{display:block;} +.tabs-below .nav-tabs{border-top:1px solid #ddd;} +.tabs-below .nav-tabs>li{margin-top:-1px;margin-bottom:0;} +.tabs-below .nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px;}.tabs-below .nav-tabs>li>a:hover{border-bottom-color:transparent;border-top-color:#ddd;} +.tabs-below .nav-tabs .active>a,.tabs-below .nav-tabs .active>a:hover{border-color:transparent #ddd #ddd #ddd;} +.tabs-left .nav-tabs>li,.tabs-right .nav-tabs>li{float:none;} +.tabs-left .nav-tabs>li>a,.tabs-right .nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px;} +.tabs-left .nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd;} +.tabs-left .nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;} +.tabs-left .nav-tabs>li>a:hover{border-color:#eeeeee #dddddd #eeeeee #eeeeee;} +.tabs-left .nav-tabs .active>a,.tabs-left .nav-tabs .active>a:hover{border-color:#ddd transparent #ddd #ddd;*border-right-color:#ffffff;} +.tabs-right .nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd;} +.tabs-right .nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;} +.tabs-right .nav-tabs>li>a:hover{border-color:#eeeeee #eeeeee #eeeeee #dddddd;} +.tabs-right .nav-tabs .active>a,.tabs-right .nav-tabs .active>a:hover{border-color:#ddd #ddd #ddd transparent;*border-left-color:#ffffff;} +.navbar{*position:relative;*z-index:2;overflow:visible;margin-bottom:18px;} +.navbar-inner{padding-left:20px;padding-right:20px;background-color:#2c2c2c;background-image:-moz-linear-gradient(top, #333333, #222222);background-image:-ms-linear-gradient(top, #333333, #222222);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222));background-image:-webkit-linear-gradient(top, #333333, #222222);background-image:-o-linear-gradient(top, #333333, #222222);background-image:linear-gradient(top, #333333, #222222);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0, 0, 0, 0.25),inset 0 -1px 0 rgba(0, 0, 0, 0.1);-moz-box-shadow:0 1px 3px rgba(0, 0, 0, 0.25),inset 0 -1px 0 rgba(0, 0, 0, 0.1);box-shadow:0 1px 3px rgba(0, 0, 0, 0.25),inset 0 -1px 0 rgba(0, 0, 0, 0.1);} +.navbar .container{width:auto;} +.btn-navbar{display:none;float:right;padding:7px 10px;margin-left:5px;margin-right:5px;background-color:#2c2c2c;background-image:-moz-linear-gradient(top, #333333, #222222);background-image:-ms-linear-gradient(top, #333333, #222222);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222));background-image:-webkit-linear-gradient(top, #333333, #222222);background-image:-o-linear-gradient(top, #333333, #222222);background-image:linear-gradient(top, #333333, #222222);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0);border-color:#222222 #222222 #000000;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:dximagetransform.microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.075);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.075);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.075);}.btn-navbar:hover,.btn-navbar:active,.btn-navbar.active,.btn-navbar.disabled,.btn-navbar[disabled]{background-color:#222222;} +.btn-navbar:active,.btn-navbar.active{background-color:#080808 \9;} +.btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);-moz-box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);} +.btn-navbar .icon-bar+.icon-bar{margin-top:3px;} +.nav-collapse.collapse{height:auto;} +.navbar{color:#999999;}.navbar .brand:hover{text-decoration:none;} +.navbar .brand{float:left;display:block;padding:8px 20px 12px;margin-left:-20px;font-size:20px;font-weight:200;line-height:1;color:#ffffff;} +.navbar .navbar-text{margin-bottom:0;line-height:40px;} +.navbar .btn,.navbar .btn-group{margin-top:5px;} +.navbar .btn-group .btn{margin-top:0;} +.navbar-form{margin-bottom:0;*zoom:1;}.navbar-form:before,.navbar-form:after{display:table;content:"";} +.navbar-form:after{clear:both;} +.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:5px;} +.navbar-form input,.navbar-form select{display:inline-block;margin-bottom:0;} +.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px;} +.navbar-form .input-append,.navbar-form .input-prepend{margin-top:6px;white-space:nowrap;}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0;} +.navbar-search{position:relative;float:left;margin-top:6px;margin-bottom:0;}.navbar-search .search-query{padding:4px 9px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;color:#ffffff;background-color:#626262;border:1px solid #151515;-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1),0 1px 0px rgba(255, 255, 255, 0.15);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1),0 1px 0px rgba(255, 255, 255, 0.15);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1),0 1px 0px rgba(255, 255, 255, 0.15);-webkit-transition:none;-moz-transition:none;-ms-transition:none;-o-transition:none;transition:none;}.navbar-search .search-query:-moz-placeholder{color:#cccccc;} +.navbar-search .search-query::-webkit-input-placeholder{color:#cccccc;} +.navbar-search .search-query:focus,.navbar-search .search-query.focused{padding:5px 10px;color:#333333;text-shadow:0 1px 0 #ffffff;background-color:#ffffff;border:0;-webkit-box-shadow:0 0 3px rgba(0, 0, 0, 0.15);-moz-box-shadow:0 0 3px rgba(0, 0, 0, 0.15);box-shadow:0 0 3px rgba(0, 0, 0, 0.15);outline:0;} +.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0;} +.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-left:0;padding-right:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;} +.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px;} +.navbar-fixed-top{top:0;} +.navbar-fixed-bottom{bottom:0;} +.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0;} +.navbar .nav.pull-right{float:right;} +.navbar .nav>li{display:block;float:left;} +.navbar .nav>li>a{float:none;padding:10px 10px 11px;line-height:19px;color:#999999;text-decoration:none;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);} +.navbar .nav>li>a:hover{background-color:transparent;color:#ffffff;text-decoration:none;} +.navbar .nav .active>a,.navbar .nav .active>a:hover{color:#ffffff;text-decoration:none;background-color:#222222;} +.navbar .divider-vertical{height:40px;width:1px;margin:0 9px;overflow:hidden;background-color:#222222;border-right:1px solid #333333;} +.navbar .nav.pull-right{margin-left:10px;margin-right:0;} +.navbar .dropdown-menu{margin-top:1px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}.navbar .dropdown-menu:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:rgba(0, 0, 0, 0.2);position:absolute;top:-7px;left:9px;} +.navbar .dropdown-menu:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #ffffff;position:absolute;top:-6px;left:10px;} +.navbar-fixed-bottom .dropdown-menu:before{border-top:7px solid #ccc;border-top-color:rgba(0, 0, 0, 0.2);border-bottom:0;bottom:-7px;top:auto;} +.navbar-fixed-bottom .dropdown-menu:after{border-top:6px solid #ffffff;border-bottom:0;bottom:-6px;top:auto;} +.navbar .nav .dropdown-toggle .caret,.navbar .nav .open.dropdown .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;} +.navbar .nav .active .caret{opacity:1;filter:alpha(opacity=100);} +.navbar .nav .open>.dropdown-toggle,.navbar .nav .active>.dropdown-toggle,.navbar .nav .open.active>.dropdown-toggle{background-color:transparent;} +.navbar .nav .active>.dropdown-toggle:hover{color:#ffffff;} +.navbar .nav.pull-right .dropdown-menu,.navbar .nav .dropdown-menu.pull-right{left:auto;right:0;}.navbar .nav.pull-right .dropdown-menu:before,.navbar .nav .dropdown-menu.pull-right:before{left:auto;right:12px;} +.navbar .nav.pull-right .dropdown-menu:after,.navbar .nav .dropdown-menu.pull-right:after{left:auto;right:13px;} +.breadcrumb{padding:7px 14px;margin:0 0 18px;list-style:none;background-color:#fbfbfb;background-image:-moz-linear-gradient(top, #ffffff, #f5f5f5);background-image:-ms-linear-gradient(top, #ffffff, #f5f5f5);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f5f5f5));background-image:-webkit-linear-gradient(top, #ffffff, #f5f5f5);background-image:-o-linear-gradient(top, #ffffff, #f5f5f5);background-image:linear-gradient(top, #ffffff, #f5f5f5);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f5f5f5', GradientType=0);border:1px solid #ddd;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 #ffffff;-moz-box-shadow:inset 0 1px 0 #ffffff;box-shadow:inset 0 1px 0 #ffffff;}.breadcrumb li{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 0 #ffffff;} +.breadcrumb .divider{padding:0 5px;color:#999999;} +.breadcrumb .active a{color:#333333;} +.pagination{height:36px;margin:18px 0;} +.pagination ul{display:inline-block;*display:inline;*zoom:1;margin-left:0;margin-bottom:0;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:0 1px 2px rgba(0, 0, 0, 0.05);} +.pagination li{display:inline;} +.pagination a{float:left;padding:0 14px;line-height:34px;text-decoration:none;border:1px solid #ddd;border-left-width:0;} +.pagination a:hover,.pagination .active a{background-color:#f5f5f5;} +.pagination .active a{color:#999999;cursor:default;} +.pagination .disabled span,.pagination .disabled a,.pagination .disabled a:hover{color:#999999;background-color:transparent;cursor:default;} +.pagination li:first-child a{border-left-width:1px;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;} +.pagination li:last-child a{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0;} +.pagination-centered{text-align:center;} +.pagination-right{text-align:right;} +.pager{margin-left:0;margin-bottom:18px;list-style:none;text-align:center;*zoom:1;}.pager:before,.pager:after{display:table;content:"";} +.pager:after{clear:both;} +.pager li{display:inline;} +.pager a{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px;} +.pager a:hover{text-decoration:none;background-color:#f5f5f5;} +.pager .next a{float:right;} +.pager .previous a{float:left;} +.pager .disabled a,.pager .disabled a:hover{color:#999999;background-color:#fff;cursor:default;} +.thumbnails{margin-left:-20px;list-style:none;*zoom:1;}.thumbnails:before,.thumbnails:after{display:table;content:"";} +.thumbnails:after{clear:both;} +.thumbnails>li{float:left;margin:0 0 18px 20px;} +.thumbnail{display:block;padding:4px;line-height:1;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:0 1px 1px rgba(0, 0, 0, 0.075);} +a.thumbnail:hover{border-color:#0088cc;-webkit-box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);-moz-box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);} +.thumbnail>img{display:block;max-width:100%;margin-left:auto;margin-right:auto;} +.thumbnail .caption{padding:9px;} +.alert{padding:8px 35px 8px 14px;margin-bottom:18px;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;color:#c09853;} +.alert-heading{color:inherit;} +.alert .close{position:relative;top:-2px;right:-21px;line-height:18px;} +.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#468847;} +.alert-danger,.alert-error{background-color:#f2dede;border-color:#eed3d7;color:#b94a48;} +.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#3a87ad;} +.alert-block{padding-top:14px;padding-bottom:14px;} +.alert-block>p,.alert-block>ul{margin-bottom:0;} +.alert-block p+p{margin-top:5px;} +@-webkit-keyframes progress-bar-stripes{from{background-position:0 0;} to{background-position:40px 0;}}@-moz-keyframes progress-bar-stripes{from{background-position:0 0;} to{background-position:40px 0;}}@-ms-keyframes progress-bar-stripes{from{background-position:0 0;} to{background-position:40px 0;}}@keyframes progress-bar-stripes{from{background-position:0 0;} to{background-position:40px 0;}}.progress{overflow:hidden;height:18px;margin-bottom:18px;background-color:#f7f7f7;background-image:-moz-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:-ms-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9));background-image:-webkit-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:-o-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:linear-gradient(top, #f5f5f5, #f9f9f9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f5f5f5', endColorstr='#f9f9f9', GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} +.progress .bar{width:0%;height:18px;color:#ffffff;font-size:12px;text-align:center;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top, #149bdf, #0480be);background-image:-ms-linear-gradient(top, #149bdf, #0480be);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be));background-image:-webkit-linear-gradient(top, #149bdf, #0480be);background-image:-o-linear-gradient(top, #149bdf, #0480be);background-image:linear-gradient(top, #149bdf, #0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#149bdf', endColorstr='#0480be', GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width 0.6s ease;-moz-transition:width 0.6s ease;-ms-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease;} +.progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px;} +.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite;} +.progress-danger .bar{background-color:#dd514c;background-image:-moz-linear-gradient(top, #ee5f5b, #c43c35);background-image:-ms-linear-gradient(top, #ee5f5b, #c43c35);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35));background-image:-webkit-linear-gradient(top, #ee5f5b, #c43c35);background-image:-o-linear-gradient(top, #ee5f5b, #c43c35);background-image:linear-gradient(top, #ee5f5b, #c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0);} +.progress-danger.progress-striped .bar{background-color:#ee5f5b;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);} +.progress-success .bar{background-color:#5eb95e;background-image:-moz-linear-gradient(top, #62c462, #57a957);background-image:-ms-linear-gradient(top, #62c462, #57a957);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957));background-image:-webkit-linear-gradient(top, #62c462, #57a957);background-image:-o-linear-gradient(top, #62c462, #57a957);background-image:linear-gradient(top, #62c462, #57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0);} +.progress-success.progress-striped .bar{background-color:#62c462;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);} +.progress-info .bar{background-color:#4bb1cf;background-image:-moz-linear-gradient(top, #5bc0de, #339bb9);background-image:-ms-linear-gradient(top, #5bc0de, #339bb9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9));background-image:-webkit-linear-gradient(top, #5bc0de, #339bb9);background-image:-o-linear-gradient(top, #5bc0de, #339bb9);background-image:linear-gradient(top, #5bc0de, #339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0);} +.progress-info.progress-striped .bar{background-color:#5bc0de;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);} +.progress-warning .bar{background-color:#faa732;background-image:-moz-linear-gradient(top, #fbb450, #f89406);background-image:-ms-linear-gradient(top, #fbb450, #f89406);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));background-image:-webkit-linear-gradient(top, #fbb450, #f89406);background-image:-o-linear-gradient(top, #fbb450, #f89406);background-image:linear-gradient(top, #fbb450, #f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0);} +.progress-warning.progress-striped .bar{background-color:#fbb450;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);} +.hero-unit{padding:60px;margin-bottom:30px;background-color:#eeeeee;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;color:inherit;letter-spacing:-1px;} +.hero-unit p{font-size:18px;font-weight:200;line-height:27px;color:inherit;} +.tooltip{position:absolute;z-index:1020;display:block;visibility:visible;padding:5px;font-size:11px;opacity:0;filter:alpha(opacity=0);}.tooltip.in{opacity:0.8;filter:alpha(opacity=80);} +.tooltip.top{margin-top:-2px;} +.tooltip.right{margin-left:2px;} +.tooltip.bottom{margin-top:2px;} +.tooltip.left{margin-left:-2px;} +.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #000000;} +.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid #000000;} +.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:5px solid #000000;} +.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-right:5px solid #000000;} +.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;text-decoration:none;background-color:#000000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} +.tooltip-arrow{position:absolute;width:0;height:0;} +.popover{position:absolute;top:0;left:0;z-index:1010;display:none;padding:5px;}.popover.top{margin-top:-5px;} +.popover.right{margin-left:5px;} +.popover.bottom{margin-top:5px;} +.popover.left{margin-left:-5px;} +.popover.top .arrow{bottom:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #000000;} +.popover.right .arrow{top:50%;left:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-right:5px solid #000000;} +.popover.bottom .arrow{top:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:5px solid #000000;} +.popover.left .arrow{top:50%;right:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid #000000;} +.popover .arrow{position:absolute;width:0;height:0;} +.popover-inner{padding:3px;width:280px;overflow:hidden;background:#000000;background:rgba(0, 0, 0, 0.8);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);} +.popover-title{padding:9px 15px;line-height:1;background-color:#f5f5f5;border-bottom:1px solid #eee;-webkit-border-radius:3px 3px 0 0;-moz-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;} +.popover-content{padding:14px;background-color:#ffffff;-webkit-border-radius:0 0 3px 3px;-moz-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;}.popover-content p,.popover-content ul,.popover-content ol{margin-bottom:0;} +.modal-open .dropdown-menu{z-index:2050;} +.modal-open .dropdown.open{*z-index:2050;} +.modal-open .popover{z-index:2060;} +.modal-open .tooltip{z-index:2070;} +.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000000;}.modal-backdrop.fade{opacity:0;} +.modal-backdrop,.modal-backdrop.fade.in{opacity:0.8;filter:alpha(opacity=80);} +.modal{position:fixed;top:50%;left:50%;z-index:1050;overflow:auto;width:560px;margin:-250px 0 0 -280px;background-color:#ffffff;border:1px solid #999;border:1px solid rgba(0, 0, 0, 0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;}.modal.fade{-webkit-transition:opacity .3s linear, top .3s ease-out;-moz-transition:opacity .3s linear, top .3s ease-out;-ms-transition:opacity .3s linear, top .3s ease-out;-o-transition:opacity .3s linear, top .3s ease-out;transition:opacity .3s linear, top .3s ease-out;top:-25%;} +.modal.fade.in{top:50%;} +.modal-header{padding:9px 15px;border-bottom:1px solid #eee;}.modal-header .close{margin-top:2px;} +.modal-body{overflow-y:auto;max-height:400px;padding:15px;} +.modal-form{margin-bottom:0;} +.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;-webkit-box-shadow:inset 0 1px 0 #ffffff;-moz-box-shadow:inset 0 1px 0 #ffffff;box-shadow:inset 0 1px 0 #ffffff;*zoom:1;}.modal-footer:before,.modal-footer:after{display:table;content:"";} +.modal-footer:after{clear:both;} +.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0;} +.modal-footer .btn-group .btn+.btn{margin-left:-1px;} +.dropdown{position:relative;} +.dropdown-toggle{*margin-bottom:-3px;} +.dropdown-toggle:active,.open .dropdown-toggle{outline:0;} +.caret{display:inline-block;width:0;height:0;vertical-align:top;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid #000000;opacity:0.3;filter:alpha(opacity=30);content:"";} +.dropdown .caret{margin-top:8px;margin-left:2px;} +.dropdown:hover .caret,.open.dropdown .caret{opacity:1;filter:alpha(opacity=100);} +.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;float:left;display:none;min-width:160px;padding:4px 0;margin:0;list-style:none;background-color:#ffffff;border-color:#ccc;border-color:rgba(0, 0, 0, 0.2);border-style:solid;border-width:1px;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;*border-right-width:2px;*border-bottom-width:2px;}.dropdown-menu.pull-right{right:0;left:auto;} +.dropdown-menu .divider{height:1px;margin:8px 1px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #ffffff;*width:100%;*margin:-5px 0 5px;} +.dropdown-menu a{display:block;padding:3px 15px;clear:both;font-weight:normal;line-height:18px;color:#333333;white-space:nowrap;} +.dropdown-menu li>a:hover,.dropdown-menu .active>a,.dropdown-menu .active>a:hover{color:#ffffff;text-decoration:none;background-color:#0088cc;} +.dropdown.open{*z-index:1000;}.dropdown.open .dropdown-toggle{color:#ffffff;background:#ccc;background:rgba(0, 0, 0, 0.3);} +.dropdown.open .dropdown-menu{display:block;} +.pull-right .dropdown-menu{left:auto;right:0;} +.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000000;content:"\2191";} +.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px;} +.typeahead{margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} +.accordion{margin-bottom:18px;} +.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} +.accordion-heading{border-bottom:0;} +.accordion-heading .accordion-toggle{display:block;padding:8px 15px;} +.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5;} +.carousel{position:relative;margin-bottom:18px;line-height:1;} +.carousel-inner{overflow:hidden;width:100%;position:relative;} +.carousel .item{display:none;position:relative;-webkit-transition:0.6s ease-in-out left;-moz-transition:0.6s ease-in-out left;-ms-transition:0.6s ease-in-out left;-o-transition:0.6s ease-in-out left;transition:0.6s ease-in-out left;} +.carousel .item>img{display:block;line-height:1;} +.carousel .active,.carousel .next,.carousel .prev{display:block;} +.carousel .active{left:0;} +.carousel .next,.carousel .prev{position:absolute;top:0;width:100%;} +.carousel .next{left:100%;} +.carousel .prev{left:-100%;} +.carousel .next.left,.carousel .prev.right{left:0;} +.carousel .active.left{left:-100%;} +.carousel .active.right{left:100%;} +.carousel-control{position:absolute;top:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#ffffff;text-align:center;background:#222222;border:3px solid #ffffff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:0.5;filter:alpha(opacity=50);}.carousel-control.right{left:auto;right:15px;} +.carousel-control:hover{color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90);} +.carousel-caption{position:absolute;left:0;right:0;bottom:0;padding:10px 15px 5px;background:#333333;background:rgba(0, 0, 0, 0.75);} +.carousel-caption h4,.carousel-caption p{color:#ffffff;} +.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #eee;border:1px solid rgba(0, 0, 0, 0.05);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);}.well blockquote{border-color:#ddd;border-color:rgba(0, 0, 0, 0.15);} +.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;} +.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} +.close{float:right;font-size:20px;font-weight:bold;line-height:18px;color:#000000;text-shadow:0 1px 0 #ffffff;opacity:0.2;filter:alpha(opacity=20);}.close:hover{color:#000000;text-decoration:none;opacity:0.4;filter:alpha(opacity=40);cursor:pointer;} +.pull-right{float:right;} +.pull-left{float:left;} +.hide{display:none;} +.show{display:block;} +.invisible{visibility:hidden;} +.fade{-webkit-transition:opacity 0.15s linear;-moz-transition:opacity 0.15s linear;-ms-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear;opacity:0;}.fade.in{opacity:1;} +.collapse{-webkit-transition:height 0.35s ease;-moz-transition:height 0.35s ease;-ms-transition:height 0.35s ease;-o-transition:height 0.35s ease;transition:height 0.35s ease;position:relative;overflow:hidden;height:0;}.collapse.in{height:auto;} +.hidden{display:none;visibility:hidden;} +.visible-phone{display:none;} +.visible-tablet{display:none;} +.visible-desktop{display:block;} +.hidden-phone{display:block;} +.hidden-tablet{display:block;} +.hidden-desktop{display:none;} +@media (max-width:767px){.visible-phone{display:block;} .hidden-phone{display:none;} .hidden-desktop{display:block;} .visible-desktop{display:none;}}@media (min-width:768px) and (max-width:979px){.visible-tablet{display:block;} .hidden-tablet{display:none;} .hidden-desktop{display:block;} .visible-desktop{display:none;}}@media (max-width:480px){.nav-collapse{-webkit-transform:translate3d(0, 0, 0);} .page-header h1 small{display:block;line-height:18px;} input[type="checkbox"],input[type="radio"]{border:1px solid #ccc;} .form-horizontal .control-group>label{float:none;width:auto;padding-top:0;text-align:left;} .form-horizontal .controls{margin-left:0;} .form-horizontal .control-list{padding-top:0;} .form-horizontal .form-actions{padding-left:10px;padding-right:10px;} .modal{position:absolute;top:10px;left:10px;right:10px;width:auto;margin:0;}.modal.fade.in{top:auto;} .modal-header .close{padding:10px;margin:-10px;} .carousel-caption{position:static;}}@media (max-width:767px){body{padding-left:20px;padding-right:20px;} .navbar-fixed-top{margin-left:-20px;margin-right:-20px;} .container{width:auto;} .row-fluid{width:100%;} .row{margin-left:0;} .row>[class*="span"],.row-fluid>[class*="span"]{float:none;display:block;width:auto;margin:0;} .thumbnails [class*="span"]{width:auto;} input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:28px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;} .input-prepend input[class*="span"],.input-append input[class*="span"]{width:auto;}}@media (min-width:768px) and (max-width:979px){.row{margin-left:-20px;*zoom:1;}.row:before,.row:after{display:table;content:"";} .row:after{clear:both;} [class*="span"]{float:left;margin-left:20px;} .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px;} .span12{width:724px;} .span11{width:662px;} .span10{width:600px;} .span9{width:538px;} .span8{width:476px;} .span7{width:414px;} .span6{width:352px;} .span5{width:290px;} .span4{width:228px;} .span3{width:166px;} .span2{width:104px;} .span1{width:42px;} .offset12{margin-left:764px;} .offset11{margin-left:702px;} .offset10{margin-left:640px;} .offset9{margin-left:578px;} .offset8{margin-left:516px;} .offset7{margin-left:454px;} .offset6{margin-left:392px;} .offset5{margin-left:330px;} .offset4{margin-left:268px;} .offset3{margin-left:206px;} .offset2{margin-left:144px;} .offset1{margin-left:82px;} .row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";} .row-fluid:after{clear:both;} .row-fluid>[class*="span"]{float:left;margin-left:2.762430939%;} .row-fluid>[class*="span"]:first-child{margin-left:0;} .row-fluid > .span12{width:99.999999993%;} .row-fluid > .span11{width:91.436464082%;} .row-fluid > .span10{width:82.87292817100001%;} .row-fluid > .span9{width:74.30939226%;} .row-fluid > .span8{width:65.74585634900001%;} .row-fluid > .span7{width:57.182320438000005%;} .row-fluid > .span6{width:48.618784527%;} .row-fluid > .span5{width:40.055248616%;} .row-fluid > .span4{width:31.491712705%;} .row-fluid > .span3{width:22.928176794%;} .row-fluid > .span2{width:14.364640883%;} .row-fluid > .span1{width:5.801104972%;} input,textarea,.uneditable-input{margin-left:0;} input.span12, textarea.span12, .uneditable-input.span12{width:714px;} input.span11, textarea.span11, .uneditable-input.span11{width:652px;} input.span10, textarea.span10, .uneditable-input.span10{width:590px;} input.span9, textarea.span9, .uneditable-input.span9{width:528px;} input.span8, textarea.span8, .uneditable-input.span8{width:466px;} input.span7, textarea.span7, .uneditable-input.span7{width:404px;} input.span6, textarea.span6, .uneditable-input.span6{width:342px;} input.span5, textarea.span5, .uneditable-input.span5{width:280px;} input.span4, textarea.span4, .uneditable-input.span4{width:218px;} input.span3, textarea.span3, .uneditable-input.span3{width:156px;} input.span2, textarea.span2, .uneditable-input.span2{width:94px;} input.span1, textarea.span1, .uneditable-input.span1{width:32px;}}@media (max-width:979px){body{padding-top:0;} .navbar-fixed-top{position:static;margin-bottom:18px;} .navbar-fixed-top .navbar-inner{padding:5px;} .navbar .container{width:auto;padding:0;} .navbar .brand{padding-left:10px;padding-right:10px;margin:0 0 0 -5px;} .navbar .nav-collapse{clear:left;} .navbar .nav{float:none;margin:0 0 9px;} .navbar .nav>li{float:none;} .navbar .nav>li>a{margin-bottom:2px;} .navbar .nav>.divider-vertical{display:none;} .navbar .nav .nav-header{color:#999999;text-shadow:none;} .navbar .nav>li>a,.navbar .dropdown-menu a{padding:6px 15px;font-weight:bold;color:#999999;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} .navbar .dropdown-menu li+li a{margin-bottom:2px;} .navbar .nav>li>a:hover,.navbar .dropdown-menu a:hover{background-color:#222222;} .navbar .dropdown-menu{position:static;top:auto;left:auto;float:none;display:block;max-width:none;margin:0 15px;padding:0;background-color:transparent;border:none;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;} .navbar .dropdown-menu:before,.navbar .dropdown-menu:after{display:none;} .navbar .dropdown-menu .divider{display:none;} .navbar-form,.navbar-search{float:none;padding:9px 15px;margin:9px 0;border-top:1px solid #222222;border-bottom:1px solid #222222;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.1);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.1);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.1);} .navbar .nav.pull-right{float:none;margin-left:0;} .navbar-static .navbar-inner{padding-left:10px;padding-right:10px;} .btn-navbar{display:block;} .nav-collapse{overflow:hidden;height:0;}}@media (min-width:980px){.nav-collapse.collapse{height:auto !important;overflow:visible !important;}}@media (min-width:1200px){.row{margin-left:-30px;*zoom:1;}.row:before,.row:after{display:table;content:"";} .row:after{clear:both;} [class*="span"]{float:left;margin-left:30px;} .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px;} .span12{width:1170px;} .span11{width:1070px;} .span10{width:970px;} .span9{width:870px;} .span8{width:770px;} .span7{width:670px;} .span6{width:570px;} .span5{width:470px;} .span4{width:370px;} .span3{width:270px;} .span2{width:170px;} .span1{width:70px;} .offset12{margin-left:1230px;} .offset11{margin-left:1130px;} .offset10{margin-left:1030px;} .offset9{margin-left:930px;} .offset8{margin-left:830px;} .offset7{margin-left:730px;} .offset6{margin-left:630px;} .offset5{margin-left:530px;} .offset4{margin-left:430px;} .offset3{margin-left:330px;} .offset2{margin-left:230px;} .offset1{margin-left:130px;} .row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";} .row-fluid:after{clear:both;} .row-fluid>[class*="span"]{float:left;margin-left:2.564102564%;} .row-fluid>[class*="span"]:first-child{margin-left:0;} .row-fluid > .span12{width:100%;} .row-fluid > .span11{width:91.45299145300001%;} .row-fluid > .span10{width:82.905982906%;} .row-fluid > .span9{width:74.358974359%;} .row-fluid > .span8{width:65.81196581200001%;} .row-fluid > .span7{width:57.264957265%;} .row-fluid > .span6{width:48.717948718%;} .row-fluid > .span5{width:40.170940171000005%;} .row-fluid > .span4{width:31.623931624%;} .row-fluid > .span3{width:23.076923077%;} .row-fluid > .span2{width:14.529914530000001%;} .row-fluid > .span1{width:5.982905983%;} input,textarea,.uneditable-input{margin-left:0;} input.span12, textarea.span12, .uneditable-input.span12{width:1160px;} input.span11, textarea.span11, .uneditable-input.span11{width:1060px;} input.span10, textarea.span10, .uneditable-input.span10{width:960px;} input.span9, textarea.span9, .uneditable-input.span9{width:860px;} input.span8, textarea.span8, .uneditable-input.span8{width:760px;} input.span7, textarea.span7, .uneditable-input.span7{width:660px;} input.span6, textarea.span6, .uneditable-input.span6{width:560px;} input.span5, textarea.span5, .uneditable-input.span5{width:460px;} input.span4, textarea.span4, .uneditable-input.span4{width:360px;} input.span3, textarea.span3, .uneditable-input.span3{width:260px;} input.span2, textarea.span2, .uneditable-input.span2{width:160px;} input.span1, textarea.span1, .uneditable-input.span1{width:60px;} .thumbnails{margin-left:-30px;} .thumbnails>li{margin-left:30px;}} diff --git a/askbot/media/bootstrap/img/glyphicons-halflings-white.png b/askbot/media/bootstrap/img/glyphicons-halflings-white.png new file mode 100644 index 00000000..a20760bf Binary files /dev/null and b/askbot/media/bootstrap/img/glyphicons-halflings-white.png differ diff --git a/askbot/media/bootstrap/img/glyphicons-halflings.png b/askbot/media/bootstrap/img/glyphicons-halflings.png new file mode 100644 index 00000000..92d4445d Binary files /dev/null and b/askbot/media/bootstrap/img/glyphicons-halflings.png differ diff --git a/askbot/media/bootstrap/js/bootstrap.js b/askbot/media/bootstrap/js/bootstrap.js new file mode 100644 index 00000000..d2d9200d --- /dev/null +++ b/askbot/media/bootstrap/js/bootstrap.js @@ -0,0 +1,1737 @@ +/* =================================================== + * bootstrap-transition.js v2.0.2 + * http://twitter.github.com/bootstrap/javascript.html#transitions + * =================================================== + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================== */ + +!function( $ ) { + + $(function () { + + "use strict" + + /* CSS TRANSITION SUPPORT (https://gist.github.com/373874) + * ======================================================= */ + + $.support.transition = (function () { + var thisBody = document.body || document.documentElement + , thisStyle = thisBody.style + , support = thisStyle.transition !== undefined || thisStyle.WebkitTransition !== undefined || thisStyle.MozTransition !== undefined || thisStyle.MsTransition !== undefined || thisStyle.OTransition !== undefined + + return support && { + end: (function () { + var transitionEnd = "TransitionEnd" + if ( $.browser.webkit ) { + transitionEnd = "webkitTransitionEnd" + } else if ( $.browser.mozilla ) { + transitionEnd = "transitionend" + } else if ( $.browser.opera ) { + transitionEnd = "oTransitionEnd" + } + return transitionEnd + }()) + } + })() + + }) + +}( window.jQuery ); +/* ========================================================= + * bootstrap-modal.js v2.0.2 + * http://twitter.github.com/bootstrap/javascript.html#modals + * ========================================================= + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================= */ + + +!function( $ ){ + + "use strict" + + /* MODAL CLASS DEFINITION + * ====================== */ + + var Modal = function ( content, options ) { + this.options = options + this.$element = $(content) + .delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this)) + } + + Modal.prototype = { + + constructor: Modal + + , toggle: function () { + return this[!this.isShown ? 'show' : 'hide']() + } + + , show: function () { + var that = this + + if (this.isShown) return + + $('body').addClass('modal-open') + + this.isShown = true + this.$element.trigger('show') + + escape.call(this) + backdrop.call(this, function () { + var transition = $.support.transition && that.$element.hasClass('fade') + + !that.$element.parent().length && that.$element.appendTo(document.body) //don't move modals dom position + + that.$element + .show() + + if (transition) { + that.$element[0].offsetWidth // force reflow + } + + that.$element.addClass('in') + + transition ? + that.$element.one($.support.transition.end, function () { that.$element.trigger('shown') }) : + that.$element.trigger('shown') + + }) + } + + , hide: function ( e ) { + e && e.preventDefault() + + if (!this.isShown) return + + var that = this + this.isShown = false + + $('body').removeClass('modal-open') + + escape.call(this) + + this.$element + .trigger('hide') + .removeClass('in') + + $.support.transition && this.$element.hasClass('fade') ? + hideWithTransition.call(this) : + hideModal.call(this) + } + + } + + + /* MODAL PRIVATE METHODS + * ===================== */ + + function hideWithTransition() { + var that = this + , timeout = setTimeout(function () { + that.$element.off($.support.transition.end) + hideModal.call(that) + }, 500) + + this.$element.one($.support.transition.end, function () { + clearTimeout(timeout) + hideModal.call(that) + }) + } + + function hideModal( that ) { + this.$element + .hide() + .trigger('hidden') + + backdrop.call(this) + } + + function backdrop( callback ) { + var that = this + , animate = this.$element.hasClass('fade') ? 'fade' : '' + + if (this.isShown && this.options.backdrop) { + var doAnimate = $.support.transition && animate + + this.$backdrop = $('