Sei sulla pagina 1di 125

A

PROJECT ON
ONLINE SHOPPING
For partial fulfillment of the requirement of award
Of

Master of Computer Application

DEWAN INSTITUTE OF
MANAGEMENT STUDIES
DELHI MASOORI BYEEPASS ROAD, MEERUT
SUBMITTED TO :
Mr. NEERAJ GUPTA

SUBMITTED BY :
DEEPSHIKHA SRIVASTVA

DATA
REPORT

ACKNOWLEDGEMENT
First and foremost we would like to express our gratitude to our guide
MR. NEERAJ GUPTA sir & other faculty member for giving us
wonderful opportunity to work on the project. We are very thankful to
him who was always ready to lend their helping hand to us. This project
has giving us fair exposure to some of the very interesting features of
ONLINE SHOPPING and PHP along beyond doubt it will help us
in the short and long run. We are very grateful to him introducing me to
some of very exciting features of ONLINE SHOPPING.

We are also thankful to all my teachers of DEWAN INSTITUTE


OF MANAGEMENT STUDIES. Who were simply full ideas and
whenever there was any need they shared those great ideas and concept
with us. And in the end, we would like to thank all those who helped us
during the testing phase of the project.

THAKING YOU

DECLARATION
I hereby declare that this project report entitled
ONLINE SHOPPING submitting for partially
fulfillment of the requirement for the MCA VI SEM.
This report is only for educational purpose and not
for any other purpose.

DEEPSHIKHA SRIVASTVA

1207414016

MCA VI sem

ONLINE
SHOPPING

INDEX
Sr no. Topics
1.

Introduction

Objective

Requirement Analysis

Hardware & Software requirement

A Word about PHP

SDLC

7
8

System analysis
Feasibility study

9
16
10
17

System design
TESTING CONCLUSION
E R diagram
IMPLEMENTATION

11
18

Data
flow diagram
FUTURISTIC
SCOPE

19
12

BIBLIOGRAPHY
Project layout

20
13

Database

14

Benefits

15

Coding

Page no.

INTRODUCTION
Shopping Cart
Project Features
Software Requirement
Installation Steps
Download Project
Shopping Cart System
Use of Shopping Cart system
7

Shopping Cart System is the Simple shopping Solution. It's a full-featured website and
shopping cart system that bends over backwards to give you the flexibility you need to
run your online store. The basic concept of the application is to allow the customer to
shop virtually using the Internet and allow customers to buy the items and articles of
their desire from the store. The information pertaining to the products are stores on an
RDBMS at the server side (store). The Server process the customers and the items are
shipped to the address submitted by them. The details of the items are brought forward
from the database for the customer view based on the selection through the menu and
the database of all the products are updated at the end of each transaction.
What is Shopping Cart system?
Online shopping is a form of electronic shopping store where the buyer is directly
online to the seller's computer usually via the internet. There is no intermediary
service. The sale and purchase transaction is completed electronically and
interactively in real-time. The development of this new system contains the following
activities, which try to develop on-line application by keeping the entire process in the
view of database integration approach. User gets its eamil id and password to acces
their account.
Administrator of Shopping Cart System has multiple features such as Add, Delete,
Update shopping Items.
Features of shopping cart system.
1. Secure registration and profile management facilities for
Customers.
2. Browsing through the e-Mall to see the items that are there in
each category of products like Apparel, Kitchen accessories,
Bath accessories, Food items etc.
3. Creating a Shopping cart so that customer can Shop N number
of items and checkout finally with the entire shopping cart
4. Customers should be able to mail the Shop about the items
they would like to see in the Shop

5. Secured mechanism for checking out from the Shop( Credit


card verification mechanism ).Updates to customers about the
Recent Items in the Shop.
6. Uploading Most Purchased Items in each category of products
in the Shop like Apparel, Kitchen accessories, Bath accessories,
Food items etc.
Brief overview of the technology:
Front end: HTML, CSS, JavaScript
1. HTML: HTML is used to create and save web document. E.g.
Notepad/Notepad++
2. CSS : (Cascading Style Sheets) Create attractive Layout
3. JavaScript: it is a programming language, commonly use with
web browsers.
Back end: PHP, MySQL
1. PHP: Hypertext Preprocessor (PHP) is a technology that allows
software developers to create dynamically generated web
pages, in HTML, XML, or other document types, as per client
request. PHP is open source software.
2. MySQL: MySql is a database, widely used for accessing
querying, updating, and managing data in databases.
Software Requirement(any one):
WAMP Server
XAMPP Server
MAMP Server
LAMP Server
Installation Steps:

1. Download zip file and Unzip file on your local server.


2. Put this file inside c:/wamp/www/ .
3. Database Configuration:
Open phpmyadmin
Create Database named shop.
Import database shop.sql.
4. Open Your browser put inside URL:
http://localhost/Design_Klara3/
5. To Login as admin putinside URL:
http://localhost/Design_Klara3/admin
Admin login details: Login Id: admin
Password: priya123

10

OBJECTIVE
Starting the project, we should fully know about the meaning of project. There are
seven letters in the word PROJECT. Each character has its own technical
meaning.
P planning : this deals with the idea at thinking and which are required for
project.
R Resource : the money problem will be solved and resources from which
collected.
O Operating : the procedure from which getting job is prepared in a systematic
way is known as operation.
J Joint effort : this is directly proper to a operation output is a made of several
person working sincerely is known as JOIN EFFORT.
E Engineering : A well educated engineer can do this work in a better way to
find out better result. Hence the project is as engineer function.
C Cooperation : To make the project successfully, it is necessary for its success
and completion of project.
T Technique : It must as it gives a better shape. It is not possible to complete the
project without technique.

The project is a system that gives the systematic way of planning and working.
11

Or
It representing the temporary task, in a scientific manner carried out of
engineers to achieve a goal.

REQUIREMENT ANALYSIS
A Subject People are Interested In
The most successful blogs are written about topics that have a broad appeal. The more people
who are interested in the topic you write about at your blog, the more people will search for
information on that topic and want to read about it.

Passion for Your Subject


As a blogger, you have to write about your blog's subject a lot. The writing is nonstop. If you
don't love your blog's topic, it will show. Readers can detect when a blogger is just going through
the motions rather than speaking from the heart.

Commitment
Successful blogging requires a massive amount of sweat equity and dedication. Building a
successful blog requires more than just publishing a new post a few times a week. The most
successful blogs are updated frequently (often several times each day), and the bloggers behind
those blogs work relentlessly to promote their blogs and drive traffic to them.

Time
Building a successful blog requires a massive time investment. Growing a blog doesn't stop with
publishing post. Top bloggers spend a lot of time everyday promoting their blogs, researching
and reading to drive traffic to it.
12

A Desire to Network
Socializing is a critical component of developing a successful blog. Blogging by nature is a
social medium, and successful blogs become so primarily because of the strong sense of
community surrounding them. Top bloggers take time to respond to comments and interact with
their blogs' readers as well as network on social sites, forums and more all in an effort to further
promote their blogs.

A Desire to Keep Learning


The blogosphere is ever-changing, which means top bloggers are always looking for new ways to
enhance their blogs by persistently researching anything and everything related to blogging.

A Love of Research and Reading


Successful bloggers read a lot in order to stay updated on their blogs' topics and the blogosphere
as a whole.

Creativity
A successful blog is typically updated very frequently. That means successful blogs always
provide fresh, unique content to their readers. Writing that new content requires a great deal of
creativity to keep readers from feeling bored or from feeling like the blog does not bring them
any value.

Patience
Blogging success does not happen overnight. Be prepared to stay dedicated to promoting your
blog for the long haul. Eventually, your hard work should pay off with increased traffic and a
significant growth in popularity of your blog. The key is to not give up.

13

HARDWARE & SOFTWARE


REQUIREMENT
Hardware requirement of project are :

Section
Supported Operating Systems

Additional Software
Requirements
Display
RAM

Requirements and Recommendations


Microsoft Windows 7 32/64 bit
Microsoft Windows 8 32/64 bit
Adobe Acrobat Reader 4.0 or higher

Minimum resolution 800 x 600 pixel


1024 x 768 pixel recommended
2 GB or more
4 GB or more recommended especially
for Microsoft Windows Vista, 7 and 8

14

CPU

1.5 GHz processor speed or higher

Software requirement of project are :

Section
Supported Operating Systems

Additional Software
Requirements

Requirements and Recommendations


Microsoft Windows XP
Microsoft Windows Vista
Microsoft Windows 7 32/64 bit
.NET Framework 1.1 and SP 1 for .Net
FrameWork 1.1

15

A WORD ABOUT PHP


What is PHP?
PHP (Hypertext Preprocessor) is a widely-used open source general-purpose
scripting language that is especially suited for web development and can be
embedded into HTML.
The best things in using PHP are that it is extremely simple for a newcomer, but
offers many advanced features for a professional programmer. Don't be afraid
reading the long list of PHP's features. You can jump in, in a short time, and start
writing simple scripts in a few hours.
PHP is an acronym for "PHP: Hypertext Preprocessor". PHP is a widely-used, open
source scripting language. PHP scripts are executed on the server. PHP is free to
download and use

PHP is an amazing and popular language!


It is powerful enough to be at the core of the biggest blogging system on the web (Word
Press)!
It is deep enough to run the largest social network (Facebook)
It is also easy enough to be a beginner's first server side language

16

What is a PHP File?


PHP files can contain text, HTML, CSS, JavaScript, and PHP code. PHP code are
executed on the server, and the result is returned to the browser as plain HTML.
PHP files have extension ".php"

What Can PHP Do?


PHP can generate dynamic page content. PHP can create, open, read, write, delete,
and close files on the server. PHP can collect form data. PHP can send and receive
cookies. PHP can add, delete, modify data in your database. PHP can be used to
control user-access. PHP can encrypt data.
With PHP you are not limited to output HTML. You can output images, PDF files,
and even flash movies. You can also output any text, such as XHTML and XML.

Why PHP?
PHP runs on various platforms (Windows, Linux, Unix, Mac OS X, etc.) PHP is
compatible with almost all servers used today (Apache, IIS, etc.) PHP supports a
wide range of databases. PHP is free. Download it from the official PHP
resource: www.php.net. PHP is easy to learn and runs efficiently on the server side

How Can We Set Up PHP on Your Own PC :


However, if your server does not support PHP, you must:
Install a web server

17

Install PHP
Install a database, such as MySQL
The official PHP website (PHP.net) has installation instructions for
PHP: http://php.net/manual/en/install.php

SDLC
SOFTWARE DEVELOPMENT LIFE CYCLE
The software development life cycle (SDLC) is a framework defining tasks
performed at each step in the software development process. SDLC is a structure
followed by a development team within the software organization. It consists of a
detailed plan describing how to develop, maintain and replace specific software.
The life cycle defines a methodology for improving the quality of software and the
overall development process.
This term is also known as the software development process.

SDLC consists of following activities:

Planning:
The most important parts of software development, requirement gathering or
requirement analysis are usually done by the most skilled and experienced software
engineers in the organization. After the requirements are gathered from the client, a
scope document is created in which the scope of the project is determined and
documented.

18

Implementation:
The software engineers start writing the code according to the client's
requirements.

Testing:
This is the process of finding defects or bugs in the created software.

Documentation:
Every step in the project is documented for future reference and for the
improvement of the software in the development process. The design
documentation may include writing the application programming interface (API).

Deployment and maintenance:


The software is deployed after it has been approved for release.

Maintaining:
Software maintenance is done for future reference. Software improvement and
new requirements (change requests) can take longer than the time needed to create
the initial development of the software.

There are several software development models followed by various


organizations:

Waterfall Model:
This model involves finishing the first phase completely before commencing the
next one. When each phase is completed successfully, it is reviewed to see if the
project is on track and whether it is feasible to continue.

V-Shaped Model:

19

This model focuses on execution of processes in a sequential manner, similar to


the waterfall model but with more importance placed on testing. Testing
procedures are written even before the commencement of writing code. A system
plan is generated before starting the development phase.

Incremental Model:
This life cycle model involves multiple development cycles. The cycles are
divided up into smaller iterations. These iterations can be easily managed and go
through a set of phases including requirements, design, implementation and testing.
A working version of the software is produced during the first iteration, so working
software is created early in the development process.

SYSTEM ANALYSIS
System analysis is the process of examining a business situation for the purpose of
developing a system solution to a problem or devising improvements to such a
situation. Before the development of any system can begin, a project proposal is
prepared by the users of the potential system and/or by systems analysts and
submitted to an appropriate managerial structure within the organization.
Assuming that a new system is to be developed, the next phase is a system
analysis. Analysis involved a detailed study of the current system, leading to
specifications of a new system. Analysis is a detailed study of various operations
performed by a system and their relationship with in and outside the system.
During analysis, data are collected on the available files, decision points and
transactions handled by the present system. Interviews, on-site observation and
questionnaire are the tools used for system analysis. Using the following step it
becomes easy to draw the exact boundary of the new system under consideration :
Keeping in view the problems and new requirements workout the pros and cons
including new areas of the system.
All procedures, requirement must be analysed and documented in the form of
detailed data flow diagrams, data dictionary, logical data structures and miniature
specifications. System analysis also includes sub-dividing of complex process
involving the entire system, identifiers of data stores and manual processes.
The main points to be discussed in system analysis are :
20

Specification of what the new system is to accomplish based on the user


requirements.
Functional hierarchy showing the function to be performed by the new system and
their relationship with each other.
Function network which are similar to function hierarchy but they highlight the
those functions which are common to more than one procedure.

FEASIBILITY STUDY
The feasibility study investigates the problem and the information needs of the
stakeholders. It seeks to determine the resources required to provide an information
systems solution, the cost and benefits of such a solution, and the feasibility of
such a solution. The analyst conducting the study gathers information using a
variety of methods, the most popular of which are:
Interviewing users, employees, managers, and customers.
Developing and administering questionnaires to interested stakeholders,
such as potential users of the information system.
Observing or monitoring users of the current system to determine their needs
as well as their satisfaction and dissatisfaction with the current system.
Collecting, examining, and analyzing documents, reports, layouts,
procedures, manuals, and any other documentation relating to the operations
of the current system.
Modeling, observing, and simulating the work activities of the current
system.

21

The goal of the feasibility study is to consider alternative information systems


solutions, evaluate their feasibility, and propose the alternative most suitable to the
organization. The feasibility of a proposed solution is evaluated in terms of its
components. These components are:

Economic feasibility :
The economic viability of the proposed system. The proposed project's cost and
benefits are evaluated. Tangible costs include fixed and variable costs, while
tangible benefits include cost savings, increased revenue, and increased profit. A
project is approved only if it covers its cost in a given period of time. However, a
project may be approved only on its intangible benefits such as those relating to
government regulations, the image of the organization, or similar considerations.

Technical feasibility :
The possibility that the organization has or can procure the necessary resources.
This is demonstrated if the needed hardware and software are available in the
marketplace or can be developed by the time of implementation.

Operational feasibility:
The ability, desire, and willingness of the stakeholders to use, support, and operate
the proposed computer information system. The stakeholders include management,
employees, customers, and suppliers. The stakeholders are interested in systems
that are easy to operate, make few, if any, errors, produce the desired information,
and fall within the objectives of the organization.

22

SYSTEM DESIGN
What is systems design?
Systems design is simply the design of systems. It implies a systematic and
rigorous approach to designan approach demanded by the scale and complexity
of many systems problems.

Where did it come from?


Systems design first appeared shortly before World War II as engineers grappled
with complex communications and control problems. They formalized their work
in the new disciplines of information theory, operations research, and cybernetics.
In the 1960s, members of the design methods movement (especially Horst Rittel
and others at Ulm and Berkeley) transferred this knowledge to the design world.
Systems design continues to flourish at schools interested in design planning and
within the world of computer science. Among its most important legacies is a
research field known as design rationale, which concerns systems for making and
documenting design decisions.

23

What can designers learn from systems design?


Today, ideas from design methods and systems design may be more relevant to
designers than ever beforeas more and more designers collaborate on designing
software and complex information spaces. Frameworks suggested by systems
design are especially useful in modeling interaction and conversation. They are
also useful in modeling the design process itself.

What is the most important thing to be aware of in systems


design?
A systems approach to design asks:
For this situation, what is the system?
What is the environment?
What goal does the system have in relation to its environment?
What is the feedback loop by which the system corrects its actions?
How does the system measure whether it has achieved its goal?
Who defines the system, environment, goal, etc.and monitors it?
What resources does the system have for maintaining the relationship it desires?
Are its resources sufficient to meet its purpose?

Is systems design incompatible with user-centered design?


A systems approach to design is entirely compatible with a user-centered approach.
Indeed, the core of both approaches is understanding user goals. A systems
approach looks at users in relation to a context and in terms of their interaction
with devices, with each other, and with themselves.

What is the relationship between systems design and


cybernetics?
Cybernetics (the science of feedback) provides an approach to systems and a set of
frameworks and tools. Among the most important ideas for designers:
Definition of a system depends on point of view.
We are responsible for our actions.
24

All interaction is a form of conversation


All conversation involves goals, understandings, and agreement.

Are there times when systems design isnt appropriate?


A systems approach to design is most appropriate for projects involving large
systems or systems of systems. Such projects typically involve many people, from
many disciplines, working together over an extended period of time. They need
tools to cope with their projects complexity: to define goals, facilitate
communications, and manage processes. Solo designers working on small projects
may find the same tools a bit cumbersome for their needs.

