incubus - an obsession in computing
  • rss
  • Home
  • Linux Apps
    • C&G 4250 Linux Extension
  • C&G 4240
    • Overview
    • Validate Program
    • Sort Program
    • Update / Merge Program
    • Report Program
    • Downloads
  • C&G 4250
    • Overview
    • Data Entry Program
    • Validate Program
    • Sort Program
    • Customer Update / Merge Program
    • Customer Report Program
    • Stock Update / Merge Program
    • Stock Report Program
    • Downloads
  • About
  • Contact

Data Entry Program

Program Overview:

This program is used to allow a user to enter transaction data that will be processed by the other programs in this suite of seven. The user is always informed about the data that is expected from them via on screen prompts. The following transaction types are available to be entered via this program.

I Issue         – Stock issued.
R Receipt   - Stock received.
C Creation  - Create a new customer record.
D Deletion  - Delete an existing customer record.
A Amend    – Amend an existing stock record.
N New         – Create a new stock record.
Z Zap          – Delete an existing stock record.

All entered transactions are written to the disk file named 494792TD.DAT (in text format) for further processing by the Validation program (494792P1). At the end of user input when the user indicates they wish to exit the program by selecting the appropriate menu number. A report of all transactions stored on the transaction file is sent to the printer and each transactions data is printed under suitable headings.

The default file names are as follows: -

Transaction file – 494792TD.DAT
Printer – PRN

Unlike the rest of the suite of programs this program does not support command line arguments being given to override the default file names. This feature may be added at a later date, if it is required by the users.

However when the program first starts the user is given the choice of either appending transactions to the existing transaction file or overwriting the existing transaction file with the data that is about to be entered (creating a new file). A welcome screen is shown which will look similar to the screen shot shown below: -

Data Entry:

As mentioned above the user is first presented with a welcome screen, where by they select the mode which the transaction file is opened in. If the user enters ‘A’ the transaction file is opened in append mode. If a transaction file does not exist then a new one will be created. If the user enters ‘B’ the transaction file is opened in write mode, which has the effect of overwriting the existing file if one exists, or creating a new one if one does not already exist. Any other user input is ignored; this screen is repeatedly shown until the user enters either an ‘A’ or ‘B’. Case not being important as the entered character is converted to uppercase before being checked.

When the file opening mode has been determined, an attempt at opening the transaction file in the correct mode is made. If the transaction file could not be opened then an error message is printed to the screen, and the program terminated (indicating program failure to the operating system) returning the user back to the operating system.

If the transaction file was opened successfully the user is then presented with the main data entry menu as shown below: -


Zenith Paints Program Zero Main Menu Screen.

The user may now select the required transaction type they require [1-6] or enter [9] to exit the program. If the user enters any other character then the following message will be displayed at the bottom of the screen (the main menu screen will still be visible as it is above): -


Zenith Paints Program Zero Incorrect Selection Error Message.

Below is an explanation and associated screenshots for each option a user may select. After the user has entered the appropriate data for the selected transaction type they will be returned back to this main menu screen.

1. Stock Issue or Receipt [I/R]


Zenith Paints Program Zero Issue or Receipt Screen.

When the user enters 1 on their keyboard, the above screen is displayed. The user must enter either an ‘I’ or ‘R’ as the transactions type, any other character entered is ignored. This helps remove the chance of the user entering an incorrect transaction type.

A message is displayed at the bottom of the screen informing the user that they may press the Escape key to abort this screen. If the Escape key is pressed they are asked to confirm their intention to abort the current screen. If the user presses the ‘Y’ key then they are returned back to the main menu, with all entered data lost.


Informing user that ESC key will abort current screen.


Confirm they wish to abort current screen.

The user must now enter a customer code. This input is limited to 5 characters, as indicated by the five dots on the screen. The cursor will be flashing at the first dot; each key entered will replace the corresponding dot. An incorrect key may be re-entered by pressing the backspace key and then pressing the required key. When 5 keys have been entered, no more key input may be performed. If the user presses enter before 5 keys have been entered, this is taken to be the end of user input.

The user must now enter a part number. This input is limited to 6 characters, as indicated by the six dots on the screen. The cursor will be flashing at the first dot; each key entered will replace the corresponding dot. An incorrect key may be re-entered by pressing the backspace key and then pressing the required key. When 6 keys have been entered, no more key input may be performed. If the user presses enter before 6 keys have been entered, this is taken to be the end of user input.

