Page MenuHomeIn-Portal Phabricator

advanced
No OneTemporary

File Metadata

Created
Wed, Feb 12, 9:10 AM

advanced

Index: platform/designs/side_boxes.tpl
===================================================================
--- platform/designs/side_boxes.tpl (revision 11426)
+++ platform/designs/side_boxes.tpl (revision 11427)
@@ -1,14 +1,14 @@
<inp2:m_DefineElement name="blue_box">
- <table style="width: 100%;">
+ <table style="width: 100%;" class="groupItem">
<tr>
- <td class="side-box-header">
- <span class="side-box-title"><inp2:m_param name="header"/></span>
+ <td class="side-box-header itemHeader">
+ <div class="side-box-title"><inp2:m_param name="header"/></div>
</td>
</tr>
<tr>
<td class="side-box-content">
<inp2:m_param name="content"/>
</td>
</tr>
</table>
</inp2:m_DefineElement>
\ No newline at end of file
Property changes on: platform/designs/side_boxes.tpl
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.1.2.1
\ No newline at end of property
+1.1.2.2
\ No newline at end of property
Index: platform/designs/content_boxes.tpl
===================================================================
--- platform/designs/content_boxes.tpl (revision 11426)
+++ platform/designs/content_boxes.tpl (revision 11427)
@@ -1,167 +1,175 @@
<!--## MAIN CONTENT BOX ELEMENT DESIGN ##-->
<inp2:m_DefineElement name="content_box">
- <img src="<inp2:m_TemplatesBase module="In-Portal"/>img/s.gif" width="1" height="20" alt=""/><br />
- <table class="fullwidth">
+ <table class="fullwidth groupItem">
+ <tr>
+ <td colspan="3">
+ <img src="<inp2:m_TemplatesBase module="In-Portal"/>img/s.gif" width="1" height="20" alt=""/><br />
+ </td>
+ </tr>
<tr>
<td width="13">
<img src="<inp2:m_TemplatesBase module="In-Portal"/>img/s.gif" width="13" height="1" alt=""/><br />
</td>
- <td class="content-box-header table-border">
- <span class="content-box-title"><inp2:m_param name="header"/></span>
+ <td class="content-box-header table-border itemHeader">
+ <div class="content-box-title"><inp2:m_param name="header"/></div>
</td>
<td width="13">
<img src="<inp2:m_TemplatesBase module="In-Portal"/>img/s.gif" width="13" height="1" alt=""/><br />
</td>
</tr>
<tr>
<td width="13">
<img src="<inp2:m_TemplatesBase module="In-Portal"/>img/s.gif" width="13" height="1" alt=""/><br />
</td>
<td class="content-box-content">
<inp2:m_param name="content"/>
</td>
<td width="13">
<img src="<inp2:m_TemplatesBase module="In-Portal"/>img/s.gif" width="13" height="1" alt=""/><br />
</td>
</tr>
</table>
</inp2:m_DefineElement>
<!--## /MAIN CONTENT BOX ELEMENT DESIGN ##-->
<!--## DESIGN OF CONTENT BOX SUB-SECTION ELEMENT##-->
<inp2:m_DefineElement name="content_box_subsection">
- <img src="<inp2:m_TemplatesBase module="In-Portal"/>img/s.gif" width="1" height="20" alt=""/><br />
- <table class="fullwidth">
+ <table class="fullwidth groupItem">
+ <tr>
+ <td colspan="3">
+ <img src="<inp2:m_TemplatesBase module="In-Portal"/>img/s.gif" width="1" height="20" alt=""/><br />
+ </td>
+ </tr>
<tr>
<td width="13">
<img src="<inp2:m_TemplatesBase module="In-Portal"/>img/s.gif" width="13" height="1" alt=""/><br />
</td>
- <td class="content-box-header table-border">
- <span class="content-box-title"><inp2:m_param name="subsection_header"/></span>
+ <td class="content-box-header table-border itemHeader">
+ <div class="content-box-title"><inp2:m_param name="subsection_header"/></div>
</td>
<td width="13">
<img src="<inp2:m_TemplatesBase module="In-Portal"/>img/s.gif" width="13" height="1" alt=""/><br />
</td>
</tr>
<tr>
<td width="13">
<img src="<inp2:m_TemplatesBase module="In-Portal"/>img/s.gif" width="13" height="1" alt=""/><br />
</td>
<td class="content-box-content">
<inp2:m_param name="content"/>
</td>
<td width="13">
<img src="<inp2:m_TemplatesBase module="In-Portal"/>img/s.gif" width="13" height="1" alt=""/><br />
</td>
</tr>
</table>
</inp2:m_DefineElement>
<!--## //DESIGN OF CONTENT BOX SUB-SECTION ELEMENT##-->
<!--## CONTENT BOX NO-HEADER ELEMENT DESIGN ##-->
<inp2:m_DefineElement name="content_box_noheader">
- <table class="fullwidth">
+ <table class="fullwidth groupItem">
<tr>
<td width="13">
<img src="<inp2:m_TemplatesBase module="In-Portal"/>img/s.gif" width="13" height="1" alt=""/><br />
</td>
- <td class="content-box-content">
+ <td class="content-box-content itemHeader">
<inp2:m_param name="content"/>
</td>
<td width="13">
<img src="<inp2:m_TemplatesBase module="In-Portal"/>img/s.gif" width="13" height="1" alt=""/><br />
</td>
</tr>
</table>
</inp2:m_DefineElement>
<!--## /CONTENT BOX NO-HEADER ELEMENT DESIGN ##-->
<inp2:m_DefineElement name="menu_element" current="">
<inp2:m_if check="m_Param" name="current">
<td>
<img src="<inp2:m_TemplatesBase module="In-Portal"/>img/menu_active_border.gif" width="1" height="37" alt=""/><br />
</td>
<td class="menu-top-active-icon top-menu-padding">
- <a href="<inp2:m_param name="menu_href"/>"><inp2:m_if check="m_Param" name="menu_icon_src"><img src="<inp2:m_Param name="menu_icon_src"/>"/><inp2:m_else/><inp2:m_param name="menu_icon"/></inp2:m_if></a>
+ <a href="<inp2:m_param name="menu_href" no_editing="1"/>"><inp2:m_if check="m_Param" name="menu_icon_src"><img src="<inp2:m_Param name="menu_icon_src"/>"/><inp2:m_else/><inp2:m_param name="menu_icon" no_editing="1"/></inp2:m_if></a>
</td>
<td class="menu-top-active-text top-menu-padding">
- <a href="<inp2:m_param name="menu_href"/>" class="top-menu-link"><inp2:m_param name="menu_title"/></a>
+ <a href="<inp2:m_param name="menu_href" no_editing="1"/>" class="top-menu-link"><inp2:m_param name="menu_title" no_editing="1"/></a>
</td>
<td>
<img src="<inp2:m_TemplatesBase module="In-Portal"/>img/menu_active_border.gif" width="1" height="37" alt=""/><br />
</td>
<inp2:m_else/>
<td>
<img src="<inp2:m_TemplatesBase module="In-Portal"/>img/s.gif" width="1" height="37" alt=""/><br />
</td>
<td class="menu-top-noactive-icon top-menu-padding">
- <a href="<inp2:m_param name="menu_href"/>"><inp2:m_if check="m_Param" name="menu_icon_src"><img src="<inp2:m_Param name="menu_icon_src"/>"/><inp2:m_else/><inp2:m_param name="menu_icon"/></inp2:m_if></a>
+ <a href="<inp2:m_param name="menu_href" no_editing="1"/>"><inp2:m_if check="m_Param" name="menu_icon_src"><img src="<inp2:m_Param name="menu_icon_src"/>"/><inp2:m_else/><inp2:m_param name="menu_icon" no_editing="1"/></inp2:m_if></a>
</td>
<td class="menu-top-noactive-text top-menu-padding">
- <a href="<inp2:m_param name="menu_href"/>" class="top-menu-link"><inp2:m_param name="menu_title"/></a>
+ <a href="<inp2:m_param name="menu_href" no_editing="1"/>" class="top-menu-link"><inp2:m_param name="menu_title" no_editing="1"/></a>
</td>
<td>
<img src="<inp2:m_TemplatesBase module="In-Portal"/>img/s.gif" width="1" height="37" alt=""/><br />
</td>
</inp2:m_if>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="box_element" prefix="">
<tr>
<td>
<img src="<inp2:m_TemplatesBase module="In-Portal"/>img/menu-li-2-level.gif" alt="" width="4" height="4" border="0" /><br />
</td>
<td>
<inp2:m_if check="m_Param" name="prefix">
<a href="<inp2:{$prefix}_SuggestItemLink template="$template"/>"><inp2:m_Phrase label="$title"/></a>
<inp2:m_else/>
<a href="<inp2:m_Link template="$template" m_cat_id="0" m_cat_page="1" />"><inp2:m_Phrase label="$title"/></a>
</inp2:m_if>
</td>
</tr>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="review_element">
<tr>
<td>
<strong><inp2:m_Phrase name="lu_fld_ReviewBy"/>:</strong> <inp2:Field name="ReviewedBy"/> [<inp2:Field name="CreatedOn" format="_regional_DateFormat"/>]<br />
<strong><inp2:m_Phrase name="lu_fld_ReviewText"/>:</strong> <inp2:Field name="ReviewText"/>
<br /><br />
</td>
</tr>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="rating_element">
<img src="<inp2:m_TemplatesBase module="In-Portal"/>img/star<inp2:m_if check="m_Param" name="active">_rate</inp2:m_if>.gif" width="10" height="11" alt=""/>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="category_path_element">
<inp2:m_if check="m_ParamEquals" name="cat_id" value="0" inverse="inverse">
<inp2:m_param name="separator"/>
</inp2:m_if>
<inp2:m_param name="cat_name"/>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="image_element">
<img src="<inp2:m_param name="img_path" />" title="<inp2:m_param name="alt" />" alt="<inp2:m_param name="alt" />" <inp2:m_param name="img_size" /> border="0" align="<inp2:m_param name="align"/>" />
</inp2:m_DefineElement>
<inp2:m_DefineElement name="tab">
<td class="<inp2:m_if check="m_IsActive" template="$template">active-tab<inp2:m_else/>inactive-tab</inp2:m_if>">
<a href="<inp2:m_Link template="$template" m_cat_id="0" m_cat_page="1"/>"><inp2:m_phrase name="$title"/></a>
</td>
<td width="8">&nbsp;
</td>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="file_element">
<tr>
<td class="file-list-icon">
<img src="<inp2:m_TemplatesBase module="In-Portal"/>img/file_icons/<inp2:FileIcon default="icon_file.gif"/>" alt="<inp2:Field name="FileName"/>" border="0" /><br />
</td>
<td class="file-list-label">
<a href="<inp2:DownloadFileLink />"><inp2:Field name="FileName"/></a>
</td>
<tr>
</inp2:m_DefineElement>
\ No newline at end of file
Property changes on: platform/designs/content_boxes.tpl
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.1.2.1
\ No newline at end of property
+1.1.2.2
\ No newline at end of property
Index: platform/designs/default_design.tpl
===================================================================
--- platform/designs/default_design.tpl (revision 11426)
+++ platform/designs/default_design.tpl (revision 11427)
@@ -1,89 +1,88 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<inp2:m_CheckSSL/>
<inp2:m_include template="platform/designs/side_boxes" strip_nl="1"/>
<inp2:m_include template="platform/designs/content_boxes" strip_nl="1"/>
<inp2:m_include template="platform/elements/forms" strip_nl="1"/>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
- <title><inp2:m_GetConfig name="Site_Name"/> :: <inp2:m_RenderElement name="page_title"/></title>
+ <title><inp2:m_GetConfig name="Site_Name"/> :: <inp2:m_RenderElement name="page_title" no_editing="1"/></title>
<!--## Include module specific HEADER (META INFORMATION inside) template ##-->
<inp2:m_ModuleInclude template="elements/html_head" in-portal_template="platform/elements/html_head"/>
+
+ <inp2:m_Include template="platform/template_manager/html_head"/>
<!--## /Include module specific HEADER template ##-->
</head>
<body>
<div align="left">
<div align="left" style="width:100%">
-
-
<table class="fullwidth">
<tr>
<td>
<inp2:m_include template="platform/elements/header"/>
</td>
</tr>
<tr>
<td>
<inp2:m_include template="platform/elements/menu"/>
</td>
</tr>
</table>
<img src="<inp2:m_TemplatesBase module="In-Portal"/>img/s.gif" width="1" height="1" alt=""/><br />
<img src="<inp2:m_TemplatesBase module="In-Portal"/>img/grey_pix.gif" width="100%" height="1" alt=""/><br />
<img src="<inp2:m_TemplatesBase module="In-Portal"/>img/s.gif" width="1" height="1" alt=""/><br />
<table class="fullwidth">
<tr>
<!-- SIDEBAR -->
<td style="width: 200px;" valign="top">
- <inp2:m_RenderElement name="sidebar"/>
+ <div class="groupWrapper">
+ <inp2:m_RenderElement name="sidebar" layout_view="1"/>
+ </div>
</td>
<!-- /SIDEBAR -->
<!-- SEPARATOR -->
- <td width="3" class="vertical-separator">
+ <td width="3" class="vertical-separator" style="width: 3px;">
<img src="<inp2:m_TemplatesBase module="In-Portal"/>img/s.gif" width="3" height="1" alt=""/><br />
</td>
<!-- /SEPARATOR -->
<!-- CONTENT -->
<td style="width: auto;" valign="top">
- <inp2:m_RenderElement name="content"/>
+ <div class="groupWrapper">
+ <inp2:m_RenderElement name="content" layout_view="1"/>
+ </div>
<br />
</td>
<!-- /CONTENT -->
<!--## REMOVE THIS LINE TO UNCOMMENT
<!-- SEPARATOR -->
<td width="3" class="vertical-separator">
<img src="<inp2:m_TemplatesBase module="In-Portal"/>img/s.gif" width="3" height="1" alt=""/><br />
</td>
<!-- /SEPARATOR -->
<!-- RIGHT-SIDEBAR WITH BANNER -->
<td style="width: 200px;" valign="top">
<inp2:m_include template="platform/elements/banners/banner_right"/>
</td>
<!-- /RIGHT-SIDEBAR WITH BANNER -->
REMOVE THIS LINE TO UNCOMMENT ##-->
</tr>
</table>
-
<table class="fullwidth">
<tr>
<td >
<inp2:m_include template="platform/elements/footer"/>
</td>
</tr>
</table>
-
-
</div>
</div>
-
-
</body>
</html>
\ No newline at end of file
Property changes on: platform/designs/default_design.tpl
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.1.2.1
\ No newline at end of property
+1.1.2.2
\ No newline at end of property
Index: platform/template_manager/html_head.tpl
===================================================================
--- platform/template_manager/html_head.tpl (nonexistent)
+++ platform/template_manager/html_head.tpl (revision 11427)
@@ -0,0 +1,160 @@
+<link rel="stylesheet" href="<inp2:m_TemplatesBase module='In-Portal'/>template_manager/inc/template_manager.css" type="text/css" media="screen" />
+
+<!--<script type="text/javascript" src="<inp2:m_TemplatesBase module='In-Portal'/>inc/jquery/jquery-ui-personalized-1.5.2.js"></script>-->
+
+<script type="text/javascript" src="<inp2:m_TemplatesBase module='In-Portal'/>inc/jquery/interface/iutil.js"></script>
+<script type="text/javascript" src="<inp2:m_TemplatesBase module='In-Portal'/>inc/jquery/interface/idrag.js"></script>
+<script type="text/javascript" src="<inp2:m_TemplatesBase module='In-Portal'/>inc/jquery/interface/idrop.js"></script>
+<script type="text/javascript" src="<inp2:m_TemplatesBase module='In-Portal'/>inc/jquery/interface/isortables.js"></script>
+<script type="text/javascript" src="<inp2:m_TemplatesBase module='In-Portal'/>inc/jquery/interface/iautoscroller.js"></script>
+
+
+<script type="text/javascript" src="<inp2:m_TemplatesBase module='In-Portal'/>template_manager/inc/template_manager.js"></script>
+<script type="text/javascript" src="<inp2:m_TemplatesBase module='In-Portal'/>template_manager/inc/codepress/codepress.js" ></script>
+
+<style type="text/css" media="all">
+ .groupWrapper {
+ /*width: 32%;
+ float: left;
+ margin-right: 1%;*/
+ /*border: 1px solid green;*/
+ min-height: 200px;
+ }
+
+ /*.serializer {
+ clear: both;
+ }*/
+
+ /*.groupItem {
+ margin-bottom: 20px;
+ }*/
+
+ <inp2:m_if check="m_GetConst" name="EDITING_MODE" equals_to="2">
+ .groupItem .itemHeader {
+ cursor: move;
+
+ /*line-height: 28px;
+ background-color: #DAFF9F;
+ border-top: 2px solid #B5EF59;
+ color: #000;
+ padding: 0 10px;
+ font-weight: bold;
+ font-size: 16px;
+ height: 28px;
+ position: relative;*/
+ }
+ </inp2:m_if>
+
+ /*.groupItem .itemHeader a {
+ position: absolute;
+ right: 10px;
+ top: 0px;
+ font-weight: normal;
+ font-size: 11px;
+ text-decoration: none;
+ }*/
+
+ .sortHelper {
+ border: 3px dashed #666;
+ width: auto !important;
+ }
+
+ /*.groupWrapper p {
+ height: 1px;
+ overflow: hidden;
+ margin: 0;
+ padding: 0;
+ }*/
+</style>
+
+<inp2:m_if check="m_GetConst" name="EDITING_MODE">
+ <div class="extra-toolbar" style="display: none;">
+ <inp2:m_DefineElement name="edit_mode_element" template="" is_last="0">
+ <inp2:m_if check="m_GetConst" name="EDITING_MODE" equals_to="$editing_mode">
+ <td class="button-active" style="padding-right: 5px;">
+
+ </td>
+ <td class="button-active">
+ <img src="img/top_frame/icons/<inp2:m_Param name='image'/>.gif" alt="" border="0"/>&nbsp;
+ </td>
+ <td class="button-active" style="padding-right: 5px;<inp2:m_ifnot check='m_Param' name='is_last'> border-right: 1px solid #BBBBBB;</inp2:m_ifnot>">
+ <strong><inp2:m_Param name="title"/></strong>
+ </td>
+ <inp2:m_else/>
+ <td style="padding-right: 5px; height: 22px;">
+
+ </td>
+ <td>
+ <a class="kx-header-link" href="<inp2:m_Link template='$template'/>" onclick="getFrame('main').location.href = this.href; return false;">
+ <img src="img/top_frame/icons/<inp2:m_Param name='image'/>.gif" alt="" border="0"/>
+ </a>&nbsp;
+ </td>
+ <td style="padding-right: 5px;<inp2:m_ifnot check='m_Param' name='is_last'> border-right: 1px solid #BBBBBB;</inp2:m_ifnot>">
+ <a class="kx-header-link" href="<inp2:m_Link editing_mode='$editing_mode'/>" onclick="getFrame('main').location.href = this.href; return false;"><inp2:m_Param name="title"/></a>
+ </td>
+ </inp2:m_if>
+
+ </inp2:m_DefineElement>
+
+ <table cellpadding="0" cellspacing="0">
+ <tr>
+ <inp2:m_RenderElement name="edit_mode_element" editing_mode="1" image="show_structure" title="Browse Mode" no_editing="1" strip_nl="2"/>
+ <inp2:m_RenderElement name="edit_mode_element" editing_mode="4" image="content_mode" title="Content Mode" no_editing="1" strip_nl="2"/>
+ <inp2:m_RenderElement name="edit_mode_element" editing_mode="2" image="show_all" title="Layout Mode" no_editing="1" strip_nl="2"/>
+ <inp2:m_RenderElement name="edit_mode_element" editing_mode="3" image="show_all" title="Design Mode" no_editing="1" strip_nl="2" is_last="1"/>
+ </tr>
+ </table>
+ </div>
+</inp2:m_if>
+
+<script type="text/javascript">
+ TB.pathToImage = '<inp2:m_TemplatesBase module="In-Portal"/>inc/jquery/thickbox/loadingAnimation.gif';
+
+ <inp2:m_Get name="t" result_to_var="template"/>
+ var aTemplateManager = new TemplateManager('<inp2:m_Link template="platform/template_manager/edit_template" width="800" height="550" events[st]="#EVENT#" block="#BLOCK#" source="$template" no_amp="1"/>');
+
+ $(
+ function () {
+ <inp2:m_if check="m_GetConst" name="EDITING_MODE">
+ getFrame('head').$('#extra_toolbar').html( $('div.extra-toolbar').html() );
+ </inp2:m_if>
+
+ <inp2:m_if check="m_GetConst" name="EDITING_MODE" equals_to="2">
+ $('div.groupWrapper').Sortable(
+ {
+ accept: 'groupItem',
+ helperclass: 'sortHelper',
+ activeclass : 'sortableactive',
+ hoverclass : 'sortablehover',
+ handle: 'td.itemHeader',
+ tolerance: 'pointer',
+ onChange : function(ser)
+ {
+ },
+ onStart : function()
+ {
+ $.iAutoscroller.start(this, document.getElementsByTagName('body'));
+ },
+ onStop : function()
+ {
+ $.iAutoscroller.stop();
+ }
+ }
+ );
+
+ /*$('div.groupWrapper').sortable(
+ {
+ placeholder: 'sortHelper',
+ handle: 'td.itemHeader',
+ appendTo: 'body',
+ connectWith: ['div.groupWrapper'],
+ revert: true,
+ start: function(e, ui) {
+ ui.helper.css('width', ui.item.width());
+ }
+ }
+ );*/
+ </inp2:m_if>
+ }
+ );
+</script>
\ No newline at end of file
Property changes on: platform/template_manager/html_head.tpl
___________________________________________________________________
Added: cvs2svn:cvs-rev
## -0,0 +1 ##
+1.1.2.1
\ No newline at end of property
Index: platform/template_manager/inc/template_manager.js
===================================================================
--- platform/template_manager/inc/template_manager.js (nonexistent)
+++ platform/template_manager/inc/template_manager.js (revision 11427)
@@ -0,0 +1,168 @@
+function TemplateManager ($edit_url) {
+ this._editUrl = $edit_url;
+
+ this._blocks = {};
+
+ this._blockOrder = Array ();
+
+ $(document).ready(
+ function() {
+ aTemplateManager.searchBlocks();
+ }
+ );
+}
+
+TemplateManager.prototype.onBtnClick = function ($e, $element) {
+ var $id = $element.id.replace(/_btn$/, '');
+ var $block_info = this._blocks[$id];
+ var $url = this._editUrl.replace('#BLOCK#', $block_info.block_name + ':' + $block_info.function_name).replace('#EVENT#', '');
+
+ this.setFullscreen();
+
+ TB.show(
+ {
+ url: $url,
+ onDataReceived: TemplateManager.prototype.onDataReceived,
+ onAfterShow: function() {
+ TemplateManager.prototype.initEditor.call(this);
+ }
+ }
+ );
+
+ $e.stopPropagation();
+}
+
+TemplateManager.prototype.setFullscreen = function ($restore) {
+ getFrame('head').$FrameResizer.fullScreen($restore);
+}
+
+TemplateManager.prototype.saveBlock = function () {
+ var $url = this._editUrl.replace('#BLOCK#', $('#block').val() ).replace('#EVENT#', 'OnSaveBlock');
+
+ function_body.toggleEditor(); // disable editor (global variable from edit_template.tpl via ajax)
+
+ TB.show(
+ {
+ url: $url,
+ onDataReceived: TemplateManager.prototype.onDataReceived,
+ onAfterShow: function() {
+ TemplateManager.prototype.initEditor.call(this);
+ },
+ postParams: $('#template_editor_form').serializeArray()
+ }
+ );
+
+}
+
+TemplateManager.prototype.cancelEditing = function () {
+ TB.remove();
+ this.setFullscreen(true);
+}
+
+
+TemplateManager.prototype.onMouseOver = function ($e, $element) {
+ if (!$element.className.match(/[ ]{0,1}block-container-over[ ]{0,1}/)) {
+ $element.className += ' block-container-over';
+ }
+
+ $e.stopPropagation();
+}
+
+TemplateManager.prototype.onMouseOut = function ($e, $element) {
+ $element.className = $element.className.replace(/[ ]{0,1}block-container-over[ ]{0,1}/, '');
+
+ $e.stopPropagation();
+}
+
+TemplateManager.prototype.searchBlocks = function () {
+ $('div').each (
+ function () {
+ var $id = this.getAttribute('id');
+ if (!$id || !$id.match(/parser_block\[.*\]/)) {
+ // skip other divs
+ return true;
+ }
+
+ TemplateManager.prototype.registerBlock.call(aTemplateManager, this);
+ }
+ );
+}
+
+TemplateManager.prototype.registerBlock = function ($element) {
+ var $params = $element.getAttribute('params').split(':');
+
+ this._blocks[$element.id] = {
+ block_name: $params[0],
+ function_name: $params[1]
+ };
+
+ var $btn = document.getElementById($element.id + '_btn');
+
+ $($btn).bind(
+ 'click',
+ function(ev) {
+ TemplateManager.prototype.onBtnClick.call(aTemplateManager, ev, this);
+ }
+ );
+
+ $($element).bind(
+ 'mouseover',
+ function(ev) {
+ TemplateManager.prototype.onMouseOver.call(aTemplateManager, ev, this);
+ }
+ );
+
+ $($element).bind(
+ 'mouseout',
+ function(ev) {
+ TemplateManager.prototype.onMouseOut.call(aTemplateManager, ev, this);
+ }
+ );
+
+ this._blockOrder.push($element.id);
+}
+
+TemplateManager.prototype.onDataReceived = function ($data) {
+ if ($data == '0') {
+ TB.remove();
+ return false;
+ }
+
+ return true;
+}
+
+TemplateManager.prototype.initEditor = function () {
+ var $id = 'function_body';
+
+ var $textarea = document.getElementById($id);
+ $textarea.id += '_cp';
+
+ window[$id] = new CodePress($textarea);
+ $( window[$id] ).insertBefore($textarea);
+}
+
+function getFrame($name)
+{
+ var $main_window = window;
+
+ // 1. cycle through popups to get main window
+ try {
+ // will be error, when other site is opened in parent window
+ while ($main_window.opener) {
+ $main_window = $main_window.opener;
+ }
+ }
+ catch (err) {
+ // catch Access/Permission Denied error
+// alert('getFrame.Error: [' + err.description + ']');
+ return window;
+ }
+
+ var $frameset = $main_window.parent.frames;
+ for ($i = 0; $i < $frameset.length; $i++) {
+ if ($frameset[$i].name == $name) {
+ return $frameset[$i];
+ }
+ }
+ return $main_window.parent;
+}
\ No newline at end of file
Property changes on: platform/template_manager/inc/template_manager.js
___________________________________________________________________
Added: cvs2svn:cvs-rev
## -0,0 +1 ##
+1.1.2.1
\ No newline at end of property
Index: platform/template_manager/inc/codepress/codepress.js
===================================================================
--- platform/template_manager/inc/codepress/codepress.js (nonexistent)
+++ platform/template_manager/inc/codepress/codepress.js (revision 11427)
@@ -0,0 +1,138 @@
+/*
+ * CodePress - Real Time Syntax Highlighting Editor written in JavaScript - http://codepress.org/
+ *
+ * Copyright (C) 2006 Fernando M.A.d.S. <fermads@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify it under the terms of the
+ * GNU Lesser General Public License as published by the Free Software Foundation.
+ *
+ * Read the full licence: http://www.opensource.org/licenses/lgpl-license.php
+ */
+
+CodePress = function(obj) {
+ var self = document.createElement('iframe');
+ self.textarea = obj;
+ self.textarea.disabled = true;
+ self.textarea.style.overflow = 'hidden';
+ self.style.height = self.textarea.clientHeight +'px';
+ self.style.width = self.textarea.clientWidth +'px';
+ self.textarea.style.overflow = 'auto';
+ self.style.border = '1px solid gray';
+ self.frameBorder = 0; // remove IE internal iframe border
+ self.style.visibility = 'hidden';
+ self.style.position = 'absolute';
+ self.options = self.textarea.className;
+
+ self.initialize = function() {
+ self.editor = self.contentWindow.CodePress;
+ self.editor.body = self.contentWindow.document.getElementsByTagName('body')[0];
+ self.editor.setCode(self.textarea.value);
+ self.setOptions();
+ self.editor.syntaxHighlight('init');
+ self.textarea.style.display = 'none';
+ self.style.position = 'static';
+ self.style.visibility = 'visible';
+ self.style.display = 'inline';
+ }
+
+ // obj can by a textarea id or a string (code)
+ self.edit = function(obj,language) {
+ if(obj) self.textarea.value = document.getElementById(obj) ? document.getElementById(obj).value : obj;
+ if(!self.textarea.disabled) return;
+ self.language = language ? language : self.getLanguage();
+ self.src = CodePress.path+'codepress.html?language='+self.language+'&ts='+(new Date).getTime();
+ if(self.attachEvent) self.attachEvent('onload',self.initialize);
+ else self.addEventListener('load',self.initialize,false);
+ }
+
+ self.getLanguage = function() {
+ for (language in CodePress.languages)
+ if(self.options.match('\\b'+language+'\\b'))
+ return CodePress.languages[language] ? language : 'generic';
+ }
+
+ self.setOptions = function() {
+ if(self.options.match('autocomplete-off')) self.toggleAutoComplete();
+ if(self.options.match('readonly-on')) self.toggleReadOnly();
+ if(self.options.match('linenumbers-off')) self.toggleLineNumbers();
+ }
+
+ self.getCode = function() {
+ return self.textarea.disabled ? self.editor.getCode() : self.textarea.value;
+ }
+
+ self.setCode = function(code) {
+ self.textarea.disabled ? self.editor.setCode(code) : self.textarea.value = code;
+ }
+
+ self.toggleAutoComplete = function() {
+ self.editor.autocomplete = (self.editor.autocomplete) ? false : true;
+ }
+
+ self.toggleReadOnly = function() {
+ self.textarea.readOnly = (self.textarea.readOnly) ? false : true;
+ if(self.style.display != 'none') // prevent exception on FF + iframe with display:none
+ self.editor.readOnly(self.textarea.readOnly ? true : false);
+ }
+
+ self.toggleLineNumbers = function() {
+ var cn = self.editor.body.className;
+ self.editor.body.className = (cn==''||cn=='show-line-numbers') ? 'hide-line-numbers' : 'show-line-numbers';
+ }
+
+ self.toggleEditor = function() {
+ if(self.textarea.disabled) {
+ self.textarea.value = self.getCode();
+ self.textarea.disabled = false;
+ self.style.display = 'none';
+ self.textarea.style.display = 'inline';
+ }
+ else {
+ self.textarea.disabled = true;
+ self.setCode(self.textarea.value);
+ self.editor.syntaxHighlight('init');
+ self.style.display = 'inline';
+ self.textarea.style.display = 'none';
+ }
+ }
+
+ self.edit();
+ return self;
+}
+
+CodePress.languages = {
+ csharp : 'C#',
+ css : 'CSS',
+ generic : 'Generic',
+ html : 'HTML',
+ java : 'Java',
+ javascript : 'JavaScript',
+ perl : 'Perl',
+ ruby : 'Ruby',
+ php : 'PHP',
+ text : 'Text',
+ sql : 'SQL',
+ vbscript : 'VBScript'
+}
+
+
+CodePress.run = function() {
+ s = document.getElementsByTagName('script');
+ for(var i=0,n=s.length;i<n;i++) {
+ if(s[i].src.match('codepress.js')) {
+ CodePress.path = s[i].src.replace('codepress.js','');
+ }
+ }
+ t = document.getElementsByTagName('textarea');
+ for(var i=0,n=t.length;i<n;i++) {
+ if(t[i].className.match('codepress')) {
+ id = t[i].id;
+ t[i].id = id+'_cp';
+ eval(id+' = new CodePress(t[i])');
+ t[i].parentNode.insertBefore(eval(id), t[i]);
+ }
+ }
+}
+
+if(window.attachEvent) window.attachEvent('onload',CodePress.run);
+else window.addEventListener('DOMContentLoaded',CodePress.run,false);
Property changes on: platform/template_manager/inc/codepress/codepress.js
___________________________________________________________________
Added: cvs2svn:cvs-rev
## -0,0 +1 ##
+1.1.2.1
\ No newline at end of property
Index: platform/template_manager/inc/codepress/images/line-numbers.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: platform/template_manager/inc/codepress/images/line-numbers.png
___________________________________________________________________
Added: cvs2svn:cvs-rev
## -0,0 +1 ##
+1.1.2.1
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: platform/template_manager/inc/codepress/languages/html.js
===================================================================
--- platform/template_manager/inc/codepress/languages/html.js (nonexistent)
+++ platform/template_manager/inc/codepress/languages/html.js (revision 11427)
@@ -0,0 +1,60 @@
+/*
+ * CodePress regular expressions for HTML syntax highlighting
+ */
+
+// HTML
+Language.syntax = [
+ { input : /(&lt;[^!]*?&gt;)/g, output : '<b>$1</b>' }, // all tags
+ { input : /(&lt;a .*?&gt;|&lt;\/a&gt;)/g, output : '<a>$1</a>' }, // links
+ { input : /(&lt;img .*?&gt;)/g, output : '<big>$1</big>' }, // images
+ { input : /(&lt;\/?(button|textarea|form|input|select|option|label).*?&gt;)/g, output : '<u>$1</u>' }, // forms
+ { input : /(&lt;style.*?&gt;)(.*?)(&lt;\/style&gt;)/g, output : '<em>$1</em><em>$2</em><em>$3</em>' }, // style tags
+ { input : /(&lt;script.*?&gt;)(.*?)(&lt;\/script&gt;)/g, output : '<strong>$1</strong><tt>$2</tt><strong>$3</strong>' }, // script tags
+ { input : /=(".*?")/g, output : '=<s>$1</s>' }, // atributes double quote
+ { input : /=('.*?')/g, output : '=<s>$1</s>' }, // atributes single quote
+ { input : /(&lt;!--.*?--&gt.)/g, output : '<ins>$1</ins>' }, // comments
+ { input : /(&lt;[\/]?)(inp2\:.*?)(\s|[\/]?&gt;)/g, output : '$1<b class="inp-tag">$2</b>$3' }, // inp2 tags
+ { input : /\b(alert|window|document|break|continue|do|for|new|this|void|case|default|else|function|return|typeof|while|if|label|switch|var|with|catch|boolean|int|try|false|throws|null|true|goto)\b/g, output : '<i>$1</i>' } // script reserved words
+]
+
+Language.snippets = [
+ { input : 'aref', output : '<a href="$0"></a>' },
+ { input : 'h1', output : '<h1>$0</h1>' },
+ { input : 'h2', output : '<h2>$0</h2>' },
+ { input : 'h3', output : '<h3>$0</h3>' },
+ { input : 'h4', output : '<h4>$0</h4>' },
+ { input : 'h5', output : '<h5>$0</h5>' },
+ { input : 'h6', output : '<h6>$0</h6>' },
+ { input : 'html', output : '<html>\n\t$0\n</html>' },
+ { input : 'head', output : '<head>\n\t<meta http-equiv="content-type" content="text/html; charset=utf-8" />\n\t<title>$0</title>\n\t\n</head>' },
+ { input : 'img', output : '<img src="$0" alt="" />' },
+ { input : 'input', output : '<input name="$0" id="" type="" value="" />' },
+ { input : 'label', output : '<label for="$0"></label>' },
+ { input : 'legend', output : '<legend>\n\t$0\n</legend>' },
+ { input : 'link', output : '<link rel="stylesheet" href="$0" type="text/css" media="screen" charset="utf-8" />' },
+ { input : 'base', output : '<base href="$0" />' },
+ { input : 'body', output : '<body>\n\t$0\n</body>' },
+ { input : 'css', output : '<link rel="stylesheet" href="$0" type="text/css" media="screen" charset="utf-8" />' },
+ { input : 'div', output : '<div>\n\t$0\n</div>' },
+ { input : 'divid', output : '<div id="$0">\n\t\n</div>' },
+ { input : 'dl', output : '<dl>\n\t<dt>\n\t\t$0\n\t</dt>\n\t<dd></dd>\n</dl>' },
+ { input : 'fieldset', output : '<fieldset>\n\t$0\n</fieldset>' },
+ { input : 'form', output : '<form action="$0" method="" name="">\n\t\n</form>' },
+ { input : 'meta', output : '<meta name="$0" content="" />' },
+ { input : 'p', output : '<p>$0</p>' },
+ { input : 'script', output : '<script type="text/javascript" language="javascript" charset="utf-8">\n\t$0\t\n</script>' },
+ { input : 'scriptsrc', output : '<script src="$0" type="text/javascript" language="javascript" charset="utf-8"></script>' },
+ { input : 'span', output : '<span>$0</span>' },
+ { input : 'table', output : '<table border="$0" cellspacing="" cellpadding="">\n\t<tr><th></th></tr>\n\t<tr><td></td></tr>\n</table>' },
+ { input : 'style', output : '<style type="text/css" media="screen">\n\t$0\n</style>' }
+]
+
+Language.complete = [
+ { input : '\'',output : '\'$0\'' },
+ { input : '"', output : '"$0"' },
+ { input : '(', output : '\($0\)' },
+ { input : '[', output : '\[$0\]' },
+ { input : '{', output : '{\n\t$0\n}' }
+]
+
+Language.shortcuts = []
Property changes on: platform/template_manager/inc/codepress/languages/html.js
___________________________________________________________________
Added: cvs2svn:cvs-rev
## -0,0 +1 ##
+1.1.2.1
\ No newline at end of property
Index: platform/template_manager/inc/codepress/languages/html.css
===================================================================
--- platform/template_manager/inc/codepress/languages/html.css (nonexistent)
+++ platform/template_manager/inc/codepress/languages/html.css (revision 11427)
@@ -0,0 +1,18 @@
+/*
+ * CodePress color styles for HTML syntax highlighting
+ */
+
+b {color:#000080;} /* tags */
+ins, ins b, ins s, ins em {color:gray;} /* comments */
+s, s b {color:#7777e4;} /* attribute values */
+a {color:green;} /* links */
+u {color:#E67300;} /* forms */
+big {color:#db0000;} /* images */
+em, em b {color:#800080;} /* style */
+strong {color:#800000;} /* script */
+tt i {color:darkblue;font-weight:bold;} /* script reserved words */
+
+b.inp-tag {
+ color: #CF3E33;
+ font-style: italic;
+}
\ No newline at end of file
Property changes on: platform/template_manager/inc/codepress/languages/html.css
___________________________________________________________________
Added: cvs2svn:cvs-rev
## -0,0 +1 ##
+1.1.2.1
\ No newline at end of property
Index: platform/template_manager/inc/codepress/engines/older.js
===================================================================
Index: platform/template_manager/inc/codepress/engines/older.js
===================================================================
--- platform/template_manager/inc/codepress/engines/older.js (nonexistent)
+++ platform/template_manager/inc/codepress/engines/older.js (revision 11427)
Property changes on: platform/template_manager/inc/codepress/engines/older.js
___________________________________________________________________
Added: cvs2svn:cvs-rev
## -0,0 +1 ##
+1.1.2.1
\ No newline at end of property
Index: platform/template_manager/inc/codepress/engines/opera.js
===================================================================
--- platform/template_manager/inc/codepress/engines/opera.js (nonexistent)
+++ platform/template_manager/inc/codepress/engines/opera.js (revision 11427)
@@ -0,0 +1,260 @@
+/*
+ * CodePress - Real Time Syntax Highlighting Editor written in JavaScript - http://codepress.org/
+ *
+ * Copyright (C) 2007 Fernando M.A.d.S. <fermads@gmail.com>
+ *
+ * Contributors :
+ *
+ * Michael Hurni <michael.hurni@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify it under the terms of the
+ * GNU Lesser General Public License as published by the Free Software Foundation.
+ *
+ * Read the full licence: http://www.opensource.org/licenses/lgpl-license.php
+ */
+
+
+CodePress = {
+ scrolling : false,
+ autocomplete : true,
+
+ // set initial vars and start sh
+ initialize : function() {
+ if(typeof(editor)=='undefined' && !arguments[0]) return;
+ chars = '|32|46|62|'; // charcodes that trigger syntax highlighting
+ cc = '\u2009'; // control char
+ editor = document.getElementsByTagName('body')[0];
+ document.designMode = 'on';
+ document.addEventListener('keyup', this.keyHandler, true);
+ window.addEventListener('scroll', function() { if(!CodePress.scrolling) CodePress.syntaxHighlight('scroll') }, false);
+ completeChars = this.getCompleteChars();
+// CodePress.syntaxHighlight('init');
+ },
+
+ // treat key bindings
+ keyHandler : function(evt) {
+ keyCode = evt.keyCode;
+ charCode = evt.charCode;
+
+ if((evt.ctrlKey || evt.metaKey) && evt.shiftKey && charCode!=90) { // shortcuts = ctrl||appleKey+shift+key!=z(undo)
+ CodePress.shortcuts(charCode?charCode:keyCode);
+ }
+ else if(completeChars.indexOf('|'+String.fromCharCode(charCode)+'|')!=-1 && CodePress.autocomplete) { // auto complete
+ CodePress.complete(String.fromCharCode(charCode));
+ }
+ else if(chars.indexOf('|'+charCode+'|')!=-1||keyCode==13) { // syntax highlighting
+ CodePress.syntaxHighlight('generic');
+ }
+ else if(keyCode==9 || evt.tabKey) { // snippets activation (tab)
+ CodePress.snippets(evt);
+ }
+ else if(keyCode==46||keyCode==8) { // save to history when delete or backspace pressed
+ CodePress.actions.history[CodePress.actions.next()] = editor.innerHTML;
+ }
+ else if((charCode==122||charCode==121||charCode==90) && evt.ctrlKey) { // undo and redo
+ (charCode==121||evt.shiftKey) ? CodePress.actions.redo() : CodePress.actions.undo();
+ evt.preventDefault();
+ }
+ else if(keyCode==86 && evt.ctrlKey) { // paste
+ // TODO: pasted text should be parsed and highlighted
+ }
+ },
+
+ // put cursor back to its original position after every parsing
+ findString : function() {
+ var sel = window.getSelection();
+ var range = window.document.createRange();
+ var span = window.document.getElementsByTagName('span')[0];
+
+ range.selectNode(span);
+ sel.removeAllRanges();
+ sel.addRange(range);
+ span.parentNode.removeChild(span);
+ //if(self.find(cc))
+ //window.getSelection().getRangeAt(0).deleteContents();
+ },
+
+ // split big files, highlighting parts of it
+ split : function(code,flag) {
+ if(flag=='scroll') {
+ this.scrolling = true;
+ return code;
+ }
+ else {
+ this.scrolling = false;
+ mid = code.indexOf('<SPAN>');
+ if(mid-2000<0) {ini=0;end=4000;}
+ else if(mid+2000>code.length) {ini=code.length-4000;end=code.length;}
+ else {ini=mid-2000;end=mid+2000;}
+ code = code.substring(ini,end);
+ return code;
+ }
+ },
+
+ // syntax highlighting parser
+ syntaxHighlight : function(flag) {
+ //if(document.designMode=='off') document.designMode='on'
+ if(flag!='init') {
+ var span = document.createElement('span');
+ window.getSelection().getRangeAt(0).insertNode(span);
+ }
+
+ o = editor.innerHTML;
+// o = o.replace(/<br>/g,'\r\n');
+// o = o.replace(/<(b|i|s|u|a|em|tt|ins|big|cite|strong)?>/g,'');
+ //alert(o)
+ o = o.replace(/<(?!span|\/span|br).*?>/gi,'');
+// alert(o)
+// x = o;
+ x = z = this.split(o,flag);
+ //alert(z)
+// x = x.replace(/\r\n/g,'<br>');
+ x = x.replace(/\t/g, ' ');
+
+
+ if(arguments[1]&&arguments[2]) x = x.replace(arguments[1],arguments[2]);
+
+ for(i=0;i<Language.syntax.length;i++)
+ x = x.replace(Language.syntax[i].input,Language.syntax[i].output);
+
+ editor.innerHTML = this.actions.history[this.actions.next()] = (flag=='scroll') ? x : o.split(z).join(x);
+
+ if(flag!='init') this.findString();
+ },
+
+ getLastWord : function() {
+ var rangeAndCaret = CodePress.getRangeAndCaret();
+ words = rangeAndCaret[0].substring(rangeAndCaret[1]-40,rangeAndCaret[1]);
+ words = words.replace(/[\s\n\r\);\W]/g,'\n').split('\n');
+ return words[words.length-1].replace(/[\W]/gi,'').toLowerCase();
+ },
+
+ snippets : function(evt) {
+ var snippets = Language.snippets;
+ var trigger = this.getLastWord();
+ for (var i=0; i<snippets.length; i++) {
+ if(snippets[i].input == trigger) {
+ var content = snippets[i].output.replace(/</g,'&lt;');
+ content = content.replace(/>/g,'&gt;');
+ if(content.indexOf('$0')<0) content += cc;
+ else content = content.replace(/\$0/,cc);
+ content = content.replace(/\n/g,'<br>');
+ var pattern = new RegExp(trigger+cc,'gi');
+ evt.preventDefault(); // prevent the tab key from being added
+ this.syntaxHighlight('snippets',pattern,content);
+ }
+ }
+ },
+
+ readOnly : function() {
+ document.designMode = (arguments[0]) ? 'off' : 'on';
+ },
+
+ complete : function(trigger) {
+ window.getSelection().getRangeAt(0).deleteContents();
+ var complete = Language.complete;
+ for (var i=0; i<complete.length; i++) {
+ if(complete[i].input == trigger) {
+ var pattern = new RegExp('\\'+trigger+cc);
+ var content = complete[i].output.replace(/\$0/g,cc);
+ parent.setTimeout(function () { CodePress.syntaxHighlight('complete',pattern,content)},0); // wait for char to appear on screen
+ }
+ }
+ },
+
+ getCompleteChars : function() {
+ var cChars = '';
+ for(var i=0;i<Language.complete.length;i++)
+ cChars += '|'+Language.complete[i].input;
+ return cChars+'|';
+ },
+
+ shortcuts : function() {
+ var cCode = arguments[0];
+ if(cCode==13) cCode = '[enter]';
+ else if(cCode==32) cCode = '[space]';
+ else cCode = '['+String.fromCharCode(charCode).toLowerCase()+']';
+ for(var i=0;i<Language.shortcuts.length;i++)
+ if(Language.shortcuts[i].input == cCode)
+ this.insertCode(Language.shortcuts[i].output,false);
+ },
+
+ getRangeAndCaret : function() {
+ var range = window.getSelection().getRangeAt(0);
+ var range2 = range.cloneRange();
+ var node = range.endContainer;
+ var caret = range.endOffset;
+ range2.selectNode(node);
+ return [range2.toString(),caret];
+ },
+
+ insertCode : function(code,replaceCursorBefore) {
+ var range = window.getSelection().getRangeAt(0);
+ var node = window.document.createTextNode(code);
+ var selct = window.getSelection();
+ var range2 = range.cloneRange();
+ // Insert text at cursor position
+ selct.removeAllRanges();
+ range.deleteContents();
+ range.insertNode(node);
+ // Move the cursor to the end of text
+ range2.selectNode(node);
+ range2.collapse(replaceCursorBefore);
+ selct.removeAllRanges();
+ selct.addRange(range2);
+ },
+
+ // get code from editor
+ getCode : function() {
+ var code = editor.innerHTML;
+ code = code.replace(/<br>/g,'\n');
+ code = code.replace(/\u2009/g,'');
+ code = code.replace(/<.*?>/g,'');
+ code = code.replace(/&lt;/g,'<');
+ code = code.replace(/&gt;/g,'>');
+ code = code.replace(/&amp;/gi,'&');
+ return code;
+ },
+
+ // put code inside editor
+ setCode : function() {
+ var code = arguments[0];
+ code = code.replace(/\u2009/gi,'');
+ code = code.replace(/&/gi,'&amp;');
+ code = code.replace(/</g,'&lt;');
+ code = code.replace(/>/g,'&gt;');
+ editor.innerHTML = code;
+ },
+
+ // undo and redo methods
+ actions : {
+ pos : -1, // actual history position
+ history : [], // history vector
+
+ undo : function() {
+ if(editor.innerHTML.indexOf(cc)==-1){
+ window.getSelection().getRangeAt(0).insertNode(document.createTextNode(cc));
+ this.history[this.pos] = editor.innerHTML;
+ }
+ this.pos--;
+ if(typeof(this.history[this.pos])=='undefined') this.pos++;
+ editor.innerHTML = this.history[this.pos];
+ CodePress.findString();
+ },
+
+ redo : function() {
+ this.pos++;
+ if(typeof(this.history[this.pos])=='undefined') this.pos--;
+ editor.innerHTML = this.history[this.pos];
+ CodePress.findString();
+ },
+
+ next : function() { // get next vector position and clean old ones
+ if(this.pos>20) this.history[this.pos-21] = undefined;
+ return ++this.pos;
+ }
+ }
+}
+
+Language={};
+window.addEventListener('load', function() { CodePress.initialize('new'); }, true);
Property changes on: platform/template_manager/inc/codepress/engines/opera.js
___________________________________________________________________
Added: cvs2svn:cvs-rev
## -0,0 +1 ##
+1.1.2.1
\ No newline at end of property
Index: platform/template_manager/inc/codepress/engines/gecko.js
===================================================================
--- platform/template_manager/inc/codepress/engines/gecko.js (nonexistent)
+++ platform/template_manager/inc/codepress/engines/gecko.js (revision 11427)
@@ -0,0 +1,313 @@
+/*
+ * CodePress - Real Time Syntax Highlighting Editor written in JavaScript - http://codepress.org/
+ *
+ * Copyright (C) 2007 Fernando M.A.d.S. <fermads@gmail.com>
+ *
+ * Developers:
+ * Fernando M.A.d.S. <fermads@gmail.com>
+ * Michael Hurni <michael.hurni@gmail.com>
+ * Contributors:
+ * Martin D. Kirk
+ *
+ * This program is free software; you can redistribute it and/or modify it under the terms of the
+ * GNU Lesser General Public License as published by the Free Software Foundation.
+ *
+ * Read the full licence: http://www.opensource.org/licenses/lgpl-license.php
+ */
+
+CodePress = {
+ scrolling : false,
+ autocomplete : true,
+
+ // set initial vars and start sh
+ initialize : function() {
+ if(typeof(editor)=='undefined' && !arguments[0]) return;
+ body = document.getElementsByTagName('body')[0];
+ body.innerHTML = body.innerHTML.replace(/\n/g,"");
+ chars = '|32|46|62|8|'; // charcodes that trigger syntax highlighting
+ cc = '\u2009'; // carret char
+ editor = document.getElementsByTagName('pre')[0];
+ document.designMode = 'on';
+ document.addEventListener('keypress', this.keyHandler, true);
+ window.addEventListener('scroll', function() { if(!CodePress.scrolling) CodePress.syntaxHighlight('scroll') }, false);
+ completeChars = this.getCompleteChars();
+ completeEndingChars = this.getCompleteEndingChars();
+ },
+
+ // treat key bindings
+ keyHandler : function(evt) {
+ keyCode = evt.keyCode;
+ charCode = evt.charCode;
+ fromChar = String.fromCharCode(charCode);
+
+ if((evt.ctrlKey || evt.metaKey) && evt.shiftKey && charCode!=90) { // shortcuts = ctrl||appleKey+shift+key!=z(undo)
+ CodePress.shortcuts(charCode?charCode:keyCode);
+ }
+ else if( (completeEndingChars.indexOf('|'+fromChar+'|')!= -1 || completeChars.indexOf('|'+fromChar+'|')!=-1) && CodePress.autocomplete) { // auto complete
+ if(!CodePress.completeEnding(fromChar))
+ CodePress.complete(fromChar);
+ }
+ else if(chars.indexOf('|'+charCode+'|')!=-1||keyCode==13) { // syntax highlighting
+ top.setTimeout(function(){CodePress.syntaxHighlight('generic');},100);
+ }
+ else if(keyCode==9 || evt.tabKey) { // snippets activation (tab)
+ CodePress.snippets(evt);
+ }
+ else if(keyCode==46||keyCode==8) { // save to history when delete or backspace pressed
+ CodePress.actions.history[CodePress.actions.next()] = editor.innerHTML;
+ }
+ else if((charCode==122||charCode==121||charCode==90) && evt.ctrlKey) { // undo and redo
+ (charCode==121||evt.shiftKey) ? CodePress.actions.redo() : CodePress.actions.undo();
+ evt.preventDefault();
+ }
+ else if(charCode==118 && evt.ctrlKey) { // handle paste
+ top.setTimeout(function(){CodePress.syntaxHighlight('generic');},100);
+ }
+ else if(charCode==99 && evt.ctrlKey) { // handle cut
+ //alert(window.getSelection().getRangeAt(0).toString().replace(/\t/g,'FFF'));
+ }
+
+ },
+
+ // put cursor back to its original position after every parsing
+ findString : function() {
+ if(self.find(cc))
+ window.getSelection().getRangeAt(0).deleteContents();
+ },
+
+ // split big files, highlighting parts of it
+ split : function(code,flag) {
+ if(flag=='scroll') {
+ this.scrolling = true;
+ return code;
+ }
+ else {
+ this.scrolling = false;
+ mid = code.indexOf(cc);
+ if(mid-2000<0) {ini=0;end=4000;}
+ else if(mid+2000>code.length) {ini=code.length-4000;end=code.length;}
+ else {ini=mid-2000;end=mid+2000;}
+ code = code.substring(ini,end);
+ return code;
+ }
+ },
+
+ getEditor : function() {
+ if(!document.getElementsByTagName('pre')[0]) {
+ body = document.getElementsByTagName('body')[0];
+ if(!body.innerHTML) return body;
+ if(body.innerHTML=="<br>") body.innerHTML = "<pre> </pre>";
+ else body.innerHTML = "<pre>"+body.innerHTML+"</pre>";
+ }
+ return document.getElementsByTagName('pre')[0];
+ },
+
+ // syntax highlighting parser
+ syntaxHighlight : function(flag) {
+ //if(document.designMode=='off') document.designMode='on'
+ if(flag != 'init') { window.getSelection().getRangeAt(0).insertNode(document.createTextNode(cc));}
+ editor = CodePress.getEditor();
+ o = editor.innerHTML;
+ o = o.replace(/<br>/g,'\n');
+ o = o.replace(/<.*?>/g,'');
+ x = z = this.split(o,flag);
+ x = x.replace(/\n/g,'<br>');
+
+ if(arguments[1]&&arguments[2]) x = x.replace(arguments[1],arguments[2]);
+
+ for(i=0;i<Language.syntax.length;i++)
+ x = x.replace(Language.syntax[i].input,Language.syntax[i].output);
+
+ editor.innerHTML = this.actions.history[this.actions.next()] = (flag=='scroll') ? x : o.split(z).join(x);
+ if(flag!='init') this.findString();
+ },
+
+ getLastWord : function() {
+ var rangeAndCaret = CodePress.getRangeAndCaret();
+ words = rangeAndCaret[0].substring(rangeAndCaret[1]-40,rangeAndCaret[1]);
+ words = words.replace(/[\s\n\r\);\W]/g,'\n').split('\n');
+ return words[words.length-1].replace(/[\W]/gi,'').toLowerCase();
+ },
+
+ snippets : function(evt) {
+ var snippets = Language.snippets;
+ var trigger = this.getLastWord();
+
+ // modified to insert tab on FF
+ var noInsertion = 1;
+ for (var i=0; i<snippets.length; i++) {
+ if(snippets[i].input == trigger) {
+ noInsertion = 0;
+ var content = snippets[i].output.replace(/</g,'&lt;');
+ content = content.replace(/>/g,'&gt;');
+ if(content.indexOf('$0')<0) content += cc;
+ else content = content.replace(/\$0/,cc);
+ content = content.replace(/\n/g,'<br>');
+ var pattern = new RegExp(trigger+cc,'gi');
+ evt.preventDefault(); // prevent the tab key from being added
+ this.syntaxHighlight('snippets',pattern,content);
+ }
+ }
+
+ /* Modified to insert tab on FF
+ * @author Asad Khan <asadkn [at-the-rate-of] gmail [dot] com>
+ */
+ if (noInsertion == 1) {
+ var range = window.getSelection().getRangeAt(0);
+
+ // for the single line
+ range.setEnd(range.startContainer, range.startOffset);
+
+ var ele = document.createTextNode('\t');
+ range.insertNode(ele);
+ range.setStartAfter(ele);
+
+ evt.preventDefault();
+ }
+ },
+
+ readOnly : function() {
+ document.designMode = (arguments[0]) ? 'off' : 'on';
+ },
+
+ complete : function(trigger) {
+ window.getSelection().getRangeAt(0).deleteContents();
+ var complete = Language.complete;
+ for (var i=0; i<complete.length; i++) {
+ if(complete[i].input == trigger) {
+ var pattern = new RegExp('\\'+trigger+cc);
+ var content = complete[i].output.replace(/\$0/g,cc);
+ parent.setTimeout(function () { CodePress.syntaxHighlight('complete',pattern,content)},0); // wait for char to appear on screen
+ }
+ }
+ },
+
+ getCompleteChars : function() {
+ var cChars = '';
+ for(var i=0;i<Language.complete.length;i++)
+ cChars += '|'+Language.complete[i].input;
+ return cChars+'|';
+ },
+
+ getCompleteEndingChars : function() {
+ var cChars = '';
+ for(var i=0;i<Language.complete.length;i++)
+ cChars += '|'+Language.complete[i].output.charAt(Language.complete[i].output.length-1);
+ return cChars+'|';
+ },
+
+ completeEnding : function(trigger) {
+ var range = window.getSelection().getRangeAt(0);
+ try {
+ range.setEnd(range.endContainer, range.endOffset+1)
+ }
+ catch(e) {
+ return false;
+ }
+ var next_character = range.toString()
+ range.setEnd(range.endContainer, range.endOffset-1)
+ if(next_character != trigger) return false;
+ else {
+ range.setEnd(range.endContainer, range.endOffset+1)
+ range.deleteContents();
+ return true;
+ }
+ },
+
+ shortcuts : function() {
+ var cCode = arguments[0];
+ if(cCode==13) cCode = '[enter]';
+ else if(cCode==32) cCode = '[space]';
+ else cCode = '['+String.fromCharCode(charCode).toLowerCase()+']';
+ for(var i=0;i<Language.shortcuts.length;i++)
+ if(Language.shortcuts[i].input == cCode)
+ this.insertCode(Language.shortcuts[i].output,false);
+ },
+
+ getRangeAndCaret : function() {
+ var range = window.getSelection().getRangeAt(0);
+ var range2 = range.cloneRange();
+ var node = range.endContainer;
+ var caret = range.endOffset;
+ range2.selectNode(node);
+ return [range2.toString(),caret];
+ },
+
+ insertCode : function(code,replaceCursorBefore) {
+ var range = window.getSelection().getRangeAt(0);
+ var node = window.document.createTextNode(code);
+ var selct = window.getSelection();
+ var range2 = range.cloneRange();
+ // Insert text at cursor position
+ selct.removeAllRanges();
+ range.deleteContents();
+ range.insertNode(node);
+ // Move the cursor to the end of text
+ range2.selectNode(node);
+ range2.collapse(replaceCursorBefore);
+ selct.removeAllRanges();
+ selct.addRange(range2);
+ },
+
+ // get code from editor
+ getCode : function() {
+ if(!document.getElementsByTagName('pre')[0] || editor.innerHTML == '')
+ editor = CodePress.getEditor();
+ var code = editor.innerHTML;
+ code = code.replace(/<br>/g,'\n');
+ code = code.replace(/\u2009/g,'');
+ code = code.replace(/<.*?>/g,'');
+ code = code.replace(/&lt;/g,'<');
+ code = code.replace(/&gt;/g,'>');
+ code = code.replace(/&amp;/gi,'&');
+ return code;
+ },
+
+ // put code inside editor
+ setCode : function() {
+ var code = arguments[0];
+ code = code.replace(/\u2009/gi,'');
+ code = code.replace(/&/gi,'&amp;');
+ code = code.replace(/</g,'&lt;');
+ code = code.replace(/>/g,'&gt;');
+ editor.innerHTML = code;
+ if (code == '')
+ document.getElementsByTagName('body')[0].innerHTML = '';
+ },
+
+ // undo and redo methods
+ actions : {
+ pos : -1, // actual history position
+ history : [], // history vector
+
+ undo : function() {
+ editor = CodePress.getEditor();
+ if(editor.innerHTML.indexOf(cc)==-1){
+ if(editor.innerHTML != " ")
+ window.getSelection().getRangeAt(0).insertNode(document.createTextNode(cc));
+ this.history[this.pos] = editor.innerHTML;
+ }
+ this.pos --;
+ if(typeof(this.history[this.pos])=='undefined') this.pos ++;
+ editor.innerHTML = this.history[this.pos];
+ if(editor.innerHTML.indexOf(cc)>-1) editor.innerHTML+=cc;
+ CodePress.findString();
+ },
+
+ redo : function() {
+ // editor = CodePress.getEditor();
+ this.pos++;
+ if(typeof(this.history[this.pos])=='undefined') this.pos--;
+ editor.innerHTML = this.history[this.pos];
+ CodePress.findString();
+ },
+
+ next : function() { // get next vector position and clean old ones
+ if(this.pos>20) this.history[this.pos-21] = undefined;
+ return ++this.pos;
+ }
+ }
+}
+
+Language={};
+window.addEventListener('load', function() { CodePress.initialize('new'); }, true);
\ No newline at end of file
Property changes on: platform/template_manager/inc/codepress/engines/gecko.js
___________________________________________________________________
Added: cvs2svn:cvs-rev
## -0,0 +1 ##
+1.1.2.1
\ No newline at end of property
Index: platform/template_manager/inc/codepress/engines/msie.js
===================================================================
--- platform/template_manager/inc/codepress/engines/msie.js (nonexistent)
+++ platform/template_manager/inc/codepress/engines/msie.js (revision 11427)
@@ -0,0 +1,304 @@
+/*
+ * CodePress - Real Time Syntax Highlighting Editor written in JavaScript - http://codepress.org/
+ *
+ * Copyright (C) 2007 Fernando M.A.d.S. <fermads@gmail.com>
+ *
+ * Developers:
+ * Fernando M.A.d.S. <fermads@gmail.com>
+ * Michael Hurni <michael.hurni@gmail.com>
+ * Contributors:
+ * Martin D. Kirk
+ *
+ * This program is free software; you can redistribute it and/or modify it under the terms of the
+ * GNU Lesser General Public License as published by the Free Software Foundation.
+ *
+ * Read the full licence: http://www.opensource.org/licenses/lgpl-license.php
+ */
+
+CodePress = {
+ scrolling : false,
+ autocomplete : true,
+
+ // set initial vars and start sh
+ initialize : function() {
+ if(typeof(editor)=='undefined' && !arguments[0]) return;
+ chars = '|32|46|62|'; // charcodes that trigger syntax highlighting
+ cc = '\u2009'; // carret char
+ editor = document.getElementsByTagName('pre')[0];
+ editor.contentEditable = 'true';
+ document.getElementsByTagName('body')[0].onfocus = function() {editor.focus();}
+ document.attachEvent('onkeydown', this.metaHandler);
+ document.attachEvent('onkeypress', this.keyHandler);
+ window.attachEvent('onscroll', function() { if(!CodePress.scrolling) setTimeout(function(){CodePress.syntaxHighlight('scroll')},1)});
+ completeChars = this.getCompleteChars();
+ completeEndingChars = this.getCompleteEndingChars();
+ setTimeout(function() { window.scroll(0,0) },50); // scroll IE to top
+ },
+
+ // treat key bindings
+ keyHandler : function(evt) {
+ charCode = evt.keyCode;
+ fromChar = String.fromCharCode(charCode);
+
+ if( (completeEndingChars.indexOf('|'+fromChar+'|')!= -1 || completeChars.indexOf('|'+fromChar+'|')!=-1 )&& CodePress.autocomplete) { // auto complete
+ if(!CodePress.completeEnding(fromChar))
+ CodePress.complete(fromChar);
+ }
+ else if(chars.indexOf('|'+charCode+'|')!=-1||charCode==13) { // syntax highlighting
+ CodePress.syntaxHighlight('generic');
+ }
+ },
+
+ metaHandler : function(evt) {
+ keyCode = evt.keyCode;
+
+ if(keyCode==9 || evt.tabKey) {
+ CodePress.snippets();
+ }
+ else if((keyCode==122||keyCode==121||keyCode==90) && evt.ctrlKey) { // undo and redo
+ (keyCode==121||evt.shiftKey) ? CodePress.actions.redo() : CodePress.actions.undo();
+ evt.returnValue = false;
+ }
+ else if(keyCode==34||keyCode==33) { // handle page up/down for IE
+ self.scrollBy(0, (keyCode==34) ? 200 : -200);
+ evt.returnValue = false;
+ }
+ else if(keyCode==46||keyCode==8) { // save to history when delete or backspace pressed
+ CodePress.actions.history[CodePress.actions.next()] = editor.innerHTML;
+ }
+ else if((evt.ctrlKey || evt.metaKey) && evt.shiftKey && keyCode!=90) { // shortcuts = ctrl||appleKey+shift+key!=z(undo)
+ CodePress.shortcuts(keyCode);
+ evt.returnValue = false;
+ }
+ else if(keyCode==86 && evt.ctrlKey) { // handle paste
+ window.clipboardData.setData('Text',window.clipboardData.getData('Text').replace(/\t/g,'\u2008'));
+ top.setTimeout(function(){CodePress.syntaxHighlight('paste');},10);
+ }
+ else if(keyCode==67 && evt.ctrlKey) { // handle cut
+ // window.clipboardData.setData('Text',x[0]);
+ // code = window.clipboardData.getData('Text');
+ }
+ },
+
+ // put cursor back to its original position after every parsing
+
+
+ findString : function() {
+ range = self.document.body.createTextRange();
+ if(range.findText(cc)){
+ range.select();
+ range.text = '';
+ }
+ },
+
+ // split big files, highlighting parts of it
+ split : function(code,flag) {
+ if(flag=='scroll') {
+ this.scrolling = true;
+ return code;
+ }
+ else {
+ this.scrolling = false;
+ mid = code.indexOf(cc);
+ if(mid-2000<0) {ini=0;end=4000;}
+ else if(mid+2000>code.length) {ini=code.length-4000;end=code.length;}
+ else {ini=mid-2000;end=mid+2000;}
+ code = code.substring(ini,end);
+ return code.substring(code.indexOf('<P>'),code.lastIndexOf('</P>')+4);
+ }
+ },
+
+ // syntax highlighting parser
+ syntaxHighlight : function(flag) {
+ if(flag!='init') document.selection.createRange().text = cc;
+ o = editor.innerHTML;
+ if(flag=='paste') { // fix pasted text
+ o = o.replace(/<BR>/g,'\r\n');
+ o = o.replace(/\u2008/g,'\t');
+ }
+ o = o.replace(/<P>/g,'\n');
+ o = o.replace(/<\/P>/g,'\r');
+ o = o.replace(/<.*?>/g,'');
+ o = o.replace(/&nbsp;/g,'');
+ o = '<PRE><P>'+o+'</P></PRE>';
+ o = o.replace(/\n\r/g,'<P></P>');
+ o = o.replace(/\n/g,'<P>');
+ o = o.replace(/\r/g,'<\/P>');
+ o = o.replace(/<P>(<P>)+/,'<P>');
+ o = o.replace(/<\/P>(<\/P>)+/,'</P>');
+ o = o.replace(/<P><\/P>/g,'<P><BR/></P>');
+ x = z = this.split(o,flag);
+
+ if(arguments[1]&&arguments[2]) x = x.replace(arguments[1],arguments[2]);
+
+ for(i=0;i<Language.syntax.length;i++)
+ x = x.replace(Language.syntax[i].input,Language.syntax[i].output);
+
+ editor.innerHTML = this.actions.history[this.actions.next()] = (flag=='scroll') ? x : o.replace(z,x);
+ if(flag!='init') this.findString();
+ },
+
+ snippets : function(evt) {
+ var snippets = Language.snippets;
+ var trigger = this.getLastWord();
+ for (var i=0; i<snippets.length; i++) {
+ if(snippets[i].input == trigger) {
+ var content = snippets[i].output.replace(/</g,'&lt;');
+ content = content.replace(/>/g,'&gt;');
+ if(content.indexOf('$0')<0) content += cc;
+ else content = content.replace(/\$0/,cc);
+ content = content.replace(/\n/g,'</P><P>');
+ var pattern = new RegExp(trigger+cc,"gi");
+ this.syntaxHighlight('snippets',pattern,content);
+ }
+ }
+ },
+
+ readOnly : function() {
+ editor.contentEditable = (arguments[0]) ? 'false' : 'true';
+ },
+
+ complete : function(trigger) {
+ var complete = Language.complete;
+ for (var i=0; i<complete.length; i++) {
+ if(complete[i].input == trigger) {
+ var pattern = new RegExp('\\'+trigger+cc);
+ var content = complete[i].output.replace(/\$0/g,cc);
+ setTimeout(function () { CodePress.syntaxHighlight('complete',pattern,content)},0); // wait for char to appear on screen
+ }
+ }
+ },
+
+ getCompleteChars : function() {
+ var cChars = '';
+ for(var i=0;i<Language.complete.length;i++)
+ cChars += '|'+Language.complete[i].input;
+ return cChars+'|';
+ },
+
+ getCompleteEndingChars : function() {
+ var cChars = '';
+ for(var i=0;i<Language.complete.length;i++)
+ cChars += '|'+Language.complete[i].output.charAt(Language.complete[i].output.length-1);
+ return cChars+'|';
+ },
+
+ completeEnding : function(trigger) {
+ var range = document.selection.createRange();
+ try {
+ range.moveEnd('character', 1)
+ }
+ catch(e) {
+ return false;
+ }
+ var next_character = range.text
+ range.moveEnd('character', -1)
+ if(next_character != trigger ) return false;
+ else {
+ range.moveEnd('character', 1)
+ range.text=''
+ return true;
+ }
+ },
+
+ shortcuts : function() {
+ var cCode = arguments[0];
+ if(cCode==13) cCode = '[enter]';
+ else if(cCode==32) cCode = '[space]';
+ else cCode = '['+String.fromCharCode(keyCode).toLowerCase()+']';
+ for(var i=0;i<Language.shortcuts.length;i++)
+ if(Language.shortcuts[i].input == cCode)
+ this.insertCode(Language.shortcuts[i].output,false);
+ },
+
+ getLastWord : function() {
+ var rangeAndCaret = CodePress.getRangeAndCaret();
+ words = rangeAndCaret[0].substring(rangeAndCaret[1]-40,rangeAndCaret[1]);
+ words = words.replace(/[\s\n\r\);\W]/g,'\n').split('\n');
+ return words[words.length-1].replace(/[\W]/gi,'').toLowerCase();
+ },
+
+ getRangeAndCaret : function() {
+ var range = document.selection.createRange();
+ var caret = Math.abs(range.moveStart('character', -1000000)+1);
+ range = this.getCode();
+ range = range.replace(/\n\r/gi,' ');
+ range = range.replace(/\n/gi,'');
+ return [range.toString(),caret];
+ },
+
+ insertCode : function(code,replaceCursorBefore) {
+ var repdeb = '';
+ var repfin = '';
+
+ if(replaceCursorBefore) { repfin = code; }
+ else { repdeb = code; }
+
+ if(typeof document.selection != 'undefined') {
+ var range = document.selection.createRange();
+ range.text = repdeb + repfin;
+ range = document.selection.createRange();
+ range.move('character', -repfin.length);
+ range.select();
+ }
+ },
+
+ // get code from editor
+ getCode : function() {
+ var code = editor.innerHTML;
+ code = code.replace(/<br>/g,'\n');
+ code = code.replace(/<\/p>/gi,'\r');
+ code = code.replace(/<p>/i,''); // IE first line fix
+ code = code.replace(/<p>/gi,'\n');
+ code = code.replace(/&nbsp;/gi,'');
+ code = code.replace(/\u2009/g,'');
+ code = code.replace(/<.*?>/g,'');
+ code = code.replace(/&lt;/g,'<');
+ code = code.replace(/&gt;/g,'>');
+ code = code.replace(/&amp;/gi,'&');
+ return code;
+ },
+
+ // put code inside editor
+ setCode : function() {
+ var code = arguments[0];
+ code = code.replace(/\u2009/gi,'');
+ code = code.replace(/&/gi,'&amp;');
+ code = code.replace(/</g,'&lt;');
+ code = code.replace(/>/g,'&gt;');
+ editor.innerHTML = '<pre>'+code+'</pre>';
+ },
+
+
+ // undo and redo methods
+ actions : {
+ pos : -1, // actual history position
+ history : [], // history vector
+
+ undo : function() {
+ if(editor.innerHTML.indexOf(cc)==-1){
+ document.selection.createRange().text = cc;
+ this.history[this.pos] = editor.innerHTML;
+ }
+ this.pos--;
+ if(typeof(this.history[this.pos])=='undefined') this.pos++;
+ editor.innerHTML = this.history[this.pos];
+ CodePress.findString();
+ },
+
+ redo : function() {
+ this.pos++;
+ if(typeof(this.history[this.pos])=='undefined') this.pos--;
+ editor.innerHTML = this.history[this.pos];
+ CodePress.findString();
+ },
+
+ next : function() { // get next vector position and clean old ones
+ if(this.pos>20) this.history[this.pos-21] = undefined;
+ return ++this.pos;
+ }
+ }
+}
+
+Language={};
+window.attachEvent('onload', function() { CodePress.initialize('new');});
\ No newline at end of file
Property changes on: platform/template_manager/inc/codepress/engines/msie.js
___________________________________________________________________
Added: cvs2svn:cvs-rev
## -0,0 +1 ##
+1.1.2.1
\ No newline at end of property
Index: platform/template_manager/inc/codepress/engines/khtml.js
===================================================================
Index: platform/template_manager/inc/codepress/engines/khtml.js
===================================================================
--- platform/template_manager/inc/codepress/engines/khtml.js (nonexistent)
+++ platform/template_manager/inc/codepress/engines/khtml.js (revision 11427)
Property changes on: platform/template_manager/inc/codepress/engines/khtml.js
___________________________________________________________________
Added: cvs2svn:cvs-rev
## -0,0 +1 ##
+1.1.2.1
\ No newline at end of property
Index: platform/template_manager/inc/codepress/codepress.html
===================================================================
--- platform/template_manager/inc/codepress/codepress.html (nonexistent)
+++ platform/template_manager/inc/codepress/codepress.html (revision 11427)
@@ -0,0 +1,35 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+ <title>CodePress - Real Time Syntax Highlighting Editor written in JavaScript</title>
+ <meta name="description" content="CodePress - source code editor window" />
+
+ <script type="text/javascript">
+ var language = 'generic';
+ var engine = 'older';
+ var ua = navigator.userAgent;
+ var ts = (new Date).getTime(); // timestamp to avoid cache
+ var lh = location.href;
+
+ if(ua.match('MSIE')) engine = 'msie';
+ else if(ua.match('KHTML')) engine = 'khtml';
+ else if(ua.match('Opera')) engine = 'opera';
+ else if(ua.match('Gecko')) engine = 'gecko';
+
+ if(lh.match('language=')) language = lh.replace(/.*language=(.*?)(&.*)?$/,'$1');
+
+ document.write('<link type="text/css" href="codepress.css?ts='+ts+'" rel="stylesheet" />');
+ document.write('<link type="text/css" href="languages/'+language+'.css?ts='+ts+'" rel="stylesheet" id="cp-lang-style" />');
+ document.write('<scr'+'ipt type="text/javascript" src="engines/'+engine+'.js?ts='+ts+'"></scr'+'ipt>');
+ document.write('<scr'+'ipt type="text/javascript" src="languages/'+language+'.js?ts='+ts+'"></scr'+'ipt>');
+ </script>
+
+</head>
+
+<script type="text/javascript">
+if(engine == "msie" || engine == "gecko") document.write('<body><pre> </pre></body>');
+else if(engine == "opera") document.write('<body></body>');
+// else if(engine == "khtml") document.write('<body> </body>');
+</script>
+
+</html>
Property changes on: platform/template_manager/inc/codepress/codepress.html
___________________________________________________________________
Added: cvs2svn:cvs-rev
## -0,0 +1 ##
+1.1.2.1
\ No newline at end of property
Index: platform/template_manager/inc/codepress/codepress.css
===================================================================
--- platform/template_manager/inc/codepress/codepress.css (nonexistent)
+++ platform/template_manager/inc/codepress/codepress.css (revision 11427)
@@ -0,0 +1,21 @@
+body {
+ margin-top:13px;
+ _margin-top:14px;
+ background:white;
+ margin-left:32px;
+ font-family:monospace;
+ font-size:13px;
+ white-space:pre;
+ background-image:url("images/line-numbers.png");
+ background-repeat:repeat-y;
+ background-position:0 3px;
+ line-height:16px;
+ height:100%;
+}
+pre {margin:0;}
+html>body{background-position:0 2px;}
+P {margin:0;padding:0;border:0;outline:0;display:block;white-space:pre;}
+b, i, s, u, a, em, tt, ins, big, cite, strong, var, dfn {text-decoration:none;font-weight:normal;font-style:normal;font-size:13px;}
+
+body.hide-line-numbers {background:white;margin-left:16px;}
+body.show-line-numbers {background-image:url("images/line-numbers.png");margin-left:32px;}
\ No newline at end of file
Property changes on: platform/template_manager/inc/codepress/codepress.css
___________________________________________________________________
Added: cvs2svn:cvs-rev
## -0,0 +1 ##
+1.1.2.1
\ No newline at end of property
Index: platform/template_manager/inc/template_manager.css
===================================================================
--- platform/template_manager/inc/template_manager.css (nonexistent)
+++ platform/template_manager/inc/template_manager.css (revision 11427)
@@ -0,0 +1,25 @@
+span.edit-block {
+ font-family: Arial, Verdana;
+ font-size: 9pt;
+ width: auto;
+ font-weight: normal;
+ color: #0000FF;
+ background-color: #F7C300;
+ border: 1px solid #CE0031;
+ padding: 1px 10px 1px 10px;
+ cursor: pointer;
+}
+
+div.block-container {
+ border: 1px dashed transparent;
+ margin: 8px;
+}
+
+div.block-container-over {
+ border-color: red;
+}
+
+div.tm-editor, div.tm-editor td {
+ font-size: 14px;
+ font-family: serif;
+}
\ No newline at end of file
Property changes on: platform/template_manager/inc/template_manager.css
___________________________________________________________________
Added: cvs2svn:cvs-rev
## -0,0 +1 ##
+1.1.2.1
\ No newline at end of property
Index: platform/template_manager/edit_template.tpl
===================================================================
--- platform/template_manager/edit_template.tpl (nonexistent)
+++ platform/template_manager/edit_template.tpl (revision 11427)
@@ -0,0 +1,60 @@
+<inp2:m_NoDebug/>
+
+<div style="padding-top: 8px; padding-bottom: 8px;" class="tm-editor">
+ <!--Block Name (in url): [<inp2:m_Get name="block"/>]<br/>
+ Source (in url): [<inp2:m_Get name="source"/>]<br/>
+ <br />
+
+ <table>
+ <tr>
+ <td>block_name:</td>
+ <td><inp2:st_BlockInfo name="block_name"/></td>
+ </tr>
+ <tr>
+ <td>function_name:</td>
+ <td><inp2:st_BlockInfo name="function_name"/></td>
+ </tr>
+ <tr>
+ <td>template</td>
+ <td><inp2:st_BlockInfo name="template"/></td>
+ </tr>
+ <tr>
+ <td>file</td>
+ <td><inp2:st_BlockInfo name="file"/></td>
+ </tr>
+ <tr>
+ <td>starts at</td>
+ <td><inp2:st_BlockInfo name="start_pos"/></td>
+ </tr>
+ <tr>
+ <td>ends at</td>
+ <td><inp2:st_BlockInfo name="end_pos"/></td>
+ </tr>
+ </table>
+
+ <br />-->
+
+ <div style="text-align: center;">
+ <inp2:m_if check="m_Get" name="error_msg">
+ <div style="color: red; text-align: left;">
+ <inp2:m_Get name="error_msg"/>
+ </div>
+ <br />
+ </inp2:m_if>
+ <form id="template_editor_form" method="post">
+ <input type="hidden" id="block" name="block" value="<inp2:m_Get name='block'/>"/>
+ <textarea id="function_body" name="function_body" class="codepress html" style="width: 780px; height: 490px;"><inp2:st_BlockInfo name="content" html_escape="1"/></textarea>
+ </form>
+ <br /><br />
+
+ <div style="text-align: left;">
+ <input type="button" id="tm-save" class="button" value="<inp2:m_Phrase name='lu_btn_Update'/>" onclick="aTemplateManager.saveBlock();"/>
+ <input type="button" id="tm-cancel" class="button" value="<inp2:m_Phrase name='lu_btn_Cancel'/>" onclick="aTemplateManager.cancelEditing();"/>
+ </div>
+ </div>
+</div>
+
+<script type="text/javascript">
+ $('#TB_ajaxWindowTitle').text('<inp2:st_TemplateEditorTitle phrase="lu_title_EditingTemplate"/>');
+
+</script>
\ No newline at end of file
Property changes on: platform/template_manager/edit_template.tpl
___________________________________________________________________
Added: cvs2svn:cvs-rev
## -0,0 +1 ##
+1.1.2.1
\ No newline at end of property
Index: platform/template_manager
===================================================================
--- platform/template_manager (nonexistent)
+++ platform/template_manager (revision 11427)
Property changes on: platform/template_manager
___________________________________________________________________
Added: svn:ignore
## -0,0 +1 ##
+.dev
Index: platform/inc/jquery/interface/idrag.js
===================================================================
--- platform/inc/jquery/interface/idrag.js (nonexistent)
+++ platform/inc/jquery/interface/idrag.js (revision 11427)
@@ -0,0 +1,591 @@
+/**
+ * Interface Elements for jQuery
+ * Draggable
+ *
+ * http://interface.eyecon.ro
+ *
+ * Copyright (c) 2006 Stefan Petre
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ */
+
+/**
+ * Create a draggable element with a number of advanced options including callback, Google Maps type draggables,
+ * reversion, ghosting, and grid dragging.
+ *
+ * @name Draggable
+ * @descr Creates draggable elements that can be moved across the page.
+ * @param Hash hash A hash of parameters. All parameters are optional.
+ * @option String handle (optional) The jQuery selector matching the handle that starts the draggable
+ * @option DOMElement handle (optional) The DOM Element of the handle that starts the draggable
+ * @option Boolean revert (optional) When true, on stop-drag the element returns to initial position
+ * @option Boolean ghosting (optional) When true, a copy of the element is moved
+ * @option Integer zIndex (optional) zIndex depth for the element while it is being dragged
+ * @option Float opacity (optional) A number between 0 and 1 that indicates the opacity of the element while being dragged
+ * @option Integer grid (optional) (optional) A number of pixels indicating the grid that the element should snap to
+ * @option Array grid (optional) A number of x-pixels and y-pixels indicating the grid that the element should snap to
+ * @option Integer fx (optional) Duration for the effect (like ghosting or revert) applied to the draggable
+ * @option String containment (optional) Define the zone where the draggable can be moved. 'parent' moves it inside parent
+ * element, while 'document' prevents it from leaving the document and forcing additional
+ * scrolling
+ * @option Array containment An 4-element array (left, top, width, height) indicating the containment of the element
+ * @option String axis (optional) Set an axis: vertical (with 'vertically') or horizontal (with 'horizontally')
+ * @option Function onStart (optional) Callback function triggered when the dragging starts
+ * @option Function onStop (optional) Callback function triggered when the dragging stops
+ * @option Function onChange (optional) Callback function triggered when the dragging stop *and* the element was moved at least
+ * one pixel
+ * @option Function onDrag (optional) Callback function triggered while the element is dragged. Receives two parameters: x and y
+ * coordinates. You can return an object with new coordinates {x: x, y: y} so this way you can
+ * interact with the dragging process (for instance, build your containment)
+ * @option Boolean insideParent Forces the element to remain inside its parent when being dragged (like Google Maps)
+ * @option Integer snapDistance (optional) The element is not moved unless it is dragged more than snapDistance. You can prevent
+ * accidental dragging and keep regular clicking enabled (for links or form elements,
+ * for instance)
+ * @option Object cursorAt (optional) The dragged element is moved to the cursor position with the offset specified. Accepts value
+ * for top, left, right and bottom offset. Basically, this forces the cursor to a particular
+ * position during the entire drag operation.
+ * @option Boolean autoSize (optional) When true, the drag helper is resized to its content, instead of the dragged element's sizes
+ * @option String frameClass (optional) When is set the cloned element is hidden so only a frame is dragged
+ * @type jQuery
+ * @cat Plugins/Interface
+ * @author Stefan Petre
+ */
+
+jQuery.iDrag = {
+ helper : null,
+ dragged: null,
+ destroy : function()
+ {
+ return this.each(
+ function ()
+ {
+ if (this.isDraggable) {
+ this.dragCfg.dhe.unbind('mousedown', jQuery.iDrag.draginit);
+ this.dragCfg = null;
+ this.isDraggable = false;
+ if(jQuery.browser.msie) {
+ this.unselectable = "off";
+ } else {
+ this.style.MozUserSelect = '';
+ this.style.KhtmlUserSelect = '';
+ this.style.userSelect = '';
+ }
+ }
+ }
+ );
+ },
+ draginit : function (e)
+ {
+// alert('initing drag operation');
+ if (jQuery.iDrag.dragged != null) {
+ jQuery.iDrag.dragstop(e);
+ return false;
+ }
+ var elm = this.dragElem;
+ jQuery(document)
+ .bind('mousemove', jQuery.iDrag.dragmove)
+ .bind('mouseup', jQuery.iDrag.dragstop);
+ elm.dragCfg.pointer = jQuery.iUtil.getPointer(e);
+ elm.dragCfg.currentPointer = elm.dragCfg.pointer;
+ elm.dragCfg.init = false;
+ elm.dragCfg.fromHandler = this != this.dragElem;
+ jQuery.iDrag.dragged = elm;
+ if (elm.dragCfg.si && this != this.dragElem) {
+ parentPos = jQuery.iUtil.getPosition(elm.parentNode);
+ sliderSize = jQuery.iUtil.getSize(elm);
+ sliderPos = {
+ x : parseInt(jQuery.css(elm,'left')) || 0,
+ y : parseInt(jQuery.css(elm,'top')) || 0
+ };
+ dx = elm.dragCfg.currentPointer.x - parentPos.x - sliderSize.wb/2 - sliderPos.x;
+ dy = elm.dragCfg.currentPointer.y - parentPos.y - sliderSize.hb/2 - sliderPos.y;
+ jQuery.iSlider.dragmoveBy(elm, [dx, dy]);
+ }
+ return jQuery.selectKeyHelper||false;
+ },
+
+ dragstart : function(e)
+ {
+ var elm = jQuery.iDrag.dragged;
+ elm.dragCfg.init = true;
+
+ var dEs = elm.style;
+
+ elm.dragCfg.oD = jQuery.css(elm,'display');
+ elm.dragCfg.oP = jQuery.css(elm,'position');
+ if (!elm.dragCfg.initialPosition)
+ elm.dragCfg.initialPosition = elm.dragCfg.oP;
+
+ elm.dragCfg.oR = {
+ x : parseInt(jQuery.css(elm,'left')) || 0,
+ y : parseInt(jQuery.css(elm,'top')) || 0
+ };
+ elm.dragCfg.diffX = 0;
+ elm.dragCfg.diffY = 0;
+ if (jQuery.browser.msie) {
+ var oldBorder = jQuery.iUtil.getBorder(elm, true);
+ elm.dragCfg.diffX = oldBorder.l||0;
+ elm.dragCfg.diffY = oldBorder.t||0;
+ }
+
+ elm.dragCfg.oC = jQuery.extend(
+ jQuery.iUtil.getPosition(elm),
+ jQuery.iUtil.getSize(elm)
+ );
+ if (elm.dragCfg.oP != 'relative' && elm.dragCfg.oP != 'absolute') {
+ dEs.position = 'relative';
+ }
+
+ jQuery.iDrag.helper.empty();
+ var clonedEl = elm.cloneNode(true);
+
+ jQuery(clonedEl).css(
+ {
+ display: 'block',
+ left: '0px',
+ top: '0px'
+ }
+ );
+ clonedEl.style.marginTop = '0';
+ clonedEl.style.marginRight = '0';
+ clonedEl.style.marginBottom = '0';
+ clonedEl.style.marginLeft = '0';
+ jQuery.iDrag.helper.append(clonedEl);
+
+ var dhs = jQuery.iDrag.helper.get(0).style;
+
+ if (elm.dragCfg.autoSize) {
+ dhs.width = 'auto';
+ dhs.height = 'auto';
+ } else {
+ dhs.height = elm.dragCfg.oC.hb + 'px';
+ dhs.width = elm.dragCfg.oC.wb + 'px';
+ }
+
+ dhs.display = 'block';
+ dhs.marginTop = '0px';
+ dhs.marginRight = '0px';
+ dhs.marginBottom = '0px';
+ dhs.marginLeft = '0px';
+
+ //remeasure the clone to check if the size was changed by user's functions
+ jQuery.extend(
+ elm.dragCfg.oC,
+ jQuery.iUtil.getSize(clonedEl)
+ );
+
+ if (elm.dragCfg.cursorAt) {
+ if (elm.dragCfg.cursorAt.left) {
+ elm.dragCfg.oR.x += elm.dragCfg.pointer.x - elm.dragCfg.oC.x - elm.dragCfg.cursorAt.left;
+ elm.dragCfg.oC.x = elm.dragCfg.pointer.x - elm.dragCfg.cursorAt.left;
+ }
+ if (elm.dragCfg.cursorAt.top) {
+ elm.dragCfg.oR.y += elm.dragCfg.pointer.y - elm.dragCfg.oC.y - elm.dragCfg.cursorAt.top;
+ elm.dragCfg.oC.y = elm.dragCfg.pointer.y - elm.dragCfg.cursorAt.top;
+ }
+ if (elm.dragCfg.cursorAt.right) {
+ elm.dragCfg.oR.x += elm.dragCfg.pointer.x - elm.dragCfg.oC.x -elm.dragCfg.oC.hb + elm.dragCfg.cursorAt.right;
+ elm.dragCfg.oC.x = elm.dragCfg.pointer.x - elm.dragCfg.oC.wb + elm.dragCfg.cursorAt.right;
+ }
+ if (elm.dragCfg.cursorAt.bottom) {
+ elm.dragCfg.oR.y += elm.dragCfg.pointer.y - elm.dragCfg.oC.y - elm.dragCfg.oC.hb + elm.dragCfg.cursorAt.bottom;
+ elm.dragCfg.oC.y = elm.dragCfg.pointer.y - elm.dragCfg.oC.hb + elm.dragCfg.cursorAt.bottom;
+ }
+ }
+ elm.dragCfg.nx = elm.dragCfg.oR.x;
+ elm.dragCfg.ny = elm.dragCfg.oR.y;
+
+ if (elm.dragCfg.insideParent || elm.dragCfg.containment == 'parent') {
+ parentBorders = jQuery.iUtil.getBorder(elm.parentNode, true);
+ elm.dragCfg.oC.x = elm.offsetLeft + (jQuery.browser.msie ? 0 : jQuery.browser.opera ? -parentBorders.l : parentBorders.l);
+ elm.dragCfg.oC.y = elm.offsetTop + (jQuery.browser.msie ? 0 : jQuery.browser.opera ? -parentBorders.t : parentBorders.t);
+ jQuery(elm.parentNode).append(jQuery.iDrag.helper.get(0));
+ }
+ if (elm.dragCfg.containment) {
+ jQuery.iDrag.getContainment(elm);
+ elm.dragCfg.onDragModifier.containment = jQuery.iDrag.fitToContainer;
+ }
+
+ if (elm.dragCfg.si) {
+ jQuery.iSlider.modifyContainer(elm);
+ }
+
+ dhs.left = elm.dragCfg.oC.x - elm.dragCfg.diffX + 'px';
+ dhs.top = elm.dragCfg.oC.y - elm.dragCfg.diffY + 'px';
+ //resize the helper to fit the clone
+ dhs.width = elm.dragCfg.oC.wb + 'px';
+ dhs.height = elm.dragCfg.oC.hb + 'px';
+
+ jQuery.iDrag.dragged.dragCfg.prot = false;
+
+ if (elm.dragCfg.gx) {
+ elm.dragCfg.onDragModifier.grid = jQuery.iDrag.snapToGrid;
+ }
+ if (elm.dragCfg.zIndex != false) {
+ jQuery.iDrag.helper.css('zIndex', elm.dragCfg.zIndex);
+ }
+ if (elm.dragCfg.opacity) {
+ jQuery.iDrag.helper.css('opacity', elm.dragCfg.opacity);
+ if (window.ActiveXObject) {
+ jQuery.iDrag.helper.css('filter', 'alpha(opacity=' + elm.dragCfg.opacity * 100 + ')');
+ }
+ }
+
+ if(elm.dragCfg.frameClass) {
+ jQuery.iDrag.helper.addClass(elm.dragCfg.frameClass);
+ jQuery.iDrag.helper.get(0).firstChild.style.display = 'none';
+ }
+ if (elm.dragCfg.onStart)
+ elm.dragCfg.onStart.apply(elm, [clonedEl, elm.dragCfg.oR.x, elm.dragCfg.oR.y]);
+ if (jQuery.iDrop && jQuery.iDrop.count > 0 ){
+ jQuery.iDrop.highlight(elm);
+ }
+ if (elm.dragCfg.ghosting == false) {
+ dEs.display = 'none';
+ }
+ return false;
+ },
+
+ getContainment : function(elm)
+ {
+ if (elm.dragCfg.containment.constructor == String) {
+ if (elm.dragCfg.containment == 'parent') {
+ elm.dragCfg.cont = jQuery.extend(
+ {x:0,y:0},
+ jQuery.iUtil.getSize(elm.parentNode)
+ );
+ var contBorders = jQuery.iUtil.getBorder(elm.parentNode, true);
+ elm.dragCfg.cont.w = elm.dragCfg.cont.wb - contBorders.l - contBorders.r;
+ elm.dragCfg.cont.h = elm.dragCfg.cont.hb - contBorders.t - contBorders.b;
+ } else if (elm.dragCfg.containment == 'document') {
+ var clnt = jQuery.iUtil.getClient();
+ elm.dragCfg.cont = {
+ x : 0,
+ y : 0,
+ w : clnt.w,
+ h : clnt.h
+ };
+ }
+ } else if (elm.dragCfg.containment.constructor == Array) {
+ elm.dragCfg.cont = {
+ x : parseInt(elm.dragCfg.containment[0])||0,
+ y : parseInt(elm.dragCfg.containment[1])||0,
+ w : parseInt(elm.dragCfg.containment[2])||0,
+ h : parseInt(elm.dragCfg.containment[3])||0
+ };
+ }
+ elm.dragCfg.cont.dx = elm.dragCfg.cont.x - elm.dragCfg.oC.x;
+ elm.dragCfg.cont.dy = elm.dragCfg.cont.y - elm.dragCfg.oC.y;
+ },
+
+ hidehelper : function(dragged)
+ {
+ if (dragged.dragCfg.insideParent || dragged.dragCfg.containment == 'parent') {
+ jQuery('body', document).append(jQuery.iDrag.helper.get(0));
+ }
+ jQuery.iDrag.helper.empty().hide().css('opacity', 1);
+ if (window.ActiveXObject) {
+ jQuery.iDrag.helper.css('filter', 'alpha(opacity=100)');
+ }
+ },
+
+ dragstop : function(e)
+ {
+
+ jQuery(document)
+ .unbind('mousemove', jQuery.iDrag.dragmove)
+ .unbind('mouseup', jQuery.iDrag.dragstop);
+
+ if (jQuery.iDrag.dragged == null) {
+ return;
+ }
+ var dragged = jQuery.iDrag.dragged;
+
+ jQuery.iDrag.dragged = null;
+
+ if (dragged.dragCfg.init == false) {
+ return false;
+ }
+ if (dragged.dragCfg.so == true) {
+ jQuery(dragged).css('position', dragged.dragCfg.oP);
+ }
+ var dEs = dragged.style;
+
+ if (dragged.si) {
+ jQuery.iDrag.helper.css('cursor', 'move');
+ }
+ if(dragged.dragCfg.frameClass) {
+ jQuery.iDrag.helper.removeClass(dragged.dragCfg.frameClass);
+ }
+
+ if (dragged.dragCfg.revert == false) {
+ if (dragged.dragCfg.fx > 0) {
+ if (!dragged.dragCfg.axis || dragged.dragCfg.axis == 'horizontally') {
+ var x = new jQuery.fx(dragged,{duration:dragged.dragCfg.fx}, 'left');
+ x.custom(dragged.dragCfg.oR.x,dragged.dragCfg.nRx);
+ }
+ if (!dragged.dragCfg.axis || dragged.dragCfg.axis == 'vertically') {
+ var y = new jQuery.fx(dragged,{duration:dragged.dragCfg.fx}, 'top');
+ y.custom(dragged.dragCfg.oR.y,dragged.dragCfg.nRy);
+ }
+ } else {
+ if (!dragged.dragCfg.axis || dragged.dragCfg.axis == 'horizontally')
+ dragged.style.left = dragged.dragCfg.nRx + 'px';
+ if (!dragged.dragCfg.axis || dragged.dragCfg.axis == 'vertically')
+ dragged.style.top = dragged.dragCfg.nRy + 'px';
+ }
+ jQuery.iDrag.hidehelper(dragged);
+ if (dragged.dragCfg.ghosting == false) {
+ jQuery(dragged).css('display', dragged.dragCfg.oD);
+ }
+ } else if (dragged.dragCfg.fx > 0) {
+ dragged.dragCfg.prot = true;
+ var dh = false;
+ if(jQuery.iDrop && jQuery.iSort && dragged.dragCfg.so) {
+ dh = jQuery.iUtil.getPosition(jQuery.iSort.helper.get(0));
+ }
+ jQuery.iDrag.helper.animate(
+ {
+ left : dh ? dh.x : dragged.dragCfg.oC.x,
+ top : dh ? dh.y : dragged.dragCfg.oC.y
+ },
+ dragged.dragCfg.fx,
+ function()
+ {
+ dragged.dragCfg.prot = false;
+ if (dragged.dragCfg.ghosting == false) {
+ dragged.style.display = dragged.dragCfg.oD;
+ }
+ jQuery.iDrag.hidehelper(dragged);
+ }
+ );
+ } else {
+ jQuery.iDrag.hidehelper(dragged);
+ if (dragged.dragCfg.ghosting == false) {
+ jQuery(dragged).css('display', dragged.dragCfg.oD);
+ }
+ }
+
+ if (jQuery.iDrop && jQuery.iDrop.count > 0 ){
+ jQuery.iDrop.checkdrop(dragged);
+ }
+ if (jQuery.iSort && dragged.dragCfg.so) {
+ jQuery.iSort.check(dragged);
+ }
+ if (dragged.dragCfg.onChange && (dragged.dragCfg.nRx != dragged.dragCfg.oR.x || dragged.dragCfg.nRy != dragged.dragCfg.oR.y)){
+ dragged.dragCfg.onChange.apply(dragged, dragged.dragCfg.lastSi||[0,0,dragged.dragCfg.nRx,dragged.dragCfg.nRy]);
+ }
+ if (dragged.dragCfg.onStop)
+ dragged.dragCfg.onStop.apply(dragged);
+ return false;
+ },
+
+ snapToGrid : function(x, y, dx, dy)
+ {
+ if (dx != 0)
+ dx = parseInt((dx + (this.dragCfg.gx * dx/Math.abs(dx))/2)/this.dragCfg.gx) * this.dragCfg.gx;
+ if (dy != 0)
+ dy = parseInt((dy + (this.dragCfg.gy * dy/Math.abs(dy))/2)/this.dragCfg.gy) * this.dragCfg.gy;
+ return {
+ dx : dx,
+ dy : dy,
+ x: 0,
+ y: 0
+ };
+ },
+
+ fitToContainer : function(x, y, dx, dy)
+ {
+ dx = Math.min(
+ Math.max(dx,this.dragCfg.cont.dx),
+ this.dragCfg.cont.w + this.dragCfg.cont.dx - this.dragCfg.oC.wb
+ );
+ dy = Math.min(
+ Math.max(dy,this.dragCfg.cont.dy),
+ this.dragCfg.cont.h + this.dragCfg.cont.dy - this.dragCfg.oC.hb
+ );
+
+ return {
+ dx : dx,
+ dy : dy,
+ x: 0,
+ y: 0
+ }
+ },
+
+ dragmove : function(e)
+ {
+ if (jQuery.iDrag.dragged == null || jQuery.iDrag.dragged.dragCfg.prot == true) {
+ return;
+ }
+
+ var dragged = jQuery.iDrag.dragged;
+
+ dragged.dragCfg.currentPointer = jQuery.iUtil.getPointer(e);
+ if (dragged.dragCfg.init == false) {
+ distance = Math.sqrt(Math.pow(dragged.dragCfg.pointer.x - dragged.dragCfg.currentPointer.x, 2) + Math.pow(dragged.dragCfg.pointer.y - dragged.dragCfg.currentPointer.y, 2));
+ if (distance < dragged.dragCfg.snapDistance){
+ return;
+ } else {
+ jQuery.iDrag.dragstart(e);
+ }
+ }
+
+ var dx = dragged.dragCfg.currentPointer.x - dragged.dragCfg.pointer.x;
+ var dy = dragged.dragCfg.currentPointer.y - dragged.dragCfg.pointer.y;
+
+ for (var i in dragged.dragCfg.onDragModifier) {
+ var newCoords = dragged.dragCfg.onDragModifier[i].apply(dragged, [dragged.dragCfg.oR.x + dx, dragged.dragCfg.oR.y + dy, dx, dy]);
+ if (newCoords && newCoords.constructor == Object) {
+ dx = i != 'user' ? newCoords.dx : (newCoords.x - dragged.dragCfg.oR.x);
+ dy = i != 'user' ? newCoords.dy : (newCoords.y - dragged.dragCfg.oR.y);
+ }
+ }
+
+ dragged.dragCfg.nx = dragged.dragCfg.oC.x + dx - dragged.dragCfg.diffX;
+ dragged.dragCfg.ny = dragged.dragCfg.oC.y + dy - dragged.dragCfg.diffY;
+
+ if (dragged.dragCfg.si && (dragged.dragCfg.onSlide || dragged.dragCfg.onChange)) {
+ jQuery.iSlider.onSlide(dragged, dragged.dragCfg.nx, dragged.dragCfg.ny);
+ }
+
+ if(dragged.dragCfg.onDrag)
+ dragged.dragCfg.onDrag.apply(dragged, [dragged.dragCfg.oR.x + dx, dragged.dragCfg.oR.y + dy]);
+
+ if (!dragged.dragCfg.axis || dragged.dragCfg.axis == 'horizontally') {
+ dragged.dragCfg.nRx = dragged.dragCfg.oR.x + dx;
+ jQuery.iDrag.helper.get(0).style.left = dragged.dragCfg.nx + 'px';
+ }
+ if (!dragged.dragCfg.axis || dragged.dragCfg.axis == 'vertically') {
+ dragged.dragCfg.nRy = dragged.dragCfg.oR.y + dy;
+ jQuery.iDrag.helper.get(0).style.top = dragged.dragCfg.ny + 'px';
+ }
+
+ if (jQuery.iDrop && jQuery.iDrop.count > 0 ){
+ jQuery.iDrop.checkhover(dragged);
+ }
+ return false;
+ },
+
+ build : function(o)
+ {
+ if (!jQuery.iDrag.helper) {
+ jQuery('body',document).append('<div id="dragHelper"></div>');
+ jQuery.iDrag.helper = jQuery('#dragHelper');
+ var el = jQuery.iDrag.helper.get(0);
+ var els = el.style;
+ els.position = 'absolute';
+ els.display = 'none';
+ els.cursor = 'move';
+ els.listStyle = 'none';
+ els.overflow = 'hidden';
+ if (window.ActiveXObject) {
+ el.unselectable = "on";
+ } else {
+ els.mozUserSelect = 'none';
+ els.userSelect = 'none';
+ els.KhtmlUserSelect = 'none';
+ }
+ }
+ if (!o) {
+ o = {};
+ }
+ return this.each(
+ function()
+ {
+ if (this.isDraggable || !jQuery.iUtil)
+ return;
+ if (window.ActiveXObject) {
+ this.onselectstart = function(){return false;};
+ this.ondragstart = function(){return false;};
+ }
+ var el = this;
+ var dhe = o.handle ? jQuery(this).find(o.handle) : jQuery(this);
+ if(jQuery.browser.msie) {
+ dhe.each(
+ function()
+ {
+ this.unselectable = "on";
+ }
+ );
+ } else {
+ dhe.css('-moz-user-select', 'none');
+ dhe.css('user-select', 'none');
+ dhe.css('-khtml-user-select', 'none');
+ }
+ this.dragCfg = {
+ dhe: dhe,
+ revert : o.revert ? true : false,
+ ghosting : o.ghosting ? true : false,
+ so : o.so ? o.so : false,
+ si : o.si ? o.si : false,
+ insideParent : o.insideParent ? o.insideParent : false,
+ zIndex : o.zIndex ? parseInt(o.zIndex)||0 : false,
+ opacity : o.opacity ? parseFloat(o.opacity) : false,
+ fx : parseInt(o.fx)||null,
+ hpc : o.hpc ? o.hpc : false,
+ onDragModifier : {},
+ pointer : {},
+ onStart : o.onStart && o.onStart.constructor == Function ? o.onStart : false,
+ onStop : o.onStop && o.onStop.constructor == Function ? o.onStop : false,
+ onChange : o.onChange && o.onChange.constructor == Function ? o.onChange : false,
+ axis : /vertically|horizontally/.test(o.axis) ? o.axis : false,
+ snapDistance : o.snapDistance ? parseInt(o.snapDistance)||0 : 0,
+ cursorAt: o.cursorAt ? o.cursorAt : false,
+ autoSize : o.autoSize ? true : false,
+ frameClass : o.frameClass || false
+
+ };
+ if (o.onDragModifier && o.onDragModifier.constructor == Function)
+ this.dragCfg.onDragModifier.user = o.onDragModifier;
+ if (o.onDrag && o.onDrag.constructor == Function)
+ this.dragCfg.onDrag = o.onDrag;
+ if (o.containment && ((o.containment.constructor == String && (o.containment == 'parent' || o.containment == 'document')) || (o.containment.constructor == Array && o.containment.length == 4) )) {
+ this.dragCfg.containment = o.containment;
+ }
+ if(o.fractions) {
+ this.dragCfg.fractions = o.fractions;
+ }
+ if(o.grid){
+ if(typeof o.grid == 'number'){
+ this.dragCfg.gx = parseInt(o.grid)||1;
+ this.dragCfg.gy = parseInt(o.grid)||1;
+ } else if (o.grid.length == 2) {
+ this.dragCfg.gx = parseInt(o.grid[0])||1;
+ this.dragCfg.gy = parseInt(o.grid[1])||1;
+ }
+ }
+ if (o.onSlide && o.onSlide.constructor == Function) {
+ this.dragCfg.onSlide = o.onSlide;
+ }
+
+ this.isDraggable = true;
+ dhe.each(
+ function(){
+ this.dragElem = el;
+ }
+ );
+
+// alert('binding mouse down');
+ dhe.bind('mousedown', jQuery.iDrag.draginit);
+ }
+ )
+ }
+};
+
+/**
+ * Destroy an existing draggable on a collection of elements
+ *
+ * @name DraggableDestroy
+ * @descr Destroy a draggable
+ * @type jQuery
+ * @cat Plugins/Interface
+ * @example $('#drag2').DraggableDestroy();
+ */
+
+jQuery.fn.extend(
+ {
+ DraggableDestroy : jQuery.iDrag.destroy,
+ Draggable : jQuery.iDrag.build
+ }
+);
\ No newline at end of file
Property changes on: platform/inc/jquery/interface/idrag.js
___________________________________________________________________
Added: cvs2svn:cvs-rev
## -0,0 +1 ##
+1.1.2.1
\ No newline at end of property
Index: platform/inc/jquery/interface/iutil.js
===================================================================
--- platform/inc/jquery/interface/iutil.js (nonexistent)
+++ platform/inc/jquery/interface/iutil.js (revision 11427)
@@ -0,0 +1,245 @@
+/**
+ * Interface Elements for jQuery
+ * utility function
+ *
+ * http://interface.eyecon.ro
+ *
+ * Copyright (c) 2006 Stefan Petre
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ *
+ */
+
+jQuery.iUtil = {
+ getPosition : function(e)
+ {
+ var x = 0;
+ var y = 0;
+ var es = e.style;
+ var restoreStyles = false;
+ if (jQuery(e).css('display') == 'none') {
+ var oldVisibility = es.visibility;
+ var oldPosition = es.position;
+ restoreStyles = true;
+ es.visibility = 'hidden';
+ es.display = 'block';
+ es.position = 'absolute';
+ }
+ var el = e;
+ while (el){
+ x += el.offsetLeft + (el.currentStyle && !jQuery.browser.opera ?parseInt(el.currentStyle.borderLeftWidth)||0:0);
+ y += el.offsetTop + (el.currentStyle && !jQuery.browser.opera ?parseInt(el.currentStyle.borderTopWidth)||0:0);
+ el = el.offsetParent;
+ }
+ el = e;
+ while (el && el.tagName && el.tagName.toLowerCase() != 'body')
+ {
+ x -= el.scrollLeft||0;
+ y -= el.scrollTop||0;
+ el = el.parentNode;
+ }
+ if (restoreStyles == true) {
+ es.display = 'none';
+ es.position = oldPosition;
+ es.visibility = oldVisibility;
+ }
+ return {x:x, y:y};
+ },
+ getPositionLite : function(el)
+ {
+ var x = 0, y = 0;
+ while(el) {
+ x += el.offsetLeft || 0;
+ y += el.offsetTop || 0;
+ el = el.offsetParent;
+ }
+ return {x:x, y:y};
+ },
+ getSize : function(e)
+ {
+ var w = jQuery.css(e,'width');
+ var h = jQuery.css(e,'height');
+ var wb = 0;
+ var hb = 0;
+ var es = e.style;
+ if (jQuery(e).css('display') != 'none') {
+ wb = e.offsetWidth;
+ hb = e.offsetHeight;
+ } else {
+ var oldVisibility = es.visibility;
+ var oldPosition = es.position;
+ es.visibility = 'hidden';
+ es.display = 'block';
+ es.position = 'absolute';
+ wb = e.offsetWidth;
+ hb = e.offsetHeight;
+ es.display = 'none';
+ es.position = oldPosition;
+ es.visibility = oldVisibility;
+ }
+ return {w:w, h:h, wb:wb, hb:hb};
+ },
+ getSizeLite : function(el)
+ {
+ return {
+ wb:el.offsetWidth||0,
+ hb:el.offsetHeight||0
+ };
+ },
+ getClient : function(e)
+ {
+ var h, w, de;
+ if (e) {
+ w = e.clientWidth;
+ h = e.clientHeight;
+ } else {
+ de = document.documentElement;
+ w = window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
+ h = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight;
+ }
+ return {w:w,h:h};
+ },
+ getScroll : function (e)
+ {
+ var t=0, l=0, w=0, h=0, iw=0, ih=0;
+ if (e && e.nodeName.toLowerCase() != 'body') {
+ t = e.scrollTop;
+ l = e.scrollLeft;
+ w = e.scrollWidth;
+ h = e.scrollHeight;
+ iw = 0;
+ ih = 0;
+ } else {
+ if (document.documentElement) {
+ t = document.documentElement.scrollTop;
+ l = document.documentElement.scrollLeft;
+ w = document.documentElement.scrollWidth;
+ h = document.documentElement.scrollHeight;
+ } else if (document.body) {
+ t = document.body.scrollTop;
+ l = document.body.scrollLeft;
+ w = document.body.scrollWidth;
+ h = document.body.scrollHeight;
+ }
+ iw = self.innerWidth||document.documentElement.clientWidth||document.body.clientWidth||0;
+ ih = self.innerHeight||document.documentElement.clientHeight||document.body.clientHeight||0;
+ }
+ return { t: t, l: l, w: w, h: h, iw: iw, ih: ih };
+ },
+ getMargins : function(e, toInteger)
+ {
+ var el = jQuery(e);
+ var t = el.css('marginTop') || '';
+ var r = el.css('marginRight') || '';
+ var b = el.css('marginBottom') || '';
+ var l = el.css('marginLeft') || '';
+ if (toInteger)
+ return {
+ t: parseInt(t)||0,
+ r: parseInt(r)||0,
+ b: parseInt(b)||0,
+ l: parseInt(l)
+ };
+ else
+ return {t: t, r: r, b: b, l: l};
+ },
+ getPadding : function(e, toInteger)
+ {
+ var el = jQuery(e);
+ var t = el.css('paddingTop') || '';
+ var r = el.css('paddingRight') || '';
+ var b = el.css('paddingBottom') || '';
+ var l = el.css('paddingLeft') || '';
+ if (toInteger)
+ return {
+ t: parseInt(t)||0,
+ r: parseInt(r)||0,
+ b: parseInt(b)||0,
+ l: parseInt(l)
+ };
+ else
+ return {t: t, r: r, b: b, l: l};
+ },
+ getBorder : function(e, toInteger)
+ {
+ var el = jQuery(e);
+ var t = el.css('borderTopWidth') || '';
+ var r = el.css('borderRightWidth') || '';
+ var b = el.css('borderBottomWidth') || '';
+ var l = el.css('borderLeftWidth') || '';
+ if (toInteger)
+ return {
+ t: parseInt(t)||0,
+ r: parseInt(r)||0,
+ b: parseInt(b)||0,
+ l: parseInt(l)||0
+ };
+ else
+ return {t: t, r: r, b: b, l: l};
+ },
+ getPointer : function(event)
+ {
+ var x = event.pageX || (event.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft)) || 0;
+ var y = event.pageY || (event.clientY + (document.documentElement.scrollTop || document.body.scrollTop)) || 0;
+ return {x:x, y:y};
+ },
+ traverseDOM : function(nodeEl, func)
+ {
+ func(nodeEl);
+ nodeEl = nodeEl.firstChild;
+ while(nodeEl){
+ jQuery.iUtil.traverseDOM(nodeEl, func);
+ nodeEl = nodeEl.nextSibling;
+ }
+ },
+ purgeEvents : function(nodeEl)
+ {
+ jQuery.iUtil.traverseDOM(
+ nodeEl,
+ function(el)
+ {
+ for(var attr in el){
+ if(typeof el[attr] === 'function') {
+ el[attr] = null;
+ }
+ }
+ }
+ );
+ },
+ centerEl : function(el, axis)
+ {
+ var clientScroll = jQuery.iUtil.getScroll();
+ var windowSize = jQuery.iUtil.getSize(el);
+ if (!axis || axis == 'vertically')
+ jQuery(el).css(
+ {
+ top: clientScroll.t + ((Math.max(clientScroll.h,clientScroll.ih) - clientScroll.t - windowSize.hb)/2) + 'px'
+ }
+ );
+ if (!axis || axis == 'horizontally')
+ jQuery(el).css(
+ {
+ left: clientScroll.l + ((Math.max(clientScroll.w,clientScroll.iw) - clientScroll.l - windowSize.wb)/2) + 'px'
+ }
+ );
+ },
+ fixPNG : function (el, emptyGIF) {
+ var images = jQuery('img[@src*="png"]', el||document), png;
+ images.each( function() {
+ png = this.src;
+ this.src = emptyGIF;
+ this.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + png + "')";
+ });
+ }
+};
+
+// Helper function to support older browsers!
+[].indexOf || (Array.prototype.indexOf = function(v, n){
+ n = (n == null) ? 0 : n;
+ var m = this.length;
+ for (var i=n; i<m; i++)
+ if (this[i] == v)
+ return i;
+ return -1;
+});
Property changes on: platform/inc/jquery/interface/iutil.js
___________________________________________________________________
Added: cvs2svn:cvs-rev
## -0,0 +1 ##
+1.1.2.1
\ No newline at end of property
Index: platform/inc/jquery/interface/iautoscroller.js
===================================================================
--- platform/inc/jquery/interface/iautoscroller.js (nonexistent)
+++ platform/inc/jquery/interface/iautoscroller.js (revision 11427)
@@ -0,0 +1,112 @@
+/**
+ * Interface Elements for jQuery
+ * Autoscroller
+ *
+ * http://interface.eyecon.ro
+ *
+ * Copyright (c) 2006 Stefan Petre
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ *
+ */
+
+/**
+ * Utility object that helps to make custom autoscrollers.
+ *
+ * @example
+ * $('div.dragMe').Draggable(
+ * {
+ * onStart : function()
+ * {
+ * $.iAutoscroller.start(this, document.getElementsByTagName('body'));
+ * },
+ * onStop : function()
+ * {
+ * $.iAutoscroller.stop();
+ * }
+ * }
+ * );
+ *
+ * @description Utility object that helps to make custom autoscrollers
+ * @type jQuery
+ * @cat Plugins/Interface
+ * @author Stefan Petre
+ */
+
+jQuery.iAutoscroller = {
+ timer: null,
+ elToScroll: null,
+ elsToScroll: null,
+ step: 10,
+ /**
+ * This is called to start autoscrolling
+ * @param DOMElement el the element used as reference
+ * @param Array els collection of elements to scroll
+ * @param Integer step the pixels scroll on each step
+ * @param Integer interval miliseconds between each step
+ */
+ start: function(el, els, step, interval)
+ {
+ jQuery.iAutoscroller.elToScroll = el;
+ jQuery.iAutoscroller.elsToScroll = els;
+ jQuery.iAutoscroller.step = parseInt(step)||10;
+ jQuery.iAutoscroller.timer = window.setInterval(jQuery.iAutoscroller.doScroll, parseInt(interval)||40);
+ },
+
+ //private function
+ doScroll : function()
+ {
+ for (i=0;i<jQuery.iAutoscroller.elsToScroll.length; i++) {
+ if(!jQuery.iAutoscroller.elsToScroll[i].parentData) {
+ jQuery.iAutoscroller.elsToScroll[i].parentData = jQuery.extend(
+ jQuery.iUtil.getPositionLite(jQuery.iAutoscroller.elsToScroll[i]),
+ jQuery.iUtil.getSizeLite(jQuery.iAutoscroller.elsToScroll[i]),
+ jQuery.iUtil.getScroll(jQuery.iAutoscroller.elsToScroll[i])
+ );
+ } else {
+ jQuery.iAutoscroller.elsToScroll[i].parentData.t = jQuery.iAutoscroller.elsToScroll[i].scrollTop;
+ jQuery.iAutoscroller.elsToScroll[i].parentData.l = jQuery.iAutoscroller.elsToScroll[i].scrollLeft;
+ }
+
+ if (jQuery.iAutoscroller.elToScroll.dragCfg && jQuery.iAutoscroller.elToScroll.dragCfg.init == true) {
+ elementData = {
+ x : jQuery.iAutoscroller.elToScroll.dragCfg.nx,
+ y : jQuery.iAutoscroller.elToScroll.dragCfg.ny,
+ wb : jQuery.iAutoscroller.elToScroll.dragCfg.oC.wb,
+ hb : jQuery.iAutoscroller.elToScroll.dragCfg.oC.hb
+ };
+ } else {
+ elementData = jQuery.extend(
+ jQuery.iUtil.getPositionLite(jQuery.iAutoscroller.elToScroll),
+ jQuery.iUtil.getSizeLite(jQuery.iAutoscroller.elToScroll)
+ );
+ }
+ if (
+ jQuery.iAutoscroller.elsToScroll[i].parentData.t > 0
+ &&
+ jQuery.iAutoscroller.elsToScroll[i].parentData.y + jQuery.iAutoscroller.elsToScroll[i].parentData.t > elementData.y) {
+ jQuery.iAutoscroller.elsToScroll[i].scrollTop -= jQuery.iAutoscroller.step;
+ } else if (jQuery.iAutoscroller.elsToScroll[i].parentData.t <= jQuery.iAutoscroller.elsToScroll[i].parentData.h && jQuery.iAutoscroller.elsToScroll[i].parentData.t + jQuery.iAutoscroller.elsToScroll[i].parentData.hb < elementData.y + elementData.hb) {
+ jQuery.iAutoscroller.elsToScroll[i].scrollTop += jQuery.iAutoscroller.step;
+ }
+ if (jQuery.iAutoscroller.elsToScroll[i].parentData.l > 0 && jQuery.iAutoscroller.elsToScroll[i].parentData.x + jQuery.iAutoscroller.elsToScroll[i].parentData.l > elementData.x) {
+ jQuery.iAutoscroller.elsToScroll[i].scrollLeft -= jQuery.iAutoscroller.step;
+ } else if (jQuery.iAutoscroller.elsToScroll[i].parentData.l <= jQuery.iAutoscroller.elsToScroll[i].parentData.wh && jQuery.iAutoscroller.elsToScroll[i].parentData.l + jQuery.iAutoscroller.elsToScroll[i].parentData.wb < elementData.x + elementData.wb) {
+ jQuery.iAutoscroller.elsToScroll[i].scrollLeft += jQuery.iAutoscroller.step;
+ }
+ }
+ },
+ /**
+ * This is called to stop autoscrolling
+ */
+ stop: function()
+ {
+ window.clearInterval(jQuery.iAutoscroller.timer);
+ jQuery.iAutoscroller.elToScroll = null;
+ jQuery.iAutoscroller.elsToScroll = null;
+ for (i in jQuery.iAutoscroller.elsToScroll) {
+ jQuery.iAutoscroller.elsToScroll[i].parentData = null;
+ }
+ }
+};
\ No newline at end of file
Property changes on: platform/inc/jquery/interface/iautoscroller.js
___________________________________________________________________
Added: cvs2svn:cvs-rev
## -0,0 +1 ##
+1.1.2.1
\ No newline at end of property
Index: platform/inc/jquery/interface/isortables.js
===================================================================
--- platform/inc/jquery/interface/isortables.js (nonexistent)
+++ platform/inc/jquery/interface/isortables.js (revision 11427)
@@ -0,0 +1,393 @@
+/**
+ * Interface Elements for jQuery
+ * Sortables
+ *
+ * http://interface.eyecon.ro
+ *
+ * Copyright (c) 2006 Stefan Petre
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ *
+ */
+
+/**
+ * Allows you to resort elements within a container by dragging and dropping. Requires
+ * the Draggables and Droppables plugins. The container and each item inside the container
+ * must have an ID. Sortables are especially useful for lists.
+ *
+ * @see Plugins/Interface/Draggable
+ * @see Plugins/Interface/Droppable
+ * @author Stefan Petre
+ * @name Sortable
+ * @cat Plugins/Interface
+ * @param Hash options A hash of options
+ * @option String accept The class name for items inside the container (mandatory)
+ * @option String activeclass The class for the container when one of its items has started to move
+ * @option String hoverclass The class for the container when an acceptable item is inside it
+ * @option String helperclass The helper is used to point to the place where the item will be
+ * moved. This is the class for the helper.
+ * @option Float opacity Opacity (between 0 and 1) of the item while being dragged
+ * @option Boolean ghosting When true, the sortable is ghosted when dragged
+ * @option String tolerance Either 'pointer', 'intersect', or 'fit'. See Droppable for more details
+ * @option Boolean fit When true, sortable must be inside the container in order to drop
+ * @option Integer fx Duration for the effect applied to the sortable
+ * @option Function onchange Callback that gets called when the sortable list changed. It takes
+ * an array of serialized elements
+ * @option Boolean floats True if the sorted elements are floated
+ * @option String containment Use 'parent' to constrain the drag to the container
+ * @option String axis Use 'horizontally' or 'vertically' to constrain dragging to an axis
+ * @option String handle The jQuery selector that indicates the draggable handle
+ * @option DOMElement handle The node that indicates the draggable handle
+ * @option Function onHover Callback that is called when an acceptable item is dragged over the
+ * container. Gets the hovering DOMElement as a parameter
+ * @option Function onOut Callback that is called when an acceptable item leaves the container.
+ * Gets the leaving DOMElement as a parameter
+ * @option Object cursorAt The mouse cursor will be moved to the offset on the dragged item
+ * indicated by the object, which takes "top", "bottom", "left", and
+ * "right" keys
+ * @option Function onStart Callback function triggered when the dragging starts
+ * @option Function onStop Callback function triggered when the dragging stops
+ * @example $('ul').Sortable(
+ * {
+ * accept : 'sortableitem',
+ * activeclass : 'sortableactive',
+ * hoverclass : 'sortablehover',
+ * helperclass : 'sorthelper',
+ * opacity: 0.5,
+ * fit : false
+ * }
+ * )
+ */
+
+jQuery.iSort = {
+ changed : [],
+ collected : {},
+ helper : false,
+ inFrontOf: null,
+
+ start : function ()
+ {
+ if (jQuery.iDrag.dragged == null) {
+ return;
+ }
+ var shs, margins,c, cs;
+
+ jQuery.iSort.helper.get(0).className = jQuery.iDrag.dragged.dragCfg.hpc;
+ shs = jQuery.iSort.helper.get(0).style;
+ shs.display = 'block';
+ jQuery.iSort.helper.oC = jQuery.extend(
+ jQuery.iUtil.getPosition(jQuery.iSort.helper.get(0)),
+ jQuery.iUtil.getSize(jQuery.iSort.helper.get(0))
+ );
+
+ shs.width = jQuery.iDrag.dragged.dragCfg.oC.wb + 'px';
+ shs.height = jQuery.iDrag.dragged.dragCfg.oC.hb + 'px';
+ //shs.cssFloat = jQuery.iDrag.dragged.dragCfg.oF;
+ margins = jQuery.iUtil.getMargins(jQuery.iDrag.dragged);
+ shs.marginTop = margins.t;
+ shs.marginRight = margins.r;
+ shs.marginBottom = margins.b;
+ shs.marginLeft = margins.l;
+ if (jQuery.iDrag.dragged.dragCfg.ghosting == true) {
+ c = jQuery.iDrag.dragged.cloneNode(true);
+ cs = c.style;
+ cs.marginTop = '0px';
+ cs.marginRight = '0px';
+ cs.marginBottom = '0px';
+ cs.marginLeft = '0px';
+ cs.display = 'block';
+ jQuery.iSort.helper.empty().append(c);
+ }
+ jQuery(jQuery.iDrag.dragged).after(jQuery.iSort.helper.get(0));
+ jQuery.iDrag.dragged.style.display = 'none';
+ },
+
+ check : function (e)
+ {
+ if (!e.dragCfg.so && jQuery.iDrop.overzone.sortable) {
+ if (e.dragCfg.onStop)
+ e.dragCfg.onStop.apply(dragged);
+ jQuery(e).css('position', e.dragCfg.initialPosition || e.dragCfg.oP);
+ jQuery(e).DraggableDestroy();
+ jQuery(jQuery.iDrop.overzone).SortableAddItem(e);
+ }
+ jQuery.iSort.helper.removeClass(e.dragCfg.hpc).html('&nbsp;');
+ jQuery.iSort.inFrontOf = null;
+ var shs = jQuery.iSort.helper.get(0).style;
+ shs.display = 'none';
+ jQuery.iSort.helper.after(e);
+ if (e.dragCfg.fx > 0) {
+ jQuery(e).fadeIn(e.dragCfg.fx);
+ }
+ jQuery('body').append(jQuery.iSort.helper.get(0));
+ var ts = [];
+ var fnc = false;
+ for(var i=0; i<jQuery.iSort.changed.length; i++){
+ var iEL = jQuery.iDrop.zones[jQuery.iSort.changed[i]].get(0);
+ var id = jQuery.attr(iEL, 'id');
+ var ser = jQuery.iSort.serialize(id);
+ if (iEL.dropCfg.os != ser.hash) {
+ iEL.dropCfg.os = ser.hash;
+ if (fnc == false && iEL.dropCfg.onChange) {
+ fnc = iEL.dropCfg.onChange;
+ }
+ ser.id = id;
+ ts[ts.length] = ser;
+ }
+ }
+ jQuery.iSort.changed = [];
+ if (fnc != false && ts.length > 0) {
+ fnc(ts);
+ }
+ },
+
+ checkhover : function(e,o)
+ {
+ if (!jQuery.iDrag.dragged)
+ return;
+ var cur = false;
+ var i = 0;
+ if ( e.dropCfg.el.size() > 0) {
+ for (i = e.dropCfg.el.size(); i >0; i--) {
+ if (e.dropCfg.el.get(i-1) != jQuery.iDrag.dragged) {
+ if (!e.sortCfg.floats) {
+ if (
+ (e.dropCfg.el.get(i-1).pos.y + e.dropCfg.el.get(i-1).pos.hb/2) > jQuery.iDrag.dragged.dragCfg.ny
+ ) {
+ cur = e.dropCfg.el.get(i-1);
+ } else {
+ break;
+ }
+ } else {
+ if (
+ (e.dropCfg.el.get(i-1).pos.x + e.dropCfg.el.get(i-1).pos.wb/2) > jQuery.iDrag.dragged.dragCfg.nx &&
+ (e.dropCfg.el.get(i-1).pos.y + e.dropCfg.el.get(i-1).pos.hb/2) > jQuery.iDrag.dragged.dragCfg.ny
+ ) {
+ cur = e.dropCfg.el.get(i-1);
+ }
+ }
+ }
+ }
+ }
+ //helpos = jQuery.iUtil.getPos(jQuery.iSort.helper.get(0));
+ if (cur && jQuery.iSort.inFrontOf != cur) {
+ jQuery.iSort.inFrontOf = cur;
+ jQuery(cur).before(jQuery.iSort.helper.get(0));
+ } else if(!cur && (jQuery.iSort.inFrontOf != null || jQuery.iSort.helper.get(0).parentNode != e) ) {
+ jQuery.iSort.inFrontOf = null;
+ jQuery(e).append(jQuery.iSort.helper.get(0));
+ }
+ jQuery.iSort.helper.get(0).style.display = 'block';
+ },
+
+ measure : function (e)
+ {
+ if (jQuery.iDrag.dragged == null) {
+ return;
+ }
+ e.dropCfg.el.each (
+ function ()
+ {
+ this.pos = jQuery.extend(
+ jQuery.iUtil.getSizeLite(this),
+ jQuery.iUtil.getPositionLite(this)
+ );
+ }
+ );
+ },
+
+ serialize : function(s)
+ {
+ var i;
+ var h = '';
+ var o = {};
+ if (s) {
+ if (jQuery.iSort.collected[s] ) {
+ o[s] = [];
+ jQuery('#' + s + ' .' + jQuery.iSort.collected[s]).each(
+ function ()
+ {
+ if (h.length > 0) {
+ h += '&';
+ }
+ h += s + '[]=' + jQuery.attr(this,'id');
+ o[s][o[s].length] = jQuery.attr(this,'id');
+ }
+ );
+ } else {
+ for ( a in s) {
+ if (jQuery.iSort.collected[s[a]] ) {
+ o[s[a]] = [];
+ jQuery('#' + s[a] + ' .' + jQuery.iSort.collected[s[a]]).each(
+ function ()
+ {
+ if (h.length > 0) {
+ h += '&';
+ }
+ h += s[a] + '[]=' + jQuery.attr(this,'id');
+ o[s[a]][o[s[a]].length] = jQuery.attr(this,'id');
+ }
+ );
+ }
+ }
+ }
+ } else {
+ for ( i in jQuery.iSort.collected){
+ o[i] = [];
+ jQuery('#' + i + ' .' + jQuery.iSort.collected[i]).each(
+ function ()
+ {
+ if (h.length > 0) {
+ h += '&';
+ }
+ h += i + '[]=' + jQuery.attr(this,'id');
+ o[i][o[i].length] = jQuery.attr(this,'id');
+ }
+ );
+ }
+ }
+ return {hash:h, o:o};
+ },
+
+ addItem : function (e)
+ {
+ if ( !e.childNodes ) {
+ return;
+ }
+ return this.each(
+ function ()
+ {
+ if(!this.sortCfg || !jQuery(e).is('.' + this.sortCfg.accept))
+ jQuery(e).addClass(this.sortCfg.accept);
+ jQuery(e).Draggable(this.sortCfg.dragCfg);
+ }
+ );
+ },
+
+ destroy: function()
+ {
+ return this.each(
+ function()
+ {
+ jQuery('.' + this.sortCfg.accept).DraggableDestroy();
+ jQuery(this).DroppableDestroy();
+ this.sortCfg = null;
+ this.isSortable = null;
+ }
+ );
+ },
+
+ build : function (o)
+ {
+ if (o.accept && jQuery.iUtil && jQuery.iDrag && jQuery.iDrop) {
+ if (!jQuery.iSort.helper) {
+ jQuery('body',document).append('<div id="sortHelper">&nbsp;</div>');
+ jQuery.iSort.helper = jQuery('#sortHelper');
+ jQuery.iSort.helper.get(0).style.display = 'none';
+ }
+ this.Droppable(
+ {
+ accept : o.accept,
+ activeclass : o.activeclass ? o.activeclass : false,
+ hoverclass : o.hoverclass ? o.hoverclass : false,
+ helperclass : o.helperclass ? o.helperclass : false,
+ /*onDrop: function (drag, fx)
+ {
+ jQuery.iSort.helper.after(drag);
+ if (fx > 0) {
+ jQuery(drag).fadeIn(fx);
+ }
+ },*/
+ onHover: o.onHover||o.onhover,
+ onOut: o.onOut||o.onout,
+ sortable : true,
+ onChange : o.onChange||o.onchange,
+ fx : o.fx ? o.fx : false,
+ ghosting : o.ghosting ? true : false,
+ tolerance: o.tolerance ? o.tolerance : 'intersect'
+ }
+ );
+
+ return this.each(
+ function()
+ {
+ var dragCfg = {
+ revert : o.revert? true : false,
+ zindex : 3000,
+ opacity : o.opacity ? parseFloat(o.opacity) : false,
+ hpc : o.helperclass ? o.helperclass : false,
+ fx : o.fx ? o.fx : false,
+ so : true,
+ ghosting : o.ghosting ? true : false,
+ handle: o.handle ? o.handle : null,
+ containment: o.containment ? o.containment : null,
+ onStart : o.onStart && o.onStart.constructor == Function ? o.onStart : false,
+ onDrag : o.onDrag && o.onDrag.constructor == Function ? o.onDrag : false,
+ onStop : o.onStop && o.onStop.constructor == Function ? o.onStop : false,
+ axis : /vertically|horizontally/.test(o.axis) ? o.axis : false,
+ snapDistance : o.snapDistance ? parseInt(o.snapDistance)||0 : false,
+ cursorAt: o.cursorAt ? o.cursorAt : false
+ };
+
+ jQuery('.' + o.accept, this).Draggable(dragCfg);
+ this.isSortable = true;
+ this.sortCfg = {
+ accept : o.accept,
+ revert : o.revert? true : false,
+ zindex : 3000,
+ opacity : o.opacity ? parseFloat(o.opacity) : false,
+ hpc : o.helperclass ? o.helperclass : false,
+ fx : o.fx ? o.fx : false,
+ so : true,
+ ghosting : o.ghosting ? true : false,
+ handle: o.handle ? o.handle : null,
+ containment: o.containment ? o.containment : null,
+ floats: o.floats ? true : false,
+ dragCfg : dragCfg
+ }
+ }
+ );
+ }
+ }
+};
+
+jQuery.fn.extend(
+ {
+ Sortable : jQuery.iSort.build,
+ /**
+ * A new item can be added to a sortable by adding it to the DOM and then adding it via
+ * SortableAddItem.
+ *
+ * @name SortableAddItem
+ * @param DOMElement elem A DOM Element to add to the sortable list
+ * @example $('#sortable1').append('<li id="newitem">new item</li>')
+ * .SortableAddItem($("#new_item")[0])
+ * @type jQuery
+ * @cat Plugins/Interface
+ */
+ SortableAddItem : jQuery.iSort.addItem,
+ /**
+ * Destroy a sortable
+ *
+ * @name SortableDestroy
+ * @example $('#sortable1').SortableDestroy();
+ * @type jQuery
+ * @cat Plugins/Interface
+ */
+ SortableDestroy: jQuery.iSort.destroy
+ }
+);
+
+/**
+ * This function returns the hash and an object (can be used as arguments for $.post) for every
+ * sortable in the page or specific sortables. The hash is based on the 'id' attributes of
+ * container and items.
+ *
+ * @params String sortable The id of the sortable to serialize
+ * @name $.SortSerialize
+ * @type String
+ * @cat Plugins/Interface
+ */
+
+jQuery.SortSerialize = jQuery.iSort.serialize;
\ No newline at end of file
Property changes on: platform/inc/jquery/interface/isortables.js
___________________________________________________________________
Added: cvs2svn:cvs-rev
## -0,0 +1 ##
+1.1.2.1
\ No newline at end of property
Index: platform/inc/jquery/interface/idrop.js
===================================================================
--- platform/inc/jquery/interface/idrop.js (nonexistent)
+++ platform/inc/jquery/interface/idrop.js (revision 11427)
@@ -0,0 +1,323 @@
+/**
+ * Interface Elements for jQuery
+ * Droppables
+ *
+ * http://interface.eyecon.ro
+ *
+ * Copyright (c) 2006 Stefan Petre
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ *
+ */
+
+/**
+ * With the Draggables plugin, Droppable allows you to create drop zones for draggable elements.
+ *
+ * @name Droppable
+ * @cat Plugins/Interface
+ * @param Hash options A hash of options
+ * @option String accept The class name for draggables to get accepted by the droppable (mandatory)
+ * @option String activeclass When an acceptable draggable is moved, the droppable gets this class
+ * @option String hoverclass When an acceptable draggable is inside the droppable, the droppable gets
+ * this class
+ * @option String tolerance Choose from 'pointer', 'intersect', or 'fit'. The pointer options means
+ * that the pointer must be inside the droppable in order for the draggable
+ * to be dropped. The intersect option means that the draggable must intersect
+ * the droppable. The fit option means that the entire draggable must be
+ * inside the droppable.
+ * @option Function onDrop When an acceptable draggable is dropped on a droppable, this callback is
+ * called. It passes the draggable DOMElement as a parameter.
+ * @option Function onHover When an acceptable draggable is hovered over a droppable, this callback
+ * is called. It passes the draggable DOMElement as a parameter.
+ * @option Function onOut When an acceptable draggable leaves a droppable, this callback is called.
+ * It passes the draggable DOMElement as a parameter.
+ * @example $('#dropzone1').Droppable(
+ * {
+ * accept : 'dropaccept',
+ * activeclass: 'dropzoneactive',
+ * hoverclass: 'dropzonehover',
+ * ondrop: function (drag) {
+ * alert(this); //the droppable
+ * alert(drag); //the draggable
+ * },
+ * fit: true
+ * }
+ * )
+ */
+
+jQuery.iDrop = {
+ fit : function (zonex, zoney, zonew, zoneh)
+ {
+ return zonex <= jQuery.iDrag.dragged.dragCfg.nx &&
+ (zonex + zonew) >= (jQuery.iDrag.dragged.dragCfg.nx + jQuery.iDrag.dragged.dragCfg.oC.w) &&
+ zoney <= jQuery.iDrag.dragged.dragCfg.ny &&
+ (zoney + zoneh) >= (jQuery.iDrag.dragged.dragCfg.ny + jQuery.iDrag.dragged.dragCfg.oC.h) ? true :false;
+ },
+ intersect : function (zonex, zoney, zonew, zoneh)
+ {
+ return ! ( zonex > (jQuery.iDrag.dragged.dragCfg.nx + jQuery.iDrag.dragged.dragCfg.oC.w)
+ || (zonex + zonew) < jQuery.iDrag.dragged.dragCfg.nx
+ || zoney > (jQuery.iDrag.dragged.dragCfg.ny + jQuery.iDrag.dragged.dragCfg.oC.h)
+ || (zoney + zoneh) < jQuery.iDrag.dragged.dragCfg.ny
+ ) ? true :false;
+ },
+ pointer : function (zonex, zoney, zonew, zoneh)
+ {
+ return zonex < jQuery.iDrag.dragged.dragCfg.currentPointer.x
+ && (zonex + zonew) > jQuery.iDrag.dragged.dragCfg.currentPointer.x
+ && zoney < jQuery.iDrag.dragged.dragCfg.currentPointer.y
+ && (zoney + zoneh) > jQuery.iDrag.dragged.dragCfg.currentPointer.y
+ ? true :false;
+ },
+ overzone : false,
+ highlighted : {},
+ count : 0,
+ zones : {},
+
+ highlight : function (elm)
+ {
+ if (jQuery.iDrag.dragged == null) {
+ return;
+ }
+ var i;
+ jQuery.iDrop.highlighted = {};
+ var oneIsSortable = false;
+ for (i in jQuery.iDrop.zones) {
+ if (jQuery.iDrop.zones[i] != null) {
+ var iEL = jQuery.iDrop.zones[i].get(0);
+ if (jQuery(jQuery.iDrag.dragged).is('.' + iEL.dropCfg.a)) {
+ if (iEL.dropCfg.m == false) {
+ iEL.dropCfg.p = jQuery.extend(
+ jQuery.iUtil.getPositionLite(iEL),
+ jQuery.iUtil.getSizeLite(iEL)
+ );//jQuery.iUtil.getPos(iEL);
+ iEL.dropCfg.m = true;
+ }
+ if (iEL.dropCfg.ac) {
+ jQuery.iDrop.zones[i].addClass(iEL.dropCfg.ac);
+ }
+ jQuery.iDrop.highlighted[i] = jQuery.iDrop.zones[i];
+ //if (jQuery.iSort && jQuery.iDrag.dragged.dragCfg.so) {
+ if (jQuery.iSort && iEL.dropCfg.s && jQuery.iDrag.dragged.dragCfg.so) {
+ iEL.dropCfg.el = jQuery('.' + iEL.dropCfg.a, iEL);
+ elm.style.display = 'none';
+ jQuery.iSort.measure(iEL);
+ iEL.dropCfg.os = jQuery.iSort.serialize(jQuery.attr(iEL, 'id')).hash;
+ elm.style.display = elm.dragCfg.oD;
+ oneIsSortable = true;
+ }
+ if (iEL.dropCfg.onActivate) {
+ iEL.dropCfg.onActivate.apply(jQuery.iDrop.zones[i].get(0), [jQuery.iDrag.dragged]);
+ }
+ }
+ }
+ }
+ //if (jQuery.iSort && jQuery.iDrag.dragged.dragCfg.so) {
+ if (oneIsSortable) {
+ jQuery.iSort.start();
+ }
+ },
+ /**
+ * remeasure the droppable
+ *
+ * useful when the positions/dimensions for droppables
+ * are changed while dragging a element
+ *
+ * this works for sortables too but with a greate processor
+ * penality because remeasures each sort items too
+ */
+ remeasure : function()
+ {
+ jQuery.iDrop.highlighted = {};
+ for (i in jQuery.iDrop.zones) {
+ if (jQuery.iDrop.zones[i] != null) {
+ var iEL = jQuery.iDrop.zones[i].get(0);
+ if (jQuery(jQuery.iDrag.dragged).is('.' + iEL.dropCfg.a)) {
+ iEL.dropCfg.p = jQuery.extend(
+ jQuery.iUtil.getPositionLite(iEL),
+ jQuery.iUtil.getSizeLite(iEL)
+ );
+ if (iEL.dropCfg.ac) {
+ jQuery.iDrop.zones[i].addClass(iEL.dropCfg.ac);
+ }
+ jQuery.iDrop.highlighted[i] = jQuery.iDrop.zones[i];
+
+ if (jQuery.iSort && iEL.dropCfg.s && jQuery.iDrag.dragged.dragCfg.so) {
+ iEL.dropCfg.el = jQuery('.' + iEL.dropCfg.a, iEL);
+ elm.style.display = 'none';
+ jQuery.iSort.measure(iEL);
+ elm.style.display = elm.dragCfg.oD;
+ }
+ }
+ }
+ }
+ },
+
+ checkhover : function (e)
+ {
+ if (jQuery.iDrag.dragged == null) {
+ return;
+ }
+ jQuery.iDrop.overzone = false;
+ var i;
+ var applyOnHover = false;
+ var hlt = 0;
+ for (i in jQuery.iDrop.highlighted)
+ {
+ var iEL = jQuery.iDrop.highlighted[i].get(0);
+ if (
+ jQuery.iDrop.overzone == false
+ &&
+ jQuery.iDrop[iEL.dropCfg.t](
+ iEL.dropCfg.p.x,
+ iEL.dropCfg.p.y,
+ iEL.dropCfg.p.wb,
+ iEL.dropCfg.p.hb
+ )
+
+ ) {
+ if (iEL.dropCfg.hc && iEL.dropCfg.h == false) {
+ jQuery.iDrop.highlighted[i].addClass(iEL.dropCfg.hc);
+ }
+ //chec if onHover function has to be called
+ if (iEL.dropCfg.h == false &&iEL.dropCfg.onHover) {
+ applyOnHover = true;
+ }
+ iEL.dropCfg.h = true;
+ jQuery.iDrop.overzone = iEL;
+ //if(jQuery.iSort && jQuery.iDrag.dragged.dragCfg.so) {
+ if(jQuery.iSort && iEL.dropCfg.s && jQuery.iDrag.dragged.dragCfg.so) {
+ jQuery.iSort.helper.get(0).className = iEL.dropCfg.shc;
+ jQuery.iSort.checkhover(iEL);
+ }
+ hlt ++;
+ } else if(iEL.dropCfg.h == true) {
+ //onOut function
+ if (iEL.dropCfg.onOut) {
+ iEL.dropCfg.onOut.apply(iEL, [e, jQuery.iDrag.helper.get(0).firstChild, iEL.dropCfg.fx]);
+ }
+ if (iEL.dropCfg.hc) {
+ jQuery.iDrop.highlighted[i].removeClass(iEL.dropCfg.hc);
+ }
+ iEL.dropCfg.h = false;
+ }
+ }
+ if (jQuery.iSort && !jQuery.iDrop.overzone && jQuery.iDrag.dragged.so) {
+ jQuery.iSort.helper.get(0).style.display = 'none';
+ //jQuery('body').append(jQuery.iSort.helper.get(0));
+ }
+ //call onhover
+ if(applyOnHover) {
+ jQuery.iDrop.overzone.dropCfg.onHover.apply(jQuery.iDrop.overzone, [e, jQuery.iDrag.helper.get(0).firstChild]);
+ }
+ },
+ checkdrop : function (e)
+ {
+ var i;
+ for (i in jQuery.iDrop.highlighted) {
+ var iEL = jQuery.iDrop.highlighted[i].get(0);
+ if (iEL.dropCfg.ac) {
+ jQuery.iDrop.highlighted[i].removeClass(iEL.dropCfg.ac);
+ }
+ if (iEL.dropCfg.hc) {
+ jQuery.iDrop.highlighted[i].removeClass(iEL.dropCfg.hc);
+ }
+ if(iEL.dropCfg.s) {
+ jQuery.iSort.changed[jQuery.iSort.changed.length] = i;
+ }
+ if (iEL.dropCfg.onDrop && iEL.dropCfg.h == true) {
+ iEL.dropCfg.h = false;
+ iEL.dropCfg.onDrop.apply(iEL, [e, iEL.dropCfg.fx]);
+ }
+ iEL.dropCfg.m = false;
+ iEL.dropCfg.h = false;
+ }
+ jQuery.iDrop.highlighted = {};
+ },
+ destroy : function()
+ {
+ return this.each(
+ function()
+ {
+ if (this.isDroppable) {
+ if (this.dropCfg.s) {
+ id = jQuery.attr(this,'id');
+ jQuery.iSort.collected[id] = null;
+ jQuery('.' + this.dropCfg.a, this).DraggableDestroy();
+ }
+ jQuery.iDrop.zones['d' + this.idsa] = null;
+ this.isDroppable = false;
+ this.f = null;
+ }
+ }
+ );
+ },
+ build : function (o)
+ {
+ return this.each(
+ function()
+ {
+ if (this.isDroppable == true || !o.accept || !jQuery.iUtil || !jQuery.iDrag){
+ return;
+ }
+ this.dropCfg = {
+ a : o.accept,
+ ac: o.activeclass||false,
+ hc: o.hoverclass||false,
+ shc: o.helperclass||false,
+ onDrop: o.ondrop||o.onDrop||false,
+ onHover: o.onHover||o.onhover||false,
+ onOut: o.onOut||o.onout||false,
+ onActivate: o.onActivate||false,
+ t: o.tolerance && ( o.tolerance == 'fit' || o.tolerance == 'intersect') ? o.tolerance : 'pointer',
+ fx: o.fx ? o.fx : false,
+ m: false,
+ h: false
+ };
+ if (o.sortable == true && jQuery.iSort) {
+ id = jQuery.attr(this,'id');
+ jQuery.iSort.collected[id] = this.dropCfg.a;
+ this.dropCfg.s = true;
+ if(o.onChange) {
+ this.dropCfg.onChange = o.onChange;
+ this.dropCfg.os = jQuery.iSort.serialize(id).hash;
+ }
+ }
+ this.isDroppable = true;
+ this.idsa = parseInt(Math.random() * 10000);
+ jQuery.iDrop.zones['d' + this.idsa] = jQuery(this);
+ jQuery.iDrop.count ++;
+ }
+ );
+ }
+};
+
+/**
+ * Destroy an existing droppable on a collection of elements
+ *
+ * @name DroppableDestroy
+ * @descr Destroy a droppable
+ * @type jQuery
+ * @cat Plugins/Interface
+ * @example $('#drag2').DroppableDestroy();
+ */
+
+jQuery.fn.extend(
+ {
+ DroppableDestroy : jQuery.iDrop.destroy,
+ Droppable : jQuery.iDrop.build
+ }
+);
+
+
+/**
+ * Recalculate all Droppables
+ *
+ * @name $.recallDroppables
+ * @type jQuery
+ * @cat Plugins/Interface
+ * @example $.recallDroppable();
+ */
+
+jQuery.recallDroppables = jQuery.iDrop.remeasure;
\ No newline at end of file
Property changes on: platform/inc/jquery/interface/idrop.js
___________________________________________________________________
Added: cvs2svn:cvs-rev
## -0,0 +1 ##
+1.1.2.1
\ No newline at end of property
Index: platform/inc/jquery/jquery.pack.js
===================================================================
--- platform/inc/jquery/jquery.pack.js (revision 11426)
+++ platform/inc/jquery/jquery.pack.js (revision 11427)
@@ -1,11 +1,11 @@
/*
* jQuery 1.2.6 - New Wave Javascript
*
* Copyright (c) 2008 John Resig (jquery.com)
* Dual licensed under the MIT (MIT-LICENSE.txt)
* and GPL (GPL-LICENSE.txt) licenses.
*
- * $Date: 2008-12-17 15:27:45 $
+ * $Date: 2009-03-11 16:49:32 $
* $Rev: 5685 $
*/
eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(H(){J w=1b.4M,3m$=1b.$;J D=1b.4M=1b.$=H(a,b){I 2B D.17.5j(a,b)};J u=/^[^<]*(<(.|\\s)+>)[^>]*$|^#(\\w+)$/,62=/^.[^:#\\[\\.]*$/,12;D.17=D.44={5j:H(d,b){d=d||S;G(d.16){7[0]=d;7.K=1;I 7}G(1j d=="23"){J c=u.2D(d);G(c&&(c[1]||!b)){G(c[1])d=D.4h([c[1]],b);N{J a=S.61(c[3]);G(a){G(a.2v!=c[3])I D().2q(d);I D(a)}d=[]}}N I D(b).2q(d)}N G(D.1D(d))I D(S)[D.17.27?"27":"43"](d);I 7.6Y(D.2d(d))},5w:"1.2.6",8G:H(){I 7.K},K:0,3p:H(a){I a==12?D.2d(7):7[a]},2I:H(b){J a=D(b);a.5n=7;I a},6Y:H(a){7.K=0;2p.44.1p.1w(7,a);I 7},P:H(a,b){I D.P(7,a,b)},5i:H(b){J a=-1;I D.2L(b&&b.5w?b[0]:b,7)},1K:H(c,a,b){J d=c;G(c.1q==56)G(a===12)I 7[0]&&D[b||"1K"](7[0],c);N{d={};d[c]=a}I 7.P(H(i){R(c 1n d)D.1K(b?7.V:7,c,D.1i(7,d[c],b,i,c))})},1g:H(b,a){G((b==\'2h\'||b==\'1Z\')&&3d(a)<0)a=12;I 7.1K(b,a,"2a")},1r:H(b){G(1j b!="49"&&b!=U)I 7.4E().3v((7[0]&&7[0].2z||S).5F(b));J a="";D.P(b||7,H(){D.P(7.3t,H(){G(7.16!=8)a+=7.16!=1?7.76:D.17.1r([7])})});I a},5z:H(b){G(7[0])D(b,7[0].2z).5y().39(7[0]).2l(H(){J a=7;1B(a.1x)a=a.1x;I a}).3v(7);I 7},8Y:H(a){I 7.P(H(){D(7).6Q().5z(a)})},8R:H(a){I 7.P(H(){D(7).5z(a)})},3v:H(){I 7.3W(19,M,Q,H(a){G(7.16==1)7.3U(a)})},6F:H(){I 7.3W(19,M,M,H(a){G(7.16==1)7.39(a,7.1x)})},6E:H(){I 7.3W(19,Q,Q,H(a){7.1d.39(a,7)})},5q:H(){I 7.3W(19,Q,M,H(a){7.1d.39(a,7.2H)})},3l:H(){I 7.5n||D([])},2q:H(b){J c=D.2l(7,H(a){I D.2q(b,a)});I 7.2I(/[^+>] [^+>]/.11(b)||b.1h("..")>-1?D.4r(c):c)},5y:H(e){J f=7.2l(H(){G(D.14.1f&&!D.4n(7)){J a=7.6o(M),5h=S.3h("1v");5h.3U(a);I D.4h([5h.4H])[0]}N I 7.6o(M)});J d=f.2q("*").5c().P(H(){G(7[E]!=12)7[E]=U});G(e===M)7.2q("*").5c().P(H(i){G(7.16==3)I;J c=D.L(7,"3w");R(J a 1n c)R(J b 1n c[a])D.W.1e(d[i],a,c[a][b],c[a][b].L)});I f},1E:H(b){I 7.2I(D.1D(b)&&D.3C(7,H(a,i){I b.1k(a,i)})||D.3g(b,7))},4Y:H(b){G(b.1q==56)G(62.11(b))I 7.2I(D.3g(b,7,M));N b=D.3g(b,7);J a=b.K&&b[b.K-1]!==12&&!b.16;I 7.1E(H(){I a?D.2L(7,b)<0:7!=b})},1e:H(a){I 7.2I(D.4r(D.2R(7.3p(),1j a==\'23\'?D(a):D.2d(a))))},3F:H(a){I!!a&&D.3g(a,7).K>0},7T:H(a){I 7.3F("."+a)},6e:H(b){G(b==12){G(7.K){J c=7[0];G(D.Y(c,"2A")){J e=c.64,63=[],15=c.15,2V=c.O=="2A-2V";G(e<0)I U;R(J i=2V?e:0,2f=2V?e+1:15.K;i<2f;i++){J d=15[i];G(d.2W){b=D.14.1f&&!d.at.2x.an?d.1r:d.2x;G(2V)I b;63.1p(b)}}I 63}N I(7[0].2x||"").1o(/\\r/g,"")}I 12}G(b.1q==4L)b+=\'\';I 7.P(H(){G(7.16!=1)I;G(b.1q==2p&&/5O|5L/.11(7.O))7.4J=(D.2L(7.2x,b)>=0||D.2L(7.34,b)>=0);N G(D.Y(7,"2A")){J a=D.2d(b);D("9R",7).P(H(){7.2W=(D.2L(7.2x,a)>=0||D.2L(7.1r,a)>=0)});G(!a.K)7.64=-1}N 7.2x=b})},2K:H(a){I a==12?(7[0]?7[0].4H:U):7.4E().3v(a)},7b:H(a){I 7.5q(a).21()},79:H(i){I 7.3s(i,i+1)},3s:H(){I 7.2I(2p.44.3s.1w(7,19))},2l:H(b){I 7.2I(D.2l(7,H(a,i){I b.1k(a,i,a)}))},5c:H(){I 7.1e(7.5n)},L:H(d,b){J a=d.1R(".");a[1]=a[1]?"."+a[1]:"";G(b===12){J c=7.5C("9z"+a[1]+"!",[a[0]]);G(c===12&&7.K)c=D.L(7[0],d);I c===12&&a[1]?7.L(a[0]):c}N I 7.1P("9u"+a[1]+"!",[a[0],b]).P(H(){D.L(7,d,b)})},3b:H(a){I 7.P(H(){D.3b(7,a)})},3W:H(g,f,h,d){J e=7.K>1,3x;I 7.P(H(){G(!3x){3x=D.4h(g,7.2z);G(h)3x.9o()}J b=7;G(f&&D.Y(7,"1T")&&D.Y(3x[0],"4F"))b=7.3H("22")[0]||7.3U(7.2z.3h("22"));J c=D([]);D.P(3x,H(){J a=e?D(7).5y(M)[0]:7;G(D.Y(a,"1m"))c=c.1e(a);N{G(a.16==1)c=c.1e(D("1m",a).21());d.1k(b,a)}});c.P(6T)})}};D.17.5j.44=D.17;H 6T(i,a){G(a.4d)D.3Y({1a:a.4d,31:Q,1O:"1m"});N D.5u(a.1r||a.6O||a.4H||"");G(a.1d)a.1d.37(a)}H 1z(){I+2B 8J}D.1l=D.17.1l=H(){J b=19[0]||{},i=1,K=19.K,4x=Q,15;G(b.1q==8I){4x=b;b=19[1]||{};i=2}G(1j b!="49"&&1j b!="H")b={};G(K==i){b=7;--i}R(;i<K;i++)G((15=19[i])!=U)R(J c 1n 15){J a=b[c],2w=15[c];G(b===2w)6M;G(4x&&2w&&1j 2w=="49"&&!2w.16)b[c]=D.1l(4x,a||(2w.K!=U?[]:{}),2w);N G(2w!==12)b[c]=2w}I b};J E="4M"+1z(),6K=0,5r={},6G=/z-?5i|8B-?8A|1y|6B|8v-?1Z/i,3P=S.3P||{};D.1l({8u:H(a){1b.$=3m$;G(a)1b.4M=w;I D},1D:H(a){I!!a&&1j a!="23"&&!a.Y&&a.1q!=2p&&/^[\\s[]?H/.11(a+"")},4n:H(a){I a.1C&&!a.1c||a.2j&&a.2z&&!a.2z.1c},5u:H(a){a=D.3k(a);G(a){J b=S.3H("6w")[0]||S.1C,1m=S.3h("1m");1m.O="1r/4t";G(D.14.1f)1m.1r=a;N 1m.3U(S.5F(a));b.39(1m,b.1x);b.37(1m)}},Y:H(b,a){I b.Y&&b.Y.2r()==a.2r()},1Y:{},L:H(c,d,b){c=c==1b?5r:c;J a=c[E];G(!a)a=c[E]=++6K;G(d&&!D.1Y[a])D.1Y[a]={};G(b!==12)D.1Y[a][d]=b;I d?D.1Y[a][d]:a},3b:H(c,b){c=c==1b?5r:c;J a=c[E];G(b){G(D.1Y[a]){2U D.1Y[a][b];b="";R(b 1n D.1Y[a])1X;G(!b)D.3b(c)}}N{1U{2U c[E]}1V(e){G(c.5l)c.5l(E)}2U D.1Y[a]}},P:H(d,a,c){J e,i=0,K=d.K;G(c){G(K==12){R(e 1n d)G(a.1w(d[e],c)===Q)1X}N R(;i<K;)G(a.1w(d[i++],c)===Q)1X}N{G(K==12){R(e 1n d)G(a.1k(d[e],e,d[e])===Q)1X}N R(J b=d[0];i<K&&a.1k(b,i,b)!==Q;b=d[++i]){}}I d},1i:H(b,a,c,i,d){G(D.1D(a))a=a.1k(b,i);I a&&a.1q==4L&&c=="2a"&&!6G.11(d)?a+"2X":a},1F:{1e:H(c,b){D.P((b||"").1R(/\\s+/),H(i,a){G(c.16==1&&!D.1F.3T(c.1F,a))c.1F+=(c.1F?" ":"")+a})},21:H(c,b){G(c.16==1)c.1F=b!=12?D.3C(c.1F.1R(/\\s+/),H(a){I!D.1F.3T(b,a)}).6s(" "):""},3T:H(b,a){I D.2L(a,(b.1F||b).6r().1R(/\\s+/))>-1}},6q:H(b,c,a){J e={};R(J d 1n c){e[d]=b.V[d];b.V[d]=c[d]}a.1k(b);R(J d 1n c)b.V[d]=e[d]},1g:H(d,e,c){G(e=="2h"||e=="1Z"){J b,3X={30:"5x",5g:"1G",18:"3I"},35=e=="2h"?["5e","6k"]:["5G","6i"];H 5b(){b=e=="2h"?d.8f:d.8c;J a=0,2C=0;D.P(35,H(){a+=3d(D.2a(d,"57"+7,M))||0;2C+=3d(D.2a(d,"2C"+7+"4b",M))||0});b-=29.83(a+2C)}G(D(d).3F(":4j"))5b();N D.6q(d,3X,5b);I 29.2f(0,b)}I D.2a(d,e,c)},2a:H(f,l,k){J e,V=f.V;H 3E(b){G(!D.14.2k)I Q;J a=3P.54(b,U);I!a||a.52("3E")==""}G(l=="1y"&&D.14.1f){e=D.1K(V,"1y");I e==""?"1":e}G(D.14.2G&&l=="18"){J d=V.50;V.50="0 7Y 7W";V.50=d}G(l.1I(/4i/i))l=y;G(!k&&V&&V[l])e=V[l];N G(3P.54){G(l.1I(/4i/i))l="4i";l=l.1o(/([A-Z])/g,"-$1").3y();J c=3P.54(f,U);G(c&&!3E(f))e=c.52(l);N{J g=[],2E=[],a=f,i=0;R(;a&&3E(a);a=a.1d)2E.6h(a);R(;i<2E.K;i++)G(3E(2E[i])){g[i]=2E[i].V.18;2E[i].V.18="3I"}e=l=="18"&&g[2E.K-1]!=U?"2F":(c&&c.52(l))||"";R(i=0;i<g.K;i++)G(g[i]!=U)2E[i].V.18=g[i]}G(l=="1y"&&e=="")e="1"}N G(f.4g){J h=l.1o(/\\-(\\w)/g,H(a,b){I b.2r()});e=f.4g[l]||f.4g[h];G(!/^\\d+(2X)?$/i.11(e)&&/^\\d/.11(e)){J j=V.1A,66=f.65.1A;f.65.1A=f.4g.1A;V.1A=e||0;e=V.aM+"2X";V.1A=j;f.65.1A=66}}I e},4h:H(l,h){J k=[];h=h||S;G(1j h.3h==\'12\')h=h.2z||h[0]&&h[0].2z||S;D.P(l,H(i,d){G(!d)I;G(d.1q==4L)d+=\'\';G(1j d=="23"){d=d.1o(/(<(\\w+)[^>]*?)\\/>/g,H(b,a,c){I c.1I(/^(aK|4f|7E|aG|4T|7A|aB|3n|az|ay|av)$/i)?b:a+"></"+c+">"});J f=D.3k(d).3y(),1v=h.3h("1v");J e=!f.1h("<au")&&[1,"<2A 7w=\'7w\'>","</2A>"]||!f.1h("<ar")&&[1,"<7v>","</7v>"]||f.1I(/^<(aq|22|am|ak|ai)/)&&[1,"<1T>","</1T>"]||!f.1h("<4F")&&[2,"<1T><22>","</22></1T>"]||(!f.1h("<af")||!f.1h("<ad"))&&[3,"<1T><22><4F>","</4F></22></1T>"]||!f.1h("<7E")&&[2,"<1T><22></22><7q>","</7q></1T>"]||D.14.1f&&[1,"1v<1v>","</1v>"]||[0,"",""];1v.4H=e[1]+d+e[2];1B(e[0]--)1v=1v.5T;G(D.14.1f){J g=!f.1h("<1T")&&f.1h("<22")<0?1v.1x&&1v.1x.3t:e[1]=="<1T>"&&f.1h("<22")<0?1v.3t:[];R(J j=g.K-1;j>=0;--j)G(D.Y(g[j],"22")&&!g[j].3t.K)g[j].1d.37(g[j]);G(/^\\s/.11(d))1v.39(h.5F(d.1I(/^\\s*/)[0]),1v.1x)}d=D.2d(1v.3t)}G(d.K===0&&(!D.Y(d,"3V")&&!D.Y(d,"2A")))I;G(d[0]==12||D.Y(d,"3V")||d.15)k.1p(d);N k=D.2R(k,d)});I k},1K:H(d,f,c){G(!d||d.16==3||d.16==8)I 12;J e=!D.4n(d),40=c!==12,1f=D.14.1f;f=e&&D.3X[f]||f;G(d.2j){J g=/5Q|4d|V/.11(f);G(f=="2W"&&D.14.2k)d.1d.64;G(f 1n d&&e&&!g){G(40){G(f=="O"&&D.Y(d,"4T")&&d.1d)7p"O a3 a1\'t 9V 9U";d[f]=c}G(D.Y(d,"3V")&&d.7i(f))I d.7i(f).76;I d[f]}G(1f&&e&&f=="V")I D.1K(d.V,"9T",c);G(40)d.9Q(f,""+c);J h=1f&&e&&g?d.4G(f,2):d.4G(f);I h===U?12:h}G(1f&&f=="1y"){G(40){d.6B=1;d.1E=(d.1E||"").1o(/7f\\([^)]*\\)/,"")+(3r(c)+\'\'=="9L"?"":"7f(1y="+c*7a+")")}I d.1E&&d.1E.1h("1y=")>=0?(3d(d.1E.1I(/1y=([^)]*)/)[1])/7a)+\'\':""}f=f.1o(/-([a-z])/9H,H(a,b){I b.2r()});G(40)d[f]=c;I d[f]},3k:H(a){I(a||"").1o(/^\\s+|\\s+$/g,"")},2d:H(b){J a=[];G(b!=U){J i=b.K;G(i==U||b.1R||b.4I||b.1k)a[0]=b;N 1B(i)a[--i]=b[i]}I a},2L:H(b,a){R(J i=0,K=a.K;i<K;i++)G(a[i]===b)I i;I-1},2R:H(a,b){J i=0,T,2S=a.K;G(D.14.1f){1B(T=b[i++])G(T.16!=8)a[2S++]=T}N 1B(T=b[i++])a[2S++]=T;I a},4r:H(a){J c=[],2o={};1U{R(J i=0,K=a.K;i<K;i++){J b=D.L(a[i]);G(!2o[b]){2o[b]=M;c.1p(a[i])}}}1V(e){c=a}I c},3C:H(c,a,d){J b=[];R(J i=0,K=c.K;i<K;i++)G(!d!=!a(c[i],i))b.1p(c[i]);I b},2l:H(d,a){J c=[];R(J i=0,K=d.K;i<K;i++){J b=a(d[i],i);G(b!=U)c[c.K]=b}I c.7d.1w([],c)}});J v=9B.9A.3y();D.14={5B:(v.1I(/.+(?:9y|9x|9w|9v)[\\/: ]([\\d.]+)/)||[])[1],2k:/75/.11(v),2G:/2G/.11(v),1f:/1f/.11(v)&&!/2G/.11(v),42:/42/.11(v)&&!/(9s|75)/.11(v)};J y=D.14.1f?"7o":"72";D.1l({71:!D.14.1f||S.70=="6Z",3X:{"R":"9n","9k":"1F","4i":y,72:y,7o:y,9h:"9f",9e:"9d",9b:"99"}});D.P({6W:H(a){I a.1d},97:H(a){I D.4S(a,"1d")},95:H(a){I D.3a(a,2,"2H")},91:H(a){I D.3a(a,2,"4l")},8Z:H(a){I D.4S(a,"2H")},8X:H(a){I D.4S(a,"4l")},8W:H(a){I D.5v(a.1d.1x,a)},8V:H(a){I D.5v(a.1x)},6Q:H(a){I D.Y(a,"8U")?a.8T||a.8S.S:D.2d(a.3t)}},H(c,d){D.17[c]=H(b){J a=D.2l(7,d);G(b&&1j b=="23")a=D.3g(b,a);I 7.2I(D.4r(a))}});D.P({6P:"3v",8Q:"6F",39:"6E",8P:"5q",8O:"7b"},H(c,b){D.17[c]=H(){J a=19;I 7.P(H(){R(J i=0,K=a.K;i<K;i++)D(a[i])[b](7)})}});D.P({8N:H(a){D.1K(7,a,"");G(7.16==1)7.5l(a)},8M:H(a){D.1F.1e(7,a)},8L:H(a){D.1F.21(7,a)},8K:H(a){D.1F[D.1F.3T(7,a)?"21":"1e"](7,a)},21:H(a){G(!a||D.1E(a,[7]).r.K){D("*",7).1e(7).P(H(){D.W.21(7);D.3b(7)});G(7.1d)7.1d.37(7)}},4E:H(){D(">*",7).21();1B(7.1x)7.37(7.1x)}},H(a,b){D.17[a]=H(){I 7.P(b,19)}});D.P(["6N","4b"],H(i,c){J b=c.3y();D.17[b]=H(a){I 7[0]==1b?D.14.2G&&S.1c["5t"+c]||D.14.2k&&1b["5s"+c]||S.70=="6Z"&&S.1C["5t"+c]||S.1c["5t"+c]:7[0]==S?29.2f(29.2f(S.1c["4y"+c],S.1C["4y"+c]),29.2f(S.1c["2i"+c],S.1C["2i"+c])):a==12?(7.K?D.1g(7[0],b):U):7.1g(b,a.1q==56?a:a+"2X")}});H 25(a,b){I a[0]&&3r(D.2a(a[0],b,M),10)||0}J C=D.14.2k&&3r(D.14.5B)<8H?"(?:[\\\\w*3m-]|\\\\\\\\.)":"(?:[\\\\w\\8F-\\8E*3m-]|\\\\\\\\.)",6L=2B 4v("^>\\\\s*("+C+"+)"),6J=2B 4v("^("+C+"+)(#)("+C+"+)"),6I=2B 4v("^([#.]?)("+C+"*)");D.1l({6H:{"":H(a,i,m){I m[2]=="*"||D.Y(a,m[2])},"#":H(a,i,m){I a.4G("2v")==m[2]},":":{8D:H(a,i,m){I i<m[3]-0},8C:H(a,i,m){I i>m[3]-0},3a:H(a,i,m){I m[3]-0==i},79:H(a,i,m){I m[3]-0==i},3o:H(a,i){I i==0},3S:H(a,i,m,r){I i==r.K-1},6D:H(a,i){I i%2==0},6C:H(a,i){I i%2},"3o-4u":H(a){I a.1d.3H("*")[0]==a},"3S-4u":H(a){I D.3a(a.1d.5T,1,"4l")==a},"8z-4u":H(a){I!D.3a(a.1d.5T,2,"4l")},6W:H(a){I a.1x},4E:H(a){I!a.1x},8y:H(a,i,m){I(a.6O||a.8x||D(a).1r()||"").1h(m[3])>=0},4j:H(a){I"1G"!=a.O&&D.1g(a,"18")!="2F"&&D.1g(a,"5g")!="1G"},1G:H(a){I"1G"==a.O||D.1g(a,"18")=="2F"||D.1g(a,"5g")=="1G"},8w:H(a){I!a.3R},3R:H(a){I a.3R},4J:H(a){I a.4J},2W:H(a){I a.2W||D.1K(a,"2W")},1r:H(a){I"1r"==a.O},5O:H(a){I"5O"==a.O},5L:H(a){I"5L"==a.O},5p:H(a){I"5p"==a.O},3Q:H(a){I"3Q"==a.O},5o:H(a){I"5o"==a.O},6A:H(a){I"6A"==a.O},6z:H(a){I"6z"==a.O},2s:H(a){I"2s"==a.O||D.Y(a,"2s")},4T:H(a){I/4T|2A|6y|2s/i.11(a.Y)},3T:H(a,i,m){I D.2q(m[3],a).K},8t:H(a){I/h\\d/i.11(a.Y)},8s:H(a){I D.3C(D.3O,H(b){I a==b.T}).K}}},6x:[/^(\\[) *@?([\\w-]+) *([!*$^~=]*) *(\'?"?)(.*?)\\4 *\\]/,/^(:)([\\w-]+)\\("?\'?(.*?(\\(.*?\\))?[^(]*?)"?\'?\\)/,2B 4v("^([:.#]*)("+C+"+)")],3g:H(a,c,b){J d,1t=[];1B(a&&a!=d){d=a;J f=D.1E(a,c,b);a=f.t.1o(/^\\s*,\\s*/,"");1t=b?c=f.r:D.2R(1t,f.r)}I 1t},2q:H(t,o){G(1j t!="23")I[t];G(o&&o.16!=1&&o.16!=9)I[];o=o||S;J d=[o],2o=[],3S,Y;1B(t&&3S!=t){J r=[];3S=t;t=D.3k(t);J l=Q,3j=6L,m=3j.2D(t);G(m){Y=m[1].2r();R(J i=0;d[i];i++)R(J c=d[i].1x;c;c=c.2H)G(c.16==1&&(Y=="*"||c.Y.2r()==Y))r.1p(c);d=r;t=t.1o(3j,"");G(t.1h(" ")==0)6M;l=M}N{3j=/^([>+~])\\s*(\\w*)/i;G((m=3j.2D(t))!=U){r=[];J k={};Y=m[2].2r();m=m[1];R(J j=0,3i=d.K;j<3i;j++){J n=m=="~"||m=="+"?d[j].2H:d[j].1x;R(;n;n=n.2H)G(n.16==1){J g=D.L(n);G(m=="~"&&k[g])1X;G(!Y||n.Y.2r()==Y){G(m=="~")k[g]=M;r.1p(n)}G(m=="+")1X}}d=r;t=D.3k(t.1o(3j,""));l=M}}G(t&&!l){G(!t.1h(",")){G(o==d[0])d.4s();2o=D.2R(2o,d);r=d=[o];t=" "+t.6v(1,t.K)}N{J h=6J;J m=h.2D(t);G(m){m=[0,m[2],m[3],m[1]]}N{h=6I;m=h.2D(t)}m[2]=m[2].1o(/\\\\/g,"");J f=d[d.K-1];G(m[1]=="#"&&f&&f.61&&!D.4n(f)){J p=f.61(m[2]);G((D.14.1f||D.14.2G)&&p&&1j p.2v=="23"&&p.2v!=m[2])p=D(\'[@2v="\'+m[2]+\'"]\',f)[0];d=r=p&&(!m[3]||D.Y(p,m[3]))?[p]:[]}N{R(J i=0;d[i];i++){J a=m[1]=="#"&&m[3]?m[3]:m[1]!=""||m[0]==""?"*":m[2];G(a=="*"&&d[i].Y.3y()=="49")a="3n";r=D.2R(r,d[i].3H(a))}G(m[1]==".")r=D.5m(r,m[2]);G(m[1]=="#"){J e=[];R(J i=0;r[i];i++)G(r[i].4G("2v")==m[2]){e=[r[i]];1X}r=e}d=r}t=t.1o(h,"")}}G(t){J b=D.1E(t,r);d=r=b.r;t=D.3k(b.t)}}G(t)d=[];G(d&&o==d[0])d.4s();2o=D.2R(2o,d);I 2o},5m:H(r,m,a){m=" "+m+" ";J c=[];R(J i=0;r[i];i++){J b=(" "+r[i].1F+" ").1h(m)>=0;G(!a&&b||a&&!b)c.1p(r[i])}I c},1E:H(t,r,h){J d;1B(t&&t!=d){d=t;J p=D.6x,m;R(J i=0;p[i];i++){m=p[i].2D(t);G(m){t=t.8r(m[0].K);m[2]=m[2].1o(/\\\\/g,"");1X}}G(!m)1X;G(m[1]==":"&&m[2]=="4Y")r=62.11(m[3])?D.1E(m[3],r,M).r:D(r).4Y(m[3]);N G(m[1]==".")r=D.5m(r,m[2],h);N G(m[1]=="["){J g=[],O=m[3];R(J i=0,3i=r.K;i<3i;i++){J a=r[i],z=a[D.3X[m[2]]||m[2]];G(z==U||/5Q|4d|2W/.11(m[2]))z=D.1K(a,m[2])||\'\';G((O==""&&!!z||O=="="&&z==m[5]||O=="!="&&z!=m[5]||O=="^="&&z&&!z.1h(m[5])||O=="$="&&z.6v(z.K-m[5].K)==m[5]||(O=="*="||O=="~=")&&z.1h(m[5])>=0)^h)g.1p(a)}r=g}N G(m[1]==":"&&m[2]=="3a-4u"){J e={},g=[],11=/(-?)(\\d*)n((?:\\+|-)?\\d*)/.2D(m[3]=="6D"&&"2n"||m[3]=="6C"&&"2n+1"||!/\\D/.11(m[3])&&"8q+"+m[3]||m[3]),3o=(11[1]+(11[2]||1))-0,d=11[3]-0;R(J i=0,3i=r.K;i<3i;i++){J j=r[i],1d=j.1d,2v=D.L(1d);G(!e[2v]){J c=1;R(J n=1d.1x;n;n=n.2H)G(n.16==1)n.4q=c++;e[2v]=M}J b=Q;G(3o==0){G(j.4q==d)b=M}N G((j.4q-d)%3o==0&&(j.4q-d)/3o>=0)b=M;G(b^h)g.1p(j)}r=g}N{J f=D.6H[m[1]];G(1j f=="49")f=f[m[2]];G(1j f=="23")f=6u("Q||H(a,i){I "+f+";}");r=D.3C(r,H(a,i){I f(a,i,m,r)},h)}}I{r:r,t:t}},4S:H(b,c){J a=[],1t=b[c];1B(1t&&1t!=S){G(1t.16==1)a.1p(1t);1t=1t[c]}I a},3a:H(a,e,c,b){e=e||1;J d=0;R(;a;a=a[c])G(a.16==1&&++d==e)1X;I a},5v:H(n,a){J r=[];R(;n;n=n.2H){G(n.16==1&&n!=a)r.1p(n)}I r}});D.W={1e:H(f,i,g,e){G(f.16==3||f.16==8)I;G(D.14.1f&&f.4I)f=1b;G(!g.24)g.24=7.24++;G(e!=12){J h=g;g=7.3M(h,H(){I h.1w(7,19)});g.L=e}J j=D.L(f,"3w")||D.L(f,"3w",{}),1H=D.L(f,"1H")||D.L(f,"1H",H(){G(1j D!="12"&&!D.W.5k)I D.W.1H.1w(19.3L.T,19)});1H.T=f;D.P(i.1R(/\\s+/),H(c,b){J a=b.1R(".");b=a[0];g.O=a[1];J d=j[b];G(!d){d=j[b]={};G(!D.W.2t[b]||D.W.2t[b].4p.1k(f)===Q){G(f.3K)f.3K(b,1H,Q);N G(f.6t)f.6t("4o"+b,1H)}}d[g.24]=g;D.W.26[b]=M});f=U},24:1,26:{},21:H(e,h,f){G(e.16==3||e.16==8)I;J i=D.L(e,"3w"),1L,5i;G(i){G(h==12||(1j h=="23"&&h.8p(0)=="."))R(J g 1n i)7.21(e,g+(h||""));N{G(h.O){f=h.2y;h=h.O}D.P(h.1R(/\\s+/),H(b,a){J c=a.1R(".");a=c[0];G(i[a]){G(f)2U i[a][f.24];N R(f 1n i[a])G(!c[1]||i[a][f].O==c[1])2U i[a][f];R(1L 1n i[a])1X;G(!1L){G(!D.W.2t[a]||D.W.2t[a].4A.1k(e)===Q){G(e.6p)e.6p(a,D.L(e,"1H"),Q);N G(e.6n)e.6n("4o"+a,D.L(e,"1H"))}1L=U;2U i[a]}}})}R(1L 1n i)1X;G(!1L){J d=D.L(e,"1H");G(d)d.T=U;D.3b(e,"3w");D.3b(e,"1H")}}},1P:H(h,c,f,g,i){c=D.2d(c);G(h.1h("!")>=0){h=h.3s(0,-1);J a=M}G(!f){G(7.26[h])D("*").1e([1b,S]).1P(h,c)}N{G(f.16==3||f.16==8)I 12;J b,1L,17=D.1D(f[h]||U),W=!c[0]||!c[0].32;G(W){c.6h({O:h,2J:f,32:H(){},3J:H(){},4C:1z()});c[0][E]=M}c[0].O=h;G(a)c[0].6m=M;J d=D.L(f,"1H");G(d)b=d.1w(f,c);G((!17||(D.Y(f,\'a\')&&h=="4V"))&&f["4o"+h]&&f["4o"+h].1w(f,c)===Q)b=Q;G(W)c.4s();G(i&&D.1D(i)){1L=i.1w(f,b==U?c:c.7d(b));G(1L!==12)b=1L}G(17&&g!==Q&&b!==Q&&!(D.Y(f,\'a\')&&h=="4V")){7.5k=M;1U{f[h]()}1V(e){}}7.5k=Q}I b},1H:H(b){J a,1L,38,5f,4m;b=19[0]=D.W.6l(b||1b.W);38=b.O.1R(".");b.O=38[0];38=38[1];5f=!38&&!b.6m;4m=(D.L(7,"3w")||{})[b.O];R(J j 1n 4m){J c=4m[j];G(5f||c.O==38){b.2y=c;b.L=c.L;1L=c.1w(7,19);G(a!==Q)a=1L;G(1L===Q){b.32();b.3J()}}}I a},6l:H(b){G(b[E]==M)I b;J d=b;b={8o:d};J c="8n 8m 8l 8k 2s 8j 47 5d 6j 5E 8i L 8h 8g 4K 2y 5a 59 8e 8b 58 6f 8a 88 4k 87 86 84 6d 2J 4C 6c O 82 81 35".1R(" ");R(J i=c.K;i;i--)b[c[i]]=d[c[i]];b[E]=M;b.32=H(){G(d.32)d.32();d.80=Q};b.3J=H(){G(d.3J)d.3J();d.7Z=M};b.4C=b.4C||1z();G(!b.2J)b.2J=b.6d||S;G(b.2J.16==3)b.2J=b.2J.1d;G(!b.4k&&b.4K)b.4k=b.4K==b.2J?b.6c:b.4K;G(b.58==U&&b.5d!=U){J a=S.1C,1c=S.1c;b.58=b.5d+(a&&a.2e||1c&&1c.2e||0)-(a.6b||0);b.6f=b.6j+(a&&a.2c||1c&&1c.2c||0)-(a.6a||0)}G(!b.35&&((b.47||b.47===0)?b.47:b.5a))b.35=b.47||b.5a;G(!b.59&&b.5E)b.59=b.5E;G(!b.35&&b.2s)b.35=(b.2s&1?1:(b.2s&2?3:(b.2s&4?2:0)));I b},3M:H(a,b){b.24=a.24=a.24||b.24||7.24++;I b},2t:{27:{4p:H(){55();I},4A:H(){I}},3D:{4p:H(){G(D.14.1f)I Q;D(7).2O("53",D.W.2t.3D.2y);I M},4A:H(){G(D.14.1f)I Q;D(7).4e("53",D.W.2t.3D.2y);I M},2y:H(a){G(F(a,7))I M;a.O="3D";I D.W.1H.1w(7,19)}},3N:{4p:H(){G(D.14.1f)I Q;D(7).2O("51",D.W.2t.3N.2y);I M},4A:H(){G(D.14.1f)I Q;D(7).4e("51",D.W.2t.3N.2y);I M},2y:H(a){G(F(a,7))I M;a.O="3N";I D.W.1H.1w(7,19)}}}};D.17.1l({2O:H(c,a,b){I c=="4X"?7.2V(c,a,b):7.P(H(){D.W.1e(7,c,b||a,b&&a)})},2V:H(d,b,c){J e=D.W.3M(c||b,H(a){D(7).4e(a,e);I(c||b).1w(7,19)});I 7.P(H(){D.W.1e(7,d,e,c&&b)})},4e:H(a,b){I 7.P(H(){D.W.21(7,a,b)})},1P:H(c,a,b){I 7.P(H(){D.W.1P(c,a,7,M,b)})},5C:H(c,a,b){I 7[0]&&D.W.1P(c,a,7[0],Q,b)},2m:H(b){J c=19,i=1;1B(i<c.K)D.W.3M(b,c[i++]);I 7.4V(D.W.3M(b,H(a){7.4Z=(7.4Z||0)%i;a.32();I c[7.4Z++].1w(7,19)||Q}))},7X:H(a,b){I 7.2O(\'3D\',a).2O(\'3N\',b)},27:H(a){55();G(D.2Q)a.1k(S,D);N D.3A.1p(H(){I a.1k(7,D)});I 7}});D.1l({2Q:Q,3A:[],27:H(){G(!D.2Q){D.2Q=M;G(D.3A){D.P(D.3A,H(){7.1k(S)});D.3A=U}D(S).5C("27")}}});J x=Q;H 55(){G(x)I;x=M;G(S.3K&&!D.14.2G)S.3K("69",D.27,Q);G(D.14.1f&&1b==1S)(H(){G(D.2Q)I;1U{S.1C.7V("1A")}1V(3e){3B(19.3L,0);I}D.27()})();G(D.14.2G)S.3K("69",H(){G(D.2Q)I;R(J i=0;i<S.4W.K;i++)G(S.4W[i].3R){3B(19.3L,0);I}D.27()},Q);G(D.14.2k){J a;(H(){G(D.2Q)I;G(S.3f!="68"&&S.3f!="1J"){3B(19.3L,0);I}G(a===12)a=D("V, 7A[7U=7S]").K;G(S.4W.K!=a){3B(19.3L,0);I}D.27()})()}D.W.1e(1b,"43",D.27)}D.P(("7R,7Q,43,85,4y,4X,4V,7P,"+"7O,7N,89,53,51,7M,2A,"+"5o,7L,7K,8d,3e").1R(","),H(i,b){D.17[b]=H(a){I a?7.2O(b,a):7.1P(b)}});J F=H(a,c){J b=a.4k;1B(b&&b!=c)1U{b=b.1d}1V(3e){b=c}I b==c};D(1b).2O("4X",H(){D("*").1e(S).4e()});D.17.1l({67:D.17.43,43:H(g,d,c){G(1j g!=\'23\')I 7.67(g);J e=g.1h(" ");G(e>=0){J i=g.3s(e,g.K);g=g.3s(0,e)}c=c||H(){};J f="2P";G(d)G(D.1D(d)){c=d;d=U}N{d=D.3n(d);f="6g"}J h=7;D.3Y({1a:g,O:f,1O:"2K",L:d,1J:H(a,b){G(b=="1W"||b=="7J")h.2K(i?D("<1v/>").3v(a.4U.1o(/<1m(.|\\s)*?\\/1m>/g,"")).2q(i):a.4U);h.P(c,[a.4U,b,a])}});I 7},aL:H(){I D.3n(7.7I())},7I:H(){I 7.2l(H(){I D.Y(7,"3V")?D.2d(7.aH):7}).1E(H(){I 7.34&&!7.3R&&(7.4J||/2A|6y/i.11(7.Y)||/1r|1G|3Q/i.11(7.O))}).2l(H(i,c){J b=D(7).6e();I b==U?U:b.1q==2p?D.2l(b,H(a,i){I{34:c.34,2x:a}}):{34:c.34,2x:b}}).3p()}});D.P("7H,7G,7F,7D,7C,7B".1R(","),H(i,o){D.17[o]=H(f){I 7.2O(o,f)}});J B=1z();D.1l({3p:H(d,b,a,c){G(D.1D(b)){a=b;b=U}I D.3Y({O:"2P",1a:d,L:b,1W:a,1O:c})},aE:H(b,a){I D.3p(b,U,a,"1m")},aD:H(c,b,a){I D.3p(c,b,a,"3z")},aC:H(d,b,a,c){G(D.1D(b)){a=b;b={}}I D.3Y({O:"6g",1a:d,L:b,1W:a,1O:c})},aA:H(a){D.1l(D.60,a)},60:{1a:5Z.5Q,26:M,O:"2P",2T:0,7z:"4R/x-ax-3V-aw",7x:M,31:M,L:U,5Y:U,3Q:U,4Q:{2N:"4R/2N, 1r/2N",2K:"1r/2K",1m:"1r/4t, 4R/4t",3z:"4R/3z, 1r/4t",1r:"1r/as",4w:"*/*"}},4z:{},3Y:H(s){s=D.1l(M,s,D.1l(M,{},D.60,s));J g,2Z=/=\\?(&|$)/g,1u,L,O=s.O.2r();G(s.L&&s.7x&&1j s.L!="23")s.L=D.3n(s.L);G(s.1O=="4P"){G(O=="2P"){G(!s.1a.1I(2Z))s.1a+=(s.1a.1I(/\\?/)?"&":"?")+(s.4P||"7u")+"=?"}N G(!s.L||!s.L.1I(2Z))s.L=(s.L?s.L+"&":"")+(s.4P||"7u")+"=?";s.1O="3z"}G(s.1O=="3z"&&(s.L&&s.L.1I(2Z)||s.1a.1I(2Z))){g="4P"+B++;G(s.L)s.L=(s.L+"").1o(2Z,"="+g+"$1");s.1a=s.1a.1o(2Z,"="+g+"$1");s.1O="1m";1b[g]=H(a){L=a;1W();1J();1b[g]=12;1U{2U 1b[g]}1V(e){}G(i)i.37(h)}}G(s.1O=="1m"&&s.1Y==U)s.1Y=Q;G(s.1Y===Q&&O=="2P"){J j=1z();J k=s.1a.1o(/(\\?|&)3m=.*?(&|$)/,"$ap="+j+"$2");s.1a=k+((k==s.1a)?(s.1a.1I(/\\?/)?"&":"?")+"3m="+j:"")}G(s.L&&O=="2P"){s.1a+=(s.1a.1I(/\\?/)?"&":"?")+s.L;s.L=U}G(s.26&&!D.4O++)D.W.1P("7H");J n=/^(?:\\w+:)?\\/\\/([^\\/?#]+)/;G(s.1O=="1m"&&O=="2P"&&n.11(s.1a)&&n.2D(s.1a)[1]!=5Z.al){J i=S.3H("6w")[0];J h=S.3h("1m");h.4d=s.1a;G(s.7t)h.aj=s.7t;G(!g){J l=Q;h.ah=h.ag=H(){G(!l&&(!7.3f||7.3f=="68"||7.3f=="1J")){l=M;1W();1J();i.37(h)}}}i.3U(h);I 12}J m=Q;J c=1b.7s?2B 7s("ae.ac"):2B 7r();G(s.5Y)c.6R(O,s.1a,s.31,s.5Y,s.3Q);N c.6R(O,s.1a,s.31);1U{G(s.L)c.4B("ab-aa",s.7z);G(s.5S)c.4B("a9-5R-a8",D.4z[s.1a]||"a7, a6 a5 a4 5N:5N:5N a2");c.4B("X-9Z-9Y","7r");c.4B("9W",s.1O&&s.4Q[s.1O]?s.4Q[s.1O]+", */*":s.4Q.4w)}1V(e){}G(s.7m&&s.7m(c,s)===Q){s.26&&D.4O--;c.7l();I Q}G(s.26)D.W.1P("7B",[c,s]);J d=H(a){G(!m&&c&&(c.3f==4||a=="2T")){m=M;G(f){7k(f);f=U}1u=a=="2T"&&"2T"||!D.7j(c)&&"3e"||s.5S&&D.7h(c,s.1a)&&"7J"||"1W";G(1u=="1W"){1U{L=D.6X(c,s.1O,s.9S)}1V(e){1u="5J"}}G(1u=="1W"){J b;1U{b=c.5I("7g-5R")}1V(e){}G(s.5S&&b)D.4z[s.1a]=b;G(!g)1W()}N D.5H(s,c,1u);1J();G(s.31)c=U}};G(s.31){J f=4I(d,13);G(s.2T>0)3B(H(){G(c){c.7l();G(!m)d("2T")}},s.2T)}1U{c.9P(s.L)}1V(e){D.5H(s,c,U,e)}G(!s.31)d();H 1W(){G(s.1W)s.1W(L,1u);G(s.26)D.W.1P("7C",[c,s])}H 1J(){G(s.1J)s.1J(c,1u);G(s.26)D.W.1P("7F",[c,s]);G(s.26&&!--D.4O)D.W.1P("7G")}I c},5H:H(s,a,b,e){G(s.3e)s.3e(a,b,e);G(s.26)D.W.1P("7D",[a,s,e])},4O:0,7j:H(a){1U{I!a.1u&&5Z.9O=="5p:"||(a.1u>=7e&&a.1u<9N)||a.1u==7c||a.1u==9K||D.14.2k&&a.1u==12}1V(e){}I Q},7h:H(a,c){1U{J b=a.5I("7g-5R");I a.1u==7c||b==D.4z[c]||D.14.2k&&a.1u==12}1V(e){}I Q},6X:H(a,c,b){J d=a.5I("9J-O"),2N=c=="2N"||!c&&d&&d.1h("2N")>=0,L=2N?a.9I:a.4U;G(2N&&L.1C.2j=="5J")7p"5J";G(b)L=b(L,c);G(c=="1m")D.5u(L);G(c=="3z")L=6u("("+L+")");I L},3n:H(a){J s=[];G(a.1q==2p||a.5w)D.P(a,H(){s.1p(3u(7.34)+"="+3u(7.2x))});N R(J j 1n a)G(a[j]&&a[j].1q==2p)D.P(a[j],H(){s.1p(3u(j)+"="+3u(7))});N s.1p(3u(j)+"="+3u(D.1D(a[j])?a[j]():a[j]));I s.6s("&").1o(/%20/g,"+")}});D.17.1l({1N:H(c,b){I c?7.2g({1Z:"1N",2h:"1N",1y:"1N"},c,b):7.1E(":1G").P(H(){7.V.18=7.5D||"";G(D.1g(7,"18")=="2F"){J a=D("<"+7.2j+" />").6P("1c");7.V.18=a.1g("18");G(7.V.18=="2F")7.V.18="3I";a.21()}}).3l()},1M:H(b,a){I b?7.2g({1Z:"1M",2h:"1M",1y:"1M"},b,a):7.1E(":4j").P(H(){7.5D=7.5D||D.1g(7,"18");7.V.18="2F"}).3l()},78:D.17.2m,2m:H(a,b){I D.1D(a)&&D.1D(b)?7.78.1w(7,19):a?7.2g({1Z:"2m",2h:"2m",1y:"2m"},a,b):7.P(H(){D(7)[D(7).3F(":1G")?"1N":"1M"]()})},9G:H(b,a){I 7.2g({1Z:"1N"},b,a)},9F:H(b,a){I 7.2g({1Z:"1M"},b,a)},9E:H(b,a){I 7.2g({1Z:"2m"},b,a)},9D:H(b,a){I 7.2g({1y:"1N"},b,a)},9M:H(b,a){I 7.2g({1y:"1M"},b,a)},9C:H(c,a,b){I 7.2g({1y:a},c,b)},2g:H(k,j,i,g){J h=D.77(j,i,g);I 7[h.36===Q?"P":"36"](H(){G(7.16!=1)I Q;J f=D.1l({},h),p,1G=D(7).3F(":1G"),46=7;R(p 1n k){G(k[p]=="1M"&&1G||k[p]=="1N"&&!1G)I f.1J.1k(7);G(p=="1Z"||p=="2h"){f.18=D.1g(7,"18");f.33=7.V.33}}G(f.33!=U)7.V.33="1G";f.45=D.1l({},k);D.P(k,H(c,a){J e=2B D.28(46,f,c);G(/2m|1N|1M/.11(a))e[a=="2m"?1G?"1N":"1M":a](k);N{J b=a.6r().1I(/^([+-]=)?([\\d+-.]+)(.*)$/),2b=e.1t(M)||0;G(b){J d=3d(b[2]),2M=b[3]||"2X";G(2M!="2X"){46.V[c]=(d||1)+2M;2b=((d||1)/e.1t(M))*2b;46.V[c]=2b+2M}G(b[1])d=((b[1]=="-="?-1:1)*d)+2b;e.3G(2b,d,2M)}N e.3G(2b,a,"")}});I M})},36:H(a,b){G(D.1D(a)||(a&&a.1q==2p)){b=a;a="28"}G(!a||(1j a=="23"&&!b))I A(7[0],a);I 7.P(H(){G(b.1q==2p)A(7,a,b);N{A(7,a).1p(b);G(A(7,a).K==1)b.1k(7)}})},9X:H(b,c){J a=D.3O;G(b)7.36([]);7.P(H(){R(J i=a.K-1;i>=0;i--)G(a[i].T==7){G(c)a[i](M);a.7n(i,1)}});G(!c)7.5A();I 7}});J A=H(b,c,a){G(b){c=c||"28";J q=D.L(b,c+"36");G(!q||a)q=D.L(b,c+"36",D.2d(a))}I q};D.17.5A=H(a){a=a||"28";I 7.P(H(){J q=A(7,a);q.4s();G(q.K)q[0].1k(7)})};D.1l({77:H(b,a,c){J d=b&&b.1q==a0?b:{1J:c||!c&&a||D.1D(b)&&b,2u:b,41:c&&a||a&&a.1q!=9t&&a};d.2u=(d.2u&&d.2u.1q==4L?d.2u:D.28.5K[d.2u])||D.28.5K.74;d.5M=d.1J;d.1J=H(){G(d.36!==Q)D(7).5A();G(D.1D(d.5M))d.5M.1k(7)};I d},41:{73:H(p,n,b,a){I b+a*p},5P:H(p,n,b,a){I((-29.9r(p*29.9q)/2)+0.5)*a+b}},3O:[],48:U,28:H(b,c,a){7.15=c;7.T=b;7.1i=a;G(!c.3Z)c.3Z={}}});D.28.44={4D:H(){G(7.15.2Y)7.15.2Y.1k(7.T,7.1z,7);(D.28.2Y[7.1i]||D.28.2Y.4w)(7);G(7.1i=="1Z"||7.1i=="2h")7.T.V.18="3I"},1t:H(a){G(7.T[7.1i]!=U&&7.T.V[7.1i]==U)I 7.T[7.1i];J r=3d(D.1g(7.T,7.1i,a));I r&&r>-9p?r:3d(D.2a(7.T,7.1i))||0},3G:H(c,b,d){7.5V=1z();7.2b=c;7.3l=b;7.2M=d||7.2M||"2X";7.1z=7.2b;7.2S=7.4N=0;7.4D();J e=7;H t(a){I e.2Y(a)}t.T=7.T;D.3O.1p(t);G(D.48==U){D.48=4I(H(){J a=D.3O;R(J i=0;i<a.K;i++)G(!a[i]())a.7n(i--,1);G(!a.K){7k(D.48);D.48=U}},13)}},1N:H(){7.15.3Z[7.1i]=D.1K(7.T.V,7.1i);7.15.1N=M;7.3G(0,7.1t());G(7.1i=="2h"||7.1i=="1Z")7.T.V[7.1i]="9m";D(7.T).1N()},1M:H(){7.15.3Z[7.1i]=D.1K(7.T.V,7.1i);7.15.1M=M;7.3G(7.1t(),0)},2Y:H(a){J t=1z();G(a||t>7.15.2u+7.5V){7.1z=7.3l;7.2S=7.4N=1;7.4D();7.15.45[7.1i]=M;J b=M;R(J i 1n 7.15.45)G(7.15.45[i]!==M)b=Q;G(b){G(7.15.18!=U){7.T.V.33=7.15.33;7.T.V.18=7.15.18;G(D.1g(7.T,"18")=="2F")7.T.V.18="3I"}G(7.15.1M)7.T.V.18="2F";G(7.15.1M||7.15.1N)R(J p 1n 7.15.45)D.1K(7.T.V,p,7.15.3Z[p])}G(b)7.15.1J.1k(7.T);I Q}N{J n=t-7.5V;7.4N=n/7.15.2u;7.2S=D.41[7.15.41||(D.41.5P?"5P":"73")](7.4N,n,0,1,7.15.2u);7.1z=7.2b+((7.3l-7.2b)*7.2S);7.4D()}I M}};D.1l(D.28,{5K:{9l:9j,9i:7e,74:9g},2Y:{2e:H(a){a.T.2e=a.1z},2c:H(a){a.T.2c=a.1z},1y:H(a){D.1K(a.T.V,"1y",a.1z)},4w:H(a){a.T.V[a.1i]=a.1z+a.2M}}});D.17.2i=H(){J b=0,1S=0,T=7[0],3q;G(T)ao(D.14){J d=T.1d,4a=T,1s=T.1s,1Q=T.2z,5U=2k&&3r(5B)<9c&&!/9a/i.11(v),1g=D.2a,3c=1g(T,"30")=="3c";G(T.7y){J c=T.7y();1e(c.1A+29.2f(1Q.1C.2e,1Q.1c.2e),c.1S+29.2f(1Q.1C.2c,1Q.1c.2c));1e(-1Q.1C.6b,-1Q.1C.6a)}N{1e(T.5X,T.5W);1B(1s){1e(1s.5X,1s.5W);G(42&&!/^t(98|d|h)$/i.11(1s.2j)||2k&&!5U)2C(1s);G(!3c&&1g(1s,"30")=="3c")3c=M;4a=/^1c$/i.11(1s.2j)?4a:1s;1s=1s.1s}1B(d&&d.2j&&!/^1c|2K$/i.11(d.2j)){G(!/^96|1T.*$/i.11(1g(d,"18")))1e(-d.2e,-d.2c);G(42&&1g(d,"33")!="4j")2C(d);d=d.1d}G((5U&&(3c||1g(4a,"30")=="5x"))||(42&&1g(4a,"30")!="5x"))1e(-1Q.1c.5X,-1Q.1c.5W);G(3c)1e(29.2f(1Q.1C.2e,1Q.1c.2e),29.2f(1Q.1C.2c,1Q.1c.2c))}3q={1S:1S,1A:b}}H 2C(a){1e(D.2a(a,"6V",M),D.2a(a,"6U",M))}H 1e(l,t){b+=3r(l,10)||0;1S+=3r(t,10)||0}I 3q};D.17.1l({30:H(){J a=0,1S=0,3q;G(7[0]){J b=7.1s(),2i=7.2i(),4c=/^1c|2K$/i.11(b[0].2j)?{1S:0,1A:0}:b.2i();2i.1S-=25(7,\'94\');2i.1A-=25(7,\'aF\');4c.1S+=25(b,\'6U\');4c.1A+=25(b,\'6V\');3q={1S:2i.1S-4c.1S,1A:2i.1A-4c.1A}}I 3q},1s:H(){J a=7[0].1s;1B(a&&(!/^1c|2K$/i.11(a.2j)&&D.1g(a,\'30\')==\'93\'))a=a.1s;I D(a)}});D.P([\'5e\',\'5G\'],H(i,b){J c=\'4y\'+b;D.17[c]=H(a){G(!7[0])I;I a!=12?7.P(H(){7==1b||7==S?1b.92(!i?a:D(1b).2e(),i?a:D(1b).2c()):7[c]=a}):7[0]==1b||7[0]==S?46[i?\'aI\':\'aJ\']||D.71&&S.1C[c]||S.1c[c]:7[0][c]}});D.P(["6N","4b"],H(i,b){J c=i?"5e":"5G",4f=i?"6k":"6i";D.17["5s"+b]=H(){I 7[b.3y()]()+25(7,"57"+c)+25(7,"57"+4f)};D.17["90"+b]=H(a){I 7["5s"+b]()+25(7,"2C"+c+"4b")+25(7,"2C"+4f+"4b")+(a?25(7,"6S"+c)+25(7,"6S"+4f):0)}})})();',62,669,'|||||||this|||||||||||||||||||||||||||||||||||if|function|return|var|length|data|true|else|type|each|false|for|document|elem|null|style|event||nodeName|||test|undefined||browser|options|nodeType|fn|display|arguments|url|window|body|parentNode|add|msie|css|indexOf|prop|typeof|call|extend|script|in|replace|push|constructor|text|offsetParent|cur|status|div|apply|firstChild|opacity|now|left|while|documentElement|isFunction|filter|className|hidden|handle|match|complete|attr|ret|hide|show|dataType|trigger|doc|split|top|table|try|catch|success|break|cache|height||remove|tbody|string|guid|num|global|ready|fx|Math|curCSS|start|scrollTop|makeArray|scrollLeft|max|animate|width|offset|tagName|safari|map|toggle||done|Array|find|toUpperCase|button|special|duration|id|copy|value|handler|ownerDocument|select|new|border|exec|stack|none|opera|nextSibling|pushStack|target|html|inArray|unit|xml|bind|GET|isReady|merge|pos|timeout|delete|one|selected|px|step|jsre|position|async|preventDefault|overflow|name|which|queue|removeChild|namespace|insertBefore|nth|removeData|fixed|parseFloat|error|readyState|multiFilter|createElement|rl|re|trim|end|_|param|first|get|results|parseInt|slice|childNodes|encodeURIComponent|append|events|elems|toLowerCase|json|readyList|setTimeout|grep|mouseenter|color|is|custom|getElementsByTagName|block|stopPropagation|addEventListener|callee|proxy|mouseleave|timers|defaultView|password|disabled|last|has|appendChild|form|domManip|props|ajax|orig|set|easing|mozilla|load|prototype|curAnim|self|charCode|timerId|object|offsetChild|Width|parentOffset|src|unbind|br|currentStyle|clean|float|visible|relatedTarget|previousSibling|handlers|isXMLDoc|on|setup|nodeIndex|unique|shift|javascript|child|RegExp|_default|deep|scroll|lastModified|teardown|setRequestHeader|timeStamp|update|empty|tr|getAttribute|innerHTML|setInterval|checked|fromElement|Number|jQuery|state|active|jsonp|accepts|application|dir|input|responseText|click|styleSheets|unload|not|lastToggle|outline|mouseout|getPropertyValue|mouseover|getComputedStyle|bindReady|String|padding|pageX|metaKey|keyCode|getWH|andSelf|clientX|Left|all|visibility|container|index|init|triggered|removeAttribute|classFilter|prevObject|submit|file|after|windowData|inner|client|globalEval|sibling|jquery|absolute|clone|wrapAll|dequeue|version|triggerHandler|oldblock|ctrlKey|createTextNode|Top|handleError|getResponseHeader|parsererror|speeds|checkbox|old|00|radio|swing|href|Modified|ifModified|lastChild|safari2|startTime|offsetTop|offsetLeft|username|location|ajaxSettings|getElementById|isSimple|values|selectedIndex|runtimeStyle|rsLeft|_load|loaded|DOMContentLoaded|clientTop|clientLeft|toElement|srcElement|val|pageY|POST|unshift|Bottom|clientY|Right|fix|exclusive|detachEvent|cloneNode|removeEventListener|swap|toString|join|attachEvent|eval|substr|head|parse|textarea|reset|image|zoom|odd|even|before|prepend|exclude|expr|quickClass|quickID|uuid|quickChild|continue|Height|textContent|appendTo|contents|open|margin|evalScript|borderTopWidth|borderLeftWidth|parent|httpData|setArray|CSS1Compat|compatMode|boxModel|cssFloat|linear|def|webkit|nodeValue|speed|_toggle|eq|100|replaceWith|304|concat|200|alpha|Last|httpNotModified|getAttributeNode|httpSuccess|clearInterval|abort|beforeSend|splice|styleFloat|throw|colgroup|XMLHttpRequest|ActiveXObject|scriptCharset|callback|fieldset|multiple|processData|getBoundingClientRect|contentType|link|ajaxSend|ajaxSuccess|ajaxError|col|ajaxComplete|ajaxStop|ajaxStart|serializeArray|notmodified|keypress|keydown|change|mouseup|mousedown|dblclick|focus|blur|stylesheet|hasClass|rel|doScroll|black|hover|solid|cancelBubble|returnValue|wheelDelta|view|round|shiftKey|resize|screenY|screenX|relatedNode|mousemove|prevValue|originalTarget|offsetHeight|keyup|newValue|offsetWidth|eventPhase|detail|currentTarget|cancelable|bubbles|attrName|attrChange|altKey|originalEvent|charAt|0n|substring|animated|header|noConflict|line|enabled|innerText|contains|only|weight|font|gt|lt|uFFFF|u0128|size|417|Boolean|Date|toggleClass|removeClass|addClass|removeAttr|replaceAll|insertAfter|prependTo|wrap|contentWindow|contentDocument|iframe|children|siblings|prevAll|wrapInner|nextAll|outer|prev|scrollTo|static|marginTop|next|inline|parents|able|cellSpacing|adobeair|cellspacing|522|maxLength|maxlength|readOnly|400|readonly|fast|600|class|slow|1px|htmlFor|reverse|10000|PI|cos|compatible|Function|setData|ie|ra|it|rv|getData|userAgent|navigator|fadeTo|fadeIn|slideToggle|slideUp|slideDown|ig|responseXML|content|1223|NaN|fadeOut|300|protocol|send|setAttribute|option|dataFilter|cssText|changed|be|Accept|stop|With|Requested|Object|can|GMT|property|1970|Jan|01|Thu|Since|If|Type|Content|XMLHTTP|th|Microsoft|td|onreadystatechange|onload|cap|charset|colg|host|tfoot|specified|with|1_|thead|leg|plain|attributes|opt|embed|urlencoded|www|area|hr|ajaxSetup|meta|post|getJSON|getScript|marginLeft|img|elements|pageYOffset|pageXOffset|abbr|serialize|pixelLeft'.split('|'),0,{}))
\ No newline at end of file
Property changes on: platform/inc/jquery/jquery.pack.js
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.1.2.1
\ No newline at end of property
+1.1.2.2
\ No newline at end of property
Index: platform/inc/jquery/thickbox/thickbox.js
===================================================================
--- platform/inc/jquery/thickbox/thickbox.js (revision 11426)
+++ platform/inc/jquery/thickbox/thickbox.js (revision 11427)
@@ -1,409 +1,466 @@
/*
* Thickbox 3.1 - One Box To Rule Them All.
* By Cody Lindley (http://www.codylindley.com)
* Copyright (c) 2007 cody lindley
* Licensed under the MIT License: http://www.opensource.org/licenses/mit-license.php
*/
// on page load call TB.init
$(document).ready(
function() {
// pass where to apply thickbox
TB.init('a.thickbox, area.thickbox, input.thickbox');
// preload image
TB.imgLoader = new Image();
TB.imgLoader.src = TB.pathToImage;
}
);
function TB () {
this.imgLoader = null;
this.pathToImage = 'images/loadingAnimation.gif';
this.Width = null;
this.Height = null;
}
//add thickbox to href & area elements that have a class of .thickbox
TB.init = function (domChunk) {
$(domChunk).click(
function() {
var t = this.title || this.name || null;
var a = this.href || this.alt;
var g = this.rel || false;
TB.show( {caption: t, url: a, imageGroup: g} );
this.blur();
return false;
}
);
}
// function called when the user clicks on a thickbox link
TB.show = function (params) {
-// caption, url, imageGroup, showCallback, postParams
+// caption, url, imageGroup, onDataReceived, onAfterShow, postParams
try {
if (typeof document.body.style.maxHeight === 'undefined') {
// if IE 6
$('body', 'html').css( {height: '100%', width: '100%'} );
$('html').css('overflow', 'hidden');
if (document.getElementById('TB_HideSelect') === null) {
// iframe to hide select elements in ie6
$('body').append("<iframe id='TB_HideSelect'></iframe><div id='TB_overlay'></div><div id='TB_window'></div>");
$('#TB_overlay').click(TB.remove);
}
} else {
// all others
if (document.getElementById('TB_overlay') === null) {
$('body').append("<div id='TB_overlay'></div><div id='TB_window'></div>");
$('#TB_overlay').click(TB.remove);
}
}
if (TB.detectMacXFF()) {
$('#TB_overlay').addClass('TB_overlayMacFFBGHack'); // use png overlay so hide flash
} else {
$('#TB_overlay').addClass('TB_overlayBG'); // use background and opacity
}
if (params.caption === null) {
params.caption = '';
}
$('body').append("<div id='TB_load'><img src='" + TB.imgLoader.src + "' /></div>"); // add loader to the page
$('#TB_load').show(); // show loader
var baseURL;
if (params.url.indexOf('?') !== -1) {
- // ff there is a query string involved
+ // ff there is a query string involved
baseURL = params.url.substr(0, params.url.indexOf('?'));
} else {
baseURL = params.url;
}
var urlString = /\.jpg$|\.jpeg$|\.png$|\.gif$|\.bmp$/;
var url_params = {};
if ( baseURL.toLowerCase().match(urlString) ) {
TB.processImages(params, urlString);
} else {
var queryString = params.url.replace(/^[^\?]+\??/,'');
url_params = TB.parseQuery(queryString);
TB.processDialog(params, url_params);
}
if (url_params['modal'] != 'true') {
$(document).bind(
'keyup',
function(e){
if (e.which == 27){
// close
TB.remove();
}
}
);
}
} catch(e) {
//nothing here
}
}
// helper functions below
TB.processImages = function (params, urlString) {
// code to show images
var TB_PrevCaption = '';
var TB_PrevURL = '';
var TB_PrevHTML = '';
var TB_NextCaption = '';
var TB_NextURL = '';
var TB_NextHTML = '';
var TB_imageCount = '';
var TB_FoundURL = false;
if (params.imageGroup) {
// scan images in group to create Prev/Next links
- var TB_TempArray = $('a[@rel=' + params.imageGroup + ']').get();
+ var TB_TempArray = $('a[rel=' + params.imageGroup + ']').get();
for (var TB_Counter = 0; ((TB_Counter < TB_TempArray.length) && (TB_NextHTML === '')); TB_Counter++) {
var urlTypeTemp = TB_TempArray[TB_Counter].href.toLowerCase().match(urlString);
if (!(TB_TempArray[TB_Counter].href == params.url)) {
if (TB_FoundURL) {
TB_NextCaption = TB_TempArray[TB_Counter].title;
TB_NextURL = TB_TempArray[TB_Counter].href;
TB_NextHTML = "<span id='TB_next'>&nbsp;&nbsp;<a href='#'>Next &gt;</a></span>";
} else {
TB_PrevCaption = TB_TempArray[TB_Counter].title;
TB_PrevURL = TB_TempArray[TB_Counter].href;
TB_PrevHTML = "<span id='TB_prev'>&nbsp;&nbsp;<a href='#'>&lt; Prev</a></span>";
}
} else {
TB_FoundURL = true;
TB_imageCount = 'Image ' + (TB_Counter + 1) + ' of ' + TB_TempArray.length;
}
}
}
var imgPreloader = new Image();
$(imgPreloader).bind(
'load',
function() {
$(this).unbind('load');
var $image_size = TB.scaleImage.call(TB, this);
TB.Width = $image_size.width + 30;
TB.Height = $image_size.height + 60;
$('#TB_window').append("<a href='' id='TB_ImageOff' title='Close'><img id='TB_Image' src='" + params.url + "' width='" + $image_size.width + "' height='" + $image_size.height + "' alt='" + params.caption + "'/></a>" + "<div id='TB_caption'>" + params.caption + "<div id='TB_secondLine'>" + TB_imageCount + TB_PrevHTML + TB_NextHTML + "</div></div><div id='TB_closeWindow'><a href='#' id='TB_closeWindowButton' title='Close'>close</a> or Esc Key</div>");
$('#TB_closeWindowButton').click(TB.remove);
if (TB_PrevHTML !== '') {
function goPrev() {
$('#TB_window').remove();
$('body').append("<div id='TB_window'></div>");
TB.show( {caption: TB_PrevCaption, url: TB_PrevURL, imageGroup: params.imageGroup} );
return false;
}
$('#TB_prev').click(goPrev);
}
if (TB_NextHTML !== '') {
function goNext() {
$('#TB_window').remove();
$('body').append("<div id='TB_window'></div>");
TB.show( {caption: TB_NextCaption, url: TB_NextURL, imageGroup: params.imageGroup} );
return false;
}
$('#TB_next').click(goNext);
}
$(document).bind(
'keydown',
function(e) {
var keycode = e.which;
if (keycode == 27) { // close
TB.remove();
} else if (keycode == 190) {
// display previous image
if (TB_NextHTML != '') {
$(this).unbind('keydown');
goNext();
}
} else if (keycode == 188) {
// display next image
if(TB_PrevHTML != ''){
$(this).unbind('keydown');
goPrev();
}
}
}
);
// show image after it's loaded
TB.position();
$('#TB_load').remove();
$('#TB_ImageOff').click(TB.remove);
$('#TB_window').css('display', 'block'); // for safari using css instead of show
}
);
imgPreloader.src = params.url;
}
TB.scaleImage = function ($image) {
// resizing large images - orginal by Christian Montoya edited by me
var pagesize = TB.getPageSize();
var x = pagesize[0] - 150;
var y = pagesize[1] - 150;
var imageWidth = $image.width;
var imageHeight = $image.height;
if (imageWidth > x) {
imageHeight = imageHeight * (x / imageWidth);
imageWidth = x;
if (imageHeight > y) {
imageWidth = imageWidth * (y / imageHeight);
imageHeight = y;
}
} else if (imageHeight > y) {
imageWidth = imageWidth * (y / imageHeight);
imageHeight = y;
if (imageWidth > x) {
imageHeight = imageHeight * (x / imageWidth);
imageWidth = x;
}
}
return {width: imageWidth, height: imageHeight};
}
TB.processDialog = function (params, url_params) {
// code to show html
// window size is global
TB.Width = (url_params['width'] * 1) + 30 || 630; // defaults to 630 if no paramaters were added to URL
TB.Height = (url_params['height'] * 1) + 40 || 440; // defaults to 440 if no paramaters were added to URL
var ajaxContentW = TB.Width - 30;
var ajaxContentH = TB.Height - 45;
if (params.url.indexOf('TB_iframe') != -1) {
// either iframe or ajax window
urlNoQuery = params.url.split('TB_');
$('#TB_iframeContent').remove();
if (url_params['modal'] != 'true') {
// iframe no modal
$('#TB_window').append("<div id='TB_title'><div id='TB_ajaxWindowTitle'>" + params.caption + "</div><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton' title='Close'>close</a> or Esc Key</div></div><iframe frameborder='0' hspace='0' src='" + urlNoQuery[0] + "' id='TB_iframeContent' name='TB_iframeContent" + Math.round(Math.random() * 1000) + "' onload='TB.showIframe()' style='width:" + (ajaxContentW + 29) + "px;height:" + (ajaxContentH + 17) + "px;' > </iframe>");
}else{
// iframe modal
$('#TB_overlay').unbind();
$('#TB_window').append("<iframe frameborder='0' hspace='0' src='" + urlNoQuery[0] + "' id='TB_iframeContent' name='TB_iframeContent" + Math.round(Math.random() * 1000) + "' onload='TB.showIframe()' style='width:" + (ajaxContentW + 29) + "px;height:" + (ajaxContentH + 17) + "px;'> </iframe>");
}
} else {
// not an iframe, ajax
if ($('#TB_window').css('display') != 'block') {
if (url_params['modal'] != 'true') {
// ajax no modal
$('#TB_window').append("<div id='TB_title'><div id='TB_ajaxWindowTitle'>" + params.caption + "</div><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton'>close</a> or Esc Key</div></div><div id='TB_ajaxContent' style='width:" + ajaxContentW + "px;height:" + ajaxContentH + "px'></div>");
} else {
// ajax modal
$('#TB_overlay').unbind();
$('#TB_window').append("<div id='TB_ajaxContent' class='TB_modal' style='width:" + ajaxContentW + "px;height:" + ajaxContentH + "px;'></div>");
}
} else {
// this means the window is already up, we are just loading new content via ajax
$('#TB_ajaxContent')[0].style.width = ajaxContentW + 'px';
$('#TB_ajaxContent')[0].style.height = ajaxContentH + 'px';
$('#TB_ajaxContent')[0].scrollTop = 0;
$('#TB_ajaxWindowTitle').html(params.caption);
}
}
$('#TB_closeWindowButton').click(TB.remove);
if (params.url.indexOf('TB_inline') != -1) {
- $('#TB_ajaxContent').append( $('#' + url_params['inlineId']).children() );
+ $('#TB_ajaxContent').html( $('#' + url_params['inlineId']).html() );
$('#TB_window').unload(
function () {
// move elements back when you're finished
- $('#' + url_params['inlineId']).append( $('#TB_ajaxContent').children() );
+ $('#' + url_params['inlineId']).html( $('#TB_ajaxContent').html() );
}
);
TB.position();
$('#TB_load').remove();
$('#TB_window').css('display', 'block');
} else if (params.url.indexOf('TB_iframe') != -1) {
TB.position();
if ($.browser.safari) {
// safari needs help because it will not fire iframe onload
$('#TB_load').remove();
$('#TB_window').css('display', 'block');
}
} else {
- $('#TB_ajaxContent').load(
+ var $content_url = params.url + '&random=' + (new Date().getTime());
+
+ if (params.postParams === undefined) {
+ $.get(
+ $content_url,
+ function ($data) {
+ TB.onDataReceived($data, params);
+ }
+ );
+ }
+ else {
+ $.post(
+ $content_url,
+ params.postParams,
+ function ($data) {
+ TB.onDataReceived($data, params);
+ }
+ );
+ }
+
+ /*$('#TB_ajaxContent').load(
params.url += '&random=' + (new Date().getTime()),
params.postParams,
function() {
//to do a post change this load method
TB.position();
$('#TB_load').remove();
TB.init('#TB_ajaxContent a.thickbox');
$('#TB_window').css('display', 'block');
if ( $.isFunction(params.showCallback) ) {
params.showCallback();
}
}
- );
+ );*/
+ }
+}
+
+TB.parseRedirect = function ($data) {
+ var $match_redirect = new RegExp('^#redirect#(.*)').exec($data);
+ if ($match_redirect != null) {
+ // redirect to external template requested
+ return $match_redirect[1];
+ }
+
+ return false;
+}
+
+TB.onDataReceived = function ($data, $params) {
+ if ( $.isFunction($params.onDataReceived) ) {
+ if (!$params.onDataReceived($data)) {
+ // this callback even could prevent redirect action
+ // callback requested to stop processing
+ return ;
+ }
+ }
+
+ var $redirect = TB.parseRedirect($data);
+ if ($redirect !== false) {
+ window.location.href = $redirect;
+ return ;
+ }
+
+ $('#TB_ajaxContent').html($data);
+
+ TB.position();
+ $('#TB_load').remove();
+ TB.init('#TB_ajaxContent a.thickbox');
+ $('#TB_window').css('display', 'block');
+
+ if ( $.isFunction($params.onAfterShow) ) {
+ $params.onAfterShow();
}
}
TB.showIframe = function () {
$('#TB_load').remove();
$('#TB_window').css('display', 'block');
}
TB.remove = function () {
$('#TB_imageOff').unbind('click');
$('#TB_closeWindowButton').unbind('click');
$('#TB_window').fadeOut(
'fast',
function(){
$('#TB_window,#TB_overlay,#TB_HideSelect').trigger('unload').unbind().remove();
}
);
$('#TB_load').remove();
if (typeof document.body.style.maxHeight == 'undefined') {
// if IE 6
$('body','html').css( {height: 'auto', width: 'auto'} );
$('html').css('overflow', '');
}
$(document).unbind('keydown').unbind('keyup');
return false;
}
TB.position = function () {
$('#TB_window').css( {marginLeft: '-' + parseInt((TB.Width / 2), 10) + 'px', width: TB.Width + 'px'} );
if ( !(jQuery.browser.msie && jQuery.browser.version < 7)) {
// take away IE6
$('#TB_window').css( {marginTop: '-' + parseInt((TB.Height / 2), 10) + 'px'} );
}
}
TB.parseQuery = function (query) {
var Params = {};
if (!query) {
// return empty object
return Params;
}
var Pairs = query.split(/[;&]/);
for (var i = 0; i < Pairs.length; i++ ) {
var KeyVal = Pairs[i].split('=');
if (!KeyVal || KeyVal.length != 2) {
continue;
}
var key = unescape( KeyVal[0] );
var val = unescape( KeyVal[1] );
val = val.replace(/\+/g, ' ');
Params[key] = val;
}
return Params;
}
TB.getPageSize = function () {
var de = document.documentElement;
var w = window.innerWidth || self.innerWidth || (de && de.clientWidth) || document.body.clientWidth;
var h = window.innerHeight || self.innerHeight || (de && de.clientHeight) || document.body.clientHeight;
return [w, h];
}
TB.detectMacXFF = function () {
var userAgent = navigator.userAgent.toLowerCase();
if (userAgent.indexOf('mac') != -1 && userAgent.indexOf('firefox') != -1) {
return true;
}
return false;
}
Property changes on: platform/inc/jquery/thickbox/thickbox.js
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.1.2.1
\ No newline at end of property
+1.1.2.2
\ No newline at end of property
Index: platform/inc/script.js
===================================================================
--- platform/inc/script.js (revision 11426)
+++ platform/inc/script.js (revision 11427)
@@ -1,117 +1,134 @@
String.prototype.trim = function() { return this.replace(/^\s+|\s+$/, ''); };
function update_checkbox(cb, cb_hidden) {
cb_hidden.value = cb.checked ? 1 : 0;
}
function redirect($url) {
window.location.href = $url;
}
function open_window($url, $window_name, $width, $height) {
window.open($url, $window_name, 'width='+$width+',height='+$height+',resizable=yes');
return false;
}
function addLoadEvent(func, wnd) {
if (!wnd) wnd = window
var oldonload = wnd.onload;
if (typeof wnd.onload != 'function') {
wnd.onload = func;
} else {
wnd.onload = function() {
if (oldonload) {
oldonload();
}
func();
}
}
}
+function addEvent(el, evname, func, traditional) {
+ if (traditional) {
+ eval('el.on'+evname+'='+func);
+ return;
+ }
+
+ if (document.all) {
+ el.attachEvent("on" + evname, func);
+ } else {
+ el.addEventListener(evname, func, true);
+ }
+};
+
// ItemCategories class
function ItemCategories($table_id, $field_id, $primary_category, $phrases) {
this.CategoryTable = document.getElementById($table_id);
this.CategorySelector = document.getElementById($field_id + '_select');
this.MoreCategoriesField = document.getElementById($field_id);
this.PrimaryCategory = $primary_category;
this.Phrases = $phrases;
// get additional categories from item
if (this.MoreCategoriesField.value.length) {
this.MoreCategories = this.MoreCategoriesField.value;
this.MoreCategories = this.MoreCategories.substring(1, this.MoreCategories.length - 1).split('|');
}
else {
this.MoreCategories = new Array ();
}
}
ItemCategories.prototype.AddCategory = function($separator, $delete_button, $max_categories) {
var $category_id = this.CategorySelector.options[this.CategorySelector.selectedIndex].value;
var $category_name = this.CategorySelector.options[this.CategorySelector.selectedIndex].innerHTML.trim();
if ((this.SearchCategory($category_id) !== false) || ($category_id == this.PrimaryCategory) || ($category_id == 0)) {
- // don't add same category twice & don't allow to add item's primary category
+ // don't add same category twice & don't allow to add item's primary category
alert(this.Phrases[1]);
return ;
}
-
+
if ((this.MoreCategories.length + 2) > $max_categories)
{
// don't add more category - $max_categories limit
alert(this.Phrases[0]);
return ;
}
// strip trailing HTML spaces & separator
var $separator_pos = $category_name.indexOf($separator);
if ($separator_pos != -1) {
$category_name = $category_name.substring($separator_pos + $separator.length);
}
var $row = this.CategoryTable.insertRow(-1);
$row.id = 'category_' + $category_id;
var $cell = $row.insertCell(-1);
$cell.innerHTML = $category_name;
$cell = $row.insertCell(-1);
$cell.innerHTML = $delete_button.replace(/#CATEGORY_ID#/g, $category_id);
this.MoreCategories.push($category_id);
this.updateMoreCategoriesField();
}
ItemCategories.prototype.SearchCategory = function($category_id) {
var $i = 0;
while ($i < this.CategoryTable.rows.length) {
if (this.CategoryTable.rows[$i].id == 'category_' + $category_id) {
return $i;
}
$i++;
}
return false;
}
ItemCategories.prototype.DeleteCategory = function($category_id) {
var $row_index = this.SearchCategory($category_id);
if ($row_index !== false) {
this.CategoryTable.deleteRow($row_index);
var $i = 0;
while ($i < this.MoreCategories.length) {
if (this.MoreCategories[$i] == $category_id) {
this.MoreCategories.splice($i, 1);
break;
}
$i++;
}
this.updateMoreCategoriesField();
}
}
ItemCategories.prototype.updateMoreCategoriesField = function() {
this.MoreCategoriesField.value = this.MoreCategories.length ? '|' + this.MoreCategories.join('|') + '|' : '';
-}
\ No newline at end of file
+}
+
+function jq(myid) {
+ return '#'+myid.replace(/:/g,"\\:").replace(/\./g,"\\.");
+}
Property changes on: platform/inc/script.js
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.1.2.1
\ No newline at end of property
+1.1.2.2
\ No newline at end of property
Index: platform/elements/navigation_bar.tpl
===================================================================
--- platform/elements/navigation_bar.tpl (revision 11426)
+++ platform/elements/navigation_bar.tpl (revision 11427)
@@ -1,38 +1,38 @@
<inp2:m_DefaultParam titles="" templates="" show_category="0"/>
<inp2:m_DefineElement name="root_category">
<img src="<inp2:m_TemplatesBase module="In-Portal"/>img/icon_home.gif" width="9" height="9" alt=""/> <a href="<inp2:c_CategoryLink template="__default__" />"><inp2:m_RootCategoryName/></a>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="module_root">
<inp2:m_param name="separator"/>
<a href="<inp2:c_CategoryLink template="$module_index" cat_id="$cat_id"/>"><inp2:m_param name="title"/></a>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="nav_link">
<inp2:m_param name="separator"/>
<inp2:m_if check="m_Param" name="category">
<a href="<inp2:c_CategoryLink template="__default__" m_cat_page="1"/>"><inp2:m_param name="title"/></a>
<inp2:m_else/>
<a href="<inp2:m_Link template="$template" m_cat_id="0" m_cat_page="1"/>"><inp2:m_param name="title"/></a>
</inp2:m_if>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="module_item">
<inp2:m_param name="separator"/>
<a href="<inp2:{$prefix}_ItemLink template="$template" />"><inp2:m_param name="title"/></a>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="current_item">
<inp2:m_param name="separator"/>
<span> <inp2:m_param name="title"/></span>
</inp2:m_DefineElement>
-<table class="fullwidth">
+<table class="fullwidth groupItem">
<tr>
- <td class="navigation-bar">
+ <td class="navigation-bar itemHeader">
<!-- module_root_render_as="module_root" -->
<inp2:c_CategoryPath separator="&gt;" render_as="nav_link" current_render_as="current_item" module_item_render_as="module_item" root_cat_render_as="root_category" titles="$titles" templates="$templates" show_category="$show_category"/>
</td>
</tr>
</table>
\ No newline at end of file
Property changes on: platform/elements/navigation_bar.tpl
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.1.2.1
\ No newline at end of property
+1.1.2.2
\ No newline at end of property
Index: platform/elements/subcats.xml.tpl
===================================================================
--- platform/elements/subcats.xml.tpl (revision 11426)
+++ platform/elements/subcats.xml.tpl (revision 11427)
@@ -1,34 +1,34 @@
<inp2:m_XMLTemplate cache="600"/>
<inp2:m_Inc param="level" by="1"/>
<inp2:m_Get var="level" result_to_var="level"/>
<inp2:m_Get var="max_level" result_to_var="max_level"/>
<inp2:m_Set c_Page="1"/>
<inp2:m_Random result_to_var="rand"/>
<inp2:conf_ConfigValue name="CategoriesRebuildSerial" result_to_var="serial"/>
<menus>
<menu id="sub<inp2:m_Get var="m_cat_id"/>"
orient="V" showicon="true" showsubicon="true" stlprf=""
submenuic="['<inp2:m_TemplatesBase module="In-portal"/>img/arrow_white.gif']">
<items>
<inp2:m_DefineElement name="cat_menu_elem">
<item id="sub-elem<inp2:Field name="CategoryId"/>" url="<inp2:CategoryLink template="__default__"/>" enb="true"
<inp2:m_if inverse="1" check="m_ParamEquals" name="level" value="$max_level">
<inp2:m_if check="Field" name="CachedDescendantCatsQty">
subid="sub<inp2:Field name="CategoryId"/>"
suburl="<inp2:CategoryLink template="platform/elements/subcats.xml"
level="$level"
max_level="$max_level"
rand="$rand" serial="$serial"/>"
</inp2:m_if>
</inp2:m_if>
><![CDATA[<inp2:Field name="Name"/>]]></item>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="more_menu_elem">
<inp2:m_Get var="m_cat_id" result_to_var="cat_id"/>
<item id="sub-more<inp2:m_Get var="m_cat_id"/>" url="<inp2:c_CategoryLink cat_id="$cat_id" template="__default__"/>" enb="true"><![CDATA[More...]]></item>
</inp2:m_DefineElement>
- <inp2:c.menu_ListCategories no_special="1" render_as="cat_menu_elem" no_table="1" more_link_render_as="more_menu_elem"/>
+ <inp2:c.menu_ListCategories no_special="1" render_as="cat_menu_elem" no_table="1" more_link_render_as="more_menu_elem" no_editing="1"/>
</items>
</menu>
</menus>
\ No newline at end of file
Property changes on: platform/elements/subcats.xml.tpl
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.1.2.1
\ No newline at end of property
+1.1.2.2
\ No newline at end of property
Index: platform/elements/menu.tpl
===================================================================
--- platform/elements/menu.tpl (revision 11426)
+++ platform/elements/menu.tpl (revision 11427)
@@ -1,115 +1,117 @@
<table class="menu-background fullwidth">
<tr>
<td align="left">
<table style="width: auto;">
<tr>
<td>
<script type="text/javascript" src="<inp2:m_TemplatesBase module='In-Portal'/>inc/nlsmenu.js"></script>
<script type="text/javascript" src="<inp2:m_TemplatesBase module='In-Portal'/>inc/nlsmenueffect.js"></script>
<script type="text/javascript" src="<inp2:m_TemplatesBase module='In-Portal'/>inc/nlsmenuext_dyn.js"></script>
<script type="text/javascript" src="<inp2:m_TemplatesBase module='In-Portal'/>inc/nlsmenuext_xml.js"></script>
<link rel="StyleSheet" href="<inp2:m_TemplatesBase module='In-Portal'/>inc/dmenu.css" type="text/css" />
<div id="xmlMenuDiv"></div>
<script type="text/javascript">
<inp2:m_DefineElement name="dmenu_element">
<inp2:m_ModuleInfo key="Name" value="$module" return="RootCat" result_to_var="root_cat"/>
<inp2:m_Random result_to_var="rand"/>
<inp2:m_Set m_cat_id="$root_cat"/>
<inp2:conf_ConfigValue name="CategoriesRebuildSerial" result_to_var="serial"/>
<item id="sub-elem<inp2:m_Param name="root_cat"/>"
url="<inp2:c_CategoryLink template="__default__" module="$module" cat_id="Root"/>"
ico="['<inp2:m_TemplatesBase module="$module"/>img/<inp2:m_Param name="icon"/>']"
enb="true" title=""
subid="sub<inp2:m_Param name="root_cat"/>"
suburl="<inp2:m_link __NO_REWRITE__="1" template="platform/elements/subcats.xml"
m_cat_id="$root_cat"
m_cat_page="1"
c_menu_Page="1" pass="m,c.menu"
level="0" max_level="4" serial="$serial"
/>" ><![CDATA[<inp2:c_Field requery="1" name="Name"/>]]></item>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="menu_xml">
<menumgr id="mgr" flowoverformelement="false" defaulteffect="aoslide" icpath="">
<!--## USE droponclick="false" TO OPEN MENU ONMOUSE-OVER ##-->
<menubar id="menubar" orient="H" showicon="true" showsubicon="false" stlprf="horz_" droponclick="true" >
<items>
<item id="sub-elem0" url="<inp2:m_Link template="index" m_cat_id="0" m_cat_page="1"/>" ico="['<inp2:m_TemplatesBase module="In-portal"/>img/menu_home.gif']" enb="true" title=""><![CDATA[<inp2:m_RootCategoryName/>]]></item>
<inp2:m_ModuleInclude template="elements/menu.xml" />
</items>
</menubar>
</menumgr>
</inp2:m_DefineElement>
<inp2:m_get name="m_cat_id" result_to_var="current_category"/>
- window.onload = function() {
- var menu_mgr = NlsMenuUtil.createFromXMLString('<inp2:m_RenderElement name="menu_xml" js_escape="1"/>');
-
-// menu_mgr.renderMenus();
- menu_mgr.renderMenubar('xmlMenuDiv');
- };
+ addLoadEvent(
+ function() {
+ var menu_mgr = NlsMenuUtil.createFromXMLString('<inp2:m_RenderElement name="menu_xml" no_editing="1" js_escape="1"/>');
+
+// menu_mgr.renderMenus();
+ menu_mgr.renderMenubar('xmlMenuDiv');
+ }
+ );
</script>
<noscript>
<inp2:m_DefineElement name="static_menu_element">
<inp2:m_ModuleInfo key="Name" value="$module" return="RootCat" result_to_var="root_cat"/>
<inp2:m_Random result_to_var="rand"/>
<inp2:m_Set m_cat_id="$root_cat"/>
<inp2:c_CategoryLink template="__default__" module="$module" cat_id="Root" result_to_var="link"/>
<inp2:m_TemplatesBase module="$module" result_to_var="module_path"/>
<inp2:c_Field requery="1" name="Name" result_to_var="title"/>
- <inp2:m_RenderElement name="menu_element" menu_href="$link" menu_title="$title" menu_icon_src="{$module_path}img/{$icon}"/>
+ <inp2:m_RenderElement name="menu_element" menu_href="$link" menu_title="$title" menu_icon_src="{$module_path}img/{$icon}" no_editing="1"/>
</inp2:m_DefineElement>
<table>
<tr>
<inp2:m_Link template="index" m_cat_id="0" m_cat_page="1" result_to_var="link"/>
<inp2:m_RootCategoryName result_to_var="title"/>
<inp2:m_TemplatesBase module="In-portal" result_to_var="module_path"/>
- <inp2:m_RenderElement name="menu_element" menu_href="$link" menu_title="$title" menu_icon_src="{$module_path}img/menu_home.gif" />
+ <inp2:m_RenderElement name="menu_element" menu_href="$link" menu_title="$title" menu_icon_src="{$module_path}img/menu_home.gif" no_editing="1"/>
<inp2:m_ModuleInclude template="elements/static_menu" />
</tr>
</table>
</noscript>
<inp2:m_Set m_cat_id="$current_category"/>
<inp2:c_Field requery="1" name="Name" result_to_var="category_name"/>
</td>
</tr>
</table>
</td>
<td align="right">
<table style="width: auto;">
<tr>
<!-- menu: My Account -->
- <inp2:m_RenderElement design="menu_element">
+ <inp2:m_RenderElement design="menu_element" no_editing="1">
<inp2:m_Capture to_var="menu_href">
<inp2:m_Link template="platform/my_account/my_account" m_cat_id="0" m_cat_page="1"/>
</inp2:m_Capture>
<inp2:m_Capture to_var="menu_icon">
<img src="<inp2:m_TemplatesBase module="In-Portal"/>img/menu_my_account.gif" alt="" /><br />
</inp2:m_Capture>
<inp2:m_Capture to_var="menu_title">
<inp2:m_Phrase name="lu_title_MyAccount"/>
</inp2:m_Capture>
<inp2:m_IsActive template=".*/my_account" result_to_var="current"/>
</inp2:m_RenderElement>
<!-- // menu: My Account -->
<inp2:m_if check="m_ModuleEnabled" module="In-Commerce">
<!-- menu: ShoppingCart -->
<inp2:m_Include t="in-commerce/elements/menu_element"/>
<!-- // menu: ShoppingCart -->
</inp2:m_if>
</tr>
</table>
</td>
</tr>
</table>
\ No newline at end of file
Property changes on: platform/elements/menu.tpl
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.1.2.1
\ No newline at end of property
+1.1.2.2
\ No newline at end of property
Index: platform/elements/header.tpl
===================================================================
--- platform/elements/header.tpl (revision 11426)
+++ platform/elements/header.tpl (revision 11427)
@@ -1,54 +1,54 @@
<table class="top-background fullwidth">
<tr>
<td width="240" nowrap>
<a href="<inp2:m_Link template="index" m_cat_id="0" m_cat_page="1"/>"><img src="<inp2:m_TemplatesBase module="In-Portal"/>img/globe.gif" alt="<inp2:m_GetConfig name="Site_Name"/>" /><img src="<inp2:m_TemplatesBase module="In-Portal"/>img/logo.gif" alt="<inp2:m_GetConfig name="Site_Name"/>" /></a><br />
</td>
<!-- TOP-BANNER -->
<td class="top-baner-cell">
<inp2:m_include template="platform/elements/banners/banner_top"/>
</td>
<!-- /TOP-BANNER -->
<td width="400" align="right">
<table style="width:auto">
<tr>
<td class="top-select-padding">
<form method="post" name="lang_form" id="lang_form" action="<inp2:m_FormAction />">
<input type="hidden" name="events[lang][OnChangeLanguage]" value="" />
<inp2:m_Phrase label="lu_YourLanguage"/>:
<select name="language" class="input-select" onchange="document.getElementById('lang_form').submit()">
<inp2:m_DefineElement name="lang_elem">
<option value="<inp2:Field name="LanguageId"/>" <inp2:m_if check="SelectedLanguage">selected="selected"</inp2:m_if> ><inp2:Field name="PackName"/></option>
</inp2:m_DefineElement>
- <inp2:lang_ListLanguages render_as="lang_elem" no_table="1"/>
+ <inp2:lang_ListLanguages render_as="lang_elem" no_table="1" no_editing="1"/>
</select>
</form>
</td>
<!--## THEME DROP-DOWN ##-->
<!--##
<td class="top-select-padding">
<form method="post" name="theme_form" id="theme_form" action="<inp2:m_FormAction />">
<input type="hidden" name="events[theme][OnChangeTheme]" value="" />
<inp2:m_Phrase label="lu_CurrentTheme"/>:
<select name="theme" class="input-select" onchange="document.getElementById('theme_form').submit()">
<inp2:m_DefineElement name="theme_elem">
<option value="<inp2:Field name="ThemeId"/>" <inp2:m_if check="SelectedTheme">selected="selected"</inp2:m_if> ><inp2:Field name="Name"/></option>
</inp2:m_DefineElement>
<inp2:theme_PrintList render_as="theme_elem" no_table="1"/>
</select>
</form>
</td>
##-->
<!--## /THEME DROP-DOWN ##-->
<inp2:m_if check="m_ModuleEnabled" module="In-Commerce">
<inp2:m_Include t="in-commerce/elements/currency_picker"/>
</inp2:m_if>
</tr>
</table>
</td>
</tr>
</table>
\ No newline at end of file
Property changes on: platform/elements/header.tpl
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.1.2.1
\ No newline at end of property
+1.1.2.2
\ No newline at end of property

Event Timeline