package org.wikiwebserver.sync;

import java.io.File;
import java.util.Arrays;
import java.util.Calendar;
import java.util.GregorianCalendar;

import page.tools.xml.JavaProgramDetails;

public class ProgramDetails extends JavaProgramDetails {
    
    public ProgramDetails() {
        this.setName("JSiteSync");
        this.setVersion("0.5");
        Calendar cal = new GregorianCalendar();
        //cal.set(Calendar.YEAR, 2008);
        //cal.set(Calendar.MONTH, Calendar.JANUARY);
        //cal.set(Calendar.DAY_OF_MONTH, 13);
        this.setReleaseDate(cal.getTimeInMillis());
        this.setCostCurr("GBP");
        this.setCostInPennies(0);
        this.setType("Freeware");
        this.setReleaseStatus("New Release");
        this.setInstallSupport("Install and Uninstall");
        this.setOsSupport("WinXP, Windows2000, Windows2003, Linux, Mac OS X, Java");
        this.setLanguage("English");
        this.setRecentChangeInfo("Fixed problem with timeouts on last block");
        this.setCategory("Utilities");
        this.setCategoryClass("System Utilities::Backup & Restore");
        this.setRequirements("Java Runtime Environment 1.5+");
        this.setFileSizeInBytes(new File("JSiteSync.jar").length());
        
        String[] keywords = new String[] { "jfilerecovery",
                "file recovery", "copy damaged file", "cyclic redundancy check",
                "copy corrupted file", "crc copy error", "crc", "cannot copy",
                "data error", "data error (cyclic redundancy check)",
                "problem copying file", "damaged cd", "damaged dvd", 
        };
        this.setKeywords(Arrays.asList(keywords));
        
        this.setDescription45("Recover files from damaged media.");           
        this.setDescription80("Recovers files from damaged hard drives, CDs, DVDs and Flash media.");  
        this.setDescription250("JFileRecovery is a free Java Web Start application that recovers files" +
        		               " from damaged hard drives, CDs, DVDs and Flash media very rapidly." +
        		               " If the file is visible within the operating system, there is a very" +
        		               " good chance that JFileRecovery can copy it.");
        this.setDescription450("JFileRecovery is a free Java Web Start application that can copy files" +
        		               " from damaged storage devices and media, skipping over problematic" +
        		               " regions that typically cause copying to fail. If the file is listed," +
        		               " there is a good chance that JFileRecovery can salvage much of the" +
        		               " data with minimal corruption. For many media files such as MP3, MPEG," +
        		               " AVI and JPEG, corruption is often not even noticeable."); 
        this.setDescription2000("JFileRecovery is a Java application that can copy files from damaged" +
        		                " storage devices and media, skipping over problematic regions that" +
        		                " typically cause copying to fail. If the file is listed, there is a" +
        		                " good chance that JFileRecovery can salvage much of the data with" +
        		                " minimal corruption. For many media files such as MP3, MPEG, AVI and" +
        		                " JPEG, corruption is often not even noticeable. Copying large video" +
        		                " files from scratched CDs and DVDs often results in CRC errors," +
        		                " aborting the process and making transferring the file impossible." +
        		                " JFileRecovery can bypass these CRC errors, with minimal data loss" +
        		                " which may only be noticeable as a single bad frame in the video." +
        		                " JFileRecovery is not based on low level disk reading but on the" +
        		                " observation that damaged areas take longer to read. The" +
        		                " multi-threaded design of JFileRecovery makes it possible to abort" +
        		                " reads from slow responding regions and continue the copy process." +
        		                " Additional attempts at recovering bad regions can be made as required." +
        		                " JFileRecovery was developed to recover large video files from CDRs" +
        		                " with scratched top surfaces. Blocks of 1KB in size are not noticeable" +
        		                " in most video files unless they occur at the very beginning or end of" +
        		                " the file.");     
        
        this.setFilenameLong("JFileRecovery.jnlp");
        this.setDownloadURL("http://www.jfilerecovery.com/JFileRecovery.jnlp");
        this.setDownloadURL2("http://www.wikiwebserver.org/com/jfilerecovery/JFileRecovery.jnlp");

        this.setInformationURL("http://www.jfilerecovery.com");        
        this.setScreenshotURL("http://www.jfilerecovery.com/templates/com/jfilerecovery/screenshot.gif");
        this.setIconURL("http://www.jfilerecovery.com/templates/com/jfilerecovery/icon.gif");
        this.setOrderURL("http://www.jfilerecovery.com/page/com/jfilerecovery/Contributions.class");
        
        this.setDistributionPermissions("You may distribute an unlimited number of copies of this software;" +
        		                        " provided that each copy shall be a true and complete copy including" +
        		                        " this Agreement. You are NOT allowed to modify the original" +
        		                        " distribution package in any way.");
        
        this.setEndUserLicenceAgreement("LIMITATIONS\r\n" +
                                        "You are NOT allowed to modify, reverse engineer, decompile," +
                                        " disassemble or otherwise attempt to reconstruct or discover the" +
                                        " source code, or any parts of it, or discover or reconstruct any" +
                                        " mechanism from the binaries of this SOFTWARE\r\n\r\n" +
                                        "LIMITED LIABILITY\r\n" +
                                        "In no event shall the author of this Software be liable for any" +
                                        " damages whatsoever arising out of the use of or inability to use" +
                                        " this product.");
        
        // JNLP settings
        this.setCodebase("http://www.wikiwebserver.org/");
        this.setVendor("Michael Gardiner");      
        this.setJ2seVersion("1.6+");
        this.setOnline(true);
        this.setMenuTitle("JSiteSync");
        //this.setProgramIcon("");
        //this.setProgramSplash("");
        this.setJaredResources(new String[] { "/JSiteSync.jar" });
        this.setCommandLineArguments(null);
        this.setMainClass("org.wikiwebserver.sync.gui.JSiteSync");     
    }
}