The user must now enter a quantity. This input is limited to 4 numbers, as indicated by the four dots on the screen. Only numeric data may be entered here, any other key press is ignored. The cursor will be flashing at the first dot; each number entered will replace the corresponding dot. An incorrect number may be re-entered by pressing the backspace key and then pressing the required number. When 4 numbers have been entered, no more number input may be performed. If the user presses enter before 4 numbers have been entered, the entered number is padded with leading zeros (50 becomes 0050). The leading zeros are not shown on screen so the user is unaware of this conversion.

The user is now shown how many issue / receipt records have been entered (for this session), by means of a message at the bottom of the screen.


Number of entered ‘I/R’ type transactions entered.

No check is performed with regard to customer code and part number entry, so the user may in fact enter characters where only numeric data is allowed. This is because the last character entered may be ‘X’ (checkDigit), so it is not possible to restrict the user to only entering numeric data for this field. The customer code and part number are checked for this type of error within the validation program (494792P1).

When the user presses a key they are returned back to the main menu, where further transactions types may be selected to be entered.

2. Create a New Customer [C]


Zenith Paints Program Zero New Customer Screen.

When the user enters 2 on their keyboard, the above screen is displayed. The user may not enter the type of transaction, because the customer creation type is set throughout the seven programs as type ‘C’. This removes the chances of the user entering an incorrect type.

A message is displayed at the bottom of the screen informing the user that they may press the Escape key to abort this screen. If the Escape key is pressed they are asked to confirm their intention to abort the current screen. If the user presses the ‘Y’ key then they are returned back to the main menu, with all entered data lost.


Informing user that ESC key will abort current screen.


Confirm they wish to abort current screen.

The user must now enter a customer code. This input is limited to 5 characters, as indicated by the five dots on the screen. The cursor will be flashing at the first dot; each key entered will replace the corresponding dot. An incorrect key may be re-entered by pressing the backspace key and then pressing the required key. When 5 keys have been entered, no more key input may be performed. If the user presses enter before 5 keys have been entered, this is taken to be the end of user input.

The user must now enter the first line of the customers address. This input is limited to 14 characters, as indicated by the fourteen dots on the screen. The cursor will be flashing at the first dot; each key entered will replace the corresponding dot. An incorrect key may be re-entered by pressing the backspace key and then pressing the required key. When 14 keys have been entered, no more key input may be performed. If the user presses enter before 14 keys have been entered, this is taken to be the end of user input. The separating semi-colon is automatically added at the end of input (not displayed on screen).

The user must now enter the second line of the customers address. This input is again limited to 14 characters, as indicated by the fourteen dots on the screen. The cursor will be flashing at the first dot; each key entered will replace the corresponding dot. An incorrect key may be re-entered by pressing the backspace key and then pressing the required key. When 14 keys have been entered, no more key input may be performed. If the user presses enter before 14 keys have been entered, this is taken to be the end of user input. The separating semi-colon is automatically added at the end of input (not displayed on screen).

The user must now enter the third line of the customers address. This input is again limited to 14 characters, as indicated by the fourteen dots on the screen. The cursor will be flashing at the first dot; each key entered will replace the corresponding dot. An incorrect key may be re-entered by pressing the backspace key and then pressing the required key. When 14 keys have been entered, no more key input may be performed. If the user presses enter before 14 keys have been entered, this is taken to be the end of user input. The separating semi-colon is automatically added at the end of input (not displayed on screen).

The user must now enter the forth line of the customers address. This input is again limited to 14 characters, as indicated by the fourteen dots on the screen. The cursor will be flashing at the first dot; each key entered will replace the corresponding dot. An incorrect key may be re-entered by pressing the backspace key and then pressing the required key. When 14 keys have been entered, no more key input may be performed. If the user presses enter before 14 keys have been entered, this is taken to be the end of user input. The separating semi-colon is automatically added at the end of input (not displayed on screen).

The user must now enter a balance. This input is limited to 9 numbers, as indicated by the nine dots on the screen. Only numeric data may be entered here, any other key press is ignored. The cursor will be flashing at the first dot; each number entered will replace the corresponding dot. An incorrect number may be re-entered by pressing the backspace key and then pressing the required number. When 9 numbers have been entered, no more number input may be performed. If the user presses enter before 9 numbers have been entered, the entered number is padded with leading zeros (5980 becomes 000005980). The leading zeros are not shown on screen so the user is unaware of this conversion.