E R DIAGRAM
Entity Relationship Diagrams are a major data modeling tool and will help organize
the data in your project into entities and define the relationships between the entities.
This process has proved to enable the analyst to produce a good database structure so
that the data can be stored and retrieved in a most efficient manner.
Entity
A data entity is anything real or abstract about which we want to store data. Entity
types fall into five classes: roles, events, locations, tangible things or concepts. E.g.
employee, payment, campus, book. Specific examples of an entity are
called instances. E.g. the employee John Jones, Mary Smith's payment, etc.
Relationship
A data relationship is a natural association that exists between one or more entities.
E.g. Employees process payments. .
Attribute
A data attribute is a characteristic common to all or most instances of a particular
entity. Synonyms include property, data element, field. E.g. Name, address, Employee
Number, pay rate are all attributes of the entity employee. An attribute or combination
of attributes that uniquely identifies one and only one instance of an entity is called a
primary key or identifier. E.g. Employee Number is a primary key for Employee.
25

DATA FLOW DIAGRAM


A Data Flow Diagram (DFD) is a graphical representation of the "flow" of data
through an information system. A DFD is often used as a preliminary step to
create an overview of the system. DFDs can also be used for the visualization of
data processing (structured design).
A DFD shows what kind of information will be input to and output from the
system, where the data will come from and go to, and where the data will be
stored. It does not show information about the timing of process or information
about whether processes will operate in sequence or in parallel.

History
Data flow diagrams were proposed by Larry Constantine. The original developer
of structured design, based on Martin and Estrin's "Data Flow Graph" model of
computation. Starting in the 1970s, data flow diagrams (DFD) became a popular
way to visualize the major steps and data involved in software system processes.
DFDs were usually used to show data flows in a computer system, although they
could in theory be applied to business process modeling. DFD were useful to
document the major data flows or to explore a new high-level design in terms of
data flow.

26

Data flow diagram Symbols:


External entities: rectangular box
Data flow: arrow headed lines
Process/ function: bubble/ circle.
Data store: narrow opened rectangle.

27

A data flow diagram represents the following:


External devices sending or receiving data.
Processes that change the data.
Data flow themselves.
data storage locations.

Types of data flow diagram :

28

There are two types of data flow diagrams, namely physical data flow diagrams
and logical data flow diagram and it is important to difference between the two:

Physical data flow diagram:


An implementation dependent view of the current system, showing what tasks are
carried out and how they are performed. Physical characteristic can include:
Names of people.
Form and document name and number.
Name of departments.
Master and transaction files.
Equipment and device used.
Locations.
Names of procedures.

Logical data flow diagram :


An implementation independent view of the system, focusing on the flow of data
between processes without regard for the specific devices, storage location or
people in the system. The physical characterstics listed above for physical data
flow diagram will not be specified.

29

PROJECT LAYOUT
PROJECT PLAN:
The Project Plan (sometimes called project initiation document or project scoping
report) is produced by the Project Manager following a brief Scoping Project
Study. It should establish:
What the project is to achieve
A detailed time schedule for carrying out the project
Details of the resources required - people, money, sections
Who is to be involved in the project
What the risks and implementation issues are.
A typical format is given below. As you may notice, the first five items (Part A)
focus on what the project is to achieve whilst the last four items (Part B) go into
more depth about how the project should be carried out.
30

Project Plan
Part A
1. Title of project,
2. Background to the Project
3. Terms of Reference & Key Objectives
4. Benefits & Costs Analysis
5. Risk Assessment
Part B
6. Resources likely to be needed
7. Costs
8. Proposed Project Organisation
9. Time Schedule

Project Plan
Part A
1.

Title of project,

Together with the names of the Project Manager and Project Sponsor.

2.

Background to the Project

A brief description of the background to the project including how the project came
about, what the project is about, why we are undertaking the project, and what in
very broad terms the outcome of the project will be to the organization.

31

3.

Terms of Reference & Key Objectives

First, a brief overall definition and description of the project and its aims including
some reference to likely timescales, budget and resources, and what the project
will aim to deliver. Then a statement of what the project is to deliver - the key
objectives. The latter is often done as a listing the main stakeholders of the project
with a statement for each of what the project will aim to deliver to them.

4.

Benefits & Costs Analysis

A brief statement of the main benefits to be gained from undertaking this project
and the main costs which will be incurred and which need to be controlled and
contained. Not necessarily a full cost-benefit analysis but a brief overview.

5.

Risk Assessment

The main risks - implementation issues which may delay the project. The priority
items should be identified with suggestions as to how they could be averted or their
impact lessened.
One of the simplest and best ways of doing this is to create a risk register
identifying all the events that could cause problems for the project, and then
mapping these onto a Hi-Lo diagram.

Part B
6.

Resources likely to be needed

The resources, money and peoples time, which the project manager will need to
carry out this project.

7.

Costs

A good estimate of overall costs to be incurred and the required budget.

32

8.

Proposed Project Organization

A description of the overall project organisation, in particular the project manager,


project sponsor (individual or group), team members if any, key contributors (IT,
stats, etc).
Also, if the project warrants project review meetings, when they should take place
and who should be involved.

9.

Time Schedule

A time plan showing the key activities which need to take place and estimates of
when the activity needs to be carried out, with key milestone dates.
Best done with one of the planning techniques - Gantt Charts, Milestone Plans,
Stages Diagram, or even Critical Path Analysis if the project warrants it.

DATA BASE

SQL REPORT
Host: localhost
Database: blog
Generation Time: Apr 15, 2015 at 10:07 AM
Generated by: phpMyAdmin 3.3.2deb1ubuntu1 / MySQL 5.1.73-0ubuntu0.10.04.1
SQL query: SELECT * FROM `blog_comments` LIMIT 30, 30 ;
Rows: 22
comment post_
name
_id
id

comment

comment_time

31

10 Asd

aaaaaaaaaaaaaaaaaaaaa

2012-06-07
19:48:17

32

12 Channi

comments

2012-06-08

33

comment post_
name
_id
id

comment

comment_time
08:46:41
2012-06-09
18:52:19

38

18 asdfdsaf A

45

23 Channi

asdfsf asdfsf asdfsf asdfsf asdfsf asdfsf


asdfsf a...

2012-06-09
20:14:26

46

26 Poink

here's a comment by poink

2012-06-10
12:27:37

47

35

Some
User

Wow...what an article....(js kidding..u


suck!!)

2012-06-10
19:18:00

48

35

Some
User

s coming week, have fun doing this


exercise Becaus...

2012-06-10
19:18:12

49

35

Some
User

Then she does a rough sketch in pencil


on the canv...

2012-06-10
19:18:21

50

26

Some
User

major scientific breakthroughs come


after years an...

2012-06-10
19:18:33

51

26

Some
User

f funny to keep watching people who


want things to...

2012-06-10
19:18:41

52

34

Some
User

Knowing what your dream is the


beginning of living...

2012-06-10
19:21:28

53

34

Some
User

May your life be filled with love,


happiness and i...

2012-06-10
19:21:38

54

33

Some
User

Sublime Text 2 is currently available for 2012-06-10


all majo...
19:21:52

55

33

Some
User

Sublime is in active development.

56

32

Some
User

About the Author: I am a biotechnologist 2012-06-10


from Indi...
19:22:32

57

32

Some
User

It has also been observed by many


throughout the c...

2012-06-10
19:22:44

58

32 Some

Be brave and live a courageous life!

2012-06-10

2012-06-10
19:22:14

34

comment post_
name
_id
id

comment

User

comment_time
19:22:51

59

32

Some
User

I have received a lot from this world


through many...

2012-06-10
19:23:06

61

31

Some
User

If the world would look at each one of us 2012-06-10


and ask ...
19:23:45

62

31

Some
User

If only we will recognize the importance 2012-06-10


of failur...
19:23:55

63

31

Some
User

I have received a lot from this world


through many...

2012-06-10
19:24:09

64

39 Vinni

Nbotug

2015-03-20
13:36:23

BENEFITS
20 years ago, blogs didnt exist. Today, there are over 150 million of them.
Still, I get a lot of puzzled looks when I tell people that having a blog is the single
most important thing a business, cause, or person can do to advance online. Even
though blogging has hit it big, most people dont get what makes blogging so
powerful, helpful, and beneficial.
To put an end to that, Ive compile a list of the 20 biggest benefits of having a blog
below. If youre among the uninitiated, prepare to be enlightened. If youve already
started a blog of your own then you can consider this an affirmation of why you do
35

what you and a good place to direct people who still think that a blog is just a
pointless public diary.

The 20 Biggest Benefits of Blogging Are Given


Below:
1 Get a Better Job.
2 Start a New Business.
3 Get More Clients to Your Existing Business.
4 Become a Better Writer.
5 Become a Published Author.
6 Get Immediate Feedback.
7 Learn More About a Group of People.
8 Gain Influence.
9 Establish Yourself as an Expert in Your Field.
10 Build a Network.
11 Learn In-Demand Skills.
12 Improve Your SEO.
13 Collect Emails.
14 Stay Knowledgeable in Your Field.
15 Sell a Product.
36

16 Talk to Your Idols.


17 Express Yourself.
18 Help Others.
19 Build Trust Online.
20 Take Control of Your Online Identity.

37

ONLINE
SHOPPIN
G
CODING
/**
* jQuery lightBox plugin
38

* This jQuery plugin was inspired and based on Lightbox 2 by Lokesh Dhakar
(http://www.huddletogether.com/projects/lightbox2/)
* and adapted to me for use like a plugin from jQuery.
* @name jquery-lightbox-0.5.css
* @author Leandro Vieira Pinho - http://leandrovieira.com
* @version 0.5
* @date April 11, 2008
* @category jQuery plugin
* @copyright (c) 2008 Leandro Vieira Pinho (leandrovieira.com)
* @license CCAttribution-ShareAlike 2.5 Brazil http://creativecommons.org/licenses/by-sa/2.5/br/deed.en_US
* @example Visit http://leandrovieira.com/projects/jquery/lightbox/ for more
informations about this jQuery plugin
*/
#jquery-overlay {
position: absolute;
top: 0;
left: 0;
z-index: 90;
width: 100%;
height: 500px;
}
#jquery-lightbox {
position: absolute;
39

top: 0;
left: 0;
width: 100%;
z-index: 100;
text-align: center;
line-height: 0;
}
#jquery-lightbox a img { border: none; }
#lightbox-container-image-box {
position: relative;
background-color: #fff;
width: 250px;
height: 250px;
margin: 0 auto;
}
#lightbox-container-image { padding: 10px; }
#lightbox-loading {
position: absolute;
top: 40%;
left: 0%;
height: 25%;
width: 100%;
text-align: center;
40

line-height: 0;
}
#lightbox-nav {
position: absolute;
top: 0;
left: 0;
height: 100%;
width: 100%;
z-index: 10;
}
#lightbox-container-image-box > #lightbox-nav { left: 0; }
#lightbox-nav a { outline: none;}
#lightbox-nav-btnPrev, #lightbox-nav-btnNext {
width: 49%;
height: 100%;
zoom: 1;
display: block;
}
#lightbox-nav-btnPrev {
left: 0;
float: left;
}
#lightbox-nav-btnNext {
41

right: 0;
float: right;
}
#lightbox-container-image-data-box {
font: 10px Verdana, Helvetica, sans-serif;
background-color: #fff;
margin: 0 auto;
line-height: 1.4em;
overflow: auto;
width: 100%;
padding: 0 10px 0;
}
#lightbox-container-image-data {
padding: 0 10px;
color: #666;
}
#lightbox-container-image-data #lightbox-image-details {
width: 70%;
float: left;
text-align: left;
}
#lightbox-image-details-caption { font-weight: bold; }
#lightbox-image-details-currentNumber {
42

