Index: /extensions/charlies_content/index.php
===================================================================
--- /extensions/charlies_content/index.php	(revision 3320)
+++ /extensions/charlies_content/index.php	(revision 3320)
@@ -0,0 +1,8 @@
+<?php
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/charlies_content/main.inc.php
===================================================================
--- /extensions/charlies_content/main.inc.php	(revision 3320)
+++ /extensions/charlies_content/main.inc.php	(revision 3320)
@@ -0,0 +1,186 @@
+<?php /*
+Plugin Name: Charlies content
+Version: 2.0.c
+Description: Charlies content is a global solution for none picture files.
+Plugin URI: http://fr.piwigo.org/ext/extension_view.php?eid=119
+Author: VDigital, rvelices (PhpWebGallery team)
+Author URI: http://www.phpwebgallery.net
+*/
+/* Synopsis
+1 - Based on file extension...
+2 - A template is used in state of the default content
+
+Localisation of Charlies content: Possible
+
+Requirements/recommendations:
+1 - php 5
+2 - GETID3 php modules (James Heinrich, Allan Hansen)
+3 - $charlie['xxxxx']=array(....extensions....) means:
+    if file extension is in the array a file charlie_xxxxx.tpl will be used and 
+    must be in the charlies_content directory
+
+/** History ***************
+  2009-04-13 2.0.c 
+	           Flipflip proposal to exclude GETID3 for some extends
+						 nolive proposal to support GPX extensions
+						 Forced width/height are supported by flvstreamer
+  2009-02-15 2.0.b 
+	           Admin configuration menu
+						 And related changes (New version of GetID3)
+
+  2008-10-30 2.0.a (Not distributed)
+             Smarty version for Piwigo (Don't use it with PhpWebGallery 1.7.x)
+  2008/03/26: error_reporting(E_ERROR | E_WARNING | E_PARSE);
+             during getid3 call (Only one referenced case).             
+  2008/02/22:
+ * 3GP support : video streams from mobile phones.
+   There are two different standards for this format:
+   3gp for GSM-based Phones, or 3g2 for CDMA-based Phones.
+ * $page['slideshow'] active/inactive support for "Pause" enhancement 
+   so Charlies won't act on active slideshow but will act on Slideshow pause
+
+  2007-10-21 1.7.a First release for PhpWebGallery 1.7
+  2006-01-06 Video Integrator and followed by Media Integrator
+  and previously Kitof's Original MOD.
+ **/
+
+/** 
+ * All media file have to be broadcasted via an embedded player
+ * so link its extention to a player name as to be define
+ * the same player can be used for several extentions
+ */
+  global $conf, $charlie;
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+define('CHARLIES_DIR' , basename(dirname(__FILE__)));
+define('CHARLIES_PATH' , PHPWG_PLUGINS_PATH . CHARLIES_DIR . '/');
+define('CHARLIES_VER' , '2.0.c');
+$x = @file_get_contents( $conf['local_data_dir'].'/plugins/'.basename(dirname(__FILE__)).'.dat');
+if ($x!==false) $charlie = unserialize($x);
+if (!isset($charlie['version']) or  $charlie['version'] != CHARLIES_VER) 
+{
+	$charlie['version'] = CHARLIES_VER;
+	if (!isset($charlie['FlvStreamer'])) $charlie['FlvStreamer'] = array('flv',); 
+	if (!isset($charlie['Flash'])) 			$charlie['Flash'] = array('swf',); 
+	if (!isset($charlie['Music'])) 			$charlie['Music'] = array('pls','m3u','wav','mid','au','aif',); 
+	if (!isset($charlie['mp3Player'])) 	$charlie['mp3Player'] = array('mp3',); 
+	if (!isset($charlie['Acrobat'])) 		$charlie['Acrobat'] = array('pdf',); 
+	if (!isset($charlie['WMplayer'])) 	$charlie['WMplayer'] = array('asf','wmv','divx','xvid',); 
+	if (!isset($charlie['QuickTime'])) 	$charlie['QuickTime'] = 
+	array('aiff','aac','bmp','gsm','mov','mpg','mpeg','mp4','m4a','psd','qt','qtif','qif','qti','snd','tif','tiff','3g2','3pg');
+	if (!isset($charlie['Archive'])) 		$charlie['Archive'] = array('zip','rar',); 
+	if (!isset($charlie['GPS'])) 				$charlie['GPS'] = array('gpx',); 
+
+	if (!isset($charlie['autoplay'])) 	$charlie['autoplay'] = 1;
+	if (!isset($charlie['loop'])) 			$charlie['loop'] = 1;
+	if (!isset($charlie['full'])) 			$charlie['full'] = 1;
+	if (!isset($charlie['forced_width'])) 	$charlie['forced_width'] = '';
+	if (!isset($charlie['forced_height'])) 	$charlie['forced_height'] = '';
+	if (!isset($charlie['video_default_width'])) 		$charlie['video_default_width'] =  320;
+	if (!isset($charlie['video_default_height']))		$charlie['video_default_height'] =  240;
+	if (!isset($charlie['volume'])) 		$charlie['volume'] = 150;
+	if (!isset($charlie['onclick'])) 		$charlie['onclick'] = 'playpause';
+	if (!isset($charlie['onclicktarget'])) 	$charlie['onclicktarget'] = 0;
+	if (!isset($charlie['ondoubleclick'])) 	$charlie['ondoubleclick'] = 'fullscreen';
+	if (!isset($charlie['ondoubleclicktarget'])) 		$charlie['ondoubleclicktarget'] = 0;
+	if (!isset($charlie['buffer'])) 		$charlie['buffer'] = 10;
+	if (!isset($charlie['buffermessage'])) 	$charlie['buffermessage'] = 1;
+	if (!isset($charlie['buffershowbg'])) 	$charlie['buffershowbg'] = 0;
+	if (!isset($charlie['config'])) 		$charlie['config'] = 0;
+	if (!isset($charlie['configxml'])) 	$charlie['configxml'] = 0;
+	if (!isset($charlie['margin'])) 		$charlie['margin'] = 8;
+	if (!isset($charlie['skin'])) 			$charlie['skin'] = ''; // './plugins/charlies_content/skin.jpg';
+	if (!isset($charlie['title'])) 			$charlie['title'] = '/n/n/nCharlies\' content ';
+	if (!isset($charlie['titlesize'])) 	$charlie['titlesize'] = 26;
+	if (!isset($charlie['start_image'])) 		$charlie['start_image'] = './plugins/charlies_content/city-lights.jpg';
+	if (!isset($charlie['showtitleandstartimage'])) 	$charlie['showtitleandstartimage'] = 0;
+	if (!isset($charlie['showiconplay'])) 		$charlie['showiconplay'] = 0;
+	if (!isset($charlie['iconplaybgalpha'])) 	$charlie['iconplaybgalpha'] = 20;
+	if (!isset($charlie['srt'])) 		$charlie['onclick'] = 0;
+	if (!isset($charlie['showplayer'])) 		$charlie['showplayer'] = 1;
+	if (!isset($charlie['showloading'])) 		$charlie['showloading'] = 1;
+	if (!isset($charlie['showmouse'])) 		$charlie['showmouse'] = 1;
+	if (!isset($charlie['showtime'])) 		$charlie['showtime'] = 2;
+	if (!isset($charlie['playeralpha'])) 		$charlie['playeralpha'] = 20;
+	if (!isset($charlie['playertimeout'])) 		$charlie['playertimeout'] = 1500;
+	if (!isset($charlie['showstop'])) 	$charlie['showstop'] = 1;
+	if (!isset($charlie['showvolume'])) $charlie['showvolume'] = 1;
+	if (!isset($charlie['showswitchsubtitles'])) 	$charlie['showswitchsubtitles'] = 0;
+	if (!isset($charlie['loadonstop'])) $charlie['loadonstop'] = 0;
+	if (!isset($charlie['shortcut'])) 	$charlie['shortcut'] = 1;
+	if (!isset($charlie['phpstream'])) 		$charlie['phpstream'] = 1;
+	if (!isset($charlie['curtain'])) 		$charlie['curtain'] = 'none';
+	if (!isset($charlie['start_image']))	$charlie['start_image'] =  CHARLIES_PATH . 'background.jpg';
+	if (!isset($charlie['color16']))
+	{
+		$charlie['color0'] = '#111111';
+		$charlie['color1'] = '#ff7700';
+		$charlie['color2'] = '#444444';
+		$charlie['color3'] = '#ff3333';
+		$charlie['color4'] = '#ff3363';
+		$charlie['color5'] = '#ff7700';
+		$charlie['color6'] = '#111111';
+		$charlie['color7'] = '#ff3333';
+		$charlie['color8'] = '#ff3363';
+		$charlie['color9'] = '#111111';
+		$charlie['color10'] = '#444444';
+		$charlie['color11'] = '#ff3333';
+		$charlie['color12'] = '#ff3363';
+		$charlie['color13'] = '#ff7700';
+		$charlie['color14'] = '#444444';
+		$charlie['color15'] = '#ff3333';
+		$charlie['color16'] = '#111111';
+	}
+
+	$dir = $conf['local_data_dir'].'/plugins/';
+	@mkdir($dir);
+	$file = fopen( $dir.basename(dirname(__FILE__)).'.dat', 'w' );
+	fwrite($file, serialize($charlie));
+	fclose( $file );
+}
+  /* Note: Uppercase extensions are not requested */
+  /**
+   * That means you must have a tpl file for each... player
+   * like for Flash => ./plugings/charlies_content/flash_content.tpl
+   *
+   * Player name is in lower-case followed by _content.tpl
+   */
+
+add_event_handler('render_element_content', 'render_Charlie_element_content', 40, 2 );
+add_event_handler('get_admin_plugin_menu_links', 'Charlie_plugin_admin_menu');
+$all = array();
+foreach ($charlie as $ext) { 
+  if ( is_array($ext)) $all = array_merge ($all, $ext); 
+}
+$conf['file_ext'] = array_merge (
+    $conf['file_ext'], $all, array_map('strtoupper', $all) );
+
+function Charlie_plugin_admin_menu($menu)
+{
+	array_push($menu, array(
+				'NAME' => 'Charlies\'', 
+				'URL' => get_admin_plugin_menu_link(dirname(__FILE__).'/charlies_config.php'), 
+			));
+	return $menu;
+}  
+
+/**
+ * Only if picture.php is active
+ */
+function render_Charlie_element_content($content, $picture)
+{
+  global $template, $charlie, $page, $conf;
+  if ( isset($page['slideshow']) and $page['slideshow'] ) return $content;
+  if ( @$picture['is_picture'] ) return $content; 
+  $all = array();
+  foreach ($charlie as $ext) { if (is_array($ext)) $all = array_merge ($all, $ext); }
+  $charlie['all'] = $all;
+  $extension = strtolower(get_extension($picture['file']));
+  if (!in_array($extension, $charlie['all']))
+  { // in fact nothing to do (Lucky Charlies)
+    return $content; }
+  unset($charlie['all']);
+  include_once(CHARLIES_PATH.'charlies.inc.php');
+  return Charlies_content($picture);
+}
+?>
Index: /extensions/charlies_content/ui.all.css
===================================================================
--- /extensions/charlies_content/ui.all.css	(revision 3320)
+++ /extensions/charlies_content/ui.all.css	(revision 3320)
@@ -0,0 +1,4 @@
+@import "ui.core.css";
+@import "ui.theme.css";
+@import "ui.allplugins.css";
+
Index: /extensions/charlies_content/ui.allplugins.css
===================================================================
--- /extensions/charlies_content/ui.allplugins.css	(revision 3320)
+++ /extensions/charlies_content/ui.allplugins.css	(revision 3320)
@@ -0,0 +1,3 @@
+
+@import url("ui.dialog.css");
+@import url("ui.tabs.css");
Index: /extensions/charlies_content/ui.core.css
===================================================================
--- /extensions/charlies_content/ui.core.css	(revision 3320)
+++ /extensions/charlies_content/ui.core.css	(revision 3320)
@@ -0,0 +1,37 @@
+/*
+* jQuery UI CSS Framework
+* Copyright (c) 2009 AUTHORS.txt (http://ui.jquery.com/about)
+* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
+*/
+
+/* Layout helpers
+----------------------------------*/
+.ui-helper-hidden { display: none; }
+.ui-helper-hidden-accessible { position: absolute; left: -99999999px; }
+.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
+.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
+.ui-helper-clearfix { display: inline-block; }
+/* required comment for clearfix to work in Opera \*/
+* html .ui-helper-clearfix { height:1%; }
+.ui-helper-clearfix { display:block; }
+/* end clearfix */
+.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
+
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-disabled { cursor: default !important; }
+
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
Index: /extensions/charlies_content/ui.dialog.css
===================================================================
--- /extensions/charlies_content/ui.dialog.css	(revision 3320)
+++ /extensions/charlies_content/ui.dialog.css	(revision 3320)
@@ -0,0 +1,13 @@
+/* Dialog
+----------------------------------*/
+.ui-dialog { position: relative; padding: .2em; width: 300px; }
+.ui-dialog-titlebar { padding: .5em .3em .3em 1em; position: relative;  }
+.ui-dialog-title { float: left; margin: .1em 0 .2em; } 
+.ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
+.ui-dialog-titlebar-close span { display: block; margin: 1px; }
+.ui-dialog-titlebar-close:hover, .ui-dialog-titlebar-close:focus { padding: 0; }
+.ui-dialog-content { border: 0; padding: .5em 1em; background: none; overflow: auto; }
+.ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
+.ui-dialog-buttonpane button { float: right; margin: .5em .4em .5em 0; cursor: pointer; padding: .2em .6em .3em .6em; line-height: 1.4em; width:auto; overflow:visible; }
+.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
+.ui-draggable .ui-dialog-titlebar { cursor: move; }
Index: /extensions/charlies_content/ui.tabs.css
===================================================================
--- /extensions/charlies_content/ui.tabs.css	(revision 3320)
+++ /extensions/charlies_content/ui.tabs.css	(revision 3320)
@@ -0,0 +1,9 @@
+/* Tabs
+----------------------------------*/
+.ui-tabs {padding: .2em;}
+.ui-tabs-nav { padding: .2em .2em 0 .2em;  position: relative; }
+.ui-tabs-nav li { float: left; border-bottom: 0 !important; margin: 0 .2em -1px 0; padding: 0; }
+.ui-tabs-nav li a { display:block; text-decoration: none; padding: .5em 1em; }
+.ui-tabs-nav li.ui-tabs-selected {  padding-bottom: .1em; border-bottom: 0; }
+.ui-tabs-panel { padding: 1em 1.4em;  display: block; border: 0; background: none; }
+.ui-tabs-hide { display: none !important; }
Index: /extensions/charlies_content/ui.theme.css
===================================================================
--- /extensions/charlies_content/ui.theme.css	(revision 3320)
+++ /extensions/charlies_content/ui.theme.css	(revision 3320)
@@ -0,0 +1,607 @@
+/*
+ * jQuery UI screen structure and presentation
+ * This CSS file was generated by ThemeRoller, a Filament Group Project for jQuery UI
+ * Author: Scott Jehl, scott@filamentgroup.com, http://www.filamentgroup.com
+ * Visit ThemeRoller.com
+*/
+
+/*
+ * Note: If your ThemeRoller settings have a font size set in ems, your components will scale according to their parent element's font size.
+ * As a rule of thumb, set your body's font size to 62.5% to make 1em = 10px.
+ * body {font-size: 62.5%;}
+*/
+
+
+
+/*UI accordion*/
+.ui-accordion {
+	/*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none;
+	font-family: Arial, sans-serif;
+	font-size: 11px;
+	border-bottom: 1px solid #666666;
+}
+.ui-accordion-group {
+	/*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none;
+	border: 1px solid #666666;
+	border-bottom: none;
+}
+.ui-accordion-header {
+	/*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none;
+	cursor: pointer;
+	background: #666666 url(images/666666_40x100_textures_02_glass_20.png) 0 50% repeat-x;
+}
+.ui-accordion-header a {
+	/*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none;
+	display: block;
+	font-size: 1em;
+	font-weight: normal;
+	text-decoration: none;
+	padding: .5em .5em .5em 1.7em;
+	color: #111111;
+	background: url(images/cccccc_7x7_arrow_right.gif) .5em 50% no-repeat;
+}
+.ui-accordion-header a:hover {
+	background: url(images/eeeeee_7x7_arrow_right.gif) .5em 50% no-repeat;
+	color: #111111;
+}
+.ui-accordion-header:hover {
+	background: #ff7700 url(images/ff7700_40x100_textures_02_glass_40.png) 0 50% repeat-x;
+	color: #111111;
+}
+.selected .ui-accordion-header, .selected .ui-accordion-header:hover {
+	background: #ff3363 url(images/ff3363_40x100_textures_05_inset_soft_90.png) 0 50% repeat-x;
+}
+.selected .ui-accordion-header a, .selected .ui-accordion-header a:hover {
+	color: #eeeeee;
+	background: url(images/ff7700_7x7_arrow_down.gif) .5em 50% no-repeat;
+}
+.ui-accordion-content {
+	background: #000000 url(images/000000_40x100_textures_05_inset_soft_25.png) 0 bottom repeat-x;
+	color: #ffffff;
+	font-size: 1em;
+}
+.ui-accordion-content p {
+	padding: 1em 1.7em 0.6em;
+}
+
+
+
+
+
+
+/*UI tabs*/
+.ui-tabs-nav {
+	/*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none;
+	font-family: Arial, sans-serif;
+	font-size: 11px;
+	float: left;
+	position: relative;
+	z-index: 1;
+	border-right: 1px solid #666666;
+	bottom: -1px;
+}
+.ui-tabs-nav li {
+	/*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none;
+	float: left;
+	border: 1px solid #666666;
+	border-right: none;
+}
+.ui-tabs-nav li a {
+	/*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none;
+	float: left;
+	font-size: 1em;
+	font-weight: normal;
+	text-decoration: none;
+	padding: .5em 1.7em;
+	color: #111111;
+	background: #666666 url(images/666666_40x100_textures_02_glass_20.png) 0 50% repeat-x;
+}
+.ui-tabs-nav li a:hover {
+	background: #ff7700 url(images/ff7700_40x100_textures_02_glass_40.png) 0 50% repeat-x;
+	color: #111111;
+}
+.ui-tabs-nav li.ui-tabs-selected {
+	border-bottom-color: #ff3363;
+}
+.ui-tabs-nav li.ui-tabs-selected a, .ui-tabs-nav li.ui-tabs-selected a:hover {
+	background: #ff3363 url(images/ff3363_40x100_textures_05_inset_soft_90.png) 0 50% repeat-x;
+	color: #eeeeee;
+}
+.ui-tabs-panel {
+	/*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none;
+	font-family: Arial, sans-serif;
+	clear:left;
+	border: 1px solid #666666;
+	background: #000000 url(images/000000_40x100_textures_05_inset_soft_25.png) 0 bottom repeat-x;
+	color: #ffffff;
+	padding: 1.5em 1.7em;	
+	font-size: 11px;
+}
+.ui-tabs-hide {
+	display: none;/* for accessible hiding: position: absolute; left: -99999999px*/;
+}
+
+
+
+
+
+/*slider*/
+.ui-slider {
+	/*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none;
+	font-family: Arial, sans-serif;
+	font-size: 11px;
+	background: #000000 url(images/000000_40x100_textures_05_inset_soft_25.png) 0 bottom repeat-x;
+	border: 1px solid #666666;
+	height: .8em;
+	position: relative;
+}
+.ui-slider-handle {
+	/*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none;
+	position: absolute;
+	z-index: 2;
+	top: -3px;
+	width: 1.2em;
+	height: 1.2em;
+	background: #666666 url(images/666666_40x100_textures_02_glass_20.png) 0 50% repeat-x;
+	border: 1px solid #666666;
+}
+.ui-slider-handle:hover {
+	background: #ff7700 url(images/ff7700_40x100_textures_02_glass_40.png) 0 50% repeat-x;
+	border: 1px solid #222222;
+}
+.ui-slider-handle-active, .ui-slider-handle-active:hover {
+	background: #ff3363 url(images/ff3363_40x100_textures_05_inset_soft_90.png) 0 50% repeat-x;
+	border: 1px solid #ff3363;
+}
+.ui-slider-range {
+	/*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none;
+	height: .8em;
+	background: #ff7700 url(images/ff7700_40x100_textures_02_glass_40.png) 0 50% repeat-x;
+	position: absolute;
+	border: 1px solid #666666;
+	border-left: 0;
+	border-right: 0;
+	top: -1px;
+	z-index: 1;
+	opacity:.7;
+	filter:Alpha(Opacity=70);
+}
+
+
+
+
+
+
+/*dialog*/
+.ui-dialog {
+	/*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none;
+	font-family: Arial, sans-serif;
+	font-size: 11px;
+	background: #000000 url(images/000000_40x100_textures_05_inset_soft_25.png) 0 bottom repeat-x;
+	color: #ffffff;
+	border: 4px solid #666666;
+	position: relative;
+}
+.ui-resizable-handle {
+	position: absolute;
+	font-size: 0.1px;
+	z-index: 99999;
+}
+.ui-resizable .ui-resizable-handle {
+	display: block; 
+}
+body .ui-resizable-disabled .ui-resizable-handle { display: none; } /* use 'body' to make it more specific (css order) */
+body .ui-resizable-autohide .ui-resizable-handle { display: none; } /* use 'body' to make it more specific (css order) */
+.ui-resizable-n { 
+	cursor: n-resize; 
+	height: 7px; 
+	width: 100%; 
+	top: -5px; 
+	left: 0px;  
+}
+.ui-resizable-s { 
+	cursor: s-resize; 
+	height: 7px; 
+	width: 100%; 
+	bottom: -5px; 
+	left: 0px; 
+}
+.ui-resizable-e { 
+	cursor: e-resize; 
+	width: 7px; 
+	right: -5px; 
+	top: 0px; 
+	height: 100%; 
+}
+.ui-resizable-w { 
+	cursor: w-resize; 
+	width: 7px; 
+	left: -5px; 
+	top: 0px; 
+	height: 100%;
+}
+.ui-resizable-se { 
+	cursor: se-resize; 
+	width: 13px; 
+	height: 13px; 
+	right: 0px; 
+	bottom: 0px; 
+	background: url(images/cccccc_11x11_icon_resize_se.gif) no-repeat 0 0;
+}
+.ui-resizable-sw { 
+	cursor: sw-resize; 
+	width: 9px; 
+	height: 9px; 
+	left: 0px; 
+	bottom: 0px;  
+}
+.ui-resizable-nw { 
+	cursor: nw-resize; 
+	width: 9px; 
+	height: 9px; 
+	left: 0px; 
+	top: 0px; 
+}
+.ui-resizable-ne { 
+	cursor: ne-resize; 
+	width: 9px; 
+	height: 9px; 
+	right: 0px; 
+	top: 0px; 
+}
+.ui-dialog-titlebar {
+	/*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none;
+	padding: .5em 1.5em .5em 1em;
+	color: #111111;
+	background: #666666 url(images/666666_40x100_textures_02_glass_20.png) 0 50% repeat-x;
+	border-bottom: 1px solid #666666;
+	font-size: 1em;
+	font-weight: normal;
+	position: relative;
+}
+.ui-dialog-title {}
+.ui-dialog-titlebar-close {
+	/*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none;
+	background: url(images/cccccc_11x11_icon_close.gif) 0 0 no-repeat;
+	position: absolute;
+	right: 8px;
+	top: .7em;
+	width: 11px;
+	height: 11px;
+	z-index: 100;
+}
+.ui-dialog-titlebar-close-hover, .ui-dialog-titlebar-close:hover {
+	background: url(images/eeeeee_11x11_icon_close.gif) 0 0 no-repeat;
+}
+.ui-dialog-titlebar-close:active {
+	background: url(images/ff7700_11x11_icon_close.gif) 0 0 no-repeat;
+}
+.ui-dialog-titlebar-close span {
+	display: none;
+}
+.ui-dialog-content {
+	/*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none;
+	color: #ffffff;
+	padding: 1.5em 1.7em;	
+}
+.ui-dialog-buttonpane {
+	position: absolute;
+	bottom: 0;
+	width: 100%;
+	text-align: left;
+	border-top: 1px solid #666666;
+	background: #000000;
+}
+.ui-dialog-buttonpane button {
+	margin: .5em 0 .5em 8px;
+	color: #111111;
+	background: #666666 url(images/666666_40x100_textures_02_glass_20.png) 0 50% repeat-x;
+	font-size: 1em;
+	border: 1px solid #666666;
+	cursor: pointer;
+	padding: .2em .6em .3em .6em;
+	line-height: 1.4em;
+}
+.ui-dialog-buttonpane button:hover {
+	color: #111111;
+	background: #ff7700 url(images/ff7700_40x100_textures_02_glass_40.png) 0 50% repeat-x;
+	border: 1px solid #222222;
+}
+.ui-dialog-buttonpane button:active {
+	color: #eeeeee;
+	background: #ff3363 url(images/ff3363_40x100_textures_05_inset_soft_90.png) 0 50% repeat-x;
+	border: 1px solid #ff3363;
+}
+/* This file skins dialog */
+.ui-dialog.ui-draggable .ui-dialog-titlebar,
+.ui-dialog.ui-draggable .ui-dialog-titlebar {
+	cursor: move;
+}
+
+
+
+
+
+
+
+/*datepicker*/
+/* Main Style Sheet for jQuery UI date picker */
+.ui-datepicker-div, .ui-datepicker-inline, #ui-datepicker-div {
+	/*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none;
+	font-family: Arial, sans-serif;
+	background: #000000 url(images/000000_40x100_textures_05_inset_soft_25.png) 0 bottom repeat-x;
+	font-size: 11px;
+	border: 4px solid #666666;
+	width: 15.5em;
+	padding: 2.5em .5em .5em .5em;
+	position: relative;
+}
+.ui-datepicker-div, #ui-datepicker-div {
+	z-index: 9999; /*must have*/
+	display: none;
+}
+.ui-datepicker-inline {
+	float: left;
+	display: block;
+}
+.ui-datepicker-control {
+	display: none;
+}
+.ui-datepicker-current {
+	display: none;
+}
+.ui-datepicker-next, .ui-datepicker-prev {
+	position: absolute;
+	left: .5em;
+	top: .5em;
+	background: #666666 url(images/666666_40x100_textures_02_glass_20.png) 0 50% repeat-x;
+}
+.ui-datepicker-next {
+	left: 14.6em;
+}
+.ui-datepicker-next:hover, .ui-datepicker-prev:hover {
+	background: #ff7700 url(images/ff7700_40x100_textures_02_glass_40.png) 0 50% repeat-x;
+}
+.ui-datepicker-next a, .ui-datepicker-prev a {
+	text-indent: -999999px;
+	width: 1.3em;
+	height: 1.4em;
+	display: block;
+	font-size: 1em;
+	background: url(images/cccccc_7x7_arrow_left.gif) 50% 50% no-repeat;
+	border: 1px solid #666666;
+	cursor: pointer;
+}
+.ui-datepicker-next a {
+	background: url(images/cccccc_7x7_arrow_right.gif) 50% 50% no-repeat;
+}
+.ui-datepicker-prev a:hover {
+	background: url(images/eeeeee_7x7_arrow_left.gif) 50% 50% no-repeat;
+}
+.ui-datepicker-next a:hover {
+	background: url(images/eeeeee_7x7_arrow_right.gif) 50% 50% no-repeat;
+}
+.ui-datepicker-prev a:active {
+	background: url(images/ff7700_7x7_arrow_left.gif) 50% 50% no-repeat;
+}
+.ui-datepicker-next a:active {
+	background: url(images/ff7700_7x7_arrow_right.gif) 50% 50% no-repeat;
+}
+.ui-datepicker-header select {
+	border: 1px solid #666666;
+	color: #111111;
+	background: #666666;
+	font-size: 1em;
+	line-height: 1.4em;
+	position: absolute;
+	top: .5em;
+	margin: 0 !important;
+}
+.ui-datepicker-header option:focus, .ui-datepicker-header option:hover {
+	background: #ff7700;
+}
+.ui-datepicker-header select.ui-datepicker-new-month {
+	width: 7em;
+	left: 2.2em;
+}
+.ui-datepicker-header select.ui-datepicker-new-year {
+	width: 5em;
+	left: 9.4em;
+}
+table.ui-datepicker {
+	width: 15.5em;
+	text-align: right;
+}
+table.ui-datepicker td a {
+	padding: .1em .3em .1em 0;
+	display: block;
+	color: #111111;
+	background: #666666 url(images/666666_40x100_textures_02_glass_20.png) 0 50% repeat-x;
+	cursor: pointer;
+	border: 1px solid #000000;
+}
+table.ui-datepicker td a:hover {
+	border: 1px solid #222222;
+	color: #111111;
+	background: #ff7700 url(images/ff7700_40x100_textures_02_glass_40.png) 0 50% repeat-x;
+}
+table.ui-datepicker td a:active {
+	border: 1px solid #ff3363;
+	color: #eeeeee;
+	background: #ff3363 url(images/ff3363_40x100_textures_05_inset_soft_90.png) 0 50% repeat-x;
+}
+table.ui-datepicker .ui-datepicker-title-row td {
+	padding: .3em 0;
+	text-align: center;
+	font-size: .9em;
+	color: #ffffff;
+	text-transform: uppercase;
+}
+table.ui-datepicker .ui-datepicker-title-row td a {
+	color: #ffffff;
+}
+.ui-datepicker-cover {
+	display: none;
+	display/**/: block;
+	position: absolute;
+	z-index: -1;
+	filter: mask();
+	top: -4px;
+	left: -4px;
+	width: 193px;
+	height: 200px;
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+/*
+Generic ThemeRoller Classes
+>> Make your jQuery Components ThemeRoller-Compatible!
+*/
+
+/*component global class*/
+.ui-component {
+	/*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none;
+	font-family: Arial, sans-serif;
+	font-size: 11px;
+}
+/*component content styles*/
+.ui-component-content {
+	border: 1px solid #666666;
+	background: #000000 url(images/000000_40x100_textures_05_inset_soft_25.png) 0 bottom repeat-x;
+	color: #ffffff;
+}
+.ui-component-content a {
+	color: #ffffff;
+	text-decoration: underline;
+}
+/*component states*/
+.ui-default-state {
+	border: 1px solid #666666;
+	background: #666666 url(images/666666_40x100_textures_02_glass_20.png) 0 50% repeat-x;
+	font-weight: normal;
+	color: #111111 !important;
+}
+.ui-default-state a {
+	color: #111111;
+}
+.ui-default-state:hover, .ui-hover-state {
+	border: 1px solid #222222;
+	background: #ff7700 url(images/ff7700_40x100_textures_02_glass_40.png) 0 50% repeat-x;
+	font-weight: normal;
+	color: #111111 !important;
+}
+.ui-hover-state a {
+	color: #111111;
+}
+.ui-default-state:active, .ui-active-state {
+	border: 1px solid #ff3363;
+	background: #ff3363 url(images/ff3363_40x100_textures_05_inset_soft_90.png) 0 50% repeat-x;
+	font-weight: normal;
+	color: #eeeeee !important;
+	outline: none;
+}
+.ui-active-state a {
+	color: #eeeeee;
+	outline: none;
+}
+/*icons*/
+.ui-arrow-right-default {background: url(images/cccccc_7x7_arrow_right.gif) no-repeat 50% 50%;}
+.ui-arrow-right-default:hover, .ui-arrow-right-hover {background: url(images/eeeeee_7x7_arrow_right.gif) no-repeat 50% 50%;}
+.ui-arrow-right-default:active, .ui-arrow-right-active {background: url(images/ff7700_7x7_arrow_right.gif) no-repeat 50% 50%;}
+.ui-arrow-right-content {background: url(images/cccccc_7x7_arrow_right.gif) no-repeat 50% 50%;}
+
+.ui-arrow-left-default {background: url(images/cccccc_7x7_arrow_left.gif) no-repeat 50% 50%;}
+.ui-arrow-left-default:hover, .ui-arrow-left-hover {background: url(images/eeeeee_7x7_arrow_left.gif) no-repeat 50% 50%;}
+.ui-arrow-left-default:active, .ui-arrow-left-active {background: url(images/ff7700_7x7_arrow_left.gif) no-repeat 50% 50%;}
+.ui-arrow-left-content {background: url(images/cccccc_7x7_arrow_left.gif) no-repeat 50% 50%;}
+
+.ui-arrow-down-default {background: url(images/cccccc_7x7_arrow_down.gif) no-repeat 50% 50%;}
+.ui-arrow-down-default:hover, .ui-arrow-down-hover {background: url(images/eeeeee_7x7_arrow_down.gif) no-repeat 50% 50%;}
+.ui-arrow-down-default:active, .ui-arrow-down-active {background: url(images/ff7700_7x7_arrow_down.gif) no-repeat 50% 50%;}
+.ui-arrow-down-content {background: url(images/cccccc_7x7_arrow_down.gif) no-repeat 50% 50%;}
+
+.ui-arrow-up-default {background: url(images/cccccc_7x7_arrow_up.gif) no-repeat 50% 50%;}
+.ui-arrow-up-default:hover, .ui-arrow-up-hover {background: url(images/eeeeee_7x7_arrow_up.gif) no-repeat 50% 50%;}
+.ui-arrow-up-default:active, .ui-arrow-up-active {background: url(images/ff7700_7x7_arrow_up.gif) no-repeat 50% 50%;}
+.ui-arrow-up-content {background: url(images/cccccc_7x7_arrow_up.gif) no-repeat 50% 50%;}
+
+.ui-close-default {background: url(images/cccccc_11x11_icon_close.gif) no-repeat 50% 50%;}
+.ui-close-default:hover, .ui-close-hover {background: url(images/eeeeee_11x11_icon_close.gif) no-repeat 50% 50%;}
+.ui-close-default:active, .ui-close-active {background: url(images/ff7700_11x11_icon_close.gif) no-repeat 50% 50%;}
+.ui-close-content {background: url(images/ff7700_11x11_icon_close.gif) no-repeat 50% 50%;}
+
+.ui-folder-closed-default {background: url(images/cccccc_11x11_icon_folder_closed.gif) no-repeat 50% 50%;}
+.ui-folder-closed-default:hover, .ui-folder-closed-hover {background: url(images/eeeeee_11x11_icon_folder_closed.gif) no-repeat 50% 50%;}
+.ui-folder-closed-default:active, .ui-folder-closed-active {background: url(images/ff7700_11x11_icon_folder_closed.gif) no-repeat 50% 50%;}
+.ui-folder-closed-content {background: url(images/cccccc_11x11_icon_folder_closed.gif) no-repeat 50% 50%;}
+
+.ui-folder-open-default {background: url(images/cccccc_11x11_icon_folder_open.gif) no-repeat 50% 50%;}
+.ui-folder-open-default:hover, .ui-folder-open-hover {background: url(images/eeeeee_11x11_icon_folder_open.gif) no-repeat 50% 50%;}
+.ui-folder-open-default:active, .ui-folder-open-active {background: url(images/ff7700_11x11_icon_folder_open.gif) no-repeat 50% 50%;}
+.ui-folder-open-content {background: url(images/ff7700_11x11_icon_folder_open.gif) no-repeat 50% 50%;}
+
+.ui-doc-default {background: url(images/cccccc_11x11_icon_doc.gif) no-repeat 50% 50%;}
+.ui-doc-default:hover, .ui-doc-hover {background: url(images/eeeeee_11x11_icon_doc.gif) no-repeat 50% 50%;}
+.ui-doc-default:active, .ui-doc-active {background: url(images/ff7700_11x11_icon_doc.gif) no-repeat 50% 50%;}
+.ui-doc-content {background: url(images/cccccc_11x11_icon_doc.gif) no-repeat 50% 50%;}
+
+.ui-arrows-leftright-default {background: url(images/cccccc_11x11_icon_arrows_leftright.gif) no-repeat 50% 50%;}
+.ui-arrows-leftright-default:hover, .ui-arrows-leftright-hover {background: url(images/eeeeee_11x11_icon_arrows_leftright.gif) no-repeat 50% 50%;}
+.ui-arrows-leftright-default:active, .ui-arrows-leftright-active {background: url(images/ff7700_11x11_icon_arrows_leftright.gif) no-repeat 50% 50%;}
+.ui-arrows-leftright-content {background: url(images/cccccc_11x11_icon_arrows_leftright.gif) no-repeat 50% 50%;}
+
+.ui-arrows-updown-default {background: url(images/cccccc_11x11_icon_arrows_updown.gif) no-repeat 50% 50%;}
+.ui-arrows-updown-default:hover, .ui-arrows-updown-hover {background: url(images/eeeeee_11x11_icon_arrows_updown.gif) no-repeat 50% 50%;}
+.ui-arrows-updown-default:active, .ui-arrows-updown-active {background: url(images/ff7700_11x11_icon_arrows_updown.gif) no-repeat 50% 50%;}
+.ui-arrows-updown-content {background: url(images/cccccc_11x11_icon_arrows_updown.gif) no-repeat 50% 50%;}
+
+.ui-minus-default {background: url(images/cccccc_11x11_icon_minus.gif) no-repeat 50% 50%;}
+.ui-minus-default:hover, .ui-minus-hover {background: url(images/eeeeee_11x11_icon_minus.gif) no-repeat 50% 50%;}
+.ui-minus-default:active, .ui-minus-active {background: url(images/ff7700_11x11_icon_minus.gif) no-repeat 50% 50%;}
+.ui-minus-content {background: url(images/cccccc_11x11_icon_minus.gif) no-repeat 50% 50%;}
+
+.ui-plus-default {background: url(images/cccccc_11x11_icon_plus.gif) no-repeat 50% 50%;}
+.ui-plus-default:hover, .ui-plus-hover {background: url(images/eeeeee_11x11_icon_plus.gif) no-repeat 50% 50%;}
+.ui-plus-default:active, .ui-plus-active {background: url(images/ff7700_11x11_icon_plus.gif) no-repeat 50% 50%;}
+.ui-plus-content {background: url(images/cccccc_11x11_icon_plus.gif) no-repeat 50% 50%;}
+
+/*hidden elements*/
+.ui-hidden {
+	display: none;/* for accessible hiding: position: absolute; left: -99999999px*/;
+}
+.ui-accessible-hidden {
+	 position: absolute; left: -99999999px;
+}
+/*reset styles*/
+.ui-reset {
+	/*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none;
+}
+/*clearfix class*/
+.ui-clearfix:after {
+    content: "."; 
+    display: block; 
+    height: 0; 
+    clear: both; 
+    visibility: hidden;
+}
+.ui-clearfix {display: inline-block;}
+/* Hides from IE-mac \*/
+* html .ui-clearfix {height: 1%;}
+.ui-clearfix {display: block;}
+/* End hide from IE-mac */
+
+/* Note: for resizable styles, use the styles listed above in the dialog section */
+
+