The user must now enter a credit limit. This input is limited to 7 numbers, as indicated by the seven dots on the screen. Only numeric data may be entered here, any other key press is ignored. The cursor will be flashing at the first dot; each number entered will replace the corresponding dot. An incorrect number may be re-entered by pressing the backspace key and then pressing the required number. When 9 numbers have been entered, no more number input may be performed. If the user presses enter before 7 numbers have been entered, the entered number is padded with leading zeros (680 becomes 0000680). The leading zeros are not shown on screen so the user is unaware of this conversion.

The user is now shown how many customer creation records have been entered (for this session), by means of a message at the bottom of the screen.


Number of entered ‘C’ type transactions entered.

No check is performed with regard to customer code entry, so the user may in fact enter characters where only numeric data is allowed. This is because the last character entered may be ‘X’ (checkDigit), so it is not possible to restrict the user to only entering numeric data for this field. The customer code is checked for this type of error within the validation program (494792P1).

When the user presses a key they are returned back to the main menu, where further transactions types may be selected to be entered.

3. Delete Existing Customer [D]


Zenith Paints Program Zero Customer Deletion Screen.

When the user enters 3 on their keyboard, the above screen is displayed. The user may not enter the type of transaction, because the customer deletion type is set throughout the seven programs as type ‘D’. This removes the chances of the user entering an incorrect type.

A message is displayed at the bottom of the screen informing the user that they may press the Escape key to abort this screen. If the Escape key is pressed the user is asked to confirm their intention to abort the current screen. If the user presses the ‘Y’ key then they are returned back to the main menu, with all entered data lost.


Informing user that ESC key will abort current screen.


Confirm they wish to abort current screen.

The user must now enter a customer code. This input is limited to 5 characters, as indicated by the five dots on the screen. The cursor will be flashing at the first dot; each key entered will replace the corresponding dot. An incorrect key may be re-entered by pressing the backspace key and then pressing the required key. When 5 keys have been entered, no more key input may be performed. If the user presses enter before 5 keys have been entered, this is taken to be the end of user input.

The user is now shown how many customer deletion records have been entered (for this session), by means of a message at the bottom of the screen.


Number of entered ‘D’ type transactions entered.

No check is performed here as to what is being input, so the user may in fact enter characters where only numeric data is allowed. This is because the last character entered may be ‘X’ (checkDigit), so it is not possible to restrict the user to only entering numeric data for this field. The customer code is checked for this type of error within the validation program (494792P1).

When the user presses a key they are returned back to the main menu, where further transactions types may be selected to be entered.

4. Amend Stock Record [A]


Zenith Paints Program Zero Amend Stock Record Screen.

When the user enters 4 on their keyboard, the above screen is displayed. The user may not enter the type of transaction, because the stock amendment type is set throughout the seven programs as type ‘A’. This removes the chances of the user entering an incorrect type.

A message is displayed at the bottom of the screen informing the user that they may press the Escape key to abort this screen. If the Escape key is pressed they are asked to confirm their intention to abort the current screen. If the user presses the ‘Y’ key then they are returned back to the main menu, with all entered data lost.


Informing user that ESC key will abort current screen.


Confirm they wish to abort current screen.

The user must now enter a part number. This input is limited to 6 characters, as indicated by the six dots on the screen. The cursor will be flashing at the first dot; each key entered will replace the corresponding dot. An incorrect key may be re-entered by pressing the backspace key and then pressing the required key. When 6 keys have been entered, no more key input may be performed. If the user presses enter before 6 keys have been entered, this is taken to be the end of user input.

The user must now enter a part description. This input is limited to 19 characters, as indicated by the nineteen dots on the screen. The cursor will be flashing at the first dot; each key entered will replace the corresponding dot. An incorrect key may be re-entered by pressing the backspace key and then pressing the required key. When 19 keys have been entered, no more key input may be performed. If the user presses enter before 19 keys have been entered, this is taken to be the end of user input.

