This commit is contained in:
2018-06-29 19:47:36 +00:00
commit be7f501333
3769 changed files with 1425961 additions and 0 deletions

1
source/MBI/Global.asax Normal file
View File

@@ -0,0 +1 @@
<%@ Application Codebehind="Global.asax.cs" Inherits="AyaNovaMBI.Global" Language="C#" %>

72
source/MBI/Global.asax.cs Normal file
View File

@@ -0,0 +1,72 @@
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.SessionState;
using System.Threading;
using CSLA.Security;
namespace AyaNovaMBI
{
public class Global : System.Web.HttpApplication
{
protected void Application_Start(object sender, EventArgs e)
{
}
protected void Application_End(object sender, EventArgs e)
{
}
protected void Application_PreSendRequestHeaders(Object o, EventArgs e)
{
if (Request.AcceptTypes != null)
{
if (Request.Url.OriginalString.EndsWith(".aspx"))
{
if (Response.ContentType == "text/html")
{
if (Array.IndexOf(Request.AcceptTypes, "application/xhtml+xml") > -1)
{
/*Might need the following as per: http://idunno.org/archive/2005/09/02/229.aspx
* &&
Response.StatusCode == 200 &&
!Response.IsRequestBeingRedirected
* */
Response.ContentType = "application/xhtml+xml";
Response.AddHeader("Vary", "Accept");
}
}
}
}
}
protected void Application_AcquireRequestState(object sender, EventArgs e)
{
if (System.Web.HttpContext.Current.Session == null) return;
if (System.Web.HttpContext.Current.Session["AyaNova-Principle"] != null)
{
Thread.CurrentPrincipal = (System.Security.Principal.IPrincipal)System.Web.HttpContext.Current.Session["AyaNova-Principle"];
HttpContext.Current.User = (System.Security.Principal.IPrincipal)System.Web.HttpContext.Current.Session["AyaNova-Principle"];
}
else
{
if (Thread.CurrentPrincipal.Identity.IsAuthenticated)
{
FormsAuthentication.SignOut();
Server.Transfer("default.aspx");//working on case 1346 kept getting errors about this which was previously 1.aspx which doesn't exist
}
}
}
}
}

247
source/MBI/MBI.csproj Normal file
View File

@@ -0,0 +1,247 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.21022</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{6EF350F8-7676-416B-8CE9-6DB9B14CCB41}</ProjectGuid>
<ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>AyaNovaMBI</RootNamespace>
<AssemblyName>GZTW.AyaNovaMBI</AssemblyName>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>..\..\keys\AyaNova.snk</AssemblyOriginatorKeyFile>
<FileUpgradeFlags>
</FileUpgradeFlags>
<OldToolsVersion>4.0</OldToolsVersion>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<TargetFrameworkProfile />
<UseIISExpress>false</UseIISExpress>
<IISExpressSSLPort />
<IISExpressAnonymousAuthentication />
<IISExpressWindowsAuthentication />
<IISExpressUseClassicPipelineMode />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PublishDatabases>false</PublishDatabases>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\mbi_release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PublishDatabases>false</PublishDatabases>
</PropertyGroup>
<ItemGroup>
<Reference Include="CSLA.Server.DataPortal, Version=7.5.0.0, Culture=neutral, PublicKeyToken=df66a8d8e49833d3, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\release\CSLA.Server.DataPortal.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Drawing" />
<Reference Include="System.Web" />
<Reference Include="System.Web.ApplicationServices" />
<Reference Include="System.Web.DynamicData" />
<Reference Include="System.Web.Entity" />
<Reference Include="System.Web.Extensions" />
<Reference Include="System.Xml" />
<Reference Include="System.Configuration" />
<Reference Include="System.Web.Services" />
<Reference Include="System.EnterpriseServices" />
<Reference Include="System.Web.Mobile" />
<Reference Include="System.Xml.Linq" />
</ItemGroup>
<ItemGroup>
<Content Include="aya.gif" />
<Content Include="clients.aspx" />
<Content Include="cmd.aspx" />
<Content Include="default.aspx" />
<Content Include="Global.asax">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<Content Include="jquery-1.4.4.min.js" />
<Content Include="labor.aspx" />
<Content Include="mbi.css" />
<Content Include="memoedit.aspx" />
<Content Include="memoto.aspx" />
<Content Include="ok.gif" />
<Content Include="password.gif" />
<Content Include="ro.aspx" />
<Content Include="sched2labor.aspx" />
<Content Include="schedule.aspx" />
<Content Include="sig.js" />
<Content Include="sign.aspx" />
<Content Include="status.aspx" />
<Content Include="user.gif" />
<Content Include="Web.config" />
</ItemGroup>
<ItemGroup>
<Compile Include="clients.aspx.cs">
<SubType>ASPXCodeBehind</SubType>
<DependentUpon>clients.aspx</DependentUpon>
</Compile>
<Compile Include="clients.aspx.designer.cs">
<DependentUpon>clients.aspx</DependentUpon>
</Compile>
<Compile Include="cmd.aspx.cs">
<SubType>ASPXCodeBehind</SubType>
<DependentUpon>cmd.aspx</DependentUpon>
</Compile>
<Compile Include="cmd.aspx.designer.cs">
<DependentUpon>cmd.aspx</DependentUpon>
</Compile>
<Compile Include="default.aspx.cs">
<DependentUpon>default.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="default.aspx.designer.cs">
<DependentUpon>default.aspx</DependentUpon>
</Compile>
<Compile Include="Global.asax.cs">
<DependentUpon>Global.asax</DependentUpon>
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Compile>
<Compile Include="labor.aspx.cs">
<SubType>ASPXCodeBehind</SubType>
<DependentUpon>labor.aspx</DependentUpon>
</Compile>
<Compile Include="labor.aspx.designer.cs">
<DependentUpon>labor.aspx</DependentUpon>
</Compile>
<Compile Include="memoedit.aspx.cs">
<SubType>ASPXCodeBehind</SubType>
<DependentUpon>memoedit.aspx</DependentUpon>
</Compile>
<Compile Include="memoedit.aspx.designer.cs">
<DependentUpon>memoedit.aspx</DependentUpon>
</Compile>
<Compile Include="memoto.aspx.cs">
<SubType>ASPXCodeBehind</SubType>
<DependentUpon>memoto.aspx</DependentUpon>
</Compile>
<Compile Include="memoto.aspx.designer.cs">
<DependentUpon>memoto.aspx</DependentUpon>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="ro.aspx.cs">
<SubType>ASPXCodeBehind</SubType>
<DependentUpon>ro.aspx</DependentUpon>
</Compile>
<Compile Include="ro.aspx.designer.cs">
<DependentUpon>ro.aspx</DependentUpon>
</Compile>
<Compile Include="sched2labor.aspx.cs">
<SubType>ASPXCodeBehind</SubType>
<DependentUpon>sched2labor.aspx</DependentUpon>
</Compile>
<Compile Include="sched2labor.aspx.designer.cs">
<DependentUpon>sched2labor.aspx</DependentUpon>
</Compile>
<Compile Include="schedule.aspx.cs">
<SubType>ASPXCodeBehind</SubType>
<DependentUpon>schedule.aspx</DependentUpon>
</Compile>
<Compile Include="schedule.aspx.designer.cs">
<DependentUpon>schedule.aspx</DependentUpon>
</Compile>
<Compile Include="sign.aspx.cs">
<DependentUpon>sign.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="sign.aspx.designer.cs">
<DependentUpon>sign.aspx</DependentUpon>
</Compile>
<Compile Include="status.aspx.cs">
<SubType>ASPXCodeBehind</SubType>
<DependentUpon>status.aspx</DependentUpon>
</Compile>
<Compile Include="status.aspx.designer.cs">
<DependentUpon>status.aspx</DependentUpon>
</Compile>
<Compile Include="Timestamp.cs" />
<Compile Include="util.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\bizobjects\AyaLib\GZTW.AyaNova.BLL.csproj">
<Project>{50B807B6-FC35-4CC3-B54D-91C78426A943}</Project>
<Name>GZTW.AyaNova.BLL</Name>
</ProjectReference>
<ProjectReference Include="..\csla10\CSLA.Core.Bindablebase\CSLA.Core.Bindablebase.csproj">
<Project>{C2392355-12A9-4197-A1D3-603C390B1E62}</Project>
<Name>CSLA.Core.Bindablebase</Name>
</ProjectReference>
<ProjectReference Include="..\csla10\CSLA\CSLA.vbproj">
<Project>{1B9A38BB-461A-47A4-AD72-099C694138A0}</Project>
<Name>CSLA</Name>
</ProjectReference>
<ProjectReference Include="..\Data\Data\GZTW.Data.csproj">
<Project>{701893AA-C042-4FB2-8643-E139372C1117}</Project>
<Name>GZTW.Data</Name>
</ProjectReference>
<ProjectReference Include="..\Profile\GZTW.Profile\GZTW.Profile.csproj">
<Project>{EDE897E2-E2E6-441D-9F83-0B973AE09670}</Project>
<Name>GZTW.Profile</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<None Include="..\..\keys\AyaNova.snk">
<Link>AyaNova.snk</Link>
</None>
<None Include="Properties\PublishProfiles\PublishMBI.pubxml" />
</ItemGroup>
<ItemGroup>
<Folder Include="bin\" />
</ItemGroup>
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
<ProjectExtensions>
<VisualStudio>
<FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
<WebProjectProperties>
<UseIIS>True</UseIIS>
<AutoAssignPort>True</AutoAssignPort>
<DevelopmentServerPort>53783</DevelopmentServerPort>
<DevelopmentServerVPath>/</DevelopmentServerVPath>
<IISUrl>http://localhost/MBI</IISUrl>
<NTLMAuthentication>False</NTLMAuthentication>
<UseCustomServer>False</UseCustomServer>
<CustomServerUrl>
</CustomServerUrl>
<SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
</WebProjectProperties>
</FlavorProperties>
</VisualStudio>
</ProjectExtensions>
<PropertyGroup>
<PreBuildEvent>"C:\data\AyaNova\utils\TimeStamp\bin\Release\TimeStamp.exe" "$(ProjectDir)Timestamp.cs" "/N:AyaNovaMBI"</PreBuildEvent>
</PropertyGroup>
</Project>

View File

@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<ProjectView>ShowAllFiles</ProjectView>
<NameOfLastUsedPublishProfile>PublishMBI</NameOfLastUsedPublishProfile>
</PropertyGroup>
<ProjectExtensions>
<VisualStudio>
<FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
<WebProjectProperties>
<StartPageUrl>default.aspx</StartPageUrl>
<StartAction>SpecificPage</StartAction>
<AspNetDebugging>True</AspNetDebugging>
<SilverlightDebugging>False</SilverlightDebugging>
<NativeDebugging>False</NativeDebugging>
<SQLDebugging>False</SQLDebugging>
<ExternalProgram>
</ExternalProgram>
<StartExternalURL>
</StartExternalURL>
<StartCmdLineArguments>
</StartCmdLineArguments>
<StartWorkingDirectory>
</StartWorkingDirectory>
<EnableENC>False</EnableENC>
<AlwaysStartWebServerOnDebug>True</AlwaysStartWebServerOnDebug>
</WebProjectProperties>
</FlavorProperties>
</VisualStudio>
</ProjectExtensions>
</Project>

View File

@@ -0,0 +1,35 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("AyaNova MBI")]
[assembly: AssemblyDescription("AyaNova Mobile Browser Interface")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Ground Zero Tech-Works Inc.")]
[assembly: AssemblyProduct("AyaNova MBI")]
[assembly: AssemblyCopyright("Copyright © 2008-2018")]
[assembly: AssemblyTrademark("AyaNova is a registered trademark all rights reserved")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("3d5900ae-111a-45be-96b3-d9e4606ca793")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Revision and Build Numbers
// by using the '*' as shown below:
[assembly: AssemblyVersion("7.5.0.0")]
[assembly: AssemblyFileVersion("7.5.0.0")]

View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is used by the publish/package process of your Web project. You can customize the behavior of this process
by editing this MSBuild file. In order to learn more about this please visit http://go.microsoft.com/fwlink/?LinkID=208121.
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<WebPublishMethod>FileSystem</WebPublishMethod>
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<SiteUrlToLaunchAfterPublish />
<LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
<ExcludeApp_Data>True</ExcludeApp_Data>
<publishUrl>C:\data\AyaNova\source\MBI\publish</publishUrl>
<DeleteExistingFiles>True</DeleteExistingFiles>
<PrecompileBeforePublish>True</PrecompileBeforePublish>
<EnableUpdateable>False</EnableUpdateable>
<DebugSymbols>False</DebugSymbols>
<WDPMergeOption>MergeAllOutputsToASingleAssembly</WDPMergeOption>
<UseMerge>True</UseMerge>
<SingleAssemblyName>GZTW.AyaNovaMBI.Pages.dll</SingleAssemblyName>
</PropertyGroup>
</Project>

View File

@@ -0,0 +1,163 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is used by the publish/package process of your Web project. You can customize the behavior of this process
by editing this MSBuild file. In order to learn more about this please visit http://go.microsoft.com/fwlink/?LinkID=208121.
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<TimeStampOfAssociatedLegacyPublishXmlFile />
<_PublishTargetUrl>C:\data\AyaNova\source\MBI\publish</_PublishTargetUrl>
</PropertyGroup>
<ItemGroup>
<File Include="aya.gif">
<publishTime>09/30/2010 13:47:31</publishTime>
</File>
<File Include="bin/App_global.asax.compiled">
<publishTime>05/22/2018 16:22:06</publishTime>
</File>
<File Include="bin/App_global.asax.dll">
<publishTime>06/14/2017 11:29:54</publishTime>
</File>
<File Include="bin/App_global.asax.pdb">
<publishTime>06/14/2017 11:29:54</publishTime>
</File>
<File Include="bin/App_Web_bdnzsk2v.dll">
<publishTime>06/14/2017 11:29:55</publishTime>
</File>
<File Include="bin/App_Web_bdnzsk2v.pdb">
<publishTime>06/14/2017 11:29:55</publishTime>
</File>
<File Include="bin/BouncyCastle.Crypto.dll">
<publishTime>12/28/2015 20:38:26</publishTime>
</File>
<File Include="bin/ChilkatDotNet4.dll">
<publishTime>08/30/2010 10:12:24</publishTime>
</File>
<File Include="bin/clients.aspx.cdcab7d2.compiled">
<publishTime>05/22/2018 16:22:06</publishTime>
</File>
<File Include="bin/cmd.aspx.cdcab7d2.compiled">
<publishTime>05/22/2018 16:22:06</publishTime>
</File>
<File Include="bin/CSLA.Core.Bindablebase.dll">
<publishTime>05/22/2018 16:18:29</publishTime>
</File>
<File Include="bin/CSLA.dll">
<publishTime>05/22/2018 16:18:30</publishTime>
</File>
<File Include="bin/CSLA.Server.DataPortal.dll">
<publishTime>05/22/2018 16:18:28</publishTime>
</File>
<File Include="bin/default.aspx.cdcab7d2.compiled">
<publishTime>05/22/2018 16:22:06</publishTime>
</File>
<File Include="bin/FirebirdSql.Data.FirebirdClient.dll">
<publishTime>09/30/2010 13:46:07</publishTime>
</File>
<File Include="bin/GZTW.AyaNova.BLL.dll">
<publishTime>05/22/2018 16:18:33</publishTime>
</File>
<File Include="bin/GZTW.AyaNovaMBI.dll">
<publishTime>05/22/2018 16:21:47</publishTime>
</File>
<File Include="bin/GZTW.AyaNovaMBI.Pages.dll">
<publishTime>05/22/2018 16:22:06</publishTime>
</File>
<File Include="bin/GZTW.Data.dll">
<publishTime>05/22/2018 16:18:30</publishTime>
</File>
<File Include="bin/GZTW.MBI.dll">
<publishTime>06/14/2017 12:04:42</publishTime>
</File>
<File Include="bin/GZTW.MBI.pdb">
<publishTime>06/14/2017 11:32:19</publishTime>
</File>
<File Include="bin/GZTW.Profile.dll">
<publishTime>05/22/2018 16:18:29</publishTime>
</File>
<File Include="bin/labor.aspx.cdcab7d2.compiled">
<publishTime>05/22/2018 16:22:06</publishTime>
</File>
<File Include="bin/memoedit.aspx.cdcab7d2.compiled">
<publishTime>05/22/2018 16:22:06</publishTime>
</File>
<File Include="bin/memoto.aspx.cdcab7d2.compiled">
<publishTime>05/22/2018 16:22:06</publishTime>
</File>
<File Include="bin/Newtonsoft.Json.dll">
<publishTime>06/13/2016 23:05:44</publishTime>
</File>
<File Include="bin/ro.aspx.cdcab7d2.compiled">
<publishTime>05/22/2018 16:22:06</publishTime>
</File>
<File Include="bin/sched2labor.aspx.cdcab7d2.compiled">
<publishTime>05/22/2018 16:22:06</publishTime>
</File>
<File Include="bin/schedule.aspx.cdcab7d2.compiled">
<publishTime>05/22/2018 16:22:06</publishTime>
</File>
<File Include="bin/sign.aspx.cdcab7d2.compiled">
<publishTime>05/22/2018 16:22:06</publishTime>
</File>
<File Include="bin/status.aspx.cdcab7d2.compiled">
<publishTime>05/22/2018 16:22:06</publishTime>
</File>
<File Include="clients.aspx">
<publishTime>05/22/2018 16:21:51</publishTime>
</File>
<File Include="cmd.aspx">
<publishTime>05/22/2018 16:21:51</publishTime>
</File>
<File Include="default.aspx">
<publishTime>05/22/2018 16:21:51</publishTime>
</File>
<File Include="jquery-1.4.4.min.js">
<publishTime>11/15/2010 11:12:48</publishTime>
</File>
<File Include="labor.aspx">
<publishTime>05/22/2018 16:21:52</publishTime>
</File>
<File Include="mbi.css">
<publishTime>09/30/2010 13:47:31</publishTime>
</File>
<File Include="memoedit.aspx">
<publishTime>05/22/2018 16:21:52</publishTime>
</File>
<File Include="memoto.aspx">
<publishTime>05/22/2018 16:21:52</publishTime>
</File>
<File Include="ok.gif">
<publishTime>09/30/2010 13:47:31</publishTime>
</File>
<File Include="password.gif">
<publishTime>09/30/2010 13:47:31</publishTime>
</File>
<File Include="PrecompiledApp.config">
<publishTime>05/22/2018 16:21:48</publishTime>
</File>
<File Include="ro.aspx">
<publishTime>05/22/2018 16:21:52</publishTime>
</File>
<File Include="sched2labor.aspx">
<publishTime>05/22/2018 16:21:52</publishTime>
</File>
<File Include="schedule.aspx">
<publishTime>05/22/2018 16:21:52</publishTime>
</File>
<File Include="sig.js">
<publishTime>11/24/2010 16:43:32</publishTime>
</File>
<File Include="sign.aspx">
<publishTime>05/22/2018 16:21:52</publishTime>
</File>
<File Include="status.aspx">
<publishTime>05/22/2018 16:21:52</publishTime>
</File>
<File Include="user.gif">
<publishTime>09/30/2010 13:47:31</publishTime>
</File>
<File Include="Web.config">
<publishTime>01/05/2011 14:11:05</publishTime>
</File>
</ItemGroup>
</Project>

21
source/MBI/Web.config Normal file
View File

@@ -0,0 +1,21 @@
<?xml version="1.0"?>
<configuration>
<appSettings />
<connectionStrings />
<system.web>
<compilation debug="true" targetFramework="4.0">
</compilation>
<xhtmlConformance mode="Strict" />
<httpRuntime useFullyQualifiedRedirectUrl="true" />
<identity impersonate="false" />
<pages enableViewState="false" enableEventValidation="false" controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID">
</pages>
<sessionState cookieless="true" />
<authentication mode="Forms">
<forms loginUrl="default.aspx" protection="All" timeout="30" name=".ASPXAUTH" path="/" requireSSL="false" slidingExpiration="true" defaultUrl="default.aspx" cookieless="UseDeviceProfile" enableCrossAppRedirects="false" />
</authentication>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</configuration>

BIN
source/MBI/aya.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

15
source/MBI/clients.aspx Normal file
View File

@@ -0,0 +1,15 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="clients.aspx.cs" Inherits="AyaNovaMBI.clients" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head runat="server">
<title>Untitled Page</title>
<link rel="Stylesheet" href="mbi.css" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<div>
STUB: future clients list page
</div>
</form>
</body>
</html>

View File

@@ -0,0 +1,21 @@
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
namespace AyaNovaMBI
{
public partial class clients : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
}

31
source/MBI/clients.aspx.designer.cs generated Normal file
View File

@@ -0,0 +1,31 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:2.0.50727.312
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace AyaNovaMBI {
/// <summary>
/// clients class.
/// </summary>
/// <remarks>
/// Auto-generated class.
/// </remarks>
public partial class clients {
/// <summary>
/// form1 control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
}
}

10
source/MBI/cmd.aspx Normal file
View File

@@ -0,0 +1,10 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="cmd.aspx.cs" Inherits="AyaNovaMBI.cmd" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>cmd</title>
</head>
<body>
</body>
</html>

51
source/MBI/cmd.aspx.cs Normal file
View File

@@ -0,0 +1,51 @@
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using GZTW.AyaNova.BLL;
namespace AyaNovaMBI
{
public partial class cmd : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string command = util.GetCMDFromRequest(Request);
Guid id = util.GetIDFromRequest(Request);
switch (command)
{
case "newlabor":
{
//ID is workorder item so fetch workorder by it, add the labor to that item, save it and redirect
//to the labor page
Workorder w = Workorder.GetWorkorderByRelative(RootObjectTypes.WorkorderItem, id);
WorkorderItemLabor wil = w.WorkorderItems[id].Labors.Add(w.WorkorderItems[id]);
//case 816 - this is now and always has been done already at the biz object level
// wil.ServiceStopDate = DateTime.Now;
//wil.ServiceStartDate = DateTime.Now.AddHours(-1);
//wil.ServiceRateQuantity = 1;
wil.UserID = util.CurrentUserID;
w.Save();
Response.Redirect("labor.aspx?id=" + wil.ID.ToString());
}
break;
default:
util.Redirect(Session, Response, "");
break;
}
}
//------------------
}
}

