Page Menu
Home
In-Portal Phabricator
Search
Configure Global Search
Log In
Files
F785334
advanced
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Wed, Feb 12, 9:10 AM
Size
191 KB
Mime Type
text/x-diff
Expires
Fri, Feb 14, 9:10 AM (1 d, 9 h)
Engine
blob
Format
Raw Data
Handle
564371
Attached To
rTADV Themes.Advanced
advanced
View Options
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">
</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"/>
+ </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>
+ </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 : /(<[^!]*?>)/g, output : '<b>$1</b>' }, // all tags
+ { input : /(<a .*?>|<\/a>)/g, output : '<a>$1</a>' }, // links
+ { input : /(<img .*?>)/g, output : '<big>$1</big>' }, // images
+ { input : /(<\/?(button|textarea|form|input|select|option|label).*?>)/g, output : '<u>$1</u>' }, // forms
+ { input : /(<style.*?>)(.*?)(<\/style>)/g, output : '<em>$1</em><em>$2</em><em>$3</em>' }, // style tags
+ { input : /(<script.*?>)(.*?)(<\/script>)/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 : /(<!--.*?-->.)/g, output : '<ins>$1</ins>' }, // comments
+ { input : /(<[\/]?)(inp2\:.*?)(\s|[\/]?>)/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,'<');
+ content = content.replace(/>/g,'>');
+ 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(/</g,'<');
+ code = code.replace(/>/g,'>');
+ code = code.replace(/&/gi,'&');
+ return code;
+ },
+
+ // put code inside editor
+ setCode : function() {
+ var code = arguments[0];
+ code = code.replace(/\u2009/gi,'');
+ code = code.replace(/&/gi,'&');
+ code = code.replace(/</g,'<');
+ code = code.replace(/>/g,'>');
+ 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,'<');
+ content = content.replace(/>/g,'>');
+ 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(/</g,'<');
+ code = code.replace(/>/g,'>');
+ code = code.replace(/&/gi,'&');
+ return code;
+ },
+
+ // put code inside editor
+ setCode : function() {
+ var code = arguments[0];
+ code = code.replace(/\u2009/gi,'');
+ code = code.replace(/&/gi,'&');
+ code = code.replace(/</g,'<');
+ code = code.replace(/>/g,'>');
+ 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(/ /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,'<');
+ content = content.replace(/>/g,'>');
+ 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(/ /gi,'');
+ code = code.replace(/\u2009/g,'');
+ code = code.replace(/<.*?>/g,'');
+ code = code.replace(/</g,'<');
+ code = code.replace(/>/g,'>');
+ code = code.replace(/&/gi,'&');
+ return code;
+ },
+
+ // put code inside editor
+ setCode : function() {
+ var code = arguments[0];
+ code = code.replace(/\u2009/gi,'');
+ code = code.replace(/&/gi,'&');
+ code = code.replace(/</g,'<');
+ code = code.replace(/>/g,'>');
+ 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(' ');
+ 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"> </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'> <a href='#'>Next ></a></span>";
} else {
TB_PrevCaption = TB_TempArray[TB_Counter].title;
TB_PrevURL = TB_TempArray[TB_Counter].href;
TB_PrevHTML = "<span id='TB_prev'> <a href='#'>< 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=">" 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
Log In to Comment