The user must now enter a supplier code. This input is limited to 2 numbers, as indicated by the two dots on the screen. Only numeric data may be entered here, any other key press is ignored. The cursor will be flashing at the first dot; each number entered will replace the corresponding dot. An incorrect number may be re-entered by pressing the backspace key and then pressing the required number. When 2 numbers have been entered, no more number input may be performed. If the user presses enter before 2 numbers have been entered, the entered number is padded with leading zeros (3 becomes 03). The leading zeros are not shown on screen so the user is unaware of this conversion.

The user must now enter the available free stock. This input is limited to 6 numbers, as indicated by the six dots on the screen. Only numeric data may be entered here, any other key press is ignored. The cursor will be flashing at the first dot; each number entered will replace the corresponding dot. An incorrect number may be re-entered by pressing the backspace key and then pressing the required number. When 6 numbers have been entered, no more number input may be performed. If the user presses enter before 6 numbers have been entered, the entered number is padded with leading zeros (700 becomes 000700). The leading zeros are not shown on screen so the user is unaware of this conversion.

The user must now enter the minimum stock level. This input is limited to 4 numbers, as indicated by the four dots on the screen. Only numeric data may be entered here, any other key press is ignored. The cursor will be flashing at the first dot; each number entered will replace the corresponding dot. An incorrect number may be re-entered by pressing the backspace key and then pressing the required number. When 4 numbers have been entered, no more number input may be performed. If the user presses enter before 4 numbers have been entered, the entered number is padded with leading zeros (23 becomes 0023). The leading zeros are not shown on screen so the user is unaware of this conversion.

The user must now enter last movement date. This input is limited to 6 numbers, as indicated by the six dots on the screen. Only numeric data may be entered here, any other key press is ignored. The date must be in the format YYMMDD (although no check is performed on this). The cursor will be flashing at the first dot; each number entered will replace the corresponding dot. An incorrect number may be re-entered by pressing the backspace key and then pressing the required number. When 6 numbers have been entered, no more number input may be performed. If the user presses enter before 6 numbers have been entered, the entered number is padded with leading zeros (333 becomes 000333). The leading zeros are not shown on screen so the user is unaware of this conversion.

The user must now enter a selling price. This input is limited to 6 numbers, as indicated by the six dots on the screen. Only numeric data may be entered here, any other key press is ignored. The cursor will be flashing at the first dot; each number entered will replace the corresponding dot. An incorrect number may be re-entered by pressing the backspace key and then pressing the required number. When 6 numbers have been entered, no more number input may be performed. If the user presses enter before 6 numbers have been entered, the entered number is padded with leading zeros (699 becomes 000699). The leading zeros are not shown on screen so the user is unaware of this conversion.

The user is now shown how many stock amendment records have been entered (for this session), by means of a message at the bottom of the screen.


Number of entered ‘A’ type transactions entered.

No check is performed with regard to customer code and part number entry, so the user may in fact enter characters where only numeric data is allowed. This is because the last character entered may be ‘X’ (checkDigit), so it is not possible to restrict the user to only entering numeric data for this field. The part number is checked for this type of error within the validation program (494792P1).

When the user presses a key they are returned back to the main menu, where further transactions types may be selected to be entered.

5. Delete Stock Record [Z]


Zenith Paints Program Zero Delete Stock Record Screen.

When the user enters 5 on their keyboard, the above screen is displayed. The user may not enter the type of transaction, because the stock deletion type is set throughout the seven programs as type ‘Z’. This removes the chances of the user entering an incorrect type.

A message is displayed at the bottom of the screen informing the user that they may press the Escape key to abort this screen. If the Escape key is pressed the user is asked to confirm their intention to abort the current screen. If the user presses the ‘Y’ key then they are returned back to the main menu, with all entered data lost.


Informing user that ESC key will abort current screen.


Confirm they wish to abort current screen.

The user must now enter a part number. This input is limited to 6 characters, as indicated by the six dots on the screen. The cursor will be flashing at the first dot; each key entered will replace the corresponding dot. An incorrect key may be re-entered by pressing the backspace key and then pressing the required key. When 6 keys have been entered, no more key input may be performed. If the user presses enter before 6 keys have been entered, this is taken to be the end of user input. The user is now shown how many stock deletion records have been entered (for this session), by means of a message at the bottom of the screen.


Number of entered ‘Z’ type transactions entered.

No check is performed here as to what is being input, so the user may in fact enter characters where only numeric data is allowed. This is because the last character entered may be ‘X’ (checkDigit), so it is not possible to restrict the user to only entering numeric data for this field. The part number is checked for this type of error within the validation program (494792P1).

