From c9d4166395913e827464b685d3d574af0e03bf57 Mon Sep 17 00:00:00 2001 From: Ivan Ilin Date: Mon, 12 Dec 2011 10:40:00 +0200 Subject: [PATCH 01/20] first zvalue reimplementation --- src/adaptors/UBSvgSubsetAdaptor.cpp | 35 ++++++++----- src/board/UBBoardController.cpp | 3 +- src/core/UB.h | 1 + src/domain/UBGraphicsAudioItem.cpp | 3 +- src/domain/UBGraphicsItemDelegate.cpp | 6 ++- .../UBGraphicsItemTransformUndoCommand.cpp | 7 ++- src/domain/UBGraphicsPDFItem.cpp | 6 ++- src/domain/UBGraphicsPixmapItem.cpp | 3 +- src/domain/UBGraphicsPolygonItem.cpp | 4 +- src/domain/UBGraphicsScene.cpp | 52 +++++++++++++------ src/domain/UBGraphicsSvgItem.cpp | 6 ++- src/domain/UBGraphicsTextItem.cpp | 3 +- src/domain/UBGraphicsVideoItem.cpp | 3 +- src/domain/UBGraphicsVideoItemDelegate.cpp | 3 +- src/domain/UBGraphicsWidgetItem.cpp | 3 +- src/domain/UBItem.cpp | 6 +++ src/domain/UBItem.h | 1 + src/gui/UBLibraryWidget.cpp | 2 +- src/gui/UBThumbnailWidget.h | 4 +- src/pdf-merger/Object.h | 2 +- src/tools/UBGraphicsCache.cpp | 9 ++-- src/tools/UBGraphicsCompass.cpp | 3 +- src/tools/UBGraphicsCurtainItem.cpp | 7 +-- src/tools/UBGraphicsCurtainItemDelegate.cpp | 14 ++--- src/tools/UBGraphicsProtractor.cpp | 3 +- src/tools/UBGraphicsRuler.cpp | 3 +- src/tools/UBGraphicsTriangle.cpp | 3 +- 27 files changed, 131 insertions(+), 64 deletions(-) diff --git a/src/adaptors/UBSvgSubsetAdaptor.cpp b/src/adaptors/UBSvgSubsetAdaptor.cpp index cdaea1e2..660a2f5a 100644 --- a/src/adaptors/UBSvgSubsetAdaptor.cpp +++ b/src/adaptors/UBSvgSubsetAdaptor.cpp @@ -29,6 +29,7 @@ #include "domain/UBGraphicsTextItem.h" #include "domain/UBAbstractWidget.h" #include "domain/UBGraphicsStroke.h" +#include "domain/UBItem.h" #include "tools/UBGraphicsRuler.h" #include "tools/UBGraphicsCompass.h" @@ -1337,11 +1338,13 @@ UBGraphicsPolygonItem* UBSvgSubsetAdaptor::UBSvgSubsetReader::polygonItemFromPol if (!ubZValue.isNull()) { - polygonItem->setZValue(ubZValue.toString().toFloat()); +// polygonItem->setZValue (ubZValue.toString().toFloat()); + UBGraphicsItem::assignZValue(polygonItem, ubZValue.toString().toFloat()); } else { - polygonItem->setZValue(mGroupZIndex); +// polygonItem->setZValue(mGroupZIndex); + UBGraphicsItem::assignZValue(polygonItem, mGroupZIndex); } QStringRef ubFillOnDarkBackground = mXmlReader.attributes().value(mNamespaceUri, "fill-on-dark-background"); @@ -1444,11 +1447,13 @@ UBGraphicsPolygonItem* UBSvgSubsetAdaptor::UBSvgSubsetReader::polygonItemFromLin if (!ubZValue.isNull()) { - polygonItem->setZValue(ubZValue.toString().toFloat()); +// polygonItem->setZValue(ubZValue.toString().toFloat()); + UBGraphicsItem::assignZValue(polygonItem, ubZValue.toString().toFloat()); } else { - polygonItem->setZValue(mGroupZIndex); +// polygonItem->setZValue(mGroupZIndex); + UBGraphicsItem::assignZValue(polygonItem, mGroupZIndex); } @@ -1587,7 +1592,8 @@ QList UBSvgSubsetAdaptor::UBSvgSubsetReader::polygonItem { UBGraphicsPolygonItem* polygonItem = new UBGraphicsPolygonItem(QLineF(points.at(i), points.at(i + 1)), lineWidth); polygonItem->setColor(brushColor); - polygonItem->setZValue(zValue); +// polygonItem->setZValue(zValue); + UBGraphicsItem::assignZValue(polygonItem, zValue); polygonItem->setColorOnDarkBackground(colorOnDarkBackground); polygonItem->setColorOnLightBackground(colorOnLightBackground); @@ -1931,7 +1937,8 @@ void UBSvgSubsetAdaptor::UBSvgSubsetReader::graphicsItemFromSvg(QGraphicsItem* g if (!ubZValue.isNull()) { - gItem->setZValue(ubZValue.toString().toFloat()); +// gItem->setZValue(ubZValue.toString().toFloat()); + UBGraphicsItem::assignZValue(gItem, ubZValue.toString().toFloat()); } UBItem* ubItem = dynamic_cast(gItem); @@ -2484,7 +2491,8 @@ UBGraphicsRuler* UBSvgSubsetAdaptor::UBSvgSubsetReader::rulerFromSvg() graphicsItemFromSvg(ruler); - ruler->setZValue(UBGraphicsScene::toolLayerStart + UBGraphicsScene::toolOffsetRuler); +// ruler->setZValue(UBGraphicsScene::toolLayerStart + UBGraphicsScene::toolOffsetRuler); + UBGraphicsItem::assignZValue(ruler, UBGraphicsScene::toolLayerStart + UBGraphicsScene::toolOffsetRuler); ruler->setData(UBGraphicsItemData::ItemLayerType, QVariant(UBItemLayerType::Tool)); QStringRef svgWidth = mXmlReader.attributes().value("width"); @@ -2542,7 +2550,8 @@ UBGraphicsCompass* UBSvgSubsetAdaptor::UBSvgSubsetReader::compassFromSvg() graphicsItemFromSvg(compass); - compass->setZValue(UBGraphicsScene::toolLayerStart + UBGraphicsScene::toolOffsetCompass); + //compass->setZValue(UBGraphicsScene::toolLayerStart + UBGraphicsScene::toolOffsetCompass); + UBGraphicsItem::assignZValue(compass, UBGraphicsScene::toolLayerStart + UBGraphicsScene::toolOffsetCompass); compass->setData(UBGraphicsItemData::ItemLayerType, QVariant(UBItemLayerType::Tool)); QStringRef svgX = mXmlReader.attributes().value("x"); @@ -2606,7 +2615,8 @@ UBGraphicsProtractor* UBSvgSubsetAdaptor::UBSvgSubsetReader::protractorFromSvg() { UBGraphicsProtractor* protractor = new UBGraphicsProtractor(); - protractor->setZValue(UBGraphicsScene::toolLayerStart + UBGraphicsScene::toolOffsetProtractor); +// protractor->setZValue(UBGraphicsScene::toolLayerStart + UBGraphicsScene::toolOffsetProtractor); + UBGraphicsItem::assignZValue(protractor, UBGraphicsScene::toolLayerStart + UBGraphicsScene::toolOffsetProtractor); protractor->setData(UBGraphicsItemData::ItemLayerType, QVariant(UBItemLayerType::Tool)); graphicsItemFromSvg(protractor); @@ -2676,7 +2686,8 @@ UBGraphicsTriangle* UBSvgSubsetAdaptor::UBSvgSubsetReader::triangleFromSvg() { UBGraphicsTriangle* triangle = new UBGraphicsTriangle(); - triangle->setZValue(UBGraphicsScene::toolLayerStart + UBGraphicsScene::toolOffsetTriangle); +// triangle->setZValue(UBGraphicsScene::toolLayerStart + UBGraphicsScene::toolOffsetTriangle); + UBGraphicsItem::assignZValue(triangle, UBGraphicsScene::toolLayerStart + UBGraphicsScene::toolOffsetTriangle); triangle->setData(UBGraphicsItemData::ItemLayerType, QVariant(UBItemLayerType::Tool)); graphicsItemFromSvg(triangle); @@ -2695,7 +2706,6 @@ UBGraphicsTriangle* UBSvgSubsetAdaptor::UBSvgSubsetReader::triangleFromSvg() triangle->setRect(svgX.toString().toFloat(), svgY.toString().toFloat(), svgWidth.toString().toFloat(), svgHeight.toString().toFloat(), orientation); } - triangle->setVisible(true); return triangle; } @@ -2703,7 +2713,8 @@ UBGraphicsTriangle* UBSvgSubsetAdaptor::UBSvgSubsetReader::triangleFromSvg() UBGraphicsCache* UBSvgSubsetAdaptor::UBSvgSubsetReader::cacheFromSvg() { UBGraphicsCache* pCache = new UBGraphicsCache(); - //pCache->setZValue(UBGraphicsScene::toolLayerStart + UBGraphicsScene::toolOffsetCache); + pCache->setZValue(UBGraphicsScene::toolLayerStart + UBGraphicsScene::toolOffsetCache); +// UBGraphicsItem::assignZValue(pCache, UBGraphicsScene::toolLayerStart + UBGraphicsScene::toolOffsetCache); pCache->setData(UBGraphicsItemData::ItemLayerType, QVariant(UBItemLayerType::Tool)); graphicsItemFromSvg(pCache); diff --git a/src/board/UBBoardController.cpp b/src/board/UBBoardController.cpp index 829c07ef..5c63fec8 100644 --- a/src/board/UBBoardController.cpp +++ b/src/board/UBBoardController.cpp @@ -1842,7 +1842,8 @@ void UBBoardController::processMimeData(const QMimeData* pMimeData, const QPoint if (gi) { - gi->setZValue(mActiveScene->getNextObjectZIndex()); +// gi->setZValue(mActiveScene->getNextObjectZIndex()); + UBGraphicsItem::assignZValue(gi, mActiveScene->getNextObjectZIndex()); mActiveScene->addItem(gi); gi->setPos(gi->pos() + QPointF(50, 50)); } diff --git a/src/core/UB.h b/src/core/UB.h index fbe7dd77..83a4b456 100644 --- a/src/core/UB.h +++ b/src/core/UB.h @@ -78,6 +78,7 @@ struct UBGraphicsItemData ItemLayerType , ItemLocked , ItemEditable//for text only + , ItemOwnZValue }; }; diff --git a/src/domain/UBGraphicsAudioItem.cpp b/src/domain/UBGraphicsAudioItem.cpp index 12a2eae6..d38e27b7 100644 --- a/src/domain/UBGraphicsAudioItem.cpp +++ b/src/domain/UBGraphicsAudioItem.cpp @@ -95,7 +95,8 @@ UBItem* UBGraphicsAudioItem::deepCopy() const UBGraphicsAudioItem *copy = new UBGraphicsAudioItem(audioUrl, parentItem()); copy->setPos(this->pos()); - copy->setZValue(this->zValue()); +// copy->setZValue(this->zValue()); + UBGraphicsItem::assignZValue(copy, this->zValue()); copy->setTransform(this->transform()); copy->setFlag(QGraphicsItem::ItemIsMovable, true); copy->setFlag(QGraphicsItem::ItemIsSelectable, true); diff --git a/src/domain/UBGraphicsItemDelegate.cpp b/src/domain/UBGraphicsItemDelegate.cpp index 7cc8fa96..de335a3a 100644 --- a/src/domain/UBGraphicsItemDelegate.cpp +++ b/src/domain/UBGraphicsItemDelegate.cpp @@ -72,7 +72,8 @@ void UBGraphicsItemDelegate::init() { mFrame = new UBGraphicsDelegateFrame(this, QRectF(0, 0, 0, 0), mFrameWidth, mRespectRatio); mFrame->hide(); - mFrame->setZValue(UBGraphicsScene::toolLayerStart + 1); +// mFrame->setZValue(UBGraphicsScene::toolLayerStart + 1); + UBGraphicsItem::assignZValue(mFrame, UBGraphicsScene::toolLayerStart + 1); mFrame->setFlag(QGraphicsItem::ItemIsSelectable, true); mDeleteButton = new DelegateButton(":/images/close.svg", mDelegated, mFrame); @@ -92,7 +93,8 @@ void UBGraphicsItemDelegate::init() foreach(DelegateButton* button, mButtons) { button->hide(); - button->setZValue(UBGraphicsScene::toolLayerStart + 2); +// button->setZValue(UBGraphicsScene::toolLayerStart + 2); + UBGraphicsItem::assignZValue(button, UBGraphicsScene::toolLayerStart + 2); button->setFlag(QGraphicsItem::ItemIsSelectable, true); } } diff --git a/src/domain/UBGraphicsItemTransformUndoCommand.cpp b/src/domain/UBGraphicsItemTransformUndoCommand.cpp index 0d799f0a..e56027ea 100644 --- a/src/domain/UBGraphicsItemTransformUndoCommand.cpp +++ b/src/domain/UBGraphicsItemTransformUndoCommand.cpp @@ -15,6 +15,7 @@ #include "UBGraphicsItemTransformUndoCommand.h" #include "UBResizableGraphicsItem.h" +#include "domain/UBItem.h" #include "core/memcheck.h" @@ -48,7 +49,8 @@ void UBGraphicsItemTransformUndoCommand::undo() { mItem->setPos(mPreviousPosition); mItem->setTransform(mPreviousTransform); - mItem->setZValue(mPreviousZValue); +// mItem->setZValue(mPreviousZValue); + UBGraphicsItem::assignZValue(mItem, mPreviousZValue); UBResizableGraphicsItem* resizableItem = dynamic_cast(mItem); @@ -60,7 +62,8 @@ void UBGraphicsItemTransformUndoCommand::redo() { mItem->setPos(mCurrentPosition); mItem->setTransform(mCurrentTransform); - mItem->setZValue(mCurrentZValue); +// mItem->setZValue(mCurrentZValue); + UBGraphicsItem::assignZValue(mItem, mCurrentZValue); UBResizableGraphicsItem* resizableItem = dynamic_cast(mItem); diff --git a/src/domain/UBGraphicsPDFItem.cpp b/src/domain/UBGraphicsPDFItem.cpp index 7838358f..704ba676 100644 --- a/src/domain/UBGraphicsPDFItem.cpp +++ b/src/domain/UBGraphicsPDFItem.cpp @@ -84,7 +84,8 @@ UBItem* UBGraphicsPDFItem::deepCopy() const UBGraphicsPDFItem *copy = new UBGraphicsPDFItem(mRenderer, mPageNumber, parentItem()); copy->setPos(this->pos()); - copy->setZValue(this->zValue()); +// copy->setZValue(this->zValue()); + UBGraphicsItem::assignZValue(copy, this->zValue()); copy->setTransform(this->transform()); copy->setFlag(QGraphicsItem::ItemIsMovable, true); copy->setFlag(QGraphicsItem::ItemIsSelectable, true); @@ -134,7 +135,8 @@ UBGraphicsPixmapItem* UBGraphicsPDFItem::toPixmapItem() const pixmapItem->setPixmap(pixmap); pixmapItem->setPos(this->pos()); - pixmapItem->setZValue(this->zValue()); +// pixmapItem->setZValue(this->zValue()); + UBGraphicsItem::assignZValue(pixmapItem, this->zValue()); pixmapItem->setTransform(this->transform()); pixmapItem->setFlag(QGraphicsItem::ItemIsMovable, true); pixmapItem->setFlag(QGraphicsItem::ItemIsSelectable, true); diff --git a/src/domain/UBGraphicsPixmapItem.cpp b/src/domain/UBGraphicsPixmapItem.cpp index edffb90d..ceb4fd28 100644 --- a/src/domain/UBGraphicsPixmapItem.cpp +++ b/src/domain/UBGraphicsPixmapItem.cpp @@ -98,7 +98,8 @@ UBItem* UBGraphicsPixmapItem::deepCopy() const copy->setPixmap(this->pixmap()); copy->setPos(this->pos()); - copy->setZValue(this->zValue()); +// copy->setZValue(this->zValue()); + UBGraphicsItem::assignZValue(copy, this->zValue()); copy->setTransform(this->transform()); copy->setFlag(QGraphicsItem::ItemIsMovable, true); copy->setFlag(QGraphicsItem::ItemIsSelectable, true); diff --git a/src/domain/UBGraphicsPolygonItem.cpp b/src/domain/UBGraphicsPolygonItem.cpp index c8153ca4..d2e96e25 100644 --- a/src/domain/UBGraphicsPolygonItem.cpp +++ b/src/domain/UBGraphicsPolygonItem.cpp @@ -153,7 +153,9 @@ UBGraphicsPolygonItem* UBGraphicsPolygonItem::deepCopy(const QPolygonF& pol) con copy->setPen(this->pen()); copy->mHasAlpha = this->mHasAlpha; - copy->setZValue(this->zValue()); +// copy->setZValue(this->zValue()); + UBGraphicsItem::assignZValue(copy, this->zValue()); + copy->setColorOnDarkBackground(this->colorOnDarkBackground()); copy->setColorOnLightBackground(this->colorOnLightBackground()); diff --git a/src/domain/UBGraphicsScene.cpp b/src/domain/UBGraphicsScene.cpp index 476dd289..d4a7f8d8 100644 --- a/src/domain/UBGraphicsScene.cpp +++ b/src/domain/UBGraphicsScene.cpp @@ -75,6 +75,8 @@ qreal UBGraphicsScene::toolOffsetEraser = 200; qreal UBGraphicsScene::toolOffsetCurtain = 1000; qreal UBGraphicsScene::toolOffsetPointer = 1100; +qreal UBGraphicsScene::toolOffsetCache = 1000;//Didier please define offset you want + UBGraphicsScene::UBGraphicsScene(UBDocumentProxy* parent) : UBCoreGraphicsScene(parent) , mEraser(0) @@ -824,8 +826,8 @@ void UBGraphicsScene::initPolygonItem(UBGraphicsPolygonItem* polygonItem) polygonItem->setData(UBGraphicsItemData::ItemLayerType, QVariant(UBItemLayerType::Graphic)); - polygonItem->setZValue(getNextDrawingZIndex()); - +// polygonItem->setZValue(getNextDrawingZIndex()); + UBGraphicsItem::assignZValue(polygonItem, getNextDrawingZIndex()); } @@ -1035,7 +1037,8 @@ UBGraphicsPixmapItem* UBGraphicsScene::addPixmap(const QPixmap& pPixmap, const Q pixmapItem->setFlag(QGraphicsItem::ItemIsMovable, true); pixmapItem->setFlag(QGraphicsItem::ItemIsSelectable, true); - pixmapItem->setZValue(getNextObjectZIndex()); +// pixmapItem->setZValue(getNextObjectZIndex()); + UBGraphicsItem::assignZValue(pixmapItem, getNextObjectZIndex()); pixmapItem->setPixmap(pPixmap); @@ -1083,7 +1086,8 @@ UBGraphicsVideoItem* UBGraphicsScene::addVideo(const QUrl& pVideoFileUrl, bool s videoItem->setFlag(QGraphicsItem::ItemIsMovable, true); videoItem->setFlag(QGraphicsItem::ItemIsSelectable, true); - videoItem->setZValue(getNextObjectZIndex()); +// videoItem->setZValue(getNextObjectZIndex()); + UBGraphicsItem::assignZValue(videoItem, getNextObjectZIndex()); addItem(videoItem); @@ -1113,7 +1117,8 @@ UBGraphicsAudioItem* UBGraphicsScene::addAudio(const QUrl& pAudioFileUrl, bool s audioItem->setFlag(QGraphicsItem::ItemIsMovable, true); audioItem->setFlag(QGraphicsItem::ItemIsSelectable, true); - audioItem->setZValue(getNextObjectZIndex()); +// audioItem->setZValue(getNextObjectZIndex()); + UBGraphicsItem::assignZValue(audioItem, getNextObjectZIndex()); addItem(audioItem); @@ -1178,7 +1183,8 @@ UBGraphicsW3CWidgetItem* UBGraphicsScene::addW3CWidget(const QUrl& pWidgetUrl, c void UBGraphicsScene::addGraphicsWidget(UBGraphicsWidgetItem* graphicsWidget, const QPointF& pPos) { graphicsWidget->setFlag(QGraphicsItem::ItemIsSelectable, true); - graphicsWidget->setZValue(getNextObjectZIndex()); +// graphicsWidget->setZValue(getNextObjectZIndex()); + UBGraphicsItem::assignZValue(graphicsWidget, getNextObjectZIndex()); addItem(graphicsWidget); @@ -1238,7 +1244,8 @@ UBGraphicsSvgItem* UBGraphicsScene::addSvg(const QUrl& pSvgFileUrl, const QPoint svgItem->setFlag(QGraphicsItem::ItemIsMovable, true); svgItem->setFlag(QGraphicsItem::ItemIsSelectable, true); - svgItem->setZValue(getNextObjectZIndex()); +// svgItem->setZValue(getNextObjectZIndex()); + UBGraphicsItem::assignZValue(svgItem, getNextObjectZIndex()); qreal sscale = 1 / UBApplication::boardController->systemScaleFactor(); svgItem->scale(sscale, sscale); @@ -1271,7 +1278,8 @@ UBGraphicsTextItem* UBGraphicsScene::addTextWithFont(const QString& pString, con { UBGraphicsTextItem *textItem = new UBGraphicsTextItem(); textItem->setPlainText(pString); - textItem->setZValue(getNextObjectZIndex()); +// textItem->setZValue(getNextObjectZIndex()); + UBGraphicsItem::assignZValue(textItem, getNextObjectZIndex()); QFont font = textItem->font(); @@ -1326,7 +1334,8 @@ UBGraphicsTextItem *UBGraphicsScene::addTextHtml(const QString &pString, const Q UBGraphicsTextItem *textItem = new UBGraphicsTextItem(); textItem->setPlainText(""); textItem->setHtml(pString); - textItem->setZValue(getNextObjectZIndex()); +// textItem->setZValue(getNextObjectZIndex()); + UBGraphicsItem::assignZValue(textItem, getNextObjectZIndex()); addItem(textItem); textItem->show(); @@ -1337,7 +1346,6 @@ UBGraphicsTextItem *UBGraphicsScene::addTextHtml(const QString &pString, const Q connect(textItem, SIGNAL(textUndoCommandAdded(UBGraphicsTextItem *)), this, SLOT(textUndoCommandAdded(UBGraphicsTextItem *))); -// textItem->setSelected(true); textItem->setFocus(); setDocumentUpdated(); @@ -1425,7 +1433,8 @@ QGraphicsItem* UBGraphicsScene::setAsBackgroundObject(QGraphicsItem* item, bool item->setAcceptedMouseButtons(Qt::NoButton); item->setData(UBGraphicsItemData::ItemLayerType, UBItemLayerType::FixedBackground); - item->setZValue(backgroundLayerStart); +// item->setZValue(backgroundLayerStart); + UBGraphicsItem::assignZValue(item, backgroundLayerStart); if (pAdaptTransformation) { @@ -1529,7 +1538,9 @@ void UBGraphicsScene::addRuler(QPointF center) QRectF rect = ruler->rect(); ruler->setRect(center.x() - rect.width()/2, center.y() - rect.height()/2, rect.width(), rect.height()); - ruler->setZValue(toolLayerStart + toolOffsetRuler); +// ruler->setZValue(toolLayerStart + toolOffsetRuler); + UBGraphicsItem::assignZValue(ruler, toolLayerStart + toolOffsetRuler); + ruler->setData(UBGraphicsItemData::ItemLayerType, QVariant(UBItemLayerType::Tool)); addItem(ruler); @@ -1546,7 +1557,9 @@ void UBGraphicsScene::addProtractor(QPointF center) UBGraphicsProtractor* protractor = new UBGraphicsProtractor(); // mem : owned and destroyed by the scene mTools << protractor; - protractor->setZValue(toolLayerStart + toolOffsetProtractor); +// protractor->setZValue(toolLayerStart + toolOffsetProtractor); + UBGraphicsItem::assignZValue(protractor, toolLayerStart + toolOffsetProtractor); + protractor->setData(UBGraphicsItemData::ItemLayerType, QVariant(UBItemLayerType::Tool)); addItem(protractor); @@ -1565,7 +1578,9 @@ void UBGraphicsScene::addTriangle(QPointF center) UBGraphicsTriangle* triangle = new UBGraphicsTriangle(); // mem : owned and destroyed by the scene mTools << triangle; - triangle->setZValue(toolLayerStart + toolOffsetProtractor); +// triangle->setZValue(toolLayerStart + toolOffsetProtractor); + UBGraphicsItem::assignZValue(triangle, toolLayerStart + toolOffsetTriangle); + triangle->setData(UBGraphicsItemData::ItemLayerType, QVariant(UBItemLayerType::Tool)); addItem(triangle); @@ -1700,7 +1715,9 @@ void UBGraphicsScene::addCompass(QPointF center) QRectF rect = compass->rect(); compass->setRect(center.x() - rect.width() / 2, center.y() - rect.height() / 2, rect.width(), rect.height()); - compass->setZValue(toolLayerStart + toolOffsetCompass); +// compass->setZValue(toolLayerStart + toolOffsetCompass); + UBGraphicsItem::assignZValue(compass, toolLayerStart + toolOffsetCompass); + compass->setData(UBGraphicsItemData::ItemLayerType, QVariant(UBItemLayerType::Tool)); compass->setVisible(true); @@ -1740,7 +1757,10 @@ void UBGraphicsScene::addMask() view = (QGraphicsView*)UBApplication::boardController->controlView(); QPolygonF polygon = view->mapToScene(view->rect()); - curtain->setZValue(toolLayerStart + toolOffsetCurtain); + +// curtain->setZValue(toolLayerStart + toolOffsetCurtain); + UBGraphicsItem::assignZValue(curtain, toolLayerStart + toolOffsetCurtain); + QRectF rect = polygon.boundingRect(); qreal xScale = view->matrix().m11(); qreal yScale = view->matrix().m22(); diff --git a/src/domain/UBGraphicsSvgItem.cpp b/src/domain/UBGraphicsSvgItem.cpp index cfd3509a..9d8798ec 100644 --- a/src/domain/UBGraphicsSvgItem.cpp +++ b/src/domain/UBGraphicsSvgItem.cpp @@ -132,7 +132,8 @@ UBItem* UBGraphicsSvgItem::deepCopy() const UBGraphicsSvgItem* copy = new UBGraphicsSvgItem(this->fileData()); copy->setPos(this->pos()); - copy->setZValue(this->zValue()); +// copy->setZValue(this->zValue()); + UBGraphicsItem::assignZValue(copy, this->zValue()); copy->setTransform(this->transform()); copy->setFlag(QGraphicsItem::ItemIsMovable, true); copy->setFlag(QGraphicsItem::ItemIsSelectable, true); @@ -186,7 +187,8 @@ UBGraphicsPixmapItem* UBGraphicsSvgItem::toPixmapItem() const pixmapItem->setPixmap(QPixmap::fromImage(image)); pixmapItem->setPos(this->pos()); - pixmapItem->setZValue(this->zValue()); +// pixmapItem->setZValue(this->zValue()); + UBGraphicsItem::assignZValue(pixmapItem, this->zValue()); pixmapItem->setTransform(this->transform()); pixmapItem->setFlag(QGraphicsItem::ItemIsMovable, true); pixmapItem->setFlag(QGraphicsItem::ItemIsSelectable, true); diff --git a/src/domain/UBGraphicsTextItem.cpp b/src/domain/UBGraphicsTextItem.cpp index 8770a435..0d01527a 100644 --- a/src/domain/UBGraphicsTextItem.cpp +++ b/src/domain/UBGraphicsTextItem.cpp @@ -205,7 +205,8 @@ UBItem* UBGraphicsTextItem::deepCopy() const copy->setHtml(toHtml()); copy->setPos(this->pos()); - copy->setZValue(this->zValue()); +// copy->setZValue(this->zValue()); + UBGraphicsItem::assignZValue(copy, this->zValue()); copy->setTransform(this->transform()); copy->setFlag(QGraphicsItem::ItemIsMovable, true); copy->setFlag(QGraphicsItem::ItemIsSelectable, true); diff --git a/src/domain/UBGraphicsVideoItem.cpp b/src/domain/UBGraphicsVideoItem.cpp index 841667cf..c1e57e4d 100644 --- a/src/domain/UBGraphicsVideoItem.cpp +++ b/src/domain/UBGraphicsVideoItem.cpp @@ -68,7 +68,8 @@ UBItem* UBGraphicsVideoItem::deepCopy() const UBGraphicsVideoItem *copy = new UBGraphicsVideoItem(videoUrl, parentItem()); copy->setPos(this->pos()); - copy->setZValue(this->zValue()); +// copy->setZValue(this->zValue()); + UBGraphicsItem::assignZValue(copy, this->zValue()); copy->setTransform(this->transform()); copy->setFlag(QGraphicsItem::ItemIsMovable, true); copy->setFlag(QGraphicsItem::ItemIsSelectable, true); diff --git a/src/domain/UBGraphicsVideoItemDelegate.cpp b/src/domain/UBGraphicsVideoItemDelegate.cpp index 429194b0..99ba687b 100644 --- a/src/domain/UBGraphicsVideoItemDelegate.cpp +++ b/src/domain/UBGraphicsVideoItemDelegate.cpp @@ -52,7 +52,8 @@ void UBGraphicsVideoItemDelegate::buildButtons() mMuteButton->hide(); mVideoControl = new DelegateVideoControl(delegated(), mFrame); - mVideoControl->setZValue(UBGraphicsScene::toolLayerStart + 2); +// mVideoControl->setZValue(UBGraphicsScene::toolLayerStart + 2); + UBGraphicsItem::assignZValue(mVideoControl, UBGraphicsScene::toolLayerStart + 2); mVideoControl->setFlag(QGraphicsItem::ItemIsSelectable, true); connect(mPlayPauseButton, SIGNAL(clicked(bool)), this, SLOT(togglePlayPause())); diff --git a/src/domain/UBGraphicsWidgetItem.cpp b/src/domain/UBGraphicsWidgetItem.cpp index b1246f2a..a786e55a 100644 --- a/src/domain/UBGraphicsWidgetItem.cpp +++ b/src/domain/UBGraphicsWidgetItem.cpp @@ -366,7 +366,8 @@ UBItem* UBGraphicsW3CWidgetItem::deepCopy() const UBGraphicsW3CWidgetItem *copy = new UBGraphicsW3CWidgetItem(mWebKitWidget->widgetUrl(), parentItem()); copy->setPos(this->pos()); - copy->setZValue(this->zValue()); +// copy->setZValue(this->zValue()); + UBGraphicsItem::assignZValue(copy, this->zValue()); copy->setTransform(this->transform()); copy->setFlag(QGraphicsItem::ItemIsMovable, true); copy->setFlag(QGraphicsItem::ItemIsSelectable, true); diff --git a/src/domain/UBItem.cpp b/src/domain/UBItem.cpp index 4a3e1643..3e6f68cf 100644 --- a/src/domain/UBItem.cpp +++ b/src/domain/UBItem.cpp @@ -28,3 +28,9 @@ UBItem::~UBItem() { // NOOP } + +void UBGraphicsItem::assignZValue(QGraphicsItem *item, int value) +{ + item->setZValue(value); + item->setData(UBGraphicsItemData::ItemOwnZValue, value); +} diff --git a/src/domain/UBItem.h b/src/domain/UBItem.h index 328a3c37..7ae29988 100644 --- a/src/domain/UBItem.h +++ b/src/domain/UBItem.h @@ -100,6 +100,7 @@ protected: public: + static void assignZValue(QGraphicsItem*, int value); virtual UBGraphicsItemDelegate *Delegate() const = 0; virtual void remove() = 0; diff --git a/src/gui/UBLibraryWidget.cpp b/src/gui/UBLibraryWidget.cpp index 22c27adc..963bd4e2 100644 --- a/src/gui/UBLibraryWidget.cpp +++ b/src/gui/UBLibraryWidget.cpp @@ -39,9 +39,9 @@ */ UBLibraryWidget::UBLibraryWidget(QWidget *parent, const char *name):UBThumbnailWidget(parent) , chainedElements(NULL) + , mLibraryController(NULL) , mpCrntDir(NULL) , mpCrntElem(NULL) - , mLibraryController(NULL) , mpTmpElem(NULL) { setObjectName(name); diff --git a/src/gui/UBThumbnailWidget.h b/src/gui/UBThumbnailWidget.h index c4fa103f..5f0543f8 100644 --- a/src/gui/UBThumbnailWidget.h +++ b/src/gui/UBThumbnailWidget.h @@ -23,6 +23,7 @@ #include "frameworks/UBCoreGraphicsScene.h" #include "core/UBSettings.h" +#include "domain/UBItem.h" #define STARTDRAGTIME 1000000 #define BUTTONSIZE 48 @@ -147,7 +148,8 @@ class UBThumbnail if (!mSelectionItem->scene()) { item->scene()->addItem(mSelectionItem); - mSelectionItem->setZValue(item->zValue() - 1); +// mSelectionItem->setZValue(item->zValue() - 1); + UBGraphicsItem::assignZValue(mSelectionItem, item->zValue() - 1); mAddedToScene = true; } diff --git a/src/pdf-merger/Object.h b/src/pdf-merger/Object.h index d2bc75ba..982d3734 100644 --- a/src/pdf-merger/Object.h +++ b/src/pdf-merger/Object.h @@ -48,7 +48,7 @@ namespace merge_lib std::string fileName = "", std::pair streamBounds = std::make_pair ((unsigned int)0,(unsigned int)0), bool hasStream = false ): _number(objectNumber), _generationNumber(generationNumber), _oldNumber(objectNumber), _content(objectContent),_parents(),_children(),_isPassed(false), - _fileName(fileName), _streamBounds(streamBounds), _hasStream(hasStream), _hasStreamInContent(false) + _streamBounds(streamBounds), _fileName(fileName), _hasStream(hasStream), _hasStreamInContent(false) { } virtual ~Object(); diff --git a/src/tools/UBGraphicsCache.cpp b/src/tools/UBGraphicsCache.cpp index 231399c3..a7e97895 100644 --- a/src/tools/UBGraphicsCache.cpp +++ b/src/tools/UBGraphicsCache.cpp @@ -33,7 +33,8 @@ UBGraphicsCache::UBGraphicsCache():QGraphicsRectItem() // Get the board size and pass it to the shape QRect boardRect = UBApplication::boardController->displayView()->rect(); setRect(-15*boardRect.width(), -15*boardRect.height(), 30*boardRect.width(), 30*boardRect.height()); - setZValue(CACHE_ZVALUE); +// setZValue(CACHE_ZVALUE); + UBGraphicsItem::assignZValue(this, CACHE_ZVALUE); setData(Qt::UserRole, QVariant("Cache")); } @@ -48,7 +49,8 @@ UBItem* UBGraphicsCache::deepCopy() const copy->setPos(this->pos()); copy->setRect(this->rect()); - copy->setZValue(this->zValue()); +// copy->setZValue(this->zValue()); + UBGraphicsItem::assignZValue(copy, this->zValue()); copy->setTransform(this->transform()); // TODO UB 4.7 ... complete all members ? @@ -90,7 +92,8 @@ void UBGraphicsCache::paint(QPainter *painter, const QStyleOptionGraphicsItem *o //Q_UNUSED(option); Q_UNUSED(widget); - setZValue(CACHE_ZVALUE); +// setZValue(CACHE_ZVALUE); + UBGraphicsItem::assignZValue(this, CACHE_ZVALUE); painter->setBrush(mMaskColor); painter->setPen(mMaskColor); diff --git a/src/tools/UBGraphicsCompass.cpp b/src/tools/UBGraphicsCompass.cpp index d0374c11..6e13b125 100644 --- a/src/tools/UBGraphicsCompass.cpp +++ b/src/tools/UBGraphicsCompass.cpp @@ -85,7 +85,8 @@ UBItem* UBGraphicsCompass::deepCopy() const copy->setPos(this->pos()); copy->setRect(this->rect()); - copy->setZValue(this->zValue()); +// copy->setZValue(this->zValue()); + UBGraphicsItem::assignZValue(copy, this->zValue()); copy->setTransform(this->transform()); // TODO UB 4.7 ... complete all members ? diff --git a/src/tools/UBGraphicsCurtainItem.cpp b/src/tools/UBGraphicsCurtainItem.cpp index 118b92f2..3dfb21b6 100644 --- a/src/tools/UBGraphicsCurtainItem.cpp +++ b/src/tools/UBGraphicsCurtainItem.cpp @@ -57,8 +57,8 @@ UBGraphicsCurtainItem::~UBGraphicsCurtainItem() QVariant UBGraphicsCurtainItem::itemChange(GraphicsItemChange change, const QVariant &value) { - if (change == QGraphicsItem::ItemSelectedHasChanged && QGraphicsRectItem::scene() && isSelected()) - setZValue(UBGraphicsScene::toolLayerStart + UBGraphicsScene::toolOffsetCurtain); +// if (change == QGraphicsItem::ItemSelectedHasChanged && QGraphicsRectItem::scene() && isSelected()) +// setZValue(UBGraphicsScene::toolLayerStart + UBGraphicsScene::toolOffsetCurtain); QVariant newValue = value; @@ -130,7 +130,8 @@ UBItem* UBGraphicsCurtainItem::deepCopy() const copy->setPos(this->pos()); copy->setBrush(this->brush()); copy->setPen(this->pen()); - copy->setZValue(this->zValue()); +// copy->setZValue(this->zValue()); + UBGraphicsItem::assignZValue(copy, this->zValue()); copy->setTransform(this->transform()); copy->setFlag(QGraphicsItem::ItemIsMovable, true); copy->setFlag(QGraphicsItem::ItemIsSelectable, true); diff --git a/src/tools/UBGraphicsCurtainItemDelegate.cpp b/src/tools/UBGraphicsCurtainItemDelegate.cpp index 31eb0da7..a16685b6 100644 --- a/src/tools/UBGraphicsCurtainItemDelegate.cpp +++ b/src/tools/UBGraphicsCurtainItemDelegate.cpp @@ -52,7 +52,7 @@ bool UBGraphicsCurtainItemDelegate::mousePressEvent(QGraphicsSceneMouseEvent *ev if (!mDelegated->isSelected()) { mDelegated->setSelected(true); - mDelegated->setZValue(UBGraphicsScene::toolLayerStart + UBGraphicsScene::toolOffsetCurtain); +// mDelegated->setZValue(UBGraphicsScene::toolLayerStart + UBGraphicsScene::toolOffsetCurtain); positionHandles(); return true; @@ -69,13 +69,13 @@ QVariant UBGraphicsCurtainItemDelegate::itemChange(QGraphicsItem::GraphicsItemCh { if (change == QGraphicsItem::ItemZValueHasChanged) { - mFrame->setZValue(mDelegated->zValue() + 1); +// mFrame->setZValue(mDelegated->zValue() + 1); - foreach(DelegateButton* button, mButtons) - { - button->setZValue(mDelegated->zValue() + 2); - button->setZValue(mDelegated->zValue() + 2); - } +// foreach(DelegateButton* button, mButtons) +// { +// button->setZValue(mDelegated->zValue() + 2); +// button->setZValue(mDelegated->zValue() + 2); +// } } if (change == QGraphicsItem::ItemVisibleHasChanged) diff --git a/src/tools/UBGraphicsProtractor.cpp b/src/tools/UBGraphicsProtractor.cpp index 43a84af1..bafb5689 100644 --- a/src/tools/UBGraphicsProtractor.cpp +++ b/src/tools/UBGraphicsProtractor.cpp @@ -580,7 +580,8 @@ UBItem* UBGraphicsProtractor::deepCopy() const copy->setPos(this->pos()); copy->setRect(this->rect()); - copy->setZValue(this->zValue()); +// copy->setZValue(this->zValue()); + UBGraphicsItem::assignZValue(copy, this->zValue()); copy->setTransform(this->transform()); copy->mCurrentAngle = this->mCurrentAngle; diff --git a/src/tools/UBGraphicsRuler.cpp b/src/tools/UBGraphicsRuler.cpp index cd15de78..2bf27719 100644 --- a/src/tools/UBGraphicsRuler.cpp +++ b/src/tools/UBGraphicsRuler.cpp @@ -74,7 +74,8 @@ UBItem* UBGraphicsRuler::deepCopy() const copy->setPos(this->pos()); copy->setRect(this->rect()); - copy->setZValue(this->zValue()); +// copy->setZValue(this->zValue()); + UBGraphicsItem::assignZValue(copy, this->zValue()); copy->setTransform(this->transform()); // TODO UB 4.7 ... complete all members ? diff --git a/src/tools/UBGraphicsTriangle.cpp b/src/tools/UBGraphicsTriangle.cpp index f6459f97..e5c7fdeb 100644 --- a/src/tools/UBGraphicsTriangle.cpp +++ b/src/tools/UBGraphicsTriangle.cpp @@ -93,7 +93,8 @@ UBItem* UBGraphicsTriangle::deepCopy(void) const copy->setPos(this->pos()); copy->setPolygon(this->polygon()); - copy->setZValue(this->zValue()); +// copy->setZValue(this->zValue()); + UBGraphicsItem::assignZValue(copy, this->zValue()); copy->setTransform(this->transform()); // TODO UB 4.7 ... complete all members ? From 31ca9eca5517fb70264c6258d6b83662594294be Mon Sep 17 00:00:00 2001 From: Ivan Ilin Date: Tue, 13 Dec 2011 19:24:26 +0200 Subject: [PATCH 02/20] not stable changes --- src/domain/UBGraphicsItemDelegate.cpp | 4 +-- .../UBGraphicsItemTransformUndoCommand.cpp | 5 ++-- src/domain/UBGraphicsScene.cpp | 25 +++++++++++++++---- src/gui/UBThumbnailWidget.h | 4 +-- 4 files changed, 27 insertions(+), 11 deletions(-) diff --git a/src/domain/UBGraphicsItemDelegate.cpp b/src/domain/UBGraphicsItemDelegate.cpp index de335a3a..910d001c 100644 --- a/src/domain/UBGraphicsItemDelegate.cpp +++ b/src/domain/UBGraphicsItemDelegate.cpp @@ -93,8 +93,8 @@ void UBGraphicsItemDelegate::init() foreach(DelegateButton* button, mButtons) { button->hide(); -// button->setZValue(UBGraphicsScene::toolLayerStart + 2); - UBGraphicsItem::assignZValue(button, UBGraphicsScene::toolLayerStart + 2); + button->setZValue(UBGraphicsScene::toolLayerStart + 2); +// UBGraphicsItem::assignZValue(button, UBGraphicsScene::toolLayerStart + 2); button->setFlag(QGraphicsItem::ItemIsSelectable, true); } } diff --git a/src/domain/UBGraphicsItemTransformUndoCommand.cpp b/src/domain/UBGraphicsItemTransformUndoCommand.cpp index e56027ea..e883c8e9 100644 --- a/src/domain/UBGraphicsItemTransformUndoCommand.cpp +++ b/src/domain/UBGraphicsItemTransformUndoCommand.cpp @@ -50,7 +50,7 @@ void UBGraphicsItemTransformUndoCommand::undo() mItem->setPos(mPreviousPosition); mItem->setTransform(mPreviousTransform); // mItem->setZValue(mPreviousZValue); - UBGraphicsItem::assignZValue(mItem, mPreviousZValue); +// UBGraphicsItem::assignZValue(mItem, mPreviousZValue); UBResizableGraphicsItem* resizableItem = dynamic_cast(mItem); @@ -63,7 +63,8 @@ void UBGraphicsItemTransformUndoCommand::redo() mItem->setPos(mCurrentPosition); mItem->setTransform(mCurrentTransform); // mItem->setZValue(mCurrentZValue); - UBGraphicsItem::assignZValue(mItem, mCurrentZValue); + + UBGraphicsItem::assignZValue(mItem, /*mCurrentZValue*/mItem->data(UBGraphicsItemData::ItemOwnZValue).toReal()); UBResizableGraphicsItem* resizableItem = dynamic_cast(mItem); diff --git a/src/domain/UBGraphicsScene.cpp b/src/domain/UBGraphicsScene.cpp index d4a7f8d8..b5a59ed8 100644 --- a/src/domain/UBGraphicsScene.cpp +++ b/src/domain/UBGraphicsScene.cpp @@ -60,6 +60,7 @@ #include "UBGraphicsStroke.h" #include "core/memcheck.h" +#include "qtlogger.h" qreal UBGraphicsScene::backgroundLayerStart = -20000000.0; qreal UBGraphicsScene::objectLayerStart = -10000000.0; @@ -139,6 +140,8 @@ UBGraphicsScene::UBGraphicsScene(UBDocumentProxy* parent) } connect(this, SIGNAL(selectionChanged()), this, SLOT(selectionChangedProcessing())); + QtLogger::logger().start("/home/ilia/Documents/tmp/2/log.txt"); + QtLogger::logger().finish(); } UBGraphicsScene::~UBGraphicsScene() @@ -152,12 +155,15 @@ UBGraphicsScene::~UBGraphicsScene() void UBGraphicsScene::selectionChangedProcessing() { + QtLogger::logger().start("/home/ilia/Documents/tmp/2/log.txt"); + QtLogger::logger() << "selection processing started\n" << endl; -// if (selectedItems().count()) -// UBApplication::showMessage("ZValue is " + QString::number(selectedItems().first()->zValue(), 'f')); + if (selectedItems().count()) + UBApplication::showMessage("ZValue is " + QString::number(selectedItems().first()->zValue(), 'f')); QList allItemsList = items(); + QtLogger::logger() << "=====all items searching...======" << endl; for( int i = 0; i < allItemsList.size(); i++ ) { QGraphicsItem *nextItem = allItemsList.at(i); @@ -167,18 +173,27 @@ void UBGraphicsScene::selectionChangedProcessing() continue; //Temporary stub end (sankore 360) // qreal zValue = nextItem->zValue(); - nextItem->setZValue(qreal(1)); +// nextItem->setZValue(nextItem->data(UBGraphicsItemData::ItemOwnZValue).toReal()); + nextItem->setZValue(1); + QtLogger::logger() << "own Z " << QString::number(nextItem->data(UBGraphicsItemData::ItemOwnZValue).toReal(), 'f') + << " next Z " << QString::number(nextItem->zValue(), 'f')<< endl; // qDebug() << QString(" %1 ").arg(i) << QString(" %1 ").arg(zValue); } - QList selItemsList = selectedItems(); + QtLogger::logger() << "=====selected items searching...======" << endl; + QGraphicsItem *nextItem; for( int i = 0; i < selItemsList.size(); i++ ) { - QGraphicsItem *nextItem = selItemsList.at(i); + nextItem = selItemsList.at(i); + QtLogger::logger() << "own Z " << QString::number(nextItem->data(UBGraphicsItemData::ItemOwnZValue).toReal(), 'f') + << " next Z " << QString::number(nextItem->zValue(), 'f')<< endl; // qreal zValue = nextItem->zValue(); nextItem->setZValue(2); // qDebug() << QString(" >>> %1 <<< ").arg(i) << QString(" >>> %1 <<< ").arg(zValue); } + QtLogger::logger() << "\nselection processing finished" << endl; + QtLogger::logger().finish(); + } // MARK: - diff --git a/src/gui/UBThumbnailWidget.h b/src/gui/UBThumbnailWidget.h index 5f0543f8..f3f25d6a 100644 --- a/src/gui/UBThumbnailWidget.h +++ b/src/gui/UBThumbnailWidget.h @@ -148,8 +148,8 @@ class UBThumbnail if (!mSelectionItem->scene()) { item->scene()->addItem(mSelectionItem); -// mSelectionItem->setZValue(item->zValue() - 1); - UBGraphicsItem::assignZValue(mSelectionItem, item->zValue() - 1); + mSelectionItem->setZValue(item->zValue() - 1); +// UBGraphicsItem::assignZValue(mSelectionItem, item->zValue() - 1); mAddedToScene = true; } From d15e23d629fb262409909a8d4cfe798a81d3a945 Mon Sep 17 00:00:00 2001 From: Anatoly Mihalchenko Date: Wed, 14 Dec 2011 12:58:21 +0300 Subject: [PATCH 03/20] SANKORE-301 fix incorrect memory pointers usage (pointers collect in mFastAccessList and objects is never clear) --- src/domain/UBGraphicsItemDelegate.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/domain/UBGraphicsItemDelegate.cpp b/src/domain/UBGraphicsItemDelegate.cpp index 7cc8fa96..9b15379e 100644 --- a/src/domain/UBGraphicsItemDelegate.cpp +++ b/src/domain/UBGraphicsItemDelegate.cpp @@ -282,8 +282,8 @@ void UBGraphicsItemDelegate::positionHandles() void UBGraphicsItemDelegate::remove(bool canUndo) { - QGraphicsScene* scene = mDelegated->scene(); - +// QGraphicsScene* scene = mDelegated->scene(); + UBGraphicsScene* scene = (UBGraphicsScene*)(mDelegated->scene()); if (scene) { foreach(DelegateButton* button, mButtons) From c4cefa677eb6b4b0091ae269a9713d12c6cc52b0 Mon Sep 17 00:00:00 2001 From: Anatoly Mihalchenko Date: Wed, 14 Dec 2011 16:02:25 +0300 Subject: [PATCH 04/20] SANKORE-300 / SANKORE-332 : fix clear item when we add new page, and this item not in scene --- src/board/UBBoardController.cpp | 45 +++++++++++++++++++++++++- src/board/UBBoardController.h | 3 ++ src/domain/UBGraphicsItemUndoCommand.h | 3 ++ 3 files changed, 50 insertions(+), 1 deletion(-) diff --git a/src/board/UBBoardController.cpp b/src/board/UBBoardController.cpp index 829c07ef..60ef79ee 100644 --- a/src/board/UBBoardController.cpp +++ b/src/board/UBBoardController.cpp @@ -1132,7 +1132,7 @@ void UBBoardController::setActiveDocumentScene(UBDocumentProxy* pDocumentProxy, if(sceneChange) emit activeSceneWillChange(); - UBApplication::undoStack->clear(); + ClearUndoStack(); mActiveScene = targetScene; mActiveDocument = pDocumentProxy; @@ -1173,6 +1173,49 @@ void UBBoardController::setActiveDocumentScene(UBDocumentProxy* pDocumentProxy, } } +void UBBoardController::ClearUndoStack() +{ + QSet uniqueItems; + QUndoStack *stack = UBApplication::undoStack; + // go through all stack command + for(int i = 0; i < stack->count(); i++) + { + UBGraphicsItemUndoCommand *cmd = (UBGraphicsItemUndoCommand*)stack->command(i); + + // go through all added and removed objects, for create list of unique objects + QSetIterator itAdded(cmd->GetAddedList()); + while (itAdded.hasNext()) + { + QGraphicsItem* item = itAdded.next(); + if( !uniqueItems.contains(item) ) + uniqueItems.insert(item); + } + + QSetIterator itRemoved(cmd->GetRemovedList()); + while (itRemoved.hasNext()) + { + QGraphicsItem* item = itRemoved.next(); + if( !uniqueItems.contains(item) ) + uniqueItems.insert(item); + } + } + + // clear stack, and command list + stack->clear(); + + // go through all unique items, and check, ot on scene, or not. + // if not on scene, than item can be deleted + + QSetIterator itUniq(uniqueItems); + while (itUniq.hasNext()) + { + QGraphicsItem* item = itUniq.next(); + UBGraphicsScene *scene = (UBGraphicsScene*)item->scene(); + if(!scene) + delete item; + } + +} void UBBoardController::adjustDisplayViews() { diff --git a/src/board/UBBoardController.h b/src/board/UBBoardController.h index 218130ab..2b17670b 100644 --- a/src/board/UBBoardController.h +++ b/src/board/UBBoardController.h @@ -150,6 +150,9 @@ class UBBoardController : public QObject void notifyPageChanged(); void displayMetaData(QMap metadatas); + void ClearUndoStack(); + + public slots: void setActiveDocumentScene(UBDocumentProxy* pDocumentProxy, int pSceneIndex = 0); void showDocumentsDialog(); diff --git a/src/domain/UBGraphicsItemUndoCommand.h b/src/domain/UBGraphicsItemUndoCommand.h index 4d513915..84711bd4 100644 --- a/src/domain/UBGraphicsItemUndoCommand.h +++ b/src/domain/UBGraphicsItemUndoCommand.h @@ -32,6 +32,9 @@ class UBGraphicsItemUndoCommand : public QUndoCommand virtual ~UBGraphicsItemUndoCommand(); + QSet GetAddedList() { return mAddedItems; }; + QSet GetRemovedList() { return mRemovedItems; }; + protected: virtual void undo(); virtual void redo(); From 6473d4fa0f39166820e8cea63f7a03f578d127da Mon Sep 17 00:00:00 2001 From: Anatoly Mihalchenko Date: Wed, 14 Dec 2011 16:40:41 +0300 Subject: [PATCH 05/20] SANKORE-332 / SANKORE-300 : fix crash --- src/board/UBBoardController.cpp | 4 +++- src/frameworks/UBCoreGraphicsScene.cpp | 13 +++++++++++++ src/frameworks/UBCoreGraphicsScene.h | 3 +++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/board/UBBoardController.cpp b/src/board/UBBoardController.cpp index 60ef79ee..17d47678 100644 --- a/src/board/UBBoardController.cpp +++ b/src/board/UBBoardController.cpp @@ -1212,7 +1212,9 @@ void UBBoardController::ClearUndoStack() QGraphicsItem* item = itUniq.next(); UBGraphicsScene *scene = (UBGraphicsScene*)item->scene(); if(!scene) - delete item; + { + bool retCode = mActiveScene->deleteItem(item); + } } } diff --git a/src/frameworks/UBCoreGraphicsScene.cpp b/src/frameworks/UBCoreGraphicsScene.cpp index 4412f9b1..bcac6202 100644 --- a/src/frameworks/UBCoreGraphicsScene.cpp +++ b/src/frameworks/UBCoreGraphicsScene.cpp @@ -53,3 +53,16 @@ void UBCoreGraphicsScene::removeItem(QGraphicsItem* item, bool forceDelete) delete item; } } + +bool UBCoreGraphicsScene::deleteItem(QGraphicsItem* item) +{ + if(mItemsToDelete.contains(item)) + { + mItemsToDelete.remove(item); + delete item; + return true; + } + else + return false; +} + diff --git a/src/frameworks/UBCoreGraphicsScene.h b/src/frameworks/UBCoreGraphicsScene.h index fdeaae49..656f2a00 100644 --- a/src/frameworks/UBCoreGraphicsScene.h +++ b/src/frameworks/UBCoreGraphicsScene.h @@ -28,6 +28,9 @@ class UBCoreGraphicsScene : public QGraphicsScene virtual void removeItem(QGraphicsItem* item, bool forceDelete = false); + virtual bool deleteItem(QGraphicsItem* item); + + private: QSet mItemsToDelete; }; From 644c513352293ed144ddda4845b0adf97c2798e4 Mon Sep 17 00:00:00 2001 From: Anatoly Mihalchenko Date: Wed, 14 Dec 2011 17:10:04 +0300 Subject: [PATCH 06/20] SANKORE-409 --- src/gui/UBTeacherBarWidget.cpp | 12 ++++++++++++ src/gui/UBTeacherBarWidget.h | 2 ++ 2 files changed, 14 insertions(+) diff --git a/src/gui/UBTeacherBarWidget.cpp b/src/gui/UBTeacherBarWidget.cpp index ea8348b1..c3986972 100644 --- a/src/gui/UBTeacherBarWidget.cpp +++ b/src/gui/UBTeacherBarWidget.cpp @@ -62,6 +62,7 @@ UBTeacherBarWidget::UBTeacherBarWidget(QWidget *parent, const char *name):UBDock mpTitleLabel->setAlignment(Qt::AlignRight); mpTitle = new QLineEdit(mpContainer); mpTitle->setObjectName("DockPaletteWidgetLineEdit"); + connect(mpTitle, SIGNAL(textChanged(const QString&)), this, SLOT(onTitleTextChanged(const QString&))); mpTitleLayout = new QHBoxLayout(); mpTitleLayout->addWidget(mpTitleLabel, 0); mpTitleLayout->addWidget(mpTitle, 1); @@ -95,6 +96,7 @@ UBTeacherBarWidget::UBTeacherBarWidget(QWidget *parent, const char *name):UBDock mpEquipmentLabel->setAlignment(Qt::AlignRight); mpEquipment = new QLineEdit(mpContainer); mpEquipment->setObjectName("DockPaletteWidgetLineEdit"); + connect(mpEquipment, SIGNAL(textChanged(const QString&)), this, SLOT(onEquipmentTextChanged(const QString&))); mpEquipmentLayout = new QHBoxLayout(); mpEquipmentLayout->addWidget(mpEquipmentLabel, 0); mpEquipmentLayout->addWidget(mpEquipment, 1); @@ -319,6 +321,16 @@ void UBTeacherBarWidget::loadContent() mpAction3->setStudentText(nextInfos.action3Student); } +void UBTeacherBarWidget::onTitleTextChanged(const QString& text) +{ + mpTitle->setToolTip(text); +} + +void UBTeacherBarWidget::onEquipmentTextChanged(const QString& text) +{ + mpEquipment->setToolTip(text); +} + UBTeacherStudentAction::UBTeacherStudentAction(int actionNumber, QWidget *parent, const char *name):QWidget(parent) , mpActionLabel(NULL) , mpTeacherLabel(NULL) diff --git a/src/gui/UBTeacherBarWidget.h b/src/gui/UBTeacherBarWidget.h index 555b6ef6..3f18bcbe 100644 --- a/src/gui/UBTeacherBarWidget.h +++ b/src/gui/UBTeacherBarWidget.h @@ -48,6 +48,8 @@ private slots: void saveContent(); void loadContent(); void onValueChanged(); + void onTitleTextChanged(const QString& text); + void onEquipmentTextChanged(const QString& text); private: void populateCombos(); From e2539163497e8396112b7fb1d020ddd226d13ca6 Mon Sep 17 00:00:00 2001 From: Anatoly Mihalchenko Date: Wed, 14 Dec 2011 17:22:32 +0300 Subject: [PATCH 07/20] Compilation error fix --- src/domain/UBGraphicsScene.cpp | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/domain/UBGraphicsScene.cpp b/src/domain/UBGraphicsScene.cpp index 635337a8..bd3b2b71 100644 --- a/src/domain/UBGraphicsScene.cpp +++ b/src/domain/UBGraphicsScene.cpp @@ -60,7 +60,7 @@ #include "UBGraphicsStroke.h" #include "core/memcheck.h" -#include "qtlogger.h" +//#include "qtlogger.h" qreal UBGraphicsScene::backgroundLayerStart = -20000000.0; qreal UBGraphicsScene::objectLayerStart = -10000000.0; @@ -140,8 +140,8 @@ UBGraphicsScene::UBGraphicsScene(UBDocumentProxy* parent) } connect(this, SIGNAL(selectionChanged()), this, SLOT(selectionChangedProcessing())); - QtLogger::logger().start("/home/ilia/Documents/tmp/2/log.txt"); - QtLogger::logger().finish(); + //QtLogger::logger().start("/home/ilia/Documents/tmp/2/log.txt"); + //QtLogger::logger().finish(); } UBGraphicsScene::~UBGraphicsScene() @@ -155,15 +155,15 @@ UBGraphicsScene::~UBGraphicsScene() void UBGraphicsScene::selectionChangedProcessing() { - QtLogger::logger().start("/home/ilia/Documents/tmp/2/log.txt"); - QtLogger::logger() << "selection processing started\n" << endl; + //QtLogger::logger().start("/home/ilia/Documents/tmp/2/log.txt"); + //QtLogger::logger() << "selection processing started\n" << endl; if (selectedItems().count()) UBApplication::showMessage("ZValue is " + QString::number(selectedItems().first()->zValue(), 'f')); QList allItemsList = items(); - QtLogger::logger() << "=====all items searching...======" << endl; + //QtLogger::logger() << "=====all items searching...======" << endl; qreal maxZ = 0.; for( int i = 0; i < allItemsList.size(); i++ ) { @@ -179,24 +179,24 @@ void UBGraphicsScene::selectionChangedProcessing() nextItem->setZValue(nextItem->data(UBGraphicsItemData::ItemOwnZValue).toReal()); // nextItem->setZValue(qreal(1)); - QtLogger::logger() << "own Z " << QString::number(nextItem->data(UBGraphicsItemData::ItemOwnZValue).toReal(), 'f') - << " next Z " << QString::number(nextItem->zValue(), 'f')<< endl; + //QtLogger::logger() << "own Z " << QString::number(nextItem->data(UBGraphicsItemData::ItemOwnZValue).toReal(), 'f') + // << " next Z " << QString::number(nextItem->zValue(), 'f')<< endl; // qDebug() << QString(" %1 ").arg(i) << QString(" %1 ").arg(zValue); } QList selItemsList = selectedItems(); - QtLogger::logger() << "=====selected items searching...======" << endl; + //QtLogger::logger() << "=====selected items searching...======" << endl; // QGraphicsItem *nextItem; for( int i = 0; i < selItemsList.size(); i++ ) { QGraphicsItem *nextItem = selItemsList.at(i); - QtLogger::logger() << "own Z " << QString::number(nextItem->data(UBGraphicsItemData::ItemOwnZValue).toReal(), 'f') - << " next Z " << QString::number(nextItem->zValue(), 'f')<< endl; + //QtLogger::logger() << "own Z " << QString::number(nextItem->data(UBGraphicsItemData::ItemOwnZValue).toReal(), 'f') + // << " next Z " << QString::number(nextItem->zValue(), 'f')<< endl; // qreal zValue = nextItem->zValue(); nextItem->setZValue(maxZ + 0.0001); // qDebug() << QString(" >>> %1 <<< ").arg(i) << QString(" >>> %1 <<< ").arg(zValue); } - QtLogger::logger() << "\nselection processing finished" << endl; - QtLogger::logger().finish(); + //QtLogger::logger() << "\nselection processing finished" << endl; + //QtLogger::logger().finish(); } // MARK: - From e943854cff224fed06aa268085098ba8215dac8d Mon Sep 17 00:00:00 2001 From: Ivan Ilin Date: Wed, 14 Dec 2011 16:26:07 +0200 Subject: [PATCH 08/20] Z-value is now working correct --- src/adaptors/UBSvgSubsetAdaptor.cpp | 3 +- src/domain/UBGraphicsDelegateFrame.cpp | 3 ++ src/domain/UBGraphicsItemDelegate.cpp | 6 ++-- .../UBGraphicsItemTransformUndoCommand.cpp | 6 ++-- src/domain/UBGraphicsScene.cpp | 34 +++++++++++-------- 5 files changed, 29 insertions(+), 23 deletions(-) diff --git a/src/adaptors/UBSvgSubsetAdaptor.cpp b/src/adaptors/UBSvgSubsetAdaptor.cpp index 660a2f5a..6533e06a 100644 --- a/src/adaptors/UBSvgSubsetAdaptor.cpp +++ b/src/adaptors/UBSvgSubsetAdaptor.cpp @@ -107,7 +107,8 @@ QMatrix UBSvgSubsetAdaptor::fromSvgTransform(const QString& transform) static bool itemZIndexComp(const QGraphicsItem* item1, const QGraphicsItem* item2) { - return item1->zValue() < item2->zValue(); +// return item1->zValue() < item2->zValue(); + return item1->data(UBGraphicsItemData::ItemOwnZValue).toReal() < item2->data(UBGraphicsItemData::ItemOwnZValue).toReal(); } diff --git a/src/domain/UBGraphicsDelegateFrame.cpp b/src/domain/UBGraphicsDelegateFrame.cpp index a6f17114..393353d1 100644 --- a/src/domain/UBGraphicsDelegateFrame.cpp +++ b/src/domain/UBGraphicsDelegateFrame.cpp @@ -531,6 +531,9 @@ void UBGraphicsDelegateFrame::positionHandles() { setBrush(QBrush(UBSettings::paletteColor)); } + + //make frame interact like delegated item when selected. Maybe should be deleted if selection logic will change + setZValue(delegated()->zValue()); } diff --git a/src/domain/UBGraphicsItemDelegate.cpp b/src/domain/UBGraphicsItemDelegate.cpp index 910d001c..ba20e493 100644 --- a/src/domain/UBGraphicsItemDelegate.cpp +++ b/src/domain/UBGraphicsItemDelegate.cpp @@ -93,8 +93,8 @@ void UBGraphicsItemDelegate::init() foreach(DelegateButton* button, mButtons) { button->hide(); - button->setZValue(UBGraphicsScene::toolLayerStart + 2); -// UBGraphicsItem::assignZValue(button, UBGraphicsScene::toolLayerStart + 2); +// button->setZValue(UBGraphicsScene::toolLayerStart + 2); + UBGraphicsItem::assignZValue(button, UBGraphicsScene::toolLayerStart + 2); button->setFlag(QGraphicsItem::ItemIsSelectable, true); } } @@ -323,12 +323,10 @@ void UBGraphicsItemDelegate::lock(bool locked) if (locked) { mDelegated->setData(UBGraphicsItemData::ItemLocked, QVariant(true)); - qDebug() << "item's data is called for locked" << mDelegated->data(UBGraphicsItemData::ItemLocked); } else { mDelegated->setData(UBGraphicsItemData::ItemLocked, QVariant(false)); - qDebug() << "item's data is called for unlocked" << mDelegated->data(UBGraphicsItemData::ItemLocked); } mDelegated->update(); diff --git a/src/domain/UBGraphicsItemTransformUndoCommand.cpp b/src/domain/UBGraphicsItemTransformUndoCommand.cpp index e883c8e9..f21355bd 100644 --- a/src/domain/UBGraphicsItemTransformUndoCommand.cpp +++ b/src/domain/UBGraphicsItemTransformUndoCommand.cpp @@ -49,7 +49,7 @@ void UBGraphicsItemTransformUndoCommand::undo() { mItem->setPos(mPreviousPosition); mItem->setTransform(mPreviousTransform); -// mItem->setZValue(mPreviousZValue); + mItem->setZValue(mPreviousZValue); // UBGraphicsItem::assignZValue(mItem, mPreviousZValue); UBResizableGraphicsItem* resizableItem = dynamic_cast(mItem); @@ -62,9 +62,9 @@ void UBGraphicsItemTransformUndoCommand::redo() { mItem->setPos(mCurrentPosition); mItem->setTransform(mCurrentTransform); -// mItem->setZValue(mCurrentZValue); + mItem->setZValue(mCurrentZValue); - UBGraphicsItem::assignZValue(mItem, /*mCurrentZValue*/mItem->data(UBGraphicsItemData::ItemOwnZValue).toReal()); +// UBGraphicsItem::assignZValue(mItem, /*mCurrentZValue*/mItem->data(UBGraphicsItemData::ItemOwnZValue).toReal()); UBResizableGraphicsItem* resizableItem = dynamic_cast(mItem); diff --git a/src/domain/UBGraphicsScene.cpp b/src/domain/UBGraphicsScene.cpp index b5a59ed8..635337a8 100644 --- a/src/domain/UBGraphicsScene.cpp +++ b/src/domain/UBGraphicsScene.cpp @@ -164,6 +164,7 @@ void UBGraphicsScene::selectionChangedProcessing() QList allItemsList = items(); QtLogger::logger() << "=====all items searching...======" << endl; + qreal maxZ = 0.; for( int i = 0; i < allItemsList.size(); i++ ) { QGraphicsItem *nextItem = allItemsList.at(i); @@ -173,27 +174,29 @@ void UBGraphicsScene::selectionChangedProcessing() continue; //Temporary stub end (sankore 360) // qreal zValue = nextItem->zValue(); -// nextItem->setZValue(nextItem->data(UBGraphicsItemData::ItemOwnZValue).toReal()); - nextItem->setZValue(1); + if (nextItem->zValue() > maxZ) + maxZ = nextItem->zValue(); + + nextItem->setZValue(nextItem->data(UBGraphicsItemData::ItemOwnZValue).toReal()); +// nextItem->setZValue(qreal(1)); QtLogger::logger() << "own Z " << QString::number(nextItem->data(UBGraphicsItemData::ItemOwnZValue).toReal(), 'f') << " next Z " << QString::number(nextItem->zValue(), 'f')<< endl; // qDebug() << QString(" %1 ").arg(i) << QString(" %1 ").arg(zValue); } QList selItemsList = selectedItems(); QtLogger::logger() << "=====selected items searching...======" << endl; - QGraphicsItem *nextItem; +// QGraphicsItem *nextItem; for( int i = 0; i < selItemsList.size(); i++ ) { - nextItem = selItemsList.at(i); + QGraphicsItem *nextItem = selItemsList.at(i); QtLogger::logger() << "own Z " << QString::number(nextItem->data(UBGraphicsItemData::ItemOwnZValue).toReal(), 'f') << " next Z " << QString::number(nextItem->zValue(), 'f')<< endl; // qreal zValue = nextItem->zValue(); - nextItem->setZValue(2); + nextItem->setZValue(maxZ + 0.0001); // qDebug() << QString(" >>> %1 <<< ").arg(i) << QString(" >>> %1 <<< ").arg(zValue); } QtLogger::logger() << "\nselection processing finished" << endl; QtLogger::logger().finish(); - } // MARK: - @@ -424,23 +427,23 @@ void UBGraphicsScene::drawEraser(const QPointF &pPoint, bool isFirstDraw) if(isFirstDraw) { + qreal maxZ = 0.; QList allItemsList = items(); for( int i = 0; i < allItemsList.size(); i++ ) { QGraphicsItem *nextItem = allItemsList.at(i); qreal zValue = nextItem->zValue(); - nextItem->setZValue(qreal(1)); - qDebug() << QString(" %1 ").arg(i) << QString(" %1 ").arg(zValue); + if (zValue > maxZ) + maxZ = zValue; + nextItem->setZValue(nextItem->data(UBGraphicsItemData::ItemOwnZValue).toReal()); } - mEraser->setZValue(2); + mEraser->setZValue(maxZ + 0.0001); mEraser->show(); } - } } - void UBGraphicsScene::drawPointer(const QPointF &pPoint, bool isFirstDraw) { qreal pointerDiameter = UBSettings::pointerDiameter / UBApplication::boardController->currentZoom(); @@ -456,19 +459,20 @@ void UBGraphicsScene::drawPointer(const QPointF &pPoint, bool isFirstDraw) if(isFirstDraw) { + qreal maxZ = 0.; QList allItemsList = items(); for( int i = 0; i < allItemsList.size(); i++ ) { QGraphicsItem *nextItem = allItemsList.at(i); qreal zValue = nextItem->zValue(); - nextItem->setZValue(qreal(1)); - qDebug() << QString(" %1 ").arg(i) << QString(" %1 ").arg(zValue); + if (zValue > maxZ) + maxZ = zValue; + nextItem->setZValue(nextItem->data(UBGraphicsItemData::ItemOwnZValue).toReal()); } - mPointer->setZValue(2); + mPointer->setZValue(maxZ + 0.0001); mPointer->show(); } - } } From a34fcbd5904140a7f74428b2ae248c6943351f69 Mon Sep 17 00:00:00 2001 From: Ivan Ilin Date: Thu, 15 Dec 2011 09:50:13 +0200 Subject: [PATCH 09/20] no any qtlogger any more --- src/domain/UBGraphicsScene.cpp | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/src/domain/UBGraphicsScene.cpp b/src/domain/UBGraphicsScene.cpp index 635337a8..dd0790ad 100644 --- a/src/domain/UBGraphicsScene.cpp +++ b/src/domain/UBGraphicsScene.cpp @@ -60,7 +60,6 @@ #include "UBGraphicsStroke.h" #include "core/memcheck.h" -#include "qtlogger.h" qreal UBGraphicsScene::backgroundLayerStart = -20000000.0; qreal UBGraphicsScene::objectLayerStart = -10000000.0; @@ -140,8 +139,6 @@ UBGraphicsScene::UBGraphicsScene(UBDocumentProxy* parent) } connect(this, SIGNAL(selectionChanged()), this, SLOT(selectionChangedProcessing())); - QtLogger::logger().start("/home/ilia/Documents/tmp/2/log.txt"); - QtLogger::logger().finish(); } UBGraphicsScene::~UBGraphicsScene() @@ -155,15 +152,11 @@ UBGraphicsScene::~UBGraphicsScene() void UBGraphicsScene::selectionChangedProcessing() { - QtLogger::logger().start("/home/ilia/Documents/tmp/2/log.txt"); - QtLogger::logger() << "selection processing started\n" << endl; - - if (selectedItems().count()) + if (selectedItems().count()) UBApplication::showMessage("ZValue is " + QString::number(selectedItems().first()->zValue(), 'f')); QList allItemsList = items(); - QtLogger::logger() << "=====all items searching...======" << endl; qreal maxZ = 0.; for( int i = 0; i < allItemsList.size(); i++ ) { @@ -179,24 +172,15 @@ void UBGraphicsScene::selectionChangedProcessing() nextItem->setZValue(nextItem->data(UBGraphicsItemData::ItemOwnZValue).toReal()); // nextItem->setZValue(qreal(1)); - QtLogger::logger() << "own Z " << QString::number(nextItem->data(UBGraphicsItemData::ItemOwnZValue).toReal(), 'f') - << " next Z " << QString::number(nextItem->zValue(), 'f')<< endl; -// qDebug() << QString(" %1 ").arg(i) << QString(" %1 ").arg(zValue); } QList selItemsList = selectedItems(); - QtLogger::logger() << "=====selected items searching...======" << endl; // QGraphicsItem *nextItem; for( int i = 0; i < selItemsList.size(); i++ ) { QGraphicsItem *nextItem = selItemsList.at(i); - QtLogger::logger() << "own Z " << QString::number(nextItem->data(UBGraphicsItemData::ItemOwnZValue).toReal(), 'f') - << " next Z " << QString::number(nextItem->zValue(), 'f')<< endl; -// qreal zValue = nextItem->zValue(); nextItem->setZValue(maxZ + 0.0001); // qDebug() << QString(" >>> %1 <<< ").arg(i) << QString(" >>> %1 <<< ").arg(zValue); } - QtLogger::logger() << "\nselection processing finished" << endl; - QtLogger::logger().finish(); } // MARK: - From 26e1f11a613ca5f0a7509ce4cd7cdabfdf23f7d5 Mon Sep 17 00:00:00 2001 From: Anatoly Mihalchenko Date: Thu, 15 Dec 2011 14:14:16 +0300 Subject: [PATCH 10/20] SANKORE-300 / SANKORE-332 fix crash while processing undo commands with types not equal GraphicsItem --- src/board/UBBoardController.cpp | 15 ++++-- src/domain/UBAbstractUndoCommand.cpp | 40 ++++++++++++++++ src/domain/UBAbstractUndoCommand.h | 46 +++++++++++++++++++ src/domain/UBDocumentUndoCommand.h | 6 ++- .../UBGraphicsItemTransformUndoCommand.h | 5 +- src/domain/UBGraphicsItemUndoCommand.h | 6 ++- src/domain/UBGraphicsTextItemUndoCommand.h | 5 +- src/domain/UBPageSizeUndoCommand.h | 5 +- 8 files changed, 118 insertions(+), 10 deletions(-) create mode 100644 src/domain/UBAbstractUndoCommand.cpp create mode 100644 src/domain/UBAbstractUndoCommand.h diff --git a/src/board/UBBoardController.cpp b/src/board/UBBoardController.cpp index ee9bfe9e..d18b53ac 100644 --- a/src/board/UBBoardController.cpp +++ b/src/board/UBBoardController.cpp @@ -66,6 +66,7 @@ #include "UBBoardPaletteManager.h" #include "core/memcheck.h" +//#include UBBoardController::UBBoardController(UBMainWindow* mainWindow) : QObject(mainWindow->centralWidget()) @@ -1176,11 +1177,16 @@ void UBBoardController::setActiveDocumentScene(UBDocumentProxy* pDocumentProxy, void UBBoardController::ClearUndoStack() { QSet uniqueItems; - QUndoStack *stack = UBApplication::undoStack; // go through all stack command - for(int i = 0; i < stack->count(); i++) + int count = UBApplication::undoStack->count(); + for(int i = 0; i < UBApplication::undoStack->count(); i++) { - UBGraphicsItemUndoCommand *cmd = (UBGraphicsItemUndoCommand*)stack->command(i); + + UBAbstractUndoCommand *abstractCmd = (UBAbstractUndoCommand*)UBApplication::undoStack->command(i); + if(abstractCmd->getType() != UBAbstractUndoCommand::undotype_GRAPHICITEM) + continue; + + UBGraphicsItemUndoCommand *cmd = (UBGraphicsItemUndoCommand*)UBApplication::undoStack->command(i); // go through all added and removed objects, for create list of unique objects QSetIterator itAdded(cmd->GetAddedList()); @@ -1201,7 +1207,8 @@ void UBBoardController::ClearUndoStack() } // clear stack, and command list - stack->clear(); + UBApplication::undoStack->clear(); + count = UBApplication::undoStack->count(); // go through all unique items, and check, ot on scene, or not. // if not on scene, than item can be deleted diff --git a/src/domain/UBAbstractUndoCommand.cpp b/src/domain/UBAbstractUndoCommand.cpp new file mode 100644 index 00000000..fe623acc --- /dev/null +++ b/src/domain/UBAbstractUndoCommand.cpp @@ -0,0 +1,40 @@ +/* + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "UBAbstractUndoCommand.h" + +UBAbstractUndoCommand::UBAbstractUndoCommand() +{ + // NOOP +} + +UBAbstractUndoCommand::~UBAbstractUndoCommand() +{ + // NOOP +} + + +void UBAbstractUndoCommand::undo() +{ + // NOOP +} + +void UBAbstractUndoCommand::redo() +{ + // NOOP +} + +//void UBAbstractUndoCommand::UndoType getType(UndoType type); + diff --git a/src/domain/UBAbstractUndoCommand.h b/src/domain/UBAbstractUndoCommand.h new file mode 100644 index 00000000..85dfcc11 --- /dev/null +++ b/src/domain/UBAbstractUndoCommand.h @@ -0,0 +1,46 @@ +/* + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef UBABSTRACTUNDOCOMMAND_H_ +#define UBABSTRACTUNDOCOMMAND_H_ + +#include + +class UBAbstractUndoCommand : public QUndoCommand +{ + public: + + UBAbstractUndoCommand(); + ~UBAbstractUndoCommand(); + + enum UndoType : int + { + undotype_UNKNOWN = 0, + undotype_DOCUMENT = 1, + undotype_GRAPHICITEMTRANSFORM = 2, + undotype_GRAPHICITEM = 3, + undotype_GRAPHICTEXTITEM = 4, + undotype_PAGESIZE = 5, + }; + + virtual UndoType getType() { return undotype_UNKNOWN; }; + + protected: + virtual void undo(); + virtual void redo(); + +}; + +#endif /* UBABSTRACTUNDOCOMMAND_H_ */ diff --git a/src/domain/UBDocumentUndoCommand.h b/src/domain/UBDocumentUndoCommand.h index a5f61d9a..b6b1785a 100644 --- a/src/domain/UBDocumentUndoCommand.h +++ b/src/domain/UBDocumentUndoCommand.h @@ -17,18 +17,20 @@ #define UBDOCUMENTUNDOCOMMAND_H_ #include +#include "UBAbstractUndoCommand.h" class UBDocumentProxy; class UBGraphicsScene; - -class UBDocumentUndoCommand: public QUndoCommand +class UBDocumentUndoCommand: public UBAbstractUndoCommand { public: UBDocumentUndoCommand(UBDocumentProxy* pDocument, const QList& pOldScenes, const QList& pNewScenes, const int& pActiveSceneIndex); virtual ~UBDocumentUndoCommand(); + virtual UndoType getType() { return undotype_DOCUMENT; }; + protected: virtual void undo(); diff --git a/src/domain/UBGraphicsItemTransformUndoCommand.h b/src/domain/UBGraphicsItemTransformUndoCommand.h index 67b57dd1..2f4538d7 100644 --- a/src/domain/UBGraphicsItemTransformUndoCommand.h +++ b/src/domain/UBGraphicsItemTransformUndoCommand.h @@ -19,9 +19,10 @@ #include #include "UBResizableGraphicsItem.h" +#include "UBAbstractUndoCommand.h" -class UBGraphicsItemTransformUndoCommand : public QUndoCommand +class UBGraphicsItemTransformUndoCommand : public UBAbstractUndoCommand { public: UBGraphicsItemTransformUndoCommand(QGraphicsItem* pItem, @@ -31,6 +32,8 @@ class UBGraphicsItemTransformUndoCommand : public QUndoCommand const QSizeF& prevSize = QSizeF()); virtual ~UBGraphicsItemTransformUndoCommand(); + virtual UndoType getType() { return undotype_GRAPHICITEMTRANSFORM; }; + protected: virtual void undo(); virtual void redo(); diff --git a/src/domain/UBGraphicsItemUndoCommand.h b/src/domain/UBGraphicsItemUndoCommand.h index 84711bd4..d3230893 100644 --- a/src/domain/UBGraphicsItemUndoCommand.h +++ b/src/domain/UBGraphicsItemUndoCommand.h @@ -17,11 +17,13 @@ #define UBGRAPHICSITEMUNDOCOMMAND_H_ #include +#include "UBAbstractUndoCommand.h" + class UBGraphicsScene; -class UBGraphicsItemUndoCommand : public QUndoCommand +class UBGraphicsItemUndoCommand : public UBAbstractUndoCommand { public: UBGraphicsItemUndoCommand(UBGraphicsScene* pScene, const QSet& pRemovedItems, @@ -35,6 +37,8 @@ class UBGraphicsItemUndoCommand : public QUndoCommand QSet GetAddedList() { return mAddedItems; }; QSet GetRemovedList() { return mRemovedItems; }; + virtual UndoType getType() { return undotype_GRAPHICITEM; }; + protected: virtual void undo(); virtual void redo(); diff --git a/src/domain/UBGraphicsTextItemUndoCommand.h b/src/domain/UBGraphicsTextItemUndoCommand.h index 0198d8b5..9f9a610a 100644 --- a/src/domain/UBGraphicsTextItemUndoCommand.h +++ b/src/domain/UBGraphicsTextItemUndoCommand.h @@ -17,16 +17,19 @@ #define UBGRAPHICSTEXTITEMUNDOCOMMAND_H_ #include +#include "UBAbstractUndoCommand.h" #include "UBGraphicsTextItem.h" -class UBGraphicsTextItemUndoCommand: public QUndoCommand +class UBGraphicsTextItemUndoCommand : public UBAbstractUndoCommand { public: UBGraphicsTextItemUndoCommand(UBGraphicsTextItem *textItem); virtual ~UBGraphicsTextItemUndoCommand(); + virtual UndoType getType() { return undotype_GRAPHICTEXTITEM; }; + protected: virtual void undo(); virtual void redo(); diff --git a/src/domain/UBPageSizeUndoCommand.h b/src/domain/UBPageSizeUndoCommand.h index 78cf98b8..ad295d49 100644 --- a/src/domain/UBPageSizeUndoCommand.h +++ b/src/domain/UBPageSizeUndoCommand.h @@ -17,16 +17,19 @@ #define UBPageSizeUndoCommand_H_ #include +#include "UBAbstractUndoCommand.h" class UBGraphicsScene; -class UBPageSizeUndoCommand : public QUndoCommand +class UBPageSizeUndoCommand : public UBAbstractUndoCommand { public: UBPageSizeUndoCommand(UBGraphicsScene* pScene, const QSize& previousSize, const QSize& newSize); virtual ~UBPageSizeUndoCommand(); + virtual UndoType getType() { return undotype_PAGESIZE; }; + protected: virtual void undo(); virtual void redo(); From e4c2afe65ff3f13f473beea3dc1b0b7df805d117 Mon Sep 17 00:00:00 2001 From: Ivan Ilin Date: Thu, 15 Dec 2011 16:03:57 +0200 Subject: [PATCH 11/20] UBAbstractUndoCommand now in .pri --- src/domain/UBAbstractUndoCommand.h | 6 +++--- src/domain/domain.pri | 6 ++++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/domain/UBAbstractUndoCommand.h b/src/domain/UBAbstractUndoCommand.h index 85dfcc11..3276284a 100644 --- a/src/domain/UBAbstractUndoCommand.h +++ b/src/domain/UBAbstractUndoCommand.h @@ -25,17 +25,17 @@ class UBAbstractUndoCommand : public QUndoCommand UBAbstractUndoCommand(); ~UBAbstractUndoCommand(); - enum UndoType : int + enum UndoType { undotype_UNKNOWN = 0, undotype_DOCUMENT = 1, undotype_GRAPHICITEMTRANSFORM = 2, undotype_GRAPHICITEM = 3, undotype_GRAPHICTEXTITEM = 4, - undotype_PAGESIZE = 5, + undotype_PAGESIZE = 5 }; - virtual UndoType getType() { return undotype_UNKNOWN; }; + virtual UndoType getType() { return undotype_UNKNOWN; } protected: virtual void undo(); diff --git a/src/domain/domain.pri b/src/domain/domain.pri index fbff6174..e3653576 100644 --- a/src/domain/domain.pri +++ b/src/domain/domain.pri @@ -21,7 +21,8 @@ HEADERS += src/domain/UBGraphicsScene.h \ src/domain/UBGraphicsStroke.h \ src/domain/UBGraphicsMediaItem.h \ src/domain/UBGraphicsAudioItem.h \ - src/domain/UBGraphicsAudioItemDelegate.h + src/domain/UBGraphicsAudioItemDelegate.h \ + src/domain/UBAbstractUndoCommand.h HEADERS += src/domain/UBGraphicsItemDelegate.h \ src/domain/UBGraphicsVideoItemDelegate.h \ @@ -52,7 +53,8 @@ SOURCES += src/domain/UBGraphicsScene.cpp \ src/domain/UBGraphicsStroke.cpp \ src/domain/UBGraphicsMediaItem.cpp \ src/domain/UBGraphicsAudioItem.cpp \ - src/domain/UBGraphicsAudioItemDelegate.cpp + src/domain/UBGraphicsAudioItemDelegate.cpp \ + src/domain/UBAbstractUndoCommand.cpp SOURCES += src/domain/UBGraphicsItemDelegate.cpp \ src/domain/UBGraphicsVideoItemDelegate.cpp \ From e8ce957c53b0664a416d3b8b1b7517ee5cde88d9 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 15 Dec 2011 17:09:26 +0200 Subject: [PATCH 12/20] some opgrades of interactivities --- .../BlackYellow.wgt/config.xml | 16 + .../BlackYellow.wgt/css/basic.css | 506 ++++++++++++++++++ .../BlackYellow.wgt/icon.png | Bin 0 -> 1053 bytes .../BlackYellow.wgt/images/greySquare.png | Bin 0 -> 451 bytes .../BlackYellow.wgt/images/greySquare2.png | Bin 0 -> 214 bytes .../BlackYellow.wgt/images/icon-close.png | Bin 0 -> 1507 bytes .../BlackYellow.wgt/images/popupBack.png | Bin 0 -> 861 bytes .../BlackYellow.wgt/index.html | 26 + .../BlackYellow.wgt/scripts/blackYellow.js | 417 +++++++++++++++ .../scripts/jquery-1.6.2.min.js | 18 + .../scripts/jquery.disable.text.select.js | 62 +++ .../BlackYellow.wgt/scripts/languages.js | 30 ++ .../template/scripts/template2.js | 2 +- .../template/scripts/template2.js | 8 +- 14 files changed, 1081 insertions(+), 4 deletions(-) create mode 100644 resources/library/sankoreInteractivities/BlackYellow.wgt/config.xml create mode 100644 resources/library/sankoreInteractivities/BlackYellow.wgt/css/basic.css create mode 100644 resources/library/sankoreInteractivities/BlackYellow.wgt/icon.png create mode 100644 resources/library/sankoreInteractivities/BlackYellow.wgt/images/greySquare.png create mode 100644 resources/library/sankoreInteractivities/BlackYellow.wgt/images/greySquare2.png create mode 100644 resources/library/sankoreInteractivities/BlackYellow.wgt/images/icon-close.png create mode 100644 resources/library/sankoreInteractivities/BlackYellow.wgt/images/popupBack.png create mode 100644 resources/library/sankoreInteractivities/BlackYellow.wgt/index.html create mode 100644 resources/library/sankoreInteractivities/BlackYellow.wgt/scripts/blackYellow.js create mode 100644 resources/library/sankoreInteractivities/BlackYellow.wgt/scripts/jquery-1.6.2.min.js create mode 100644 resources/library/sankoreInteractivities/BlackYellow.wgt/scripts/jquery.disable.text.select.js create mode 100644 resources/library/sankoreInteractivities/BlackYellow.wgt/scripts/languages.js diff --git a/resources/library/sankoreInteractivities/BlackYellow.wgt/config.xml b/resources/library/sankoreInteractivities/BlackYellow.wgt/config.xml new file mode 100644 index 00000000..0d81a76c --- /dev/null +++ b/resources/library/sankoreInteractivities/BlackYellow.wgt/config.xml @@ -0,0 +1,16 @@ + + + + Choisir + Mnemis SA + Choisir widget + + + diff --git a/resources/library/sankoreInteractivities/BlackYellow.wgt/css/basic.css b/resources/library/sankoreInteractivities/BlackYellow.wgt/css/basic.css new file mode 100644 index 00000000..a01e8aad --- /dev/null +++ b/resources/library/sankoreInteractivities/BlackYellow.wgt/css/basic.css @@ -0,0 +1,506 @@ +body{ + width: 100%; + padding: 0; + margin: 0 auto; + height: auto; + background-color: #666; + overflow: hidden; +} + +.toggleButton, .addButton{ + width: 20px; + height: 28px; + border: none; + background-image: url(../images/greySquare.png); + font-weight: bold; + font-family: Verdana; + color: yellow; + cursor: pointer; + -webkit-border-top-left-radius: 5px; + -webkit-border-bottom-left-radius: 5px; + border-top-left-radius: 5px; + border-bottom-left-radius: 5px; +} + +.buttonDiv, .addButtonDiv{ + position: fixed; + float: right; + z-index: 1; +} + +.addButtonDiv{ + display: none; +} + +.leftDiv{ + width: 50%; + float: left; + background-color: black; + -webkit-border-top-left-radius: 3px; + -webkit-border-bottom-left-radius: 3px; + border-top-left-radius: 3px; + border-bottom-left-radius: 3px; +} + +.rightDiv{ + width: 50%; + float: right; + background-color: yellow; + -webkit-border-top-right-radius: 3px; + -webkit-border-bottom-right-radius: 3px; + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; +} + +.shadowDiv{ + width: 100%; + display: none; + opacity: 0.7; + background-color: black; + -webkit-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + border-radius: 3px; + z-index: 100; +} + +.popupBack{ + width: 360px; + height: 138px; + position: absolute; + background-image: url(../images/popupBack.png); + background-repeat: repeat; + -webkit-border-radius: 10px; + -webkit-border-radius: 10px; + border-radius: 10px; + border-radius: 10px; + display: none; + z-index: 500; +} + +.popupContainers{ + float: left; + width: 98%; + height: 36px; + padding: 5px 3px 5px 0; + overflow: hidden; +} + +.popupLabels{ + color: yellow; + margin: 0 5px; +} + +.expresionInput{ + float: right; + width: 70%; + border: none; + font-family: Verdana,Arial,Helvetica,sans-serif; + background-color: #ffc; + -webkit-border-radius: 5px; + -webkit-border-radius: 5px; + border-radius: 5px; + border-radius: 5px; +} + +.popupButtons{ + float: right; + width: 74px; + height: 28px; + margin: 4px 5px; + border: none; + background-image: url(../images/greySquare2.png); + font-family: Verdana; + color: yellow; + cursor: pointer; + -webkit-border-radius: 5px; + -webkit-border-radius: 5px; + border-radius: 5px; + border-radius: 5px; +} + +.readyTask{ + margin: 2px; + padding: 2px; + width: 100%; + height: 100%; + overflow: hidden; + z-index: 100; +} + +.taskContainer{ + width: 96%; + padding: 2px; + float: left; + text-align: center; + font-family: Verdana,Arial,Helvetica,sans-serif; + font-weight: bold; +} + +.editContainer{ + position: absolute; + border: 5px solid #c7c7c7; + -webkit-border-radius: 5px; + -webkit-border-radius: 5px; + border-radius: 5px; + border-radius: 5px; +} + +.closeItem{ + width: 30px; + height: 30px; + position: absolute; + background-image: url(../images/icon-close.png); + right: -15px; + top: -15px; +} + +.rightResize{ + width: 10px; + height: 65%; + cursor: e-resize; + position: absolute; + background: none; + right: -10px; + top: 20%; +} + +.bottomResize{ + width: 65%; + height: 10px; + cursor: n-resize; + position: absolute; + background: none; + bottom: -10px; + left: 20%; +} +/* +.addQstDiv{ + float: left; + padding: 5px; + margin: 2px; + font-family: Verdana,Arial,Helvetica,sans-serif; + font-size: large; +} + +.addQstButton{ + margin: 0; + border: none; + background: none; + color: #99ccff; + cursor: pointer; +} + +#addQsqSpan1{ + font-size: 30px; + margin-right: 10px !important; +} + +.qstDiv{ + width: 90%; + margin: 2px auto; + padding: 5px; + float: left; + font-family: Verdana,Arial,Helvetica,sans-serif; +} + +.qstDivDisplay{ + width: 90%; + margin: 5px 5%; + padding: 5px; + float: left; + font-family: Verdana,Arial,Helvetica,sans-serif; + border: 2px solid #cccccc; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + border-radius: 5px; + -moz-box-shadow: #dadada -1px 0 4px; + -webkit-box-shadow: #dadada -1px 0 4px; + box-shadow: #dadada -1px 0 4px; +} + +.spanOptConn{ + float: left; + width: 100%; +} + +.qstNumber{ + float: left; + font-size: 30px; + margin-left: 10px !important; + color: #00C6FF; +} + +.qstOptions{ + float: right; +} + +.changeOptions{ + border: none; + background-image: url(../images/grayClose.png); + background-color: white; + background-repeat: no-repeat; + background-position: 0 50%; + width: auto; + padding-left: 18px; + color: #00C6FF; + cursor: pointer; +} + +.applyChanges{ + border: none; + background-image: url(../images/blueClose.png); + background-color: white; + background-repeat: no-repeat; + background-position: 0 50%; + width: auto; + padding-left: 18px; + color: #00C6FF; + cursor: pointer; +} + +.qstDelete{ + border: none; + background-image: url(../images/boldClose.png); + background-color: white; + background-repeat: no-repeat; + background-position: 0 50%; + width: auto; + padding-left: 28px; + line-height: 35px; + cursor: pointer; +} + +.qstContent{ + float: left; + padding: 3px; + margin-left: 10px; + margin-bottom: 10px; + width: 95%; + font-family: Verdana,Arial,Helvetica,sans-serif; + font-size: small; + border: 3px solid #ccc; + -webkit-border-radius: 5px; + border-radius: 5px; + -moz-box-shadow: #dadada -1px 0 4px; + -webkit-box-shadow: #dadada -1px 0 4px; + box-shadow: #dadada -1px 0 4px; +} + +.qstContentDisplay{ + float: left; + padding: 5px; + margin: 10px; + width: 100%; + font-family: Verdana,Arial,Helvetica,sans-serif; + color:#333333; +} + +.ansDiv{ + float: left; + margin-left: 100px; + width: 80%; +} + +.ansAdd{ + border: none; + background: url(../images/blueClose.png) -0px -0px no-repeat; + background-color: white; + width: auto; + padding-left: 20px; + line-height: 24px; + color: #99ccff; + cursor: pointer; +} + +.newAnswer{ + float: left; + width: 100%; + margin: 3px; + -webkit-border-radius: 5px; + border-radius: 5px; +} + +.ansSpan{ + border: none; + background-color: white; + color: #00C6FF; + font-size: 14px; + float: left; + margin: 0 3px; + width: 20px; +} + +.ansSpanDisplay{ + color: #00C6FF; + font-size: 14px; + float: left; +} + +.ansContent{ + padding: 1px 3px 3px 3px; + margin-left: 5px; + font-family: Verdana,Arial,Helvetica,sans-serif; + font-size: small; + width: 80%; + float: left; + border: 3px solid #ccc; + -webkit-border-radius: 5px; + border-radius: 5px; + -moz-box-shadow: #dadada -1px 0 4px; + -webkit-box-shadow: #dadada -1px 0 4px; + box-shadow: #dadada -1px 0 4px; +} + +.ansContentDisplay{ + padding: 1px 3px 3px 3px; + margin-left: 5px; + font-family: Verdana,Arial,Helvetica,sans-serif; + font-size: small; + width: 90%; + float: left; + -webkit-border-radius: 5px; + border-radius: 5px; +} + +.ansDelete{ + float: left; + border: none; + background-image: url(../images/boldGreyClose.png); + background-color: white; + background-repeat: no-repeat; + background-position: 0 50%; + cursor: pointer; + margin: 0 5px; +} + +.qstOptChoice{ + width: 80%; + margin: 10px 10%; + float: left; + background-color: #F3F3F2; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-style: solid; + border-right-style: solid; + border-bottom-style: solid; + border-left-style: solid; + border-top-color: #ECECEB; + border-right-color: #ECECEB; + border-bottom-color: #ECECEB; + border-left-color: #ECECEB; + border-top-left-radius: 5px 5px; + border-top-right-radius: 5px 5px; + border-bottom-right-radius: 5px 5px; + border-bottom-left-radius: 5px 5px; + -webkit-box-shadow: #dededd 0 0 2px inset; + padding: 0; +} + +.optDescImg{ + padding: 2px; + margin: 5px; + background: url(../images/tool.png) -0px -0px no-repeat; + float: left; + margin-left: 20px; + width: 56px; + height: 51px; +} + +.optDescText{ + text-align: center; + width: 70%; + color: #666666; + float: left; + font-size: small; + font-family: Verdana,Arial,Helvetica,sans-serif; + margin: 3px 5px; + padding: 5px; +} + +.type{ + float: left; + margin: 10px; + padding: 5px; + -webkit-border-radius: 5px; + border-radius: 5px; + -moz-box-shadow: #dadada -1px 0 4px; + -webkit-box-shadow: #dadada -1px 0 4px; + box-shadow: #dadada -1px 0 4px; +} + +.contentType{ + width: 100%; + padding: 0; + margin: 0; + background-color: white; + border-bottom: 1px solid #DFDFDE; + border-top-left-radius: 5px 5px; + border-top-right-radius: 5px 5px; +} + +.divType1, .divType2, .divType3 { + width: 122px; + height: 97px; + padding: 0 15px; + margin-left: 30px; +} + +.divType1{ + background: url(../images/1thOption.png)-0px -0px no-repeat; +} + +.divType2{ + background: url(../images/2thOption.png)-0px -0px no-repeat; +} + +.divType3{ + background: url(../images/3thOption.png)-0px -0px no-repeat; +} + +.textType{ + width: 160px; + font-size: small; + font-family: Verdana,Arial,Helvetica,sans-serif; + color: #666; + padding: 3px; + margin-left: 20px; +} + +.radioDiv{ + background-color: #F5F5F5; + border-top: 1px solid white; + width: 100%; + padding: 0; + margin: 0; + height: 30px; + border-bottom-right-radius: 5px 5px; + border-bottom-left-radius: 5px 5px; +} + +.radioType{ + float: right; + margin: 2px; + padding: 3px; +} + +.popupWordInfo{ + position: absolute; + display: none; + width: 100px; + height: 20px; + top: 0; + left: 0; + text-align: center; + border: 1px solid #B9B9B9; + background-color: #eaebeb; + color: #666; + -webkit-border-radius: 5px; + border-radius: 5px; + -webkit-box-shadow: #dadada -1px 0 4px; + box-shadow: #dadada -1px 0 4px; + z-index: 100; +} +*/ \ No newline at end of file diff --git a/resources/library/sankoreInteractivities/BlackYellow.wgt/icon.png b/resources/library/sankoreInteractivities/BlackYellow.wgt/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..8c64a6a81ec0691e770df1bba7ff60bb9b26c70f GIT binary patch literal 1053 zcmb7D{WIGK9R4I})XR`~f4S3i^t{YzP;#-ZQcV=|R-)Kyi$%O^N;uhY_Z`LJX0%pT zvC+sfSy!puAjx9u+QD+^E}Tz&kxTpA6b0taZ7U- za{#c6jNm31QLwwF6yu!%S()1z`9L*4aBw|Dsq-Ti|MClnH7v2&b zHii`O(R`i}5rIYny&jlMAP5i$puHW=oPmZ0U@(Bgf%SD*T!g_vV=@rYM5BTDcq6Yx zbVWRYNI~Qy-bAcJ{(|U%*pFC` zID_bkC`2qme1zD9n2AOm;+Jo18C;wYn`o5(f8bI>tUmx*AIUw+mp)i+oh@2o(0DnO zHW95E>mgTIQb{ag-kt2Ir&FdbCh9u}pN#pB^gLGGDEai?cdQ(~u-43NS(Q)qTFq#>ZRs0=4T|BPCv=?`Kxi4blXdMB;vC8F+)Zan zx;)1qTI%712icJN7*`aTzI(?PATj$^hV0Af0_XsrllRX(pfaaldkcLxYcwn1wV+`)u_clqq1#fn6-yc!cs0nkb9n+a$X+H^IgywRy zSXxu!$Z4*SQxl}{;)rzo4>(o9it7i?N4;$6TK;@i8R-y3OQ!3{DPWBKo+^1wkqp($LyXvS{!9mwV@wvj@ YtE6;Ny z@A)-#xU)-J6}JcWOB@Ode;8O|CZt=%(Sox4^~pERUj6eGZz6SYHk+EsN;6o5E&HBd z`u=T&rL_lJ@LSF5A$Q?zJO8Z0K8w+?8E+L`;!rxealO9g;*Z;Fq=r0uIbU*$x234; zzds{`ZgvjqC-O<|0q3AB{j>54xZ9RC@r>HV*2>-Ye#I_}smM4jBefjN5euKUe5)k1 z9}YX-(|o3xU!;e+NRRETrf*)@dNjHtR>s8*EKVNz=EYL^*S2HQoz8;N0rmRa)*rds cuU6WD0@}Xl&KE=6T;p>KQfwtbe!&d?LC`!xx)vzHS>O>_ z%)r2(2*Qjj?3ZUUFfb;2x;TbZ%z1ljZ{8sTfde0{tvLfHwT5SG+Z4F+179Qi0)01m z741;T1woNFxKp)_pC0b?sF77#)#tIK{mQ-kO;3*gIz5S9UTC7>vs5eJ%U^1@=9ttl zI503Qxa>5ixvqq{!RGWM3%^PKYL^SUDxOPQ@4xus=ZZB`v&?2!&Qtcf=Pfw#dFAc5 z-y&pgzum3!^5r6nx;59MG_RMg-5Ru0tRrJ>s8{8>?>ldvd0w2p|8}VKq#b1|1Q<_m zvXS}L_vNo`Mb%@0fY|RE|Jz&AlornP$WRlS)kz%F!sV(2(~0MaZ#h={GE-3yZCUtu zmrKgpz26T0liHNB_G%QnE>R7Z%<4IQhI;jPQ$5JZGZfEhb@kjKw z_%54l;v0T?>HFUt458Ud6J9+3ea_W|A#&Q?BZcelzc1UBC{f4A>fW9hw(N2NFb)_z MUHx3vIVCg!03ZOun*aa+ literal 0 HcmV?d00001 diff --git a/resources/library/sankoreInteractivities/BlackYellow.wgt/images/greySquare2.png b/resources/library/sankoreInteractivities/BlackYellow.wgt/images/greySquare2.png new file mode 100644 index 0000000000000000000000000000000000000000..c0a7f14e8cc02340252ef48d9b5893d72b72239a GIT binary patch literal 214 zcmeAS@N?(olHy`uVBq!ia0vp^UO+6v!3HFcv1`r-Qgc0B978H@y}fD3cgTRpE%AP* zvcghXA^y^sbNyO*jJg|H=4zdYvGxAXYFAmU^ft&#T=!?5nQi{&{4?7(a7^C7sVv#{ zI%4(O2QvCOQelEu_b_~_UiDP*ocZ6myVo+g+;3pw(pUf@*hB&x7+HaYA(*@19KUPK ziyrQYNe5n>2o?O!u|Srw#Q)W-=~g($@^iH5Tk`d%-?cw2}%pE)tDgY(m6A=;N zpP!$vtE;O!S6NwUzIN@}`P$mrgvQ3k#MszaV|I47v8=2t9REWC0s=I&hSw_GZNMEV z?Oa7l5)%`3_wL=Z^z`&(&CJZSEiW(sgx{eUD=RCn=jZ49y1Tn`($dmQI-M?vH=tr& zUMCUDSx~Ll>jTo$(<7Rino?f8c=5fI?CH~|`x6rr`_l1e&z^k;4@E{tM;rY8{k5cv zb;{il3zquQj%_xZxxKwTcXf63Pf`d=58&Dzc;GE$*2I9jH)?8Xb`}>G4_NjMtiO)9 zM`$#fK+-9-TuQ3;^YaUWa`U4{kMf~pn-q0*b?t?QhOSEqr7)RH8$&}wdxG^?SB$Z9 zOs*D_3qJ+NLu)phBayK-So#+&Zfk9dC{2qg~Yk_!ptLoT*jt+6dFEw^dG z!otEnV(sGI3l}bI#KpxOiE&_H;CfC@&X$jlk8@0^RIW`=Pw$eh-rn9XpzA%12XUz> z1Y$odG9Zgn#>dCMCE@$`@9&6}qe*NC?kg`Z-xkKh!ooH{;7BS;KJl8oyu2+MpPiju zz1{w}CLyb< zNoa0vZqFSlTBVazh@U6&fq{WdnlCOceyCEZKE_y>3$eGiccQ^yxPx~0F9}LZ3CXc8 zCMEZ#q@=jS{OZ-KTheBN-t8zUG^R>$93j?Y@FLuOb8KvEi3AG^3tf~@mLC^Wal)a^ z?uyq?U*`km7rb8wK9agx2VyHul|r1e->~qmxFHC2NmfY{i4F;JwbV;!9FE%W?ChMz z`=@|QayiNgh())_!eTpW^Yw9cc^X`~a%GcS=0B+CMvU2rLtIV@Zs3s$h2qlLvuE$1 ztiBf9N(xR(N^KRFgMH5C35?waE=e1RoPAF1%nCQ=qnUh;Cht7_OG``tx8<3cnVYC{ z2Wekl-z$vSflo-cv}MZKbZX#cAQj{{aeMd@{d!6u9~l|h%E-vrl*V10Nd5i&&IAPM z&lrCQ+#sE-+vSjO9*cZ*S%AwRzl#!T#U*d*$&)9)3kt~^YJ<2EZ4m|s2e*Wh;U4gJ zb#*lz3a!9h(#1ND9E&a&0e}we4}mNqhlRB3LEJD`P-?$P?^psRCnx{FrQsE-V~8y! z(k#|>>_x!k>I2X&sBqU^t=73I)=?z|M zWnFHsJ}#F%7BsSpC>!&DQs6V-0kZ!qpaahx^bF5D;JH$ky~Jyctjq0X@5uF*T|;p> z&pRh&nLq(h1e7p}cr24;th^?ab)0y;m3~F2xXc1si3x~iORRj-#PhR-=S(ac$ZJ*Z zz9u|YSX>olJ*CvCC;6ZL(IPv{VJ(q^i{7NL_lLWK^ zRt;YdcDXPvTvGlrsf0Gd1pX~J<-($HQ~A%N9@+~Vho1-6UDy)-Ri2t8p<}Q`_#N=X z1uwi%URz2qp;$E>cwEw51-YT#(HaE<3N@^FWa<6{Ii{Y|ss*ize#5v&nr=177WIf$ zCa6-pFeE(&=rqU*^*1eFP^c(2Bs`wd^#_@yW@wNiXerFWS2{LJ7*@_1vycjC9jq0; z*Kt%rTDflAhdhIJz=q(b9hW7T^0)B>(gJ-COT%wC?n^kjcgstNKow^2-jNc5k`_a1 z5xiHV4IAF=Q;ve3(k_W-f)2&7VcNT8iiP{vpAZ#-Iz_9Y*Sk?lI_NrWpC}TPDx9Ix zyJpHz&^cO``H(_rF)RW9)UjW}tTJOPgH%BqU`hA^N0qRWGf)j_h4$x&r5#r#Y$=b7 zjgWzyffe|y;~xpf%5!51G67wM9l&2YUP-u7-Wdf+#h78yV~6e}h^JoAt_Agq-W;xZ zy7e5czqC_9rJ^y$;PIAjD##*rllD)LP*fPIJ?iPYf{as_XurNUWNYJp{;0Dp`R3#D oyTL?h>C4>@-#$exJ-g2v@=)^QLGsBqzQ!}?Z0~OS`Eu~{e}+Vj(EtDd literal 0 HcmV?d00001 diff --git a/resources/library/sankoreInteractivities/BlackYellow.wgt/index.html b/resources/library/sankoreInteractivities/BlackYellow.wgt/index.html new file mode 100644 index 00000000..a77d4cfd --- /dev/null +++ b/resources/library/sankoreInteractivities/BlackYellow.wgt/index.html @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + diff --git a/resources/library/sankoreInteractivities/BlackYellow.wgt/scripts/blackYellow.js b/resources/library/sankoreInteractivities/BlackYellow.wgt/scripts/blackYellow.js new file mode 100644 index 00000000..4ab6ae73 --- /dev/null +++ b/resources/library/sankoreInteractivities/BlackYellow.wgt/scripts/blackYellow.js @@ -0,0 +1,417 @@ +/* + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + +function init(){ + + //variables + var toggleFlag = false; // detects toggling in toggle button + var endFlag = false; // ending of toggling in toggle button + var addToggleStart = false; // detects toggling in add button + var addToggleEnd = false; // ending of toggling in add button + var shadowOver = false; + var mode = false; + var popupFlag = false + var flagForSelect = false; + var dragElement = null; //the element that must be dragging + var lang = ""; //locale language + var coords = { + left:0, + top:0 + } + + var resizeObj = { + y:false, + x:false, + width:0, + height:0 + } + + if(window.sankore){ + try{ + lang = sankore.locale().substr(0,2); + sankoreLang[lang].edit; + } catch(e){ + lang = "en"; + } + } else + lang = "en"; + + var opacityChanged = false; + + if(window.sankore){ + if(sankore.preference("blackYellowData","")){ + var importArray = jQuery.parseJSON(sankore.preference("blackYellowData","")); + for(var i in importArray){ + var tmpReadyTask = $("
"); + var exprContainer = $("
" + importArray[i].data1 + "
").appendTo(tmpReadyTask); + var resContainer = $("
"+ importArray[i].data2 + "
").appendTo(tmpReadyTask); + tmpReadyTask.width(importArray[i].width) + .height(importArray[i].height) + .css("position","absolute") + .css("top",importArray[i].top) + .css("left",importArray[i].left); + tmpReadyTask.appendTo("body"); + } + } + $(document).disableTextSelect(); + } + + /* ------------- BUTTONS -------------*/ + + // toggle button + var buttonDiv = $("
").appendTo("body"); + var toggleButton = $("").appendTo("#buttonDiv"); + buttonDiv.css({ + top:"10px", + right:0 + }); + + //toggle mode + toggleButton.click(function(){ + if(!shadowOver){ + if(mode){ + mode = false; + addButtonDiv.css("display","none"); + $(".leftDiv, .rightDiv").animate({ + "opacity":"1" + },"slow",function(){ + if(opacityChanged){ + if($(".editContainer").size() != 0){ + $(".editContainer").each(function(index, domElem){ + var tmpReadyTask = $(domElem).find(".readyTask"); + tmpReadyTask.width($(domElem).width()) + .height($(domElem).height()) + .css("position","absolute") + .css("top",$(domElem).position().top) + .css("left",$(domElem).position().left) + .find(".taskContainer").removeAttr("contenteditable"); + + $(domElem).remove(); + tmpReadyTask.appendTo("body"); + }); + } + opacityChanged = false; + } + }); + $(document).disableTextSelect(); + } else { + mode = true; + addButtonDiv.css("display","block"); + $(document).enableTextSelect(); + $(".leftDiv, .rightDiv").animate({ + "opacity":"0.4" + },"slow",function(){ + if(!opacityChanged){ + if($(".readyTask").size() != 0){ + $(".readyTask").each(function(index, domElem){ + var editContent = $("
").width($(domElem).width() + 10).height($(domElem) + 10).appendTo("body"); + var closeItem = $("
").appendTo(editContent); + var rightResize = $("
").appendTo(editContent); + var bottomResize = $("
").appendTo(editContent); + editContent.css("top", $(domElem).position().top).css("left", $(domElem).position().left); + $(domElem).css("position","static") + .width("100%") + .height("100%") + .find(".taskContainer").attr("contenteditable", "true"); + $(domElem).appendTo(editContent); + }); + } + opacityChanged = true; + } + }); + + } + toggleButton.trigger("mouseout"); + } + }); + + // toggle button events + toggleButton.mouseover(function(){ + if(!shadowOver){ + if(!toggleFlag && !endFlag){ + endFlag = true; + toggleButton.animate({ + width:"115px" + },"fast",function(){ + toggleFlag = true; + if(!mode) + toggleButton.text(sankoreLang[lang].edit); + else + toggleButton.text(sankoreLang[lang].display); + }); + } + } + }); + + toggleButton.mouseout(function(){ + if(!shadowOver){ + if(toggleFlag && endFlag){ + endFlag = false; + toggleButton.animate({ + width:"20px" + },"fast", function(){ + toggleButton.text("<"); + toggleFlag = false; + }); + } + } + }); + + //add button + var addButtonDiv = $("
").appendTo("body"); + var addButton = $("").appendTo("#addButtonDiv"); + addButtonDiv.css({ + top:"47px", + right:0 + }); + + // add button events + addButton.click(function(){ + shadowDiv.show("fast", function(){ + shadowOver = true; + popupBack.show("slow"); + }); + $(document).disableTextSelect(); + addButton.trigger("mouseout"); + }); + + addButton.mouseover(function(){ + if(!shadowOver){ + if(!addToggleStart && !addToggleEnd){ + addToggleEnd = true; + addButton.animate({ + width:"115px" + },"fast",function(){ + addToggleStart = true; + addButton.text(sankoreLang[lang].add); + }); + } + } + }); + + addButton.mouseout(function(){ + if(!shadowOver){ + if(addToggleStart && addToggleEnd){ + addToggleEnd = false; + addButton.animate({ + width:"20px" + },"fast", function(){ + addButton.text("+"); + addToggleStart = false; + }); + } + } + }); + + /* -------------- END OF WORK WITH BUTTONS ---------------*/ + + //basic divs + var leftDiv = $("
").appendTo("body"); + var rightDiv = $("
").appendTo("body"); + + //divs for adding a new item + var shadowDiv = $("
").appendTo("body"); + var popupBack = $("
").appendTo("body"); + + //input fields and buttons for a popup window + var expressionDiv = $("
").appendTo(popupBack); + var experssionLabel = $("" + sankoreLang[lang].enter_data + "").appendTo(expressionDiv); + var expresionText = $("").appendTo(expressionDiv); + + var resultDiv = $("
").appendTo(popupBack); + var resultLabel = $("" + sankoreLang[lang].enter_result + "").appendTo(resultDiv); + var resultText = $("").appendTo(resultDiv); + + var popupButtonsDiv= $("
").appendTo(popupBack); + var cancelButton = $("").appendTo(popupButtonsDiv); + var okButton = $("").appendTo(popupButtonsDiv); + + /* -------------- A WORK WITH POPUP BUTTONS AND FIELDS ---------------*/ + + $("#resultText, #expresionText").keyup(function(){ + if($(this).val()){ + $(this).css("background-color", "#ff9"); + } + }); + + cancelButton.click(function(){ + $(document).enableTextSelect(); + popupBack.hide("slow", function(){ + $("#resultText, #expresionText").val("") + .css("background-color", "#ffc"); + shadowDiv.hide("fast"); + shadowOver = false; + }); + }); + + okButton.click(function(){ + $(document).enableTextSelect(); + if(checkEmptyFields(expresionText) && checkEmptyFields(resultText)){ + popupBack.hide("slow", function(){ + shadowDiv.hide("fast"); + shadowOver = false; + addTask(expresionText.val(), resultText.val()); + $("#resultText, #expresionText").val("") + .css("background-color", "#ffc"); + }) + } + }); + + /* -------------- THE END OF WORK WITH POPUP BUTTONS AND FIELDS ---------------*/ + + // a work with dragging possibility + $("input:text").mouseover(function(){ + $(document).enableTextSelect(); + }); + + $("input:text").mouseout(function(){ + $(document).disableTextSelect(); + }); + + $(".readyTask, .editContainer").live("mousedown",function(event){ + if(!shadowOver){ + dragElement = $(this); + coords.left = event.pageX - $(this).position().left; + coords.top = event.pageY - $(this).position().top; + resizeObj.width = $(this).width(); + resizeObj.height = $(this).height(); + } + }); + + $(".rightResize").live("mousedown",function(event){ + if(!shadowOver){ + resizeObj.x = true; + } + }); + + $(".bottomResize").live("mousedown",function(event){ + if(!shadowOver){ + resizeObj.y = true; + } + }); + + $("body").mouseup(function(event){ + if(!shadowOver){ + dragElement = null; + resizeObj.x = false; + resizeObj.y = false; + } + }); + + $("body").mousemove(function(event){ + if(dragElement && !shadowOver){ + if(resizeObj.x) + dragElement.width(event.pageX - dragElement.position().left); + else if(resizeObj.y) + dragElement.height(event.pageY - dragElement.position().top); + else + dragElement.css("top",event.pageY - coords.top).css("left", event.pageX - coords.left); + } + }); + + //closing item + $(".closeItem").live("click", function(){ + if(!shadowOver){ + $(this).parent().remove(); + } + }); + + $("#leftDiv,#rightDiv,#shadowDiv").css("height", $(window).height()); + popupBack.css("top", ($(window).height() - 138)*50/$(window).height() + "%"); + popupBack.css("left", ($(window).width() - 360)*50/$(window).width() + "%"); + + $(window).resize(function(){ + $("#leftDiv,#rightDiv,#shadowDiv").css("height", $(window).height()); + popupBack.css("top", ($(window).height() - 138)*50/$(window).height() + "%"); + popupBack.css("left", ($(window).width() - 360)*50/$(window).width() + "%"); + }); + + $("html").mouseout(function(){ + if(window.sankore) + exportToSankore(); + }); + + // export data + function exportToSankore(){ + + var arrayToExport = new Array(); + if(mode){ + if($(".editContainer").size() != 0){ + $(".editContainer").each(function(index, domElem){ + var objToExport = { + data1:"", + data2:"", + width:0, + height:0, + top:0, + left:0 + } + objToExport.data1 = $(domElem).find(".readyTask").find(":first-child").text(); + objToExport.data2 = $(domElem).find(".readyTask").find(":last-child").text(); + objToExport.width = $(domElem).width(); + objToExport.height = $(domElem).height(); + objToExport.top = $(domElem).position().top; + objToExport.left = $(domElem).position().left; + arrayToExport.push(objToExport); + }); + } + } else { + if($(".readyTask").size() != 0){ + $(".readyTask").each(function(index, domElem){ + var objToExport = { + data1:"", + data2:"", + width:0, + height:0, + top:0, + left:0 + } + objToExport.data1 = $(domElem).find(":first-child").text(); + objToExport.data2 = $(domElem).find(":last-child").text(); + objToExport.width = $(domElem).width(); + objToExport.height = $(domElem).height(); + objToExport.top = $(domElem).position().top; + objToExport.left = $(domElem).position().left; + arrayToExport.push(objToExport); + }); + } + } + sankore.setPreference("blackYellowData", JSON.stringify(arrayToExport)); + } +} + +//checking empty fields +function checkEmptyFields(field){ + if(field.val() == ""){ + field.css("background-color", "red"); + return false; + } else { + field.css("background-color", "#ff9"); + return true; + } +} + +//adding a new task to the page +function addTask(expression, result){ + var editContent = $("
").width(240).height(70).appendTo("body"); + var closeItem = $("
").appendTo(editContent); + var rightResize = $("
").appendTo(editContent); + var bottomResize = $("
").appendTo(editContent); + var main = $("
"); + var exprContainer = $("
" + expression + "
").appendTo(main); + var resContainer = $("
"+ result + "
").appendTo(main); + main.appendTo(editContent); +} \ No newline at end of file diff --git a/resources/library/sankoreInteractivities/BlackYellow.wgt/scripts/jquery-1.6.2.min.js b/resources/library/sankoreInteractivities/BlackYellow.wgt/scripts/jquery-1.6.2.min.js new file mode 100644 index 00000000..48590ecb --- /dev/null +++ b/resources/library/sankoreInteractivities/BlackYellow.wgt/scripts/jquery-1.6.2.min.js @@ -0,0 +1,18 @@ +/*! + * jQuery JavaScript Library v1.6.2 + * http://jquery.com/ + * + * Copyright 2011, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Thu Jun 30 14:16:56 2011 -0400 + */ +(function(a,b){function cv(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cs(a){if(!cg[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ch||(ch=c.createElement("iframe"),ch.frameBorder=ch.width=ch.height=0),b.appendChild(ch);if(!ci||!ch.createElement)ci=(ch.contentWindow||ch.contentDocument).document,ci.write((c.compatMode==="CSS1Compat"?"":"")+""),ci.close();d=ci.createElement(a),ci.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ch)}cg[a]=e}return cg[a]}function cr(a,b){var c={};f.each(cm.concat.apply([],cm.slice(0,b)),function(){c[this]=a});return c}function cq(){cn=b}function cp(){setTimeout(cq,0);return cn=f.now()}function cf(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ce(){try{return new a.XMLHttpRequest}catch(b){}}function b$(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){c!=="border"&&f.each(e,function(){c||(d-=parseFloat(f.css(a,"padding"+this))||0),c==="margin"?d+=parseFloat(f.css(a,c+this))||0:d-=parseFloat(f.css(a,"border"+this+"Width"))||0});return d+"px"}d=bx(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0,c&&f.each(e,function(){d+=parseFloat(f.css(a,"padding"+this))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+this+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+this))||0)});return d+"px"}function bm(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(be,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bl(a){f.nodeName(a,"input")?bk(a):"getElementsByTagName"in a&&f.grep(a.getElementsByTagName("input"),bk)}function bk(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bj(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function bi(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bh(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c=f.expando,d=f.data(a),e=f.data(b,d);if(d=d[c]){var g=d.events;e=e[c]=f.extend({},d);if(g){delete e.handle,e.events={};for(var h in g)for(var i=0,j=g[h].length;i=0===c})}function V(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function N(a,b){return(a&&a!=="*"?a+".":"")+b.replace(z,"`").replace(A,"&")}function M(a){var b,c,d,e,g,h,i,j,k,l,m,n,o,p=[],q=[],r=f._data(this,"events");if(!(a.liveFired===this||!r||!r.live||a.target.disabled||a.button&&a.type==="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var s=r.live.slice(0);for(i=0;ic)break;a.currentTarget=e.elem,a.data=e.handleObj.data,a.handleObj=e.handleObj,o=e.handleObj.origHandler.apply(e.elem,arguments);if(o===!1||a.isPropagationStopped()){c=e.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function K(a,c,d){var e=f.extend({},d[0]);e.type=a,e.originalEvent={},e.liveFired=b,f.event.handle.call(c,e),e.isDefaultPrevented()&&d[0].preventDefault()}function E(){return!0}function D(){return!1}function m(a,c,d){var e=c+"defer",g=c+"queue",h=c+"mark",i=f.data(a,e,b,!0);i&&(d==="queue"||!f.data(a,g,b,!0))&&(d==="mark"||!f.data(a,h,b,!0))&&setTimeout(function(){!f.data(a,g,b,!0)&&!f.data(a,h,b,!0)&&(f.removeData(a,e,!0),i.resolve())},0)}function l(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function k(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(j,"$1-$2").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNaN(d)?i.test(d)?f.parseJSON(d):d:parseFloat(d)}catch(g){}f.data(a,c,d)}else d=b}return d}var c=a.document,d=a.navigator,e=a.location,f=function(){function J(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(J,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[ \/]([\w.]+)/,t=/(opera)(?:.*version)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=/-([a-z])/ig,x=function(a,b){return b.toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=n.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.6.2",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;A.resolveWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!A){A=e._Deferred();if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNaN:function(a){return a==null||!m.test(a)||isNaN(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a);return c===b||D.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(o.test(b.replace(p,"@").replace(q,"]").replace(r,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(b,c,d){a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),d=c.documentElement,(!d||!d.nodeName||d.nodeName==="parsererror")&&e.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?h.call(arguments,0):c,--e||g.resolveWith(g,h.call(b,0))}}var b=arguments,c=0,d=b.length,e=d,g=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred();if(d>1){for(;c
a",d=a.getElementsByTagName("*"),e=a.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=a.getElementsByTagName("input")[0],k={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55$/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:a.className!=="t",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,k.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,k.optDisabled=!h.disabled;try{delete a.test}catch(v){k.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function(){k.noCloneEvent=!1}),a.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),k.radioValue=i.value==="t",i.setAttribute("checked","checked"),a.appendChild(i),l=c.createDocumentFragment(),l.appendChild(a.firstChild),k.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",m=c.getElementsByTagName("body")[0],o=c.createElement(m?"div":"body"),p={visibility:"hidden",width:0,height:0,border:0,margin:0},m&&f.extend(p,{position:"absolute",left:-1e3,top:-1e3});for(t in p)o.style[t]=p[t];o.appendChild(a),n=m||b,n.insertBefore(o,n.firstChild),k.appendChecked=i.checked,k.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,k.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="
",k.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="
t
",q=a.getElementsByTagName("td"),u=q[0].offsetHeight===0,q[0].style.display="",q[1].style.display="none",k.reliableHiddenOffsets=u&&q[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",a.appendChild(j),k.reliableMarginRight=(parseInt((c.defaultView.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0),o.innerHTML="",n.removeChild(o);if(a.attachEvent)for(t in{submit:1,change:1,focusin:1})s="on"+t,u=s in a,u||(a.setAttribute(s,"return;"),u=typeof a[s]=="function"),k[t+"Bubbles"]=u;o=l=g=h=m=j=a=i=null;return k}(),f.boxModel=f.support.boxModel;var i=/^(?:\{.*\}|\[.*\])$/,j=/([a-z])([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!l(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g=f.expando,h=typeof c=="string",i,j=a.nodeType,k=j?f.cache:a,l=j?a[f.expando]:a[f.expando]&&f.expando;if((!l||e&&l&&!k[l][g])&&h&&d===b)return;l||(j?a[f.expando]=l=++f.uuid:l=f.expando),k[l]||(k[l]={},j||(k[l].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?k[l][g]=f.extend(k[l][g],c):k[l]=f.extend(k[l],c);i=k[l],e&&(i[g]||(i[g]={}),i=i[g]),d!==b&&(i[f.camelCase(c)]=d);if(c==="events"&&!i[c])return i[g]&&i[g].events;return h?i[f.camelCase(c)]||i[c]:i}},removeData:function(b,c,d){if(!!f.acceptData(b)){var e=f.expando,g=b.nodeType,h=g?f.cache:b,i=g?b[f.expando]:f.expando;if(!h[i])return;if(c){var j=d?h[i][e]:h[i];if(j){delete j[c];if(!l(j))return}}if(d){delete h[i][e];if(!l(h[i]))return}var k=h[i][e];f.support.deleteExpando||h!=a?delete h[i]:h[i]=null,k?(h[i]={},g||(h[i].toJSON=f.noop),h[i][e]=k):g&&(f.support.deleteExpando?delete b[f.expando]:b.removeAttribute?b.removeAttribute(f.expando):b[f.expando]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d=null;if(typeof a=="undefined"){if(this.length){d=f.data(this[0]);if(this[0].nodeType===1){var e=this[0].attributes,g;for(var h=0,i=e.length;h-1)return!0;return!1},val:function(a){var c,d,e=this[0];if(!arguments.length){if(e){c=f.valHooks[e.nodeName.toLowerCase()]||f.valHooks[e.type];if(c&&"get"in c&&(d=c.get(e,"value"))!==b)return d;d=e.value;return typeof d=="string"?d.replace(p,""):d==null?"":d}return b}var g=f.isFunction(a);return this.each(function(d){var e=f(this),h;if(this.nodeType===1){g?h=a.call(this,d,e.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c=a.selectedIndex,d=[],e=a.options,g=a.type==="select-one";if(c<0)return null;for(var h=g?c:0,i=g?c+1:e.length;h=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attrFix:{tabindex:"tabIndex"},attr:function(a,c,d,e){var g=a.nodeType;if(!a||g===3||g===8||g===2)return b;if(e&&c in f.attrFn)return f(a)[c](d);if(!("getAttribute"in a))return f.prop(a,c,d);var h,i,j=g!==1||!f.isXMLDoc(a);j&&(c=f.attrFix[c]||c,i=f.attrHooks[c],i||(t.test(c)?i=w:v&&c!=="className"&&(f.nodeName(a,"form")||u.test(c))&&(i=v)));if(d!==b){if(d===null){f.removeAttr(a,c);return b}if(i&&"set"in i&&j&&(h=i.set(a,d,c))!==b)return h;a.setAttribute(c,""+d);return d}if(i&&"get"in i&&j&&(h=i.get(a,c))!==null)return h;h=a.getAttribute(c);return h===null?b:h},removeAttr:function(a,b){var c;a.nodeType===1&&(b=f.attrFix[b]||b,f.support.getSetAttribute?a.removeAttribute(b):(f.attr(a,b,""),a.removeAttributeNode(a.getAttributeNode(b))),t.test(b)&&(c=f.propFix[b]||b)in a&&(a[c]=!1))},attrHooks:{type:{set:function(a,b){if(q.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},tabIndex:{get:function(a){var c=a.getAttributeNode("tabIndex");return c&&c.specified?parseInt(c.value,10):r.test(a.nodeName)||s.test(a.nodeName)&&a.href?0:b}},value:{get:function(a,b){if(v&&f.nodeName(a,"button"))return v.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(v&&f.nodeName(a,"button"))return v.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e=a.nodeType;if(!a||e===3||e===8||e===2)return b;var g,h,i=e!==1||!f.isXMLDoc(a);i&&(c=f.propFix[c]||c,h=f.propHooks[c]);return d!==b?h&&"set"in h&&(g=h.set(a,d,c))!==b?g:a[c]=d:h&&"get"in h&&(g=h.get(a,c))!==b?g:a[c]},propHooks:{}}),w={get:function(a,c){return f.prop(a,c)?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},f.support.getSetAttribute||(f.attrFix=f.propFix,v=f.attrHooks.name=f.attrHooks.title=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&d.nodeValue!==""?d.nodeValue:b},set:function(a,b,c){var d=a.getAttributeNode(c);if(d){d.nodeValue=b;return b}}},f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})})),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}})),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var x=/\.(.*)$/,y=/^(?:textarea|input|select)$/i,z=/\./g,A=/ /g,B=/[^\w\s.|`]/g,C=function(a){return a.replace(B,"\\$&")};f.event={add:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){if(d===!1)d=D;else if(!d)return;var g,h;d.handler&&(g=d,d=g.handler),d.guid||(d.guid=f.guid++);var i=f._data(a);if(!i)return;var j=i.events,k=i.handle;j||(i.events=j={}),k||(i.handle=k=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.handle.apply(k.elem,arguments):b}),k.elem=a,c=c.split(" ");var l,m=0,n;while(l=c[m++]){h=g?f.extend({},g):{handler:d,data:e},l.indexOf(".")>-1?(n=l.split("."),l=n.shift(),h.namespace=n.slice(0).sort().join(".")):(n=[],h.namespace=""),h.type=l,h.guid||(h.guid=d.guid);var o=j[l],p=f.event.special[l]||{};if(!o){o=j[l]=[];if(!p.setup||p.setup.call(a,e,n,k)===!1)a.addEventListener?a.addEventListener(l,k,!1):a.attachEvent&&a.attachEvent("on"+l,k)}p.add&&(p.add.call(a,h),h.handler.guid||(h.handler.guid=d.guid)),o.push(h),f.event.global[l]=!0}a=null}},global:{},remove:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){d===!1&&(d=D);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=f.hasData(a)&&f._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(d=c.handler,c=c.type);if(!c||typeof c=="string"&&c.charAt(0)==="."){c=c||"";for(h in t)f.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+f.map(m.slice(0).sort(),C).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!d){for(j=0;j=0&&(h=h.slice(0,-1),j=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i. +shift(),i.sort());if(!!e&&!f.event.customEvent[h]||!!f.event.global[h]){c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.exclusive=j,c.namespace=i.join("."),c.namespace_re=new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)");if(g||!e)c.preventDefault(),c.stopPropagation();if(!e){f.each(f.cache,function(){var a=f.expando,b=this[a];b&&b.events&&b.events[h]&&f.event.trigger(c,d,b.handle.elem)});return}if(e.nodeType===3||e.nodeType===8)return;c.result=b,c.target=e,d=d!=null?f.makeArray(d):[],d.unshift(c);var k=e,l=h.indexOf(":")<0?"on"+h:"";do{var m=f._data(k,"handle");c.currentTarget=k,m&&m.apply(k,d),l&&f.acceptData(k)&&k[l]&&k[l].apply(k,d)===!1&&(c.result=!1,c.preventDefault()),k=k.parentNode||k.ownerDocument||k===c.target.ownerDocument&&a}while(k&&!c.isPropagationStopped());if(!c.isDefaultPrevented()){var n,o=f.event.special[h]||{};if((!o._default||o._default.call(e.ownerDocument,c)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)){try{l&&e[h]&&(n=e[l],n&&(e[l]=null),f.event.triggered=h,e[h]())}catch(p){}n&&(e[l]=n),f.event.triggered=b}}return c.result}},handle:function(c){c=f.event.fix(c||a.event);var d=((f._data(this,"events")||{})[c.type]||[]).slice(0),e=!c.exclusive&&!c.namespace,g=Array.prototype.slice.call(arguments,0);g[0]=c,c.currentTarget=this;for(var h=0,i=d.length;h-1?f.map(a.options,function(a){return a.selected}).join("-"):"":f.nodeName(a,"select")&&(c=a.selectedIndex);return c},J=function(c){var d=c.target,e,g;if(!!y.test(d.nodeName)&&!d.readOnly){e=f._data(d,"_change_data"),g=I(d),(c.type!=="focusout"||d.type!=="radio")&&f._data(d,"_change_data",g);if(e===b||g===e)return;if(e!=null||g)c.type="change",c.liveFired=b,f.event.trigger(c,arguments[1],d)}};f.event.special.change={filters:{focusout:J,beforedeactivate:J,click:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(c==="radio"||c==="checkbox"||f.nodeName(b,"select"))&&J.call(this,a)},keydown:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(a.keyCode===13&&!f.nodeName(b,"textarea")||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&J.call(this,a)},beforeactivate:function(a){var b=a.target;f._data(b,"_change_data",I(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in H)f.event.add(this,c+".specialChange",H[c]);return y.test(this.nodeName)},teardown:function(a){f.event.remove(this,".specialChange");return y.test(this.nodeName)}},H=f.event.special.change.filters,H.focus=H.beforeactivate}f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){function e(a){var c=f.event.fix(a);c.type=b,c.originalEvent={},f.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var d=0;f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.each(["bind","one"],function(a,c){f.fn[c]=function(a,d,e){var g;if(typeof a=="object"){for(var h in a)this[c](h,d,a[h],e);return this}if(arguments.length===2||d===!1)e=d,d=b;c==="one"?(g=function(a){f(this).unbind(a,g);return e.apply(this,arguments)},g.guid=e.guid||f.guid++):g=e;if(a==="unload"&&c!=="one")this.one(a,d,e);else for(var i=0,j=this.length;i0?this.bind(b,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d=0,e=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,f,g){f=f||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return f;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(e.call(n)==="[object Array]")if(!u)f.push.apply(f,n);else if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&f.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&f.push(j[t]);else p(n,f);o&&(k(o,h,f,g),k.uniqueSort(f));return f};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=d++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(e.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var f=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g0)for(h=g;h0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(d=0,e=a.length;d-1:f(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=T.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof a=="string")return f.inArray(this[0],a?f(a):this.parent().children());return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(V(c[0])||V(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c),g=S.call(arguments);O.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!U[a]?f.unique(e):e,(this.length>1||Q.test(d))&&P.test(a)&&(e=e.reverse());return this.pushStack(e,a,g.join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var X=/ jQuery\d+="(?:\d+|null)"/g,Y=/^\s+/,Z=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,$=/<([\w:]+)/,_=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]};bf.optgroup=bf.option,bf.tbody=bf.tfoot=bf.colgroup=bf.caption=bf.thead,bf.th=bf.td,f.support.htmlSerialize||(bf._default=[1,"div
","
"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){f(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f(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,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(X,""):null;if(typeof a=="string"&&!bb.test(a)&&(f.support.leadingWhitespace||!Y.test(a))&&!bf[($.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Z,"<$1>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j +)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d=a.cloneNode(!0),e,g,h;if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bi(a,d),e=bj(a),g=bj(d);for(h=0;e[h];++h)bi(e[h],g[h])}if(b){bh(a,d);if(c){e=bj(a),g=bj(d);for(h=0;e[h];++h)bh(e[h],g[h])}}e=g=null;return d},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!ba.test(k))k=b.createTextNode(k);else{k=k.replace(Z,"<$1>");var l=($.exec(k)||["",""])[1].toLowerCase(),m=bf[l]||bf._default,n=m[0],o=b.createElement("div");o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=_.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&Y.test(k)&&o.insertBefore(b.createTextNode(Y.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bo.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle;c.zoom=1;var e=f.isNaN(b)?"":"alpha(opacity="+b*100+")",g=d&&d.filter||c.filter||"";c.filter=bn.test(g)?g.replace(bn,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bx(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(by=function(a,c){var d,e,g;c=c.replace(bp,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return b;if(g=e.getComputedStyle(a,null))d=g.getPropertyValue(c),d===""&&!f.contains(a.ownerDocument.documentElement,a)&&(d=f.style(a,c));return d}),c.documentElement.currentStyle&&(bz=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bq.test(d)&&br.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bx=by||bz,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bB=/%20/g,bC=/\[\]$/,bD=/\r?\n/g,bE=/#.*$/,bF=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bG=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bH=/^(?:about|app|app\-storage|.+\-extension|file|widget):$/,bI=/^(?:GET|HEAD)$/,bJ=/^\/\//,bK=/\?/,bL=/)<[^<]*)*<\/script>/gi,bM=/^(?:select|textarea)/i,bN=/\s+/,bO=/([?&])_=[^&]*/,bP=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bQ=f.fn.load,bR={},bS={},bT,bU;try{bT=e.href}catch(bV){bT=c.createElement("a"),bT.href="",bT=bT.href}bU=bP.exec(bT.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bQ)return bQ.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
").append(c.replace(bL,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bM.test(this.nodeName)||bG.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bD,"\r\n")}}):{name:b.name,value:c.replace(bD,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.bind(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?f.extend(!0,a,f.ajaxSettings,b):(b=a,a=f.extend(!0,f.ajaxSettings,b));for(var c in{context:1,url:1})c in b?a[c]=b[c]:c in f.ajaxSettings&&(a[c]=f.ajaxSettings[c]);return a},ajaxSettings:{url:bT,isLocal:bH.test(bU[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML}},ajaxPrefilter:bW(bR),ajaxTransport:bW(bS),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a?4:0;var o,r,u,w=l?bZ(d,v,l):b,x,y;if(a>=200&&a<300||a===304){if(d.ifModified){if(x=v.getResponseHeader("Last-Modified"))f.lastModified[k]=x;if(y=v.getResponseHeader("Etag"))f.etag[k]=y}if(a===304)c="notmodified",o=!0;else try{r=b$(d,w),c="success",o=!0}catch(z){c="parsererror",u=z}}else{u=c;if(!c||a)c="error",a<0&&(a=0)}v.status=a,v.statusText=c,o?h.resolveWith(e,[r,c,v]):h.rejectWith(e,[v,c,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.resolveWith(e,[v,c]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f._Deferred(),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bF.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.done,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bE,"").replace(bJ,bU[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bN),d.crossDomain==null&&(r=bP.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bU[1]&&r[2]==bU[2]&&(r[3]||(r[1]==="http:"?80:443))==(bU[3]||(bU[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),bX(bR,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bI.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bK.test(d.url)?"&":"?")+d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bO,"$1_="+x);d.url=y+(y===d.url?(bK.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", */*; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=bX(bS,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){status<2?w(-1,z):f.error(z)}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)bY(g,a[g],c,e);return d.join("&").replace(bB,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var b_=f.now(),ca=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+b_++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ca.test(b.url)||e&&ca.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ca,l),b.url===j&&(e&&(k=k.replace(ca,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cb=a.ActiveXObject?function(){for(var a in cd)cd[a](0,1)}:!1,cc=0,cd;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ce()||cf()}:ce,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cb&&delete cd[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cc,cb&&(cd||(cd={},f(a).unload(cb)),cd[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cg={},ch,ci,cj=/^(?:toggle|show|hide)$/,ck=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cl,cm=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cn,co=a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||a.oRequestAnimationFrame;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cr("show",3),a,b,c);for(var g=0,h=this.length;g=e.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),e.animatedProperties[this.prop]=!0;for(g in e.animatedProperties)e.animatedProperties[g]!==!0&&(c=!1);if(c){e.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){d.style["overflow"+b]=e.overflow[a]}),e.hide&&f(d).hide();if(e.hide||e.show)for(var i in e.animatedProperties)f.style(d,i,e.orig[i]);e.complete.call(d)}return!1}e.duration==Infinity?this.now=b:(h=b-this.startTime,this.state=h/e.duration,this.pos=f.easing[e.animatedProperties[this.prop]](this.state,h,0,1,e.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){for(var a=f.timers,b=0;b
";f.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),d=b.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,this.doesNotAddBorder=e.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,e.style.position="fixed",e.style.top="20px",this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),f.offset.initialize=f.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.offset.initialize(),f.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cu.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cu.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cv(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cv(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a&&a.style?parseFloat(f.css(a,d,"padding")):null},f.fn["outer"+c]=function(a){var b=this[0];return b&&b.style?parseFloat(f.css(b,d,a?"margin":"border")):null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c];return e.document.compatMode==="CSS1Compat"&&g||e.document.body["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var h=f.css(e,d),i=parseFloat(h);return f.isNaN(i)?h:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f})(window); \ No newline at end of file diff --git a/resources/library/sankoreInteractivities/BlackYellow.wgt/scripts/jquery.disable.text.select.js b/resources/library/sankoreInteractivities/BlackYellow.wgt/scripts/jquery.disable.text.select.js new file mode 100644 index 00000000..2e06f673 --- /dev/null +++ b/resources/library/sankoreInteractivities/BlackYellow.wgt/scripts/jquery.disable.text.select.js @@ -0,0 +1,62 @@ +/** + * .disableTextSelect - Disable Text Select Plugin + * + * Version: 1.1 + * Updated: 2007-11-28 + * + * Used to stop users from selecting text + * + * Copyright (c) 2007 James Dempster (letssurf@gmail.com, http://www.jdempster.com/category/jquery/disabletextselect/) + * + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + **/ + +/** + * Requirements: + * - jQuery (John Resig, http://www.jquery.com/) + **/ +(function($) { + if ($.browser.mozilla) { + $.fn.disableTextSelect = function() { + return this.each(function() { + $(this).css({ + 'MozUserSelect' : 'none' + }); + }); + }; + $.fn.enableTextSelect = function() { + return this.each(function() { + $(this).css({ + 'MozUserSelect' : '' + }); + }); + }; + } else if ($.browser.msie) { + $.fn.disableTextSelect = function() { + return this.each(function() { + $(this).bind('selectstart.disableTextSelect', function() { + return false; + }); + }); + }; + $.fn.enableTextSelect = function() { + return this.each(function() { + $(this).unbind('selectstart.disableTextSelect'); + }); + }; + } else { + $.fn.disableTextSelect = function() { + return this.each(function() { + $(this).bind('mousedown.disableTextSelect', function() { + return false; + }); + }); + }; + $.fn.enableTextSelect = function() { + return this.each(function() { + $(this).unbind('mousedown.disableTextSelect'); + }); + }; + } +})(jQuery); \ No newline at end of file diff --git a/resources/library/sankoreInteractivities/BlackYellow.wgt/scripts/languages.js b/resources/library/sankoreInteractivities/BlackYellow.wgt/scripts/languages.js new file mode 100644 index 00000000..fceb7e64 --- /dev/null +++ b/resources/library/sankoreInteractivities/BlackYellow.wgt/scripts/languages.js @@ -0,0 +1,30 @@ +var sankoreLang = { + "en":{ + "edit": "Edit", + "display":"Display", + "add":"Add", + "enter_data":"Enter data:", + "enter_result":"Enter result:", + "ok":"Ok", + "cancel":"Cancel" + }, + "ru":{ + "edit": "Изменить", + "display":"Показать", + "add":"Добавить", + "enter_data":"Введите вопрос:", + "enter_result":"Введите ответ:", + "ok":"Ок", + "cancel":"Отмена" + }, + "fr":{ + "edit": "Modifier", + "display":"Afficher", + "add":"Ajouter", + "enter_data":"Entrer les données:", + "enter_result":"Entrez le résultat:", + "ok":"Ok", + "cancel":"Annuler" + } +}; + diff --git a/resources/library/sankoreInteractivities/ord-phrases.wgt/template/scripts/template2.js b/resources/library/sankoreInteractivities/ord-phrases.wgt/template/scripts/template2.js index 7e6e14a9..bacfa21d 100644 --- a/resources/library/sankoreInteractivities/ord-phrases.wgt/template/scripts/template2.js +++ b/resources/library/sankoreInteractivities/ord-phrases.wgt/template/scripts/template2.js @@ -208,7 +208,7 @@ function modeEdit() // if no sankore api, insert ok button if( !isSankore ) { - $( "#mp_setup" ).empty().append( '' ); + $( "#mp_setup" ).empty().append( '' ); $( "#mp_setup input:button" ).click( function(){ modeView(); }); diff --git a/resources/library/sankoreInteractivities/ord-words.wgt/template/scripts/template2.js b/resources/library/sankoreInteractivities/ord-words.wgt/template/scripts/template2.js index bb06994c..5c40bb64 100644 --- a/resources/library/sankoreInteractivities/ord-words.wgt/template/scripts/template2.js +++ b/resources/library/sankoreInteractivities/ord-words.wgt/template/scripts/template2.js @@ -236,7 +236,7 @@ function modeEdit() // if no sankore api, insert ok button if( !isSankore ) { - $( "#mp_setup" ).empty().append( '' ); + $( "#mp_setup" ).empty().append( '' ); $( "#mp_setup input:button" ).click( function(){ modeView(); }); @@ -249,9 +249,11 @@ $(window).mouseout(function(){ if(window.sankore){ var str = ""; $( "#mp_word .letter" ).each( function(){ - str += $(this).text(); + str += $(this).text() + "*"; }); - + + str = str.substr(0, str.length - 1); + sankore.setPreference("currentOrdWords", str); sankore.setPreference("rightOrdWords", word); } From 2ceefe7303ffcc65877ad5a993ff0510b52636e1 Mon Sep 17 00:00:00 2001 From: Ivan Ilin Date: Thu, 15 Dec 2011 19:18:40 +0200 Subject: [PATCH 13/20] created undoredo stack blocker --- src/adaptors/UBCFFSubsetAdaptor.cpp | 1 + src/domain/UBGraphicsScene.cpp | 84 ++++++++++++++++++++--------- src/domain/UBGraphicsScene.h | 7 +++ 3 files changed, 67 insertions(+), 25 deletions(-) diff --git a/src/adaptors/UBCFFSubsetAdaptor.cpp b/src/adaptors/UBCFFSubsetAdaptor.cpp index 223d9b2f..aeb0a2a8 100644 --- a/src/adaptors/UBCFFSubsetAdaptor.cpp +++ b/src/adaptors/UBCFFSubsetAdaptor.cpp @@ -1002,6 +1002,7 @@ void UBCFFSubsetAdaptor::UBCFFSubsetReader::repositionSvgItem(QGraphicsItem *ite bool UBCFFSubsetAdaptor::UBCFFSubsetReader::createNewScene() { mCurrentScene = UBPersistenceManager::persistenceManager()->createDocumentSceneAt(mProxy, mProxy->pageCount()); + mCurrentScene->setURStackEnable(false); mCurrentSceneRect = mCurrentScene->normalizedSceneRect(); mVBTransFactor = qMin(mCurrentSceneRect.width() / mViewPort.width(), mCurrentSceneRect.height() / mViewPort.height()); diff --git a/src/domain/UBGraphicsScene.cpp b/src/domain/UBGraphicsScene.cpp index 6625095e..e51ee548 100644 --- a/src/domain/UBGraphicsScene.cpp +++ b/src/domain/UBGraphicsScene.cpp @@ -93,8 +93,10 @@ UBGraphicsScene::UBGraphicsScene(UBDocumentProxy* parent) , mCurrentStroke(0) , mShouldUseOMP(true) , mItemCount(0) + , enableUndoRedoStack(true) , magniferControlViewWidget(0) , magniferDisplayViewWidget(0) + { #ifdef __ppc__ @@ -139,6 +141,8 @@ UBGraphicsScene::UBGraphicsScene(UBDocumentProxy* parent) } connect(this, SIGNAL(selectionChanged()), this, SLOT(selectionChangedProcessing())); + + } UBGraphicsScene::~UBGraphicsScene() @@ -371,10 +375,13 @@ bool UBGraphicsScene::inputDeviceRelease() if (mRemovedItems.size() > 0 || mAddedItems.size() > 0) { - UBGraphicsItemUndoCommand* udcmd = new UBGraphicsItemUndoCommand(this, mRemovedItems, mAddedItems); //deleted by the undoStack - if(UBApplication::undoStack) - UBApplication::undoStack->push(udcmd); + if (enableUndoRedoStack) { //should be deleted after scene own undo stack implemented + UBGraphicsItemUndoCommand* udcmd = new UBGraphicsItemUndoCommand(this, mRemovedItems, mAddedItems); //deleted by the undoStack + + if(UBApplication::undoStack) + UBApplication::undoStack->push(udcmd); + } mRemovedItems.clear(); mAddedItems.clear(); @@ -961,8 +968,11 @@ void UBGraphicsScene::clearItemsAndAnnotations() // force refresh, QT is a bit lazy and take a lot of time (nb item ^2 ?) to trigger repaint update(sceneRect()); - UBGraphicsItemUndoCommand* uc = new UBGraphicsItemUndoCommand(this, removedItems, emptyList); - UBApplication::undoStack->push(uc); + if (enableUndoRedoStack) { //should be deleted after scene own undo stack implemented + UBGraphicsItemUndoCommand* uc = new UBGraphicsItemUndoCommand(this, removedItems, emptyList); + UBApplication::undoStack->push(uc); + } + setDocumentUpdated(); } @@ -995,8 +1005,12 @@ void UBGraphicsScene::clearItems() // force refresh, QT is a bit lazy and take a lot of time (nb item ^2 ?) to trigger repaint update(sceneRect()); - UBGraphicsItemUndoCommand* uc = new UBGraphicsItemUndoCommand(this, removedItems, emptyList); - UBApplication::undoStack->push(uc); + + if (enableUndoRedoStack) { //should be deleted after scene own undo stack implemented + UBGraphicsItemUndoCommand* uc = new UBGraphicsItemUndoCommand(this, removedItems, emptyList); + UBApplication::undoStack->push(uc); + } + setDocumentUpdated(); } @@ -1022,8 +1036,12 @@ void UBGraphicsScene::clearAnnotations() // force refresh, QT is a bit lazy and take a lot of time (nb item ^2 ?) to trigger repaint update(sceneRect()); - UBGraphicsItemUndoCommand* uc = new UBGraphicsItemUndoCommand(this, removedItems, emptyList); - UBApplication::undoStack->push(uc); + + if (enableUndoRedoStack) { //should be deleted after scene own undo stack implemented + UBGraphicsItemUndoCommand* uc = new UBGraphicsItemUndoCommand(this, removedItems, emptyList); + UBApplication::undoStack->push(uc); + } + setDocumentUpdated(); } @@ -1044,8 +1062,10 @@ UBGraphicsPixmapItem* UBGraphicsScene::addPixmap(const QPixmap& pPixmap, const Q addItem(pixmapItem); - UBGraphicsItemUndoCommand* uc = new UBGraphicsItemUndoCommand(this, 0, pixmapItem); - UBApplication::undoStack->push(uc); + if (enableUndoRedoStack) { //should be deleted after scene own undo stack implemented + UBGraphicsItemUndoCommand* uc = new UBGraphicsItemUndoCommand(this, 0, pixmapItem); + UBApplication::undoStack->push(uc); + } pixmapItem->scale(pScaleFactor, pScaleFactor); @@ -1070,8 +1090,10 @@ UBGraphicsPixmapItem* UBGraphicsScene::addPixmap(const QPixmap& pPixmap, const Q void UBGraphicsScene::textUndoCommandAdded(UBGraphicsTextItem *textItem) { - UBGraphicsTextItemUndoCommand* uc = new UBGraphicsTextItemUndoCommand(textItem); - UBApplication::undoStack->push(uc); + if (enableUndoRedoStack) { //should be deleted after scene own undo stack implemented + UBGraphicsTextItemUndoCommand* uc = new UBGraphicsTextItemUndoCommand(textItem); + UBApplication::undoStack->push(uc); + } } @@ -1090,8 +1112,10 @@ UBGraphicsVideoItem* UBGraphicsScene::addVideo(const QUrl& pVideoFileUrl, bool s videoItem->show(); - UBGraphicsItemUndoCommand* uc = new UBGraphicsItemUndoCommand(this, 0, videoItem); - UBApplication::undoStack->push(uc); + if (enableUndoRedoStack) { //should be deleted after scene own undo stack implemented + UBGraphicsItemUndoCommand* uc = new UBGraphicsItemUndoCommand(this, 0, videoItem); + UBApplication::undoStack->push(uc); + } videoItem->mediaObject()->play(); @@ -1121,8 +1145,10 @@ UBGraphicsAudioItem* UBGraphicsScene::addAudio(const QUrl& pAudioFileUrl, bool s audioItem->show(); - UBGraphicsItemUndoCommand* uc = new UBGraphicsItemUndoCommand(this, 0, audioItem); - UBApplication::undoStack->push(uc); + if (enableUndoRedoStack) { //should be deleted after scene own undo stack implemented + UBGraphicsItemUndoCommand* uc = new UBGraphicsItemUndoCommand(this, 0, audioItem); + UBApplication::undoStack->push(uc); + } audioItem->mediaObject()->play(); @@ -1197,8 +1223,10 @@ void UBGraphicsScene::addGraphicsWidget(UBGraphicsWidgetItem* graphicsWidget, co // graphicsWidget->widgetWebView()->loadMainHtml(); graphicsWidget->setSelected(true); - UBGraphicsItemUndoCommand* uc = new UBGraphicsItemUndoCommand(this, 0, graphicsWidget); - UBApplication::undoStack->push(uc); + if (enableUndoRedoStack) { //should be deleted after scene own undo stack implemented + UBGraphicsItemUndoCommand* uc = new UBGraphicsItemUndoCommand(this, 0, graphicsWidget); + UBApplication::undoStack->push(uc); + } setDocumentUpdated(); } @@ -1253,8 +1281,10 @@ UBGraphicsSvgItem* UBGraphicsScene::addSvg(const QUrl& pSvgFileUrl, const QPoint addItem(svgItem); - UBGraphicsItemUndoCommand* uc = new UBGraphicsItemUndoCommand(this, 0, svgItem); - UBApplication::undoStack->push(uc); + if (enableUndoRedoStack) { //should be deleted after scene own undo stack implemented + UBGraphicsItemUndoCommand* uc = new UBGraphicsItemUndoCommand(this, 0, svgItem); + UBApplication::undoStack->push(uc); + } setDocumentUpdated(); @@ -1314,8 +1344,10 @@ UBGraphicsTextItem* UBGraphicsScene::addTextWithFont(const QString& pString, con textItem->show(); - UBGraphicsItemUndoCommand* uc = new UBGraphicsItemUndoCommand(this, 0, textItem); - UBApplication::undoStack->push(uc); + if (enableUndoRedoStack) { //should be deleted after scene own undo stack implemented + UBGraphicsItemUndoCommand* uc = new UBGraphicsItemUndoCommand(this, 0, textItem); + UBApplication::undoStack->push(uc); + } connect(textItem, SIGNAL(textUndoCommandAdded(UBGraphicsTextItem *)), this, SLOT(textUndoCommandAdded(UBGraphicsTextItem *))); @@ -1337,8 +1369,10 @@ UBGraphicsTextItem *UBGraphicsScene::addTextHtml(const QString &pString, const Q addItem(textItem); textItem->show(); - UBGraphicsItemUndoCommand* uc = new UBGraphicsItemUndoCommand(this, 0, textItem); - UBApplication::undoStack->push(uc); + if (enableUndoRedoStack) { //should be deleted after scene own undo stack implemented + UBGraphicsItemUndoCommand* uc = new UBGraphicsItemUndoCommand(this, 0, textItem); + UBApplication::undoStack->push(uc); + } connect(textItem, SIGNAL(textUndoCommandAdded(UBGraphicsTextItem *)), this, SLOT(textUndoCommandAdded(UBGraphicsTextItem *))); diff --git a/src/domain/UBGraphicsScene.h b/src/domain/UBGraphicsScene.h index f4364e34..416c2344 100644 --- a/src/domain/UBGraphicsScene.h +++ b/src/domain/UBGraphicsScene.h @@ -55,6 +55,8 @@ class UBGraphicsScene: public UBCoreGraphicsScene, public UBItem Q_OBJECT public: + // tmp stub for divide addings scene objects from undo mechanism implementation + void setURStackEnable(bool set = true) {enableUndoRedoStack = set;} UBGraphicsScene(UBDocumentProxy *parent); virtual ~UBGraphicsScene(); @@ -363,8 +365,13 @@ class UBGraphicsScene: public UBCoreGraphicsScene, public UBItem //int mMesure1Ms, mMesure2Ms; bool mHasCache; + // tmp stub for divide addings scene objects from undo mechanism implementation + bool enableUndoRedoStack; + UBMagnifier *magniferControlViewWidget; UBMagnifier *magniferDisplayViewWidget; + + }; #endif /* UBGRAPHICSSCENE_H_ */ From 7cd7d93c79b37f99c3853037b7bf5b836621d21e Mon Sep 17 00:00:00 2001 From: Anatoly Mihalchenko Date: Fri, 16 Dec 2011 10:08:59 +0300 Subject: [PATCH 14/20] SANKORE-436 fix memory leak with switch page --- src/gui/UBDocumentNavigator.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/gui/UBDocumentNavigator.cpp b/src/gui/UBDocumentNavigator.cpp index fea695f4..f69c2106 100644 --- a/src/gui/UBDocumentNavigator.cpp +++ b/src/gui/UBDocumentNavigator.cpp @@ -161,6 +161,7 @@ void UBDocumentNavigator::updateSpecificThumbnail(int iPage) mScene->removeItem(pItem); mScene->addItem(pixmapItem); mThumbnails.replace(iPage, pixmapItem); + delete pItem; } } } From cef6e1a88d6940166ab44a53208583220804a893 Mon Sep 17 00:00:00 2001 From: Anatoly Mihalchenko Date: Fri, 16 Dec 2011 12:16:47 +0300 Subject: [PATCH 15/20] SANKORE-428 move BlackYello.wgt and Choisir.wgt to interactive folder in source folder .\Sankore\Sankore-3.1\resources\library --- .../interactive/BlackYellow.wgt/config.xml | 16 - .../interactive/BlackYellow.wgt/css/basic.css | 506 ------------------ .../interactive/BlackYellow.wgt/icon.png | Bin 1053 -> 0 bytes .../BlackYellow.wgt/images/greySquare2.png | Bin 214 -> 0 bytes .../BlackYellow.wgt/images/icon-close.png | Bin 1507 -> 0 bytes .../BlackYellow.wgt/images/popupBack.png | Bin 861 -> 0 bytes .../interactive/BlackYellow.wgt/index.html | 26 - .../BlackYellow.wgt/scripts/blackYellow.js | 409 -------------- .../scripts/jquery.disable.text.select.js | 62 --- .../BlackYellow.wgt/scripts/languages.js | 30 -- .../Choisir.wgt/images/greySquare.png | Bin 451 -> 0 bytes .../Choisir.wgt/scripts/jquery-1.6.2.min.js | 18 - .../BlackYellow.wgt/scripts/blackYellow.js | 28 +- .../Choisir.wgt/config.xml | 0 .../Choisir.wgt/css/basic.css | 0 .../Choisir.wgt/icon.png | Bin .../Choisir.wgt/images/1thOption.png | Bin .../Choisir.wgt/images/2thOption.png | Bin .../Choisir.wgt/images/3thOption.png | Bin .../Choisir.wgt/images/addSomething.png | Bin .../Choisir.wgt/images/bigBlackClose.png | Bin .../Choisir.wgt/images/blueClose.png | Bin .../Choisir.wgt/images/boldBlackClose.png | Bin .../Choisir.wgt/images/boldClose.png | Bin .../Choisir.wgt/images/boldGreyClose.png | Bin .../Choisir.wgt/images/bottomLeftThing.png | Bin .../Choisir.wgt/images/complete.png | Bin .../Choisir.wgt/images/grayClose.png | Bin .../Choisir.wgt}/images/greySquare.png | Bin .../Choisir.wgt/images/greySquareArrow.png | Bin .../Choisir.wgt/images/horSep.png | Bin .../Choisir.wgt/images/leftThing.png | Bin .../Choisir.wgt/images/lessBottomBorder.png | Bin .../Choisir.wgt/images/lessTopBorder.png | Bin .../Choisir.wgt/images/lowerBack.png | Bin .../Choisir.wgt/images/lowerBorder.png | Bin .../Choisir.wgt/images/lowerBorder2.png | Bin .../Choisir.wgt/images/niceBack.png | Bin .../Choisir.wgt/images/niceBack2.png | Bin .../Choisir.wgt/images/niceBack3.png | Bin .../Choisir.wgt/images/pencil.png | Bin .../Choisir.wgt/images/point.png | Bin .../Choisir.wgt/images/redBoldClose.png | Bin .../Choisir.wgt/images/reload.jpg | Bin .../Choisir.wgt/images/reload2.png | Bin .../Choisir.wgt/images/rightThing.png | Bin .../Choisir.wgt/images/separator.png | Bin .../Choisir.wgt/images/separator2.png | Bin .../Choisir.wgt/images/settings.png | Bin .../Choisir.wgt/images/sidePoints.png | Bin .../Choisir.wgt/images/spanner.png | Bin .../Choisir.wgt/images/star.png | Bin .../Choisir.wgt/images/stop.jpg | Bin .../Choisir.wgt/images/tool.png | Bin .../Choisir.wgt/images/topLeftThing.png | Bin .../Choisir.wgt/images/transparentBack.png | Bin .../Choisir.wgt/images/upperBorder.png | Bin .../Choisir.wgt/images/upperBorder2.png | Bin .../Choisir.wgt/index.html | 0 .../Choisir.wgt}/scripts/jquery-1.6.2.min.js | 0 .../Choisir.wgt/scripts/languages.js | 0 .../Choisir.wgt/scripts/selQuestionApp.js | 0 62 files changed, 10 insertions(+), 1085 deletions(-) delete mode 100644 resources/library/interactive/BlackYellow.wgt/config.xml delete mode 100644 resources/library/interactive/BlackYellow.wgt/css/basic.css delete mode 100644 resources/library/interactive/BlackYellow.wgt/icon.png delete mode 100644 resources/library/interactive/BlackYellow.wgt/images/greySquare2.png delete mode 100644 resources/library/interactive/BlackYellow.wgt/images/icon-close.png delete mode 100644 resources/library/interactive/BlackYellow.wgt/images/popupBack.png delete mode 100644 resources/library/interactive/BlackYellow.wgt/index.html delete mode 100644 resources/library/interactive/BlackYellow.wgt/scripts/blackYellow.js delete mode 100644 resources/library/interactive/BlackYellow.wgt/scripts/jquery.disable.text.select.js delete mode 100644 resources/library/interactive/BlackYellow.wgt/scripts/languages.js delete mode 100644 resources/library/interactive/Choisir.wgt/images/greySquare.png delete mode 100644 resources/library/interactive/Choisir.wgt/scripts/jquery-1.6.2.min.js rename resources/library/{interactive => sankoreInteractivities}/Choisir.wgt/config.xml (100%) rename resources/library/{interactive => sankoreInteractivities}/Choisir.wgt/css/basic.css (100%) rename resources/library/{interactive => sankoreInteractivities}/Choisir.wgt/icon.png (100%) rename resources/library/{interactive => sankoreInteractivities}/Choisir.wgt/images/1thOption.png (100%) rename resources/library/{interactive => sankoreInteractivities}/Choisir.wgt/images/2thOption.png (100%) rename resources/library/{interactive => sankoreInteractivities}/Choisir.wgt/images/3thOption.png (100%) rename resources/library/{interactive => sankoreInteractivities}/Choisir.wgt/images/addSomething.png (100%) rename resources/library/{interactive => sankoreInteractivities}/Choisir.wgt/images/bigBlackClose.png (100%) rename resources/library/{interactive => sankoreInteractivities}/Choisir.wgt/images/blueClose.png (100%) rename resources/library/{interactive => sankoreInteractivities}/Choisir.wgt/images/boldBlackClose.png (100%) rename resources/library/{interactive => sankoreInteractivities}/Choisir.wgt/images/boldClose.png (100%) rename resources/library/{interactive => sankoreInteractivities}/Choisir.wgt/images/boldGreyClose.png (100%) rename resources/library/{interactive => sankoreInteractivities}/Choisir.wgt/images/bottomLeftThing.png (100%) rename resources/library/{interactive => sankoreInteractivities}/Choisir.wgt/images/complete.png (100%) rename resources/library/{interactive => sankoreInteractivities}/Choisir.wgt/images/grayClose.png (100%) rename resources/library/{interactive/BlackYellow.wgt => sankoreInteractivities/Choisir.wgt}/images/greySquare.png (100%) rename resources/library/{interactive => sankoreInteractivities}/Choisir.wgt/images/greySquareArrow.png (100%) rename resources/library/{interactive => sankoreInteractivities}/Choisir.wgt/images/horSep.png (100%) rename resources/library/{interactive => sankoreInteractivities}/Choisir.wgt/images/leftThing.png (100%) rename resources/library/{interactive => sankoreInteractivities}/Choisir.wgt/images/lessBottomBorder.png (100%) rename resources/library/{interactive => sankoreInteractivities}/Choisir.wgt/images/lessTopBorder.png (100%) rename resources/library/{interactive => sankoreInteractivities}/Choisir.wgt/images/lowerBack.png (100%) rename resources/library/{interactive => sankoreInteractivities}/Choisir.wgt/images/lowerBorder.png (100%) rename resources/library/{interactive => sankoreInteractivities}/Choisir.wgt/images/lowerBorder2.png (100%) rename resources/library/{interactive => sankoreInteractivities}/Choisir.wgt/images/niceBack.png (100%) rename resources/library/{interactive => sankoreInteractivities}/Choisir.wgt/images/niceBack2.png (100%) rename resources/library/{interactive => sankoreInteractivities}/Choisir.wgt/images/niceBack3.png (100%) rename resources/library/{interactive => sankoreInteractivities}/Choisir.wgt/images/pencil.png (100%) rename resources/library/{interactive => sankoreInteractivities}/Choisir.wgt/images/point.png (100%) rename resources/library/{interactive => sankoreInteractivities}/Choisir.wgt/images/redBoldClose.png (100%) rename resources/library/{interactive => sankoreInteractivities}/Choisir.wgt/images/reload.jpg (100%) rename resources/library/{interactive => sankoreInteractivities}/Choisir.wgt/images/reload2.png (100%) rename resources/library/{interactive => sankoreInteractivities}/Choisir.wgt/images/rightThing.png (100%) rename resources/library/{interactive => sankoreInteractivities}/Choisir.wgt/images/separator.png (100%) rename resources/library/{interactive => sankoreInteractivities}/Choisir.wgt/images/separator2.png (100%) rename resources/library/{interactive => sankoreInteractivities}/Choisir.wgt/images/settings.png (100%) rename resources/library/{interactive => sankoreInteractivities}/Choisir.wgt/images/sidePoints.png (100%) rename resources/library/{interactive => sankoreInteractivities}/Choisir.wgt/images/spanner.png (100%) rename resources/library/{interactive => sankoreInteractivities}/Choisir.wgt/images/star.png (100%) rename resources/library/{interactive => sankoreInteractivities}/Choisir.wgt/images/stop.jpg (100%) rename resources/library/{interactive => sankoreInteractivities}/Choisir.wgt/images/tool.png (100%) rename resources/library/{interactive => sankoreInteractivities}/Choisir.wgt/images/topLeftThing.png (100%) rename resources/library/{interactive => sankoreInteractivities}/Choisir.wgt/images/transparentBack.png (100%) rename resources/library/{interactive => sankoreInteractivities}/Choisir.wgt/images/upperBorder.png (100%) rename resources/library/{interactive => sankoreInteractivities}/Choisir.wgt/images/upperBorder2.png (100%) rename resources/library/{interactive => sankoreInteractivities}/Choisir.wgt/index.html (100%) rename resources/library/{interactive/BlackYellow.wgt => sankoreInteractivities/Choisir.wgt}/scripts/jquery-1.6.2.min.js (100%) rename resources/library/{interactive => sankoreInteractivities}/Choisir.wgt/scripts/languages.js (100%) rename resources/library/{interactive => sankoreInteractivities}/Choisir.wgt/scripts/selQuestionApp.js (100%) diff --git a/resources/library/interactive/BlackYellow.wgt/config.xml b/resources/library/interactive/BlackYellow.wgt/config.xml deleted file mode 100644 index 0d81a76c..00000000 --- a/resources/library/interactive/BlackYellow.wgt/config.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - Choisir - Mnemis SA - Choisir widget - - - diff --git a/resources/library/interactive/BlackYellow.wgt/css/basic.css b/resources/library/interactive/BlackYellow.wgt/css/basic.css deleted file mode 100644 index a01e8aad..00000000 --- a/resources/library/interactive/BlackYellow.wgt/css/basic.css +++ /dev/null @@ -1,506 +0,0 @@ -body{ - width: 100%; - padding: 0; - margin: 0 auto; - height: auto; - background-color: #666; - overflow: hidden; -} - -.toggleButton, .addButton{ - width: 20px; - height: 28px; - border: none; - background-image: url(../images/greySquare.png); - font-weight: bold; - font-family: Verdana; - color: yellow; - cursor: pointer; - -webkit-border-top-left-radius: 5px; - -webkit-border-bottom-left-radius: 5px; - border-top-left-radius: 5px; - border-bottom-left-radius: 5px; -} - -.buttonDiv, .addButtonDiv{ - position: fixed; - float: right; - z-index: 1; -} - -.addButtonDiv{ - display: none; -} - -.leftDiv{ - width: 50%; - float: left; - background-color: black; - -webkit-border-top-left-radius: 3px; - -webkit-border-bottom-left-radius: 3px; - border-top-left-radius: 3px; - border-bottom-left-radius: 3px; -} - -.rightDiv{ - width: 50%; - float: right; - background-color: yellow; - -webkit-border-top-right-radius: 3px; - -webkit-border-bottom-right-radius: 3px; - border-top-right-radius: 3px; - border-bottom-right-radius: 3px; -} - -.shadowDiv{ - width: 100%; - display: none; - opacity: 0.7; - background-color: black; - -webkit-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - border-radius: 3px; - z-index: 100; -} - -.popupBack{ - width: 360px; - height: 138px; - position: absolute; - background-image: url(../images/popupBack.png); - background-repeat: repeat; - -webkit-border-radius: 10px; - -webkit-border-radius: 10px; - border-radius: 10px; - border-radius: 10px; - display: none; - z-index: 500; -} - -.popupContainers{ - float: left; - width: 98%; - height: 36px; - padding: 5px 3px 5px 0; - overflow: hidden; -} - -.popupLabels{ - color: yellow; - margin: 0 5px; -} - -.expresionInput{ - float: right; - width: 70%; - border: none; - font-family: Verdana,Arial,Helvetica,sans-serif; - background-color: #ffc; - -webkit-border-radius: 5px; - -webkit-border-radius: 5px; - border-radius: 5px; - border-radius: 5px; -} - -.popupButtons{ - float: right; - width: 74px; - height: 28px; - margin: 4px 5px; - border: none; - background-image: url(../images/greySquare2.png); - font-family: Verdana; - color: yellow; - cursor: pointer; - -webkit-border-radius: 5px; - -webkit-border-radius: 5px; - border-radius: 5px; - border-radius: 5px; -} - -.readyTask{ - margin: 2px; - padding: 2px; - width: 100%; - height: 100%; - overflow: hidden; - z-index: 100; -} - -.taskContainer{ - width: 96%; - padding: 2px; - float: left; - text-align: center; - font-family: Verdana,Arial,Helvetica,sans-serif; - font-weight: bold; -} - -.editContainer{ - position: absolute; - border: 5px solid #c7c7c7; - -webkit-border-radius: 5px; - -webkit-border-radius: 5px; - border-radius: 5px; - border-radius: 5px; -} - -.closeItem{ - width: 30px; - height: 30px; - position: absolute; - background-image: url(../images/icon-close.png); - right: -15px; - top: -15px; -} - -.rightResize{ - width: 10px; - height: 65%; - cursor: e-resize; - position: absolute; - background: none; - right: -10px; - top: 20%; -} - -.bottomResize{ - width: 65%; - height: 10px; - cursor: n-resize; - position: absolute; - background: none; - bottom: -10px; - left: 20%; -} -/* -.addQstDiv{ - float: left; - padding: 5px; - margin: 2px; - font-family: Verdana,Arial,Helvetica,sans-serif; - font-size: large; -} - -.addQstButton{ - margin: 0; - border: none; - background: none; - color: #99ccff; - cursor: pointer; -} - -#addQsqSpan1{ - font-size: 30px; - margin-right: 10px !important; -} - -.qstDiv{ - width: 90%; - margin: 2px auto; - padding: 5px; - float: left; - font-family: Verdana,Arial,Helvetica,sans-serif; -} - -.qstDivDisplay{ - width: 90%; - margin: 5px 5%; - padding: 5px; - float: left; - font-family: Verdana,Arial,Helvetica,sans-serif; - border: 2px solid #cccccc; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; - border-radius: 5px; - -moz-box-shadow: #dadada -1px 0 4px; - -webkit-box-shadow: #dadada -1px 0 4px; - box-shadow: #dadada -1px 0 4px; -} - -.spanOptConn{ - float: left; - width: 100%; -} - -.qstNumber{ - float: left; - font-size: 30px; - margin-left: 10px !important; - color: #00C6FF; -} - -.qstOptions{ - float: right; -} - -.changeOptions{ - border: none; - background-image: url(../images/grayClose.png); - background-color: white; - background-repeat: no-repeat; - background-position: 0 50%; - width: auto; - padding-left: 18px; - color: #00C6FF; - cursor: pointer; -} - -.applyChanges{ - border: none; - background-image: url(../images/blueClose.png); - background-color: white; - background-repeat: no-repeat; - background-position: 0 50%; - width: auto; - padding-left: 18px; - color: #00C6FF; - cursor: pointer; -} - -.qstDelete{ - border: none; - background-image: url(../images/boldClose.png); - background-color: white; - background-repeat: no-repeat; - background-position: 0 50%; - width: auto; - padding-left: 28px; - line-height: 35px; - cursor: pointer; -} - -.qstContent{ - float: left; - padding: 3px; - margin-left: 10px; - margin-bottom: 10px; - width: 95%; - font-family: Verdana,Arial,Helvetica,sans-serif; - font-size: small; - border: 3px solid #ccc; - -webkit-border-radius: 5px; - border-radius: 5px; - -moz-box-shadow: #dadada -1px 0 4px; - -webkit-box-shadow: #dadada -1px 0 4px; - box-shadow: #dadada -1px 0 4px; -} - -.qstContentDisplay{ - float: left; - padding: 5px; - margin: 10px; - width: 100%; - font-family: Verdana,Arial,Helvetica,sans-serif; - color:#333333; -} - -.ansDiv{ - float: left; - margin-left: 100px; - width: 80%; -} - -.ansAdd{ - border: none; - background: url(../images/blueClose.png) -0px -0px no-repeat; - background-color: white; - width: auto; - padding-left: 20px; - line-height: 24px; - color: #99ccff; - cursor: pointer; -} - -.newAnswer{ - float: left; - width: 100%; - margin: 3px; - -webkit-border-radius: 5px; - border-radius: 5px; -} - -.ansSpan{ - border: none; - background-color: white; - color: #00C6FF; - font-size: 14px; - float: left; - margin: 0 3px; - width: 20px; -} - -.ansSpanDisplay{ - color: #00C6FF; - font-size: 14px; - float: left; -} - -.ansContent{ - padding: 1px 3px 3px 3px; - margin-left: 5px; - font-family: Verdana,Arial,Helvetica,sans-serif; - font-size: small; - width: 80%; - float: left; - border: 3px solid #ccc; - -webkit-border-radius: 5px; - border-radius: 5px; - -moz-box-shadow: #dadada -1px 0 4px; - -webkit-box-shadow: #dadada -1px 0 4px; - box-shadow: #dadada -1px 0 4px; -} - -.ansContentDisplay{ - padding: 1px 3px 3px 3px; - margin-left: 5px; - font-family: Verdana,Arial,Helvetica,sans-serif; - font-size: small; - width: 90%; - float: left; - -webkit-border-radius: 5px; - border-radius: 5px; -} - -.ansDelete{ - float: left; - border: none; - background-image: url(../images/boldGreyClose.png); - background-color: white; - background-repeat: no-repeat; - background-position: 0 50%; - cursor: pointer; - margin: 0 5px; -} - -.qstOptChoice{ - width: 80%; - margin: 10px 10%; - float: left; - background-color: #F3F3F2; - border-top-width: 1px; - border-right-width: 1px; - border-bottom-width: 1px; - border-left-width: 1px; - border-top-style: solid; - border-right-style: solid; - border-bottom-style: solid; - border-left-style: solid; - border-top-color: #ECECEB; - border-right-color: #ECECEB; - border-bottom-color: #ECECEB; - border-left-color: #ECECEB; - border-top-left-radius: 5px 5px; - border-top-right-radius: 5px 5px; - border-bottom-right-radius: 5px 5px; - border-bottom-left-radius: 5px 5px; - -webkit-box-shadow: #dededd 0 0 2px inset; - padding: 0; -} - -.optDescImg{ - padding: 2px; - margin: 5px; - background: url(../images/tool.png) -0px -0px no-repeat; - float: left; - margin-left: 20px; - width: 56px; - height: 51px; -} - -.optDescText{ - text-align: center; - width: 70%; - color: #666666; - float: left; - font-size: small; - font-family: Verdana,Arial,Helvetica,sans-serif; - margin: 3px 5px; - padding: 5px; -} - -.type{ - float: left; - margin: 10px; - padding: 5px; - -webkit-border-radius: 5px; - border-radius: 5px; - -moz-box-shadow: #dadada -1px 0 4px; - -webkit-box-shadow: #dadada -1px 0 4px; - box-shadow: #dadada -1px 0 4px; -} - -.contentType{ - width: 100%; - padding: 0; - margin: 0; - background-color: white; - border-bottom: 1px solid #DFDFDE; - border-top-left-radius: 5px 5px; - border-top-right-radius: 5px 5px; -} - -.divType1, .divType2, .divType3 { - width: 122px; - height: 97px; - padding: 0 15px; - margin-left: 30px; -} - -.divType1{ - background: url(../images/1thOption.png)-0px -0px no-repeat; -} - -.divType2{ - background: url(../images/2thOption.png)-0px -0px no-repeat; -} - -.divType3{ - background: url(../images/3thOption.png)-0px -0px no-repeat; -} - -.textType{ - width: 160px; - font-size: small; - font-family: Verdana,Arial,Helvetica,sans-serif; - color: #666; - padding: 3px; - margin-left: 20px; -} - -.radioDiv{ - background-color: #F5F5F5; - border-top: 1px solid white; - width: 100%; - padding: 0; - margin: 0; - height: 30px; - border-bottom-right-radius: 5px 5px; - border-bottom-left-radius: 5px 5px; -} - -.radioType{ - float: right; - margin: 2px; - padding: 3px; -} - -.popupWordInfo{ - position: absolute; - display: none; - width: 100px; - height: 20px; - top: 0; - left: 0; - text-align: center; - border: 1px solid #B9B9B9; - background-color: #eaebeb; - color: #666; - -webkit-border-radius: 5px; - border-radius: 5px; - -webkit-box-shadow: #dadada -1px 0 4px; - box-shadow: #dadada -1px 0 4px; - z-index: 100; -} -*/ \ No newline at end of file diff --git a/resources/library/interactive/BlackYellow.wgt/icon.png b/resources/library/interactive/BlackYellow.wgt/icon.png deleted file mode 100644 index 8c64a6a81ec0691e770df1bba7ff60bb9b26c70f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1053 zcmb7D{WIGK9R4I})XR`~f4S3i^t{YzP;#-ZQcV=|R-)Kyi$%O^N;uhY_Z`LJX0%pT zvC+sfSy!puAjx9u+QD+^E}Tz&kxTpA6b0taZ7U- za{#c6jNm31QLwwF6yu!%S()1z`9L*4aBw|Dsq-Ti|MClnH7v2&b zHii`O(R`i}5rIYny&jlMAP5i$puHW=oPmZ0U@(Bgf%SD*T!g_vV=@rYM5BTDcq6Yx zbVWRYNI~Qy-bAcJ{(|U%*pFC` zID_bkC`2qme1zD9n2AOm;+Jo18C;wYn`o5(f8bI>tUmx*AIUw+mp)i+oh@2o(0DnO zHW95E>mgTIQb{ag-kt2Ir&FdbCh9u}pN#pB^gLGGDEai?cdQ(~u-43NS(Q)qTFq#>ZRs0=4T|BPCv=?`Kxi4blXdMB;vC8F+)Zan zx;)1qTI%712icJN7*`aTzI(?PATj$^hV0Af0_XsrllRX(pfaaldkcLxYcwn1wV+`)u_clqq1#fn6-yc!cs0nkb9n+a$X+H^IgywRy zSXxu!$Z4*SQxl}{;)rzo4>(o9it7i?N4;$6TK;@i8R-y3OQ!3{DPWBKo+^1wkqp($LyXvS{!9mwV@wvj@ YtE6;Ny z@A)-#xU)-J6}JcWOB@Ode;8O|CZt=%(Sox4^~pERUj6eGZz6SYHk+EsN;6o5E&HBd z`u=T&rL_lJ@LSF5A$Q?zJO8Z0K8w+?8E+L`;!rxealO9g;*Z;Fq=r0uIbU*$x234; zzds{`ZgvjqC-O<|0q3AB{j>54xZ9RC@r>HV*2>-Ye#I_}smM4jBefjN5euKUe5)k1 z9}YX-(|o3xU!;e+NRRETrf*)@dNjHtR>s8*EKVNz=EYL^*S2HQoz8;N0rmRa)*rds cuU6WD0@}Xl&KE=6T;p>2o?O!u|Srw#Q)W-=~g($@^iH5Tk`d%-?cw2}%pE)tDgY(m6A=;N zpP!$vtE;O!S6NwUzIN@}`P$mrgvQ3k#MszaV|I47v8=2t9REWC0s=I&hSw_GZNMEV z?Oa7l5)%`3_wL=Z^z`&(&CJZSEiW(sgx{eUD=RCn=jZ49y1Tn`($dmQI-M?vH=tr& zUMCUDSx~Ll>jTo$(<7Rino?f8c=5fI?CH~|`x6rr`_l1e&z^k;4@E{tM;rY8{k5cv zb;{il3zquQj%_xZxxKwTcXf63Pf`d=58&Dzc;GE$*2I9jH)?8Xb`}>G4_NjMtiO)9 zM`$#fK+-9-TuQ3;^YaUWa`U4{kMf~pn-q0*b?t?QhOSEqr7)RH8$&}wdxG^?SB$Z9 zOs*D_3qJ+NLu)phBayK-So#+&Zfk9dC{2qg~Yk_!ptLoT*jt+6dFEw^dG z!otEnV(sGI3l}bI#KpxOiE&_H;CfC@&X$jlk8@0^RIW`=Pw$eh-rn9XpzA%12XUz> z1Y$odG9Zgn#>dCMCE@$`@9&6}qe*NC?kg`Z-xkKh!ooH{;7BS;KJl8oyu2+MpPiju zz1{w}CLyb< zNoa0vZqFSlTBVazh@U6&fq{WdnlCOceyCEZKE_y>3$eGiccQ^yxPx~0F9}LZ3CXc8 zCMEZ#q@=jS{OZ-KTheBN-t8zUG^R>$93j?Y@FLuOb8KvEi3AG^3tf~@mLC^Wal)a^ z?uyq?U*`km7rb8wK9agx2VyHul|r1e->~qmxFHC2NmfY{i4F;JwbV;!9FE%W?ChMz z`=@|QayiNgh())_!eTpW^Yw9cc^X`~a%GcS=0B+CMvU2rLtIV@Zs3s$h2qlLvuE$1 ztiBf9N(xR(N^KRFgMH5C35?waE=e1RoPAF1%nCQ=qnUh;Cht7_OG``tx8<3cnVYC{ z2Wekl-z$vSflo-cv}MZKbZX#cAQj{{aeMd@{d!6u9~l|h%E-vrl*V10Nd5i&&IAPM z&lrCQ+#sE-+vSjO9*cZ*S%AwRzl#!T#U*d*$&)9)3kt~^YJ<2EZ4m|s2e*Wh;U4gJ zb#*lz3a!9h(#1ND9E&a&0e}we4}mNqhlRB3LEJD`P-?$P?^psRCnx{FrQsE-V~8y! z(k#|>>_x!k>I2X&sBqU^t=73I)=?z|M zWnFHsJ}#F%7BsSpC>!&DQs6V-0kZ!qpaahx^bF5D;JH$ky~Jyctjq0X@5uF*T|;p> z&pRh&nLq(h1e7p}cr24;th^?ab)0y;m3~F2xXc1si3x~iORRj-#PhR-=S(ac$ZJ*Z zz9u|YSX>olJ*CvCC;6ZL(IPv{VJ(q^i{7NL_lLWK^ zRt;YdcDXPvTvGlrsf0Gd1pX~J<-($HQ~A%N9@+~Vho1-6UDy)-Ri2t8p<}Q`_#N=X z1uwi%URz2qp;$E>cwEw51-YT#(HaE<3N@^FWa<6{Ii{Y|ss*ize#5v&nr=177WIf$ zCa6-pFeE(&=rqU*^*1eFP^c(2Bs`wd^#_@yW@wNiXerFWS2{LJ7*@_1vycjC9jq0; z*Kt%rTDflAhdhIJz=q(b9hW7T^0)B>(gJ-COT%wC?n^kjcgstNKow^2-jNc5k`_a1 z5xiHV4IAF=Q;ve3(k_W-f)2&7VcNT8iiP{vpAZ#-Iz_9Y*Sk?lI_NrWpC}TPDx9Ix zyJpHz&^cO``H(_rF)RW9)UjW}tTJOPgH%BqU`hA^N0qRWGf)j_h4$x&r5#r#Y$=b7 zjgWzyffe|y;~xpf%5!51G67wM9l&2YUP-u7-Wdf+#h78yV~6e}h^JoAt_Agq-W;xZ zy7e5czqC_9rJ^y$;PIAjD##*rllD)LP*fPIJ?iPYf{as_XurNUWNYJp{;0Dp`R3#D oyTL?h>C4>@-#$exJ-g2v@=)^QLGsBqzQ!}?Z0~OS`Eu~{e}+Vj(EtDd diff --git a/resources/library/interactive/BlackYellow.wgt/index.html b/resources/library/interactive/BlackYellow.wgt/index.html deleted file mode 100644 index a77d4cfd..00000000 --- a/resources/library/interactive/BlackYellow.wgt/index.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/resources/library/interactive/BlackYellow.wgt/scripts/blackYellow.js b/resources/library/interactive/BlackYellow.wgt/scripts/blackYellow.js deleted file mode 100644 index 3ce21a15..00000000 --- a/resources/library/interactive/BlackYellow.wgt/scripts/blackYellow.js +++ /dev/null @@ -1,409 +0,0 @@ -/* - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - - -function init(){ - - //variables - var toggleFlag = false; // detects toggling in toggle button - var endFlag = false; // ending of toggling in toggle button - var addToggleStart = false; // detects toggling in add button - var addToggleEnd = false; // ending of toggling in add button - var shadowOver = false; - var mode = false; - var popupFlag = false - var flagForSelect = false; - var dragElement = null; //the element that must be dragging - var lang = ""; //locale language - var coords = { - left:0, - top:0 - } - - var resizeObj = { - y:false, - x:false, - width:0, - height:0 - } - - if(window.sankore){ - try{ - lang = sankore.locale().substr(0,2); - sankoreLang[lang].edit; - } catch(e){ - lang = "en"; - } - } else - lang = "en"; - - var opacityChanged = false; - - if(window.sankore){ - if(sankore.preference("blackYellowData","")){ - var importArray = jQuery.parseJSON(sankore.preference("blackYellowData","")); - for(var i in importArray){ - var tmpReadyTask = $("
"); - var exprContainer = $("
" + importArray[i].data1 + "
").appendTo(tmpReadyTask); - var resContainer = $("
"+ importArray[i].data2 + "
").appendTo(tmpReadyTask); - tmpReadyTask.width(importArray[i].width) - .height(importArray[i].height) - .css("position","absolute") - .css("top",importArray[i].top) - .css("left",importArray[i].left); - tmpReadyTask.appendTo("body"); - } - } - $(document).disableTextSelect(); - } - - /* ------------- BUTTONS -------------*/ - - // toggle button - var buttonDiv = $("
").appendTo("body"); - var toggleButton = $("").appendTo("#buttonDiv"); - buttonDiv.css({ - top:"10px", - right:0 - }); - - //toggle mode - toggleButton.click(function(){ - if(!shadowOver){ - if(mode){ - mode = false; - addButtonDiv.css("display","none"); - $(".leftDiv, .rightDiv").animate({ - "opacity":"1" - },"slow",function(){ - if(opacityChanged){ - if($(".editContainer").size() != 0){ - $(".editContainer").each(function(index, domElem){ - var tmpReadyTask = $(domElem).find(".readyTask"); - tmpReadyTask.width($(domElem).width()) - .height($(domElem).height()) - .css("position","absolute") - .css("top",$(domElem).position().top) - .css("left",$(domElem).position().left) - .find(".taskContainer").removeAttr("contenteditable"); - - $(domElem).remove(); - tmpReadyTask.appendTo("body"); - }); - } - opacityChanged = false; - } - }); - $(document).disableTextSelect(); - } else { - mode = true; - addButtonDiv.css("display","block"); - $(document).enableTextSelect(); - $(".leftDiv, .rightDiv").animate({ - "opacity":"0.4" - },"slow",function(){ - if(!opacityChanged){ - if($(".readyTask").size() != 0){ - $(".readyTask").each(function(index, domElem){ - var editContent = $("
").width($(domElem).width() + 10).height($(domElem) + 10).appendTo("body"); - var closeItem = $("
").appendTo(editContent); - var rightResize = $("
").appendTo(editContent); - var bottomResize = $("
").appendTo(editContent); - editContent.css("top", $(domElem).position().top).css("left", $(domElem).position().left); - $(domElem).css("position","static") - .width("100%") - .height("100%") - .find(".taskContainer").attr("contenteditable", "true"); - $(domElem).appendTo(editContent); - }); - } - opacityChanged = true; - } - }); - - } - toggleButton.trigger("mouseout"); - } - }); - - // toggle button events - toggleButton.mouseover(function(){ - if(!shadowOver){ - if(!toggleFlag && !endFlag){ - endFlag = true; - toggleButton.animate({ - width:"115px" - },"fast",function(){ - toggleFlag = true; - if(!mode) - toggleButton.text(sankoreLang[lang].edit); - else - toggleButton.text(sankoreLang[lang].display); - }); - } - } - }); - - toggleButton.mouseout(function(){ - if(!shadowOver){ - if(toggleFlag && endFlag){ - endFlag = false; - toggleButton.animate({ - width:"20px" - },"fast", function(){ - toggleButton.text("<"); - toggleFlag = false; - }); - } - } - }); - - //add button - var addButtonDiv = $("
").appendTo("body"); - var addButton = $("").appendTo("#addButtonDiv"); - addButtonDiv.css({ - top:"47px", - right:0 - }); - - // add button events - addButton.click(function(){ - shadowDiv.show("fast", function(){ - shadowOver = true; - popupBack.show("slow"); - }); - $(document).disableTextSelect(); - addButton.trigger("mouseout"); - }); - - addButton.mouseover(function(){ - if(!shadowOver){ - if(!addToggleStart && !addToggleEnd){ - addToggleEnd = true; - addButton.animate({ - width:"115px" - },"fast",function(){ - addToggleStart = true; - addButton.text(sankoreLang[lang].add); - }); - } - } - }); - - addButton.mouseout(function(){ - if(!shadowOver){ - if(addToggleStart && addToggleEnd){ - addToggleEnd = false; - addButton.animate({ - width:"20px" - },"fast", function(){ - addButton.text("+"); - addToggleStart = false; - }); - } - } - }); - - /* -------------- END OF WORK WITH BUTTONS ---------------*/ - - //basic divs - var leftDiv = $("
").appendTo("body"); - var rightDiv = $("
").appendTo("body"); - - //divs for adding a new item - var shadowDiv = $("
").appendTo("body"); - var popupBack = $("
").appendTo("body"); - - //input fields and buttons for a popup window - var expressionDiv = $("
").appendTo(popupBack); - var experssionLabel = $("" + sankoreLang[lang].enter_data + "").appendTo(expressionDiv); - var expresionText = $("").appendTo(expressionDiv); - - var resultDiv = $("
").appendTo(popupBack); - var resultLabel = $("" + sankoreLang[lang].enter_result + "").appendTo(resultDiv); - var resultText = $("").appendTo(resultDiv); - - var popupButtonsDiv= $("
").appendTo(popupBack); - var cancelButton = $("").appendTo(popupButtonsDiv); - var okButton = $("").appendTo(popupButtonsDiv); - - /* -------------- A WORK WITH POPUP BUTTONS AND FIELDS ---------------*/ - - $("#resultText, #expresionText").keyup(function(){ - if($(this).val()){ - $(this).css("background-color", "#ff9"); - } - }); - - cancelButton.click(function(){ - $(document).enableTextSelect(); - popupBack.hide("slow", function(){ - $("#resultText, #expresionText").val("") - .css("background-color", "#ffc"); - shadowDiv.hide("fast"); - shadowOver = false; - }); - }); - - okButton.click(function(){ - $(document).enableTextSelect(); - if(checkEmptyFields(expresionText) && checkEmptyFields(resultText)){ - popupBack.hide("slow", function(){ - shadowDiv.hide("fast"); - shadowOver = false; - addTask(expresionText.val(), resultText.val()); - $("#resultText, #expresionText").val("") - .css("background-color", "#ffc"); - }) - } - }); - - /* -------------- THE END OF WORK WITH POPUP BUTTONS AND FIELDS ---------------*/ - - // a work with dragging possibility - $("input:text").mouseover(function(){ - $(document).enableTextSelect(); - }); - - $("input:text").mouseout(function(){ - $(document).disableTextSelect(); - }); - - $(".readyTask, .editContainer").live("mousedown",function(event){ - if(!shadowOver){ - dragElement = $(this); - coords.left = event.pageX - $(this).position().left; - coords.top = event.pageY - $(this).position().top; - resizeObj.width = $(this).width(); - resizeObj.height = $(this).height(); - } - }); - - $(".rightResize").live("mousedown",function(event){ - if(!shadowOver){ - resizeObj.x = true; - } - }); - - $(".bottomResize").live("mousedown",function(event){ - if(!shadowOver){ - resizeObj.y = true; - } - }); - - $("body").mouseup(function(event){ - if(!shadowOver){ - dragElement = null; - resizeObj.x = false; - resizeObj.y = false; - } - }); - - $("body").mousemove(function(event){ - if(dragElement && !shadowOver){ - if(resizeObj.x) - dragElement.width(event.pageX - dragElement.position().left); - else if(resizeObj.y) - dragElement.height(event.pageY - dragElement.position().top); - else - dragElement.css("top",event.pageY - coords.top).css("left", event.pageX - coords.left); - } - }); - - //closing item - $(".closeItem").live("click", function(){ - if(!shadowOver){ - $(this).parent().remove(); - } - }); - - $("#leftDiv,#rightDiv,#shadowDiv").css("height", $(window).height()); - popupBack.css("top", ($(window).height() - 138)*50/$(window).height() + "%"); - popupBack.css("left", ($(window).width() - 360)*50/$(window).width() + "%"); - - $(window).resize(function(){ - $("#leftDiv,#rightDiv,#shadowDiv").css("height", $(window).height()); - popupBack.css("top", ($(window).height() - 138)*50/$(window).height() + "%"); - popupBack.css("left", ($(window).width() - 360)*50/$(window).width() + "%"); - }); - - $("html").mouseout(function(){ - if(window.sankore) - exportToSankore(); - }); - - // export data - function exportToSankore(){ - - var objToExport = { - data1:"", - data2:"", - width:0, - height:0, - top:0, - left:0 - } - var arrayToExport = new Array(); - if(mode){ - if($(".editContainer").size() != 0){ - $(".editContainer").each(function(index, domElem){ - objToExport.data1 = $(domElem).find(".readyTask").find(":first-child").text(); - objToExport.data2 = $(domElem).find(".readyTask").find(":last-child").text(); - objToExport.width = $(domElem).width(); - objToExport.height = $(domElem).height(); - objToExport.top = $(domElem).position().top; - objToExport.left = $(domElem).position().left; - arrayToExport.push(objToExport); - }); - } - } else { - if($(".readyTask").size() != 0){ - $(".readyTask").each(function(index, domElem){ - objToExport.data1 = $(domElem).find(":first-child").text(); - objToExport.data2 = $(domElem).find(":last-child").text(); - objToExport.width = $(domElem).width(); - objToExport.height = $(domElem).height(); - objToExport.top = $(domElem).position().top; - objToExport.left = $(domElem).position().left; - arrayToExport.push(objToExport); - }); - } - } - sankore.setPreference("blackYellowData", JSON.stringify(arrayToExport)); - } -} - -//checking empty fields -function checkEmptyFields(field){ - if(field.val() == ""){ - field.css("background-color", "red"); - return false; - } else { - field.css("background-color", "#ff9"); - return true; - } -} - -//adding a new task to the page -function addTask(expression, result){ - var editContent = $("
").width(240).height(70).appendTo("body"); - var closeItem = $("
").appendTo(editContent); - var rightResize = $("
").appendTo(editContent); - var bottomResize = $("
").appendTo(editContent); - var main = $("
"); - var exprContainer = $("
" + expression + "
").appendTo(main); - var resContainer = $("
"+ result + "
").appendTo(main); - main.appendTo(editContent); -} \ No newline at end of file diff --git a/resources/library/interactive/BlackYellow.wgt/scripts/jquery.disable.text.select.js b/resources/library/interactive/BlackYellow.wgt/scripts/jquery.disable.text.select.js deleted file mode 100644 index 2e06f673..00000000 --- a/resources/library/interactive/BlackYellow.wgt/scripts/jquery.disable.text.select.js +++ /dev/null @@ -1,62 +0,0 @@ -/** - * .disableTextSelect - Disable Text Select Plugin - * - * Version: 1.1 - * Updated: 2007-11-28 - * - * Used to stop users from selecting text - * - * Copyright (c) 2007 James Dempster (letssurf@gmail.com, http://www.jdempster.com/category/jquery/disabletextselect/) - * - * Dual licensed under the MIT (MIT-LICENSE.txt) - * and GPL (GPL-LICENSE.txt) licenses. - **/ - -/** - * Requirements: - * - jQuery (John Resig, http://www.jquery.com/) - **/ -(function($) { - if ($.browser.mozilla) { - $.fn.disableTextSelect = function() { - return this.each(function() { - $(this).css({ - 'MozUserSelect' : 'none' - }); - }); - }; - $.fn.enableTextSelect = function() { - return this.each(function() { - $(this).css({ - 'MozUserSelect' : '' - }); - }); - }; - } else if ($.browser.msie) { - $.fn.disableTextSelect = function() { - return this.each(function() { - $(this).bind('selectstart.disableTextSelect', function() { - return false; - }); - }); - }; - $.fn.enableTextSelect = function() { - return this.each(function() { - $(this).unbind('selectstart.disableTextSelect'); - }); - }; - } else { - $.fn.disableTextSelect = function() { - return this.each(function() { - $(this).bind('mousedown.disableTextSelect', function() { - return false; - }); - }); - }; - $.fn.enableTextSelect = function() { - return this.each(function() { - $(this).unbind('mousedown.disableTextSelect'); - }); - }; - } -})(jQuery); \ No newline at end of file diff --git a/resources/library/interactive/BlackYellow.wgt/scripts/languages.js b/resources/library/interactive/BlackYellow.wgt/scripts/languages.js deleted file mode 100644 index fceb7e64..00000000 --- a/resources/library/interactive/BlackYellow.wgt/scripts/languages.js +++ /dev/null @@ -1,30 +0,0 @@ -var sankoreLang = { - "en":{ - "edit": "Edit", - "display":"Display", - "add":"Add", - "enter_data":"Enter data:", - "enter_result":"Enter result:", - "ok":"Ok", - "cancel":"Cancel" - }, - "ru":{ - "edit": "Изменить", - "display":"Показать", - "add":"Добавить", - "enter_data":"Введите вопрос:", - "enter_result":"Введите ответ:", - "ok":"Ок", - "cancel":"Отмена" - }, - "fr":{ - "edit": "Modifier", - "display":"Afficher", - "add":"Ajouter", - "enter_data":"Entrer les données:", - "enter_result":"Entrez le résultat:", - "ok":"Ok", - "cancel":"Annuler" - } -}; - diff --git a/resources/library/interactive/Choisir.wgt/images/greySquare.png b/resources/library/interactive/Choisir.wgt/images/greySquare.png deleted file mode 100644 index 24e59ff19181272decfee28cbeea4401f68d2b30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 451 zcmeAS@N?(olHy`uVBq!ia0vp^6+kS*!2~2#li!>KQfwtbe!&d?LC`!xx)vzHS>O>_ z%)r2(2*Qjj?3ZUUFfb;2x;TbZ%z1ljZ{8sTfde0{tvLfHwT5SG+Z4F+179Qi0)01m z741;T1woNFxKp)_pC0b?sF77#)#tIK{mQ-kO;3*gIz5S9UTC7>vs5eJ%U^1@=9ttl zI503Qxa>5ixvqq{!RGWM3%^PKYL^SUDxOPQ@4xus=ZZB`v&?2!&Qtcf=Pfw#dFAc5 z-y&pgzum3!^5r6nx;59MG_RMg-5Ru0tRrJ>s8{8>?>ldvd0w2p|8}VKq#b1|1Q<_m zvXS}L_vNo`Mb%@0fY|RE|Jz&AlornP$WRlS)kz%F!sV(2(~0MaZ#h={GE-3yZCUtu zmrKgpz26T0liHNB_G%QnE>R7Z%<4IQhI;jPQ$5JZGZfEhb@kjKw z_%54l;v0T?>HFUt458Ud6J9+3ea_W|A#&Q?BZcelzc1UBC{f4A>fW9hw(N2NFb)_z MUHx3vIVCg!03ZOun*aa+ diff --git a/resources/library/interactive/Choisir.wgt/scripts/jquery-1.6.2.min.js b/resources/library/interactive/Choisir.wgt/scripts/jquery-1.6.2.min.js deleted file mode 100644 index 48590ecb..00000000 --- a/resources/library/interactive/Choisir.wgt/scripts/jquery-1.6.2.min.js +++ /dev/null @@ -1,18 +0,0 @@ -/*! - * jQuery JavaScript Library v1.6.2 - * http://jquery.com/ - * - * Copyright 2011, John Resig - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * Includes Sizzle.js - * http://sizzlejs.com/ - * Copyright 2011, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * - * Date: Thu Jun 30 14:16:56 2011 -0400 - */ -(function(a,b){function cv(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cs(a){if(!cg[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ch||(ch=c.createElement("iframe"),ch.frameBorder=ch.width=ch.height=0),b.appendChild(ch);if(!ci||!ch.createElement)ci=(ch.contentWindow||ch.contentDocument).document,ci.write((c.compatMode==="CSS1Compat"?"":"")+""),ci.close();d=ci.createElement(a),ci.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ch)}cg[a]=e}return cg[a]}function cr(a,b){var c={};f.each(cm.concat.apply([],cm.slice(0,b)),function(){c[this]=a});return c}function cq(){cn=b}function cp(){setTimeout(cq,0);return cn=f.now()}function cf(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ce(){try{return new a.XMLHttpRequest}catch(b){}}function b$(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){c!=="border"&&f.each(e,function(){c||(d-=parseFloat(f.css(a,"padding"+this))||0),c==="margin"?d+=parseFloat(f.css(a,c+this))||0:d-=parseFloat(f.css(a,"border"+this+"Width"))||0});return d+"px"}d=bx(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0,c&&f.each(e,function(){d+=parseFloat(f.css(a,"padding"+this))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+this+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+this))||0)});return d+"px"}function bm(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(be,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bl(a){f.nodeName(a,"input")?bk(a):"getElementsByTagName"in a&&f.grep(a.getElementsByTagName("input"),bk)}function bk(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bj(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function bi(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bh(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c=f.expando,d=f.data(a),e=f.data(b,d);if(d=d[c]){var g=d.events;e=e[c]=f.extend({},d);if(g){delete e.handle,e.events={};for(var h in g)for(var i=0,j=g[h].length;i=0===c})}function V(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function N(a,b){return(a&&a!=="*"?a+".":"")+b.replace(z,"`").replace(A,"&")}function M(a){var b,c,d,e,g,h,i,j,k,l,m,n,o,p=[],q=[],r=f._data(this,"events");if(!(a.liveFired===this||!r||!r.live||a.target.disabled||a.button&&a.type==="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var s=r.live.slice(0);for(i=0;ic)break;a.currentTarget=e.elem,a.data=e.handleObj.data,a.handleObj=e.handleObj,o=e.handleObj.origHandler.apply(e.elem,arguments);if(o===!1||a.isPropagationStopped()){c=e.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function K(a,c,d){var e=f.extend({},d[0]);e.type=a,e.originalEvent={},e.liveFired=b,f.event.handle.call(c,e),e.isDefaultPrevented()&&d[0].preventDefault()}function E(){return!0}function D(){return!1}function m(a,c,d){var e=c+"defer",g=c+"queue",h=c+"mark",i=f.data(a,e,b,!0);i&&(d==="queue"||!f.data(a,g,b,!0))&&(d==="mark"||!f.data(a,h,b,!0))&&setTimeout(function(){!f.data(a,g,b,!0)&&!f.data(a,h,b,!0)&&(f.removeData(a,e,!0),i.resolve())},0)}function l(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function k(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(j,"$1-$2").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNaN(d)?i.test(d)?f.parseJSON(d):d:parseFloat(d)}catch(g){}f.data(a,c,d)}else d=b}return d}var c=a.document,d=a.navigator,e=a.location,f=function(){function J(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(J,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[ \/]([\w.]+)/,t=/(opera)(?:.*version)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=/-([a-z])/ig,x=function(a,b){return b.toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=n.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.6.2",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;A.resolveWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!A){A=e._Deferred();if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNaN:function(a){return a==null||!m.test(a)||isNaN(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a);return c===b||D.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(o.test(b.replace(p,"@").replace(q,"]").replace(r,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(b,c,d){a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),d=c.documentElement,(!d||!d.nodeName||d.nodeName==="parsererror")&&e.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?h.call(arguments,0):c,--e||g.resolveWith(g,h.call(b,0))}}var b=arguments,c=0,d=b.length,e=d,g=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred();if(d>1){for(;c
a",d=a.getElementsByTagName("*"),e=a.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=a.getElementsByTagName("input")[0],k={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55$/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:a.className!=="t",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,k.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,k.optDisabled=!h.disabled;try{delete a.test}catch(v){k.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function(){k.noCloneEvent=!1}),a.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),k.radioValue=i.value==="t",i.setAttribute("checked","checked"),a.appendChild(i),l=c.createDocumentFragment(),l.appendChild(a.firstChild),k.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",m=c.getElementsByTagName("body")[0],o=c.createElement(m?"div":"body"),p={visibility:"hidden",width:0,height:0,border:0,margin:0},m&&f.extend(p,{position:"absolute",left:-1e3,top:-1e3});for(t in p)o.style[t]=p[t];o.appendChild(a),n=m||b,n.insertBefore(o,n.firstChild),k.appendChecked=i.checked,k.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,k.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="
",k.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="
t
",q=a.getElementsByTagName("td"),u=q[0].offsetHeight===0,q[0].style.display="",q[1].style.display="none",k.reliableHiddenOffsets=u&&q[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",a.appendChild(j),k.reliableMarginRight=(parseInt((c.defaultView.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0),o.innerHTML="",n.removeChild(o);if(a.attachEvent)for(t in{submit:1,change:1,focusin:1})s="on"+t,u=s in a,u||(a.setAttribute(s,"return;"),u=typeof a[s]=="function"),k[t+"Bubbles"]=u;o=l=g=h=m=j=a=i=null;return k}(),f.boxModel=f.support.boxModel;var i=/^(?:\{.*\}|\[.*\])$/,j=/([a-z])([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!l(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g=f.expando,h=typeof c=="string",i,j=a.nodeType,k=j?f.cache:a,l=j?a[f.expando]:a[f.expando]&&f.expando;if((!l||e&&l&&!k[l][g])&&h&&d===b)return;l||(j?a[f.expando]=l=++f.uuid:l=f.expando),k[l]||(k[l]={},j||(k[l].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?k[l][g]=f.extend(k[l][g],c):k[l]=f.extend(k[l],c);i=k[l],e&&(i[g]||(i[g]={}),i=i[g]),d!==b&&(i[f.camelCase(c)]=d);if(c==="events"&&!i[c])return i[g]&&i[g].events;return h?i[f.camelCase(c)]||i[c]:i}},removeData:function(b,c,d){if(!!f.acceptData(b)){var e=f.expando,g=b.nodeType,h=g?f.cache:b,i=g?b[f.expando]:f.expando;if(!h[i])return;if(c){var j=d?h[i][e]:h[i];if(j){delete j[c];if(!l(j))return}}if(d){delete h[i][e];if(!l(h[i]))return}var k=h[i][e];f.support.deleteExpando||h!=a?delete h[i]:h[i]=null,k?(h[i]={},g||(h[i].toJSON=f.noop),h[i][e]=k):g&&(f.support.deleteExpando?delete b[f.expando]:b.removeAttribute?b.removeAttribute(f.expando):b[f.expando]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d=null;if(typeof a=="undefined"){if(this.length){d=f.data(this[0]);if(this[0].nodeType===1){var e=this[0].attributes,g;for(var h=0,i=e.length;h-1)return!0;return!1},val:function(a){var c,d,e=this[0];if(!arguments.length){if(e){c=f.valHooks[e.nodeName.toLowerCase()]||f.valHooks[e.type];if(c&&"get"in c&&(d=c.get(e,"value"))!==b)return d;d=e.value;return typeof d=="string"?d.replace(p,""):d==null?"":d}return b}var g=f.isFunction(a);return this.each(function(d){var e=f(this),h;if(this.nodeType===1){g?h=a.call(this,d,e.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c=a.selectedIndex,d=[],e=a.options,g=a.type==="select-one";if(c<0)return null;for(var h=g?c:0,i=g?c+1:e.length;h=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attrFix:{tabindex:"tabIndex"},attr:function(a,c,d,e){var g=a.nodeType;if(!a||g===3||g===8||g===2)return b;if(e&&c in f.attrFn)return f(a)[c](d);if(!("getAttribute"in a))return f.prop(a,c,d);var h,i,j=g!==1||!f.isXMLDoc(a);j&&(c=f.attrFix[c]||c,i=f.attrHooks[c],i||(t.test(c)?i=w:v&&c!=="className"&&(f.nodeName(a,"form")||u.test(c))&&(i=v)));if(d!==b){if(d===null){f.removeAttr(a,c);return b}if(i&&"set"in i&&j&&(h=i.set(a,d,c))!==b)return h;a.setAttribute(c,""+d);return d}if(i&&"get"in i&&j&&(h=i.get(a,c))!==null)return h;h=a.getAttribute(c);return h===null?b:h},removeAttr:function(a,b){var c;a.nodeType===1&&(b=f.attrFix[b]||b,f.support.getSetAttribute?a.removeAttribute(b):(f.attr(a,b,""),a.removeAttributeNode(a.getAttributeNode(b))),t.test(b)&&(c=f.propFix[b]||b)in a&&(a[c]=!1))},attrHooks:{type:{set:function(a,b){if(q.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},tabIndex:{get:function(a){var c=a.getAttributeNode("tabIndex");return c&&c.specified?parseInt(c.value,10):r.test(a.nodeName)||s.test(a.nodeName)&&a.href?0:b}},value:{get:function(a,b){if(v&&f.nodeName(a,"button"))return v.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(v&&f.nodeName(a,"button"))return v.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e=a.nodeType;if(!a||e===3||e===8||e===2)return b;var g,h,i=e!==1||!f.isXMLDoc(a);i&&(c=f.propFix[c]||c,h=f.propHooks[c]);return d!==b?h&&"set"in h&&(g=h.set(a,d,c))!==b?g:a[c]=d:h&&"get"in h&&(g=h.get(a,c))!==b?g:a[c]},propHooks:{}}),w={get:function(a,c){return f.prop(a,c)?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},f.support.getSetAttribute||(f.attrFix=f.propFix,v=f.attrHooks.name=f.attrHooks.title=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&d.nodeValue!==""?d.nodeValue:b},set:function(a,b,c){var d=a.getAttributeNode(c);if(d){d.nodeValue=b;return b}}},f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})})),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}})),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var x=/\.(.*)$/,y=/^(?:textarea|input|select)$/i,z=/\./g,A=/ /g,B=/[^\w\s.|`]/g,C=function(a){return a.replace(B,"\\$&")};f.event={add:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){if(d===!1)d=D;else if(!d)return;var g,h;d.handler&&(g=d,d=g.handler),d.guid||(d.guid=f.guid++);var i=f._data(a);if(!i)return;var j=i.events,k=i.handle;j||(i.events=j={}),k||(i.handle=k=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.handle.apply(k.elem,arguments):b}),k.elem=a,c=c.split(" ");var l,m=0,n;while(l=c[m++]){h=g?f.extend({},g):{handler:d,data:e},l.indexOf(".")>-1?(n=l.split("."),l=n.shift(),h.namespace=n.slice(0).sort().join(".")):(n=[],h.namespace=""),h.type=l,h.guid||(h.guid=d.guid);var o=j[l],p=f.event.special[l]||{};if(!o){o=j[l]=[];if(!p.setup||p.setup.call(a,e,n,k)===!1)a.addEventListener?a.addEventListener(l,k,!1):a.attachEvent&&a.attachEvent("on"+l,k)}p.add&&(p.add.call(a,h),h.handler.guid||(h.handler.guid=d.guid)),o.push(h),f.event.global[l]=!0}a=null}},global:{},remove:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){d===!1&&(d=D);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=f.hasData(a)&&f._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(d=c.handler,c=c.type);if(!c||typeof c=="string"&&c.charAt(0)==="."){c=c||"";for(h in t)f.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+f.map(m.slice(0).sort(),C).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!d){for(j=0;j=0&&(h=h.slice(0,-1),j=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i. -shift(),i.sort());if(!!e&&!f.event.customEvent[h]||!!f.event.global[h]){c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.exclusive=j,c.namespace=i.join("."),c.namespace_re=new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)");if(g||!e)c.preventDefault(),c.stopPropagation();if(!e){f.each(f.cache,function(){var a=f.expando,b=this[a];b&&b.events&&b.events[h]&&f.event.trigger(c,d,b.handle.elem)});return}if(e.nodeType===3||e.nodeType===8)return;c.result=b,c.target=e,d=d!=null?f.makeArray(d):[],d.unshift(c);var k=e,l=h.indexOf(":")<0?"on"+h:"";do{var m=f._data(k,"handle");c.currentTarget=k,m&&m.apply(k,d),l&&f.acceptData(k)&&k[l]&&k[l].apply(k,d)===!1&&(c.result=!1,c.preventDefault()),k=k.parentNode||k.ownerDocument||k===c.target.ownerDocument&&a}while(k&&!c.isPropagationStopped());if(!c.isDefaultPrevented()){var n,o=f.event.special[h]||{};if((!o._default||o._default.call(e.ownerDocument,c)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)){try{l&&e[h]&&(n=e[l],n&&(e[l]=null),f.event.triggered=h,e[h]())}catch(p){}n&&(e[l]=n),f.event.triggered=b}}return c.result}},handle:function(c){c=f.event.fix(c||a.event);var d=((f._data(this,"events")||{})[c.type]||[]).slice(0),e=!c.exclusive&&!c.namespace,g=Array.prototype.slice.call(arguments,0);g[0]=c,c.currentTarget=this;for(var h=0,i=d.length;h-1?f.map(a.options,function(a){return a.selected}).join("-"):"":f.nodeName(a,"select")&&(c=a.selectedIndex);return c},J=function(c){var d=c.target,e,g;if(!!y.test(d.nodeName)&&!d.readOnly){e=f._data(d,"_change_data"),g=I(d),(c.type!=="focusout"||d.type!=="radio")&&f._data(d,"_change_data",g);if(e===b||g===e)return;if(e!=null||g)c.type="change",c.liveFired=b,f.event.trigger(c,arguments[1],d)}};f.event.special.change={filters:{focusout:J,beforedeactivate:J,click:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(c==="radio"||c==="checkbox"||f.nodeName(b,"select"))&&J.call(this,a)},keydown:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(a.keyCode===13&&!f.nodeName(b,"textarea")||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&J.call(this,a)},beforeactivate:function(a){var b=a.target;f._data(b,"_change_data",I(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in H)f.event.add(this,c+".specialChange",H[c]);return y.test(this.nodeName)},teardown:function(a){f.event.remove(this,".specialChange");return y.test(this.nodeName)}},H=f.event.special.change.filters,H.focus=H.beforeactivate}f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){function e(a){var c=f.event.fix(a);c.type=b,c.originalEvent={},f.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var d=0;f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.each(["bind","one"],function(a,c){f.fn[c]=function(a,d,e){var g;if(typeof a=="object"){for(var h in a)this[c](h,d,a[h],e);return this}if(arguments.length===2||d===!1)e=d,d=b;c==="one"?(g=function(a){f(this).unbind(a,g);return e.apply(this,arguments)},g.guid=e.guid||f.guid++):g=e;if(a==="unload"&&c!=="one")this.one(a,d,e);else for(var i=0,j=this.length;i0?this.bind(b,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d=0,e=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,f,g){f=f||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return f;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(e.call(n)==="[object Array]")if(!u)f.push.apply(f,n);else if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&f.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&f.push(j[t]);else p(n,f);o&&(k(o,h,f,g),k.uniqueSort(f));return f};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=d++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(e.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var f=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g0)for(h=g;h0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(d=0,e=a.length;d-1:f(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=T.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof a=="string")return f.inArray(this[0],a?f(a):this.parent().children());return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(V(c[0])||V(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c),g=S.call(arguments);O.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!U[a]?f.unique(e):e,(this.length>1||Q.test(d))&&P.test(a)&&(e=e.reverse());return this.pushStack(e,a,g.join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var X=/ jQuery\d+="(?:\d+|null)"/g,Y=/^\s+/,Z=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,$=/<([\w:]+)/,_=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]};bf.optgroup=bf.option,bf.tbody=bf.tfoot=bf.colgroup=bf.caption=bf.thead,bf.th=bf.td,f.support.htmlSerialize||(bf._default=[1,"div
","
"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){f(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f(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,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(X,""):null;if(typeof a=="string"&&!bb.test(a)&&(f.support.leadingWhitespace||!Y.test(a))&&!bf[($.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Z,"<$1>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j -)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d=a.cloneNode(!0),e,g,h;if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bi(a,d),e=bj(a),g=bj(d);for(h=0;e[h];++h)bi(e[h],g[h])}if(b){bh(a,d);if(c){e=bj(a),g=bj(d);for(h=0;e[h];++h)bh(e[h],g[h])}}e=g=null;return d},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!ba.test(k))k=b.createTextNode(k);else{k=k.replace(Z,"<$1>");var l=($.exec(k)||["",""])[1].toLowerCase(),m=bf[l]||bf._default,n=m[0],o=b.createElement("div");o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=_.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&Y.test(k)&&o.insertBefore(b.createTextNode(Y.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bo.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle;c.zoom=1;var e=f.isNaN(b)?"":"alpha(opacity="+b*100+")",g=d&&d.filter||c.filter||"";c.filter=bn.test(g)?g.replace(bn,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bx(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(by=function(a,c){var d,e,g;c=c.replace(bp,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return b;if(g=e.getComputedStyle(a,null))d=g.getPropertyValue(c),d===""&&!f.contains(a.ownerDocument.documentElement,a)&&(d=f.style(a,c));return d}),c.documentElement.currentStyle&&(bz=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bq.test(d)&&br.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bx=by||bz,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bB=/%20/g,bC=/\[\]$/,bD=/\r?\n/g,bE=/#.*$/,bF=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bG=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bH=/^(?:about|app|app\-storage|.+\-extension|file|widget):$/,bI=/^(?:GET|HEAD)$/,bJ=/^\/\//,bK=/\?/,bL=/)<[^<]*)*<\/script>/gi,bM=/^(?:select|textarea)/i,bN=/\s+/,bO=/([?&])_=[^&]*/,bP=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bQ=f.fn.load,bR={},bS={},bT,bU;try{bT=e.href}catch(bV){bT=c.createElement("a"),bT.href="",bT=bT.href}bU=bP.exec(bT.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bQ)return bQ.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
").append(c.replace(bL,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bM.test(this.nodeName)||bG.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bD,"\r\n")}}):{name:b.name,value:c.replace(bD,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.bind(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?f.extend(!0,a,f.ajaxSettings,b):(b=a,a=f.extend(!0,f.ajaxSettings,b));for(var c in{context:1,url:1})c in b?a[c]=b[c]:c in f.ajaxSettings&&(a[c]=f.ajaxSettings[c]);return a},ajaxSettings:{url:bT,isLocal:bH.test(bU[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML}},ajaxPrefilter:bW(bR),ajaxTransport:bW(bS),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a?4:0;var o,r,u,w=l?bZ(d,v,l):b,x,y;if(a>=200&&a<300||a===304){if(d.ifModified){if(x=v.getResponseHeader("Last-Modified"))f.lastModified[k]=x;if(y=v.getResponseHeader("Etag"))f.etag[k]=y}if(a===304)c="notmodified",o=!0;else try{r=b$(d,w),c="success",o=!0}catch(z){c="parsererror",u=z}}else{u=c;if(!c||a)c="error",a<0&&(a=0)}v.status=a,v.statusText=c,o?h.resolveWith(e,[r,c,v]):h.rejectWith(e,[v,c,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.resolveWith(e,[v,c]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f._Deferred(),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bF.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.done,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bE,"").replace(bJ,bU[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bN),d.crossDomain==null&&(r=bP.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bU[1]&&r[2]==bU[2]&&(r[3]||(r[1]==="http:"?80:443))==(bU[3]||(bU[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),bX(bR,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bI.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bK.test(d.url)?"&":"?")+d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bO,"$1_="+x);d.url=y+(y===d.url?(bK.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", */*; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=bX(bS,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){status<2?w(-1,z):f.error(z)}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)bY(g,a[g],c,e);return d.join("&").replace(bB,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var b_=f.now(),ca=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+b_++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ca.test(b.url)||e&&ca.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ca,l),b.url===j&&(e&&(k=k.replace(ca,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cb=a.ActiveXObject?function(){for(var a in cd)cd[a](0,1)}:!1,cc=0,cd;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ce()||cf()}:ce,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cb&&delete cd[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cc,cb&&(cd||(cd={},f(a).unload(cb)),cd[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cg={},ch,ci,cj=/^(?:toggle|show|hide)$/,ck=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cl,cm=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cn,co=a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||a.oRequestAnimationFrame;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cr("show",3),a,b,c);for(var g=0,h=this.length;g=e.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),e.animatedProperties[this.prop]=!0;for(g in e.animatedProperties)e.animatedProperties[g]!==!0&&(c=!1);if(c){e.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){d.style["overflow"+b]=e.overflow[a]}),e.hide&&f(d).hide();if(e.hide||e.show)for(var i in e.animatedProperties)f.style(d,i,e.orig[i]);e.complete.call(d)}return!1}e.duration==Infinity?this.now=b:(h=b-this.startTime,this.state=h/e.duration,this.pos=f.easing[e.animatedProperties[this.prop]](this.state,h,0,1,e.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){for(var a=f.timers,b=0;b
";f.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),d=b.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,this.doesNotAddBorder=e.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,e.style.position="fixed",e.style.top="20px",this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),f.offset.initialize=f.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.offset.initialize(),f.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cu.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cu.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cv(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cv(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a&&a.style?parseFloat(f.css(a,d,"padding")):null},f.fn["outer"+c]=function(a){var b=this[0];return b&&b.style?parseFloat(f.css(b,d,a?"margin":"border")):null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c];return e.document.compatMode==="CSS1Compat"&&g||e.document.body["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var h=f.css(e,d),i=parseFloat(h);return f.isNaN(i)?h:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f})(window); \ No newline at end of file diff --git a/resources/library/sankoreInteractivities/BlackYellow.wgt/scripts/blackYellow.js b/resources/library/sankoreInteractivities/BlackYellow.wgt/scripts/blackYellow.js index 4ab6ae73..3ce21a15 100644 --- a/resources/library/sankoreInteractivities/BlackYellow.wgt/scripts/blackYellow.js +++ b/resources/library/sankoreInteractivities/BlackYellow.wgt/scripts/blackYellow.js @@ -346,19 +346,19 @@ function init(){ // export data function exportToSankore(){ - + + var objToExport = { + data1:"", + data2:"", + width:0, + height:0, + top:0, + left:0 + } var arrayToExport = new Array(); if(mode){ if($(".editContainer").size() != 0){ - $(".editContainer").each(function(index, domElem){ - var objToExport = { - data1:"", - data2:"", - width:0, - height:0, - top:0, - left:0 - } + $(".editContainer").each(function(index, domElem){ objToExport.data1 = $(domElem).find(".readyTask").find(":first-child").text(); objToExport.data2 = $(domElem).find(".readyTask").find(":last-child").text(); objToExport.width = $(domElem).width(); @@ -371,14 +371,6 @@ function init(){ } else { if($(".readyTask").size() != 0){ $(".readyTask").each(function(index, domElem){ - var objToExport = { - data1:"", - data2:"", - width:0, - height:0, - top:0, - left:0 - } objToExport.data1 = $(domElem).find(":first-child").text(); objToExport.data2 = $(domElem).find(":last-child").text(); objToExport.width = $(domElem).width(); diff --git a/resources/library/interactive/Choisir.wgt/config.xml b/resources/library/sankoreInteractivities/Choisir.wgt/config.xml similarity index 100% rename from resources/library/interactive/Choisir.wgt/config.xml rename to resources/library/sankoreInteractivities/Choisir.wgt/config.xml diff --git a/resources/library/interactive/Choisir.wgt/css/basic.css b/resources/library/sankoreInteractivities/Choisir.wgt/css/basic.css similarity index 100% rename from resources/library/interactive/Choisir.wgt/css/basic.css rename to resources/library/sankoreInteractivities/Choisir.wgt/css/basic.css diff --git a/resources/library/interactive/Choisir.wgt/icon.png b/resources/library/sankoreInteractivities/Choisir.wgt/icon.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/icon.png rename to resources/library/sankoreInteractivities/Choisir.wgt/icon.png diff --git a/resources/library/interactive/Choisir.wgt/images/1thOption.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/1thOption.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/1thOption.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/1thOption.png diff --git a/resources/library/interactive/Choisir.wgt/images/2thOption.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/2thOption.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/2thOption.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/2thOption.png diff --git a/resources/library/interactive/Choisir.wgt/images/3thOption.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/3thOption.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/3thOption.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/3thOption.png diff --git a/resources/library/interactive/Choisir.wgt/images/addSomething.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/addSomething.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/addSomething.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/addSomething.png diff --git a/resources/library/interactive/Choisir.wgt/images/bigBlackClose.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/bigBlackClose.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/bigBlackClose.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/bigBlackClose.png diff --git a/resources/library/interactive/Choisir.wgt/images/blueClose.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/blueClose.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/blueClose.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/blueClose.png diff --git a/resources/library/interactive/Choisir.wgt/images/boldBlackClose.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/boldBlackClose.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/boldBlackClose.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/boldBlackClose.png diff --git a/resources/library/interactive/Choisir.wgt/images/boldClose.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/boldClose.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/boldClose.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/boldClose.png diff --git a/resources/library/interactive/Choisir.wgt/images/boldGreyClose.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/boldGreyClose.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/boldGreyClose.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/boldGreyClose.png diff --git a/resources/library/interactive/Choisir.wgt/images/bottomLeftThing.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/bottomLeftThing.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/bottomLeftThing.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/bottomLeftThing.png diff --git a/resources/library/interactive/Choisir.wgt/images/complete.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/complete.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/complete.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/complete.png diff --git a/resources/library/interactive/Choisir.wgt/images/grayClose.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/grayClose.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/grayClose.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/grayClose.png diff --git a/resources/library/interactive/BlackYellow.wgt/images/greySquare.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/greySquare.png similarity index 100% rename from resources/library/interactive/BlackYellow.wgt/images/greySquare.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/greySquare.png diff --git a/resources/library/interactive/Choisir.wgt/images/greySquareArrow.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/greySquareArrow.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/greySquareArrow.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/greySquareArrow.png diff --git a/resources/library/interactive/Choisir.wgt/images/horSep.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/horSep.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/horSep.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/horSep.png diff --git a/resources/library/interactive/Choisir.wgt/images/leftThing.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/leftThing.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/leftThing.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/leftThing.png diff --git a/resources/library/interactive/Choisir.wgt/images/lessBottomBorder.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/lessBottomBorder.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/lessBottomBorder.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/lessBottomBorder.png diff --git a/resources/library/interactive/Choisir.wgt/images/lessTopBorder.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/lessTopBorder.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/lessTopBorder.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/lessTopBorder.png diff --git a/resources/library/interactive/Choisir.wgt/images/lowerBack.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/lowerBack.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/lowerBack.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/lowerBack.png diff --git a/resources/library/interactive/Choisir.wgt/images/lowerBorder.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/lowerBorder.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/lowerBorder.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/lowerBorder.png diff --git a/resources/library/interactive/Choisir.wgt/images/lowerBorder2.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/lowerBorder2.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/lowerBorder2.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/lowerBorder2.png diff --git a/resources/library/interactive/Choisir.wgt/images/niceBack.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/niceBack.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/niceBack.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/niceBack.png diff --git a/resources/library/interactive/Choisir.wgt/images/niceBack2.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/niceBack2.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/niceBack2.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/niceBack2.png diff --git a/resources/library/interactive/Choisir.wgt/images/niceBack3.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/niceBack3.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/niceBack3.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/niceBack3.png diff --git a/resources/library/interactive/Choisir.wgt/images/pencil.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/pencil.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/pencil.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/pencil.png diff --git a/resources/library/interactive/Choisir.wgt/images/point.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/point.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/point.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/point.png diff --git a/resources/library/interactive/Choisir.wgt/images/redBoldClose.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/redBoldClose.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/redBoldClose.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/redBoldClose.png diff --git a/resources/library/interactive/Choisir.wgt/images/reload.jpg b/resources/library/sankoreInteractivities/Choisir.wgt/images/reload.jpg similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/reload.jpg rename to resources/library/sankoreInteractivities/Choisir.wgt/images/reload.jpg diff --git a/resources/library/interactive/Choisir.wgt/images/reload2.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/reload2.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/reload2.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/reload2.png diff --git a/resources/library/interactive/Choisir.wgt/images/rightThing.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/rightThing.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/rightThing.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/rightThing.png diff --git a/resources/library/interactive/Choisir.wgt/images/separator.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/separator.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/separator.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/separator.png diff --git a/resources/library/interactive/Choisir.wgt/images/separator2.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/separator2.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/separator2.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/separator2.png diff --git a/resources/library/interactive/Choisir.wgt/images/settings.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/settings.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/settings.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/settings.png diff --git a/resources/library/interactive/Choisir.wgt/images/sidePoints.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/sidePoints.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/sidePoints.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/sidePoints.png diff --git a/resources/library/interactive/Choisir.wgt/images/spanner.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/spanner.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/spanner.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/spanner.png diff --git a/resources/library/interactive/Choisir.wgt/images/star.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/star.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/star.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/star.png diff --git a/resources/library/interactive/Choisir.wgt/images/stop.jpg b/resources/library/sankoreInteractivities/Choisir.wgt/images/stop.jpg similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/stop.jpg rename to resources/library/sankoreInteractivities/Choisir.wgt/images/stop.jpg diff --git a/resources/library/interactive/Choisir.wgt/images/tool.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/tool.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/tool.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/tool.png diff --git a/resources/library/interactive/Choisir.wgt/images/topLeftThing.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/topLeftThing.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/topLeftThing.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/topLeftThing.png diff --git a/resources/library/interactive/Choisir.wgt/images/transparentBack.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/transparentBack.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/transparentBack.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/transparentBack.png diff --git a/resources/library/interactive/Choisir.wgt/images/upperBorder.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/upperBorder.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/upperBorder.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/upperBorder.png diff --git a/resources/library/interactive/Choisir.wgt/images/upperBorder2.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/upperBorder2.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/upperBorder2.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/upperBorder2.png diff --git a/resources/library/interactive/Choisir.wgt/index.html b/resources/library/sankoreInteractivities/Choisir.wgt/index.html similarity index 100% rename from resources/library/interactive/Choisir.wgt/index.html rename to resources/library/sankoreInteractivities/Choisir.wgt/index.html diff --git a/resources/library/interactive/BlackYellow.wgt/scripts/jquery-1.6.2.min.js b/resources/library/sankoreInteractivities/Choisir.wgt/scripts/jquery-1.6.2.min.js similarity index 100% rename from resources/library/interactive/BlackYellow.wgt/scripts/jquery-1.6.2.min.js rename to resources/library/sankoreInteractivities/Choisir.wgt/scripts/jquery-1.6.2.min.js diff --git a/resources/library/interactive/Choisir.wgt/scripts/languages.js b/resources/library/sankoreInteractivities/Choisir.wgt/scripts/languages.js similarity index 100% rename from resources/library/interactive/Choisir.wgt/scripts/languages.js rename to resources/library/sankoreInteractivities/Choisir.wgt/scripts/languages.js diff --git a/resources/library/interactive/Choisir.wgt/scripts/selQuestionApp.js b/resources/library/sankoreInteractivities/Choisir.wgt/scripts/selQuestionApp.js similarity index 100% rename from resources/library/interactive/Choisir.wgt/scripts/selQuestionApp.js rename to resources/library/sankoreInteractivities/Choisir.wgt/scripts/selQuestionApp.js From 2def311e936337468e2f4a9ee093b38f2c57685a Mon Sep 17 00:00:00 2001 From: Ivan Ilin Date: Fri, 16 Dec 2011 17:52:31 +0200 Subject: [PATCH 16/20] Sankore 431 fixed --- src/adaptors/UBCFFSubsetAdaptor.cpp | 1 - src/gui/UBDocumentTreeWidget.cpp | 13 ++++++++++++- src/gui/UBDocumentTreeWidget.h | 2 +- src/gui/UBThumbnailView.h | 2 +- 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/adaptors/UBCFFSubsetAdaptor.cpp b/src/adaptors/UBCFFSubsetAdaptor.cpp index aeb0a2a8..877a93a0 100644 --- a/src/adaptors/UBCFFSubsetAdaptor.cpp +++ b/src/adaptors/UBCFFSubsetAdaptor.cpp @@ -1039,7 +1039,6 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::persistScenes() UBThumbnailAdaptor::persistScene(mProxy->persistencePath(), tmpScene, i); delete tmpScene; - mCurrentScene->setModified(false); } diff --git a/src/gui/UBDocumentTreeWidget.cpp b/src/gui/UBDocumentTreeWidget.cpp index 7f06d5d2..b344855c 100644 --- a/src/gui/UBDocumentTreeWidget.cpp +++ b/src/gui/UBDocumentTreeWidget.cpp @@ -25,6 +25,10 @@ #include "core/UBDocumentManager.h" #include "document/UBDocumentController.h" +#include "adaptors/UBThumbnailAdaptor.h" +#include "adaptors/UBSvgSubsetAdaptor.h" +#include "frameworks/UBFileSystemUtils.h" + #include "core/memcheck.h" UBDocumentTreeWidget::UBDocumentTreeWidget(QWidget * parent) @@ -290,7 +294,14 @@ void UBDocumentTreeWidget::dropEvent(QDropEvent *event) } UBPersistenceManager::persistenceManager()->insertDocumentSceneAt(targetDocProxy, sceneClone, targetDocProxy->pageCount()); - } + + //due to incorrect generation of thumbnails of invisible scene I've used direct copying of thumbnail files + //it's not universal and good way but it's faster + QString from = sourceItem.documentProxy()->persistencePath() + UBFileSystemUtils::digitFileFormat("/page%1.thumbnail.jpg", sourceItem.sceneIndex() + 1); + QString to = targetDocProxy->persistencePath() + UBFileSystemUtils::digitFileFormat("/page%1.thumbnail.jpg", targetDocProxy->pageCount()); + QFile::remove(to); + QFile::copy(from, to); + } } QApplication::restoreOverrideCursor(); diff --git a/src/gui/UBDocumentTreeWidget.h b/src/gui/UBDocumentTreeWidget.h index ab2e9866..f76d1696 100644 --- a/src/gui/UBDocumentTreeWidget.h +++ b/src/gui/UBDocumentTreeWidget.h @@ -23,7 +23,7 @@ class UBDocumentProxyTreeItem; class UBDocumentTreeWidget : public QTreeWidget { - Q_OBJECT; + Q_OBJECT public: UBDocumentTreeWidget(QWidget *parent = 0); diff --git a/src/gui/UBThumbnailView.h b/src/gui/UBThumbnailView.h index ecd13a19..32390f1a 100644 --- a/src/gui/UBThumbnailView.h +++ b/src/gui/UBThumbnailView.h @@ -22,7 +22,7 @@ class UBGraphicsScene; class UBThumbnailView : public QGraphicsView { - Q_OBJECT; + Q_OBJECT public: UBThumbnailView(); From 4d20f15de93981cc99b2c54931476bc735e68b18 Mon Sep 17 00:00:00 2001 From: Claudio Valerio Date: Fri, 16 Dec 2011 16:08:30 +0100 Subject: [PATCH 17/20] fixed code to hadle mime type like 'images/png;......' --- src/board/UBBoardController.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/board/UBBoardController.cpp b/src/board/UBBoardController.cpp index d18b53ac..2ca0fe6d 100644 --- a/src/board/UBBoardController.cpp +++ b/src/board/UBBoardController.cpp @@ -777,6 +777,12 @@ void UBBoardController::downloadFinished(bool pSuccess, QUrl sourceUrl, QString { QString mimeType = pContentTypeHeader; + // In some cases "image/jpeg;charset=" is retourned by the drag-n-drop. That is + // why we will check if an ; exists and take the first part (the standard allows this kind of mimetype) + int position=mimeType.indexOf(";"); + if(position != -1) + mimeType=mimeType.left(position); + if (!pSuccess) { UBApplication::showMessage(tr("Downloading content %1 failed").arg(sourceUrl.toString())); From fb56485c07c7e1d87036cb6e66853051bba98547 Mon Sep 17 00:00:00 2001 From: Anatoly Mihalchenko Date: Fri, 16 Dec 2011 18:16:46 +0300 Subject: [PATCH 18/20] Sankore 378 --- src/tools/UBAbstractDrawRuler.cpp | 8 ++++++-- src/tools/UBAbstractDrawRuler.h | 15 +++++++-------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/tools/UBAbstractDrawRuler.cpp b/src/tools/UBAbstractDrawRuler.cpp index 3c8b8169..e69aa815 100644 --- a/src/tools/UBAbstractDrawRuler.cpp +++ b/src/tools/UBAbstractDrawRuler.cpp @@ -35,7 +35,6 @@ const QColor UBAbstractDrawRuler::sDarkBackgroundDrawColor = QColor(0xff, 0xff, const int UBAbstractDrawRuler::sLeftEdgeMargin = 10; const int UBAbstractDrawRuler::sDegreeToQtAngleUnit = 16; const int UBAbstractDrawRuler::sRotationRadius = 15; -const int UBAbstractDrawRuler::sPixelsPerMillimeter = 5; const int UBAbstractDrawRuler::sFillTransparency = 127; const int UBAbstractDrawRuler::sDrawTransparency = 192; const int UBAbstractDrawRuler::sRoundingRadius = sLeftEdgeMargin / 2; @@ -44,7 +43,12 @@ const int UBAbstractDrawRuler::sRoundingRadius = sLeftEdgeMargin / 2; UBAbstractDrawRuler::UBAbstractDrawRuler() : mShowButtons(false) , mAntiScaleRatio(1.0) -{} +{ + //we actually need to evaluate pixels per millimeter + QDesktopWidget* desktop = UBApplication::desktop(); + int dpiCommon = (desktop->physicalDpiX() + desktop->physicalDpiY()) / 2; + sPixelsPerMillimeter = qRound(dpiCommon / 25.4f);//because 1inch = 25.4 mm +} void UBAbstractDrawRuler::create(QGraphicsItem& item) { diff --git a/src/tools/UBAbstractDrawRuler.h b/src/tools/UBAbstractDrawRuler.h index cf98e2f5..0e632eff 100644 --- a/src/tools/UBAbstractDrawRuler.h +++ b/src/tools/UBAbstractDrawRuler.h @@ -70,14 +70,13 @@ protected: static const QColor sDarkBackgroundMiddleFillColor; static const QColor sDarkBackgroundDrawColor; - static const int sLeftEdgeMargin; - static const int sDegreeToQtAngleUnit; - static const int sRotationRadius; - static const int sPixelsPerMillimeter; - static const int sFillTransparency; - static const int sDrawTransparency; - static const int sRoundingRadius; - + static const int sLeftEdgeMargin; + static const int sDegreeToQtAngleUnit; + static const int sRotationRadius; + static const int sFillTransparency; + static const int sDrawTransparency; + static const int sRoundingRadius; + int sPixelsPerMillimeter; }; #endif From 4e75d6d28c4d8baa51df7082e61633cf8ff762b7 Mon Sep 17 00:00:00 2001 From: Claudio Valerio Date: Mon, 19 Dec 2011 09:27:24 +0100 Subject: [PATCH 19/20] increased version --- Sankore_3.1.pro | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sankore_3.1.pro b/Sankore_3.1.pro index a295e6fc..08702f67 100644 --- a/Sankore_3.1.pro +++ b/Sankore_3.1.pro @@ -9,7 +9,7 @@ CONFIG += debug_and_release \ VERSION_MAJ = 1 VERSION_MIN = 40 VERSION_TYPE = b # a = alpha, b = beta, r = release, other => error -VERSION_PATCH = 00 +VERSION_PATCH = 01 VERSION = "$${VERSION_MAJ}.$${VERSION_MIN}.$${VERSION_TYPE}.$${VERSION_PATCH}" VERSION = $$replace(VERSION, "\\.r", "") From 45ec8db85e02c40d68ef4e3b146917d2115fe825 Mon Sep 17 00:00:00 2001 From: Ivan Ilin Date: Mon, 19 Dec 2011 19:14:25 +0200 Subject: [PATCH 20/20] Sankore 427 --- src/core/UBApplicationController.cpp | 6 ++++-- src/web/UBWebController.cpp | 4 +++- src/web/browser/WBBrowserWindow.cpp | 10 ++++------ src/web/browser/WBTabWidget.cpp | 1 - src/web/browser/WBTabWidget.h | 8 +++++--- 5 files changed, 16 insertions(+), 13 deletions(-) diff --git a/src/core/UBApplicationController.cpp b/src/core/UBApplicationController.cpp index efece366..6550c56a 100644 --- a/src/core/UBApplicationController.cpp +++ b/src/core/UBApplicationController.cpp @@ -368,7 +368,7 @@ void UBApplicationController::showInternet() if (UBSettings::settings()->webUseExternalBrowser->get().toBool()) { showDesktop(true); - UBApplication::webController->show(UBWebController::WebBrowser); + UBApplication::webController->show(UBWebController::WebBrowser); // really no have emit mainModeChanged here ? potential problem with virtual keyboard ? } else @@ -460,6 +460,7 @@ void UBApplicationController::showTutorial() UBApplication::boardController->hide(); } + // it's needed not to duplicate webbrowser search in web mode. If I've breaked smbd's code let Ivan know UBApplication::webController->show(UBWebController::Tutorial); mMainWindow->webToolBar->hide(); @@ -488,7 +489,8 @@ void UBApplicationController::showSankoreEditor() UBApplication::boardController->hide(); } - UBApplication::webController->show(UBWebController::Paraschool); +// it's needed not to duplicate webbrowser search in web mode. If I've breaked smbd's code let Ivan know + UBApplication::webController->show(UBWebController::Paraschool); mMainWindow->webToolBar->hide(); mMainWindow->boardToolBar->hide(); diff --git a/src/web/UBWebController.cpp b/src/web/UBWebController.cpp index 08c5e8ab..436397b3 100644 --- a/src/web/UBWebController.cpp +++ b/src/web/UBWebController.cpp @@ -148,6 +148,8 @@ void UBWebController::webBrowserInstance() (*mCurrentWebBrowser)->tabWidget()->tabBar()->show(); (*mCurrentWebBrowser)->tabWidget()->lineEdits()->show(); +// (*mCurrentWebBrowser)->tabWidget()->tabBar()->hide(); +// (*mCurrentWebBrowser)->tabWidget()->lineEdits()->hide(); } UBApplication::applicationController->setMirrorSourceWidget((*mCurrentWebBrowser)->paintWidget()); @@ -192,7 +194,7 @@ void UBWebController::tutorialWebInstance() else { mCurrentWebBrowser = &mWebBrowserList[Tutorial]; - mToolsCurrentPalette = &mToolsPaletteList[Tutorial]; +// mToolsCurrentPalette = &mToolsPaletteList[Tutorial]; // mKeyboardCurrentPalette = &mKeyboardPaletteList[Tutorial]; mToolsPalettePositionned = &mToolsPalettePositionnedList[Tutorial]; if (!(*mCurrentWebBrowser)) diff --git a/src/web/browser/WBBrowserWindow.cpp b/src/web/browser/WBBrowserWindow.cpp index f87178e9..14f96f09 100644 --- a/src/web/browser/WBBrowserWindow.cpp +++ b/src/web/browser/WBBrowserWindow.cpp @@ -97,11 +97,11 @@ WBBrowserWindow::WBBrowserWindow(QWidget *parent, Ui::MainWindow* uniboardMainWi defaultSettings->setAttribute(QWebSettings::PluginsEnabled, true); setupMenu(); -// if(!isViewerWebInstance) + if(!isViewerWebInstance) setupToolBar(); -// else{ -// setupToolBarForTutorial(); -// } + else{ + setupToolBarForTutorial(); + } QVBoxLayout *layout = new QVBoxLayout; layout->setSpacing(0); @@ -205,8 +205,6 @@ void WBBrowserWindow::setupToolBar() connect(mSearchToolBar, SIGNAL(search(const QUrl&)), SLOT(loadUrl(const QUrl&))); mChaseWidget = new WBChaseWidget(this); - mWebToolBar->insertWidget(mUniboardMainWindow->actionWebBigger, mChaseWidget); - mWebToolBar->insertSeparator(mUniboardMainWindow->actionWebBigger); connect(mUniboardMainWindow->actionHome, SIGNAL(triggered()), this , SLOT(slotHome())); diff --git a/src/web/browser/WBTabWidget.cpp b/src/web/browser/WBTabWidget.cpp index 70b3b1d2..2d610a1f 100644 --- a/src/web/browser/WBTabWidget.cpp +++ b/src/web/browser/WBTabWidget.cpp @@ -251,7 +251,6 @@ WBTabWidget::WBTabWidget(QWidget *parent) mLineEdits->setMinimumWidth(200); QSizePolicy spolicy = mLineEdits->sizePolicy(); mLineEdits->setSizePolicy(QSizePolicy::Maximum, spolicy.verticalPolicy()); - } void WBTabWidget::clear() diff --git a/src/web/browser/WBTabWidget.h b/src/web/browser/WBTabWidget.h index ccc90517..4e7874b2 100644 --- a/src/web/browser/WBTabWidget.h +++ b/src/web/browser/WBTabWidget.h @@ -138,7 +138,7 @@ class WBWebActionMapper : public QObject */ class WBTabWidget : public QTabWidget { - Q_OBJECT; + Q_OBJECT signals: // tab widget signals @@ -171,8 +171,10 @@ class WBTabWidget : public QTabWidget QByteArray saveState() const; bool restoreState(const QByteArray &state); - WBTabBar* tabBar() { return mTabBar; }; - QStackedWidget* lineEdits() { return mLineEdits; }; + WBTabBar* tabBar() { return mTabBar; } + QStackedWidget* lineEdits() { return mLineEdits; } + + void setLineEditStackVisible(bool visible) {mLineEdits->setVisible(visible);mLineEdits->hide();} protected: void mouseDoubleClickEvent(QMouseEvent *event); void contextMenuEvent(QContextMenuEvent *event);