22
source/MBI/cmd.aspx.designer.cs generated Normal file
View File

@@ -0,0 +1,22 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:2.0.50727.312
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace AyaNovaMBI {
/// <summary>
/// cmd class.
/// </summary>
/// <remarks>
/// Auto-generated class.
/// </remarks>
public partial class cmd {
}
}

23
source/MBI/default.aspx Normal file
View File

@@ -0,0 +1,23 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="default.aspx.cs" Inherits="AyaNovaMBI._default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>AyaNova MBI</title>
<link rel="Stylesheet" href="mbi.css" type="text/css" />
</head>
<body>
<div class="clerror"><asp:Literal ID="lit" runat="server"></asp:Literal></div>
<div><img height="32" width="32" src="aya.gif" alt="AyaNova Mobile" /><span class="secthead">AyaNova MBI</span></div>
<form id="form1" runat="server" action="default.aspx" method="post" defaultfocus="edUserName" defaultbutton="btnlogin">
<div>
<div><img height="16" width="16" alt="Username" src="user.gif" /></div>
<div><asp:TextBox ID="edUserName" runat="server" ></asp:TextBox></div>
<div><img height="16" width="16" alt="Password" src="password.gif" /></div>
<div><asp:TextBox ID="edPassword" runat="server" TextMode="Password"></asp:TextBox></div>
<div><asp:Button ID="btnlogin" runat="server" Text="&rArr;" OnClick="btnlogin_Click" AccessKey="0" /> </div>
</div>
</form>
<asp:Literal ID="litnfo" runat="server"></asp:Literal>
</body>
</html>

132
source/MBI/default.aspx.cs Normal file
View File

@@ -0,0 +1,132 @@
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using CSLA.Security;
using System.Threading;
using GZTW.AyaNova.BLL;
namespace AyaNovaMBI
{
public partial class _default : Page
{
protected void Page_Load(object sender, EventArgs e)
{
try
{
GZTW.AyaNova.BLL.AyaBizUtils.Initialize();
System.Text.StringBuilder s=new System.Text.StringBuilder();
s.Append("<div><span class=\"tinytext\">");
s.Append("Licensed to: " + HttpUtility.HtmlEncode(AyaBizUtils.REGTO));//case 1171
s.Append("<br/>");
s.Append("AyaNova&#174; MBI Service management software 7.5 ");//(patch 3)
s.Append("<br/>");
s.Append("&#169; 1999-2018 Ground Zero Tech-Works Inc. All rights reserved.");
s.Append("</span></div>");
this.litnfo.Text = s.ToString();
this.btnlogin.Visible = true;
}
catch (Exception ex)
{
//Case 352 - discovered that this was all using the inner exception blindly assuming
//there was one which caused any exception without an inner exception to throw a null reference
//exception here instead of showing the correct message (i.e. license or schema invalid etc etc).
//crack the exception
while (ex.InnerException != null)
ex = ex.InnerException;
if (ex.Message.Contains("fbembed"))
{
this.lit.Text ="<h2>The embedded firebird database can not be used with AyaNova MBI<br/>" +
"MBI requires a database server</h2>";
this.btnlogin.Visible = false;
}
else
{
this.lit.Text ="<h2>MBI was unable to start, most likely this is due to a configuration error.</h2>" +
"<h3>Double check your settings in the config.txt file as outlined in the documentation.<br/>" +
"The error message is:</h3><div>" +
util.StringWebify(ex.Message) +
"</div><br/><br/><br/><br/>";
this.btnlogin.Visible = false;
}
}
}
protected void btnlogin_Click(object sender, EventArgs e)
{
string ls = AyaBizUtils.PluginSubscriptionStatus("MBI - Minimal browser interface", AyaNovaMBI.Timestamp.BuildAt);
if (ls=="OK")
{
string sUser = edUserName.Text;
string sPass = edPassword.Text;
if (sUser == "manager" && sPass == "letmein")
{
this.lit.Text = "Access denied: The default Administrator account password must be changed.";
return;
}
Session.Clear();
AyaBizUtils.Login(sUser, sPass);
if (Thread.CurrentPrincipal.Identity.IsAuthenticated && (!util.CurrentUser.IsClientOrHeadOfficeAccount)
&& (util.CurrentUser.IsScheduleable))
{
Session["AyaNova-Principle"] = Thread.CurrentPrincipal;
HttpContext.Current.User = (System.Security.Principal.IPrincipal)Session["AyaNova-Principle"];
FormsAuthentication.SetAuthCookie(sUser, false);
Response.Redirect("schedule.aspx");
}
}
else
{
if (ls == "NOTALLOWED")
{
this.lit.Text =
"NOT LICENSED!<br/><br/>This AyaNova MBI was built " +
AyaNovaMBI.Timestamp.BuildAt.ToString() + "<br/>" +
"but your license subscription for it ended " +
AyaBizUtils.PluginSubscriptionDate("MBI - Minimal browser interface").ToString() + "<br/>" +
"<br/>Downgrade back to your previous version or purchase a subscription to use AyaNova MBI.";
}
else
this.lit.Text = "An MBI license is required to use AyaNova MBI";
}
}
//------------------
}
}

76
source/MBI/default.aspx.designer.cs generated Normal file
View File

@@ -0,0 +1,76 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:2.0.50727.1434
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace AyaNovaMBI {
/// <summary>
/// _default class.
/// </summary>
/// <remarks>
/// Auto-generated class.
/// </remarks>
public partial class _default {
/// <summary>
/// lit control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Literal lit;
/// <summary>
/// form1 control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary>
/// edUserName control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.TextBox edUserName;
/// <summary>
/// edPassword control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.TextBox edPassword;
/// <summary>
/// btnlogin control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Button btnlogin;
/// <summary>
/// litnfo control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Literal litnfo;
}
}

167
source/MBI/jquery-1.4.4.min.js vendored Normal file
View File