display: block;
clear: left;
padding-bottom: 1.0em;
}
#lightbox-secNav-btnClose {
width: 66px;
float: right;
padding-bottom: 0.7em;
}
/*
* jQuery 1.2.3 - New Wave Javascript
*
* Copyright (c) 2008 John Resig (jquery.com)
* Dual licensed under the MIT (MIT-LICENSE.txt)
* and GPL (GPL-LICENSE.txt) licenses.
*
* $Date: 2008-02-06 00:21:25 -0500 (Wed, 06 Feb 2008) $
* $Rev: 4663 $
*/
(function(){if(window.jQuery)var _jQuery=window.jQuery;var
jQuery=window.jQuery=function(selector,context){return new
jQuery.prototype.init(selector,context);};if(window.$)var _$=window.$;window.
$=jQuery;var quickExpr=/^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/;var isSimple=/^.[^:#\
[\.]*$/;jQuery.fn=jQuery.prototype={init:function(selector,context)
43

{selector=selector||document;if(selector.nodeType)
{this[0]=selector;this.length=1;return this;}else if(typeof selector=="string"){var
match=quickExpr.exec(selector);if(match&&(match[1]||!context))
{if(match[1])selector=jQuery.clean([match[1]],context);else{var
elem=document.getElementById(match[3]);if(elem)if(elem.id!=match[3])return
jQuery().find(selector);else{this[0]=elem;this.length=1;return this;}else
selector=[];}}else
return new jQuery(context).find(selector);}else
if(jQuery.isFunction(selector))return new jQuery(document)
[jQuery.fn.ready?"ready":"load"](selector);return
this.setArray(selector.constructor==Array&&selector||(selector.jquery||
selector.length&&selector!=window&&!selector.nodeType&&selector[0]!
=undefined&&selector[0].nodeType)&&jQuery.makeArray(selector)||
[selector]);},jquery:"1.2.3",size:function(){return
this.length;},length:0,get:function(num){return num==undefined?
jQuery.makeArray(this):this[num];},pushStack:function(elems){var
ret=jQuery(elems);ret.prevObject=this;return ret;},setArray:function(elems)
{this.length=0;Array.prototype.push.apply(this,elems);return
this;},each:function(callback,args){return
jQuery.each(this,callback,args);},index:function(elem){var ret=1;this.each(function(i){if(this==elem)ret=i;});return
ret;},attr:function(name,value,type){var
options=name;if(name.constructor==String)if(value==undefined)return
this.length&&jQuery[type||"attr"](this[0],name)||
undefined;else{options={};options[name]=value;}return this.each(function(i)
{for(name in options)jQuery.attr(type?
this.style:this,name,jQuery.prop(this,options[name],type,i,name));});},css:function(
key,value){if((key=='width'||
key=='height')&&parseFloat(value)<0)value=undefined;return
this.attr(key,value,"curCSS");},text:function(text){if(typeof text!="object"&&text!
=null)return this.empty().append((this[0]&&this[0].ownerDocument||
document).createTextNode(text));var ret="";jQuery.each(text||this,function()
{jQuery.each(this.childNodes,function(){if(this.nodeType!=8)ret+=this.nodeType!
=1?this.nodeValue:jQuery.fn.text([this]);});});return ret;},wrapAll:function(html)
44

{if(this[0])jQuery(html,this[0].ownerDocument).clone().insertBefore(this[0]).map(
function(){var elem=this;while(elem.firstChild)elem=elem.firstChild;return
elem;}).append(this);return this;},wrapInner:function(html){return
this.each(function()
{jQuery(this).contents().wrapAll(html);});},wrap:function(html){return
this.each(function(){jQuery(this).wrapAll(html);});},append:function(){return
this.domManip(arguments,true,false,function(elem)
{if(this.nodeType==1)this.appendChild(elem);});},prepend:function(){return
this.domManip(arguments,true,true,function(elem)
{if(this.nodeType==1)this.insertBefore(elem,this.firstChild);});},before:function()
{return this.domManip(arguments,false,false,function(elem)
{this.parentNode.insertBefore(elem,this);});},after:function(){return
this.domManip(arguments,false,true,function(elem)
{this.parentNode.insertBefore(elem,this.nextSibling);});},end:function(){return
this.prevObject||jQuery([]);},find:function(selector){var
elems=jQuery.map(this,function(elem){return jQuery.find(selector,elem);});return
this.pushStack(/[^+>] [^+>]/.test(selector)||selector.indexOf("..")>-1?
jQuery.unique(elems):elems);},clone:function(events){var ret=this.map(function()
{if(jQuery.browser.msie&&!jQuery.isXMLDoc(this)){var
clone=this.cloneNode(true),container=document.createElement("div");container.ap
pendChild(clone);return jQuery.clean([container.innerHTML])[0];}else
return this.cloneNode(true);});var clone=ret.find("*").andSelf().each(function()
{if(this[expando]!
=undefined)this[expando]=null;});if(events===true)this.find("*").andSelf().each(f
unction(i){if(this.nodeType==3)return;var
events=jQuery.data(this,"events");for(var type in events)for(var handler in
events[type])jQuery.event.add(clone[i],type,events[type][handler],events[type]
[handler].data);});return ret;},filter:function(selector){return
this.pushStack(jQuery.isFunction(selector)&&jQuery.grep(this,function(elem,i)
{return selector.call(elem,i);})||
jQuery.multiFilter(selector,this));},not:function(selector)
{if(selector.constructor==String)if(isSimple.test(selector))return
this.pushStack(jQuery.multiFilter(selector,this,true));else

45

selector=jQuery.multiFilter(selector,this);var
isArrayLike=selector.length&&selector[selector.length-1]!==undefined&&!
selector.nodeType;return this.filter(function(){return isArrayLike?
jQuery.inArray(this,selector)<0:this!=selector;});},add:function(selector){return!
selector?this:this.pushStack(jQuery.merge(this.get(),selector.constructor==String?
jQuery(selector).get():selector.length!=undefined&&(!selector.nodeName||
jQuery.nodeName(selector,"form"))?selector:[selector]));},is:function(selector)
{return selector?
jQuery.multiFilter(selector,this).length>0:false;},hasClass:function(selector){return
this.is("."+selector);},val:function(value){if(value==undefined){if(this.length){var
elem=this[0];if(jQuery.nodeName(elem,"select")){var
index=elem.selectedIndex,values=[],options=elem.options,one=elem.type=="select
-one";if(index<0)return null;for(var i=one?index:0,max=one?
index+1:options.length;i<max;i++){var option=options[i];if(option.selected)
{value=jQuery.browser.msie&&!option.attributes.value.specified?
option.text:option.value;if(one)return value;values.push(value);}}return
values;}else
return(this[0].value||"").replace(/\r/g,"");}return undefined;}return
this.each(function(){if(this.nodeType!
=1)return;if(value.constructor==Array&&/radio|
checkbox/.test(this.type))this.checked=(jQuery.inArray(this.value,value)>=0||
jQuery.inArray(this.name,value)>=0);else if(jQuery.nodeName(this,"select")){var
values=value.constructor==Array?value:
[value];jQuery("option",this).each(function()
{this.selected=(jQuery.inArray(this.value,values)>=0||
jQuery.inArray(this.text,values)>=0);});if(!values.length)this.selectedIndex=1;}else
this.value=value;});},html:function(value){return value==undefined?(this.length?
this[0].innerHTML:null):this.empty().append(value);},replaceWith:function(value)
{return this.after(value).remove();},eq:function(i){return
this.slice(i,i+1);},slice:function(){return
this.pushStack(Array.prototype.slice.apply(this,arguments));},map:function(callbac
k){return this.pushStack(jQuery.map(this,function(elem,i){return
callback.call(elem,i,elem);}));},andSelf:function(){return
46

this.add(this.prevObject);},data:function(key,value){var
parts=key.split(".");parts[1]=parts[1]?"."+parts[1]:"";if(value==null){var
data=this.triggerHandler("getData"+parts[1]+"!",
[parts[0]]);if(data==undefined&&this.length)data=jQuery.data(this[0],key);return
data==null&&parts[1]?this.data(parts[0]):data;}else
return this.trigger("setData"+parts[1]+"!",[parts[0],value]).each(function()
{jQuery.data(this,key,value);});},removeData:function(key){return
this.each(function()
{jQuery.removeData(this,key);});},domManip:function(args,table,reverse,callback
){var clone=this.length>1,elems;return this.each(function(){if(!elems)
{elems=jQuery.clean(args,this.ownerDocument);if(reverse)elems.reverse();}var
obj=this;if(table&&jQuery.nodeName(this,"table")&&jQuery.nodeName(elems[0],
"tr"))obj=this.getElementsByTagName("tbody")[0]||
this.appendChild(this.ownerDocument.createElement("tbody"));var
scripts=jQuery([]);jQuery.each(elems,function(){var elem=clone?
jQuery(this).clone(true)[0]:this;if(jQuery.nodeName(elem,"script"))
{scripts=scripts.add(elem);}else{if(elem.nodeType==1)scripts=scripts.add(jQuery(
"script",elem).remove());callback.call(obj,elem);}});scripts.each(evalScript);});}};j
Query.prototype.init.prototype=jQuery.prototype;function evalScript(i,elem)
{if(elem.src)jQuery.ajax({url:elem.src,async:false,dataType:"script"});else
jQuery.globalEval(elem.text||elem.textContent||
elem.innerHTML||"");if(elem.parentNode)elem.parentNode.removeChild(elem);}j
Query.extend=jQuery.fn.extend=function(){var target=arguments[0]||
{},i=1,length=arguments.length,deep=false,options;if(target.constructor==Boolean
){deep=target;target=arguments[1]||{};i=2;}if(typeof target!="object"&&typeof
target!="function")target={};if(length==1){target=this;i=0;}for(;i<length;i+
+)if((options=arguments[i])!=null)for(var name in options)
{if(target===options[name])continue;if(deep&&options[name]&&typeof
options[name]=="object"&&target[name]&&!
options[name].nodeType)target[name]=jQuery.extend(target[name],options[name])
;else if(options[name]!=undefined)target[name]=options[name];}return
target;};var expando="jQuery"+(new
Date()).getTime(),uuid=0,windowData={};var exclude=/z-?index|font-?weight|
opacity|zoom|line-?height/i;jQuery.extend({noConflict:function(deep){window.
47

$=_$;if(deep)window.jQuery=_jQuery;return jQuery;},isFunction:function(fn)
{return!!fn&&typeof fn!="string"&&!fn.nodeName&&fn.constructor!
=Array&&/function/i.test(fn+"");},isXMLDoc:function(elem){return
elem.documentElement&&!elem.body||
elem.tagName&&elem.ownerDocument&&!
elem.ownerDocument.body;},globalEval:function(data)
{data=jQuery.trim(data);if(data){var
head=document.getElementsByTagName("head")[0]||
document.documentElement,script=document.createElement("script");script.type=
"text/javascript";if(jQuery.browser.msie)script.text=data;else
script.appendChild(document.createTextNode(data));head.appendChild(script);hea
d.removeChild(script);}},nodeName:function(elem,name){return
elem.nodeName&&elem.nodeName.toUpperCase()==name.toUpperCase();},cach
e:{},data:function(elem,name,data){elem=elem==window?windowData:elem;var
id=elem[expando];if(!id)id=elem[expando]=++uuid;if(name&&!
jQuery.cache[id])jQuery.cache[id]={};if(data!=undefined)jQuery.cache[id]
[name]=data;return name?jQuery.cache[id]
[name]:id;},removeData:function(elem,name){elem=elem==window?
windowData:elem;var id=elem[expando];if(name){if(jQuery.cache[id]){delete
jQuery.cache[id][name];name="";for(name in jQuery.cache[id])break;if(!
name)jQuery.removeData(elem);}}else{try{delete elem[expando];}catch(e)
{if(elem.removeAttribute)elem.removeAttribute(expando);}delete
jQuery.cache[id];}},each:function(object,callback,args){if(args)
{if(object.length==undefined){for(var name in
object)if(callback.apply(object[name],args)===false)break;}else
for(var i=0,length=object.length;i<length;i+
+)if(callback.apply(object[i],args)===false)break;}else{if(object.length==undefine
d){for(var name in
object)if(callback.call(object[name],name,object[name])===false)break;}else
for(var
i=0,length=object.length,value=object[0];i<length&&callback.call(value,i,value)!
==false;value=object[++i]){}}return
object;},prop:function(elem,value,type,i,name)
48

{if(jQuery.isFunction(value))value=value.call(elem,i);return
value&&value.constructor==Number&&type=="curCSS"&&!exclude.test(name)?
value+"px":value;},className:{add:function(elem,classNames)
{jQuery.each((classNames||"").split(/\s+/),function(i,className)
{if(elem.nodeType==1&&!
jQuery.className.has(elem.className,className))elem.className+=(elem.class
Name?" ":"")+className;});},remove:function(elem,classNames)
{if(elem.nodeType==1)elem.className=classNames!=undefined?
jQuery.grep(elem.className.split(/\s+/),function(className){return!
jQuery.className.has(classNames,className);}).join("
"):"";},has:function(elem,className){return jQuery.inArray(className,
(elem.className||elem).toString().split(/\s+/))>1;}},swap:function(elem,options,callback){var old={};for(var name in options)
{old[name]=elem.style[name];elem.style[name]=options[name];}callback.call(ele
m);for(var name in
options)elem.style[name]=old[name];},css:function(elem,name,force)
{if(name=="width"||name=="height"){var
val,props={position:"absolute",visibility:"hidden",display:"block"},which=name=
="width"?["Left","Right"]:["Top","Bottom"];function getWH()
{val=name=="width"?elem.offsetWidth:elem.offsetHeight;var
padding=0,border=0;jQuery.each(which,function()
{padding+=parseFloat(jQuery.curCSS(elem,"padding"+this,true))||
0;border+=parseFloat(jQuery.curCSS(elem,"border"+this+"Width",true))||0;});val=Math.round(padding+border);}if(jQuery(elem).is(":visible"))getWH();else
jQuery.swap(elem,props,getWH);return Math.max(0,val);}return
jQuery.curCSS(elem,name,force);},curCSS:function(elem,name,force){var
ret;function color(elem){if(!jQuery.browser.safari)return false;var
ret=document.defaultView.getComputedStyle(elem,null);return!ret||
ret.getPropertyValue("color")=="";}if(name=="opacity"&&jQuery.browser.msie)
{ret=jQuery.attr(elem.style,"opacity");return
ret==""?"1":ret;}if(jQuery.browser.opera&&name=="display"){var
save=elem.style.outline;elem.style.outline="0 solid
black";elem.style.outline=save;}if(name.match(/float/i))name=styleFloat;if(!
force&&elem.style&&elem.style[name])ret=elem.style[name];else
49

if(document.defaultView&&document.defaultView.getComputedStyle)
{if(name.match(/float/i))name="float";name=name.replace(/([A-Z])/g,"$1").toLowerCase();var
getComputedStyle=document.defaultView.getComputedStyle(elem,null);if(getCo
mputedStyle&&!
color(elem))ret=getComputedStyle.getPropertyValue(name);else{var
swap=[],stack=[];for(var
a=elem;a&&color(a);a=a.parentNode)stack.unshift(a);for(var i=0;i<stack.length;i+
+)if(color(stack[i]))
{swap[i]=stack[i].style.display;stack[i].style.display="block";}ret=name=="displa
y"&&swap[stack.length-1]!=null?"none":
(getComputedStyle&&getComputedStyle.getPropertyValue(name))||"";for(var
i=0;i<swap.length;i++)if(swap[i]!
=null)stack[i].style.display=swap[i];}if(name=="opacity"&&ret=="")ret="1";}else
if(elem.currentStyle){var camelCase=name.replace(/\-(\w)/g,function(all,letter)
{return letter.toUpperCase();});ret=elem.currentStyle[name]||
elem.currentStyle[camelCase];if(!/^\d+(px)?$/i.test(ret)&&/^\d/.test(ret)){var
style=elem.style.left,runtimeStyle=elem.runtimeStyle.left;elem.runtimeStyle.left=e
lem.currentStyle.left;elem.style.left=ret||
0;ret=elem.style.pixelLeft+"px";elem.style.left=style;elem.runtimeStyle.left=runti
meStyle;}}return ret;},clean:function(elems,context){var ret=[];context=context||
document;if(typeof
context.createElement=='undefined')context=context.ownerDocument||
context[0]&&context[0].ownerDocument||
document;jQuery.each(elems,function(i,elem){if(!
elem)return;if(elem.constructor==Number)elem=elem.toString();if(typeof
elem=="string"){elem=elem.replace(/(<(\w+)[^>]*?)\/>/g,function(all,front,tag)
{return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?
all:front+"></"+tag+">";});var
tags=jQuery.trim(elem).toLowerCase(),div=context.createElement("div");var
wrap=!tags.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!
tags.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||tags.match(/^<(thead|tbody|
tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!
tags.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!
tags.indexOf("<td")||!
50

tags.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!
tags.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></
table>"]||jQuery.browser.msie&&[1,"div<div>","</div>"]||
[0,"",""];div.innerHTML=wrap[1]+elem+wrap[2];while(wrap[0]--)div=div.lastChil
d;if(jQuery.browser.msie){var tbody=!
tags.indexOf("<table")&&tags.indexOf("<tbody")<0?
div.firstChild&&div.firstChild.childNodes:wrap[1]=="<table>"&&tags.indexOf("<
tbody")<0?div.childNodes:[];for(var j=tbody.length-1;j>=0;-j)if(jQuery.nodeName(tbody[j],"tbody")&&!
tbody[j].childNodes.length)tbody[j].parentNode.removeChild(tbody[j]);if(/^\s/.test
(elem))div.insertBefore(context.createTextNode(elem.match(/^\s*/)
[0]),div.firstChild);}elem=jQuery.makeArray(div.childNodes);}if(elem.length===0
&&(!jQuery.nodeName(elem,"form")&&!
jQuery.nodeName(elem,"select")))return;if(elem[0]==undefined||
jQuery.nodeName(elem,"form")||elem.options)ret.push(elem);else
ret=jQuery.merge(ret,elem);});return ret;},attr:function(elem,name,value){if(!
elem||elem.nodeType==3||elem.nodeType==8)return undefined;var
fix=jQuery.isXMLDoc(elem)?
{}:jQuery.props;if(name=="selected"&&jQuery.browser.safari)elem.parentNode.se
lectedIndex;if(fix[name]){if(value!=undefined)elem[fix[name]]=value;return
elem[fix[name]];}else if(jQuery.browser.msie&&name=="style")return
jQuery.attr(elem.style,"cssText",value);else
if(value==undefined&&jQuery.browser.msie&&jQuery.nodeName(elem,"form")&
&(name=="action"||name=="method"))return
elem.getAttributeNode(name).nodeValue;else if(elem.tagName){if(value!
=undefined)
{if(name=="type"&&jQuery.nodeName(elem,"input")&&elem.parentNode)throw"
type property can't be
changed";elem.setAttribute(name,""+value);}if(jQuery.browser.msie&&/href|
src/.test(name)&&!jQuery.isXMLDoc(elem))return
elem.getAttribute(name,2);return
elem.getAttribute(name);}else{if(name=="opacity"&&jQuery.browser.msie)
{if(value!=undefined){elem.zoom=1;elem.filter=(elem.filter||"").replace(/alpha\
([^)]*\)/,"")+
51

(parseFloat(value).toString()=="NaN"?"":"alpha(opacity="+value*100+")");}retur
n elem.filter&&elem.filter.indexOf("opacity=")>=0?
(parseFloat(elem.filter.match(/opacity=([^)]*)/)
[1])/100).toString():"";}name=name.replace(/-([a-z])/ig,function(all,letter){return
letter.toUpperCase();});if(value!=undefined)elem[name]=value;return
elem[name];}},trim:function(text){return(text||"").replace(/^\s+|\s+
$/g,"");},makeArray:function(array){var ret=[];if(typeof array!="array")for(var
i=0,length=array.length;i<length;i++)ret.push(array[i]);else
ret=array.slice(0);return ret;},inArray:function(elem,array){for(var
i=0,length=array.length;i<length;i++)if(array[i]==elem)return i;return1;},merge:function(first,second){if(jQuery.browser.msie){for(var i=0;second[i];i+
+)if(second[i].nodeType!=8)first.push(second[i]);}else
for(var i=0;second[i];i++)first.push(second[i]);return first;},unique:function(array)
{var ret=[],done={};try{for(var i=0,length=array.length;i<length;i++){var
id=jQuery.data(array[i]);if(!done[id]){done[id]=true;ret.push(array[i]);}}}catch(e)
{ret=array;}return ret;},grep:function(elems,callback,inv){var ret=[];for(var
i=0,length=elems.length;i<length;i++)if(!inv&&callback(elems[i],i)||inv&&!
callback(elems[i],i))ret.push(elems[i]);return ret;},map:function(elems,callback)
{var ret=[];for(var i=0,length=elems.length;i<length;i++){var
value=callback(elems[i],i);if(value!==null&&value!=undefined)
{if(value.constructor!=Array)value=[value];ret=ret.concat(value);}}return
ret;}});var
userAgent=navigator.userAgent.toLowerCase();jQuery.browser={version:
(userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[])
[1],safari:/webkit/.test(userAgent),opera:/opera/.test(userAgent),msie:/msie/.test(us
erAgent)&&!/opera/.test(userAgent),mozilla:/mozilla/.test(userAgent)&&!/
(compatible|webkit)/.test(userAgent)};var
styleFloat=jQuery.browser.msie?"styleFloat":"cssFloat";jQuery.extend({boxModel
:!jQuery.browser.msie||document.compatMode=="CSS1Compat",props:
{"for":"htmlFor","class":"className","float":styleFloat,cssFloat:styleFloat,styleFl
oat:styleFloat,innerHTML:"innerHTML",className:"className",value:"value",di
sabled:"disabled",checked:"checked",readonly:"readOnly",selected:"selected",max
length:"maxLength",selectedIndex:"selectedIndex",defaultValue:"defaultValue",tag
Name:"tagName",nodeName:"nodeName"}});jQuery.each({parent:function(elem)
52

{return elem.parentNode;},parents:function(elem){return
jQuery.dir(elem,"parentNode");},next:function(elem){return
jQuery.nth(elem,2,"nextSibling");},prev:function(elem){return
jQuery.nth(elem,2,"previousSibling");},nextAll:function(elem){return
jQuery.dir(elem,"nextSibling");},prevAll:function(elem){return
jQuery.dir(elem,"previousSibling");},siblings:function(elem){return
jQuery.sibling(elem.parentNode.firstChild,elem);},children:function(elem){return
jQuery.sibling(elem.firstChild);},contents:function(elem){return
jQuery.nodeName(elem,"iframe")?elem.contentDocument||
elem.contentWindow.document:jQuery.makeArray(elem.childNodes);}},function(
name,fn){jQuery.fn[name]=function(selector){var
ret=jQuery.map(this,fn);if(selector&&typeof
selector=="string")ret=jQuery.multiFilter(selector,ret);return
this.pushStack(jQuery.unique(ret));};});jQuery.each({appendTo:"append",prepend
To:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},f
unction(name,original){jQuery.fn[name]=function(){var args=arguments;return
this.each(function(){for(var i=0,length=args.length;i<length;i++)jQuery(args[i])
[original](this);});};});jQuery.each({removeAttr:function(name)
{jQuery.attr(this,name,"");if(this.nodeType==1)this.removeAttribute(name);},add
Class:function(classNames)
{jQuery.className.add(this,classNames);},removeClass:function(classNames)
{jQuery.className.remove(this,classNames);},toggleClass:function(classNames)
{jQuery.className[jQuery.className.has(this,classNames)?"remove":"add"]
(this,classNames);},remove:function(selector){if(!selector||jQuery.filter(selector,
[this]).r.length){jQuery("*",this).add(this).each(function()
{jQuery.event.remove(this);jQuery.removeData(this);});if(this.parentNode)this.par
entNode.removeChild(this);}},empty:function()
{jQuery(">*",this).remove();while(this.firstChild)this.removeChild(this.firstChild)
;}},function(name,fn){jQuery.fn[name]=function(){return
this.each(fn,arguments);};});jQuery.each(["Height","Width"],function(i,name){var
type=name.toLowerCase();jQuery.fn[type]=function(size){return
this[0]==window?jQuery.browser.opera&&document.body["client"+name]||
jQuery.browser.safari&&window["inner"+name]||
document.compatMode=="CSS1Compat"&&document.documentElement["client"
+name]||document.body["client"+name]:this[0]==document?
53

Math.max(Math.max(document.body["scroll"+name],document.documentElement
["scroll"+name]),Math.max(document.body["offset"+name],document.documentEl
ement["offset"+name])):size==undefined?(this.length?
jQuery.css(this[0],type):null):this.css(type,size.constructor==String?
size:size+"px");};});var
chars=jQuery.browser.safari&&parseInt(jQuery.browser.version)<417?"(?:
[\\w*_-]|\\\\.)":"(?:[\\w\u0128-\uFFFF*_-]|\\\\.)",quickChild=new
RegExp("^>\\s*("+chars+"+)"),quickID=new RegExp("^("+chars+"+)(#)
("+chars+"+)"),quickClass=new RegExp("^([#.]?)
("+chars+"*)");jQuery.extend({expr:{"":function(a,i,m){return m[2]=="*"||
jQuery.nodeName(a,m[2]);},"#":function(a,i,m){return
a.getAttribute("id")==m[2];},":":{lt:function(a,i,m){return i<m[3]0;},gt:function(a,i,m){return i>m[3]-0;},nth:function(a,i,m){return m[3]0==i;},eq:function(a,i,m){return m[3]-0==i;},first:function(a,i){return
i==0;},last:function(a,i,m,r){return i==r.length-1;},even:function(a,i){return i
%2==0;},odd:function(a,i){return i%2;},"first-child":function(a){return
a.parentNode.getElementsByTagName("*")[0]==a;},"last-child":function(a)
{return jQuery.nth(a.parentNode.lastChild,1,"previousSibling")==a;},"onlychild":function(a){return!
jQuery.nth(a.parentNode.lastChild,2,"previousSibling");},parent:function(a){return
a.firstChild;},empty:function(a){return!a.firstChild;},contains:function(a,i,m)
{return(a.textContent||a.innerText||
jQuery(a).text()||"").indexOf(m[3])>=0;},visible:function(a){return"hidden"!
=a.type&&jQuery.css(a,"display")!="none"&&jQuery.css(a,"visibility")!
="hidden";},hidden:function(a){return"hidden"==a.type||
jQuery.css(a,"display")=="none"||
jQuery.css(a,"visibility")=="hidden";},enabled:function(a){return!
a.disabled;},disabled:function(a){return a.disabled;},checked:function(a){return
a.checked;},selected:function(a){return a.selected||
jQuery.attr(a,"selected");},text:function(a)
{return"text"==a.type;},radio:function(a)
{return"radio"==a.type;},checkbox:function(a)
{return"checkbox"==a.type;},file:function(a)
{return"file"==a.type;},password:function(a)
{return"password"==a.type;},submit:function(a)
54

{return"submit"==a.type;},image:function(a)
{return"image"==a.type;},reset:function(a)
{return"reset"==a.type;},button:function(a){return"button"==a.type||
jQuery.nodeName(a,"button");},input:function(a){return/input|select|textarea|
button/i.test(a.nodeName);},has:function(a,i,m){return
jQuery.find(m[3],a).length;},header:function(a)
{return/h\d/i.test(a.nodeName);},animated:function(a){return
jQuery.grep(jQuery.timers,function(fn){return a==fn.elem;}).length;}}},parse:[/^(\
[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/,/^(:)([\w-]+)\("?'?(.*?(\(.*?\))?
[^(]*?)"?'?\)/,new RegExp("^([:.#]*)
("+chars+"+)")],multiFilter:function(expr,elems,not){var
old,cur=[];while(expr&&expr!=old){old=expr;var
f=jQuery.filter(expr,elems,not);expr=f.t.replace(/^\s*,\s*/,"");cur=not?
elems=f.r:jQuery.merge(cur,f.r);}return cur;},find:function(t,context){if(typeof t!
="string")return[t];if(context&&context.nodeType!=1&&context.nodeType!
=9)return[];context=context||document;var
ret=[context],done=[],last,nodeName;while(t&&last!=t){var
r=[];last=t;t=jQuery.trim(t);var foundToken=false;var re=quickChild;var
m=re.exec(t);if(m){nodeName=m[1].toUpperCase();for(var i=0;ret[i];i++)for(var
c=ret[i].firstChild;c;c=c.nextSibling)if(c.nodeType==1&&(nodeName=="*"||
c.nodeName.toUpperCase()==nodeName))r.push(c);ret=r;t=t.replace(re,"");if(t.ind
exOf("
")==0)continue;foundToken=true;}else{re=/^([>+~])\s*(\w*)/i;if((m=re.exec(t))!
=null){r=[];var merge={};nodeName=m[2].toUpperCase();m=m[1];for(var
j=0,rl=ret.length;j<rl;j++){var n=m=="~"||m=="+"?
ret[j].nextSibling:ret[j].firstChild;for(;n;n=n.nextSibling)if(n.nodeType==1){var
id=jQuery.data(n);if(m=="~"&&merge[id])break;if(!nodeName||
n.nodeName.toUpperCase()==nodeName)
{if(m=="~")merge[id]=true;r.push(n);}if(m=="+")break;}}ret=r;t=jQuery.trim(t.re
place(re,""));foundToken=true;}}if(t&&!foundToken){if(!t.indexOf(","))
{if(context==ret[0])ret.shift();done=jQuery.merge(done,ret);r=ret=[context];t="
"+t.substr(1,t.length);}else{var re2=quickID;var m=re2.exec(t);if(m)
{m=[0,m[2],m[3],m[1]];}else{re2=quickClass;m=re2.exec(t);}m[2]=m[2].replace(
/\\/g,"");var elem=ret[ret.length1];if(m[1]=="#"&&elem&&elem.getElementById&&!jQuery.isXMLDoc(elem))
55

{var oid=elem.getElementById(m[2]);if((jQuery.browser.msie||
jQuery.browser.opera)&&oid&&typeof oid.id=="string"&&oid.id!
=m[2])oid=jQuery('[@id="'+m[2]+'"]',elem)[0];ret=r=oid&&(!m[3]||
jQuery.nodeName(oid,m[3]))?[oid]:[];}else{for(var i=0;ret[i];i++){var
tag=m[1]=="#"&&m[3]?m[3]:m[1]!=""||
m[0]==""?"*":m[2];if(tag=="*"&&ret[i].nodeName.toLowerCase()=="object")tag
="param";r=jQuery.merge(r,ret[i].getElementsByTagName(tag));}if(m[1]==".")r=j
Query.classFilter(r,m[2]);if(m[1]=="#"){var tmp=[];for(var i=0;r[i];i+
+)if(r[i].getAttribute("id")==m[2])
{tmp=[r[i]];break;}r=tmp;}ret=r;}t=t.replace(re2,"");}}if(t){var
val=jQuery.filter(t,r);ret=r=val.r;t=jQuery.trim(val.t);}}if(t)ret=[];if(ret&&context=
=ret[0])ret.shift();done=jQuery.merge(done,ret);return
done;},classFilter:function(r,m,not){m=" "+m+" ";var tmp=[];for(var i=0;r[i];i++)
{var pass=(" "+r[i].className+" ").indexOf(m)>=0;if(!not&&pass||not&&!
pass)tmp.push(r[i]);}return tmp;},filter:function(t,r,not){var last;while(t&&t!=last)
{last=t;var p=jQuery.parse,m;for(var i=0;p[i];i++){m=p[i].exec(t);if(m)
{t=t.substring(m[0].length);m[2]=m[2].replace(/\\/g,"");break;}}if(!
m)break;if(m[1]==":"&&m[2]=="not")r=isSimple.test(m[3])?
jQuery.filter(m[3],r,true).r:jQuery(r).not(m[3]);else
if(m[1]==".")r=jQuery.classFilter(r,m[2],not);else if(m[1]=="["){var
tmp=[],type=m[3];for(var i=0,rl=r.length;i<rl;i++){var
a=r[i],z=a[jQuery.props[m[2]]||m[2]];if(z==null||/href|src|
selected/.test(m[2]))z=jQuery.attr(a,m[2])||'';if((type==""&&!!z||
type=="="&&z==m[5]||type=="!="&&z!=m[5]||type=="^="&&z&&!
z.indexOf(m[5])||type=="$="&&z.substr(z.length-m[5].length)==m[5]||
(type=="*="||type=="~=")&&z.indexOf(m[5])>=0)^not)tmp.push(a);}r=tmp;}else
if(m[1]==":"&&m[2]=="nth-child"){var merge={},tmp=[],test=/(-?)(\d*)n((?:\
+|-)?\d*)/.exec(m[3]=="even"&&"2n"||
m[3]=="odd"&&"2n+1"||!/\D/.test(m[3])&&"0n+"+m[3]||m[3]),first=(test[1]+
(test[2]||1))-0,last=test[3]-0;for(var i=0,rl=r.length;i<rl;i++){var
node=r[i],parentNode=node.parentNode,id=jQuery.data(parentNode);if(!
merge[id]){var c=1;for(var
n=parentNode.firstChild;n;n=n.nextSibling)if(n.nodeType==1)n.nodeIndex=c+
+;merge[id]=true;}var add=false;if(first==0)
{if(node.nodeIndex==last)add=true;}else if((node.nodeIndex-last)
56

%first==0&&(node.nodeIndexlast)/first>=0)add=true;if(add^not)tmp.push(node);}r=tmp;}else{var
fn=jQuery.expr[m[1]];if(typeof fn=="object")fn=fn[m[2]];if(typeof
fn=="string")fn=eval("false||function(a,i){return
"+fn+";}");r=jQuery.grep(r,function(elem,i){return
fn(elem,i,m,r);},not);}}return{r:r,t:t};},dir:function(elem,dir){var matched=[];var
cur=elem[dir];while(cur&&cur!=document)
{if(cur.nodeType==1)matched.push(cur);cur=cur[dir];}return
matched;},nth:function(cur,result,dir,elem){result=result||1;var
num=0;for(;cur;cur=cur[dir])if(cur.nodeType==1&&++num==result)break;return
cur;},sibling:function(n,elem){var r=[];for(;n;n=n.nextSibling)
{if(n.nodeType==1&&(!elem||n!=elem))r.push(n);}return
r;}});jQuery.event={add:function(elem,types,handler,data){if(elem.nodeType==3||
elem.nodeType==8)return;if(jQuery.browser.msie&&elem.setInterval!
=undefined)elem=window;if(!handler.guid)handler.guid=this.guid++;if(data!
=undefined){var fn=handler;handler=function(){return
fn.apply(this,arguments);};handler.data=data;handler.guid=fn.guid;}var
events=jQuery.data(elem,"events")||jQuery.data(elem,"events",
{}),handle=jQuery.data(elem,"handle")||jQuery.data(elem,"handle",function(){var
val;if(typeof jQuery=="undefined"||jQuery.event.triggered)return
val;val=jQuery.event.handle.apply(arguments.callee.elem,arguments);return
val;});handle.elem=elem;jQuery.each(types.split(/\s+/),function(index,type){var
parts=type.split(".");type=parts[0];handler.type=parts[1];var
handlers=events[type];if(!handlers){handlers=events[type]={};if(!
jQuery.event.special[type]||jQuery.event.special[type].setup.call(elem)===false)
{if(elem.addEventListener)elem.addEventListener(type,handle,false);else
if(elem.attachEvent)elem.attachEvent("on"+type,handle);}}handlers[handler.guid]
=handler;jQuery.event.global[type]=true;});elem=null;},guid:1,global:
{},remove:function(elem,types,handler){if(elem.nodeType==3||
elem.nodeType==8)return;var
events=jQuery.data(elem,"events"),ret,index;if(events){if(types==undefined||
(typeof types=="string"&&types.charAt(0)=="."))for(var type in
events)this.remove(elem,type+(types||""));else{if(types.type)
{handler=types.handler;types=types.type;}jQuery.each(types.split(/\s+/),function(i
57

ndex,type){var parts=type.split(".");type=parts[0];if(events[type])
{if(handler)delete events[type][handler.guid];else
for(handler in events[type])if(!parts[1]||events[type][handler].type==parts[1])delete
events[type][handler];for(ret in events[type])break;if(!ret){if(!
jQuery.event.special[type]||
jQuery.event.special[type].teardown.call(elem)===false)
{if(elem.removeEventListener)elem.removeEventListener(type,jQuery.data(elem,"
handle"),false);else
if(elem.detachEvent)elem.detachEvent("on"+type,jQuery.data(elem,"handle"));}ret
=null;delete events[type];}}});}for(ret in events)break;if(!ret){var
handle=jQuery.data(elem,"handle");if(handle)handle.elem=null;jQuery.removeDat
a(elem,"events");jQuery.removeData(elem,"handle");}}},trigger:function(type,data
,elem,donative,extra){data=jQuery.makeArray(data||[]);if(type.indexOf("!")>=0)
{type=type.slice(0,-1);var exclusive=true;}if(!elem)
{if(this.global[type])jQuery("*").add([window,document]).trigger(type,data);}else
{if(elem.nodeType==3||elem.nodeType==8)return undefined;var
val,ret,fn=jQuery.isFunction(elem[type]||null),event=!data[0]||!
data[0].preventDefault;if(event)data.unshift(this.fix({type:type,target:elem}));data[
0].type=type;if(exclusive)data[0].exclusive=true;if(jQuery.isFunction(jQuery.data(
elem,"handle")))val=jQuery.data(elem,"handle").apply(elem,data);if(!
fn&&elem["on"+type]&&elem["on"+type].apply(elem,data)===false)val=false;if(
event)data.shift();if(extra&&jQuery.isFunction(extra))
{ret=extra.apply(elem,val==null?data:data.concat(val));if(ret!
==undefined)val=ret;}if(fn&&donative!==false&&val!==false&&!
(jQuery.nodeName(elem,'a')&&type=="click")){this.triggered=true;try{elem[type]
();}catch(e){}}this.triggered=false;}return val;},handle:function(event){var
val;event=jQuery.event.fix(event||window.event||{});var
parts=event.type.split(".");event.type=parts[0];var
handlers=jQuery.data(this,"events")&&jQuery.data(this,"events")
[event.type],args=Array.prototype.slice.call(arguments,1);args.unshift(event);for(v
ar j in handlers){var
handler=handlers[j];args[0].handler=handler;args[0].data=handler.data;if(!
parts[1]&&!event.exclusive||handler.type==parts[1]){var
ret=handler.apply(this,args);if(val!==false)val=ret;if(ret===false)
58

{event.preventDefault();event.stopPropagation();}}}if(jQuery.browser.msie)event.t
arget=event.preventDefault=event.stopPropagation=event.handler=event.data=null
;return val;},fix:function(event){var
originalEvent=event;event=jQuery.extend({},originalEvent);event.preventDefault=
function()
{if(originalEvent.preventDefault)originalEvent.preventDefault();originalEvent.retu
rnValue=false;};event.stopPropagation=function()
{if(originalEvent.stopPropagation)originalEvent.stopPropagation();originalEvent.c
ancelBubble=true;};if(!event.target)event.target=event.srcElement||
document;if(event.target.nodeType==3)event.target=originalEvent.target.parentNo
de;if(!
event.relatedTarget&&event.fromElement)event.relatedTarget=event.fromElement
==event.target?
event.toElement:event.fromElement;if(event.pageX==null&&event.clientX!=null)
{var
doc=document.documentElement,body=document.body;event.pageX=event.client
X+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc.clientLeft||
0);event.pageY=event.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)(doc.clientTop||0);}if(!event.which&&((event.charCode||event.charCode===0)?
event.charCode:event.keyCode))event.which=event.charCode||event.keyCode;if(!
event.metaKey&&event.ctrlKey)event.metaKey=event.ctrlKey;if(!
event.which&&event.button)event.which=(event.button&1?1:(event.button&2?3:
(event.button&4?2:0)));return event;},special:{ready:{setup:function()
{bindReady();return;},teardown:function(){return;}},mouseenter:{setup:function()
{if(jQuery.browser.msie)return
false;jQuery(this).bind("mouseover",jQuery.event.special.mouseenter.handler);retu
rn true;},teardown:function(){if(jQuery.browser.msie)return
false;jQuery(this).unbind("mouseover",jQuery.event.special.mouseenter.handler);r
eturn true;},handler:function(event){if(withinElement(event,this))return
true;arguments[0].type="mouseenter";return
jQuery.event.handle.apply(this,arguments);}},mouseleave:{setup:function()
{if(jQuery.browser.msie)return
false;jQuery(this).bind("mouseout",jQuery.event.special.mouseleave.handler);retur
n true;},teardown:function(){if(jQuery.browser.msie)return
false;jQuery(this).unbind("mouseout",jQuery.event.special.mouseleave.handler);ret
59

urn true;},handler:function(event){if(withinElement(event,this))return
true;arguments[0].type="mouseleave";return
jQuery.event.handle.apply(this,arguments);}}}};jQuery.fn.extend({bind:function(t
ype,data,fn){return type=="unload"?this.one(type,data,fn):this.each(function()
{jQuery.event.add(this,type,fn||data,fn&&data);});},one:function(type,data,fn)
{return this.each(function(){jQuery.event.add(this,type,function(event)
{jQuery(this).unbind(event);return(fn||
data).apply(this,arguments);},fn&&data);});},unbind:function(type,fn){return
this.each(function()
{jQuery.event.remove(this,type,fn);});},trigger:function(type,data,fn){return
this.each(function()
{jQuery.event.trigger(type,data,this,true,fn);});},triggerHandler:function(type,data,
fn){if(this[0])return jQuery.event.trigger(type,data,this[0],false,fn);return
undefined;},toggle:function(){var args=arguments;return this.click(function(event)
{this.lastToggle=0==this.lastToggle?1:0;event.preventDefault();return
args[this.lastToggle].apply(this,arguments)||
false;});},hover:function(fnOver,fnOut){return
this.bind('mouseenter',fnOver).bind('mouseleave',fnOut);},ready:function(fn)
{bindReady();if(jQuery.isReady)fn.call(document,jQuery);else
jQuery.readyList.push(function(){return fn.call(this,jQuery);});return
this;}});jQuery.extend({isReady:false,readyList:[],ready:function(){if(!
jQuery.isReady){jQuery.isReady=true;if(jQuery.readyList)
{jQuery.each(jQuery.readyList,function()
{this.apply(document);});jQuery.readyList=null;}jQuery(document).triggerHandle
r("ready");}}});var readyBound=false;function bindReady()
{if(readyBound)return;readyBound=true;if(document.addEventListener&&!
jQuery.browser.opera)document.addEventListener("DOMContentLoaded",jQuery.r
eady,false);if(jQuery.browser.msie&&window==top)(function()
{if(jQuery.isReady)return;try{document.documentElement.doScroll("left");}catch(
error){setTimeout(arguments.callee,0);return;}jQuery.ready();})
();if(jQuery.browser.opera)document.addEventListener("DOMContentLoaded",fun
ction(){if(jQuery.isReady)return;for(var i=0;i<document.styleSheets.length;i+
+)if(document.styleSheets[i].disabled)
{setTimeout(arguments.callee,0);return;}jQuery.ready();},false);if(jQuery.browser.
60

safari){var numStyles;(function()
{if(jQuery.isReady)return;if(document.readyState!
="loaded"&&document.readyState!="complete")
{setTimeout(arguments.callee,0);return;}if(numStyles===undefined)numStyles=j
Query("style, link[rel=stylesheet]").length;if(document.styleSheets.length!
=numStyles){setTimeout(arguments.callee,0);return;}jQuery.ready();})
();}jQuery.event.add(window,"load",jQuery.ready);}jQuery.each(("blur,focus,load,
resize,scroll,unload,click,dblclick,"+"mousedown,mouseup,mousemove,mouseove
r,mouseout,change,select,"+"submit,keydown,keypress,keyup,error").split(","),func
tion(i,name){jQuery.fn[name]=function(fn){return fn?
this.bind(name,fn):this.trigger(name);};});var withinElement=function(event,elem)
{var parent=event.relatedTarget;while(parent&&parent!
=elem)try{parent=parent.parentNode;}catch(error){parent=elem;}return
parent==elem;};jQuery(window).bind("unload",function()
{jQuery("*").add(document).unbind();});jQuery.fn.extend({load:function(url,para
ms,callback){if(jQuery.isFunction(url))return this.bind("load",url);var
off=url.indexOf(" ");if(off>=0){var
selector=url.slice(off,url.length);url=url.slice(0,off);}callback=callback||function()
{};var type="GET";if(params)if(jQuery.isFunction(params))
{callback=params;params=null;}else{params=jQuery.param(params);type="POST
";}var
self=this;jQuery.ajax({url:url,type:type,dataType:"html",data:params,complete:fun
ction(res,status){if(status=="success"||status=="notmodified")self.html(selector?
jQuery("<div/>").append(res.responseText.replace(/<script(.|\s)*?\/script>/g,"")).fi
nd(selector):res.responseText);self.each(callback,
[res.responseText,status,res]);}});return this;},serialize:function(){return
jQuery.param(this.serializeArray());},serializeArray:function(){return
this.map(function(){return jQuery.nodeName(this,"form")?
jQuery.makeArray(this.elements):this;}).filter(function(){return this.name&&!
this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|
password/i.test(this.type));}).map(function(i,elem){var
val=jQuery(this).val();return val==null?null:val.constructor==Array?
jQuery.map(val,function(val,i){return{name:elem.name,value:val};}):
{name:elem.name,value:val};}).get();}});jQuery.each("ajaxStart,ajaxStop,ajaxCo
mplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(i,o)
61

{jQuery.fn[o]=function(f){return this.bind(o,f);};});var jsc=(new


Date).getTime();jQuery.extend({get:function(url,data,callback,type)
{if(jQuery.isFunction(data)){callback=data;data=null;}return
jQuery.ajax({type:"GET",url:url,data:data,success:callback,dataType:type});},getS
cript:function(url,callback){return
jQuery.get(url,null,callback,"script");},getJSON:function(url,data,callback){return
jQuery.get(url,data,callback,"json");},post:function(url,data,callback,type)
{if(jQuery.isFunction(data)){callback=data;data={};}return
jQuery.ajax({type:"POST",url:url,data:data,success:callback,dataType:type});},aja
xSetup:function(settings)
{jQuery.extend(jQuery.ajaxSettings,settings);},ajaxSettings:
{global:true,type:"GET",timeout:0,contentType:"application/x-www-formurlencoded",processData:true,async:true,data:null,username:null,password:null,acc
epts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript,
application/javascript",json:"application/json,
text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(s)
{var jsonp,jsre=/=\?(&|$)/g,status,data;s=jQuery.extend(true,s,jQuery.extend(true,
{},jQuery.ajaxSettings,s));if(s.data&&s.processData&&typeof s.data!
="string")s.data=jQuery.param(s.data);if(s.dataType=="jsonp")
{if(s.type.toLowerCase()=="get"){if(!
s.url.match(jsre))s.url+=(s.url.match(/\?/)?"&":"?")+(s.jsonp||"callback")
+"=?";}else if(!s.data||!s.data.match(jsre))s.data=(s.data?s.data+"&":"")+
(s.jsonp||"callback")
+"=?";s.dataType="json";}if(s.dataType=="json"&&(s.data&&s.data.match(jsre)||
s.url.match(jsre))){jsonp="jsonp"+jsc+
+;if(s.data)s.data=(s.data+"").replace(jsre,"="+jsonp+"$1");s.url=s.url.replace(jsre,
"="+jsonp+"$1");s.dataType="script";window[jsonp]=function(tmp)
{data=tmp;success();complete();window[jsonp]=undefined;try{delete
window[jsonp];}catch(e)
{}if(head)head.removeChild(script);};}if(s.dataType=="script"&&s.cache==null)s.
cache=false;if(s.cache===false&&s.type.toLowerCase()=="get"){var ts=(new
Date()).getTime();var ret=s.url.replace(/(\?|&)_=.*?(&|
$)/,"$1_="+ts+"$2");s.url=ret+((ret==s.url)?(s.url.match(/\?/)?"&":"?")
+"_="+ts:"");}if(s.data&&s.type.toLowerCase()=="get")
{s.url+=(s.url.match(/\?/)?"&":"?")+s.data;s.data=null;}if(s.global&&!
62

jQuery.active++)jQuery.event.trigger("ajaxStart");if((!s.url.indexOf("http")||!
s.url.indexOf("//"))&&s.dataType=="script"&&s.type.toLowerCase()=="get"){var
head=document.getElementsByTagName("head")[0];var
script=document.createElement("script");script.src=s.url;if(s.scriptCharset)script.c
harset=s.scriptCharset;if(!jsonp){var
done=false;script.onload=script.onreadystatechange=function(){if(!done&&(!
this.readyState||this.readyState=="loaded"||this.readyState=="complete"))
{done=true;success();complete();head.removeChild(script);}};}head.appendChild(
script);return undefined;}var requestDone=false;var xml=window.ActiveXObject?
new ActiveXObject("Microsoft.XMLHTTP"):new
XMLHttpRequest();xml.open(s.type,s.url,s.async,s.username,s.password);try{if(s.
data)xml.setRequestHeader("ContentType",s.contentType);if(s.ifModified)xml.setRequestHeader("If-ModifiedSince",jQuery.lastModified[s.url]||"Thu, 01 Jan 1970 00:00:00
GMT");xml.setRequestHeader("X-RequestedWith","XMLHttpRequest");xml.setRequestHeader("Accept",s.dataType&&s.accep
ts[s.dataType]?s.accepts[s.dataType]+", */*":s.accepts._default);}catch(e)
{}if(s.beforeSend)s.beforeSend(xml);if(s.global)jQuery.event.trigger("ajaxSend",
[xml,s]);var onreadystatechange=function(isTimeout){if(!
requestDone&&xml&&(xml.readyState==4||isTimeout=="timeout"))
{requestDone=true;if(ival)
{clearInterval(ival);ival=null;}status=isTimeout=="timeout"&&"timeout"||!
jQuery.httpSuccess(xml)&&"error"||
s.ifModified&&jQuery.httpNotModified(xml,s.url)&&"notmodified"||"success";if(
status=="success"){try{data=jQuery.httpData(xml,s.dataType);}catch(e)
{status="parsererror";}}if(status=="success"){var
modRes;try{modRes=xml.getResponseHeader("Last-Modified");}catch(e)
{}if(s.ifModified&&modRes)jQuery.lastModified[s.url]=modRes;if(!
jsonp)success();}else
jQuery.handleError(s,xml,status);complete();if(s.async)xml=null;}};if(s.async){var
ival=setInterval(onreadystatechange,13);if(s.timeout>0)setTimeout(function()
{if(xml){xml.abort();if(!
requestDone)onreadystatechange("timeout");}},s.timeout);}try{xml.send(s.data);}
catch(e){jQuery.handleError(s,xml,null,e);}if(!
63

s.async)onreadystatechange();function success()
{if(s.success)s.success(data,status);if(s.global)jQuery.event.trigger("ajaxSuccess",
[xml,s]);}function complete()
{if(s.complete)s.complete(xml,status);if(s.global)jQuery.event.trigger("ajaxCompl
ete",[xml,s]);if(s.global&&!-jQuery.active)jQuery.event.trigger("ajaxStop");}return
xml;},handleError:function(s,xml,status,e)
{if(s.error)s.error(xml,status,e);if(s.global)jQuery.event.trigger("ajaxError",
[xml,s,e]);},active:0,httpSuccess:function(r){try{return!
r.status&&location.protocol=="file:"||(r.status>=200&&r.status<300)||
r.status==304||r.status==1223||
jQuery.browser.safari&&r.status==undefined;}catch(e){}return
false;},httpNotModified:function(xml,url){try{var
xmlRes=xml.getResponseHeader("Last-Modified");return xml.status==304||
xmlRes==jQuery.lastModified[url]||
jQuery.browser.safari&&xml.status==undefined;}catch(e){}return
false;},httpData:function(r,type){var ct=r.getResponseHeader("content-type");var
xml=type=="xml"||!type&&ct&&ct.indexOf("xml")>=0;var data=xml?
r.responseXML:r.responseText;if(xml&&data.documentElement.tagName=="parse
rerror")throw"parsererror";if(type=="script")jQuery.globalEval(data);if(type=="jso
n")data=eval("("+data+")");return data;},param:function(a){var
s=[];if(a.constructor==Array||a.jquery)jQuery.each(a,function()
{s.push(encodeURIComponent(this.name)
+"="+encodeURIComponent(this.value));});else
for(var j in a)if(a[j]&&a[j].constructor==Array)jQuery.each(a[j],function()
{s.push(encodeURIComponent(j)+"="+encodeURIComponent(this));});else
s.push(encodeURIComponent(j)+"="+encodeURIComponent(a[j]));return
s.join("&").replace(/
%20/g,"+");}});jQuery.fn.extend({show:function(speed,callback){return speed?
this.animate({height:"show",width:"show",opacity:"show"},speed,callback):this.fil
ter(":hidden").each(function()
{this.style.display=this.oldblock||"";if(jQuery.css(this,"display")=="none"){var
elem=jQuery("<"+this.tagName+"
/>").appendTo("body");this.style.display=elem.css("display");if(this.style.display=
64

="none")this.style.display="block";elem.remove();}}).end();},hide:function(speed,
callback){return speed?
this.animate({height:"hide",width:"hide",opacity:"hide"},speed,callback):this.filter
(":visible").each(function(){this.oldblock=this.oldblock||
jQuery.css(this,"display");this.style.display="none";}).end();},_toggle:jQuery.fn.to
ggle,toggle:function(fn,fn2){return
jQuery.isFunction(fn)&&jQuery.isFunction(fn2)?this._toggle(fn,fn2):fn?
this.animate({height:"toggle",width:"toggle",opacity:"toggle"},fn,fn2):this.each(fu
nction(){jQuery(this)[jQuery(this).is(":hidden")?"show":"hide"]
();});},slideDown:function(speed,callback){return
this.animate({height:"show"},speed,callback);},slideUp:function(speed,callback)
{return
this.animate({height:"hide"},speed,callback);},slideToggle:function(speed,callback
){return
this.animate({height:"toggle"},speed,callback);},fadeIn:function(speed,callback)
{return
this.animate({opacity:"show"},speed,callback);},fadeOut:function(speed,callback)
{return
this.animate({opacity:"hide"},speed,callback);},fadeTo:function(speed,to,callback)
{return
this.animate({opacity:to},speed,callback);},animate:function(prop,speed,easing,cal
lback){var optall=jQuery.speed(speed,easing,callback);return
this[optall.queue===false?"each":"queue"](function(){if(this.nodeType!=1)return
false;var opt=jQuery.extend({},optall);var
hidden=jQuery(this).is(":hidden"),self=this;for(var p in prop)
{if(prop[p]=="hide"&&hidden||prop[p]=="show"&&!hidden)return
jQuery.isFunction(opt.complete)&&opt.complete.apply(this);if(p=="height"||
p=="width")
{opt.display=jQuery.css(this,"display");opt.overflow=this.style.overflow;}}if(opt.o
verflow!
=null)this.style.overflow="hidden";opt.curAnim=jQuery.extend({},prop);jQuery.ea
ch(prop,function(name,val){var e=new jQuery.fx(self,opt,name);if(/toggle|show|
hide/.test(val))e[val=="toggle"?hidden?"show":"hide":val](prop);else{var
parts=val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),start=e.cur(true)||0;if(parts)
{var end=parseFloat(parts[2]),unit=parts[3]||"px";if(unit!="px")
65

{self.style[name]=(end||1)+unit;start=((end||
1)/e.cur(true))*start;self.style[name]=start+unit;}if(parts[1])end=((parts[1]=="="?-1:1)*end)+start;e.custom(start,end,unit);}else
e.custom(start,val,"");}});return true;});},queue:function(type,fn)
{if(jQuery.isFunction(type)||(type&&type.constructor==Array))
{fn=type;type="fx";}if(!type||(typeof type=="string"&&!fn))return
queue(this[0],type);return this.each(function()
{if(fn.constructor==Array)queue(this,type,fn);else{queue(this,type).push(fn);if(qu
eue(this,type).length==1)fn.apply(this);}});},stop:function(clearQueue,gotoEnd)
{var timers=jQuery.timers;if(clearQueue)this.queue([]);this.each(function()
{for(var i=timers.length-1;i>=0;i--)if(timers[i].elem==this){if(gotoEnd)timers[i]
(true);timers.splice(i,1);}});if(!gotoEnd)this.dequeue();return this;}});var
queue=function(elem,type,array){if(!elem)return undefined;type=type||"fx";var
q=jQuery.data(elem,type+"queue");if(!q||
array)q=jQuery.data(elem,type+"queue",array?jQuery.makeArray(array):[]);return
q;};jQuery.fn.dequeue=function(type){type=type||"fx";return this.each(function()
{var
q=queue(this,type);q.shift();if(q.length)q[0].apply(this);});};jQuery.extend({speed:
function(speed,easing,fn){var opt=speed&&speed.constructor==Object?speed:
{complete:fn||!fn&&easing||
jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||
easing&&easing.constructor!
=Function&&easing};opt.duration=(opt.duration&&opt.duration.constructor==Nu
mber?opt.duration:{slow:600,fast:200}[opt.duration])||
400;opt.old=opt.complete;opt.complete=function(){if(opt.queue!
==false)jQuery(this).dequeue();if(jQuery.isFunction(opt.old))opt.old.apply(this);};
return opt;},easing:{linear:function(p,n,firstNum,diff){return
firstNum+diff*p;},swing:function(p,n,firstNum,diff){return((Math.cos(p*Math.PI)/2)+0.5)*diff+firstNum;}},timers:
[],timerId:null,fx:function(elem,options,prop)
{this.options=options;this.elem=elem;this.prop=prop;if(!
options.orig)options.orig={};}});jQuery.fx.prototype={update:function()
{if(this.options.step)this.options.step.apply(this.elem,[this.now,this]);
(jQuery.fx.step[this.prop]||jQuery.fx.step._default)(this);if(this.prop=="height"||
66

this.prop=="width")this.elem.style.display="block";},cur:function(force)
{if(this.elem[this.prop]!=null&&this.elem.style[this.prop]==null)return
this.elem[this.prop];var r=parseFloat(jQuery.css(this.elem,this.prop,force));return
r&&r>-10000?r:parseFloat(jQuery.curCSS(this.elem,this.prop))||
0;},custom:function(from,to,unit){this.startTime=(new
Date()).getTime();this.start=from;this.end=to;this.unit=unit||
this.unit||"px";this.now=this.start;this.pos=this.state=0;this.update();var
self=this;function t(gotoEnd){return
self.step(gotoEnd);}t.elem=this.elem;jQuery.timers.push(t);if(jQuery.timerId==null
){jQuery.timerId=setInterval(function(){var timers=jQuery.timers;for(var
i=0;i<timers.length;i++)if(!timers[i]())timers.splice(i--,1);if(!timers.length)
{clearInterval(jQuery.timerId);jQuery.timerId=null;}},13);}},show:function()
{this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);this.options.sho
w=true;this.custom(0,this.cur());if(this.prop=="width"||
this.prop=="height")this.elem.style[this.prop]="1px";jQuery(this.elem).show();},hi
de:function()
{this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);this.options.hide
=true;this.custom(this.cur(),0);},step:function(gotoEnd){var t=(new
Date()).getTime();if(gotoEnd||t>this.options.duration+this.startTime)
{this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.pr
op]=true;var done=true;for(var i in
this.options.curAnim)if(this.options.curAnim[i]!==true)done=false;if(done)
{if(this.options.display!=null)
{this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.option
s.display;if(jQuery.css(this.elem,"display")=="none")this.elem.style.display="bloc
k";}if(this.options.hide)this.elem.style.display="none";if(this.options.hide||
this.options.show)for(var p in
this.options.curAnim)jQuery.attr(this.elem.style,p,this.options.orig[p]);}if(done&&
jQuery.isFunction(this.options.complete))this.options.complete.apply(this.elem);ret
urn false;}else{var n=tthis.startTime;this.state=n/this.options.duration;this.pos=jQuery.easing[this.options
.easing||(jQuery.easing.swing?"swing":"linear")]
(this.state,n,0,1,this.options.duration);this.now=this.start+((this.endthis.start)*this.pos);this.update();}return
true;}};jQuery.fx.step={scrollLeft:function(fx)
67

{fx.elem.scrollLeft=fx.now;},scrollTop:function(fx)
{fx.elem.scrollTop=fx.now;},opacity:function(fx)
{jQuery.attr(fx.elem.style,"opacity",fx.now);},_default:function(fx)
{fx.elem.style[fx.prop]=fx.now+fx.unit;}};jQuery.fn.offset=function(){var
left=0,top=0,elem=this[0],results;if(elem)with(jQuery.browser){var
parent=elem.parentNode,offsetChild=elem,offsetParent=elem.offsetParent,doc=ele
m.ownerDocument,safari2=safari&&parseInt(version)<522&&!/adobeair/i.test(use
rAgent),fixed=jQuery.css(elem,"position")=="fixed";if(elem.getBoundingClientRe
ct){var
box=elem.getBoundingClientRect();add(box.left+Math.max(doc.documentElemen
t.scrollLeft,doc.body.scrollLeft),box.top+Math.max(doc.documentElement.scrollT
op,doc.body.scrollTop));add(-doc.documentElement.clientLeft,doc.documentElement.clientTop);}else{add(elem.offsetLeft,elem.offsetTop);while(
offsetParent)
{add(offsetParent.offsetLeft,offsetParent.offsetTop);if(mozilla&&!/^t(able|d|h)
$/i.test(offsetParent.tagName)||safari&&!safari2)border(offsetParent);if(!
fixed&&jQuery.css(offsetParent,"position")=="fixed")fixed=true;offsetChild=/^bo
dy$/i.test(offsetParent.tagName)?
offsetChild:offsetParent;offsetParent=offsetParent.offsetParent;}while(parent&&pa
rent.tagName&&!/^body|html$/i.test(parent.tagName)){if(!/^inline|
table.*$/i.test(jQuery.css(parent,"display")))add(-parent.scrollLeft,parent.scrollTop);if(mozilla&&jQuery.css(parent,"overflow")!
="visible")border(parent);parent=parent.parentNode;}if((safari2&&(fixed||
jQuery.css(offsetChild,"position")=="absolute"))||
(mozilla&&jQuery.css(offsetChild,"position")!="absolute"))add(doc.body.offsetLeft,doc.body.offsetTop);if(fixed)add(Math.max(doc.documentElement.scrollLeft,doc.b
ody.scrollLeft),Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));}r
esults={top:top,left:left};}function border(elem)
{add(jQuery.curCSS(elem,"borderLeftWidth",true),jQuery.curCSS(elem,"borderTo
pWidth",true));}function add(l,t){left+=parseInt(l)||0;top+=parseInt(t)||0;}return
results;};})();
/**
* jQuery lightBox plugin
68

* This jQuery plugin was inspired and based on Lightbox 2 by Lokesh Dhakar
(http://www.huddletogether.com/projects/lightbox2/)
* and adapted to me for use like a plugin from jQuery.
* @name jquery-lightbox-0.5.js
* @author Leandro Vieira Pinho - http://leandrovieira.com
* @version 0.5
* @date April 11, 2008
* @category jQuery plugin
* @copyright (c) 2008 Leandro Vieira Pinho (leandrovieira.com)
* @license CCAttribution-ShareAlike 2.5 Brazil http://creativecommons.org/licenses/by-sa/2.5/br/deed.en_US
* @example Visit http://leandrovieira.com/projects/jquery/lightbox/ for more
informations about this jQuery plugin
*/

// Offering a Custom Alias suport - More info:


http://docs.jquery.com/Plugins/Authoring#Custom_Alias
(function($) {
/**
* $ is an alias to jQuery object
*
*/
$.fn.lightBox = function(settings) {
// Settings to configure the jQuery lightBox plugin how you like
69

settings = jQuery.extend({
// Configuration related to overlay
overlayBgColor:
'#000',
// (string)
Background color to overlay; inform a hexadecimal value like: #RRGGBB. Where
RR, GG, and BB are the hexadecimal values for the red, green, and blue values of
the color.
overlayOpacity:
0.8,
// (integer) Opacity
value to overlay; inform: 0.X. Where X are number from 0 to 9
// Configuration related to navigation
fixedNavigation:
false,
// (boolean) Boolean that
informs if the navigation (next and prev button) will be fixed or not in the
interface.
// Configuration related to images
loading.gif',

imageLoading:
'images/lightbox-ico// (string) Path and the name of the loading icon
imageBtnPrev:
'images/lightbox-btn-prev.gif',
// (string) Path and the name of the prev button image
imageBtnNext:
'images/lightbox-btn-next.gif',
// (string) Path and the name of the next button image
imageBtnClose:
'images/lightbox-btn-close.gif',
// (string) Path and the name of the close btn
imageBlank:
'images/lightbox-blank.gif',
// (string) Path and the name of a blank image (one pixel)
// Configuration related to container image box

containerBorderSize:
10,
// (integer) If you
adjust the padding in the CSS for the container, #lightbox-container-image-box,
you will need to update this value
70

containerResizeSpeed: 400,
// (integer) Specify the
resize duration of container image. These number are miliseconds. 400 is default.
// Configuration related to texts in caption. For example: Image
2 of 8. You can alter either "Image" and "of" texts.
txtImage:

'Image',

// (string) Specify

txtOf:

'of',

// (string) Specify

text "Image"
text "of"
// Configuration related to keyboard navigation
keyToClose:
'c',
// (string) (c =
close) Letter to close the jQuery lightBox interface. Beyond this letter, the letter X
and the SCAPE key is used to.
keyToPrev:
previous) Letter to show the previous image

'p',

// (string) (p =

keyToNext:
next) Letter to show the next image.

'n',

// (string) (n =

// Dont alter these variables in any way


imageArray:

[],

activeImage:

},settings);
// Caching the jQuery object with all elements matched
var jQueryMatchedObj = this; // This, in this context, refer to jQuery
object
/**
* Initializing the plugin calling the start function
*
71

* @return boolean false


*/
function _initialize() {
_start(this,jQueryMatchedObj); // This, in this context, refer to
object (link) which the user have clicked
return false; // Avoid the browser following the link
}
/**
* Start the jQuery lightBox plugin
*
* @param object objClicked The object (link) whick the user have
clicked
* @param object jQueryMatchedObj The jQuery object with all
elements matched
*/
function _start(objClicked,jQueryMatchedObj) {
// Hime some elements to avoid conflict with overlay in IE.
These elements appear above the overlay.
$('embed, object, select').css({ 'visibility' : 'hidden' });
// Call the function to create the markup structure; style some
elements; assign events in some elements.
_set_interface();
// Unset total images in imageArray
settings.imageArray.length = 0;

72

// Unset image active information


settings.activeImage = 0;
// We have an image set? Or just an image? Lets see it.
if ( jQueryMatchedObj.length == 1 ) {
settings.imageArray.push(new
Array(objClicked.getAttribute('href'),objClicked.getAttribute('title')));
} else {
// Add an Array (as many as we have), with href and title
atributes, inside the Array that storage the images references
for ( var i = 0; i < jQueryMatchedObj.length; i++ ) {
settings.imageArray.push(new
Array(jQueryMatchedObj[i].getAttribute('href'),jQueryMatchedObj[i].getAttribute
('title')));
}
}
while ( settings.imageArray[settings.activeImage][0] !=
objClicked.getAttribute('href') ) {
settings.activeImage++;
}
// Call the function that prepares image exibition
_set_image_to_view();
}
/**
* Create the jQuery lightBox plugin interface

73

*
* The HTML markup will be like that:
<div id="jquery-overlay"></div>
<div id="jquery-lightbox">
<div id="lightbox-container-image-box">
<div id="lightbox-container-image">
<img src="../fotos/XX.jpg" id="lightboximage">
<div id="lightbox-nav">
<a href="#" id="lightbox-navbtnPrev"></a>
<a href="#" id="lightbox-navbtnNext"></a>
</div>
<div id="lightbox-loading">
<a href="#" id="lightbox-loadinglink">
<img src="../images/lightboxico-loading.gif">
</a>
</div>
</div>
</div>
<div id="lightbox-container-image-data-box">

74

<div id="lightbox-container-image-data">
<div id="lightbox-image-details">
<span id="lightbox-image-detailscaption"></span>
<span id="lightbox-image-detailscurrentNumber"></span>
</div>
<div id="lightbox-secNav">
<a href="#" id="lightbox-secNavbtnClose">
<img src="../images/lightboxbtn-close.gif">
</a>
</div>
</div>
</div>
</div>
*
*/
function _set_interface() {
// Apply the HTML markup into body tag
$('body').append('<div id="jquery-overlay"></div><div
id="jquery-lightbox"><div id="lightbox-container-image-box"><div id="lightboxcontainer-image"><img id="lightbox-image"><div style="" id="lightbox-nav"><a
href="#" id="lightbox-nav-btnPrev"></a><a href="#" id="lightbox-nav75

btnNext"></a></div><div id="lightbox-loading"><a href="#" id="lightboxloading-link"><img src="' + settings.imageLoading +


'"></a></div></div></div><div id="lightbox-container-image-data-box"><div
id="lightbox-container-image-data"><div id="lightbox-image-details"><span
id="lightbox-image-details-caption"></span><span id="lightbox-image-detailscurrentNumber"></span></div><div id="lightbox-secNav"><a href="#"
id="lightbox-secNav-btnClose"><img src="' + settings.imageBtnClose +
'"></a></div></div></div></div>');
// Get page sizes
var arrPageSizes = ___getPageSize();
// Style overlay and show it
$('#jquery-overlay').css({
backgroundColor: settings.overlayBgColor,
opacity:

settings.overlayOpacity,

width:

arrPageSizes[0],

height:

arrPageSizes[1]

}).fadeIn();
// Get page scroll
var arrPageScroll = ___getPageScroll();
// Calculate top and left offset for the jquery-lightbox div object
and show it
$('#jquery-lightbox').css({
top:

arrPageScroll[1] + (arrPageSizes[3] / 10),

left: arrPageScroll[0]
}).show();

76

// Assigning click events in elements to close overlay


$('#jquery-overlay,#jquery-lightbox').click(function() {
_finish();
});
// Assign the _finish function to lightbox-loading-link and
lightbox-secNav-btnClose objects
$('#lightbox-loading-link,#lightbox-secNavbtnClose').click(function() {
_finish();
return false;
});
// If window was resized, calculate the new overlay dimensions
$(window).resize(function() {
// Get page sizes
var arrPageSizes = ___getPageSize();
// Style overlay and show it
$('#jquery-overlay').css({
width:
height:

arrPageSizes[0],
arrPageSizes[1]

});
// Get page scroll
var arrPageScroll = ___getPageScroll();

77

// Calculate top and left offset for the jquery-lightbox div


object and show it
$('#jquery-lightbox').css({
top:

arrPageScroll[1] + (arrPageSizes[3] / 10),

left: arrPageScroll[0]
});
});
}
/**
* Prepares image exibition; doing a images preloader to calculate its
size
*
*/
function _set_image_to_view() { // show the loading
// Show the loading
$('#lightbox-loading').show();
if ( settings.fixedNavigation ) {
$('#lightbox-image,#lightbox-container-image-databox,#lightbox-image-details-currentNumber').hide();
} else {
// Hide some elements
$('#lightbox-image,#lightbox-nav,#lightbox-navbtnPrev,#lightbox-nav-btnNext,#lightbox-container-image-data-box,#lightboximage-details-currentNumber').hide();

78

}
// Image preload process
var objImagePreloader = new Image();
objImagePreloader.onload = function() {
$('#lightboximage').attr('src',settings.imageArray[settings.activeImage][0]);
// Perfomance an effect in the image container resizing it

_resize_container_image_box(objImagePreloader.width,objImagePreloader.height)
;
//

clear onLoad, IE behaves irratically with animated

gifs otherwise
objImagePreloader.onload=function(){};
};
objImagePreloader.src =
settings.imageArray[settings.activeImage][0];
};
/**
* Perfomance an effect in the image container resizing it
*
* @param integer intImageWidth The images width that will be
showed
* @param integer intImageHeight The images height that will be
showed
*/
79

function
_resize_container_image_box(intImageWidth,intImageHeight) {
// Get current width and height
var intCurrentWidth = $('#lightbox-container-imagebox').width();
var intCurrentHeight = $('#lightbox-container-imagebox').height();
// Get the width and height of the selected image plus the
padding
var intWidth = (intImageWidth + (settings.containerBorderSize
* 2)); // Plus the images width and the left and right padding value
var intHeight = (intImageHeight +
(settings.containerBorderSize * 2)); // Plus the images height and the left and right
padding value
// Diferences
var intDiffW = intCurrentWidth - intWidth;
var intDiffH = intCurrentHeight - intHeight;
// Perfomance the effect
$('#lightbox-container-image-box').animate({ width: intWidth,
height: intHeight },settings.containerResizeSpeed,function() { _show_image(); });
if ( ( intDiffW == 0 ) && ( intDiffH == 0 ) ) {
if ( $.browser.msie ) {
___pause(250);
} else {
___pause(100);

80

}
}
$('#lightbox-container-image-data-box').css({ width:
intImageWidth });
$('#lightbox-nav-btnPrev,#lightbox-nav-btnNext').css({ height:
intImageHeight + (settings.containerBorderSize * 2) });
};
/**
* Show the prepared image
*
*/
function _show_image() {
$('#lightbox-loading').hide();
$('#lightbox-image').fadeIn(function() {
_show_image_data();
_set_navigation();
});
_preload_neighbor_images();
};
/**
* Show the image information
*
*/

81

function _show_image_data() {
$('#lightbox-container-image-data-box').slideDown('fast');
$('#lightbox-image-details-caption').hide();
if ( settings.imageArray[settings.activeImage][1] ) {
$('#lightbox-image-detailscaption').html(settings.imageArray[settings.activeImage][1]).show();
}
// If we have a image set, display 'Image X of X'
if ( settings.imageArray.length > 1 ) {
$('#lightbox-image-detailscurrentNumber').html(settings.txtImage + ' ' + ( settings.activeImage + 1 ) + ' ' +
settings.txtOf + ' ' + settings.imageArray.length).show();
}
}
/**
* Display the button navigations
*
*/
function _set_navigation() {
$('#lightbox-nav').show();

// Instead to define this configuration in CSS file, we define


here. And its need to IE. Just.

82

$('#lightbox-nav-btnPrev,#lightbox-navbtnNext').css({ 'background' : 'transparent url(' + settings.imageBlank + ') norepeat' });

// Show the prev button, if not the first image in set


if ( settings.activeImage != 0 ) {
if ( settings.fixedNavigation ) {
$('#lightbox-nav-btnPrev').css({ 'background' :
'url(' + settings.imageBtnPrev + ') left 15% no-repeat' })
.unbind()
.bind('click',function() {
settings.activeImage =
settings.activeImage - 1;
_set_image_to_view();
return false;
});
} else {
// Show the images button for Next buttons
$('#lightbox-navbtnPrev').unbind().hover(function() {
$(this).css({ 'background' : 'url(' +
settings.imageBtnPrev + ') left 15% no-repeat' });
},function() {
$(this).css({ 'background' : 'transparent url('
+ settings.imageBlank + ') no-repeat' });
83

}).show().bind('click',function() {
settings.activeImage = settings.activeImage
- 1;
_set_image_to_view();
return false;
});
}
}

// Show the next button, if not the last image in set


if ( settings.activeImage != ( settings.imageArray.length -1 ) ) {
if ( settings.fixedNavigation ) {
$('#lightbox-nav-btnNext').css({ 'background' :
'url(' + settings.imageBtnNext + ') right 15% no-repeat' })
.unbind()
.bind('click',function() {
settings.activeImage =
settings.activeImage + 1;
_set_image_to_view();
return false;
});
} else {
// Show the images button for Next buttons

84

$('#lightbox-navbtnNext').unbind().hover(function() {
$(this).css({ 'background' : 'url(' +
settings.imageBtnNext + ') right 15% no-repeat' });
},function() {
$(this).css({ 'background' : 'transparent url('
+ settings.imageBlank + ') no-repeat' });
}).show().bind('click',function() {
settings.activeImage = settings.activeImage
+ 1;
_set_image_to_view();
return false;
});
}
}
// Enable keyboard navigation
_enable_keyboard_navigation();
}
/**
* Enable a support to keyboard navigation
*
*/
function _enable_keyboard_navigation() {
$(document).keydown(function(objEvent) {
85

_keyboard_action(objEvent);
});
}
/**
* Disable the support to keyboard navigation
*
*/
function _disable_keyboard_navigation() {
$(document).unbind();
}
/**
* Perform the keyboard actions
*
*/
function _keyboard_action(objEvent) {
// To ie
if ( objEvent == null ) {
keycode = event.keyCode;
escapeKey = 27;
// To Mozilla
} else {
keycode = objEvent.keyCode;
escapeKey = objEvent.DOM_VK_ESCAPE;
86

}
// Get the key in lower case form
key = String.fromCharCode(keycode).toLowerCase();
// Verify the keys to close the ligthBox
if ( ( key == settings.keyToClose ) || ( key == 'x' ) || ( keycode
== escapeKey ) ) {
_finish();
}
// Verify the key to show the previous image
if ( ( key == settings.keyToPrev ) || ( keycode == 37 ) ) {
// If were not showing the first image, call the previous
if ( settings.activeImage != 0 ) {
settings.activeImage = settings.activeImage - 1;
_set_image_to_view();
_disable_keyboard_navigation();
}
}
// Verify the key to show the next image
if ( ( key == settings.keyToNext ) || ( keycode == 39 ) ) {
// If were not showing the last image, call the next
if ( settings.activeImage != ( settings.imageArray.length 1)){
settings.activeImage = settings.activeImage + 1;

87

_set_image_to_view();
_disable_keyboard_navigation();
}
}
}
/**
* Preload prev and next images being showed
*
*/
function _preload_neighbor_images() {
if ( (settings.imageArray.length -1) > settings.activeImage ) {
objNext = new Image();
objNext.src = settings.imageArray[settings.activeImage +
1][0];
}
if ( settings.activeImage > 0 ) {
objPrev = new Image();
objPrev.src = settings.imageArray[settings.activeImage
-1][0];
}
}
/**
* Remove jQuery lightBox plugin HTML markup

88

*
*/
function _finish() {
$('#jquery-lightbox').remove();
$('#jquery-overlay').fadeOut(function() { $('#jqueryoverlay').remove(); });
// Show some elements to avoid conflict with overlay in IE.
These elements appear above the overlay.
$('embed, object, select').css({ 'visibility' : 'visible' });
}
/**
/ THIRD FUNCTION
* getPageSize() by quirksmode.com
*
* @return Array Return an array with page width, height and window
width, height
*/
function ___getPageSize() {
var xScroll, yScroll;
if (window.innerHeight && window.scrollMaxY) {
xScroll = window.innerWidth + window.scrollMaxX;
yScroll = window.innerHeight + window.scrollMaxY;
} else if (document.body.scrollHeight >
document.body.offsetHeight){ // all but Explorer Mac
89

xScroll = document.body.scrollWidth;
yScroll = document.body.scrollHeight;
} else { // Explorer Mac...would also work in Explorer 6 Strict,
Mozilla and Safari
xScroll = document.body.offsetWidth;
yScroll = document.body.offsetHeight;
}
var windowWidth, windowHeight;
if (self.innerHeight) {

// all except Explorer

if(document.documentElement.clientWidth){
windowWidth =
document.documentElement.clientWidth;
} else {
windowWidth = self.innerWidth;
}
windowHeight = self.innerHeight;
} else if (document.documentElement &&
document.documentElement.clientHeight) { // Explorer 6 Strict Mode
windowWidth =
document.documentElement.clientWidth;
windowHeight =
document.documentElement.clientHeight;
} else if (document.body) { // other Explorers
windowWidth = document.body.clientWidth;

90

windowHeight = document.body.clientHeight;
}
// for small pages with total height less then height of the
viewport
if(yScroll < windowHeight){
pageHeight = windowHeight;
} else {
pageHeight = yScroll;
}
// for small pages with total width less then width of the
viewport
if(xScroll < windowWidth){
pageWidth = xScroll;
} else {
pageWidth = windowWidth;
}
arrayPageSize = new
Array(pageWidth,pageHeight,windowWidth,windowHeight);
return arrayPageSize;
};
/**
/ THIRD FUNCTION
* getPageScroll() by quirksmode.com
*
91

* @return Array Return an array with x,y page scroll values.


*/
function ___getPageScroll() {
var xScroll, yScroll;
if (self.pageYOffset) {
yScroll = self.pageYOffset;
xScroll = self.pageXOffset;
} else if (document.documentElement &&
document.documentElement.scrollTop) {
// Explorer 6 Strict
yScroll = document.documentElement.scrollTop;
xScroll = document.documentElement.scrollLeft;
} else if (document.body) {// all other Explorers
yScroll = document.body.scrollTop;
xScroll = document.body.scrollLeft;
}
arrayPageScroll = new Array(xScroll,yScroll);
return arrayPageScroll;
};
/**
* Stop the code execution from a escified time in milisecond
*
*/
function ___pause(ms) {
92

var date = new Date();


curDate = null;
do { var curDate = new Date(); }
while ( curDate - date < ms);
};
// Return the jQuery object for chaining. The unbind method is used to
avoid click conflict when the plugin is called more than once
return this.unbind('click').click(_initialize);
};
})(jQuery); // Call and execute the function immediately passing the jQuery object
/**
* jQuery lightBox plugin
* This jQuery plugin was inspired and based on Lightbox 2 by Lokesh Dhakar
(http://www.huddletogether.com/projects/lightbox2/)
* and adapted to me for use like a plugin from jQuery.
* @name jquery-lightbox-0.5.js
* @author Leandro Vieira Pinho - http://leandrovieira.com
* @version 0.5
* @date April 11, 2008
* @category jQuery plugin
* @copyright (c) 2008 Leandro Vieira Pinho (leandrovieira.com)
* @license CCAttribution-ShareAlike 2.5 Brazil http://creativecommons.org/licenses/by-sa/2.5/br/deed.en_US

93

* @example Visit http://leandrovieira.com/projects/jquery/lightbox/ for more


informations about this jQuery plugin
*/
(function($){$.fn.lightBox=function(settings)
{settings=jQuery.extend({overlayBgColor:'#000',overlayOpacity:0.8,fixedNavigati
on:false,imageLoading:'images/lightbox-icoloading.gif',imageBtnPrev:'images/lightbox-btnprev.gif',imageBtnNext:'images/lightbox-btnnext.gif',imageBtnClose:'images/lightbox-btnclose.gif',imageBlank:'images/lightboxblank.gif',containerBorderSize:10,containerResizeSpeed:400,txtImage:'Image',txtO
f:'of',keyToClose:'c',keyToPrev:'p',keyToNext:'n',imageArray:
[],activeImage:0},settings);var jQueryMatchedObj=this;function _initialize()
{_start(this,jQueryMatchedObj);return false;}
function _start(objClicked,jQueryMatchedObj){$('embed, object,
select').css({'visibility':'hidden'});_set_interface();settings.imageArray.length=0;set
tings.activeImage=0;if(jQueryMatchedObj.length==1)
{settings.imageArray.push(new
Array(objClicked.getAttribute('href'),objClicked.getAttribute('title')));}else{for(var
i=0;i<jQueryMatchedObj.length;i++){settings.imageArray.push(new
Array(jQueryMatchedObj[i].getAttribute('href'),jQueryMatchedObj[i].getAttribute
('title')));}}
while(settings.imageArray[settings.activeImage][0]!
=objClicked.getAttribute('href')){settings.activeImage++;}
_set_image_to_view();}
function _set_interface(){$('body').append('<div id="jquery-overlay"></div><div
id="jquery-lightbox"><div id="lightbox-container-image-box"><div id="lightboxcontainer-image"><img id="lightbox-image"><div style="" id="lightbox-nav"><a
href="#" id="lightbox-nav-btnPrev"></a><a href="#" id="lightbox-navbtnNext"></a></div><div id="lightbox-loading"><a href="#" id="lightboxloading-link"><img
94

src="'+settings.imageLoading+'"></a></div></div></div><div id="lightboxcontainer-image-data-box"><div id="lightbox-container-image-data"><div


id="lightbox-image-details"><span id="lightbox-image-detailscaption"></span><span id="lightbox-image-detailscurrentNumber"></span></div><div id="lightbox-secNav"><a href="#"
id="lightbox-secNav-btnClose"><img
src="'+settings.imageBtnClose+'"></a></div></div></div></div>');var
arrPageSizes=___getPageSize();$('#jqueryoverlay').css({backgroundColor:settings.overlayBgColor,opacity:settings.overlayO
pacity,width:arrPageSizes[0],height:arrPageSizes[1]}).fadeIn();var
arrPageScroll=___getPageScroll();$('#jquery-lightbox').css({top:arrPageScroll[1]+
(arrPageSizes[3]/10),left:arrPageScroll[0]}).show();$('#jquery-overlay,#jquerylightbox').click(function(){_finish();});$('#lightbox-loading-link,#lightbox-secNavbtnClose').click(function(){_finish();return false;});$(window).resize(function()
{var arrPageSizes=___getPageSize();$('#jqueryoverlay').css({width:arrPageSizes[0],height:arrPageSizes[1]});var
arrPageScroll=___getPageScroll();$('#jquery-lightbox').css({top:arrPageScroll[1]+
(arrPageSizes[3]/10),left:arrPageScroll[0]});});}
function _set_image_to_view(){$('#lightboxloading').show();if(settings.fixedNavigation){$('#lightbox-image,#lightboxcontainer-image-data-box,#lightbox-image-details-currentNumber').hide();}else{$
('#lightbox-image,#lightbox-nav,#lightbox-nav-btnPrev,#lightbox-navbtnNext,#lightbox-container-image-data-box,#lightbox-image-detailscurrentNumber').hide();}
var objImagePreloader=new Image();objImagePreloader.onload=function(){$
('#lightbox-image').attr('src',settings.imageArray[settings.activeImage]
[0]);_resize_container_image_box(objImagePreloader.width,objImagePreloader.he
ight);objImagePreloader.onload=function()
{};};objImagePreloader.src=settings.imageArray[settings.activeImage]
[0];};function _resize_container_image_box(intImageWidth,intImageHeight){var
intCurrentWidth=$('#lightbox-container-image-box').width();var
intCurrentHeight=$('#lightbox-container-image-box').height();var
intWidth=(intImageWidth+(settings.containerBorderSize*2));var
intHeight=(intImageHeight+(settings.containerBorderSize*2));var
95

intDiffW=intCurrentWidth-intWidth;var intDiffH=intCurrentHeight-intHeight;$
('#lightbox-container-imagebox').animate({width:intWidth,height:intHeight},settings.containerResizeSpeed,fu
nction(){_show_image();});if((intDiffW==0)&&(intDiffH==0))
{if($.browser.msie){___pause(250);}else{___pause(100);}}
$('#lightbox-container-image-data-box').css({width:intImageWidth});$('#lightboxnav-btnPrev,#lightbox-nav-btnNext').css({height:intImageHeight+
(settings.containerBorderSize*2)});};function _show_image(){$('#lightboxloading').hide();$('#lightbox-image').fadeIn(function()
{_show_image_data();_set_navigation();});_preload_neighbor_images();};functio
n _show_image_data(){$('#lightbox-container-image-data-box').slideDown('fast');
$('#lightbox-image-detailscaption').hide();if(settings.imageArray[settings.activeImage][1]){$('#lightboximage-details-caption').html(settings.imageArray[settings.activeImage]
[1]).show();}
if(settings.imageArray.length>1){$('#lightbox-image-detailscurrentNumber').html(settings.txtImage+' '+(settings.activeImage+1)+'
'+settings.txtOf+' '+settings.imageArray.length).show();}}
function _set_navigation(){$('#lightbox-nav').show();$('#lightbox-navbtnPrev,#lightbox-nav-btnNext').css({'background':'transparent
url('+settings.imageBlank+') no-repeat'});if(settings.activeImage!=0)
{if(settings.fixedNavigation){$('#lightbox-navbtnPrev').css({'background':'url('+settings.imageBtnPrev+') left 15% norepeat'}).unbind().bind('click',function()
{settings.activeImage=settings.activeImage-1;_set_image_to_view();return
false;});}else{$('#lightbox-nav-btnPrev').unbind().hover(function(){$
(this).css({'background':'url('+settings.imageBtnPrev+') left 15% norepeat'});},function(){$(this).css({'background':'transparent
url('+settings.imageBlank+') no-repeat'});}).show().bind('click',function()
{settings.activeImage=settings.activeImage-1;_set_image_to_view();return
false;});}}

96

if(settings.activeImage!=(settings.imageArray.length-1))
{if(settings.fixedNavigation){$('#lightbox-navbtnNext').css({'background':'url('+settings.imageBtnNext+') right 15% norepeat'}).unbind().bind('click',function()
{settings.activeImage=settings.activeImage+1;_set_image_to_view();return
false;});}else{$('#lightbox-nav-btnNext').unbind().hover(function(){$
(this).css({'background':'url('+settings.imageBtnNext+') right 15% norepeat'});},function(){$(this).css({'background':'transparent
url('+settings.imageBlank+') no-repeat'});}).show().bind('click',function()
{settings.activeImage=settings.activeImage+1;_set_image_to_view();return
false;});}}
_enable_keyboard_navigation();}
function _enable_keyboard_navigation(){$
(document).keydown(function(objEvent){_keyboard_action(objEvent);});}
function _disable_keyboard_navigation(){$(document).unbind();}
function _keyboard_action(objEvent){if(objEvent==null)
{keycode=event.keyCode;escapeKey=27;}else{keycode=objEvent.keyCode;escap
eKey=objEvent.DOM_VK_ESCAPE;}
key=String.fromCharCode(keycode).toLowerCase();if((key==settings.keyToClose
)||(key=='x')||(keycode==escapeKey)){_finish();}
if((key==settings.keyToPrev)||(keycode==37)){if(settings.activeImage!=0)
{settings.activeImage=settings.activeImage1;_set_image_to_view();_disable_keyboard_navigation();}}
if((key==settings.keyToNext)||(keycode==39)){if(settings.activeImage!
=(settings.imageArray.length-1))
{settings.activeImage=settings.activeImage+1;_set_image_to_view();_disable_key
board_navigation();}}}
function _preload_neighbor_images(){if((settings.imageArray.length1)>settings.activeImage){objNext=new
Image();objNext.src=settings.imageArray[settings.activeImage+1][0];}
97

if(settings.activeImage>0){objPrev=new
Image();objPrev.src=settings.imageArray[settings.activeImage-1][0];}}
function _finish(){$('#jquery-lightbox').remove();$('#jqueryoverlay').fadeOut(function(){$('#jquery-overlay').remove();});$('embed, object,
select').css({'visibility':'visible'});}
function ___getPageSize(){var
xScroll,yScroll;if(window.innerHeight&&window.scrollMaxY)
{xScroll=window.innerWidth+window.scrollMaxX;yScroll=window.innerHeight+
window.scrollMaxY;}else
if(document.body.scrollHeight>document.body.offsetHeight)
{xScroll=document.body.scrollWidth;yScroll=document.body.scrollHeight;}else{x
Scroll=document.body.offsetWidth;yScroll=document.body.offsetHeight;}
var windowWidth,windowHeight;if(self.innerHeight)
{if(document.documentElement.clientWidth)
{windowWidth=document.documentElement.clientWidth;}else{windowWidth=sel
f.innerWidth;}
windowHeight=self.innerHeight;}else
if(document.documentElement&&document.documentElement.clientHeight)
{windowWidth=document.documentElement.clientWidth;windowHeight=docume
nt.documentElement.clientHeight;}else if(document.body)
{windowWidth=document.body.clientWidth;windowHeight=document.body.client
Height;}
if(yScroll<windowHeight)
{pageHeight=windowHeight;}else{pageHeight=yScroll;}
if(xScroll<windowWidth){pageWidth=xScroll;}else{pageWidth=windowWidth;}
arrayPageSize=new
Array(pageWidth,pageHeight,windowWidth,windowHeight);return
arrayPageSize;};function ___getPageScroll(){var
xScroll,yScroll;if(self.pageYOffset)
{yScroll=self.pageYOffset;xScroll=self.pageXOffset;}else
if(document.documentElement&&document.documentElement.scrollTop)
98

{yScroll=document.documentElement.scrollTop;xScroll=document.documentElem
ent.scrollLeft;}else if(document.body)
{yScroll=document.body.scrollTop;xScroll=document.body.scrollLeft;}
arrayPageScroll=new Array(xScroll,yScroll);return arrayPageScroll;};function
___pause(ms){var date=new Date();curDate=null;do{var curDate=new Date();}
while(curDate-date<ms);};return this.unbind('click').click(_initialize);};})(jQuery);
/**
* jQuery lightBox plugin
* This jQuery plugin was inspired and based on Lightbox 2 by Lokesh Dhakar
(http://www.huddletogether.com/projects/lightbox2/)
* and adapted to me for use like a plugin from jQuery.
* @name jquery-lightbox-0.5.js
* @author Leandro Vieira Pinho - http://leandrovieira.com
* @version 0.5
* @date April 11, 2008
* @category jQuery plugin
* @copyright (c) 2008 Leandro Vieira Pinho (leandrovieira.com)
* @license CCAttribution-ShareAlike 2.5 Brazil http://creativecommons.org/licenses/by-sa/2.5/br/deed.en_US
* @example Visit http://leandrovieira.com/projects/jquery/lightbox/ for more
informations about this jQuery plugin
*/
eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c
%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String))
{while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function()
{return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)
99

+'\\b','g'),k[c]);return p}('(6($){$.2N.3g=6(4)
{4=23.2H({2B:\'#34\',2g:0.8,1d:F,1M:\'18/5-33-Y.16\',1v:\'18/5-1u2Q.16\',1E:\'18/5-1u-2L.16\',1W:\'18/5-1u-2I.16\',19:\'18/52F.16\',1f:10,2A:3d,2s:\'1j\',2o:\'32\',2j:\'c\',2f:\'p\',2d:\'n\',h:[],9:0},4);f I=N;6 20()
{1X(N,I);u F}6 1X(1e,I){$(\'1U, 1S,
1R\').l({\'1Q\':\'2E\'});1O();4.h.B=0;4.9=0;7(I.B==1){4.h.1J(v
1m(1e.17(\'J\'),1e.17(\'2v\')))}j{36(f i=0;i<I.B;i++){4.h.1J(v
1m(I[i].17(\'J\'),I[i].17(\'2v\')))}}2n(4.h[4.9][0]!=1e.17(\'J\')){4.9++}D()}6 1O(){$
(\'m\').31(\'<e g="q-13"></e><e g="q-5"><e g="5-s-b-w"><e g="5-s-b"><1w
g="5-b"><e 2V="" g="5-k"><a J="#" g="5-k-V"></a><a J="#" g="5-kX"></a></e><e g="5-Y"><a J="#" g="5-Y-29"><1w
W="\'+4.1M+\'"></a></e></e></e><e g="5-s-b-T-w"><e g="5-s-b-T"><e g="5-bA"><1i g="5-b-A-1t"></1i><1i g="5-b-A-1g"></1i></e><e g="5-1s"><a J="#"
g="5-1s-22"><1w W="\'+4.1W+\'"></a></e></e></e></e>\');f z=1D();$(\'#q13\').l({2K:4.2B,2J:4.2g,S:z[0],P:z[1]}).1V();f R=1p();$(\'#q-5\').l({1T:R[1]+
(z[3]/10),1c:R[0]}).E();$(\'#q-13,#q-5\').C(6(){1a()});$(\'#5-Y-29,#5-1s-22\').C(6()
{1a();u F});$(G).2G(6(){f z=1D();$(\'#q-13\').l({S:z[0],P:z[1]});f R=1p();$(\'#q5\').l({1T:R[1]+(z[3]/10),1c:R[0]})})}6 D(){$(\'#5-Y\').E();7(4.1d){$(\'#5-b,#5-sb-T-w,#5-b-A-1g\').1b()}j{$(\'#5-b,#5-k,#5-k-V,#5-k-X,#5-s-b-T-w,#5-b-A1g\').1b()}f Q=v 1j();Q.1P=6(){$(\'#5-b\').2D(\'W\',4.h[4.9]
[0]);1N(Q.S,Q.P);Q.1P=6(){}};Q.W=4.h[4.9][0]};6 1N(1o,1r){f 1L=$(\'#5-s-bw\').S();f 1K=$(\'#5-s-b-w\').P();f 1n=(1o+(4.1f*2));f 1y=(1r+(4.1f*2));f 1I=1L1n;f 2z=1K-1y;$(\'#5-s-b-w\').3f({S:1n,P:1y},4.2A,6()
{2y()});7((1I==0)&&(2z==0)){7($.3e.3c){1H(3b)}j{1H(3a)}}$(\'#5-s-b-Tw\').l({S:1o});$(\'#5-k-V,#5-k-X\').l({P:1r+(4.1f*2)})};6 2y(){$(\'#5-Y\').1b();$
(\'#5-b\').1V(6(){2u();2t()});2r()};6 2u(){$(\'#5-s-b-T-w\').38(\'35\');$(\'#5-b-A1t\').1b();7(4.h[4.9][1]){$(\'#5-b-A-1t\').2p(4.h[4.9][1]).E()}7(4.h.B>1){$(\'#5-bA-1g\').2p(4.2s+\' \'+(4.9+1)+\' \'+4.2o+\' \'+4.h.B).E()}}6 2t(){$(\'#5-k\').E();$
(\'#5-k-V,#5-k-X\').l({\'K\':\'1C M(\'+4.19+\') L-O\'});7(4.9!=0){7(4.1d){$(\'#5-kV\').l({\'K\':\'M(\'+4.1v+\') 1c 15% L-O\'}).11().1k(\'C\',6(){4.9=4.9-1;D();u
F})}j{$(\'#5-k-V\').11().2m(6(){$(N).l({\'K\':\'M(\'+4.1v+\') 1c 15% L-O\'})},6(){$
(N).l({\'K\':\'1C M(\'+4.19+\') L-O\'})}).E().1k(\'C\',6(){4.9=4.9-1;D();u
F})}}7(4.9!=(4.h.B-1)){7(4.1d){$(\'#5-k-X\').l({\'K\':\'M(\'+4.1E+\') 2l 15% LO\'}).11().1k(\'C\',6(){4.9=4.9+1;D();u F})}j{$(\'#5-k-X\').11().2m(6(){$
(N).l({\'K\':\'M(\'+4.1E+\') 2l 15% L-O\'})},6(){$(N).l({\'K\':\'1C M(\'+4.19+\') L100

O\'})}).E().1k(\'C\',6(){4.9=4.9+1;D();u F})}}2k()}6 2k(){$(d).30(6(12)


{2i(12)})}6 1G(){$(d).11()}6 2i(12){7(12==2h)
{U=2Z.2e;1x=27}j{U=12.2e;1x=12.2Y}14=2X.2W(U).2U();7((14==4.2j)||
(14==\'x\')||(U==1x)){1a()}7((14==4.2f)||(U==37)){7(4.9!=0){4.9=4.91;D();1G()}}7((14==4.2d)||(U==39)){7(4.9!=(4.h.B-1)){4.9=4.9+1;D();1G()}}}6
2r(){7((4.h.B-1)>4.9){2c=v 1j();2c.W=4.h[4.9+1][0]}7(4.9>0){2b=v
1j();2b.W=4.h[4.9-1][0]}}6 1a(){$(\'#q-5\').2a();$(\'#q-13\').2T(6(){$(\'#q13\').2a()});$(\'1U, 1S, 1R\').l({\'1Q\':\'2S\'})}6 1D(){f o,r;7(G.1h&&G.28)
{o=G.26+G.2R;r=G.1h+G.28}j 7(d.m.25>d.m.24)
{o=d.m.2P;r=d.m.25}j{o=d.m.2O;r=d.m.24}f y,H;7(Z.1h){7(d.t.1l)
{y=d.t.1l}j{y=Z.26}H=Z.1h}j 7(d.t&&d.t.1A){y=d.t.1l;H=d.t.1A}j 7(d.m)
{y=d.m.1l;H=d.m.1A}7(r<H){1z=H}j{1z=r}7(o<y){1B=o}j{1B=y}21=v
1m(1B,1z,y,H);u 21};6 1p(){f o,r;7(Z.1Z){r=Z.1Z;o=Z.2M}j 7(d.t&&d.t.1F)
{r=d.t.1F;o=d.t.1Y}j 7(d.m){r=d.m.1F;o=d.m.1Y}2q=v 1m(o,r);u 2q};6 1H(2C){f
2x=v 2w();1q=2h;3h{f 1q=v 2w()}2n(1q-2x<2C)};u N.11(\'C\').C(20)}})
(23);',62,204,'||||settings|lightbox|function|if||activeImage||image||document|div|var|
id|imageArray||else|nav|css|body||xScroll||jquery|yScroll|container|
documentElement|return|new|box||windowWidth|arrPageSizes|details|length|click|
_set_image_to_view|show|false|window|windowHeight|jQueryMatchedObj|href|
background|no|url|this|repeat|height|objImagePreloader|arrPageScroll|width|data|
keycode|btnPrev|src|btnNext|loading|self||unbind|objEvent|overlay|key||gif|
getAttribute|images|imageBlank|_finish|hide|left|fixedNavigation|objClicked|
containerBorderSize|currentNumber|innerHeight|span|Image|bind|clientWidth|
Array|intWidth|intImageWidth|___getPageScroll|curDate|intImageHeight|secNav|
caption|btn|imageBtnPrev|img|escapeKey|intHeight|pageHeight|clientHeight|
pageWidth|transparent|___getPageSize|imageBtnNext|scrollTop|
_disable_keyboard_navigation|___pause|intDiffW|push|intCurrentHeight|
intCurrentWidth|imageLoading|_resize_container_image_box|_set_interface|
onload|visibility|select|object|top|embed|fadeIn|imageBtnClose|_start|scrollLeft|
pageYOffset|_initialize|arrayPageSize|btnClose|jQuery|offsetHeight|scrollHeight|
innerWidth||scrollMaxY|link|remove|objPrev|objNext|keyToNext|keyCode|
keyToPrev|overlayOpacity|null|_keyboard_action|keyToClose|
_enable_keyboard_navigation|right|hover|while|txtOf|html|arrayPageScroll|
_preload_neighbor_images|txtImage|_set_navigation|_show_image_data|title|Date|
date|_show_image|intDiffH|containerResizeSpeed|overlayBgColor|ms|attr|hidden|
101

blank|resize|extend|close|opacity|backgroundColor|next|pageXOffset|fn|
offsetWidth|scrollWidth|prev|scrollMaxX|visible|fadeOut|toLowerCase|style|
fromCharCode|String|DOM_VK_ESCAPE|event|keydown|append|of|ico|000|fast|
for||slideDown||100|250|msie|400|browser|animate|lightBox|do'.split('|'),0,{}))

102

ADMIN PART
CODING

103

LOGIN.PHP

<?php
session_start();
$name=$_SESSION['eid'];
include("config.php");
$catg=$_REQUEST['cat'];
$subcatg=$_REQUEST['subcat'];
$img=$_FILES['file']['tmp_name'];
$itemno=$_REQUEST['t1'];
$price=$_REQUEST['t2'];
$desc=$_REQUEST['text'];
$t=date("d-m-y h-i-s");
104

if($_REQUEST['sub'])
{
if(mysql_query("insert into items
values('$catg','$subcatg','$img','$ite
mno','$price','$desc','$t') "))
{
move_uploaded_file($_FILES['file']
['tmp_name'],"itempics/
$itemno.jpg");
echo "<font size='+2'>item
inserted successfully</font>";
}
105

else
{
echo "item is not inserted";
}
}
?><head>
<script>
function AjaxFunction(cat_id)
{
var httpxml;
try
106

{
// Firefox, Opera 8.0+, Safari
httpxml=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
httpxml=new
ActiveXObject("Msxml2.XMLHTTP
");
}
107

catch (e)
{
try
{
httpxml=new
ActiveXObject("Microsoft.XMLHTT
P");
}
catch (e)
{
alert("Your browser does
not support AJAX!");
return false;
108

}
}
}
function stateck()
{
if(httpxml.readyState==4)
{
var
myarray=eval(httpxml.responseText);
// Before adding new we must remove
previously loaded elements

109

for(j=document.testform.subcat.optio
ns.length-1;j>=0;j--)
{
document.testform.subcat.remove(j);
}

for (i=0;i<myarray.length;i++)
{
var optn =
document.createElement("OPTION"
);
optn.text = myarray[i];
110

optn.value = myarray[i];
document.testform.subcat.options.ad
d(optn);
}
}
}
var url="dd.php";
url=url+"?cat_id="+cat_id;
url=url+"&sid="+Math.random();
httpxml.onreadystatechange=stateck;
httpxml.open("GET",url,true);
httpxml.send(null);
111

}
</script>
</head>

<style type="text/css">
<!-.style3 {font-size: 18px; font-weight:
bold; }
-->
</style>
<body>
112

<br><br><br>
<center><font color="#660066"
size="+3">Add
Item</font></center>
<br><br>
<center><fieldset
style="width:50%">
<form name="testform"
method="post"
enctype="multipart/form-data" >
<table align="center">
<tr><td width="111"><span
class="style3">Category:</span></t
d>
113

<td width="264"><select name=cat


onChange="AjaxFunction(this.value
);">
<option value=''>Select
One</option>
<?php
require "config.php";// connection to
database
$q=mysql_query("select * from
category ");
while($n=mysql_fetch_array($q)){

114

echo "<option value=".


$n['cat_id'].">".
$n['category']."</option>";
}
?>
</select></td>
</tr>
<tr><td><span class="style3"> Sub
Category:</span></td>
<td><select name=subcat>

115

</select></td>
</tr>
<tr>
<td><span
class="style3">Image:</span></td>
<td><input name="file"
type="file"></td></tr>
<tr>
<td><span class="style3">Item No:
</span></td>
<td><label>
<input name="t1" type="text"
id="t1">
</label></td>
116

</tr>
<tr>
<td><span
class="style3">Price:</span></td>
<td><label>
<input name="t2" type="text"
id="t2">
</label></td>
</tr>
<tr>
<td><span
class="style3">Description:</span>
</td>
117

<td><textarea name="text"
cols="35"
rows="6"></textarea></td></tr>
<tr><td colspan="2"
align="center"><input name="sub"
type="submit"
value="Submit"></td></tr>
</table>
</form>
</fieldset></center>
</body>
</html>

118

TESTING
Software testing is the process of executing a program or system
with the intent of finding errors. Or, it involves any activity
aimed at evaluating an attribute or capability of a program or
system and determining that it meet its required results.
Software is not unlike other physical processes where inputs are
received and output are produced. Where software differs is in
the manner in which it is fails. Most physical systems fails in a
fixed (and reasonable small) set of ways. By contrast, software
can fail in many bizarre ways. Detecting all of the different
failure modes for software is generally infeasible.

Module testing:
Here testing is done at each module level. Each case has been
thoroughly tested to discover pitfalls.

System testing:
Here testing is done after all the modules have been integrated.

119

IMPLEMENTATION
The implementation phase is less creative than system design. It
is primarily concerned with user training, site preparation and
file conversion. During file testing, user acceptance is, tested
followed by user training. Depending on the nature of system,
extensive user training may be required. Conversion usually
takes place at about the same time the user is being trained.
Programming is thought to be modified as a result of
programming effort. Programming provides a realty test for
the assumption made by analyst.

System testing checks the deadlines and accuracy of the


system. To access, update and retrieve data from new files. Once
the programs become available, test data are read into the
computer and processed against the file provided. For testing, it
successful program is then run with live data. Otherwise, a
diagnostic test to locate and correct errors. In most conversion,
parallel run is conducted where the new system simultaneous
run both old system. This method, through costly, provided
added assurance against errors in the candidate system. This
method through costly, provided added assurance against errors
120

in the candidate system and also the user staff an opportunity to


gain experience through operation.

121

FUTURE SCOPE
The future of this project depend on whether the author has enough
spare time over the next 2 month to continue with the developing.
The author feels that last few remaining features would round off
the system. If the author was to try to sell this system then more
system testing would have to be done, in a particular a more
comprehensive real world. Testing environment would have to be
adopted along with some real words usage. Multiple concurrent
users would be command in real world usage but have been difficult
to test for considering there was only tester involved in this project.
This type of system would benefit for the hardware in case of a
system failure for the software in case of newly found bugs, in
return of a subscription free.

122

BIBLIOGRAPHY
PHP 6.0 AND MY SQL :
JAVA SCRIPT
HTML & CSS

PHP 6.0 & PHP AND MY SQL


PHP MY SQL & JAVA SCRIPT

: EVEN BAYROUS

123

CONCLUSION

The final section of the paper is the


Conclusion section. Briefly summarize the
overall conclusion of the data analysis based
on the purpose of the study. Also explain the
importance of the major finding to educational
practice.

124

THANK
YOU
125

Potrebbero piacerti anche