When the user presses a key they are returned back to the main menu, where further transactions types may be selected to be entered.

6. Create a New Stock Record [N]


Zenith Paints Program Zero New Stock Record Screen.

When the user enters 6 on their keyboard, the above screen is displayed. The user may not enter the type of transaction, because the stock creation type is set throughout the seven programs as type ‘N’. This removes the chances of the user entering an incorrect type.

A message is displayed at the bottom of the screen informing the user that they may press the Escape key to abort this screen. If the Escape key is pressed they are asked to confirm their intention to abort the current screen. If the user presses the ‘Y’ key then they are returned back to the main menu, with all entered data lost.


Informing user that ESC key will abort current screen.


Confirm they wish to abort current screen.

The user must now enter a part number. This input is limited to 6 characters, as indicated by the six dots on the screen. The cursor will be flashing at the first dot; each key entered will replace the corresponding dot. An incorrect key may be re-entered by pressing the backspace key and then pressing the required key. When 6 keys have been entered, no more key input may be performed. If the user presses enter before 6 keys have been entered, this is taken to be the end of user input.

The user must now enter a part description. This input is limited to 19 characters, as indicated by the nineteen dots on the screen. The cursor will be flashing at the first dot; each key entered will replace the corresponding dot. An incorrect key may be re-entered by pressing the backspace key and then pressing the required key. When 19 keys have been entered, no more key input may be performed. If the user presses enter before 19 keys have been entered, this is taken to be the end of user input.

The user must now enter a supplier code. This input is limited to 2 numbers, as indicated by the two dots on the screen. Only numeric data may be entered here, any other key press is ignored. The cursor will be flashing at the first dot; each number entered will replace the corresponding dot. An incorrect number may be re-entered by pressing the backspace key and then pressing the required number. When 2 numbers have been entered, no more number input may be performed. If the user presses enter before 2 numbers have been entered, the entered number is padded with leading zeros (3 becomes 03). The leading zeros are not shown on screen so the user is unaware of this conversion.

The user must now enter the available free stock. This input is limited to 6 numbers, as indicated by the six dots on the screen. Only numeric data may be entered here, any other key press is ignored. The cursor will be flashing at the first dot; each number entered will replace the corresponding dot. An incorrect number may be re-entered by pressing the backspace key and then pressing the required number. When 6 numbers have been entered, no more number input may be performed. If the user presses enter before 6 numbers have been entered, the entered number is padded with leading zeros (700 becomes 000700). The leading zeros are not shown on screen so the user is unaware of this conversion.

The user must now enter the minimum stock level. This input is limited to 4 numbers, as indicated by the four dots on the screen. Only numeric data may be entered here, any other key press is ignored. The cursor will be flashing at the first dot; each number entered will replace the corresponding dot. An incorrect number may be re-entered by pressing the backspace key and then pressing the required number. When 4 numbers have been entered, no more number input may be performed. If the user presses enter before 4 numbers have been entered, the entered number is padded with leading zeros (23 becomes 0023). The leading zeros are not shown on screen so the user is unaware of this conversion.

The user must now enter a selling price. This input is limited to 6 numbers, as indicated by the six dots on the screen. Only numeric data may be entered here, any other key press is ignored. The cursor will be flashing at the first dot; each number entered will replace the corresponding dot. An incorrect number may be re-entered by pressing the backspace key and then pressing the required number. When 6 numbers have been entered, no more number input may be performed. If the user presses enter before 6 numbers have been entered, the entered number is padded with leading zeros (699 becomes 000699). The leading zeros are not shown on screen so the user is unaware of this conversion.

The user is now shown how many stock creation records have been entered (for this session), by means of a message at the bottom of the screen.


Number of entered ‘N’ type transactions entered.

No check is performed with regard to customer code and part number entry, so the user may in fact enter characters where only numeric data is allowed. This is because the last character entered may be ‘X’ (checkDigit), so it is not possible to restrict the user to only entering numeric data for this field. The part number is checked for this type of error within the validation program (494792P1).

When the user presses a key they are returned back to the main menu, where further transactions types may be selected to be entered.

7. End Program

When the user selects this option the transaction file is closed, and then reopened in read only mode. The printer is also opened up in write mode. Each transaction which is stored on the transaction file is now read from disk and printed under suitable headings on the printer. Because of the amount of information, the printer is set up in landscape and condensed mode so all the information can be presented in a readable format.