@@ -0,0 +1,167 @@
/*!
* jQuery JavaScript Library v1.4.4
* http://jquery.com/
*
* Copyright 2010, John Resig
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* Includes Sizzle.js
* http://sizzlejs.com/
* Copyright 2010, The Dojo Foundation
* Released under the MIT, BSD, and GPL Licenses.
*
* Date: Thu Nov 11 19:04:53 2010 -0500
*/
(function(E,B){function ka(a,b,d){if(d===B&&a.nodeType===1){d=a.getAttribute("data-"+b);if(typeof d==="string"){try{d=d==="true"?true:d==="false"?false:d==="null"?null:!c.isNaN(d)?parseFloat(d):Ja.test(d)?c.parseJSON(d):d}catch(e){}c.data(a,b,d)}else d=B}return d}function U(){return false}function ca(){return true}function la(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function Ka(a){var b,d,e,f,h,l,k,o,x,r,A,C=[];f=[];h=c.data(this,this.nodeType?"events":"__events__");if(typeof h==="function")h=
h.events;if(!(a.liveFired===this||!h||!h.live||a.button&&a.type==="click")){if(a.namespace)A=RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)");a.liveFired=this;var J=h.live.slice(0);for(k=0;k<J.length;k++){h=J[k];h.origType.replace(X,"")===a.type?f.push(h.selector):J.splice(k--,1)}f=c(a.target).closest(f,a.currentTarget);o=0;for(x=f.length;o<x;o++){r=f[o];for(k=0;k<J.length;k++){h=J[k];if(r.selector===h.selector&&(!A||A.test(h.namespace))){l=r.elem;e=null;if(h.preType==="mouseenter"||
h.preType==="mouseleave"){a.type=h.preType;e=c(a.relatedTarget).closest(h.selector)[0]}if(!e||e!==l)C.push({elem:l,handleObj:h,level:r.level})}}}o=0;for(x=C.length;o<x;o++){f=C[o];if(d&&f.level>d)break;a.currentTarget=f.elem;a.data=f.handleObj.data;a.handleObj=f.handleObj;A=f.handleObj.origHandler.apply(f.elem,arguments);if(A===false||a.isPropagationStopped()){d=f.level;if(A===false)b=false;if(a.isImmediatePropagationStopped())break}}return b}}function Y(a,b){return(a&&a!=="*"?a+".":"")+b.replace(La,
"`").replace(Ma,"&")}function ma(a,b,d){if(c.isFunction(b))return c.grep(a,function(f,h){return!!b.call(f,h,f)===d});else if(b.nodeType)return c.grep(a,function(f){return f===b===d});else if(typeof b==="string"){var e=c.grep(a,function(f){return f.nodeType===1});if(Na.test(b))return c.filter(b,e,!d);else b=c.filter(b,e)}return c.grep(a,function(f){return c.inArray(f,b)>=0===d})}function na(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var e=c.data(a[d++]),f=c.data(this,
e);if(e=e&&e.events){delete f.handle;f.events={};for(var h in e)for(var l in e[h])c.event.add(this,h,e[h][l],e[h][l].data)}}})}function Oa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function oa(a,b,d){var e=b==="width"?a.offsetWidth:a.offsetHeight;if(d==="border")return e;c.each(b==="width"?Pa:Qa,function(){d||(e-=parseFloat(c.css(a,"padding"+this))||0);if(d==="margin")e+=parseFloat(c.css(a,
"margin"+this))||0;else e-=parseFloat(c.css(a,"border"+this+"Width"))||0});return e}function da(a,b,d,e){if(c.isArray(b)&&b.length)c.each(b,function(f,h){d||Ra.test(a)?e(a,h):da(a+"["+(typeof h==="object"||c.isArray(h)?f:"")+"]",h,d,e)});else if(!d&&b!=null&&typeof b==="object")c.isEmptyObject(b)?e(a,""):c.each(b,function(f,h){da(a+"["+f+"]",h,d,e)});else e(a,b)}function S(a,b){var d={};c.each(pa.concat.apply([],pa.slice(0,b)),function(){d[this]=a});return d}function qa(a){if(!ea[a]){var b=c("<"+
a+">").appendTo("body"),d=b.css("display");b.remove();if(d==="none"||d==="")d="block";ea[a]=d}return ea[a]}function fa(a){return c.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var t=E.document,c=function(){function a(){if(!b.isReady){try{t.documentElement.doScroll("left")}catch(j){setTimeout(a,1);return}b.ready()}}var b=function(j,s){return new b.fn.init(j,s)},d=E.jQuery,e=E.$,f,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,l=/\S/,k=/^\s+/,o=/\s+$/,x=/\W/,r=/\d/,A=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,
C=/^[\],:{}\s]*$/,J=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,w=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,I=/(?:^|:|,)(?:\s*\[)+/g,L=/(webkit)[ \/]([\w.]+)/,g=/(opera)(?:.*version)?[ \/]([\w.]+)/,i=/(msie) ([\w.]+)/,n=/(mozilla)(?:.*? rv:([\w.]+))?/,m=navigator.userAgent,p=false,q=[],u,y=Object.prototype.toString,F=Object.prototype.hasOwnProperty,M=Array.prototype.push,N=Array.prototype.slice,O=String.prototype.trim,D=Array.prototype.indexOf,R={};b.fn=b.prototype={init:function(j,
s){var v,z,H;if(!j)return this;if(j.nodeType){this.context=this[0]=j;this.length=1;return this}if(j==="body"&&!s&&t.body){this.context=t;this[0]=t.body;this.selector="body";this.length=1;return this}if(typeof j==="string")if((v=h.exec(j))&&(v[1]||!s))if(v[1]){H=s?s.ownerDocument||s:t;if(z=A.exec(j))if(b.isPlainObject(s)){j=[t.createElement(z[1])];b.fn.attr.call(j,s,true)}else j=[H.createElement(z[1])];else{z=b.buildFragment([v[1]],[H]);j=(z.cacheable?z.fragment.cloneNode(true):z.fragment).childNodes}return b.merge(this,
j)}else{if((z=t.getElementById(v[2]))&&z.parentNode){if(z.id!==v[2])return f.find(j);this.length=1;this[0]=z}this.context=t;this.selector=j;return this}else if(!s&&!x.test(j)){this.selector=j;this.context=t;j=t.getElementsByTagName(j);return b.merge(this,j)}else return!s||s.jquery?(s||f).find(j):b(s).find(j);else if(b.isFunction(j))return f.ready(j);if(j.selector!==B){this.selector=j.selector;this.context=j.context}return b.makeArray(j,this)},selector:"",jquery:"1.4.4",length:0,size:function(){return this.length},
toArray:function(){return N.call(this,0)},get:function(j){return j==null?this.toArray():j<0?this.slice(j)[0]:this[j]},pushStack:function(j,s,v){var z=b();b.isArray(j)?M.apply(z,j):b.merge(z,j);z.prevObject=this;z.context=this.context;if(s==="find")z.selector=this.selector+(this.selector?" ":"")+v;else if(s)z.selector=this.selector+"."+s+"("+v+")";return z},each:function(j,s){return b.each(this,j,s)},ready:function(j){b.bindReady();if(b.isReady)j.call(t,b);else q&&q.push(j);return this},eq:function(j){return j===
-1?this.slice(j):this.slice(j,+j+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(N.apply(this,arguments),"slice",N.call(arguments).join(","))},map:function(j){return this.pushStack(b.map(this,function(s,v){return j.call(s,v,s)}))},end:function(){return this.prevObject||b(null)},push:M,sort:[].sort,splice:[].splice};b.fn.init.prototype=b.fn;b.extend=b.fn.extend=function(){var j,s,v,z,H,G=arguments[0]||{},K=1,Q=arguments.length,ga=false;
if(typeof G==="boolean"){ga=G;G=arguments[1]||{};K=2}if(typeof G!=="object"&&!b.isFunction(G))G={};if(Q===K){G=this;--K}for(;K<Q;K++)if((j=arguments[K])!=null)for(s in j){v=G[s];z=j[s];if(G!==z)if(ga&&z&&(b.isPlainObject(z)||(H=b.isArray(z)))){if(H){H=false;v=v&&b.isArray(v)?v:[]}else v=v&&b.isPlainObject(v)?v:{};G[s]=b.extend(ga,v,z)}else if(z!==B)G[s]=z}return G};b.extend({noConflict:function(j){E.$=e;if(j)E.jQuery=d;return b},isReady:false,readyWait:1,ready:function(j){j===true&&b.readyWait--;
if(!b.readyWait||j!==true&&!b.isReady){if(!t.body)return setTimeout(b.ready,1);b.isReady=true;if(!(j!==true&&--b.readyWait>0))if(q){var s=0,v=q;for(q=null;j=v[s++];)j.call(t,b);b.fn.trigger&&b(t).trigger("ready").unbind("ready")}}},bindReady:function(){if(!p){p=true;if(t.readyState==="complete")return setTimeout(b.ready,1);if(t.addEventListener){t.addEventListener("DOMContentLoaded",u,false);E.addEventListener("load",b.ready,false)}else if(t.attachEvent){t.attachEvent("onreadystatechange",u);E.attachEvent("onload",
b.ready);var j=false;try{j=E.frameElement==null}catch(s){}t.documentElement.doScroll&&j&&a()}}},isFunction:function(j){return b.type(j)==="function"},isArray:Array.isArray||function(j){return b.type(j)==="array"},isWindow:function(j){return j&&typeof j==="object"&&"setInterval"in j},isNaN:function(j){return j==null||!r.test(j)||isNaN(j)},type:function(j){return j==null?String(j):R[y.call(j)]||"object"},isPlainObject:function(j){if(!j||b.type(j)!=="object"||j.nodeType||b.isWindow(j))return false;if(j.constructor&&
!F.call(j,"constructor")&&!F.call(j.constructor.prototype,"isPrototypeOf"))return false;for(var s in j);return s===B||F.call(j,s)},isEmptyObject:function(j){for(var s in j)return false;return true},error:function(j){throw j;},parseJSON:function(j){if(typeof j!=="string"||!j)return null;j=b.trim(j);if(C.test(j.replace(J,"@").replace(w,"]").replace(I,"")))return E.JSON&&E.JSON.parse?E.JSON.parse(j):(new Function("return "+j))();else b.error("Invalid JSON: "+j)},noop:function(){},globalEval:function(j){if(j&&
l.test(j)){var s=t.getElementsByTagName("head")[0]||t.documentElement,v=t.createElement("script");v.type="text/javascript";if(b.support.scriptEval)v.appendChild(t.createTextNode(j));else v.text=j;s.insertBefore(v,s.firstChild);s.removeChild(v)}},nodeName:function(j,s){return j.nodeName&&j.nodeName.toUpperCase()===s.toUpperCase()},each:function(j,s,v){var z,H=0,G=j.length,K=G===B||b.isFunction(j);if(v)if(K)for(z in j){if(s.apply(j[z],v)===false)break}else for(;H<G;){if(s.apply(j[H++],v)===false)break}else if(K)for(z in j){if(s.call(j[z],
z,j[z])===false)break}else for(v=j[0];H<G&&s.call(v,H,v)!==false;v=j[++H]);return j},trim:O?function(j){return j==null?"":O.call(j)}:function(j){return j==null?"":j.toString().replace(k,"").replace(o,"")},makeArray:function(j,s){var v=s||[];if(j!=null){var z=b.type(j);j.length==null||z==="string"||z==="function"||z==="regexp"||b.isWindow(j)?M.call(v,j):b.merge(v,j)}return v},inArray:function(j,s){if(s.indexOf)return s.indexOf(j);for(var v=0,z=s.length;v<z;v++)if(s[v]===j)return v;return-1},merge:function(j,
s){var v=j.length,z=0;if(typeof s.length==="number")for(var H=s.length;z<H;z++)j[v++]=s[z];else for(;s[z]!==B;)j[v++]=s[z++];j.length=v;return j},grep:function(j,s,v){var z=[],H;v=!!v;for(var G=0,K=j.length;G<K;G++){H=!!s(j[G],G);v!==H&&z.push(j[G])}return z},map:function(j,s,v){for(var z=[],H,G=0,K=j.length;G<K;G++){H=s(j[G],G,v);if(H!=null)z[z.length]=H}return z.concat.apply([],z)},guid:1,proxy:function(j,s,v){if(arguments.length===2)if(typeof s==="string"){v=j;j=v[s];s=B}else if(s&&!b.isFunction(s)){v=
s;s=B}if(!s&&j)s=function(){return j.apply(v||this,arguments)};if(j)s.guid=j.guid=j.guid||s.guid||b.guid++;return s},access:function(j,s,v,z,H,G){var K=j.length;if(typeof s==="object"){for(var Q in s)b.access(j,Q,s[Q],z,H,v);return j}if(v!==B){z=!G&&z&&b.isFunction(v);for(Q=0;Q<K;Q++)H(j[Q],s,z?v.call(j[Q],Q,H(j[Q],s)):v,G);return j}return K?H(j[0],s):B},now:function(){return(new Date).getTime()},uaMatch:function(j){j=j.toLowerCase();j=L.exec(j)||g.exec(j)||i.exec(j)||j.indexOf("compatible")<0&&n.exec(j)||
[];return{browser:j[1]||"",version:j[2]||"0"}},browser:{}});b.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(j,s){R["[object "+s+"]"]=s.toLowerCase()});m=b.uaMatch(m);if(m.browser){b.browser[m.browser]=true;b.browser.version=m.version}if(b.browser.webkit)b.browser.safari=true;if(D)b.inArray=function(j,s){return D.call(s,j)};if(!/\s/.test("\u00a0")){k=/^[\s\xA0]+/;o=/[\s\xA0]+$/}f=b(t);if(t.addEventListener)u=function(){t.removeEventListener("DOMContentLoaded",u,
false);b.ready()};else if(t.attachEvent)u=function(){if(t.readyState==="complete"){t.detachEvent("onreadystatechange",u);b.ready()}};return E.jQuery=E.$=b}();(function(){c.support={};var a=t.documentElement,b=t.createElement("script"),d=t.createElement("div"),e="script"+c.now();d.style.display="none";d.innerHTML=" <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";var f=d.getElementsByTagName("*"),h=d.getElementsByTagName("a")[0],l=t.createElement("select"),
k=l.appendChild(t.createElement("option"));if(!(!f||!f.length||!h)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(h.getAttribute("style")),hrefNormalized:h.getAttribute("href")==="/a",opacity:/^0.55$/.test(h.style.opacity),cssFloat:!!h.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:k.selected,deleteExpando:true,optDisabled:false,checkClone:false,
scriptEval:false,noCloneEvent:true,boxModel:null,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableHiddenOffsets:true};l.disabled=true;c.support.optDisabled=!k.disabled;b.type="text/javascript";try{b.appendChild(t.createTextNode("window."+e+"=1;"))}catch(o){}a.insertBefore(b,a.firstChild);if(E[e]){c.support.scriptEval=true;delete E[e]}try{delete b.test}catch(x){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function r(){c.support.noCloneEvent=
false;d.detachEvent("onclick",r)});d.cloneNode(true).fireEvent("onclick")}d=t.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=t.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var r=t.createElement("div");r.style.width=r.style.paddingLeft="1px";t.body.appendChild(r);c.boxModel=c.support.boxModel=r.offsetWidth===2;if("zoom"in r.style){r.style.display="inline";r.style.zoom=
1;c.support.inlineBlockNeedsLayout=r.offsetWidth===2;r.style.display="";r.innerHTML="<div style='width:4px;'></div>";c.support.shrinkWrapBlocks=r.offsetWidth!==2}r.innerHTML="<table><tr><td style='padding:0;display:none'></td><td>t</td></tr></table>";var A=r.getElementsByTagName("td");c.support.reliableHiddenOffsets=A[0].offsetHeight===0;A[0].style.display="";A[1].style.display="none";c.support.reliableHiddenOffsets=c.support.reliableHiddenOffsets&&A[0].offsetHeight===0;r.innerHTML="";t.body.removeChild(r).style.display=
"none"});a=function(r){var A=t.createElement("div");r="on"+r;var C=r in A;if(!C){A.setAttribute(r,"return;");C=typeof A[r]==="function"}return C};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=f=h=null}})();var ra={},Ja=/^(?:\{.*\}|\[.*\])$/;c.extend({cache:{},uuid:0,expando:"jQuery"+c.now(),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},data:function(a,b,d){if(c.acceptData(a)){a=a==E?ra:a;var e=a.nodeType,f=e?a[c.expando]:null,h=
c.cache;if(!(e&&!f&&typeof b==="string"&&d===B)){if(e)f||(a[c.expando]=f=++c.uuid);else h=a;if(typeof b==="object")if(e)h[f]=c.extend(h[f],b);else c.extend(h,b);else if(e&&!h[f])h[f]={};a=e?h[f]:h;if(d!==B)a[b]=d;return typeof b==="string"?a[b]:a}}},removeData:function(a,b){if(c.acceptData(a)){a=a==E?ra:a;var d=a.nodeType,e=d?a[c.expando]:a,f=c.cache,h=d?f[e]:e;if(b){if(h){delete h[b];d&&c.isEmptyObject(h)&&c.removeData(a)}}else if(d&&c.support.deleteExpando)delete a[c.expando];else if(a.removeAttribute)a.removeAttribute(c.expando);
else if(d)delete f[e];else for(var l in a)delete a[l]}},acceptData:function(a){if(a.nodeName){var b=c.noData[a.nodeName.toLowerCase()];if(b)return!(b===true||a.getAttribute("classid")!==b)}return true}});c.fn.extend({data:function(a,b){var d=null;if(typeof a==="undefined"){if(this.length){var e=this[0].attributes,f;d=c.data(this[0]);for(var h=0,l=e.length;h<l;h++){f=e[h].name;if(f.indexOf("data-")===0){f=f.substr(5);ka(this[0],f,d[f])}}}return d}else if(typeof a==="object")return this.each(function(){c.data(this,
a)});var k=a.split(".");k[1]=k[1]?"."+k[1]:"";if(b===B){d=this.triggerHandler("getData"+k[1]+"!",[k[0]]);if(d===B&&this.length){d=c.data(this[0],a);d=ka(this[0],a,d)}return d===B&&k[1]?this.data(k[0]):d}else return this.each(function(){var o=c(this),x=[k[0],b];o.triggerHandler("setData"+k[1]+"!",x);c.data(this,a,b);o.triggerHandler("changeData"+k[1]+"!",x)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var e=
c.data(a,b);if(!d)return e||[];if(!e||c.isArray(d))e=c.data(a,b,c.makeArray(d));else e.push(d);return e}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),e=d.shift();if(e==="inprogress")e=d.shift();if(e){b==="fx"&&d.unshift("inprogress");e.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b===B)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,
a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var sa=/[\n\t]/g,ha=/\s+/,Sa=/\r/g,Ta=/^(?:href|src|style)$/,Ua=/^(?:button|input)$/i,Va=/^(?:button|input|object|select|textarea)$/i,Wa=/^a(?:rea)?$/i,ta=/^(?:radio|checkbox)$/i;c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",
colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};c.fn.extend({attr:function(a,b){return c.access(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(x){var r=c(this);r.addClass(a.call(this,x,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ha),d=0,e=this.length;d<e;d++){var f=this[d];if(f.nodeType===
1)if(f.className){for(var h=" "+f.className+" ",l=f.className,k=0,o=b.length;k<o;k++)if(h.indexOf(" "+b[k]+" ")<0)l+=" "+b[k];f.className=c.trim(l)}else f.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(o){var x=c(this);x.removeClass(a.call(this,o,x.attr("class")))});if(a&&typeof a==="string"||a===B)for(var b=(a||"").split(ha),d=0,e=this.length;d<e;d++){var f=this[d];if(f.nodeType===1&&f.className)if(a){for(var h=(" "+f.className+" ").replace(sa," "),
l=0,k=b.length;l<k;l++)h=h.replace(" "+b[l]+" "," ");f.className=c.trim(h)}else f.className=""}return this},toggleClass:function(a,b){var d=typeof a,e=typeof b==="boolean";if(c.isFunction(a))return this.each(function(f){var h=c(this);h.toggleClass(a.call(this,f,h.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var f,h=0,l=c(this),k=b,o=a.split(ha);f=o[h++];){k=e?k:!l.hasClass(f);l[k?"addClass":"removeClass"](f)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,
"__className__",this.className);this.className=this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(sa," ").indexOf(a)>-1)return true;return false},val:function(a){if(!arguments.length){var b=this[0];if(b){if(c.nodeName(b,"option")){var d=b.attributes.value;return!d||d.specified?b.value:b.text}if(c.nodeName(b,"select")){var e=b.selectedIndex;d=[];var f=b.options;b=b.type==="select-one";
if(e<0)return null;var h=b?e:0;for(e=b?e+1:f.length;h<e;h++){var l=f[h];if(l.selected&&(c.support.optDisabled?!l.disabled:l.getAttribute("disabled")===null)&&(!l.parentNode.disabled||!c.nodeName(l.parentNode,"optgroup"))){a=c(l).val();if(b)return a;d.push(a)}}return d}if(ta.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Sa,"")}return B}var k=c.isFunction(a);return this.each(function(o){var x=c(this),r=a;if(this.nodeType===1){if(k)r=
a.call(this,o,x.val());if(r==null)r="";else if(typeof r==="number")r+="";else if(c.isArray(r))r=c.map(r,function(C){return C==null?"":C+""});if(c.isArray(r)&&ta.test(this.type))this.checked=c.inArray(x.val(),r)>=0;else if(c.nodeName(this,"select")){var A=c.makeArray(r);c("option",this).each(function(){this.selected=c.inArray(c(this).val(),A)>=0});if(!A.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},
attr:function(a,b,d,e){if(!a||a.nodeType===3||a.nodeType===8)return B;if(e&&b in c.attrFn)return c(a)[b](d);e=a.nodeType!==1||!c.isXMLDoc(a);var f=d!==B;b=e&&c.props[b]||b;var h=Ta.test(b);if((b in a||a[b]!==B)&&e&&!h){if(f){b==="type"&&Ua.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");if(d===null)a.nodeType===1&&a.removeAttribute(b);else a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&
b.specified?b.value:Va.test(a.nodeName)||Wa.test(a.nodeName)&&a.href?0:B;return a[b]}if(!c.support.style&&e&&b==="style"){if(f)a.style.cssText=""+d;return a.style.cssText}f&&a.setAttribute(b,""+d);if(!a.attributes[b]&&a.hasAttribute&&!a.hasAttribute(b))return B;a=!c.support.hrefNormalized&&e&&h?a.getAttribute(b,2):a.getAttribute(b);return a===null?B:a}});var X=/\.(.*)$/,ia=/^(?:textarea|input|select)$/i,La=/\./g,Ma=/ /g,Xa=/[^\w\s.|`]/g,Ya=function(a){return a.replace(Xa,"\\$&")},ua={focusin:0,focusout:0};
c.event={add:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(c.isWindow(a)&&a!==E&&!a.frameElement)a=E;if(d===false)d=U;else if(!d)return;var f,h;if(d.handler){f=d;d=f.handler}if(!d.guid)d.guid=c.guid++;if(h=c.data(a)){var l=a.nodeType?"events":"__events__",k=h[l],o=h.handle;if(typeof k==="function"){o=k.handle;k=k.events}else if(!k){a.nodeType||(h[l]=h=function(){});h.events=k={}}if(!o)h.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,
arguments):B};o.elem=a;b=b.split(" ");for(var x=0,r;l=b[x++];){h=f?c.extend({},f):{handler:d,data:e};if(l.indexOf(".")>-1){r=l.split(".");l=r.shift();h.namespace=r.slice(0).sort().join(".")}else{r=[];h.namespace=""}h.type=l;if(!h.guid)h.guid=d.guid;var A=k[l],C=c.event.special[l]||{};if(!A){A=k[l]=[];if(!C.setup||C.setup.call(a,e,r,o)===false)if(a.addEventListener)a.addEventListener(l,o,false);else a.attachEvent&&a.attachEvent("on"+l,o)}if(C.add){C.add.call(a,h);if(!h.handler.guid)h.handler.guid=
d.guid}A.push(h);c.event.global[l]=true}a=null}}},global:{},remove:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(d===false)d=U;var f,h,l=0,k,o,x,r,A,C,J=a.nodeType?"events":"__events__",w=c.data(a),I=w&&w[J];if(w&&I){if(typeof I==="function"){w=I;I=I.events}if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(f in I)c.event.remove(a,f+b)}else{for(b=b.split(" ");f=b[l++];){r=f;k=f.indexOf(".")<0;o=[];if(!k){o=f.split(".");f=o.shift();x=RegExp("(^|\\.)"+
c.map(o.slice(0).sort(),Ya).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(A=I[f])if(d){r=c.event.special[f]||{};for(h=e||0;h<A.length;h++){C=A[h];if(d.guid===C.guid){if(k||x.test(C.namespace)){e==null&&A.splice(h--,1);r.remove&&r.remove.call(a,C)}if(e!=null)break}}if(A.length===0||e!=null&&A.length===1){if(!r.teardown||r.teardown.call(a,o)===false)c.removeEvent(a,f,w.handle);delete I[f]}}else for(h=0;h<A.length;h++){C=A[h];if(k||x.test(C.namespace)){c.event.remove(a,r,C.handler,h);A.splice(h--,1)}}}if(c.isEmptyObject(I)){if(b=
w.handle)b.elem=null;delete w.events;delete w.handle;if(typeof w==="function")c.removeData(a,J);else c.isEmptyObject(w)&&c.removeData(a)}}}}},trigger:function(a,b,d,e){var f=a.type||a;if(!e){a=typeof a==="object"?a[c.expando]?a:c.extend(c.Event(f),a):c.Event(f);if(f.indexOf("!")>=0){a.type=f=f.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[f]&&c.each(c.cache,function(){this.events&&this.events[f]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===
8)return B;a.result=B;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(e=d.nodeType?c.data(d,"handle"):(c.data(d,"__events__")||{}).handle)&&e.apply(d,b);e=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+f]&&d["on"+f].apply(d,b)===false){a.result=false;a.preventDefault()}}catch(h){}if(!a.isPropagationStopped()&&e)c.event.trigger(a,b,e,true);else if(!a.isDefaultPrevented()){var l;e=a.target;var k=f.replace(X,""),o=c.nodeName(e,"a")&&k===
"click",x=c.event.special[k]||{};if((!x._default||x._default.call(d,a)===false)&&!o&&!(e&&e.nodeName&&c.noData[e.nodeName.toLowerCase()])){try{if(e[k]){if(l=e["on"+k])e["on"+k]=null;c.event.triggered=true;e[k]()}}catch(r){}if(l)e["on"+k]=l;c.event.triggered=false}}},handle:function(a){var b,d,e,f;d=[];var h=c.makeArray(arguments);a=h[0]=c.event.fix(a||E.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive;if(!b){e=a.type.split(".");a.type=e.shift();d=e.slice(0).sort();e=RegExp("(^|\\.)"+
d.join("\\.(?:.*\\.)?")+"(\\.|$)")}a.namespace=a.namespace||d.join(".");f=c.data(this,this.nodeType?"events":"__events__");if(typeof f==="function")f=f.events;d=(f||{})[a.type];if(f&&d){d=d.slice(0);f=0;for(var l=d.length;f<l;f++){var k=d[f];if(b||e.test(k.namespace)){a.handler=k.handler;a.data=k.data;a.handleObj=k;k=k.handler.apply(this,h);if(k!==B){a.result=k;if(k===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
fix:function(a){if(a[c.expando])return a;var b=a;a=c.Event(b);for(var d=this.props.length,e;d;){e=this.props[--d];a[e]=b[e]}if(!a.target)a.target=a.srcElement||t;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=t.documentElement;d=t.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop||
d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(a.which==null&&(a.charCode!=null||a.keyCode!=null))a.which=a.charCode!=null?a.charCode:a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==B)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,Y(a.origType,a.selector),c.extend({},a,{handler:Ka,guid:a.handler.guid}))},remove:function(a){c.event.remove(this,
Y(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,d){if(c.isWindow(this))this.onbeforeunload=d},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};c.removeEvent=t.removeEventListener?function(a,b,d){a.removeEventListener&&a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent&&a.detachEvent("on"+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=a;this.type=a.type}else this.type=a;this.timeStamp=
c.now();this[c.expando]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=ca;var a=this.originalEvent;if(a)if(a.preventDefault)a.preventDefault();else a.returnValue=false},stopPropagation:function(){this.isPropagationStopped=ca;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=ca;this.stopPropagation()},isDefaultPrevented:U,isPropagationStopped:U,isImmediatePropagationStopped:U};
var va=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},wa=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?wa:va,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?wa:va)}}});if(!c.support.submitBubbles)c.event.special.submit={setup:function(){if(this.nodeName.toLowerCase()!==
"form"){c.event.add(this,"click.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="submit"||d==="image")&&c(b).closest("form").length){a.liveFired=B;return la("submit",this,arguments)}});c.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="text"||d==="password")&&c(b).closest("form").length&&a.keyCode===13){a.liveFired=B;return la("submit",this,arguments)}})}else return false},teardown:function(){c.event.remove(this,".specialSubmit")}};if(!c.support.changeBubbles){var V,
xa=function(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(e){return e.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},Z=function(a,b){var d=a.target,e,f;if(!(!ia.test(d.nodeName)||d.readOnly)){e=c.data(d,"_change_data");f=xa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data",f);if(!(e===B||f===e))if(e!=null||f){a.type="change";a.liveFired=
B;return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:Z,beforedeactivate:Z,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return Z.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return Z.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,"_change_data",xa(a))}},setup:function(){if(this.type===
"file")return false;for(var a in V)c.event.add(this,a+".specialChange",V[a]);return ia.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return ia.test(this.nodeName)}};V=c.event.special.change.filters;V.focus=V.beforeactivate}t.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(e){e=c.event.fix(e);e.type=b;return c.event.trigger(e,null,e.target)}c.event.special[b]={setup:function(){ua[b]++===0&&t.addEventListener(a,d,true)},teardown:function(){--ua[b]===
0&&t.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,e,f){if(typeof d==="object"){for(var h in d)this[b](h,e,d[h],f);return this}if(c.isFunction(e)||e===false){f=e;e=B}var l=b==="one"?c.proxy(f,function(o){c(this).unbind(o,l);return f.apply(this,arguments)}):f;if(d==="unload"&&b!=="one")this.one(d,e,f);else{h=0;for(var k=this.length;h<k;h++)c.event.add(this[h],d,l,e)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a==="object"&&!a.preventDefault)for(var d in a)this.unbind(d,
a[d]);else{d=0;for(var e=this.length;d<e;d++)c.event.remove(this[d],a,b)}return this},delegate:function(a,b,d,e){return this.live(b,d,e,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind("live"):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){var d=c.Event(a);d.preventDefault();d.stopPropagation();c.event.trigger(d,b,this[0]);return d.result}},toggle:function(a){for(var b=arguments,d=
1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(e){var f=(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,f+1);e.preventDefault();return b[f].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var ya={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};c.each(["live","die"],function(a,b){c.fn[b]=function(d,e,f,h){var l,k=0,o,x,r=h||this.selector;h=h?this:c(this.context);if(typeof d===
"object"&&!d.preventDefault){for(l in d)h[b](l,e,d[l],r);return this}if(c.isFunction(e)){f=e;e=B}for(d=(d||"").split(" ");(l=d[k++])!=null;){o=X.exec(l);x="";if(o){x=o[0];l=l.replace(X,"")}if(l==="hover")d.push("mouseenter"+x,"mouseleave"+x);else{o=l;if(l==="focus"||l==="blur"){d.push(ya[l]+x);l+=x}else l=(ya[l]||l)+x;if(b==="live"){x=0;for(var A=h.length;x<A;x++)c.event.add(h[x],"live."+Y(l,r),{data:e,selector:r,handler:f,origType:l,origHandler:f,preType:o})}else h.unbind("live."+Y(l,r),f)}}return this}});
c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){c.fn[b]=function(d,e){if(e==null){e=d;d=null}return arguments.length>0?this.bind(b,d,e):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});E.attachEvent&&!E.addEventListener&&c(E).bind("unload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}});
(function(){function a(g,i,n,m,p,q){p=0;for(var u=m.length;p<u;p++){var y=m[p];if(y){var F=false;for(y=y[g];y;){if(y.sizcache===n){F=m[y.sizset];break}if(y.nodeType===1&&!q){y.sizcache=n;y.sizset=p}if(y.nodeName.toLowerCase()===i){F=y;break}y=y[g]}m[p]=F}}}function b(g,i,n,m,p,q){p=0;for(var u=m.length;p<u;p++){var y=m[p];if(y){var F=false;for(y=y[g];y;){if(y.sizcache===n){F=m[y.sizset];break}if(y.nodeType===1){if(!q){y.sizcache=n;y.sizset=p}if(typeof i!=="string"){if(y===i){F=true;break}}else if(k.filter(i,
[y]).length>0){F=y;break}}y=y[g]}m[p]=F}}}var d=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,h=false,l=true;[0,0].sort(function(){l=false;return 0});var k=function(g,i,n,m){n=n||[];var p=i=i||t;if(i.nodeType!==1&&i.nodeType!==9)return[];if(!g||typeof g!=="string")return n;var q,u,y,F,M,N=true,O=k.isXML(i),D=[],R=g;do{d.exec("");if(q=d.exec(R)){R=q[3];D.push(q[1]);if(q[2]){F=q[3];
break}}}while(q);if(D.length>1&&x.exec(g))if(D.length===2&&o.relative[D[0]])u=L(D[0]+D[1],i);else for(u=o.relative[D[0]]?[i]:k(D.shift(),i);D.length;){g=D.shift();if(o.relative[g])g+=D.shift();u=L(g,u)}else{if(!m&&D.length>1&&i.nodeType===9&&!O&&o.match.ID.test(D[0])&&!o.match.ID.test(D[D.length-1])){q=k.find(D.shift(),i,O);i=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]}if(i){q=m?{expr:D.pop(),set:C(m)}:k.find(D.pop(),D.length===1&&(D[0]==="~"||D[0]==="+")&&i.parentNode?i.parentNode:i,O);u=q.expr?k.filter(q.expr,
q.set):q.set;if(D.length>0)y=C(u);else N=false;for(;D.length;){q=M=D.pop();if(o.relative[M])q=D.pop();else M="";if(q==null)q=i;o.relative[M](y,q,O)}}else y=[]}y||(y=u);y||k.error(M||g);if(f.call(y)==="[object Array]")if(N)if(i&&i.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&k.contains(i,y[g])))n.push(u[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&n.push(u[g]);else n.push.apply(n,y);else C(y,n);if(F){k(F,p,n,m);k.uniqueSort(n)}return n};k.uniqueSort=function(g){if(w){h=
l;g.sort(w);if(h)for(var i=1;i<g.length;i++)g[i]===g[i-1]&&g.splice(i--,1)}return g};k.matches=function(g,i){return k(g,null,null,i)};k.matchesSelector=function(g,i){return k(i,null,null,[g]).length>0};k.find=function(g,i,n){var m;if(!g)return[];for(var p=0,q=o.order.length;p<q;p++){var u,y=o.order[p];if(u=o.leftMatch[y].exec(g)){var F=u[1];u.splice(1,1);if(F.substr(F.length-1)!=="\\"){u[1]=(u[1]||"").replace(/\\/g,"");m=o.find[y](u,i,n);if(m!=null){g=g.replace(o.match[y],"");break}}}}m||(m=i.getElementsByTagName("*"));
return{set:m,expr:g}};k.filter=function(g,i,n,m){for(var p,q,u=g,y=[],F=i,M=i&&i[0]&&k.isXML(i[0]);g&&i.length;){for(var N in o.filter)if((p=o.leftMatch[N].exec(g))!=null&&p[2]){var O,D,R=o.filter[N];D=p[1];q=false;p.splice(1,1);if(D.substr(D.length-1)!=="\\"){if(F===y)y=[];if(o.preFilter[N])if(p=o.preFilter[N](p,F,n,y,m,M)){if(p===true)continue}else q=O=true;if(p)for(var j=0;(D=F[j])!=null;j++)if(D){O=R(D,p,j,F);var s=m^!!O;if(n&&O!=null)if(s)q=true;else F[j]=false;else if(s){y.push(D);q=true}}if(O!==
B){n||(F=y);g=g.replace(o.match[N],"");if(!q)return[];break}}}if(g===u)if(q==null)k.error(g);else break;u=g}return F};k.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var o=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+\-]*)\))?/,
POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}},relative:{"+":function(g,i){var n=typeof i==="string",m=n&&!/\W/.test(i);n=n&&!m;if(m)i=i.toLowerCase();m=0;for(var p=g.length,q;m<p;m++)if(q=g[m]){for(;(q=q.previousSibling)&&q.nodeType!==1;);g[m]=n||q&&q.nodeName.toLowerCase()===
i?q||false:q===i}n&&k.filter(i,g,true)},">":function(g,i){var n,m=typeof i==="string",p=0,q=g.length;if(m&&!/\W/.test(i))for(i=i.toLowerCase();p<q;p++){if(n=g[p]){n=n.parentNode;g[p]=n.nodeName.toLowerCase()===i?n:false}}else{for(;p<q;p++)if(n=g[p])g[p]=m?n.parentNode:n.parentNode===i;m&&k.filter(i,g,true)}},"":function(g,i,n){var m,p=e++,q=b;if(typeof i==="string"&&!/\W/.test(i)){m=i=i.toLowerCase();q=a}q("parentNode",i,p,g,m,n)},"~":function(g,i,n){var m,p=e++,q=b;if(typeof i==="string"&&!/\W/.test(i)){m=
i=i.toLowerCase();q=a}q("previousSibling",i,p,g,m,n)}},find:{ID:function(g,i,n){if(typeof i.getElementById!=="undefined"&&!n)return(g=i.getElementById(g[1]))&&g.parentNode?[g]:[]},NAME:function(g,i){if(typeof i.getElementsByName!=="undefined"){for(var n=[],m=i.getElementsByName(g[1]),p=0,q=m.length;p<q;p++)m[p].getAttribute("name")===g[1]&&n.push(m[p]);return n.length===0?null:n}},TAG:function(g,i){return i.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,i,n,m,p,q){g=" "+g[1].replace(/\\/g,
"")+" ";if(q)return g;q=0;for(var u;(u=i[q])!=null;q++)if(u)if(p^(u.className&&(" "+u.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))n||m.push(u);else if(n)i[q]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},CHILD:function(g){if(g[1]==="nth"){var i=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=i[1]+(i[2]||1)-0;g[3]=i[3]-0}g[0]=e++;return g},ATTR:function(g,i,n,
m,p,q){i=g[1].replace(/\\/g,"");if(!q&&o.attrMap[i])g[1]=o.attrMap[i];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,i,n,m,p){if(g[1]==="not")if((d.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,i);else{g=k.filter(g[3],i,n,true^p);n||m.push.apply(m,g);return false}else if(o.match.POS.test(g[0])||o.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===
true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,i,n){return!!k(n[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===
g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},setFilters:{first:function(g,i){return i===0},last:function(g,i,n,m){return i===m.length-1},even:function(g,i){return i%2===0},odd:function(g,i){return i%2===1},lt:function(g,i,n){return i<n[3]-0},gt:function(g,i,n){return i>n[3]-0},nth:function(g,i,n){return n[3]-
0===i},eq:function(g,i,n){return n[3]-0===i}},filter:{PSEUDO:function(g,i,n,m){var p=i[1],q=o.filters[p];if(q)return q(g,n,i,m);else if(p==="contains")return(g.textContent||g.innerText||k.getText([g])||"").indexOf(i[3])>=0;else if(p==="not"){i=i[3];n=0;for(m=i.length;n<m;n++)if(i[n]===g)return false;return true}else k.error("Syntax error, unrecognized expression: "+p)},CHILD:function(g,i){var n=i[1],m=g;switch(n){case "only":case "first":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(n===
"first")return true;m=g;case "last":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case "nth":n=i[2];var p=i[3];if(n===1&&p===0)return true;var q=i[0],u=g.parentNode;if(u&&(u.sizcache!==q||!g.nodeIndex)){var y=0;for(m=u.firstChild;m;m=m.nextSibling)if(m.nodeType===1)m.nodeIndex=++y;u.sizcache=q}m=g.nodeIndex-p;return n===0?m===0:m%n===0&&m/n>=0}},ID:function(g,i){return g.nodeType===1&&g.getAttribute("id")===i},TAG:function(g,i){return i==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===
i},CLASS:function(g,i){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(i)>-1},ATTR:function(g,i){var n=i[1];n=o.attrHandle[n]?o.attrHandle[n](g):g[n]!=null?g[n]:g.getAttribute(n);var m=n+"",p=i[2],q=i[4];return n==null?p==="!=":p==="="?m===q:p==="*="?m.indexOf(q)>=0:p==="~="?(" "+m+" ").indexOf(q)>=0:!q?m&&n!==false:p==="!="?m!==q:p==="^="?m.indexOf(q)===0:p==="$="?m.substr(m.length-q.length)===q:p==="|="?m===q||m.substr(0,q.length+1)===q+"-":false},POS:function(g,i,n,m){var p=o.setFilters[i[2]];
if(p)return p(g,n,i,m)}}},x=o.match.POS,r=function(g,i){return"\\"+(i-0+1)},A;for(A in o.match){o.match[A]=RegExp(o.match[A].source+/(?![^\[]*\])(?![^\(]*\))/.source);o.leftMatch[A]=RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[A].source.replace(/\\(\d+)/g,r))}var C=function(g,i){g=Array.prototype.slice.call(g,0);if(i){i.push.apply(i,g);return i}return g};try{Array.prototype.slice.call(t.documentElement.childNodes,0)}catch(J){C=function(g,i){var n=0,m=i||[];if(f.call(g)==="[object Array]")Array.prototype.push.apply(m,
g);else if(typeof g.length==="number")for(var p=g.length;n<p;n++)m.push(g[n]);else for(;g[n];n++)m.push(g[n]);return m}}var w,I;if(t.documentElement.compareDocumentPosition)w=function(g,i){if(g===i){h=true;return 0}if(!g.compareDocumentPosition||!i.compareDocumentPosition)return g.compareDocumentPosition?-1:1;return g.compareDocumentPosition(i)&4?-1:1};else{w=function(g,i){var n,m,p=[],q=[];n=g.parentNode;m=i.parentNode;var u=n;if(g===i){h=true;return 0}else if(n===m)return I(g,i);else if(n){if(!m)return 1}else return-1;
for(;u;){p.unshift(u);u=u.parentNode}for(u=m;u;){q.unshift(u);u=u.parentNode}n=p.length;m=q.length;for(u=0;u<n&&u<m;u++)if(p[u]!==q[u])return I(p[u],q[u]);return u===n?I(g,q[u],-1):I(p[u],i,1)};I=function(g,i,n){if(g===i)return n;for(g=g.nextSibling;g;){if(g===i)return-1;g=g.nextSibling}return 1}}k.getText=function(g){for(var i="",n,m=0;g[m];m++){n=g[m];if(n.nodeType===3||n.nodeType===4)i+=n.nodeValue;else if(n.nodeType!==8)i+=k.getText(n.childNodes)}return i};(function(){var g=t.createElement("div"),
i="script"+(new Date).getTime(),n=t.documentElement;g.innerHTML="<a name='"+i+"'/>";n.insertBefore(g,n.firstChild);if(t.getElementById(i)){o.find.ID=function(m,p,q){if(typeof p.getElementById!=="undefined"&&!q)return(p=p.getElementById(m[1]))?p.id===m[1]||typeof p.getAttributeNode!=="undefined"&&p.getAttributeNode("id").nodeValue===m[1]?[p]:B:[]};o.filter.ID=function(m,p){var q=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&q&&q.nodeValue===p}}n.removeChild(g);
n=g=null})();(function(){var g=t.createElement("div");g.appendChild(t.createComment(""));if(g.getElementsByTagName("*").length>0)o.find.TAG=function(i,n){var m=n.getElementsByTagName(i[1]);if(i[1]==="*"){for(var p=[],q=0;m[q];q++)m[q].nodeType===1&&p.push(m[q]);m=p}return m};g.innerHTML="<a href='#'></a>";if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")o.attrHandle.href=function(i){return i.getAttribute("href",2)};g=null})();t.querySelectorAll&&
function(){var g=k,i=t.createElement("div");i.innerHTML="<p class='TEST'></p>";if(!(i.querySelectorAll&&i.querySelectorAll(".TEST").length===0)){k=function(m,p,q,u){p=p||t;m=m.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!u&&!k.isXML(p))if(p.nodeType===9)try{return C(p.querySelectorAll(m),q)}catch(y){}else if(p.nodeType===1&&p.nodeName.toLowerCase()!=="object"){var F=p.getAttribute("id"),M=F||"__sizzle__";F||p.setAttribute("id",M);try{return C(p.querySelectorAll("#"+M+" "+m),q)}catch(N){}finally{F||
p.removeAttribute("id")}}return g(m,p,q,u)};for(var n in g)k[n]=g[n];i=null}}();(function(){var g=t.documentElement,i=g.matchesSelector||g.mozMatchesSelector||g.webkitMatchesSelector||g.msMatchesSelector,n=false;try{i.call(t.documentElement,"[test!='']:sizzle")}catch(m){n=true}if(i)k.matchesSelector=function(p,q){q=q.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(p))try{if(n||!o.match.PSEUDO.test(q)&&!/!=/.test(q))return i.call(p,q)}catch(u){}return k(q,null,null,[p]).length>0}})();(function(){var g=
t.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){o.order.splice(1,0,"CLASS");o.find.CLASS=function(i,n,m){if(typeof n.getElementsByClassName!=="undefined"&&!m)return n.getElementsByClassName(i[1])};g=null}}})();k.contains=t.documentElement.contains?function(g,i){return g!==i&&(g.contains?g.contains(i):true)}:t.documentElement.compareDocumentPosition?
function(g,i){return!!(g.compareDocumentPosition(i)&16)}:function(){return false};k.isXML=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false};var L=function(g,i){for(var n,m=[],p="",q=i.nodeType?[i]:i;n=o.match.PSEUDO.exec(g);){p+=n[0];g=g.replace(o.match.PSEUDO,"")}g=o.relative[g]?g+"*":g;n=0;for(var u=q.length;n<u;n++)k(g,q[n],m);return k.filter(p,m)};c.find=k;c.expr=k.selectors;c.expr[":"]=c.expr.filters;c.unique=k.uniqueSort;c.text=k.getText;c.isXMLDoc=k.isXML;
c.contains=k.contains})();var Za=/Until$/,$a=/^(?:parents|prevUntil|prevAll)/,ab=/,/,Na=/^.[^:#\[\.,]*$/,bb=Array.prototype.slice,cb=c.expr.match.POS;c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,e=0,f=this.length;e<f;e++){d=b.length;c.find(a,this[e],b);if(e>0)for(var h=d;h<b.length;h++)for(var l=0;l<d;l++)if(b[l]===b[h]){b.splice(h--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,e=b.length;d<e;d++)if(c.contains(this,b[d]))return true})},
not:function(a){return this.pushStack(ma(this,a,false),"not",a)},filter:function(a){return this.pushStack(ma(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){var d=[],e,f,h=this[0];if(c.isArray(a)){var l,k={},o=1;if(h&&a.length){e=0;for(f=a.length;e<f;e++){l=a[e];k[l]||(k[l]=c.expr.match.POS.test(l)?c(l,b||this.context):l)}for(;h&&h.ownerDocument&&h!==b;){for(l in k){e=k[l];if(e.jquery?e.index(h)>-1:c(h).is(e))d.push({selector:l,elem:h,level:o})}h=
h.parentNode;o++}}return d}l=cb.test(a)?c(a,b||this.context):null;e=0;for(f=this.length;e<f;e++)for(h=this[e];h;)if(l?l.index(h)>-1:c.find.matchesSelector(h,a)){d.push(h);break}else{h=h.parentNode;if(!h||!h.ownerDocument||h===b)break}d=d.length>1?c.unique(d):d;return this.pushStack(d,"closest",a)},index:function(a){if(!a||typeof a==="string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var d=typeof a==="string"?c(a,b||this.context):
c.makeArray(a),e=c.merge(this.get(),d);return this.pushStack(!d[0]||!d[0].parentNode||d[0].parentNode.nodeType===11||!e[0]||!e[0].parentNode||e[0].parentNode.nodeType===11?e:c.unique(e))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,
2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,
b){c.fn[a]=function(d,e){var f=c.map(this,b,d);Za.test(a)||(e=d);if(e&&typeof e==="string")f=c.filter(e,f);f=this.length>1?c.unique(f):f;if((this.length>1||ab.test(e))&&$a.test(a))f=f.reverse();return this.pushStack(f,a,bb.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return b.length===1?c.find.matchesSelector(b[0],a)?[b[0]]:[]:c.find.matches(a,b)},dir:function(a,b,d){var e=[];for(a=a[b];a&&a.nodeType!==9&&(d===B||a.nodeType!==1||!c(a).is(d));){a.nodeType===1&&
e.push(a);a=a[b]}return e},nth:function(a,b,d){b=b||1;for(var e=0;a;a=a[d])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var za=/ jQuery\d+="(?:\d+|null)"/g,$=/^\s+/,Aa=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Ba=/<([\w:]+)/,db=/<tbody/i,eb=/<|&#?\w+;/,Ca=/<(?:script|object|embed|option|style)/i,Da=/checked\s*(?:[^=]|=\s*.checked.)/i,fb=/\=([^="'>\s]+\/)>/g,P={option:[1,
"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};P.optgroup=P.option;P.tbody=P.tfoot=P.colgroup=P.caption=P.thead;P.th=P.td;if(!c.support.htmlSerialize)P._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d=
c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==B)return this.empty().append((this[0]&&this[0].ownerDocument||t).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this},
wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})},
prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,
this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,e;(e=this[d])!=null;d++)if(!a||c.filter(a,[e]).length){if(!b&&e.nodeType===1){c.cleanData(e.getElementsByTagName("*"));c.cleanData([e])}e.parentNode&&e.parentNode.removeChild(e)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild);
return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,e=this.ownerDocument;if(!d){d=e.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(za,"").replace(fb,'="$1">').replace($,"")],e)[0]}else return this.cloneNode(true)});if(a===true){na(this,b);na(this.find("*"),b.find("*"))}return b},html:function(a){if(a===B)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(za,""):null;
else if(typeof a==="string"&&!Ca.test(a)&&(c.support.leadingWhitespace||!$.test(a))&&!P[(Ba.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Aa,"<$1></$2>");try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(e){this.empty().append(a)}}else c.isFunction(a)?this.each(function(f){var h=c(this);h.html(a.call(this,f,h.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=
c(this),e=d.html();d.replaceWith(a.call(this,b,e))});if(typeof a!=="string")a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){var e,f,h,l=a[0],k=[];if(!c.support.checkClone&&arguments.length===3&&typeof l==="string"&&Da.test(l))return this.each(function(){c(this).domManip(a,
b,d,true)});if(c.isFunction(l))return this.each(function(x){var r=c(this);a[0]=l.call(this,x,b?r.html():B);r.domManip(a,b,d)});if(this[0]){e=l&&l.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:c.buildFragment(a,this,k);h=e.fragment;if(f=h.childNodes.length===1?h=h.firstChild:h.firstChild){b=b&&c.nodeName(f,"tr");f=0;for(var o=this.length;f<o;f++)d.call(b?c.nodeName(this[f],"table")?this[f].getElementsByTagName("tbody")[0]||this[f].appendChild(this[f].ownerDocument.createElement("tbody")):
this[f]:this[f],f>0||e.cacheable||this.length>1?h.cloneNode(true):h)}k.length&&c.each(k,Oa)}return this}});c.buildFragment=function(a,b,d){var e,f,h;b=b&&b[0]?b[0].ownerDocument||b[0]:t;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===t&&!Ca.test(a[0])&&(c.support.checkClone||!Da.test(a[0]))){f=true;if(h=c.fragments[a[0]])if(h!==1)e=h}if(!e){e=b.createDocumentFragment();c.clean(a,b,e,d)}if(f)c.fragments[a[0]]=h?e:1;return{fragment:e,cacheable:f}};c.fragments={};c.each({appendTo:"append",
prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var e=[];d=c(d);var f=this.length===1&&this[0].parentNode;if(f&&f.nodeType===11&&f.childNodes.length===1&&d.length===1){d[b](this[0]);return this}else{f=0;for(var h=d.length;f<h;f++){var l=(f>0?this.clone(true):this).get();c(d[f])[b](l);e=e.concat(l)}return this.pushStack(e,a,d.selector)}}});c.extend({clean:function(a,b,d,e){b=b||t;if(typeof b.createElement==="undefined")b=b.ownerDocument||
b[0]&&b[0].ownerDocument||t;for(var f=[],h=0,l;(l=a[h])!=null;h++){if(typeof l==="number")l+="";if(l){if(typeof l==="string"&&!eb.test(l))l=b.createTextNode(l);else if(typeof l==="string"){l=l.replace(Aa,"<$1></$2>");var k=(Ba.exec(l)||["",""])[1].toLowerCase(),o=P[k]||P._default,x=o[0],r=b.createElement("div");for(r.innerHTML=o[1]+l+o[2];x--;)r=r.lastChild;if(!c.support.tbody){x=db.test(l);k=k==="table"&&!x?r.firstChild&&r.firstChild.childNodes:o[1]==="<table>"&&!x?r.childNodes:[];for(o=k.length-
1;o>=0;--o)c.nodeName(k[o],"tbody")&&!k[o].childNodes.length&&k[o].parentNode.removeChild(k[o])}!c.support.leadingWhitespace&&$.test(l)&&r.insertBefore(b.createTextNode($.exec(l)[0]),r.firstChild);l=r.childNodes}if(l.nodeType)f.push(l);else f=c.merge(f,l)}}if(d)for(h=0;f[h];h++)if(e&&c.nodeName(f[h],"script")&&(!f[h].type||f[h].type.toLowerCase()==="text/javascript"))e.push(f[h].parentNode?f[h].parentNode.removeChild(f[h]):f[h]);else{f[h].nodeType===1&&f.splice.apply(f,[h+1,0].concat(c.makeArray(f[h].getElementsByTagName("script"))));
d.appendChild(f[h])}return f},cleanData:function(a){for(var b,d,e=c.cache,f=c.event.special,h=c.support.deleteExpando,l=0,k;(k=a[l])!=null;l++)if(!(k.nodeName&&c.noData[k.nodeName.toLowerCase()]))if(d=k[c.expando]){if((b=e[d])&&b.events)for(var o in b.events)f[o]?c.event.remove(k,o):c.removeEvent(k,o,b.handle);if(h)delete k[c.expando];else k.removeAttribute&&k.removeAttribute(c.expando);delete e[d]}}});var Ea=/alpha\([^)]*\)/i,gb=/opacity=([^)]*)/,hb=/-([a-z])/ig,ib=/([A-Z])/g,Fa=/^-?\d+(?:px)?$/i,
jb=/^-?\d/,kb={position:"absolute",visibility:"hidden",display:"block"},Pa=["Left","Right"],Qa=["Top","Bottom"],W,Ga,aa,lb=function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){if(arguments.length===2&&b===B)return this;return c.access(this,a,b,true,function(d,e,f){return f!==B?c.style(d,e,f):c.css(d,e)})};c.extend({cssHooks:{opacity:{get:function(a,b){if(b){var d=W(a,"opacity","opacity");return d===""?"1":d}else return a.style.opacity}}},cssNumber:{zIndex:true,fontWeight:true,opacity:true,
zoom:true,lineHeight:true},cssProps:{"float":c.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,d,e){if(!(!a||a.nodeType===3||a.nodeType===8||!a.style)){var f,h=c.camelCase(b),l=a.style,k=c.cssHooks[h];b=c.cssProps[h]||h;if(d!==B){if(!(typeof d==="number"&&isNaN(d)||d==null)){if(typeof d==="number"&&!c.cssNumber[h])d+="px";if(!k||!("set"in k)||(d=k.set(a,d))!==B)try{l[b]=d}catch(o){}}}else{if(k&&"get"in k&&(f=k.get(a,false,e))!==B)return f;return l[b]}}},css:function(a,b,d){var e,f=c.camelCase(b),
h=c.cssHooks[f];b=c.cssProps[f]||f;if(h&&"get"in h&&(e=h.get(a,true,d))!==B)return e;else if(W)return W(a,b,f)},swap:function(a,b,d){var e={},f;for(f in b){e[f]=a.style[f];a.style[f]=b[f]}d.call(a);for(f in b)a.style[f]=e[f]},camelCase:function(a){return a.replace(hb,lb)}});c.curCSS=c.css;c.each(["height","width"],function(a,b){c.cssHooks[b]={get:function(d,e,f){var h;if(e){if(d.offsetWidth!==0)h=oa(d,b,f);else c.swap(d,kb,function(){h=oa(d,b,f)});if(h<=0){h=W(d,b,b);if(h==="0px"&&aa)h=aa(d,b,b);
if(h!=null)return h===""||h==="auto"?"0px":h}if(h<0||h==null){h=d.style[b];return h===""||h==="auto"?"0px":h}return typeof h==="string"?h:h+"px"}},set:function(d,e){if(Fa.test(e)){e=parseFloat(e);if(e>=0)return e+"px"}else return e}}});if(!c.support.opacity)c.cssHooks.opacity={get:function(a,b){return gb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var d=a.style;d.zoom=1;var e=c.isNaN(b)?"":"alpha(opacity="+b*100+")",f=
d.filter||"";d.filter=Ea.test(f)?f.replace(Ea,e):d.filter+" "+e}};if(t.defaultView&&t.defaultView.getComputedStyle)Ga=function(a,b,d){var e;d=d.replace(ib,"-$1").toLowerCase();if(!(b=a.ownerDocument.defaultView))return B;if(b=b.getComputedStyle(a,null)){e=b.getPropertyValue(d);if(e===""&&!c.contains(a.ownerDocument.documentElement,a))e=c.style(a,d)}return e};if(t.documentElement.currentStyle)aa=function(a,b){var d,e,f=a.currentStyle&&a.currentStyle[b],h=a.style;if(!Fa.test(f)&&jb.test(f)){d=h.left;
e=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;h.left=b==="fontSize"?"1em":f||0;f=h.pixelLeft+"px";h.left=d;a.runtimeStyle.left=e}return f===""?"auto":f};W=Ga||aa;if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=a.offsetHeight;return a.offsetWidth===0&&b===0||!c.support.reliableHiddenOffsets&&(a.style.display||c.css(a,"display"))==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var mb=c.now(),nb=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,
ob=/^(?:select|textarea)/i,pb=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,qb=/^(?:GET|HEAD)$/,Ra=/\[\]$/,T=/\=\?(&|$)/,ja=/\?/,rb=/([?&])_=[^&]*/,sb=/^(\w+:)?\/\/([^\/?#]+)/,tb=/%20/g,ub=/#.*$/,Ha=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!=="string"&&Ha)return Ha.apply(this,arguments);else if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var f=a.slice(e,a.length);a=a.slice(0,e)}e="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b===
"object"){b=c.param(b,c.ajaxSettings.traditional);e="POST"}var h=this;c.ajax({url:a,type:e,dataType:"html",data:b,complete:function(l,k){if(k==="success"||k==="notmodified")h.html(f?c("<div>").append(l.responseText.replace(nb,"")).find(f):l.responseText);d&&h.each(d,[l.responseText,k,l])}});return this},serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&
!this.disabled&&(this.checked||ob.test(this.nodeName)||pb.test(this.type))}).map(function(a,b){var d=c(this).val();return d==null?null:c.isArray(d)?c.map(d,function(e){return{name:b.name,value:e}}):{name:b.name,value:d}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:e})},
getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:e})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return new E.XMLHttpRequest},accepts:{xml:"application/xml, text/xml",html:"text/html",
script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},ajax:function(a){var b=c.extend(true,{},c.ajaxSettings,a),d,e,f,h=b.type.toUpperCase(),l=qb.test(h);b.url=b.url.replace(ub,"");b.context=a&&a.context!=null?a.context:b;if(b.data&&b.processData&&typeof b.data!=="string")b.data=c.param(b.data,b.traditional);if(b.dataType==="jsonp"){if(h==="GET")T.test(b.url)||(b.url+=(ja.test(b.url)?"&":"?")+(b.jsonp||"callback")+"=?");else if(!b.data||
!T.test(b.data))b.data=(b.data?b.data+"&":"")+(b.jsonp||"callback")+"=?";b.dataType="json"}if(b.dataType==="json"&&(b.data&&T.test(b.data)||T.test(b.url))){d=b.jsonpCallback||"jsonp"+mb++;if(b.data)b.data=(b.data+"").replace(T,"="+d+"$1");b.url=b.url.replace(T,"="+d+"$1");b.dataType="script";var k=E[d];E[d]=function(m){if(c.isFunction(k))k(m);else{E[d]=B;try{delete E[d]}catch(p){}}f=m;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);r&&r.removeChild(A)}}if(b.dataType==="script"&&b.cache===null)b.cache=
false;if(b.cache===false&&l){var o=c.now(),x=b.url.replace(rb,"$1_="+o);b.url=x+(x===b.url?(ja.test(b.url)?"&":"?")+"_="+o:"")}if(b.data&&l)b.url+=(ja.test(b.url)?"&":"?")+b.data;b.global&&c.active++===0&&c.event.trigger("ajaxStart");o=(o=sb.exec(b.url))&&(o[1]&&o[1].toLowerCase()!==location.protocol||o[2].toLowerCase()!==location.host);if(b.dataType==="script"&&h==="GET"&&o){var r=t.getElementsByTagName("head")[0]||t.documentElement,A=t.createElement("script");if(b.scriptCharset)A.charset=b.scriptCharset;
A.src=b.url;if(!d){var C=false;A.onload=A.onreadystatechange=function(){if(!C&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){C=true;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);A.onload=A.onreadystatechange=null;r&&A.parentNode&&r.removeChild(A)}}}r.insertBefore(A,r.firstChild);return B}var J=false,w=b.xhr();if(w){b.username?w.open(h,b.url,b.async,b.username,b.password):w.open(h,b.url,b.async);try{if(b.data!=null&&!l||a&&a.contentType)w.setRequestHeader("Content-Type",
b.contentType);if(b.ifModified){c.lastModified[b.url]&&w.setRequestHeader("If-Modified-Since",c.lastModified[b.url]);c.etag[b.url]&&w.setRequestHeader("If-None-Match",c.etag[b.url])}o||w.setRequestHeader("X-Requested-With","XMLHttpRequest");w.setRequestHeader("Accept",b.dataType&&b.accepts[b.dataType]?b.accepts[b.dataType]+", */*; q=0.01":b.accepts._default)}catch(I){}if(b.beforeSend&&b.beforeSend.call(b.context,w,b)===false){b.global&&c.active--===1&&c.event.trigger("ajaxStop");w.abort();return false}b.global&&
c.triggerGlobal(b,"ajaxSend",[w,b]);var L=w.onreadystatechange=function(m){if(!w||w.readyState===0||m==="abort"){J||c.handleComplete(b,w,e,f);J=true;if(w)w.onreadystatechange=c.noop}else if(!J&&w&&(w.readyState===4||m==="timeout")){J=true;w.onreadystatechange=c.noop;e=m==="timeout"?"timeout":!c.httpSuccess(w)?"error":b.ifModified&&c.httpNotModified(w,b.url)?"notmodified":"success";var p;if(e==="success")try{f=c.httpData(w,b.dataType,b)}catch(q){e="parsererror";p=q}if(e==="success"||e==="notmodified")d||
c.handleSuccess(b,w,e,f);else c.handleError(b,w,e,p);d||c.handleComplete(b,w,e,f);m==="timeout"&&w.abort();if(b.async)w=null}};try{var g=w.abort;w.abort=function(){w&&Function.prototype.call.call(g,w);L("abort")}}catch(i){}b.async&&b.timeout>0&&setTimeout(function(){w&&!J&&L("timeout")},b.timeout);try{w.send(l||b.data==null?null:b.data)}catch(n){c.handleError(b,w,null,n);c.handleComplete(b,w,e,f)}b.async||L();return w}},param:function(a,b){var d=[],e=function(h,l){l=c.isFunction(l)?l():l;d[d.length]=
encodeURIComponent(h)+"="+encodeURIComponent(l)};if(b===B)b=c.ajaxSettings.traditional;if(c.isArray(a)||a.jquery)c.each(a,function(){e(this.name,this.value)});else for(var f in a)da(f,a[f],b,e);return d.join("&").replace(tb,"+")}});c.extend({active:0,lastModified:{},etag:{},handleError:function(a,b,d,e){a.error&&a.error.call(a.context,b,d,e);a.global&&c.triggerGlobal(a,"ajaxError",[b,a,e])},handleSuccess:function(a,b,d,e){a.success&&a.success.call(a.context,e,d,b);a.global&&c.triggerGlobal(a,"ajaxSuccess",
[b,a])},handleComplete:function(a,b,d){a.complete&&a.complete.call(a.context,b,d);a.global&&c.triggerGlobal(a,"ajaxComplete",[b,a]);a.global&&c.active--===1&&c.event.trigger("ajaxStop")},triggerGlobal:function(a,b,d){(a.context&&a.context.url==null?c(a.context):c.event).trigger(b,d)},httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===1223}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),
e=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(e)c.etag[b]=e;return a.status===304},httpData:function(a,b,d){var e=a.getResponseHeader("content-type")||"",f=b==="xml"||!b&&e.indexOf("xml")>=0;a=f?a.responseXML:a.responseText;f&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b==="json"||!b&&e.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&e.indexOf("javascript")>=0)c.globalEval(a);return a}});
if(E.ActiveXObject)c.ajaxSettings.xhr=function(){if(E.location.protocol!=="file:")try{return new E.XMLHttpRequest}catch(a){}try{return new E.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}};c.support.ajax=!!c.ajaxSettings.xhr();var ea={},vb=/^(?:toggle|show|hide)$/,wb=/^([+\-]=)?([\d+.\-]+)(.*)$/,ba,pa=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b,d){if(a||a===0)return this.animate(S("show",
3),a,b,d);else{d=0;for(var e=this.length;d<e;d++){a=this[d];b=a.style.display;if(!c.data(a,"olddisplay")&&b==="none")b=a.style.display="";b===""&&c.css(a,"display")==="none"&&c.data(a,"olddisplay",qa(a.nodeName))}for(d=0;d<e;d++){a=this[d];b=a.style.display;if(b===""||b==="none")a.style.display=c.data(a,"olddisplay")||""}return this}},hide:function(a,b,d){if(a||a===0)return this.animate(S("hide",3),a,b,d);else{a=0;for(b=this.length;a<b;a++){d=c.css(this[a],"display");d!=="none"&&c.data(this[a],"olddisplay",
d)}for(a=0;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b,d){var e=typeof a==="boolean";if(c.isFunction(a)&&c.isFunction(b))this._toggle.apply(this,arguments);else a==null||e?this.each(function(){var f=e?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(S("toggle",3),a,b,d);return this},fadeTo:function(a,b,d,e){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d,e)},animate:function(a,b,d,e){var f=c.speed(b,
d,e);if(c.isEmptyObject(a))return this.each(f.complete);return this[f.queue===false?"each":"queue"](function(){var h=c.extend({},f),l,k=this.nodeType===1,o=k&&c(this).is(":hidden"),x=this;for(l in a){var r=c.camelCase(l);if(l!==r){a[r]=a[l];delete a[l];l=r}if(a[l]==="hide"&&o||a[l]==="show"&&!o)return h.complete.call(this);if(k&&(l==="height"||l==="width")){h.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(c.css(this,"display")==="inline"&&c.css(this,"float")==="none")if(c.support.inlineBlockNeedsLayout)if(qa(this.nodeName)===
"inline")this.style.display="inline-block";else{this.style.display="inline";this.style.zoom=1}else this.style.display="inline-block"}if(c.isArray(a[l])){(h.specialEasing=h.specialEasing||{})[l]=a[l][1];a[l]=a[l][0]}}if(h.overflow!=null)this.style.overflow="hidden";h.curAnim=c.extend({},a);c.each(a,function(A,C){var J=new c.fx(x,h,A);if(vb.test(C))J[C==="toggle"?o?"show":"hide":C](a);else{var w=wb.exec(C),I=J.cur()||0;if(w){var L=parseFloat(w[2]),g=w[3]||"px";if(g!=="px"){c.style(x,A,(L||1)+g);I=(L||
1)/J.cur()*I;c.style(x,A,I+g)}if(w[1])L=(w[1]==="-="?-1:1)*L+I;J.custom(I,L,g)}else J.custom(I,C,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]);this.each(function(){for(var e=d.length-1;e>=0;e--)if(d[e].elem===this){b&&d[e](true);d.splice(e,1)}});b||this.dequeue();return this}});c.each({slideDown:S("show",1),slideUp:S("hide",1),slideToggle:S("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){c.fn[a]=function(d,e,f){return this.animate(b,
d,e,f)}});c.extend({speed:function(a,b,d){var e=a&&typeof a==="object"?c.extend({},a):{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};e.duration=c.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in c.fx.speeds?c.fx.speeds[e.duration]:c.fx.speeds._default;e.old=e.complete;e.complete=function(){e.queue!==false&&c(this).dequeue();c.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,d,e){return d+e*a},swing:function(a,b,d,e){return(-Math.cos(a*
Math.PI)/2+0.5)*e+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||c.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a=parseFloat(c.css(this.elem,this.prop));return a&&a>-1E4?a:0},custom:function(a,b,d){function e(l){return f.step(l)}
var f=this,h=c.fx;this.startTime=c.now();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;this.pos=this.state=0;e.elem=this.elem;if(e()&&c.timers.push(e)&&!ba)ba=setInterval(h.tick,h.interval)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;
this.custom(this.cur(),0)},step:function(a){var b=c.now(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var e in this.options.curAnim)if(this.options.curAnim[e]!==true)d=false;if(d){if(this.options.overflow!=null&&!c.support.shrinkWrapBlocks){var f=this.elem,h=this.options;c.each(["","X","Y"],function(k,o){f.style["overflow"+o]=h.overflow[k]})}this.options.hide&&c(this.elem).hide();if(this.options.hide||
this.options.show)for(var l in this.options.curAnim)c.style(this.elem,l,this.options.orig[l]);this.options.complete.call(this.elem)}return false}else{a=b-this.startTime;this.state=a/this.options.duration;b=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||b](this.state,a,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=
c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||c.fx.stop()},interval:13,stop:function(){clearInterval(ba);ba=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===
b.elem}).length};var xb=/^t(?:able|d|h)$/i,Ia=/^(?:body|html)$/i;c.fn.offset="getBoundingClientRect"in t.documentElement?function(a){var b=this[0],d;if(a)return this.each(function(l){c.offset.setOffset(this,a,l)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);try{d=b.getBoundingClientRect()}catch(e){}var f=b.ownerDocument,h=f.documentElement;if(!d||!c.contains(h,b))return d||{top:0,left:0};b=f.body;f=fa(f);return{top:d.top+(f.pageYOffset||c.support.boxModel&&
h.scrollTop||b.scrollTop)-(h.clientTop||b.clientTop||0),left:d.left+(f.pageXOffset||c.support.boxModel&&h.scrollLeft||b.scrollLeft)-(h.clientLeft||b.clientLeft||0)}}:function(a){var b=this[0];if(a)return this.each(function(x){c.offset.setOffset(this,a,x)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d,e=b.offsetParent,f=b.ownerDocument,h=f.documentElement,l=f.body;d=(f=f.defaultView)?f.getComputedStyle(b,null):b.currentStyle;
for(var k=b.offsetTop,o=b.offsetLeft;(b=b.parentNode)&&b!==l&&b!==h;){if(c.offset.supportsFixedPosition&&d.position==="fixed")break;d=f?f.getComputedStyle(b,null):b.currentStyle;k-=b.scrollTop;o-=b.scrollLeft;if(b===e){k+=b.offsetTop;o+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&xb.test(b.nodeName))){k+=parseFloat(d.borderTopWidth)||0;o+=parseFloat(d.borderLeftWidth)||0}e=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&d.overflow!=="visible"){k+=
parseFloat(d.borderTopWidth)||0;o+=parseFloat(d.borderLeftWidth)||0}d=d}if(d.position==="relative"||d.position==="static"){k+=l.offsetTop;o+=l.offsetLeft}if(c.offset.supportsFixedPosition&&d.position==="fixed"){k+=Math.max(h.scrollTop,l.scrollTop);o+=Math.max(h.scrollLeft,l.scrollLeft)}return{top:k,left:o}};c.offset={initialize:function(){var a=t.body,b=t.createElement("div"),d,e,f,h=parseFloat(c.css(a,"marginTop"))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",
height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";a.insertBefore(b,a.firstChild);d=b.firstChild;e=d.firstChild;f=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=e.offsetTop!==5;this.doesAddBorderForTableAndCells=
f.offsetTop===5;e.style.position="fixed";e.style.top="20px";this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15;e.style.position=e.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==h;a.removeChild(b);c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.css(a,
"marginTop"))||0;d+=parseFloat(c.css(a,"marginLeft"))||0}return{top:b,left:d}},setOffset:function(a,b,d){var e=c.css(a,"position");if(e==="static")a.style.position="relative";var f=c(a),h=f.offset(),l=c.css(a,"top"),k=c.css(a,"left"),o=e==="absolute"&&c.inArray("auto",[l,k])>-1;e={};var x={};if(o)x=f.position();l=o?x.top:parseInt(l,10)||0;k=o?x.left:parseInt(k,10)||0;if(c.isFunction(b))b=b.call(a,d,h);if(b.top!=null)e.top=b.top-h.top+l;if(b.left!=null)e.left=b.left-h.left+k;"using"in b?b.using.call(a,
e):f.css(e)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),e=Ia.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.css(a,"marginTop"))||0;d.left-=parseFloat(c.css(a,"marginLeft"))||0;e.top+=parseFloat(c.css(b[0],"borderTopWidth"))||0;e.left+=parseFloat(c.css(b[0],"borderLeftWidth"))||0;return{top:d.top-e.top,left:d.left-e.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||t.body;a&&!Ia.test(a.nodeName)&&
c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(e){var f=this[0],h;if(!f)return null;if(e!==B)return this.each(function(){if(h=fa(this))h.scrollTo(!a?e:c(h).scrollLeft(),a?e:c(h).scrollTop());else this[d]=e});else return(h=fa(f))?"pageXOffset"in h?h[a?"pageYOffset":"pageXOffset"]:c.support.boxModel&&h.document.documentElement[d]||h.document.body[d]:f[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();
c.fn["inner"+b]=function(){return this[0]?parseFloat(c.css(this[0],d,"padding")):null};c.fn["outer"+b]=function(e){return this[0]?parseFloat(c.css(this[0],d,e?"margin":"border")):null};c.fn[d]=function(e){var f=this[0];if(!f)return e==null?null:this;if(c.isFunction(e))return this.each(function(l){var k=c(this);k[d](e.call(this,l,k[d]()))});if(c.isWindow(f))return f.document.compatMode==="CSS1Compat"&&f.document.documentElement["client"+b]||f.document.body["client"+b];else if(f.nodeType===9)return Math.max(f.documentElement["client"+
b],f.body["scroll"+b],f.documentElement["scroll"+b],f.body["offset"+b],f.documentElement["offset"+b]);else if(e===B){f=c.css(f,d);var h=parseFloat(f);return c.isNaN(h)?f:h}else return this.css(d,typeof e==="string"?e:e+"px")}})})(window);

30
source/MBI/labor.aspx Normal file
View File

@@ -0,0 +1,30 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="labor.aspx.cs" Inherits="AyaNovaMBI.labor" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>labor</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label id="l1" runat="server" text="LT:WorkorderItemLabor.Label.ServiceStartDate"></asp:Label><br />
<asp:TextBox ID="edstart" runat="server" ></asp:TextBox><br />
<asp:Label id="l2" runat="server" text="LT:WorkorderItemLabor.Label.ServiceStopDate"></asp:Label><br />
<asp:TextBox ID="edstop" runat="server" ></asp:TextBox><br />
<asp:Label id="l3" runat="server" text="LT:WorkorderItemLabor.Label.ServiceRateQuantity"></asp:Label><br />
<asp:TextBox ID="edquant" runat="server" ></asp:TextBox><br />
<asp:Label id="l4" runat="server" text="LT:WorkorderItemLabor.Label.NoChargeQuantity"></asp:Label><br />
<asp:TextBox ID="ednc" runat="server" ></asp:TextBox><br />
<asp:Label id="l5" runat="server" text="LT:WorkorderItemLabor.Label.ServiceRateID"></asp:Label><br />
<asp:DropDownList ID="cbrate" runat="server" ></asp:DropDownList><br />
<asp:Label id="l6" runat="server" text="LT:WorkorderItemLabor.Label.TaxCodeID"></asp:Label><br />
<asp:DropDownList ID="cbtax" runat="server" ></asp:DropDownList><br />
<asp:Label id="l7" runat="server" text="LT:WorkorderItemLabor.Label.ServiceDetails"></asp:Label><br />
<asp:TextBox id="eddetails" runat="server" width="99%" rows="5" textmode="MultiLine" /><br />
<asp:Button id="bok" runat="server" Text="OK" OnClick="bok_Click" /><br />
<asp:Button id="bcancel" runat="server" text="Cancel" OnClick="bcancel_Click" />
</div>
</form>
</body>
</html>

132
source/MBI/labor.aspx.cs Normal file
View File

@@ -0,0 +1,132 @@
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using GZTW.AyaNova.BLL;
namespace AyaNovaMBI
{
public partial class labor : System.Web.UI.Page
{
#region BizObject
public GZTW.AyaNova.BLL.WorkorderItemLabor mLabor;
protected GZTW.AyaNova.BLL.WorkorderItemLabor CurrentLabor
{
get
{
if (mLabor != null) return mLabor;
//This form only edits workorder items that already exist and
//there is no option to re-edit after initial edit, i.e. all buttons will close this
//page and return so there is no need to cache anything
string idstring = Request.QueryString["id"];
if (util.mt(idstring))
throw new ApplicationException("labor - id not specified");
Guid oID = new Guid(idstring);
mWorkorder = Workorder.GetWorkorderByRelative(RootObjectTypes.WorkorderItemLabor, oID);
mLabor = mWorkorder.WorkorderItems[mWorkorder.GetWorkorderItemIDFromDescendant(RootObjectTypes.WorkorderItemLabor, oID)].Labors[oID.ToString()];
return mLabor;
}
}
public Workorder mWorkorder=null;
protected Workorder CurrentWorkorder
{
get
{
if (mWorkorder == null)
CurrentLabor.ToString();//forces mworkorder to be set
return mWorkorder;
}
}
#endregion
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
util.Localize(this);
SetData();
}
if (!CurrentWorkorder.IsEditable ||
!CurrentWorkorder.IsWorkorderItemEditable ||
AyaBizUtils.Right("Object.WorkorderItemLabor") < (int)SecurityLevelTypes.ReadWrite)
{
util.SetReadOnly(this);
bcancel.Enabled = true;
}
}
private void SetData()
{
WorkorderItemLabor l=CurrentLabor;
edstart.Text = l.ServiceStartDate.ToString();
edstop.Text = l.ServiceStopDate.ToString();
edquant.Text = l.ServiceRateQuantity.ToString("g29");
ednc.Text = l.NoChargeQuantity.ToString("g29");
eddetails.Text = l.ServiceDetails;
cbrate.DataSource = util.GetDataBiz("LaborRateList", l.ServiceRateID, true, CurrentWorkorder.ContractIDResolved(), CurrentWorkorder.ListOfLaborRatesSelected(), true);
cbrate.DataTextField = "Display";
cbrate.DataValueField = "Value";
cbrate.SelectedValue = l.ServiceRateID.ToString();
cbrate.DataBind();
cbtax.DataSource = util.GetDataBiz("TaxCode", l.TaxRateSaleID, true, Guid.Empty, null, false);
cbtax.DataTextField = "Display";
cbtax.DataValueField = "Value";
cbtax.SelectedValue = l.TaxRateSaleID.ToString();
cbtax.DataBind();
bok.Text = util.LocaleText("UI.Command.OK");
}
private void GetData()
{
WorkorderItemLabor l = CurrentLabor;
l.ServiceStartDate = util.ParseDateToDbValue(edstart);
l.ServiceStopDate = util.ParseDateToDbValue(edstop);
l.ServiceRateQuantity = util.ParseDecimal(edquant);
l.NoChargeQuantity = util.ParseDecimal(ednc);
l.ServiceRateID = util.ParseGuid(Request.Form["cbrate"]);
l.TaxRateSaleID = util.ParseGuid(Request.Form["cbtax"]);
l.ServiceDetails = eddetails.Text;
}
protected void bok_Click(object sender, EventArgs e)
{
if (CurrentWorkorder.IsEditable)
{
GetData();
CurrentWorkorder.Save();
}
util.Redirect(Session, Response, "schedule.aspx");
}
protected void bcancel_Click(object sender, EventArgs e)
{
util.Redirect(Session, Response, "schedule.aspx");
}
}
}

175
source/MBI/labor.aspx.designer.cs generated Normal file
View File

@@ -0,0 +1,175 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:2.0.50727.312
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace AyaNovaMBI {
/// <summary>
/// labor class.
/// </summary>
/// <remarks>
/// Auto-generated class.
/// </remarks>
public partial class labor {
/// <summary>
/// form1 control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary>
/// l1 control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label l1;
/// <summary>
/// edstart control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.TextBox edstart;
/// <summary>
/// l2 control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label l2;
/// <summary>
/// edstop control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.TextBox edstop;
/// <summary>
/// l3 control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label l3;
/// <summary>
/// edquant control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.TextBox edquant;
/// <summary>
/// l4 control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label l4;
/// <summary>
/// ednc control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.TextBox ednc;
/// <summary>
/// l5 control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label l5;
/// <summary>
/// cbrate control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.DropDownList cbrate;
/// <summary>
/// l6 control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label l6;
/// <summary>
/// cbtax control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.DropDownList cbtax;
/// <summary>
/// l7 control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label l7;
/// <summary>
/// eddetails control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.TextBox eddetails;
/// <summary>
/// bok control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Button bok;
/// <summary>
/// bcancel control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Button bcancel;
}
}

40
source/MBI/mbi.css Normal file
View File

@@ -0,0 +1,40 @@
/*Basic style used throughout*/
body
{
font-weight: normal;
font-size:smaller;
}
/*Section headings, i.e. largest boldest text on page*/
.secthead
{
font-weight: bold;
font-size: larger;
}
/*Sub headings, unread email messages, no larger, only bold*/
.sectsubhead
{
font-weight: bold;
}
/*Smallest text for various areas*/
.tinytext
{
font-weight:normal;
font-size:x-small;
}
/*MBI application error messages, i.e. unable to connect to database, errors etc*/
.clerror
{
font-weight: bold;
color: red;
}
/*MBI warning messages*/
.clwarning
{
color: red;
font-size:x-small;
}

40
source/MBI/memoedit.aspx Normal file
View File

@@ -0,0 +1,40 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="memoedit.aspx.cs" Inherits="AyaNovaMBI.memoedit" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>me</title>
<link rel="Stylesheet" href="mbi.css" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<div>
<span class="clerror">
<asp:Label runat="server" id="lblRequired" visible="False">*</asp:Label>
</span> <asp:Button id="btnto" runat="server" text="to" OnClick="btnto_Click" />
<br />
<asp:Label runat="server" id="lblRecipients" width="99%" />
<br />
<span class="sectsubhead">
<asp:Label id="lblsubject" runat="server" text="LT:Memo.Label.Subject"
width="99%" associatedcontrolid="edSubject"></asp:Label>
</span>
<br />
<asp:TextBox id="edSubject" runat="server" width="99%" ></asp:TextBox>
<br />
<span class="sectsubhead">
<asp:Label id="Label1" runat="server" text="LT:Memo.Label.Message"
width="99%" associatedcontrolid="edMessage"></asp:Label>
</span>
<br />
<asp:TextBox id="edMessage" runat="server" width="99%" rows="10"
textmode="MultiLine" />
<br />
<asp:Button id="btnOK" runat="server" text="OK" OnClick="btnOK_Click" />
<asp:Button id="btnCancel" runat="server" text="Cancel" OnClick="btnCancel_Click" />
</div>
</form>
</body>
</html>

258
source/MBI/memoedit.aspx.cs Normal file
View File

@@ -0,0 +1,258 @@
using System;
using System.Data;
using System.Configuration;
using System.Collections.Generic;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using GZTW.AyaNova.BLL;
using System.Text;
namespace AyaNovaMBI
{
public partial class memoedit : System.Web.UI.Page
{
#region BizObject
public GZTW.AyaNova.BLL.Memo mMemo;
protected GZTW.AyaNova.BLL.Memo CurrentMemo
{
get
{
if (mMemo != null) return mMemo;
//The current memo is in the session or not put there yet
//if it's in the session then Bob's your Lobster.
if (Session["memo"] != null)
{
mMemo = (Memo)Session["memo"];
return mMemo;
}
//We're here because there is no memo in the session cache so this is the first time visit
//and memo needs to be created and put in the session cache
//The idstring represents either a new memo
//or the memo being replied to / (forwarded in future)
//so get the ID...
string idstring = Request.QueryString["id"];
if (util.mt(idstring))
throw new ApplicationException("MemoComposer - Memo id specified");
Guid oID = new Guid(idstring);
//completely new memo?
if (oID == AyaBizUtils.NewObjectGuid)
{
mMemo = Memo.NewItem();
Session["memo"] = mMemo;
return mMemo;
}
//Reply (forward in future) to existing memo
MemoFetcher mf = MemoFetcher.GetItem(oID, util.CurrentUser.DefaultLanguage);
mMemo = mf.ReplyForward(false);//true if forwarding
Session["memo"] = mMemo;
return mMemo;
}
}
#endregion
#region Recipient list DataTable
private DataTable dtRecipients = null;
protected DataTable Recipients
{
get
{
if (dtRecipients != null) return dtRecipients;
if (Session["memoto"] != null)
{
dtRecipients = (DataTable)Session["memoto"];
return dtRecipients;
}
//not in session cache, create, put in cache and return
InitializeRecipientTable();
Session.Add("memoto", dtRecipients);
return dtRecipients;
}
}
private void InitializeRecipientTable()
{
dtRecipients = new DataTable("RECIPIENTS");
Dictionary<UserTypes, string> ut = new Dictionary<UserTypes, string>();
ut.Add(UserTypes.Administrator, util.LocaleText("UserTypes.Label.Administrator"));
ut.Add(UserTypes.Schedulable, util.LocaleText("UserTypes.Label.Schedulable"));
ut.Add(UserTypes.NonSchedulable, util.LocaleText("UserTypes.Label.NonSchedulable"));
ut.Add(UserTypes.Client, util.LocaleText("UserTypes.Label.Client"));
ut.Add(UserTypes.HeadOffice, util.LocaleText("UserTypes.Label.HeadOffice"));
ut.Add(UserTypes.Utility, util.LocaleText("UserTypes.Label.UTILITY"));
dtRecipients.Columns.Add("RECIPIENT", typeof(System.String));
dtRecipients.Columns.Add("RECIPIENTTYPE", typeof(System.String));
dtRecipients.Columns.Add("SUBCONTRACTOR", typeof(bool));
dtRecipients.Columns.Add("RECIPIENTID", typeof(System.Guid));
dtRecipients.Columns.Add("SELECTED", typeof(bool));
//case 2000
//UserPickList UList = UserPickList.GetList(false);
UserPickList UList = UserPickList.GetInternalStaffOnlyList(false);
foreach (UserPickList.UserPickListInfo ui in UList)
{
DataRow dr = dtRecipients.NewRow();
dr["RECIPIENT"] = ui.Name;
dr["RECIPIENTTYPE"] = ut[ui.Type];
dr["SUBCONTRACTOR"] = ui.SubContractor;
dr["RECIPIENTID"] = ui.ID;
//In case of reply:
if (CurrentMemo.ToID == ui.ID)
dr["SELECTED"] = true;
else
dr["SELECTED"] = false;
dtRecipients.Rows.Add(dr);
}
}
#endregion
protected void Page_Load(object sender, EventArgs e)
{
//Get data logic
if (this.IsPostBack )//Only on a postback and not a callback
{
GetData();
}
}
protected void Page_LoadComplete(object sender, EventArgs e)
{
//Load and set data in initial form load
//and in all postbacks that are not a result of a rad
//manager callback
//Localize the page
util.Localize(this.Page);
SetData();
Page.Title = "*" + util.LocaleText("O.Memo");
btnto.Text = util.LocaleText("Memo.Label.ToID");
}
/// <summary>
/// Update user viewed display of recipients selected
/// called after coming back from MemoToSelector form
/// </summary>
private void DisplayTo()
{
bool bAtLeastOne = false;
this.lblRequired.Visible = false;
this.lblRecipients.Text = "";
StringBuilder sb = new StringBuilder();
foreach (DataRow dr in Recipients.Rows)
{
if ((bool)dr["SELECTED"] == true)
{
bAtLeastOne = true;
sb.Append((string)dr["RECIPIENT"] + "; ");
}
}
this.lblRecipients.Text = sb.ToString();
if (!bAtLeastOne)
lblRequired.Visible = true;
}
private void SetData()
{
edSubject.Text = CurrentMemo.Subject;
edMessage.Text = CurrentMemo.Message;
DisplayTo();
}
private void GetData()
{
CurrentMemo.Subject = edSubject.Text;
CurrentMemo.Message = edMessage.Text;
}
protected void btnOK_Click(object sender, EventArgs e)
{
//populate to collection first
bool bAtLeastOne = false;
foreach (DataRow dr in Recipients.Rows)
{
if ((bool)dr["SELECTED"] == true)
{
bAtLeastOne = true;
break;
}
}
if (!bAtLeastOne)
return;
string subject = edSubject.Text;
if (string.IsNullOrEmpty(subject))
subject = "NO SUBJECT";
//we have a recipient, we can send
foreach (DataRow dr in this.dtRecipients.Rows)
{
if ((bool)dr["SELECTED"] == true)
{
GZTW.AyaNova.BLL.Memo m = GZTW.AyaNova.BLL.Memo.NewItem();
m.ToID = (Guid)dr["RECIPIENTID"];
m.Subject = subject;
m.Message = edMessage.Text;
m.Save();
}
}
Session.Remove("memo");
Session.Remove("memoto");
util.Redirect(Session, Response, "ro.aspx?cmd=memos");
}
protected void btnCancel_Click(object sender, EventArgs e)
{
Session.Remove("memo");
Session.Remove("memoto");
util.Redirect(Session, Response, "ro.aspx?cmd=memos");
}
protected void btnto_Click(object sender, EventArgs e)
{
Response.Redirect("memoto.aspx");
}
//-----------------
}
}

112
source/MBI/memoedit.aspx.designer.cs generated Normal file
View File

@@ -0,0 +1,112 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:2.0.50727.312
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace AyaNovaMBI {
/// <summary>
/// memoedit class.
/// </summary>
/// <remarks>
/// Auto-generated class.
/// </remarks>
public partial class memoedit {
/// <summary>
/// form1 control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary>
/// lblRequired control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblRequired;
/// <summary>
/// btnto control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Button btnto;
/// <summary>
/// lblRecipients control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblRecipients;
/// <summary>
/// lblsubject control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblsubject;
/// <summary>
/// edSubject control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.TextBox edSubject;
/// <summary>
/// Label1 control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label Label1;
/// <summary>
/// edMessage control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.TextBox edMessage;
/// <summary>
/// btnOK control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Button btnOK;
/// <summary>
/// btnCancel control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Button btnCancel;
}
}

17
source/MBI/memoto.aspx Normal file
View File

@@ -0,0 +1,17 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="memoto.aspx.cs" Inherits="AyaNovaMBI.memoto" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Literal ID="lit" runat="server"></asp:Literal>
<br />
<asp:Button ID="btnOK" runat="server" Text="OK" OnClick="btnOK_Click" />&#160;
<asp:Button ID="btnCancel" runat="server" Text="Cancel" OnClick="btnCancel_Click" />
</div>
</form>
</body>
</html>

110
source/MBI/memoto.aspx.cs Normal file
View File

@@ -0,0 +1,110 @@
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using GZTW.AyaNova.BLL;
namespace AyaNovaMBI
{
public partial class memoto : System.Web.UI.Page
{
#region BizObject
public DataTable mdtTo;
protected DataTable dtTo
{
get
{
if (mdtTo != null) return mdtTo;
mdtTo = (DataTable)Session["memoto"];
if (mdtTo == null)
throw new ApplicationException("MemoToChooser - Userlist DataTable not found in session");
return mdtTo;
}
}
#endregion
protected void Page_Load(object sender, EventArgs e)
{
SetData();
}
private void SetData()
{
System.Text.StringBuilder s = new System.Text.StringBuilder();
int n = 0;
s.Append("<select name=\"selto\" multiple=\"multiple\">");
foreach (DataRow dr in dtTo.Rows)
{
s.Append("<option value=\"");
s.Append(n.ToString());
s.Append("\"");
if (((bool)dr["SELECTED"]))
s.Append(" selected=\"selected\"");
//s.Append("/>");
s.Append(">");
s.Append(dr["RECIPIENT"].ToString());
s.Append("</option>");
n++;
}
s.Append("</select>");
lit.Text = s.ToString();
}
private void GetData()
{
foreach (DataRow dr in dtTo.Rows)
{
dr["SELECTED"] = false;
}
string sraw = Request.Form.Get("selto");
if (util.mt(sraw))//nothing selected
return;
string[] arselected = sraw.Split(',');
int n = 0;
foreach (string s in arselected)
{
n = int.Parse(s);
dtTo.Rows[n]["SELECTED"] = true;
}
}
protected void btnOK_Click(object sender, EventArgs e)
{
GetData();
Response.Redirect("memoedit.aspx");
}
protected void btnCancel_Click(object sender, EventArgs e)
{
Response.Redirect("memoedit.aspx");
}
//-----------------------------------------------
}
}

51
source/MBI/memoto.aspx.designer.cs generated Normal file
View File

@@ -0,0 +1,51 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace AyaNovaMBI {
public partial class memoto {
/// <summary>
/// form1 control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary>
/// lit control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Literal lit;
/// <summary>
/// btnOK control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Button btnOK;
/// <summary>
/// btnCancel control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Button btnCancel;
}
}

BIN
source/MBI/ok.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 535 B

BIN
source/MBI/password.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 527 B

13
source/MBI/ro.aspx Normal file
View File

@@ -0,0 +1,13 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ro.aspx.cs" Inherits="AyaNovaMBI.ro" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>ro</title>
<link rel="Stylesheet" href="mbi.css" type="text/css" />
</head>
<body>
<div>
<asp:Literal ID="lit" runat="server"></asp:Literal>
</div>
</body>
</html>

36
source/MBI/ro.aspx.cs Normal file
View File

@@ -0,0 +1,36 @@
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
namespace AyaNovaMBI
{
public partial class ro : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//set return url session variable
string sret=util.GetReturnToUrlFromRequest(Request);
if(!sret.Contains("cmd=labors"))
Session["ret"] = sret;
//remove any session cached editable business objects that might be floating about
//because user selected back instead of saving or cancelling an edit
Session.Remove("memo");
Session.Remove("memoto");
//get the page content and set the title from the request variables
string PageData = "ERROR";
string TitleData = "ERROR";
util.GetRoPageFromRequest(Session,Request, ref PageData, ref TitleData);
lit.Text = PageData;
Title = TitleData;
}
}
}

31
source/MBI/ro.aspx.designer.cs generated Normal file
View File

@@ -0,0 +1,31 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:2.0.50727.312
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace AyaNovaMBI {
/// <summary>
/// ro class.
/// </summary>
/// <remarks>
/// Auto-generated class.
/// </remarks>
public partial class ro {
/// <summary>
/// lit control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Literal lit;
}
}

View File

@@ -0,0 +1,10 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="sched2labor.aspx.cs" Inherits="AyaNovaMBI.sched2labor" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>sched2labor</title>
</head>
<body>
</body>
</html>

View File

@@ -0,0 +1,41 @@
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using GZTW.AyaNova.BLL;
namespace AyaNovaMBI
{
public partial class sched2labor : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Guid id = util.GetIDFromRequest(Request);
WorkorderServiceScheduledUserList.WorkorderServiceScheduledUserListInfo i;
try
{
i = WorkorderServiceScheduledUserList.GetListForSingleItem(id)[0];
}
catch
{
throw new ApplicationException("Workorder item scheduled user ID is not valid, WorkorderServiceScheduledUserListInfo could not be retrieved");
}
//convert
Workorder w = Workorder.GetWorkorderByRelative(RootObjectTypes.WorkorderItemScheduledUser, util.GetIDFromRequest(Request));
Guid mNewWorkorderItemLabor = w.CreateLaborFromScheduledUser(i.LT_WorkorderItem_Label_ID, id);
if (mNewWorkorderItemLabor == Guid.Empty)
throw new ApplicationException("Sched2Labor: newworkorderitemlabor is empty, failed to convert scheduser to labor");
w.Save();
Response.Redirect("labor.aspx?id="+mNewWorkorderItemLabor.ToString());
}
}
}

22
source/MBI/sched2labor.aspx.designer.cs generated Normal file
View File

@@ -0,0 +1,22 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:2.0.50727.312
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace AyaNovaMBI {
/// <summary>
/// sched2labor class.
/// </summary>
/// <remarks>
/// Auto-generated class.
/// </remarks>
public partial class sched2labor {
}
}

28
source/MBI/schedule.aspx Normal file
View File

@@ -0,0 +1,28 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="schedule.aspx.cs" Inherits="AyaNovaMBI.schedule" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head runat="server">
<title>Untitled Page</title>
<link rel="Stylesheet" href="mbi.css" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Literal ID="lithead" runat="server"></asp:Literal>
</div>
<div>
<span class="secthead">
<asp:Button ID="btnPrev" runat="server" OnClick="btnPrev_Click" Text="&#171;" />
<asp:Label ID="lblActiveDay" runat="server" Text="Label"></asp:Label>
<asp:Button ID="btnNext" runat="server" OnClick="btnNext_Click" Text="&#187;" />
<asp:Button ID="btnToday" runat="server" OnClick="btnToday_Click" Text="" /><br /></span>
</div>
<div>
<asp:Literal ID="litsched" runat="server"></asp:Literal>
</div>
<div>
<asp:Literal ID="litfoot" runat="server"></asp:Literal>
</div>
</form>
</body>
</html>

331
source/MBI/schedule.aspx.cs Normal file
View File

@@ -0,0 +1,331 @@
using System;
using System.Data;
using System.Configuration;
using System.Collections.Generic;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using GZTW.AyaNova.BLL;
namespace AyaNovaMBI
{
public partial class schedule : System.Web.UI.Page
{
protected DateTime CurrentSchedDay
{
get
{
if (Session["SchedDate"] == null)
Session["SchedDate"] = DateTime.Today;
return (DateTime)Session["SchedDate"];
}
set
{
Session["SchedDate"] = value;
}
}
protected void Page_Load(object sender, EventArgs e)
{
this.Title = util.LocaleText("UI.Go.Schedule");
Session["ret"] = "schedule.aspx";
}
protected void Page_LoadComplete(object sender, EventArgs e)
{
DisplayAppointments();
}
private void DisplayAppointments()
{
//Appointments come at us unordered in any way
//in the ayanova ui the schedule UI itself takes care of this
//so here since it's a simple list need to order it from a dataview
DataTable dt = new DataTable();
dt.Columns.Add("Date", typeof(DateTime));
dt.Columns.Add("Display", typeof(string));
DataTable dtCurrent = new DataTable();
dtCurrent.Columns.Add("Date", typeof(DateTime));
dtCurrent.Columns.Add("Display", typeof(string));
DataRow dr = null;
lblActiveDay.Text = CurrentSchedDay.ToShortDateString();
if (CurrentSchedDay == DateTime.Today)
{
btnToday.Visible = false;
}
else
{
btnToday.Visible = true;
btnToday.Text = util.LocaleText("UI.Toolbar.Schedule.Today");
}
DateTime dtStop = CurrentSchedDay.AddHours(24);
AppointmentList apl = AppointmentList.GetList(CurrentSchedDay, dtStop, util.CurrentUserID);
User currentuser = util.CurrentUser;
//write out appointments
System.Text.StringBuilder s = new System.Text.StringBuilder();
//Fetch more detailed workorder info for each workorder in list
WorkorderServiceList wsl = null;
List<Guid> IDList = new List<Guid>();
foreach (AppointmentList.AppointmentListInfo i in apl)
{
if (i.SourceObjectType == RootObjectTypes.WorkorderItemScheduledUser)
{
IDList.Add(i.WorkorderID);
}
}
wsl = WorkorderServiceList.GetListFromIDList(IDList);
int nCurrent = 0;
foreach (AppointmentList.AppointmentListInfo i in apl)
{
switch (i.SourceObjectType)
{
#region workorders
case RootObjectTypes.WorkorderItemScheduledUser:
{
WorkorderServiceList.WorkorderServiceListInfo wsnfo = GetWSLInfo(i.WorkorderID, wsl);
if (//Currently happening or will start within the hour
(i.StartDateTime >= DateTime.Now && i.StartDateTime < DateTime.Now.AddHours(1)) ||
(i.StartDateTime <= DateTime.Now && i.EndDateTime > DateTime.Now)
)
{
//Within the hour
nCurrent++;
s.Length = 0;
s.Append("<span class=\"sectsubhead\">");
s.Append(i.StartDateTime.ToShortTimeString());
s.Append(" - ");
s.Append(i.EndDateTime.ToShortTimeString());
s.Append("</span>");
s.Append("<br/>");
s.Append(util.GetRoLink(nCurrent.ToString(), i.SourceObjectID, RootObjectTypes.WorkorderItemScheduledUser, i.ServiceNumber.ToString()));
s.Append(" ");
s.Append(util.GetRoLink("", wsnfo.LT_O_Client.Value, RootObjectTypes.Client, wsnfo.LT_O_Client.Display));
s.Append("<br/>");
s.Append(util.GetWOItemStatusLink(i.WorkorderItemID));
dr = dtCurrent.NewRow();
dr["Date"] = i.StartDateTime;
dr["Display"] = s.ToString();
dtCurrent.Rows.Add(dr);
}
else
{
//All DAY
s.Length = 0;
s.Append("<span class=\"sectsubhead\">");
s.Append(i.StartDateTime.ToShortTimeString());
s.Append(" - ");
s.Append(i.EndDateTime.ToShortTimeString());
s.Append("</span>");
s.Append("<br/>");
s.Append(util.GetRoLink("", i.SourceObjectID, RootObjectTypes.WorkorderItemScheduledUser, i.ServiceNumber.ToString()));
s.Append(" ");
s.Append(util.GetRoLink("", wsnfo.LT_O_Client.Value, RootObjectTypes.Client, wsnfo.LT_O_Client.Display));
s.Append("<br/>");
s.Append(util.GetWOItemStatusLink(i.WorkorderItemID));
dr = dt.NewRow();
dr["Date"] = i.StartDateTime;
dr["Display"] = s.ToString();
dt.Rows.Add(dr);
}
}
break;
#endregion
#region schedulemarkers
case RootObjectTypes.ScheduleMarker:
{
bool bApplies = false;
////Could be a bunch by region , global , dispatchzone, schedusergroup
////or could be a single by one user ID
switch (i.AppliesToObjectType)
{
case RootObjectTypes.User:
{//case 990
if (currentuser.ID == i.AppliesToObjectID)
bApplies = true;
}
break;
case RootObjectTypes.Region:
{
if (currentuser.RegionID == i.AppliesToObjectID)
bApplies = true;
}
break;
case RootObjectTypes.DispatchZone:
{
if (currentuser.DispatchZoneID == i.AppliesToObjectID)
bApplies = true;
}
break;
case RootObjectTypes.ScheduleableUserGroup:
{
ScheduleableUserGroupUsersList ScheduleMarkerGroup = ScheduleableUserGroupUsersList.GetList(i.AppliesToObjectID);
if (ScheduleMarkerGroup.Contains(currentuser.ID))
bApplies = true;
}
break;
case RootObjectTypes.Global:
{
bApplies = true;
}
break;
}
if (bApplies)
{
s.Length = 0;
s.Append("<span class=\"sectsubhead\">");
s.Append(i.StartDateTime.ToShortTimeString());
s.Append(" - ");
s.Append(i.EndDateTime.ToShortTimeString());
s.Append("</span>");
s.Append("<br/>");
s.Append(util.GetRoLink("", i.SourceObjectID, RootObjectTypes.ScheduleMarker, i.Subject));
s.Append("<br/>");
dr = dt.NewRow();
dr["Date"] = i.StartDateTime;
dr["Display"] = s.ToString();
dt.Rows.Add(dr);
}
}
break;
#endregion
}
}
//Got all our appointments in dt, now extract them in the correct order into stringbuilder
s.Length = 0;
//s.Append("<hr/>");
if (dtCurrent.Rows.Count > 0)
{
s.Append("<span class=\"secthead\">");
s.Append(util.LocaleText("UI.Label.TimeSpan.WithinTheHour"));
s.Append("</span>");
s.Append("<br/>");
DataView dv = dtCurrent.DefaultView;
dv.Sort = "Date";
foreach (DataRowView drv in dv)
{
s.Append(drv["Display"].ToString());
s.Append("<br/>");
}
s.Append("<hr/>");
}
if (dt.Rows.Count > 0)
{
s.Append("<span class=\"secthead\">");
s.Append(util.LocaleText("UI.Label.AllDay"));
s.Append("<br/>");
s.Append("</span>");
DataView dv = dt.DefaultView;
dv.Sort = "Date";
foreach (DataRowView drv in dv)
{
s.Append(drv["Display"].ToString());
s.Append("<br/>");
}
}
string smenu = util.PageMenu("schedule");
lithead.Text = smenu + "<hr/>";
litsched.Text = s.ToString();
litfoot.Text = "<hr/>" + smenu;
}
///// <summary>
///// Build a fragment of html for an appointment
///// </summary>
///// <param name="i"></param>
///// <returns></returns>
//private string BuildSM(AppointmentList.AppointmentListInfo i)
//{
// System.Text.StringBuilder s = new System.Text.StringBuilder();
// return s.ToString();
//}
/// <summary>
/// Workorderservicelist doesn't have a proper index retrieval
/// and don't want to touch it now so this will substitute
/// </summary>
/// <param name="WorkorderID"></param>
/// <returns></returns>
private WorkorderServiceList.WorkorderServiceListInfo GetWSLInfo(Guid WorkorderID, WorkorderServiceList wsl)
{
foreach (WorkorderServiceList.WorkorderServiceListInfo i in wsl)
{
if (i.LT_O_Workorder.Value == WorkorderID)
return i;
}
return new WorkorderServiceList.WorkorderServiceListInfo();
}
#region buttons
protected void btnNext_Click(object sender, EventArgs e)
{
CurrentSchedDay = CurrentSchedDay.AddDays(1);
}
protected void btnPrev_Click(object sender, EventArgs e)
{
CurrentSchedDay = CurrentSchedDay.AddDays(-1);
}
protected void btnToday_Click(object sender, EventArgs e)
{
CurrentSchedDay = DateTime.Today;
}
#endregion
//-------------------------------------------
}
}

94
source/MBI/schedule.aspx.designer.cs generated Normal file
View File

@@ -0,0 +1,94 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:2.0.50727.312
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace AyaNovaMBI {
/// <summary>
/// schedule class.
/// </summary>
/// <remarks>
/// Auto-generated class.
/// </remarks>
public partial class schedule {
/// <summary>
/// form1 control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary>
/// lithead control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Literal lithead;
/// <summary>
/// btnPrev control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Button btnPrev;
/// <summary>
/// lblActiveDay control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblActiveDay;
/// <summary>
/// btnNext control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Button btnNext;
/// <summary>
/// btnToday control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Button btnToday;
/// <summary>
/// litsched control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Literal litsched;
/// <summary>
/// litfoot control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Literal litfoot;
}
}

1
source/MBI/sig.js Normal file
View File

@@ -0,0 +1 @@
(function (a) { a.fn.extend({ sigpad: function (e) { var A = { lineWidth: 3.0, lineCap: 'round', lineJoin: 'round', miterLimit: 10, strokeStyle: 'black', fillStyle: 'none', showClear: false, clearLabel: 'Clear', clearStyle: 'button' }; e = a.extend(A, e); return this.each(function () { if (this.nodeName === 'CANVAS') { a(this).css('cursor', 'pointer'); a(this).attr('onclick', 'function onclick(event) { void 1; }'); if (this.getContext) { var r = this; var c = this.getContext('2d'); var h = a(this).attr('id'); a(this).after('<div id="' + h + '-controls" style="width:' + a(this).width() + 'px"></div>'); c.underInteractionEnabled = true; c.lineWidth = e.lineWidth; c.lineCap = e.lineCap; c.lineJoin = e.lineJoin; c.miterLimit = e.miterLimit; c.strokeStyle = e.strokeStyle; c.fillStyle = e.fillStyle; var k = h + '-data'; a(this).after('<input type="hidden" id="' + k + '" name="' + k + '" />'); var m = false; var s = a('#' + h).height(); var t = a('#' + h).width(); var d = ''; var n = 0; var o = 0; var B = a(this).attr('offsetLeft'); var C = a(this).attr('offsetTop'); var j = false; var p = false; var u = false; var f = false; var g = false; a(document).mousedown(function (b) { v(b) }); a(document).mousemove(function (b) { w(b) }); a(document).mouseup(function () { q() }); a(document).bind('touchstart', function (b) { v(b) }); a(document).bind('touchmove', function (b) { w(b) }); a(document).bind('touchend', function () { q() }); a(document).bind('touchcancel', function () { q() }); if (e.showClear === true) { var x = (e.clearStyle == 'link' ? 'div' : 'button'); a('#' + h + '-controls').append('<' + x + ' id="' + h + '-clear" style="float:left">' + e.clearLabel + '</' + x + '><br style="clear:both" />'); clear = true } a('#' + h + '-clear').click(function (b) { c.save(); c.beginPath(); c.closePath(); c.restore(); c.clearRect(0, 0, a(r).width(), a(r).height()); a('#' + k).val('') }); function y(b) { if (typeof (event) != "undefined" && typeof (event.touches) != "undefined") { b = event.touches.item(0); n = document.body.scrollLeft; o = document.body.scrollTop } else { n = a(document).scrollLeft(); o = a(document).scrollTop() } if (f != false) { p = f; u = g } f = b.clientX - (B - n); g = b.clientY - (C - o); return b } function l(b) { if (b != 'stop') { if (b == 'start') { j = false; p = false; u = false; c.beginPath(); c.moveTo(f, g); if (d == '') { var i = new Date(); var D = i.getFullYear() + ':' + (i.getMonth()+1) + ':' + i.getDate() + ':' + i.getHours() + ':' + i.getMinutes() + ':' + i.getSeconds(); d = '{version=1 width=' + t + ' height=' + s + ' captured=' + D + '}' } if (d != '') { d += 'X' } } else { if (p == false) { f = f + 1; g = g + 1 } c.lineTo(f, g) } c.stroke(); if (d.length > 0 && d.substring(d.length - 1) != '"') { d = d + ' ' } d = d + f + ',' + g; if ((f > 0 && f <= t) && (g > 0 && g <= s)) { j = true } } else { l('move'); if (j == true) { var z = a('#' + k); var E = z.val(); z.val(d) } } } function v(b) { if (j == true) { b.preventDefault() } m = true; b = y(b); c.strokeStyle = a('#' + h + '-colors div.selected').css('backgroundColor'); l('start') } function w(b) { if (j == true) { b.preventDefault() } if (m == true) { b = y(b); l('move') } return false } function q() { m = false; l('stop') } } } else { alert('Not a CANVAS element') } }) } }) })(jQuery);

51
source/MBI/sign.aspx Normal file
View File

@@ -0,0 +1,51 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="sign.aspx.cs" Inherits="AyaNovaMBI.sign" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>me</title>
<link rel="Stylesheet" href="mbi.css" type="text/css" />
<script type="text/javascript" src="jquery-1.4.4.min.js"></script>
<script type="text/javascript" src="sig.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$('#sigpad').sigpad();
});
</script>
</head>
<body>
<form id="form1" runat="server">
<div id="sigdiv" runat="server"
style="border: thin solid #0000FF;margin:0 auto 0 8px; padding-left: 16px;">
<br /><br />
<h1>
<asp:Label ID="lblSignTitle" runat="server" Text="Please sign below"></asp:Label></h1>
<p>
<asp:Label ID="lblSignHeader" runat="server" Text="By signing below you agree to terms for service provided."
Font-Size="Smaller"></asp:Label></p>
<canvas id="sigpad" width="300" height="100" style="border: 1px dotted;">
<p>Your browser does not support signing<br/>
The following browsers are supported:<br/>
IE 9.0+, FIREFOX 3.0+, SAFARI 3.0+, CHROME 3.0+, OPERA 10.0+, IPAD 1.0+, IPHONE 1.0+, ANDROID 1.0+ <br />
(OR ANY DEVICE BROWSER THAT SUPPORTS <strong><span class="clerror">CANVAS</span></strong> ELEMENT)</p>
</canvas>
<div style="width: 64px; height: 64px; float: left; text-align: left;">
<asp:Button id="btnCancel" runat="server" text="Cancel"
onclick="btnCancel_Click" />
</div>
<div style="float: left; width: 64px; height: 64px; text-align: right;">
<asp:Button id="btnOK" runat="server" text="OK" CausesValidation="False"
onclick="btnOK_Click" />
</div>
<br />
<br />
<p>
<asp:Label ID="lblSignFooter" runat="server" Text="FOOTER TEXT HERE" Font-Size="Smaller"></asp:Label></p>
</div>
</form>
</body>
</html>

58
source/MBI/sign.aspx.cs Normal file
View File

@@ -0,0 +1,58 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using GZTW.AyaNova.BLL;
namespace AyaNovaMBI
{
public partial class sign : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//case 1346
//show and process signature if it's signable
if (!Page.IsPostBack)
{
//Show signature area
sigdiv.Visible = true;
//lblSignTitleTop.Visible = true;
lblSignTitle.Text = util.GlobalSettings.SignatureTitle;
lblSignHeader.Text = util.GlobalSettings.SignatureHeader;
lblSignFooter.Text = util.GlobalSettings.SignatureFooter;
}
}
protected void btnCancel_Click(object sender, EventArgs e)
{
//return from whence we came
util.Redirect(Session, Response, "schedule.aspx");
}
protected void btnOK_Click(object sender, EventArgs e)
{
//process possible signature
object o = Page.Request["sigpad-data"];
if (o != null && !string.IsNullOrWhiteSpace(o.ToString()))
{
AySignature sig = new AySignature(o.ToString());
if (sig.HasSignature)
{
//store in workorder
o.ToString();
Workorder w = Workorder.GetItem(new Guid(Request.QueryString["sigwo"]));
w.WorkorderService.SetSignature = o.ToString();
w.Save();
}
}
util.Redirect(Session, Response, "schedule.aspx");
}
//---------------------------------------------------------------------
}
}

87
source/MBI/sign.aspx.designer.cs generated Normal file
View File

@@ -0,0 +1,87 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace AyaNovaMBI {
public partial class sign {
/// <summary>
/// Head1 control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlHead Head1;
/// <summary>
/// form1 control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary>
/// sigdiv control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlGenericControl sigdiv;
/// <summary>
/// lblSignTitle control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblSignTitle;
/// <summary>
/// lblSignHeader control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblSignHeader;
/// <summary>
/// btnCancel control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Button btnCancel;
/// <summary>
/// btnOK control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Button btnOK;
/// <summary>
/// lblSignFooter control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblSignFooter;
}
}

20
source/MBI/status.aspx Normal file
View File

@@ -0,0 +1,20 @@
<%@ Page Language="C#" AutoEventWireup="True" CodeBehind="status.aspx.cs" Inherits="AyaNovaMBI.status" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>stat</title>
<link rel="Stylesheet" href="mbi.css" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<asp:DropDownList ID="stat" runat="server" >
</asp:DropDownList>
<div>
<asp:Label ID="lblid" runat="server" Visible="False"></asp:Label>
<br />
<asp:Button ID="btn" runat="server" Text="OK" />
</div>
</form>
</body>
</html>

87
source/MBI/status.aspx.cs Normal file
View File

@@ -0,0 +1,87 @@
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using GZTW.AyaNova.BLL;
namespace AyaNovaMBI
{
public partial class status : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Guid woitemid = util.GetIDFromRequest(Request);
//case 1153 added a hidden label field to temporarily hold the workorderitem id number
//because on Joyce's two test machines and the haveabyte demo machine it was losing the url id= parameter
//on postback but not on my dev machine and not anywhere in any other pages in MBI that rely on the
//same mechanism. Tried everything and examined it all ways and could find nothing out of the ordinary and
//no search online revealed this to be a known problem of any kind
//very weird and even weirder that it initially has no problem on first page load, just on postback
//anyway the hidden label field fixes the problem so workaround it is.
if (woitemid == Guid.Empty)
{
if (string.IsNullOrEmpty(lblid.Text))
throw new System.ApplicationException("Error in status - unable to determine workorder item id.");
woitemid = new Guid(lblid.Text);
}
else
{
lblid.Text = woitemid.ToString();
}
Workorder w = null;
WorkorderItem wi = null;
w = Workorder.GetWorkorderByRelativeNoMRU(RootObjectTypes.WorkorderItem, woitemid);
wi = w.WorkorderItems[woitemid];
if (IsPostBack)
{
//Get selected value from form variables
//because when viewstate is off controlstate doesn't handle selected value in
//dropdownlists (while it *does* for text boxes etc which makes no sense)
if (!util.mt(Request.Form["stat"]))
wi.WorkorderStatusID = new Guid(Request.Form["stat"]);
if (w.IsDirty)
w = (Workorder)w.Save();
if (!util.mt(Session["ret"]))
{
Response.Redirect(Session["ret"].ToString());
return;
}
}
WorkorderStatusPickList p = WorkorderStatusPickList.GetList();
foreach (WorkorderStatusPickList.WorkorderStatusPickListInfo i in p)
{
//case 1916 weed out inactive statuses unless preselected
if (i.Active || i.ID == wi.WorkorderStatusID)
{
ListItem li = new ListItem(i.Name, i.ID.ToString());
if (i.ID == wi.WorkorderStatusID)
li.Selected = true;
stat.Items.Add(li);
}
}
btn.Text = util.LocaleText("UI.Command.OK");
}
//---------------------------------------
}
}

52
source/MBI/status.aspx.designer.cs generated Normal file
View File

@@ -0,0 +1,52 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:2.0.50727.1433
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace AyaNovaMBI {
public partial class status {
/// <summary>
/// form1 control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary>
/// stat control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.DropDownList stat;
/// <summary>
/// lblid control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblid;
/// <summary>
/// btn control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Button btn;
}
}

BIN
source/MBI/user.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 604 B

2384
source/MBI/util.cs Normal file

File diff suppressed because it is too large Load Diff