Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Merge commit 'e40f386' into development

  • Loading branch information...
commit 484de731316832228574c84183161fe42391af06 2 parents ad890a7 + e40f386
@lstein lstein authored
View
58 Build
@@ -0,0 +1,58 @@
+#! /usr/bin/perl
+
+use strict;
+use Cwd;
+use File::Basename;
+use File::Spec;
+
+sub magic_number_matches {
+ return 0 unless -e '_build/magicnum';
+ local *FH;
+ open FH, '_build/magicnum' or return 0;
+ my $filenum = <FH>;
+ close FH;
+ return $filenum == 29331;
+}
+
+my $progname;
+my $orig_dir;
+BEGIN {
+ $^W = 1; # Use warnings
+ $progname = basename($0);
+ $orig_dir = Cwd::cwd();
+ my $base_dir = '/home/aelnaiem/GBrowse';
+ if (!magic_number_matches()) {
+ unless (chdir($base_dir)) {
+ die ("Couldn't chdir($base_dir), aborting\n");
+ }
+ unless (magic_number_matches()) {
+ die ("Configuration seems to be out of date, please re-run 'perl Build.PL' again.\n");
+ }
+ }
+ unshift @INC,
+ (
+ '/home/aelnaiem/GBrowse/install_util'
+ );
+}
+
+close(*DATA) unless eof(*DATA); # ensure no open handles to this script
+
+use GBrowseInstall;
+Module::Build->VERSION(q{0.38});
+
+# Some platforms have problems setting $^X in shebang contexts, fix it up here
+$^X = Module::Build->find_perl_interpreter;
+
+if (-e 'Build.PL' and not GBrowseInstall->up_to_date('Build.PL', $progname)) {
+ warn "Warning: Build.PL has been altered. You may need to run 'perl Build.PL' again.\n";
+}
+
+# This should have just enough arguments to be able to bootstrap the rest.
+my $build = GBrowseInstall->resume (
+ properties => {
+ config_dir => '_build',
+ orig_dir => $orig_dir,
+ },
+);
+
+$build->dispatch;
View
371 MYMETA.json
@@ -0,0 +1,371 @@
+{
+ "abstract" : "The GMOD Generic Genome Browser",
+ "author" : [
+ "Lincoln Stein <lincoln.stein@gmail.com>"
+ ],
+ "dynamic_config" : 0,
+ "generated_by" : "Module::Build version 0.38, CPAN::Meta::Converter version 2.110930",
+ "license" : [
+ "perl_5"
+ ],
+ "meta-spec" : {
+ "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
+ "version" : "2"
+ },
+ "name" : "GBrowse",
+ "prereqs" : {
+ "build" : {
+ "requires" : {
+ "Capture::Tiny" : 0,
+ "ExtUtils::CBuilder" : 0
+ }
+ },
+ "configure" : {
+ "requires" : {
+ "Module::Build" : "0.38"
+ }
+ },
+ "runtime" : {
+ "recommends" : {
+ "Bio::DB::BigFile" : "1",
+ "Bio::DB::Sam" : "1.2",
+ "Bio::Das" : 0,
+ "Crypt::SSLeay" : 0,
+ "DBD::Pg" : 0,
+ "DBD::SQLite" : 0,
+ "DBD::mysql" : 0,
+ "DBI" : 0,
+ "DB_File::Lock" : 0,
+ "Digest::SHA" : 0,
+ "FCGI" : 0,
+ "File::NFSLock" : 0,
+ "GD::SVG" : 0,
+ "Math::BigInt" : 0,
+ "Net::OpenID::Consumer" : 0,
+ "Net::SMTP::SSL" : 0,
+ "Template" : "2.2",
+ "Term::ReadKey" : 0
+ },
+ "requires" : {
+ "Bio::Graphics" : "2.09",
+ "Bio::Root::Version" : "1.0069",
+ "CGI::Session" : "4.02",
+ "Digest::MD5" : 0,
+ "ExtUtils::CBuilder" : 0,
+ "File::Temp" : 0,
+ "GD" : "2.07",
+ "IO::String" : 0,
+ "JSON" : 0,
+ "LWP" : 0,
+ "Statistics::Descriptive" : 0,
+ "Storable" : 0,
+ "perl" : "5.008"
+ }
+ }
+ },
+ "provides" : {
+ "Bio::DB::GFF::Aggregator::match_gap" : {
+ "file" : "lib/Bio/DB/GFF/Aggregator/match_gap.pm",
+ "version" : 0
+ },
+ "Bio::DB::GFF::Aggregator::reftranscript" : {
+ "file" : "lib/Bio/DB/GFF/Aggregator/reftranscript.pm",
+ "version" : "0.10"
+ },
+ "Bio::DB::GFF::Aggregator::waba_alignment" : {
+ "file" : "lib/Bio/DB/GFF/Aggregator/waba_alignment.pm",
+ "version" : "0.20"
+ },
+ "Bio::DB::GFF::Aggregator::wormbase_gene" : {
+ "file" : "lib/Bio/DB/GFF/Aggregator/wormbase_gene.pm",
+ "version" : "0.30"
+ },
+ "Bio::DB::SeqFeature::Store::BedLoader" : {
+ "file" : "lib/Bio/DB/SeqFeature/Store/BedLoader.pm",
+ "version" : 0
+ },
+ "Bio::DB::Tagger" : {
+ "file" : "lib/Bio/DB/Tagger.pm",
+ "version" : "1.00"
+ },
+ "Bio::DB::Tagger::Iterator" : {
+ "file" : "lib/Bio/DB/Tagger.pm",
+ "version" : 0
+ },
+ "Bio::DB::Tagger::Tag" : {
+ "file" : "lib/Bio/DB/Tagger/Tag.pm",
+ "version" : 0
+ },
+ "Bio::DB::Tagger::mysql" : {
+ "file" : "lib/Bio/DB/Tagger/mysql.pm",
+ "version" : 0
+ },
+ "Bio::Graphics::Browser2" : {
+ "file" : "lib/Bio/Graphics/Browser2.pm",
+ "version" : "2.33"
+ },
+ "Bio::Graphics::Browser2::Action" : {
+ "file" : "lib/Bio/Graphics/Browser2/Action.pm",
+ "version" : 0
+ },
+ "Bio::Graphics::Browser2::AdminTracks" : {
+ "file" : "lib/Bio/Graphics/Browser2/UserTracks.pm",
+ "version" : 0
+ },
+ "Bio::Graphics::Browser2::AuthorizedFeatureFile" : {
+ "file" : "lib/Bio/Graphics/Browser2/AuthorizedFeatureFile.pm",
+ "version" : 0
+ },
+ "Bio::Graphics::Browser2::CAlign" : {
+ "file" : "lib/Bio/Graphics/Browser2/CAlign.pm",
+ "version" : 0
+ },
+ "Bio::Graphics::Browser2::CachedTrack" : {
+ "file" : "lib/Bio/Graphics/Browser2/CachedTrack.pm",
+ "version" : 0
+ },
+ "Bio::Graphics::Browser2::DataBase" : {
+ "file" : "lib/Bio/Graphics/Browser2/DataBase.pm",
+ "version" : 0
+ },
+ "Bio::Graphics::Browser2::DataLoader" : {
+ "file" : "lib/Bio/Graphics/Browser2/DataLoader.pm",
+ "version" : 0
+ },
+ "Bio::Graphics::Browser2::DataLoader::bam" : {
+ "file" : "lib/Bio/Graphics/Browser2/DataLoader/bam.pm",
+ "version" : 0
+ },
+ "Bio::Graphics::Browser2::DataLoader::bed" : {
+ "file" : "lib/Bio/Graphics/Browser2/DataLoader/bed.pm",
+ "version" : 0
+ },
+ "Bio::Graphics::Browser2::DataLoader::bigwig" : {
+ "file" : "lib/Bio/Graphics/Browser2/DataLoader/bigwig.pm",
+ "version" : 0
+ },
+ "Bio::Graphics::Browser2::DataLoader::featurefile" : {
+ "file" : "lib/Bio/Graphics/Browser2/DataLoader/featurefile.pm",
+ "version" : 0
+ },
+ "Bio::Graphics::Browser2::DataLoader::generic" : {
+ "file" : "lib/Bio/Graphics/Browser2/DataLoader/generic.pm",
+ "version" : 0
+ },
+ "Bio::Graphics::Browser2::DataLoader::gff" : {
+ "file" : "lib/Bio/Graphics/Browser2/DataLoader/gff.pm",
+ "version" : 0
+ },
+ "Bio::Graphics::Browser2::DataLoader::gff3" : {
+ "file" : "lib/Bio/Graphics/Browser2/DataLoader/gff3.pm",
+ "version" : 0
+ },
+ "Bio::Graphics::Browser2::DataLoader::sam" : {
+ "file" : "lib/Bio/Graphics/Browser2/DataLoader/sam.pm",
+ "version" : 0
+ },
+ "Bio::Graphics::Browser2::DataLoader::wiggle" : {
+ "file" : "lib/Bio/Graphics/Browser2/DataLoader/wiggle.pm",
+ "version" : 0
+ },
+ "Bio::Graphics::Browser2::DataSource" : {
+ "file" : "lib/Bio/Graphics/Browser2/DataSource.pm",
+ "version" : 0
+ },
+ "Bio::Graphics::Browser2::ExternalData" : {
+ "file" : "lib/Bio/Graphics/Browser2/ExternalData.pm",
+ "version" : 0
+ },
+ "Bio::Graphics::Browser2::GFFhelper" : {
+ "file" : "lib/Bio/Graphics/Browser2/GFFhelper.pm",
+ "version" : 0
+ },
+ "Bio::Graphics::Browser2::I18n" : {
+ "file" : "lib/Bio/Graphics/Browser2/I18n.pm",
+ "version" : 0
+ },
+ "Bio::Graphics::Browser2::Markup" : {
+ "file" : "lib/Bio/Graphics/Browser2/Markup.pm",
+ "version" : 0
+ },
+ "Bio::Graphics::Browser2::MetaDB" : {
+ "file" : "lib/Bio/Graphics/Browser2/RegionSearch.pm",
+ "version" : 0
+ },
+ "Bio::Graphics::Browser2::MetaSegment" : {
+ "file" : "lib/Bio/Graphics/Browser2/RegionSearch.pm",
+ "version" : 0
+ },
+ "Bio::Graphics::Browser2::MetaSegment::Iterator" : {
+ "file" : "lib/Bio/Graphics/Browser2/RegionSearch.pm",
+ "version" : 0
+ },
+ "Bio::Graphics::Browser2::OptionPick" : {
+ "file" : "lib/Bio/Graphics/Browser2/OptionPick.pm",
+ "version" : 0
+ },
+ "Bio::Graphics::Browser2::PadAlignment" : {
+ "file" : "lib/Bio/Graphics/Browser2/PadAlignment.pm",
+ "version" : 0
+ },
+ "Bio::Graphics::Browser2::Plugin" : {
+ "file" : "lib/Bio/Graphics/Browser2/Plugin.pm",
+ "version" : "0.30"
+ },
+ "Bio::Graphics::Browser2::Plugin::AuthPlugin" : {
+ "file" : "lib/Bio/Graphics/Browser2/Plugin/AuthPlugin.pm",
+ "version" : 0
+ },
+ "Bio::Graphics::Browser2::PluginSet" : {
+ "file" : "lib/Bio/Graphics/Browser2/PluginSet.pm",
+ "version" : 0
+ },
+ "Bio::Graphics::Browser2::Realign" : {
+ "file" : "lib/Bio/Graphics/Browser2/Realign.pm",
+ "version" : 0
+ },
+ "Bio::Graphics::Browser2::Region" : {
+ "file" : "lib/Bio/Graphics/Browser2/Region.pm",
+ "version" : 0
+ },
+ "Bio::Graphics::Browser2::RegionSearch" : {
+ "file" : "lib/Bio/Graphics/Browser2/RegionSearch.pm",
+ "version" : 0
+ },
+ "Bio::Graphics::Browser2::RemoteSet" : {
+ "file" : "lib/Bio/Graphics/Browser2/RemoteSet.pm",
+ "version" : 0
+ },
+ "Bio::Graphics::Browser2::Render" : {
+ "file" : "lib/Bio/Graphics/Browser2/Render.pm",
+ "version" : 0
+ },
+ "Bio::Graphics::Browser2::Render::HTML" : {
+ "file" : "lib/Bio/Graphics/Browser2/Render/HTML.pm",
+ "version" : 0
+ },
+ "Bio::Graphics::Browser2::Render::Login" : {
+ "file" : "lib/Bio/Graphics/Browser2/Render/Login.pm",
+ "version" : 0
+ },
+ "Bio::Graphics::Browser2::Render::Slave" : {
+ "file" : "lib/Bio/Graphics/Browser2/Render/Slave.pm",
+ "version" : 0
+ },
+ "Bio::Graphics::Browser2::Render::Slave::Status" : {
+ "file" : "lib/Bio/Graphics/Browser2/Render/Slave/Status.pm",
+ "version" : 0
+ },
+ "Bio::Graphics::Browser2::RenderPanels" : {
+ "file" : "lib/Bio/Graphics/Browser2/RenderPanels.pm",
+ "version" : 0
+ },
+ "Bio::Graphics::Browser2::Session" : {
+ "file" : "lib/Bio/Graphics/Browser2/Session.pm",
+ "version" : 0
+ },
+ "Bio::Graphics::Browser2::Shellwords" : {
+ "file" : "lib/Bio/Graphics/Browser2/Shellwords.pm",
+ "version" : 0
+ },
+ "Bio::Graphics::Browser2::SubtrackTable" : {
+ "file" : "lib/Bio/Graphics/Browser2/SubtrackTable.pm",
+ "version" : 0
+ },
+ "Bio::Graphics::Browser2::TrackDumper" : {
+ "file" : "lib/Bio/Graphics/Browser2/TrackDumper.pm",
+ "version" : 0
+ },
+ "Bio::Graphics::Browser2::UserConf" : {
+ "file" : "lib/Bio/Graphics/Browser2/UserTracks.pm",
+ "version" : 0
+ },
+ "Bio::Graphics::Browser2::UserDB" : {
+ "file" : "lib/Bio/Graphics/Browser2/UserDB.pm",
+ "version" : "0.5"
+ },
+ "Bio::Graphics::Browser2::UserTracks" : {
+ "file" : "lib/Bio/Graphics/Browser2/UserTracks.pm",
+ "version" : 0
+ },
+ "Bio::Graphics::Browser2::UserTracks::Database" : {
+ "file" : "lib/Bio/Graphics/Browser2/UserTracks/Database.pm",
+ "version" : 0
+ },
+ "Bio::Graphics::Browser2::UserTracks::Filesystem" : {
+ "file" : "lib/Bio/Graphics/Browser2/UserTracks/Filesystem.pm",
+ "version" : 0
+ },
+ "Bio::Graphics::Browser2::Util" : {
+ "file" : "lib/Bio/Graphics/Browser2/Util.pm",
+ "version" : 0
+ },
+ "Bio::Graphics::GBrowseFeature" : {
+ "file" : "lib/Bio/Graphics/GBrowseFeature.pm",
+ "version" : 0
+ },
+ "Bio::Graphics::Karyotype" : {
+ "file" : "lib/Bio/Graphics/Karyotype.pm",
+ "version" : 0
+ },
+ "Bio::Graphics::Wiggle::Loader::Nosample" : {
+ "file" : "lib/Bio/Graphics/Browser2/DataLoader/wiggle.pm",
+ "version" : 0
+ },
+ "CGI::Toggle" : {
+ "file" : "lib/CGI/Toggle.pm",
+ "version" : 0
+ },
+ "FakeHomol" : {
+ "file" : "lib/Bio/Graphics/Browser2/GFFhelper.pm",
+ "version" : 0
+ },
+ "LRUCache" : {
+ "file" : "lib/Bio/Graphics/Browser2/DataBase.pm",
+ "version" : 0
+ },
+ "Legacy::DB::SyntenyBlock" : {
+ "file" : "lib/Legacy/DB/SyntenyBlock.pm",
+ "version" : 0
+ },
+ "Legacy::DB::SyntenyIO" : {
+ "file" : "lib/Legacy/DB/SyntenyIO.pm",
+ "version" : 0
+ },
+ "Legacy::Graphics::Browser" : {
+ "file" : "lib/Legacy/Graphics/Browser.pm",
+ "version" : "1.17"
+ },
+ "Legacy::Graphics::Browser::I18n" : {
+ "file" : "lib/Legacy/Graphics/Browser/I18n.pm",
+ "version" : "1.01"
+ },
+ "Legacy::Graphics::Browser::PageSettings" : {
+ "file" : "lib/Legacy/Graphics/Browser/PageSettings.pm",
+ "version" : 0
+ },
+ "Legacy::Graphics::Browser::Synteny" : {
+ "file" : "lib/Legacy/Graphics/Browser/Synteny.pm",
+ "version" : "0.01"
+ },
+ "Legacy::Graphics::Browser::Util" : {
+ "file" : "lib/Legacy/Graphics/Browser/Util.pm",
+ "version" : 0
+ },
+ "Legacy::Graphics::BrowserConfig" : {
+ "file" : "lib/Legacy/Graphics/Browser.pm",
+ "version" : 0
+ },
+ "MyFeatureFileLoader" : {
+ "file" : "lib/Bio/Graphics/Browser2/DataLoader/featurefile.pm",
+ "version" : 0
+ }
+ },
+ "release_status" : "stable",
+ "resources" : {
+ "license" : [
+ "http://dev.perl.org/licenses/"
+ ]
+ },
+ "version" : "2.33"
+}
View
275 MYMETA.yml
@@ -0,0 +1,275 @@
+---
+abstract: 'The GMOD Generic Genome Browser'
+author:
+ - 'Lincoln Stein <lincoln.stein@gmail.com>'
+build_requires:
+ Capture::Tiny: 0
+ ExtUtils::CBuilder: 0
+configure_requires:
+ Module::Build: 0.38
+dynamic_config: 0
+generated_by: 'Module::Build version 0.38, CPAN::Meta::Converter version 2.110930'
+license: perl
+meta-spec:
+ url: http://module-build.sourceforge.net/META-spec-v1.4.html
+ version: 1.4
+name: GBrowse
+provides:
+ Bio::DB::GFF::Aggregator::match_gap:
+ file: lib/Bio/DB/GFF/Aggregator/match_gap.pm
+ version: 0
+ Bio::DB::GFF::Aggregator::reftranscript:
+ file: lib/Bio/DB/GFF/Aggregator/reftranscript.pm
+ version: 0.10
+ Bio::DB::GFF::Aggregator::waba_alignment:
+ file: lib/Bio/DB/GFF/Aggregator/waba_alignment.pm
+ version: 0.20
+ Bio::DB::GFF::Aggregator::wormbase_gene:
+ file: lib/Bio/DB/GFF/Aggregator/wormbase_gene.pm
+ version: 0.30
+ Bio::DB::SeqFeature::Store::BedLoader:
+ file: lib/Bio/DB/SeqFeature/Store/BedLoader.pm
+ version: 0
+ Bio::DB::Tagger:
+ file: lib/Bio/DB/Tagger.pm
+ version: 1.00
+ Bio::DB::Tagger::Iterator:
+ file: lib/Bio/DB/Tagger.pm
+ version: 0
+ Bio::DB::Tagger::Tag:
+ file: lib/Bio/DB/Tagger/Tag.pm
+ version: 0
+ Bio::DB::Tagger::mysql:
+ file: lib/Bio/DB/Tagger/mysql.pm
+ version: 0
+ Bio::Graphics::Browser2:
+ file: lib/Bio/Graphics/Browser2.pm
+ version: 2.33
+ Bio::Graphics::Browser2::Action:
+ file: lib/Bio/Graphics/Browser2/Action.pm
+ version: 0
+ Bio::Graphics::Browser2::AdminTracks:
+ file: lib/Bio/Graphics/Browser2/UserTracks.pm
+ version: 0
+ Bio::Graphics::Browser2::AuthorizedFeatureFile:
+ file: lib/Bio/Graphics/Browser2/AuthorizedFeatureFile.pm
+ version: 0
+ Bio::Graphics::Browser2::CAlign:
+ file: lib/Bio/Graphics/Browser2/CAlign.pm
+ version: 0
+ Bio::Graphics::Browser2::CachedTrack:
+ file: lib/Bio/Graphics/Browser2/CachedTrack.pm
+ version: 0
+ Bio::Graphics::Browser2::DataBase:
+ file: lib/Bio/Graphics/Browser2/DataBase.pm
+ version: 0
+ Bio::Graphics::Browser2::DataLoader:
+ file: lib/Bio/Graphics/Browser2/DataLoader.pm
+ version: 0
+ Bio::Graphics::Browser2::DataLoader::bam:
+ file: lib/Bio/Graphics/Browser2/DataLoader/bam.pm
+ version: 0
+ Bio::Graphics::Browser2::DataLoader::bed:
+ file: lib/Bio/Graphics/Browser2/DataLoader/bed.pm
+ version: 0
+ Bio::Graphics::Browser2::DataLoader::bigwig:
+ file: lib/Bio/Graphics/Browser2/DataLoader/bigwig.pm
+ version: 0
+ Bio::Graphics::Browser2::DataLoader::featurefile:
+ file: lib/Bio/Graphics/Browser2/DataLoader/featurefile.pm
+ version: 0
+ Bio::Graphics::Browser2::DataLoader::generic:
+ file: lib/Bio/Graphics/Browser2/DataLoader/generic.pm
+ version: 0
+ Bio::Graphics::Browser2::DataLoader::gff:
+ file: lib/Bio/Graphics/Browser2/DataLoader/gff.pm
+ version: 0
+ Bio::Graphics::Browser2::DataLoader::gff3:
+ file: lib/Bio/Graphics/Browser2/DataLoader/gff3.pm
+ version: 0
+ Bio::Graphics::Browser2::DataLoader::sam:
+ file: lib/Bio/Graphics/Browser2/DataLoader/sam.pm
+ version: 0
+ Bio::Graphics::Browser2::DataLoader::wiggle:
+ file: lib/Bio/Graphics/Browser2/DataLoader/wiggle.pm
+ version: 0
+ Bio::Graphics::Browser2::DataSource:
+ file: lib/Bio/Graphics/Browser2/DataSource.pm
+ version: 0
+ Bio::Graphics::Browser2::ExternalData:
+ file: lib/Bio/Graphics/Browser2/ExternalData.pm
+ version: 0
+ Bio::Graphics::Browser2::GFFhelper:
+ file: lib/Bio/Graphics/Browser2/GFFhelper.pm
+ version: 0
+ Bio::Graphics::Browser2::I18n:
+ file: lib/Bio/Graphics/Browser2/I18n.pm
+ version: 0
+ Bio::Graphics::Browser2::Markup:
+ file: lib/Bio/Graphics/Browser2/Markup.pm
+ version: 0
+ Bio::Graphics::Browser2::MetaDB:
+ file: lib/Bio/Graphics/Browser2/RegionSearch.pm
+ version: 0
+ Bio::Graphics::Browser2::MetaSegment:
+ file: lib/Bio/Graphics/Browser2/RegionSearch.pm
+ version: 0
+ Bio::Graphics::Browser2::MetaSegment::Iterator:
+ file: lib/Bio/Graphics/Browser2/RegionSearch.pm
+ version: 0
+ Bio::Graphics::Browser2::OptionPick:
+ file: lib/Bio/Graphics/Browser2/OptionPick.pm
+ version: 0
+ Bio::Graphics::Browser2::PadAlignment:
+ file: lib/Bio/Graphics/Browser2/PadAlignment.pm
+ version: 0
+ Bio::Graphics::Browser2::Plugin:
+ file: lib/Bio/Graphics/Browser2/Plugin.pm
+ version: 0.30
+ Bio::Graphics::Browser2::Plugin::AuthPlugin:
+ file: lib/Bio/Graphics/Browser2/Plugin/AuthPlugin.pm
+ version: 0
+ Bio::Graphics::Browser2::PluginSet:
+ file: lib/Bio/Graphics/Browser2/PluginSet.pm
+ version: 0
+ Bio::Graphics::Browser2::Realign:
+ file: lib/Bio/Graphics/Browser2/Realign.pm
+ version: 0
+ Bio::Graphics::Browser2::Region:
+ file: lib/Bio/Graphics/Browser2/Region.pm
+ version: 0
+ Bio::Graphics::Browser2::RegionSearch:
+ file: lib/Bio/Graphics/Browser2/RegionSearch.pm
+ version: 0
+ Bio::Graphics::Browser2::RemoteSet:
+ file: lib/Bio/Graphics/Browser2/RemoteSet.pm
+ version: 0
+ Bio::Graphics::Browser2::Render:
+ file: lib/Bio/Graphics/Browser2/Render.pm
+ version: 0
+ Bio::Graphics::Browser2::Render::HTML:
+ file: lib/Bio/Graphics/Browser2/Render/HTML.pm
+ version: 0
+ Bio::Graphics::Browser2::Render::Login:
+ file: lib/Bio/Graphics/Browser2/Render/Login.pm
+ version: 0
+ Bio::Graphics::Browser2::Render::Slave:
+ file: lib/Bio/Graphics/Browser2/Render/Slave.pm
+ version: 0
+ Bio::Graphics::Browser2::Render::Slave::Status:
+ file: lib/Bio/Graphics/Browser2/Render/Slave/Status.pm
+ version: 0
+ Bio::Graphics::Browser2::RenderPanels:
+ file: lib/Bio/Graphics/Browser2/RenderPanels.pm
+ version: 0
+ Bio::Graphics::Browser2::Session:
+ file: lib/Bio/Graphics/Browser2/Session.pm
+ version: 0
+ Bio::Graphics::Browser2::Shellwords:
+ file: lib/Bio/Graphics/Browser2/Shellwords.pm
+ version: 0
+ Bio::Graphics::Browser2::SubtrackTable:
+ file: lib/Bio/Graphics/Browser2/SubtrackTable.pm
+ version: 0
+ Bio::Graphics::Browser2::TrackDumper:
+ file: lib/Bio/Graphics/Browser2/TrackDumper.pm
+ version: 0
+ Bio::Graphics::Browser2::UserConf:
+ file: lib/Bio/Graphics/Browser2/UserTracks.pm
+ version: 0
+ Bio::Graphics::Browser2::UserDB:
+ file: lib/Bio/Graphics/Browser2/UserDB.pm
+ version: 0.5
+ Bio::Graphics::Browser2::UserTracks:
+ file: lib/Bio/Graphics/Browser2/UserTracks.pm
+ version: 0
+ Bio::Graphics::Browser2::UserTracks::Database:
+ file: lib/Bio/Graphics/Browser2/UserTracks/Database.pm
+ version: 0
+ Bio::Graphics::Browser2::UserTracks::Filesystem:
+ file: lib/Bio/Graphics/Browser2/UserTracks/Filesystem.pm
+ version: 0
+ Bio::Graphics::Browser2::Util:
+ file: lib/Bio/Graphics/Browser2/Util.pm
+ version: 0
+ Bio::Graphics::GBrowseFeature:
+ file: lib/Bio/Graphics/GBrowseFeature.pm
+ version: 0
+ Bio::Graphics::Karyotype:
+ file: lib/Bio/Graphics/Karyotype.pm
+ version: 0
+ Bio::Graphics::Wiggle::Loader::Nosample:
+ file: lib/Bio/Graphics/Browser2/DataLoader/wiggle.pm
+ version: 0
+ CGI::Toggle:
+ file: lib/CGI/Toggle.pm
+ version: 0
+ FakeHomol:
+ file: lib/Bio/Graphics/Browser2/GFFhelper.pm
+ version: 0
+ LRUCache:
+ file: lib/Bio/Graphics/Browser2/DataBase.pm
+ version: 0
+ Legacy::DB::SyntenyBlock:
+ file: lib/Legacy/DB/SyntenyBlock.pm
+ version: 0
+ Legacy::DB::SyntenyIO:
+ file: lib/Legacy/DB/SyntenyIO.pm
+ version: 0
+ Legacy::Graphics::Browser:
+ file: lib/Legacy/Graphics/Browser.pm
+ version: 1.17
+ Legacy::Graphics::Browser::I18n:
+ file: lib/Legacy/Graphics/Browser/I18n.pm
+ version: 1.01
+ Legacy::Graphics::Browser::PageSettings:
+ file: lib/Legacy/Graphics/Browser/PageSettings.pm
+ version: 0
+ Legacy::Graphics::Browser::Synteny:
+ file: lib/Legacy/Graphics/Browser/Synteny.pm
+ version: 0.01
+ Legacy::Graphics::Browser::Util:
+ file: lib/Legacy/Graphics/Browser/Util.pm
+ version: 0
+ Legacy::Graphics::BrowserConfig:
+ file: lib/Legacy/Graphics/Browser.pm
+ version: 0
+ MyFeatureFileLoader:
+ file: lib/Bio/Graphics/Browser2/DataLoader/featurefile.pm
+ version: 0
+recommends:
+ Bio::DB::BigFile: 1
+ Bio::DB::Sam: 1.2
+ Bio::Das: 0
+ Crypt::SSLeay: 0
+ DBD::Pg: 0
+ DBD::SQLite: 0
+ DBD::mysql: 0
+ DBI: 0
+ DB_File::Lock: 0
+ Digest::SHA: 0
+ FCGI: 0
+ File::NFSLock: 0
+ GD::SVG: 0
+ Math::BigInt: 0
+ Net::OpenID::Consumer: 0
+ Net::SMTP::SSL: 0
+ Template: 2.2
+ Term::ReadKey: 0
+requires:
+ Bio::Graphics: 2.09
+ Bio::Root::Version: 1.0069
+ CGI::Session: 4.02
+ Digest::MD5: 0
+ ExtUtils::CBuilder: 0
+ File::Temp: 0
+ GD: 2.07
+ IO::String: 0
+ JSON: 0
+ LWP: 0
+ Statistics::Descriptive: 0
+ Storable: 0
+ perl: 5.008
+resources:
+ license: http://dev.perl.org/licenses/
+version: 2.33
View
2  _build/auto_features
@@ -0,0 +1,2 @@
+do{ my $x = {};
+$x; }
View
178 _build/build_params
@@ -0,0 +1,178 @@
+do{ my $x = [
+ {
+ 'ARGV' => []
+ },
+ {},
+ {
+ 'verbose' => undef,
+ 'dist_suffix' => undef,
+ 'PL_files' => undef,
+ 'pollute' => undef,
+ 'metafile2' => 'META.json',
+ 'bindoc_dirs' => [
+ 'blib/script'
+ ],
+ 'conflicts' => {},
+ 'scripts' => undef,
+ 'recommends' => {
+ 'GD::SVG' => 0,
+ 'Bio::Das' => 0,
+ 'DBD::SQLite' => 0,
+ 'DB_File::Lock' => 0,
+ 'Math::BigInt' => 0,
+ 'File::NFSLock' => 0,
+ 'Digest::SHA' => 0,
+ 'Net::OpenID::Consumer' => 0,
+ 'Crypt::SSLeay' => 0,
+ 'Term::ReadKey' => 0,
+ 'FCGI' => 0,
+ 'DBI' => 0,
+ 'Bio::DB::BigFile' => '1',
+ 'DBD::Pg' => 0,
+ 'Template' => '2.2',
+ 'DBD::mysql' => 0,
+ 'Bio::DB::Sam' => '1.2',
+ 'Net::SMTP::SSL' => 0
+ },
+ 'pod_files' => undef,
+ 'dist_version' => '2.33',
+ 'config_dir' => '_build',
+ 'sign' => undef,
+ 'recurse_into' => [],
+ 'build_bat' => 0,
+ 'extra_linker_flags' => [],
+ 'build_class' => 'GBrowseInstall',
+ 'prereq_action_types' => [
+ 'requires',
+ 'build_requires',
+ 'conflicts',
+ 'recommends'
+ ],
+ 'base_dir' => '/home/aelnaiem/GBrowse',
+ 'allow_mb_mismatch' => 0,
+ 'xs_files' => undef,
+ 'destdir' => undef,
+ 'metafile' => 'META.yml',
+ 'mb_version' => '0.38',
+ 'use_tap_harness' => 0,
+ 'test_file_exts' => [
+ '.t'
+ ],
+ 'dist_name' => 'GBrowse',
+ 'has_config_data' => undef,
+ 'install_base' => undef,
+ 'module_name' => 'GBrowse',
+ '_have_c_compiler' => 1,
+ 'recursive_test_files' => undef,
+ 'libdoc_dirs' => [
+ 'blib/lib',
+ 'blib/arch'
+ ],
+ 'perl' => '/usr/bin/perl',
+ 'dist_author' => [
+ 'Lincoln Stein <lincoln.stein@gmail.com>'
+ ],
+ 'bundle_inc' => [],
+ 'use_rcfile' => 1,
+ 'configure_requires' => {},
+ 'test_files' => undef,
+ 'dist_abstract' => 'The GMOD Generic Genome Browser',
+ 'create_readme' => undef,
+ 'prefix_relpaths' => {},
+ 'share_dir' => undef,
+ 'debug' => undef,
+ 'meta_merge' => {},
+ 'get_options' => {},
+ 'dist_version_from' => 'lib/Bio/Graphics/Browser2.pm',
+ '_added_to_INC' => [
+ '/home/aelnaiem/GBrowse/install_util'
+ ],
+ 'auto_configure_requires' => 1,
+ 'create_license' => undef,
+ 'debugger' => undef,
+ 'html_css' => '',
+ 'cpan_client' => 'cpan',
+ 'mymetafile2' => 'MYMETA.json',
+ 'bundle_inc_preload' => [],
+ 'build_elements' => [
+ 'PL',
+ 'support',
+ 'pm',
+ 'xs',
+ 'share_dir',
+ 'pod',
+ 'script',
+ 'conf',
+ 'htdocs',
+ 'cgibin',
+ 'etc',
+ 'database'
+ ],
+ 'release_status' => 'stable',
+ 'needs_compiler' => 1,
+ 'orig_dir' => '/home/aelnaiem/GBrowse',
+ 'include_dirs' => [
+ '/home/aelnaiem/GBrowse/libalign'
+ ],
+ 'installdirs' => 'site',
+ 'mymetafile' => 'MYMETA.yml',
+ 'create_makefile_pl' => 'passthrough',
+ 'magic_number' => undef,
+ 'dynamic_config' => 1,
+ 'install_sets' => {},
+ 'tap_harness_args' => {},
+ 'install_base_relpaths' => {},
+ 'create_packlist' => 1,
+ 'meta_add' => {},
+ 'requires' => {
+ 'IO::String' => 0,
+ 'Storable' => 0,
+ 'Bio::Graphics' => '2.09',
+ 'Bio::Root::Version' => '1.0069',
+ 'perl' => '5.008',
+ 'CGI::Session' => '4.02',
+ 'Digest::MD5' => 0,
+ 'File::Temp' => 0,
+ 'GD' => '2.07',
+ 'JSON' => 0,
+ 'Statistics::Descriptive' => 0,
+ 'LWP' => 0,
+ 'ExtUtils::CBuilder' => 0
+ },
+ 'install_path' => {},
+ 'pm_files' => undef,
+ 'quiet' => undef,
+ 'extra_compiler_flags' => [],
+ 'script_files' => [
+ 'bin/gbrowse_clean.pl',
+ 'bin/gbrowse_set_admin_passwd.pl',
+ 'bin/gbrowse_create_account.pl',
+ 'bin/gbrowse_change_passwd.pl',
+ 'bin/gbrowse_metadb_config.pl',
+ 'bin/gbrowse_slave',
+ 'bin/gbrowse_syn_load_alignment_database.pl',
+ 'bin/gbrowse_syn_load_alignments_msa.pl',
+ 'bin/make_das_conf.pl',
+ 'bin/scan_gbrowse.pl',
+ 'bin/wiggle2gff3.pl',
+ 'bin/gtf2gff3.pl',
+ 'bin/bed2gff3.pl',
+ 'bin/ucsc_genes2gff.pl',
+ 'bin/load_genbank.pl'
+ ],
+ 'build_script' => 'Build',
+ 'original_prefix' => {},
+ 'c_source' => undef,
+ 'program_name' => undef,
+ 'autosplit' => undef,
+ 'license' => 'perl',
+ 'build_requires' => {
+ 'Capture::Tiny' => 0,
+ 'ExtUtils::CBuilder' => 0
+ },
+ 'config' => undef,
+ 'blib' => 'blib',
+ 'prefix' => undef
+ }
+ ];
+$x; }
View
8 _build/cleanup
@@ -0,0 +1,8 @@
+do{ my $x = {
+ 'blib/arch/auto/Bio/Graphics/Browser2/CAlign/CAlign.so' => 1,
+ 'blib/arch/auto/Bio/Graphics/Browser2/CAlign/CAlign.bs' => 1,
+ 'lib/Bio/Graphics/Browser2/CAlign.o' => 1,
+ 'blib' => 1,
+ 'lib/Bio/Graphics/Browser2/CAlign.c' => 1
+ };
+$x; }
View
17 _build/config_data
@@ -0,0 +1,17 @@
+do{ my $x = {
+ 'OpenIDConsumerSecret' => '832477134044410',
+ 'config_done' => 1,
+ 'registration_done' => 1,
+ 'cgibin' => '/home/aelnaiem/GBrowse/cgi-bin',
+ 'databases' => '/var/lib/gbrowse2/databases',
+ 'wwwuser' => 'www-data',
+ 'installconf' => 'y',
+ 'conf' => '/etc/gbrowse2',
+ 'htdocs' => '/home/aelnaiem/GBrowse/htdocs',
+ 'tmp' => '/tmp/gbrowse2',
+ 'portdemo' => 8000,
+ 'persistent' => '/var/lib/gbrowse2',
+ 'apachemodules' => '/usr/lib/apache2/modules',
+ 'installetc' => 'y'
+ };
+$x; }
View
2  _build/features
@@ -0,0 +1,2 @@
+do{ my $x = {};
+$x; }
View
1  _build/magicnum
@@ -0,0 +1 @@
+29331
View
2  _build/notes
@@ -0,0 +1,2 @@
+do{ my $x = {};
+$x; }
View
43 _build/prereqs
@@ -0,0 +1,43 @@
+do{ my $x = {
+ 'build_requires' => {
+ 'Capture::Tiny' => 0,
+ 'ExtUtils::CBuilder' => 0
+ },
+ 'conflicts' => {},
+ 'requires' => {
+ 'IO::String' => 0,
+ 'Storable' => 0,
+ 'Bio::Graphics' => '2.09',
+ 'Bio::Root::Version' => '1.0069',
+ 'perl' => '5.008',
+ 'CGI::Session' => '4.02',
+ 'Digest::MD5' => 0,
+ 'File::Temp' => 0,
+ 'GD' => '2.07',
+ 'JSON' => 0,
+ 'Statistics::Descriptive' => 0,
+ 'LWP' => 0,
+ 'ExtUtils::CBuilder' => 0
+ },
+ 'recommends' => {
+ 'GD::SVG' => 0,
+ 'Bio::Das' => 0,
+ 'DBD::SQLite' => 0,
+ 'DB_File::Lock' => 0,
+ 'Math::BigInt' => 0,
+ 'File::NFSLock' => 0,
+ 'Digest::SHA' => 0,
+ 'Net::OpenID::Consumer' => 0,
+ 'Crypt::SSLeay' => 0,
+ 'Term::ReadKey' => 0,
+ 'FCGI' => 0,
+ 'DBI' => 0,
+ 'Bio::DB::BigFile' => '1',
+ 'DBD::Pg' => 0,
+ 'Template' => '2.2',
+ 'DBD::mysql' => 0,
+ 'Bio::DB::Sam' => '1.2',
+ 'Net::SMTP::SSL' => 0
+ }
+ };
+$x; }
View
2  _build/runtime_params
@@ -0,0 +1,2 @@
+do{ my $x = {};
+$x; }
View
1  htdocs/i
View
BIN  htdocs/images/buttons/snap_check.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  htdocs/images/buttons/snap_ex.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  htdocs/images/buttons/snap_send.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
222 htdocs/js/snapshotManager.js
@@ -0,0 +1,222 @@
+// snapshotManager.js
+// *** Snapshot functions ***
+
+GBrowseController.addMethods({
+ hide_snapshot_prompt:
+ function(){
+ $('save_snapshot').hide();
+ },
+
+ submitWithEnter:
+ function(e){
+
+ var sessionName = document.getElementById('snapshot_name').value;
+
+ // Store the value of the key entered
+ if (!e) var e = window.event;
+ if (e.keyCode) code = e.keyCode;
+ else if (e.which) code = e.which;
+
+ // If the user presses enter, the snapshot is saved
+ if (code==13) {
+ Controller.hide_snapshot_prompt();
+
+ Controller.saveSnapshot('snapshot_name')
+
+ }
+ },
+
+ killSnapshot:
+ function(snapshot){
+ var snapshot_row = document.getElementById(snapshot);
+
+ // Stops displaying the selecting snapshot before actually deleting it
+ snapshot_row.style.display="none";
+
+ // An asynchronous request is made to delete the snapshot from the session
+ new Ajax.Request(document.URL, {
+ method: 'POST',
+ asynchronous:true,
+ parameters: {
+ action: 'delete_session',
+ name: snapshot,
+
+ }});
+
+ // Removes the snapshot from the pages title if it was the last one set
+ if($('snapshot_page_title').innerHTML == 'Current Snapshot : ' + snapshot){
+ $('snapshot_page_title').innerHTML = 'Current Snapshot : ';
+ $('snapshot_page_title').hide();
+ }
+
+ },
+
+ saveSnapshot:
+ function(textFieldId){
+
+ var sessionName = document.getElementById(textFieldId).value;
+
+ // If a value was entered for the name of the snapshot then it is saved
+ if(sessionName){
+ // An asynchronous request is made to save a snapshot of the session
+ new Ajax.Request(document.URL, {
+ method: 'POST',
+ asynchronous:true,
+ parameters: {
+ action: 'save_session',
+ name: sessionName,
+ }});
+
+ // The page title is updated to reflect the current snapshot
+ $('snapshot_page_title').innerHTML = 'Current Snapshot : ' + sessionName;
+ $('snapshot_page_title').show();
+
+ $('busy_indicator').show();
+
+ // A timer is used to ensure that the snapshot table is recreated only after the information has been updated
+ setTimeout(function(){
+
+ // The snapshot table is updated
+ var sections = new Array(snapshot_table_id);
+ Controller.update_sections(sections);
+
+ // Another timeout is used to end the busy indicator after the table has been created
+ setTimeout(function(){
+ Sortable.create('snapshotTable',{tag:'div',only:'draggable'});
+ $('busy_indicator').hide();
+ },1500)
+ },2500)
+ }
+
+ },
+
+ setSnapshot:
+ function(sessionName){
+
+ // A request is made to update the current session
+ new Ajax.Request(document.URL, {
+ method: 'POST',
+ asynchronous:false,
+ parameters: {
+ action: 'set_session',
+ name: sessionName,
+ },
+ onSuccess: function(transport) {
+ // The various sections of the browser affected when a session is changed are updated
+ var sections = new Array(track_listing_id, page_title_id, custom_tracks_id, community_tracks_id, search_form_objects_id, snapshot_table_id);
+ Controller.update_sections(sections);
+ }
+ });
+
+ $('busy_indicator').show();
+
+ // A timeout is used to ensure that the sections are updated before further changes are made
+ setTimeout(function(){
+
+ Sortable.create('snapshotTable',{tag:'div',only:'draggable'});
+
+ // All the children of the tracks_panel are stored
+ var children = $A($("tracks_panel").descendants());
+ var active_children = new Array();
+
+ // Each child that is active, is added to the active children array, and inactive children are removed from the track listing
+ children.each(function(child) {
+ var track_name = child.id.substring(0, (child.id.length - 6));
+
+ if(child.className == 'track_title activeTrack'){
+ active_children.push(track_name);
+ }else if(child.className == 'track_title'){
+ // Toggles the tracks on or off as they're selected
+ Controller.delete_track(track_name);
+ }
+ });
+
+ // The tracks are added and browser is refreshed.
+ Controller.add_tracks(active_children,function(){Controller.update_coordinates("reload segment");}, true);
+
+ // The title is updated to reflect the new snapshot that has been set
+ $('snapshot_page_title').innerHTML = 'Current Snapshot : ' + sessionName;
+ $('snapshot_page_title').show();
+
+ // The busy indicator is removed after all actions have been completed
+ setTimeout(function(){
+ $('busy_indicator').hide();
+ }, 2000)
+ },2000)
+ },
+
+ sendSnapshot:
+ function(snapshot){
+
+ // The snapshot code to be sent is initially set to ''
+ var snapshot_url = '';
+
+ // Only one send snapshot_box is open at a time
+ var send_snapshot_boxes = $$('.send_snapshot');
+ send_snapshot_boxes.each(function(box){
+ box.style.display = "none";
+ })
+
+ // Snapshot rows are pushed back and the selected row is pushed forward
+ var draggable = $$('.draggable');
+ draggable.each(function(drag){
+ drag.style.zIndex = 0;
+ })
+
+ $(snapshot).style.zIndex = 1000;
+ // The div containing the snapshot information is shown
+ $('send_snapshot_' + snapshot).show();
+
+ // An asynchronous request to the server loads the snapshot code for the selected snapshot
+ // This is only loaded for the specific snapshot that the user intends to share rather than all snapshots. This saves time.
+ new Ajax.Request(document.URL, {
+ method: 'POST',
+ asynchronous:true,
+ parameters: {
+ action: 'send_session',
+ name: snapshot
+ },
+ onSuccess: function(transport) {
+ // Upon success, the snapshot code is output to the user for copying
+ var results = transport.responseText;
+ $('send_snapshot_url_' + snapshot).innerHTML = results;
+ }
+ });
+ },
+
+ hideSendSnapshot:
+ function(snapshot){
+
+ $('send_snapshot_' + snapshot).hide();
+
+ },
+
+ loadSnapshot:
+ function(){
+
+ // The snapshot name and code are stored for later use. ERROR CHECKING NEEDED HERE.
+ var load_name = $('load_snapshot_name').value;
+ var load_snapshot = $('load_snapshot_code').value;
+
+ $('load_snapshot').hide();
+ $('busy_indicator').show();
+
+ // An asynchronous request is made to add the snapshot to the current session
+ new Ajax.Request(document.URL, {
+ method: 'POST',
+ asynchronous:true,
+ parameters: {
+ action: 'load_session',
+ name: load_name,
+ snapshot: load_snapshot,
+ },
+ onSuccess: function(transport) {
+ // The loaded session is set to be the current session
+ setSnapshot(load_name);
+ $('busy_indicator').hide();
+ }
+ });
+ },
+
+});
+
View
996 htdocs/js/toggle.js
@@ -0,0 +1,996 @@
+var track_listing_id = 'tracks_panel';
+
+
+///create getelementbyclassnames function
+
+/*
+ Developed by Robert Nyman, http://www.robertnyman.com
+ Code/licensing: http://code.google.com/p/getelementsbyclassname/
+*/
+var getElementsByClassName = function (className, tag, elm){
+ if (document.getElementsByClassName) {
+ getElementsByClassName = function (className, tag, elm) {
+ elm = elm || document;
+ var elements = elm.getElementsByClassName(className),
+ nodeName = (tag)? new RegExp("\\b" + tag + "\\b", "i") : null,
+ returnElements = [],
+ current;
+ for(var i=0, il=elements.length; i<il; i+=1){
+ current = elements[i];
+ if(!nodeName || nodeName.test(current.nodeName)) {
+ returnElements.push(current);
+ }
+ }
+ return returnElements;
+ };
+ }
+ else if (document.evaluate) {
+ getElementsByClassName = function (className, tag, elm) {
+ tag = tag || "*";
+ elm = elm || document;
+ var classes = className.split(" "),
+ classesToCheck = "",
+ xhtmlNamespace = "http://www.w3.org/1999/xhtml",
+ namespaceResolver = (document.documentElement.namespaceURI === xhtmlNamespace)? xhtmlNamespace : null,
+ returnElements = [],
+ elements,
+ node;
+ for(var j=0, jl=classes.length; j<jl; j+=1){
+ classesToCheck += "[contains(concat(' ', @class, ' '), ' " + classes[j] + " ')]";
+ }
+ try {
+ elements = document.evaluate(".//" + tag + classesToCheck, elm, namespaceResolver, 0, null);
+ }
+ catch (e) {
+ elements = document.evaluate(".//" + tag + classesToCheck, elm, null, 0, null);
+ }
+ while ((node = elements.iterateNext())) {
+ returnElements.push(node);
+ }
+ return returnElements;
+ };
+ }
+ else {
+ getElementsByClassName = function (className, tag, elm) {
+ tag = tag || "*";
+ elm = elm || document;
+ var classes = className.split(" "),
+ classesToCheck = [],
+ elements = (tag === "*" && elm.all)? elm.all : elm.getElementsByTagName(tag),
+ current,
+ returnElements = [],
+ match;
+ for(var k=0, kl=classes.length; k<kl; k+=1){
+ classesToCheck.push(new RegExp("(^|\\s)" + classes[k] + "(\\s|$)"));
+ }
+ for(var l=0, ll=elements.length; l<ll; l+=1){
+ current = elements[l];
+ match = false;
+ for(var m=0, ml=classesToCheck.length; m<ml; m+=1){
+ match = classesToCheck[m].test(current.className);
+ if (!match) {
+ break;
+ }
+ }
+ if (match) {
+ returnElements.push(current);
+ }
+ }
+ return returnElements;
+ };
+ }
+ return getElementsByClassName(className, tag, elm);
+};
+
+
+// setVisState sends the visibility state to the server.
+function setVisState (element_name,is_visible) {
+ var visibility = is_visible ? 'show' : 'hide';
+ var postData = 'action=show_hide_section;'+visibility+'='+element_name;
+ new Ajax.Request(document.URL,{method:'post',postBody:postData});
+}
+
+
+function toggleDiv(id){
+var spans = document.getElementsByTagName('div');
+
+
+ for (var i = spans.length; i--;) {
+ var element = spans[i];
+ if (element.className.match(RegExp('\\b' + id + '\\b'))) {
+ element.style.display = (element.style.display === 'none') ? '' : 'none';
+ }
+ }
+}
+
+function removeByElement(arrayName,arrayElement)
+ {
+ for(var i=0; i<arrayName.length;i++ )
+
+ {
+ if(arrayName[i]==arrayElement)
+ arrayName.splice(i,1);
+
+ }
+ }
+///////////////////////////////////////////////////////
+
+
+
+function toggle_bar_stars(event,imgID, label, title){
+ var imgTag = document.getElementById(imgID);
+
+// alert(imgTag.src);
+ var fullPathName = imgTag.src;
+ var pathSplit = fullPathName.split("/");
+ var getfileNameExt = pathSplit.length - 1;
+ var fullFilePath = '';
+
+// alert(imgID);
+// alert(imgTag);
+// alert(title);
+ if (pathSplit.length == 0)
+ {
+ fullFilePath = '';
+ }
+ else if (pathSplit.length > 0)
+ {
+ fullFilePath = fullPathName.replace(pathSplit[getfileNameExt], '');
+ }
+
+ var fileNameExt = pathSplit[getfileNameExt];
+ var fileNameSpilt = fileNameExt.split(".");
+ var fileName = fileNameSpilt[0]; // just the file name
+ var fileExt = fileNameSpilt[1]; // just the file extention
+ var fileNameMainSpilt = fileName.split("_"); // check for a spilt on '_'
+ var imgName ='';
+ var show;
+
+
+ if (fileNameMainSpilt.length > 1)
+ {
+
+ var fileNameMain = fileNameMainSpilt.length - 1;
+ fileNameMain = fileNameMainSpilt[fileNameMain];
+ if (fileNameMain == 2)
+ {
+ imgName = fileNameMainSpilt[0] + '.' + fileExt;
+
+
+ favorite = false;
+
+ }else{
+ imgName = fileName + '_2.' + fileExt;
+
+
+ favorite = true;
+
+
+ }
+ }else{
+ imgName = fileName + '_2.' + fileExt;
+
+
+ favorite = true;
+
+ }
+
+ show = (favorite == true) ? 1 : 0;
+
+ var finalFile = fullFilePath + imgName;
+ imgTag.src = finalFile;
+// alert(trackStatus);
+//
+ new Ajax.Request(document.URL, {
+ method: 'POST',
+ asynchronous:true,
+ parameters: {
+ action: 'set_favorite',
+ label: label,
+ favorite:show,
+ }});
+
+
+
+
+
+
+ refresh(0);
+ return false;
+
+
+
+}
+
+
+
+
+function togglestars(event,imgID, txtID, favorites,cellid)
+{
+ // detectshiftkey();
+ var imgTag = document.getElementById(imgID);
+
+ var cellTag = document.getElementById(cellid);
+
+ var txtTag = document.getElementById(txtID);
+ var fullPathName = imgTag.src;
+ var pathSplit = fullPathName.split("/");
+ var getfileNameExt = pathSplit.length - 1;
+ var fullFilePath = '';
+ var str = imgID.replace("ficonpic_","");
+ var labels_Range = new Array();
+ var ministars_Range = new Array();
+
+ if (pathSplit.length == 0)
+ {
+ fullFilePath = '';
+ }
+ else if (pathSplit.length > 0)
+ {
+ fullFilePath = fullPathName.replace(pathSplit[getfileNameExt], '');
+ }
+
+ var fileNameExt = pathSplit[getfileNameExt];
+ var fileNameSpilt = fileNameExt.split(".");
+ var fileName = fileNameSpilt[0]; // just the file name
+ var fileExt = fileNameSpilt[1]; // just the file extention
+ var fileNameMainSpilt = fileName.split("_"); // check for a spilt on '_'
+ var imgName ='';
+ var show;
+ var miniID = 'fav_'+imgID;
+
+ var browserstarTag = document.getElementById(miniID);
+ var blank_min_src =fullFilePath+"fmini.png";
+ var coloured_min_src = fullFilePath+"fmini_2.png";
+
+ ////select track stars
+ var stars = getElementsByClassName("star");
+ idtoarray(stars,"star");
+ var starsid = idArray;
+ /////////////
+
+ var startext = getElementsByClassName("selectrackname");
+ idtoarray(startext,"selectrackname");
+ var starTextId = idArray;
+
+/////browser page stars
+ var ministars = getElementsByClassName("toolbarStar");
+ idtoarray(ministars, "toolbarStar");
+
+ var ministarsids= idArray;
+//////////////
+
+
+
+
+
+ var firstIndex;
+ if (!event.shiftKey){
+ firstIndex = starsid.findIndex(imgID);
+ sessvars.firstIndex= {"index":firstIndex};
+
+ }
+ var lastIndex;
+
+ if (fileNameMainSpilt.length > 1)
+ {
+
+ var fileNameMain = fileNameMainSpilt.length - 1;
+ fileNameMain = fileNameMainSpilt[fileNameMain];
+ if (fileNameMain == 2)
+ {
+ imgName = fileNameMainSpilt[0] + '.' + fileExt;
+ txtTag.style.fontWeight = "normal";
+
+ favorite = false;
+
+ }else{
+ imgName = fileName + '_2.' + fileExt;
+ txtTag.style.fontWeight = "900";
+
+ favorite = true;
+
+ }
+ }else{
+ imgName = fileName + '_2.' + fileExt;
+ txtTag.style.fontWeight = "900";
+
+ favorite = true;
+
+ }
+
+
+
+//if it is favorited send a 1
+
+
+ txtTag.className = 'notselected';
+ cellTag.className = 'notselected_check';
+ show = (favorite == true) ? 1 : 0;
+//
+ new Ajax.Request(document.URL, {
+ method: 'POST',
+ asynchronous:true,
+ parameters: {
+ action: 'set_favorite',
+ label: imgID,
+ favorite:show,
+ }});
+
+
+if (event.shiftKey) {
+
+ firstIndex = sessvars.firstIndex.index;
+ lastIndex = starsid.findIndex(imgID);
+
+ var j;
+ var i;
+// alert(firstIndex);
+ show = (favorite == true) ? 1 : 0;
+
+ if(lastIndex<firstIndex){
+ var tmp;
+ tmp = lastIndex;
+ lastIndex = firstIndex;
+ firstIndex = tmp;
+ }
+
+ var range = lastIndex - firstIndex;
+ for( i=firstIndex , j = 0; i<=lastIndex, j <= range ; i++, j++){
+ labels_Range[j] = starsid[i];
+
+ }
+ var labels_string = labels_Range.toString();
+
+
+new Ajax.Request(document.URL, {
+ method: 'POST',
+ asynchronous:true,
+ parameters: {
+ action: 'set_favorite',
+ label: labels_string,
+
+ favorite:show,
+ }});
+
+ var minisrc = (show == 1) ? coloured_min_src : blank_min_src;
+
+// alert(minisrc);
+ for(var i=firstIndex ;i<=lastIndex; i++){
+ stars[i].src= fullFilePath + imgName;
+
+ if(imgName=='ficon.png'){
+ startext[i].style.fontWeight = "normal";
+ }else{
+ startext[i].style.fontWeight = "900";
+ }
+
+
+ if(ministars[i]){
+ ministars[i].src = minisrc;
+ }
+
+ }
+ }
+
+
+// (favorite == true) ? fullFilePath+'fmini_2.png' : fullFilePath+'fmini.png';
+ if(browserstarTag){
+ browserstarTag.src = (favorite == true) ? coloured_min_src : blank_min_src;
+ };
+// alert(browserstarTag.src);
+// alert(blank_min_src);
+// alert(coloured_min_src);
+ var finalFile = fullFilePath + imgName;
+ imgTag.src = finalFile;
+
+ return false;
+
+
+}
+
+
+function idtoarray(stars,className)
+{
+
+idArray = new Array();
+
+ for (x=0, y=0; x<stars.length; x++,y++) {
+ if (stars[x].className===className) {
+ idArray[y] = stars[x].id
+ }
+
+}
+ return idArray;
+}
+
+Array.prototype.findIndex = function(value){
+var ctr = "";
+for (var i=0; i < this.length; i++) {
+// use === to check for Matches. ie., identical (===), ;
+if (this[i] == value) {
+return i;
+}
+}
+return ctr;
+};
+
+// checkSummaries makes sure any collapsed nodes have their summaries visible upon page load.
+function checkSummaries() {
+ var tf = $('trackform');
+ if (tf==null) return;
+
+ var sections = tf.select("div.searchbody div.el_visible");
+ for(j = 0; j < sections.length; j++) {
+ if(sections[j].visible() == false)
+ summarizeTracks(sections[j]);
+
+ var track_checkboxes = sections[j].select("input[type=checkbox]:not([id$=_a]):not([id$=_n])");
+ for (var f = 0; f < track_checkboxes.length; f++)
+ track_checkboxes[f].observe("change", checkAllToggles);
+ }
+}
+
+// Update List - Goes through the listing node and marks any "turned on" nodes.
+function updateList(node) {
+ var children = getChildren(node);
+ var list_items = getList(node).select("span");
+ for (var a = 0; a < list_items.length; a++) {
+ if (children[a].select('input[type=checkbox]:checked').length != 0) {
+ list_items[a].removeClassName("hide").addClassName("show");
+ } else {
+ list_items[a].removeClassName("show").addClassName("hide");
+ }
+ }
+}
+
+// Get List - Returns (or creates, if missing) the list holder box in the appropriate place.
+function getList(node) {
+ var list = node.up().down("span.list");
+ if (typeof list == "undefined") {
+ list = new Element("span", {"class": "list"});
+ node.up().down("i.nojs").insert({after: list});
+ }
+ return list;
+}
+
+// Check "All" Toggles - turns off any "All On" or "All Off" checkboxes which are checked.
+function checkAllToggles() {
+ var node = this.up("div.el_visible");
+ var all_on = node.up().down("input[type=checkbox][id$=_a]");
+ var all_off = node.up().down("input[type=checkbox][id$=_n]");
+
+ all_off.checked = (node.down("input[type=checkbox]:checked"))? false : true;
+ all_on.checked = (node.down("input[type=checkbox]:not(:checked)"))? false : true;
+}
+
+// summarizeTracks mines the track options box for possible tracks and creates a shorter listing of them when the section is hidden.
+function summarizeTracks(node) {
+ var children = getChildren(node);
+ var list_text = listText(children);
+
+ // Append the HTML into the track list.
+ var list = getList(node);
+ list.update(list_text);
+ list.show();
+}
+
+// Determines whether a node should be "on" in the listing.
+function isOn(node) {
+ return (node.select('input[type="checkbox"][name=l]:checked').length > 0)? true : false;
+}
+
+// listText creates the listing text from the elements given.
+function listText(elements) {
+ var truncate_length = 150; // truncate_length is the maximum number of names we'll list. Anything more gets a "..."
+ var item_wrapper = "span";
+
+ var text_length = 0;
+ var overflow = false;
+ var items = new Array;
+
+ var list_text = "&nbsp;(";
+
+ // Each track name is a cell in the table within the section with a checkbox inside of it. Find the name, push it to tracks[].
+ for (var i = 0; i < elements.length; i++){
+ if (text_length < truncate_length) {
+ // Create the item for the list, including the class.
+ var item_name = getName(elements[i]);
+ var item = "<" + item_wrapper + " class =\"" + (isOn(elements[i])? "show" : "hide") + "\">";
+
+ //Add the length of the name to the character count. If we're over the count, truncate the name.
+ text_length += item_name.length;
+ if (text_length > truncate_length) {
+ item_name = item_name.substring(0, text_length - truncate_length);
+
+ // If the truncated name ends in a non-letter character (which would look awkward with an ellipsis after it), truncate more until you hit a letter.
+ var match_string = new RegExp(/[A-Za-z0-9]/);
+ while (item_name.slice(-1).match(match_string) == null) {
+ item_name = item_name.slice(0, -1);
+ }
+ overflow = true;
+ }
+
+ item += item_name + "</span>";
+ items.push(item);
+ } else {
+ break;
+ }
+ }
+
+ // Loop through the list, adding the name of each track now hidden.
+ for (var c = 0; c < items.length; c++) {
+ list_text += items[c];
+ if (c < (items.length - 1))
+ list_text += ", ";
+ }
+
+ if (overflow == true)
+ list_text += "...";
+ list_text += ")";
+
+ return list_text;
+}
+
+// containsGroup checks whether a node contains groups (and should look for those when finding children).
+function containsGroups(node) {
+ return (typeof node.down("div.el_visible") != "undefined")? true : false;
+}
+
+// isGroup checks whether a node is a group node or a track node.
+function isGroup(node) {
+ return (node.nodeName == "DIV")? true : false;
+}
+
+// getChildren gets the children nodes of a group.
+function getChildren(node) {
+ var has_groups = containsGroups(node);
+ // This just applies down("div.el_visible") on the childElements array.
+ var children = (has_groups == true)? node.down().childElements().collect( function(child) { return child.down("div.el_visible") } ) : node.select('span td');
+ var nodes = new Array;
+ // Make sure they're valid groups, not just empty table cells...
+ for (var i = 0; i < children.length; i++) {
+ if (((has_groups == true) && children[i].match("div.el_visible")) || ((has_groups == false) && (children[i].select("input[type=checkbox][name=l]").length > 0)))
+ nodes.push(children[i]);
+ }
+ return nodes;
+}
+
+
+// getName returns the name of a node, as displayed in the control.
+function getName(node) {
+ if (isGroup(node)) {
+ return (node.previous("div.ctl_visible"))? node.previous("div.ctl_visible").down("span.tctl > b").innerHTML : node.previous("div").down("div.ctl_visible").down("span.tctl > b").innerHTML;
+ } else {
+ //Some of the cell names are wrapped within anchor tags, test if it is or not.
+ if (node.down("a"))
+ var track_name = node.down("a").firstChild.nodeValue.stripTags();
+ else
+ var track_name = node.down("input").nextSibling.nodeValue.stripTags();
+ return track_name.replace(/^\s+|\s+$/g,"");;
+ }
+}
+
+// visibility toggles a node as open or closed.
+function visibility (element_name,is_visible) {
+ var element = $(element_name);
+ var show_control = $(element_name + "_show");
+ var hide_control = $(element_name + "_hide");
+ var title_control = $(element_name + "_title");
+ var break_element = $(element_name + "_break");
+ var track_list = $(element_name).up().down("span.list");
+ if (is_visible == 1) {
+ element.show();
+ show_control.hide();
+ hide_control.show();
+ if (track_list != null)
+ track_list.hide();
+ if (break_element != null)
+ break_element.hide();
+ } else {
+ if (element_name.search("_section") != -1)
+ summarizeTracks(element);
+ element.hide();
+ hide_control.hide();
+ show_control.show();
+ if (track_list != null)
+ track_list.show();
+ if (break_element != null)
+ break_element.show();
+ }
+ setVisState(element_name, is_visible);
+ return false;
+}
+
+
+
+
+
+
+// function to make text toggle when button/link is touched
+function swap(me,main,alt) {
+me.innerHTML = (me.innerHTML == main) ? alt : main;
+}
+
+function swap_button(me,main,alt) {
+me.value = (me.value == main) ? alt : main;
+}
+//same as updatetitle(below) but will refresh the favorites if the user
+//decides to unclick a favorite while it is in show favorites mode
+function clearallfav(clear){
+
+
+var e = $(track_listing_id);// all e._____ objects are visual effects
+var ministars = getElementsByClassName("toolbarStar");
+var i;
+clear =1;
+
+e.hide();
+e.setOpacity(0.3);
+
+
+new Ajax.Request(
+ document.URL, {
+ method: 'POST',
+ asynchronous:false,
+ parameters: {
+ action: 'clear_favorites',
+ clear: clear,
+ }
+ }
+ );
+
+e.show();
+
+Controller.update_sections(new Array(track_listing_id),'',1,false);
+ for (i in ministars){
+ ministars[i].src ="http://localhost/gbrowse2/images/buttons/fmini.png";
+ }
+
+};
+
+
+
+function refresh(ison){
+
+
+var e = $(track_listing_id);// all e._____ objects are visual effects
+
+
+
+e.hide();
+e.setOpacity(0.3);
+
+
+new Ajax.Request(
+ document.URL, {
+ method: 'POST',
+ asynchronous:false,
+ parameters: {
+ action: 'show_favorites',
+ show: ison, //sends 0 or 1
+ clear:0,
+ }
+ }
+ );
+
+new Ajax.Request(
+ document.URL, {
+ method: 'POST',
+ asynchronous:false,
+ parameters: {
+ action: 'clear_favorites',
+
+ clear:0,
+ }
+ }
+ );
+
+e.show();
+
+Controller.update_sections(new Array(track_listing_id),'',1,false)
+
+
+
+};
+//Wrapper function -- will toggle the 'Show All and Show Favorites' texit
+//then checks to see whether the favorites should be displayed or if they
+//should all be displayed--sends 0 or 1 to the server
+//controller.update_sections does the actual updating of the tracks
+function updatetitle(me,main,alt,refresh, clear){
+
+
+var e = $(track_listing_id);// all e._____ objects are visual effects
+var refreshid = document.getElementById(refresh);
+var clearid = document.getElementById(clear);
+
+swap(me,main,alt);//toggle
+
+e.hide();
+e.setOpacity(0.3);
+var ison = (me.innerHTML == main) ? 0 : 1;
+refreshid.style.display= (me.innerHTML == main) ? 'none' : 'block';
+clearid.style.left=(me.innerHTML == main) ? '350px' : '550px';
+clearid.style.bottom=(me.innerHTML == main) ? '30px' : '47px';
+new Ajax.Request(
+ document.URL, {
+ method: 'POST',
+ asynchronous:false,
+ parameters: {
+ action: 'show_favorites',
+ show: ison, //sends 0 or 1
+ }
+ }
+ );
+
+new Ajax.Request(
+ document.URL, {
+ method: 'POST',
+ asynchronous:false,
+ parameters: {
+ action: 'clear_favorites',
+
+ clear:0,
+ }
+ });
+
+
+e.show();
+
+Controller.update_sections(new Array(track_listing_id),'',1,false)
+
+
+};
+
+function collapse(element_name) {
+ var control = document.getElementById(element_name+"_title");
+// var menuitem = document.getElementById("popmenu_"+element_name);
+ var icon = document.getElementById(element_name+"_icon");
+ var body = document.getElementById(element_name+"_image");
+ var pad = document.getElementById(element_name+"_pad");
+ var closeit = body.style.display != "none";
+ var src = new String(icon.src);
+// var text = new String('');
+
+ if (closeit) {
+ icon.src = src.replace(/minus/,'plus');
+// menuitem.text = text.replace(/Collapse/,'Expand');
+ body.style.display = 'none';
+ pad.style.display = 'inline';
+ control.className = 'titlebar_inactive';
+
+ } else {
+ icon.src = src.replace(/plus/,'minus');
+// menuitem.text = text.replace(/Expand/,'Collapse');
+ body.style.display = 'inline';
+ pad.style.display = 'none';
+ control.className = 'titlebar';
+
+ }
+
+ var direction = closeit ? 'collapse' : 'open';
+ var postData = 'action=open_collapse_track;'+direction+'='+escape(element_name);
+ new Ajax.Request(document.URL,{method:'post',postBody:postData});
+ updateRuler();
+ return false;
+}
+
+function enable_keypos (checkbox) {
+ var checked = checkbox.checked;
+ var ks = document.getElementsByName('ks');
+ for (var i=0;i<ks.length;i++) {ks[i].disabled= checked}
+ document.getElementById('ks_label').style.color=checked ? 'lightgray' : 'black';
+}
+
+
+
+
+ /*Script for left slide out panel in the Select track page...credit to dhtmlgoodies.com
+ */
+
+ var panelWidth =250; // Width of help panel
+ var slideSpeed = 50; // Higher = quicker slide
+ var slideTimer = 10; // Lower = quicker slide
+ var slideActive = true; // Slide active ?
+ var initBodyMargin = 0; // Left or top margin of your <body> tag (left if panel is at the left, top if panel is on the top)
+ var pushMainContentOnSlide = true; // Push your main content to the right when sliding
+ var panelPosition = 1; // 0 = left , 1 = top
+
+ /* Don't change these values */
+ var slideLeftPanelObj=false;
+ var slideInProgress = false;
+ var startScrollPos = false;
+ var panelVisible = false;
+ function initSlideLeftPanel(expandOnly)
+ {
+ if(slideInProgress)return;
+ if(!slideLeftPanelObj){
+ if(document.getElementById('dhtmlgoodies_leftPanel')){ // Object exists in HTML code?
+ slideLeftPanelObj = document.getElementById('dhtmlgoodies_leftPanel');
+ if(panelPosition == 1)slideLeftPanelObj.style.width = '100%';
+ }else{ // Object doesn't exist -> Create <div> dynamically
+ slideLeftPanelObj = document.createElement('DIV');
+ slideLeftPanelObj.id = 'dhtmlgoodies_leftPanel';
+ slideLeftPanelObj.style.display='none';
+ document.body.appendChild(slideLeftPanelObj);
+ }
+
+ if(panelPosition == 1){
+ slideLeftPanelObj.style.top = "-" + panelWidth + 'px';
+ slideLeftPanelObj.style.left = '0px';
+ slideLeftPanelObj.style.height = panelWidth + 'px';
+ }else{
+ slideLeftPanelObj.style.left = "-" + panelWidth + 'px';
+ slideLeftPanelObj.style.top = '0px';
+ slideLeftPanelObj.style.width = panelWidth + 'px';
+ }
+
+
+ if(!document.all || navigator.userAgent.indexOf('Opera')>=0)slideLeftPanelObj.style.position = 'fixed';;
+ }
+
+ if(panelPosition == 0){
+ if(document.documentElement.clientHeight){
+ slideLeftPanelObj.style.height = document.documentElement.clientHeight + 'px';
+ }else if(document.body.clientHeight){
+ slideLeftPanelObj.style.height = document.body.clientHeight + 'px';
+ }
+ var leftPos = slideLeftPanelObj.style.left.replace(/[^0-9\-]/g,'')/1;
+ }else{
+ if(document.documentElement.clientWidth){
+ slideLeftPanelObj.style.width = document.documentElement.clientWidth + 'px';
+ }else if(document.body.clientHeight){
+ slideLeftPanelObj.style.width = document.body.clientWidth + 'px';
+ }
+ var leftPos = slideLeftPanelObj.style.top.replace(/[^0-9\-]/g,'')/1;
+
+
+ }
+ slideLeftPanelObj.style.display='block';
+
+ if(panelPosition==1)
+ startScrollPos = Math.max(document.body.scrollTop,document.documentElement.scrollTop);
+ else
+ startScrollPos = Math.max(document.body.scrollLeft,document.documentElement.scrollLeft);
+ if(leftPos<(0+startScrollPos)){
+ if(slideActive){
+ slideLeftPanel(slideSpeed);
+
+ }else{
+ document.body.style.marginLeft = panelWidth + 'px';
+ slideLeftPanelObj.style.left = '0px';
+ }
+ }else{
+ if(expandOnly)return;
+ if(slideActive){
+ slideLeftPanel(slideSpeed*-1);
+ }else{
+ if(panelPosition == 0){
+ if(pushMainContentOnSlide)document.body.style.marginLeft = initBodyMargin + 'px';
+ slideLeftPanelObj.style.left = (panelWidth*-1) + 'px';
+ }else{
+ if(pushMainContentOnSlide)document.body.style.marginTop = initBodyMargin + 'px';
+ slideLeftPanelObj.style.top = (panelWidth*-1) + 'px';
+ }
+ }
+ }
+
+ if(navigator.userAgent.indexOf('MSIE')>=0 && navigator.userAgent.indexOf('Opera')<0){
+ window.onscroll = repositionHelpDiv;
+
+ repositionHelpDiv();
+ }
+ window.onresize = resizeLeftPanel;
+
+ }
+
+ function resizeLeftPanel()
+ {
+ if(panelPosition == 0){
+ if(document.documentElement.clientHeight){
+ slideLeftPanelObj.style.height = document.documentElement.clientHeight + 'px';
+ }else if(document.body.clientHeight){
+ slideLeftPanelObj.style.height = document.body.clientHeight + 'px';
+ }
+ }else{
+ if(document.documentElement.clientWidth){
+ slideLeftPanelObj.style.width = document.documentElement.clientWidth + 'px';
+ }else if(document.body.clientWidth){
+ slideLeftPanelObj.style.width = document.body.clientWidth + 'px';
+ }
+ }
+ }
+
+ function slideLeftPanel(slideSpeed){
+ slideInProgress =true;
+ var scrollValue = 0;
+ if(panelPosition==1)
+ var leftPos = slideLeftPanelObj.style.top.replace(/[^0-9\-]/g,'')/1;
+ else
+ var leftPos = slideLeftPanelObj.style.left.replace(/[^0-9\-]/g,'')/1;
+
+ leftPos+=slideSpeed;
+ okToSlide = true;
+ if(slideSpeed<0){
+ if(leftPos < ((panelWidth*-1) + startScrollPos)){
+ leftPos = (panelWidth*-1) + startScrollPos;
+ okToSlide=false;
+ }
+ }
+ if(slideSpeed>0){
+ if(leftPos > (0 + startScrollPos)){
+ leftPos = 0 + startScrollPos;
+ okToSlide = false;
+ }
+ }
+
+
+ if(panelPosition==0){
+ slideLeftPanelObj.style.left = leftPos + startScrollPos + 'px';
+ if(pushMainContentOnSlide)document.body.style.marginLeft = leftPos - startScrollPos + panelWidth + 'px';
+ }else{
+ slideLeftPanelObj.style.top = leftPos + 'px';
+ if(pushMainContentOnSlide)document.body.style.marginTop = leftPos - startScrollPos + panelWidth + 'px';
+
+ }
+ if(okToSlide)setTimeout('slideLeftPanel(' + slideSpeed + ')',slideTimer); else {
+ slideInProgress = false;
+ if(slideSpeed>0)panelVisible=true; else panelVisible = false;
+ }
+
+ }
+
+
+ function repositionHelpDiv()
+ {
+ if(panelPosition==0){
+ var maxValue = Math.max(document.body.scrollTop,document.documentElement.scrollTop);
+ slideLeftPanelObj.style.top = maxValue;
+ }else{
+ var maxValue = Math.max(document.body.scrollLeft,document.documentElement.scrollLeft);
+ slideLeftPanelObj.style.left = maxValue;
+ var maxTop = Math.max(document.body.scrollTop,document.documentElement.scrollTop);
+ if(!slideInProgress)slideLeftPanelObj.style.top = (maxTop - (panelVisible?0:panelWidth)) + 'px';
+ }
+ }
+
+ function cancelEvent()
+ {
+ return false;
+ }
+ function keyboardShowLeftPanel()
+ {
+ initSlideLeftPanel();
+ return false;
+
+ }
+
+ function leftPanelKeyboardEvent(e)
+ {
+ if(document.all)return;
+
+ if(e.keyCode==112){
+ initSlideLeftPanel();
+ return false;
+ }
+ }
+
+ function setLeftPanelContent(text)
+ {
+ document.getElementById('leftPanelContent').innerHTML = text;
+ initSlideLeftPanel(true);
+
+ }
+ if(!document.all)document.documentElement.onkeypress = leftPanelKeyboardEvent;
+ document.documentElement.onhelp = keyboardShowLeftPanel;
+
+
+//
+
+
+
+
+
+
+
+
Please sign in to comment.
Something went wrong with that request. Please try again.