A count of how many records that have been printed is also stored. This total is printed at the end of the printout. The transaction file and printer are then closed and the user returned back to the operating system.

Design decisions:

There were various design decisions made during the course of this program. The first one was that of fixing the transaction types so that the user may not enter them. This is the case for all transaction types with the exception of the issue/receipt transaction. With issue/receipt transaction type the user may only enter either ‘I’ or ‘R’, no other character will be accepted by the program. This decision was made so that user errors are made very unlikely with regard to transaction types. This makes validating the transactions a little easier within the validation program (494792P1).

The decision to use a custom function to copy the relevant parts of the read in text line, rather than a standard c function was because I felt I needed more flexibility in the string copying. As this function is used in five of the seven programs it was a justified decision in my opinion.

The decision to give the user the chance to abort the current screen was made because it is quite easy to select an incorrect menu option. Previously the user would have had to enter data for that transaction type, albeit if it were incorrect so as just to get off that screen. Allowing the user the chance to abort the screen will limit the number of incorrect entries within the transaction file.

The way the program is structured should make it quite easy to modify, such as the time when the customer decides they need another transaction type, or an existing transaction type needs further data to be entered. These types of changes should be quite straight forward to implement as the program is divided into very distinct individual functions.

Limitations:

There are various limitations to this program. One of them is to do with the reliance upon the conio header file for screen manipulation. If the program were to be ported to another operating system the likely hood of these screen functions being available is very unlikely. Since a lot of the programs functionality is to do with the layout of data on the screen, there would be a lot of changes required to make the current code compile and work correctly on other operating systems (such as UNIX).

There is a limitation in that previously entered fields may not be edited, if the user notices an error on a previous field on the current screen there is no way in which to correct it, apart from aborting the current screen and re-entering all the data again (not very desirable). It is also impossible to re-enter the last character of a field because as soon as the maximum number of characters have been entered input is then moved to the next field.

All of the programs are limited to using a Hewlett Packard printer as all printouts use Hewlett Packard specific escape codes to format the output. If the printer is changed for a different make then this program will need modification and recompilation. The modifications are all contained within the printer.h header file and so should not cause any problems if this task is required.

Another limitation when it comes to printing is that if the printer is offline when the printout is to be produced the output will be lost. It may be worth while writing this data to a disk file as well as attempting to send it to the printer. This extra functionality would not take much extra coding to accomplish.

Comments rss
Comments rss
Trackback
Trackback

Leave a Reply

Click here to cancel reply.

You must be logged in to post a comment.

Search @incubus

Recent Posts

  • Compressed Hard Disk Image
  • It’s been along time …
  • T209 ECA Result
  • Old Linux Discs…
  • Panasonic CF-U1 / 2D Barcode Imager
  • Useful Gentoo Aliases
  • Hosting Provider Changed.
  • Linux – Merge AVI Files
  • Coders at Work
  • Remove OGA Office Not Genuine Notifications (KB949810)

Links

  • Demonoid
  • Engadget
  • Gentoo Linux
  • Gentoo Planet
  • Gentoo Universe
  • GNOME
  • GNOME Planet
  • ISO Hunt
  • OS News
  • Piratebay

Navigation

  • Register
  • Log in
  • Entries RSS
  • Comments RSS
  • WordPress.org

Archives

  • May 2010 (1)
  • February 2010 (1)
  • December 2009 (3)
  • November 2009 (2)
  • September 2009 (4)
  • August 2009 (1)
  • July 2009 (1)
  • May 2009 (2)
  • April 2009 (1)
  • February 2009 (2)
  • January 2009 (1)
  • December 2008 (1)
  • November 2008 (1)
  • October 2008 (3)
  • September 2008 (7)
  • August 2008 (16)

Categories

  • 4240 (1)
  • 4250 (1)
  • Code (8)
  • Linux (29)
  • ODB2 (2)
  • Open University (6)
  • Tips & Tricks (13)
  • Uncategorized (5)

Stats

Visits Today: 13
rss Comments rss design by jide powered by Wordpress get firefox
© Copyright 1999-2010 @incubus. All Rights Reserved. All trademarks acknowledged.
incubus.co.uk || incubus.mobi || rankinstine.co.uk