var browserOS;
var browserName;
var browserVersion;

// --------------------------------------------
var debugWin;
function debugwrite(str) {
alert(str);
/*
    if (debugWin == null || debugWin.closed) {
	    debugWin = window.open("", "debugWin", "width=450,height=600,scrollbars,resizable");
    }
    debugWin.document.write(str + "<BR>");
*/
}

// --------------------------------------------
function getBrowserID() {
    var appVersion = navigator.appVersion;
	if (appVersion.indexOf("Win") > 0) {
        browserOS = "WIN";
    } else if (appVersion.indexOf("Mac") > 0) {
        browserOS = "MAC";
    } else if (appVersion.indexOf("X11") > 0) {
        browserOS = "UNX";
    } else {
        browserOS = "UNK";
    }

	var browser = navigator.appName;
    if (browser.substring(0, 8) == "Netscape") {
        browserName = "NN";
    } else if (browser.substring(0, 9) == "Microsoft") {
        browserName = "IE";
    } else {
        browserName = browser;
    }

	var msidx = appVersion.indexOf("MSIE");
	if (msidx > 0) {
       browserVersion = parseFloat(appVersion.substring(msidx+5)) * 1000;
	} else {
       browserVersion = parseFloat(appVersion) * 1000;
	}
}

function islower(c) {
	if (c >= 'a' && c <= 'z')
		return true;
	else
		return false;
}

// --------------------------------------------
var dogData;

function OneDog(n, d, f) {
    this.name = n;
    this.data = d;
    this.file = f;
    this.score = 0;
}

function DogData() {

}

function initDogData() {

dogData = new DogData();
dogData.dog0 = new OneDog("Affenpinscher", "135F52331313Y151202NNNNNNYNNNNNNNNYNNNY", "affenpin.html");
dogData.dog1 = new OneDog("Afghan Hound", "462I35234540N335305YYYNNYYNNNNNNNNNYNNN", "afghhoun.html");
dogData.dog2 = new OneDog("Airedale Terrier", "322C42345452N343305YNYNNNYYYNNNNNNNNYNN", "aireterr.html");
dogData.dog3 = new OneDog("Akita ", "451B33433310N214304YNYNNNYYYNNNYNNNNNNN", "akita.html");
dogData.dog4 = new OneDog("Alaskan Malamute", "454B55324210N324235NNNNNNNNNYNNYYYNNNNN", "alasmala.html");
dogData.dog5 = new OneDog("American Bulldog", "512A41553210N443304YNYNNNYYNNNNNNYNNNNN", "amerbull.html");
dogData.dog6 = new OneDog("American Eskimo Dog", "355B22453210Y552314NNNNNNYYNNNNNNNYNYNY", "amereski.html");
dogData.dog7 = new OneDog("American Foxhound", "413D41225110N535305YNYNNNYNNNNNNNNYNNNN", "amerfoxh.html");
dogData.dog8 = new OneDog("American Pit Bull Terrier", "311A43445111N422304YNYNNNYNNNNNNYYYNYNY", "ampibute.html");
dogData.dog9 = new OneDog("American Staffordshire Terrier ", "312A53435111N422304YNNNNNYNNNNNNYYYNYYY", "amestate.html");
dogData.dog10 = new OneDog("American Water Spaniel", "325G52243310Y553305YNYYNNYYNNNNNNNYNNNN", "amewatsp.html");
dogData.dog11 = new OneDog("Anatolian Shepherd Dog", "532Z15523210N244332NNNNNNYYNNNNNNNNNNNN", "anatshep.html");
dogData.dog12 = new OneDog("Argentine Dogo", "412A22543211N443334YNYNNNYYYNNNNNNNNYYN", "argedogo.html");
dogData.dog13 = new OneDog("Australian Cattle Dog", "311H21454110N324305NNNYNYYYNNNNNNNYNYNY", "auscatdo.html");
dogData.dog14 = new OneDog("Australian Shepherd", "331H24354112N554315NNNYNYYYYYNNNNNYNYNY", "austshep.html");
dogData.dog15 = new OneDog("Australian Terrier", "132C32241322Y351303NNYNNNYNNNNNNNNYNNNY", "austterr.html");
dogData.dog16 = new OneDog("Basenji", "211I34333110N332305YYYYYNYNNNNNNNNYYNNN", "basenji.html");
dogData.dog17 = new OneDog("Basset Hound", "311D51234310Y551101YNYNNNYNNNNNNNNNNNNY", "basshoun.html");
dogData.dog18 = new OneDog("Beagle", "213D52233110Y532303YNYNNNYNYNNNNNNYNNNN", "beagle.html");
dogData.dog19 = new OneDog("Bearded Collie", "362H52334410Y553335NNYNNYYNNNNNNNNYNYNY", "bearcoll.html");
dogData.dog20 = new OneDog("Beauceron", "412H11445111N254304NNYNNYYYYNNNNNNYNYYN", "beaucero.html");
dogData.dog21 = new OneDog("Bedlington Terrier", "225C41233350Y311303NNNNNNYNNNNNNNNNNNNN", "bedlterr.html");
dogData.dog22 = new OneDog("Belgian Malinois", "412H22355214N353305NNYYNYYYYYNNYYNYNYYY", "belgmali.html");
dogData.dog23 = new OneDog("Belgian Sheepdog", "462H32355510N253305NNYYNYYYYYNNNNNYNYYY", "belgshee.html");
dogData.dog24 = new OneDog("Belgian Tervuren", "462H32355510N353325NNYYNYYYYYNNNNNYNYYY", "belgterv.html");
dogData.dog25 = new OneDog("Bernese Mountain Dog", "461Z41243310Y554204NNYNNYYYNYNNNYNNNYNN", "bermoudo.html");
dogData.dog26 = new OneDog("Bichon Frise", "221K51243530Y551202NNNNNNYNNNNNNNNYNYNY", "bichfris.html");
dogData.dog27 = new OneDog("Black and Tan Coonhound", "414D32325210N324305YNYNNNYNNNNNNNNYNNNN", "blantaco.html");
dogData.dog28 = new OneDog("Black Russian Terrier", "472Z11443442N242335NNYYNNYYYYNNYNNYNYYY", "blaruste.html");
dogData.dog29 = new OneDog("Bloodhound", "413D52224210N523305YNYNNNYNYYNNNNNNNNNN", "bloodhou.html");
dogData.dog30 = new OneDog("Bluetick Coonhound", "413D42335310N554305YNYNNNNNNNNNNNNNNNNN", "bluecoon.html");
dogData.dog31 = new OneDog("Border Collie", "355H22455110N355315NNNNNYYNYYNNNNNYNYNY", "bordcoll.html");
dogData.dog32 = new OneDog("Border Terrier", "210C51243220Y532304YNYNNNYNNNNNNNNYNYNY", "bordterr.html");
dogData.dog33 = new OneDog("Borzoi", "461I44344310N333305YYNNNNNNNNNNNNNNYNNN", "borzoi.html");
dogData.dog34 = new OneDog("Boston Terrier", "210A40243211Y501002NNNNNNYNNNNNNNNNNNNN", "bostterr.html");
dogData.dog35 = new OneDog("Bouvier des Flandres", "431H34344343N544325NNYNNYYYYYNNNYNYNYYN", "boudesfl.html");
dogData.dog36 = new OneDog("Boxer", "411A51344213Y553335NNNNNNYYYYNNNNNNNYYY", "boxer.html");
dogData.dog37 = new OneDog("Boykin Spaniel", "352G52244322Y552304YNYNNNNNNYNNNNNYNYNN", "boykspan.html");
dogData.dog38 = new OneDog("Briard", "462H34335411N243305NNNNNYYYYYNNNNNNNNNN", "briard.html");
dogData.dog39 = new OneDog("Brittany ", "342E34335322N255305YNNYYNNNNNNNNNNNNNNN", "brittany.html");
dogData.dog40 = new OneDog("Brussels Griffon", "135F51441343Y351302NNNNNNYNNNNNNNNNNNNY", "brusgrif.html");
dogData.dog41 = new OneDog("Bullmastiff", "411A32423210N222304NNYNNNYYYNNNNNNNNNNN", "bullmast.html");
dogData.dog42 = new OneDog("Bull Terrier", "312A41423110N323105NNNNNNYNNNNNNNNYNYNY", "bullterr.html");
dogData.dog43 = new OneDog("Cairn Terrier", "162C44343230Y351303YNYNNNYNNNNNNNNYNYNY", "cairterr.html");
dogData.dog44 = new OneDog("Canaan Dog", "312B24453110N343325NNYNNYYYYYNNNNNYNYNN", "canadog.html");
dogData.dog45 = new OneDog("Cane Corso", "411A11543113N243304YNYNNNYYYYNNNYYYNYYY", "canecors.html");
dogData.dog46 = new OneDog("Cardigan Welsh Corgi", "242H33243214Y341303NNYNNYYYNNNNNNNYNYNN", "carwelco.html");
dogData.dog47 = new OneDog("Cavalier King Charles Spaniel", "241g31143312Y352202NNNNNNNNNNNNNNNNNYNN", "cakichsp.html");
dogData.dog48 = new OneDog("Cesky Terrier", "232C43233330Y451303YNYNNNYYNNNNNNNNNNNN", "ceskterr.html");
dogData.dog49 = new OneDog("Chesapeake Bay Retriever", "411E32445210N453305YNYYNNYYNNNNNNNNNYYN", "chebayre.html");
dogData.dog50 = new OneDog("Chihuahua", "115F21232110Y141101NNNNNNYNNNNNNNNNNNNN", "chihuahu.html");
dogData.dog51 = new OneDog("Chinese Crested", "271F54231110Y351101NNNNNNNNNNNNNNNYNNNY", "chincres.html");
dogData.dog52 = new OneDog("Chinese Shar-Pei", "311A32443110N441204NNNNNNYYNNNNNNNNNYNN", "chishape.html");
dogData.dog53 = new OneDog("Chow Chow", "350B11433410N312204NNNNNNYYNNNNNNNNNNNN", "chowchow.html");
dogData.dog54 = new OneDog("Clumber Spaniel", "341G35333342Y552304YNYYNNNNNNNNNNNNNNNN", "clumspan.html");
dogData.dog55 = new OneDog("Cocker Spaniel", "245G53243442Y552304YNYYNNYNNNNNNNNYNYNN", "cockspan.html");
dogData.dog56 = new OneDog("Collie (Rough)", "485H42243420Y553225NNYYNYYYNYNYNYNYNYNY", "coroansm.html");
dogData.dog57 = new OneDog("Collie (Smooth)", "445H42243210Y553225NNYYNYYYNYNYNYNYNYNY", "coroansm.html");
dogData.dog58 = new OneDog("Curly-Coated Retriever", "422E34345210Y554335YNYYNNYYNNNNNNNYNYNN", "curcoare.html");
dogData.dog59 = new OneDog("Dachshund", "115D22331110Y351301YNYNNNYNNNNNNNNNNNNY", "dachshun.html");
dogData.dog60 = new OneDog("Dalmatian", "312E32345310N453305NNYNNNYYNNNNNNNYNNNN", "dalmatia.html");
dogData.dog61 = new OneDog("Dandie Dinmont Terrier", "235C31333350Y322302YNYNNNYYNNNNNNNNNNNN", "dandinte.html");
dogData.dog62 = new OneDog("Doberman Pinscher", "412A21555213N253305NNYNNNYYYYNNNNNNNYYN", "dobepins.html");
dogData.dog63 = new OneDog("Dogue de Bordeaux", "412A12534110N241202NNNNNNYYYNNNNYYNNNNN", "dogde_bo.html");
dogData.dog64 = new OneDog("English Bulldog", "311A52323310Y551301NNNNNNNNNNNNNNNYNYNN", "englbull.html");
dogData.dog65 = new OneDog("English Cocker Spaniel", "342G51243342Y533304YNYYNNYNNNNNNNNYNYNN", "engcocsp.html");
dogData.dog66 = new OneDog("English Foxhound", "413D41234110N535305YNYNNNYNNNNNNNNYNNNN", "englfoxh.html");
dogData.dog67 = new OneDog("English Setter", "445E51235340Y553305YNYYYNYNNNNNNNNYNNNN", "englsett.html");
dogData.dog68 = new OneDog("English Springer Spaniel", "342G51345342Y423305YNYYNNYNNNNNNNNYNYNY", "engsprsp.html");
dogData.dog69 = new OneDog("English Toy Spaniel", "142g31241312Y351302NNNNNNYNNNNNNNNNNNNN", "engtoysp.html");
dogData.dog70 = new OneDog("Field Spaniel", "342G52244242Y554205YNYYNNYNNNNNNNNNNNNN", "fielspan.html");
dogData.dog71 = new OneDog("Finnish Spitz", "255B34433310Y451305YNYNNNYYNNNNNNNNNNNN", "finnspit.html");
dogData.dog72 = new OneDog("Flat-Coated Retriever", "442E52245310Y553305YNYYNNYNNNNNNNNYNYNN", "flacoare.html");
dogData.dog73 = new OneDog("French Bulldog", "212A31231110Y341201NNNNNNYNNNNNNNNNNNNN", "frenbull.html");
dogData.dog74 = new OneDog("German Pinscher", "315A14545113N142335YNYNNNYYNYNNNNNYNYNY", "germpins.html");
dogData.dog75 = new OneDog("German Shepherd Dog", "432H31455210N554335NNYYNYYYYYNYYNNYNYYN", "gershedo.html");
dogData.dog76 = new OneDog("German Shorthaired Pointer", "415E32335312N344305YNYYYNYNNNNNNNNNNNNN", "gershopo.html");
dogData.dog77 = new OneDog("German Wirehaired Pointer", "420E20325322N300005YNYYYNYNNNNNNNNNNNNN", "gerwirpo.html");
dogData.dog78 = new OneDog("Giant Schnauzer", "422C34445353N355305NNYNNNYYYNNNNNNNNYYN", "gianschn.html");
dogData.dog79 = new OneDog("Glen of Imaal Terrier", "341C34323332N321301YNNNNNYYNNNNNNNYNNNN", "glofimte.html");
dogData.dog80 = new OneDog("Golden Retriever", "442E51354320Y554335YNYYNNNNNNNYNNNYNYNY", "goldretr.html");
dogData.dog81 = new OneDog("Gordon Setter", "442E32335340Y554305YNYNYNYYNNNNNNNNNNNN", "gordsett.html");
dogData.dog82 = new OneDog("Great Dane", "512A51235110Y544304NNYNNNYYNNNNNYNNNNNN", "greadane.html");
dogData.dog83 = new OneDog("Great Pyrenees ", "562Z34333320N253204NNNNNYYYNYNNYYNNNNNN", "greapyre.html");
dogData.dog84 = new OneDog("Greater Swiss Mountain Dog", "432Z42043310N552202NNYNNNYYNNNNNYNNNYNN", "grswmodo.html");
dogData.dog85 = new OneDog("Greyhound", "411I42233110N332132YYNNNNYNNNNNNNNYYNNN", "greyhoun.html");
dogData.dog86 = new OneDog("Harrier", "313D32225110N535305YNYNNNYNNNNNNNNYNNNN", "harrier_.html");
dogData.dog87 = new OneDog("Havanese", "182k41152420Y451301NNNNNNYNNNNNNNNYNNNY", "havanese.html");
dogData.dog88 = new OneDog("Hovawart", "452E34444310N523205NNYNNNYYYYNNNNNYNYYN", "hovawart.html");
dogData.dog89 = new OneDog("Ibizan Hound", "312I33335110N424105YYYYYNNNNNNNNNNYYNNN", "ibizhoun.html");
dogData.dog90 = new OneDog("Icelandic Sheepdog", "345B51353210Y453234NNYNNYYNNYNNNNNYNYNY", "icelshee.html");
dogData.dog91 = new OneDog("Irish Red and White Setter", "452E44244310N454304YNYYYNNNNNNNNNNYNYNN", "irreanws.html");
dogData.dog92 = new OneDog("Irish Setter", "441E51245340Y454305YNYYYNYNNNNNNNNYNYNN", "irissett.html");
dogData.dog93 = new OneDog("Irish Terrier", "222C33443252Y312304YNYYNNYYYNNNNNNNNNNN", "iristerr.html");
dogData.dog94 = new OneDog("Irish Water Spaniel", "321G32345440N353305YNYYNNYNNNNNNNNYNYNN", "iriwatsp.html");
dogData.dog95 = new OneDog("Irish Wolfhound", "532I43334320Y554305YYYNNNNYNNNNNNNNYNNN", "iriswolf.html");
dogData.dog96 = new OneDog("Italian Greyhound", "112i31241110N351104NNNNNNNNNNNNNNNNNNNN", "italgrey.html");
dogData.dog97 = new OneDog("Parson Russell Terrier", "215C23435222N223304YNYNNNYNNNNNNNNYNNNY", "jacruste.html");
dogData.dog98 = new OneDog("Japanese Chin", "141g52241410Y351304NNNNNNYNNNNNNNNNNNNY", "japachin.html");
dogData.dog99 = new OneDog("Keeshond", "355B51243420Y553204NNNNNNYYNNNNNNNYNYNY", "keeshond.html");
dogData.dog100 = new OneDog("Kerry Blue Terrier", "335C21433352N452304YNYYNNYYYNNNNNNNNNNY", "kerblute.html");
dogData.dog101 = new OneDog("Komondor", "462J14423210N144304NNNNNNYYYNNNNNNNNNNN", "komondor.html");
dogData.dog102 = new OneDog("Kuvasz", "432Z15424310N344205NNNNNNYYNNNNNNNNNNNN", "kuvasz.html");
dogData.dog103 = new OneDog("Labrador Retriever", "412E52354110Y553335YNYYNNYNYYNNYYNYNYNY", "labrretr.html");
dogData.dog104 = new OneDog("Lakeland Terrier", "235C54523352N222304YNYNNNYNNNNNNNNYNYNY", "laketerr.html");
dogData.dog105 = new OneDog("Leonberger", "531Z51344310N554201NNYNNYYNNYYNYYNYNYNN", "leonberg.html");
dogData.dog106 = new OneDog("Lhasa Apso", "282 21323410N311002NNNNNNYNNNNNNNNNNNNN", "lhasapso.html");
dogData.dog107 = new OneDog("L&ouml;wchen", "282K53332330Y452303NNNNNNYNNNNNNNNYNYNY", "lowchen.html");
dogData.dog108 = new OneDog("Maltese", "165k31141510Y351302NNNNNNYNNNNNNNNNNYNY", "maltese.html");
dogData.dog109 = new OneDog("Manchester Terrier", "312C22333211Y211104NNNNNNYNNNNNNNNNNNNN", "mancterr.html");
dogData.dog110 = new OneDog("Manchester Terrier (Toy)", "115C31421110Y311102NNNNNNYNNNNNNNNNNNNN", "manterto.html");
dogData.dog111 = new OneDog("Mastiff", "511A42223210N542304NNNNNNYYYNNNNNYNNNNN", "mastiff.html");
dogData.dog112 = new OneDog("Miniature Bull Terrier", "212C43433210N313101YNNNNNYNNNNNNNNYNYNY", "minbulte.html");
dogData.dog113 = new OneDog("Miniature Pinscher", "115F24441113N351102NNNNNNYNNNNNNNNYNYNY", "minipins.html");
dogData.dog114 = new OneDog("Miniature Poodle", "225k32253452Y351312NNNYNNYNNNNNNNNYNYNY", "minipood.html");
dogData.dog115 = new OneDog("Miniature Schnauzer", "222C32343353Y351304YNYNNNYNNNNNNNNNNYNY", "minischn.html");
dogData.dog116 = new OneDog("Neapolitan Mastiff", "511A11523213N242301NNNNNNYYNNNNNNNNNNNN", "neapmast.html");
dogData.dog117 = new OneDog("Newfoundland", "560Z43233310Y552205NNNNNNYYNNYNNYYNNYNN", "newfound.html");
dogData.dog118 = new OneDog("Norfolk Terrier", "135C55243342Y451303YNYNNNYNNNNNNNNYNNNN", "norfterr.html");
dogData.dog119 = new OneDog("Norwegian Buhund", "345B54333210Y442214YNYYNYYNNNNNNNNYNYNY", "norwbuhu.html");
dogData.dog120 = new OneDog("Norwegian Elkhound", "355B44424310Y524205YNYNNYYYNNNNYNNYNNNN", "norwelkh.html");
dogData.dog121 = new OneDog("Norwegian Lundehund", "245B35223210N433203YNNNNNYNNNNNNNNYNNNN", "norwlund.html");
dogData.dog122 = new OneDog("Norwich Terrier", "135C55243342Y451303YNYNNNYNNNNNNNNYNNNN", "norwterr.html");
dogData.dog123 = new OneDog("Nova Scotia Duck Tolling Retriever", "352E32345320N433335YNYNNNYNNYNNNNNYNYNY", "noscdure.html");
dogData.dog124 = new OneDog("Old English Sheepdog", "462H43223532N553305NNNYNYYNNNNNNNNNNNNN", "oldengsh.html");
dogData.dog125 = new OneDog("Otterhound", "433D42224410N334305YNYNNNYNNNNNNNNNNNNN", "otterhou.html");
dogData.dog126 = new OneDog("Papillon", "141g41252520Y351302NNNNNNYNNNNNNNNYNYNY", "papillon.html");
dogData.dog127 = new OneDog("Pekingese", "165F21441410Y151201NNNNNNYNNNNNNNNNNNNN", "pekinges.html");
dogData.dog128 = new OneDog("Pembroke Welsh Corgi", "212H33243212Y341303NNYNNYYYNNNNNNNYNYNN", "pemwelco.html");
dogData.dog129 = new OneDog("Petit Basset Griffon Vendeen", "322D43333310Y432302YNYNNNYNNNNNNNNYNNNN", "pebagrve.html");
dogData.dog130 = new OneDog("Pharaoh Hound", "312I32334110Y434105YYYNNNNNNNNNNNNYYYNN", "pharhoun.html");
dogData.dog131 = new OneDog("Plott Hound", "311D43454110N313301YNYNNNYYNNNNNNNNNNNN", "plothoun.html");
dogData.dog132 = new OneDog("Pointer", "410E34335110N255305YNYNYNNNNNNNNNNNNNNN", "pointer.html");
dogData.dog133 = new OneDog("Polish Lowland Sheepdog", "382H34443412N353334NNYNNYYNNNNNNNNYNYNY", "pollowsh.html");
dogData.dog134 = new OneDog("Pomeranian", "155b34431320Y351201NNNNNNYNNNNNNNNYNNNY", "pomerani.html");
dogData.dog135 = new OneDog("Portuguese Water Dog", "322K34343330N552335NNNYNNYYNNYNNNNYNYNY", "porwatdo.html");
dogData.dog136 = new OneDog("Pug", "211a41241210Y551301NNNNNNYNNNNNNNNNNNNY", "pug.html");
dogData.dog137 = new OneDog("Puli", "365H35453410N241305NNNNNYYYYNNNNNNNNYNN", "puli.html");
dogData.dog138 = new OneDog("Pyrenean Shepherd", "275H11454313N242314NNYYNYYYNYNNNNNYNYNY", "pyreshep.html");
dogData.dog139 = new OneDog("Redbone Coonhound", "413D43244210Y243304YNYNNNNNNYNNNNNNNYNY", "redbcoon.html");
dogData.dog140 = new OneDog("Rhodesian Ridgeback", "412D22434110N324305YNYNNNYYNNNNNNNNNNNN", "rhodridg.html");
dogData.dog141 = new OneDog("Rottweiler", "412A34545212N242305NNYNNYYYYNNNNYYNNYYN", "rottweil.html");
dogData.dog142 = new OneDog("Saint Bernard", "561Z51334410N542204NNNNNNYNNYNNNYYNNNNN", "sainbern.html");
dogData.dog143= new OneDog("Saluki", "342I35225210N325104YYYNNNYNNNNNNNNNYNNN", "saluki.html");
dogData.dog144 = new OneDog("Samoyed", "355B34323410Y522205NNNNNYYNNNNNYYYNNNNN", "samoyed_.html");
dogData.dog145 = new OneDog("Schipperke", "245h25341212N341303NNNNNNYYNNNNNNNYNNNY", "schipper.html");
dogData.dog146 = new OneDog("Scottish Deerhound", "421I52224420Y534305YYYNNNNNNNNNNNNYYNNN", "scotdeer.html");
dogData.dog147 = new OneDog("Scottish Terrier", "232C34423330N351302YNNNNNYNNNNNNNNYNNNY", "scotterr.html");
dogData.dog148 = new OneDog("Sealyham Terrier", "265C34433352Y351203YNYNNNYNNNNNNNNNNNNN", "sealterr.html");
dogData.dog149 = new OneDog("Shetland Sheepdog", "265H32253420Y351314NNYNNYYYNNNNNNNYNYNY", "shetshee.html");
dogData.dog150 = new OneDog("Shiba ", "251B34433110Y433304YNYNNNYYNNNNNNNYNNNY", "shiba.html");
dogData.dog151 = new OneDog("Shih Tzu", "165F42431410Y351302NNNNNNYNNNNNNNNNNNNN", "shihtzu.html");
dogData.dog152 = new OneDog("Siberian Husky", "354B54235210N444205NNNNNNNNNNNNYYNNNNNN", "sibehusk.html");
dogData.dog153 = new OneDog("Silky Terrier", "172C44423322N352313YNNNNNYNNNNNNNNYNNNY", "silkterr.html");
dogData.dog154 = new OneDog("Skye Terrier", "265C32422410N311302NNNNNNYNNNNNNNNNNNNN", "skyeterr.html");
dogData.dog155 = new OneDog("Smooth Fox Terrier", "215C44433312N323313YNNNNNYNNNNNNNNYNNNY", "foxtersm.html");
dogData.dog156 = new OneDog("Soft Coated Wheaten Terrier", "361C51333442Y552305YNYNNNYYNNNNNNNYNNNY", "socowhte.html");
dogData.dog157 = new OneDog("Spinone Italiano", "432E31223322N452304YNYYYNYNNYNNNNNYNYNY", "spinital.html");
dogData.dog158 = new OneDog("Staffordshire Bull Terrier", "311A51334210N522302NNNNNNYNNNNNNNNYNYNY", "stabulte.html");
dogData.dog159 = new OneDog("Standard Poodle", "422K31354452Y552304NNYYNNYNNNNNNNNYNYNY", "stanpood.html");
dogData.dog160 = new OneDog("Standard Schnauzer", "322C32433553N311305YNYYNNYYYNNNNNNYNYNY", "stanschn.html");
dogData.dog161= new OneDog("Sussex Spaniel", "344G51423312Y552302YNYYNNYNNNNNNNNNNNNN", "sussspan.html");
dogData.dog162 = new OneDog("Swedish Vallhund", "245H42334210N253303YNYYNYYNNYNNNNNYNYNY", "u_gn_brd_swedvall.html");
dogData.dog163 = new OneDog("Tibetan Mastiff", "535Z14523310N244301NNNNNYYYNNNNNNNNNNNN", "tibemast.html");
dogData.dog164 = new OneDog("Tibetan Spaniel", "145g24433310Y351304NNNNNNYNNNNNNNNYNNNY", "tibespan.html");
dogData.dog165 = new OneDog("Tibetan Terrier", "282 32233510Y342303NNNNNNYNNNNNNNNYNYNN", "tibeterr.html");
dogData.dog166 = new OneDog("Tosa", "511A15443210N442304NNNNNNYYNNNNNNYNNNNN", "tosa.html");
dogData.dog167 = new OneDog("Toy Fox Terrier", "112c42441112Y331313YNNNNNYNNNNNNNNYNYNY", "toyfoxte.html");
dogData.dog168 = new OneDog("Toy Poodle", "125k32251452Y351302NNNNNNYNNNNNNNNYNYNY", "toypood.html");
dogData.dog169 = new OneDog("Vizsla", "312E51245112N453305YNYYYNYNNNNNNNNNNYNN", "vizsla.html");
dogData.dog170 = new OneDog("Weimaraner", "415E32423112N324335YNYYYNYYYYNNNNNYNNNN", "weimaran.html");
dogData.dog171 = new OneDog("Welsh Springer Spaniel", "342G33245342Y553305YNYYNNYNNNNNNNNYNNNN", "welsprsp.html");
dogData.dog172 = new OneDog("Welsh Terrier", "225C33444352Y352305YNYNNNYNNNNNNNNYNNNY", "welsterr.html");
dogData.dog173 = new OneDog("West Highland White Terrier", "245C44334340Y333301YNYNNNYNNNNNNNNYNYNY", "wehiwhte.html");
dogData.dog174 = new OneDog("Whippet", "311I32234110Y332105YYNNNNYNNNNNNNNYYNNN", "whippet.html");
dogData.dog175 = new OneDog("Wire Fox Terrier", "235C42343232N452313YNNNNNYNNNNNNNNYNNNY", "foxterwi.html");
dogData.dog176 = new OneDog("Wirehaired Pointing Griffon", "422E32334232Y454205YNYYYNYNNNNNNNNNNNNN", "wirpoigr.html");
dogData.dog177 = new OneDog("Yorkshire Terrier", "165c31331322Y331302NNNNNNYNNNNNNNNNNNNN", "yorkterr.html");

dogData.numDogs = 178;
}

//***********************************
function Const() {

}

	Const.Size = 0;
	Const.Coat = 1;
	Const.Barking = 2;
	Const.Type = 3;
	Const.Friendliness = 4;
	Const.Independence = 5;

	Const.Dominance = 6;
	Const.Trainability = 7;
	Const.Exercise = 8;
	Const.Grooming = 9;
	Const.Professional = 10;
	Const.Docking = 11;

	Const.Novice = 12;

	Const.Children = 13;
	Const.Pets = 14;
	Const.Space = 15;
	Const.Weather = 16;

	Const.Service = 17;
	Const.Jogging = 18;

	Const.Hunting = 19;
	Const.Sighting = 20;
	Const.Tracking = 21;
	Const.Retrieving = 22;
	Const.Pointing = 23;
	Const.Herding = 24;
	Const.Watchdog = 25;
	Const.Guarding = 26;
	Const.Police = 27;
	Const.Search_Rescue = 28;
	Const.Water_Rescue = 29;
	Const.Guiding = 30;
	Const.Sledding = 31;
	Const.Carting = 32;
	Const.Weights = 33;
	Const.Agility = 34;
	Const.Lure = 35;
	Const.Obedience = 36;
	Const.Schutzhund = 37;
	Const.Tricks = 38

	Const.FlagLast = 39;

	Const.EXACTMATCH = 50;
	Const.OFFBYONE = Const.EXACTMATCH/5;
	Const.OFFBYTWO = Const.EXACTMATCH/10;
	Const.IMPORTANTMATCH = Const.EXACTMATCH*2;
	Const.SECONDDOM = Const.EXACTMATCH;

// --------------------------------------------
var userSizeM = "";
var userCoatM = "";
var userTypesM = "";
var userTraining = 0;
var userHasTrained = 0;
var userExercise = 0;
var userGrooming = 0;
var userProfGrooming = 0;
var userIndependence = 1;
var userFriendlyM = "";
var userDom1 = 1;
var userDom2 = 0;
var userPeople, userPets;
var userSpace = 1;
var userClimate = 0;
var userTalents = "NNNNNNNNNNNNNNNNNNNNNNN";

var typeNames = "ABCDEFGHIJK";

// --------------------------------------------
function quickSortSwap(idx, odx, theList) {
   temp = theList["dog"+idx];
   theList["dog"+idx] = theList["dog"+odx];
   theList["dog"+odx] = temp;
}

// --------------------------------------------
function quickSort(lower, upper, theList) {
   if (lower < upper) {
      quickSortSwap(lower, Math.floor((upper+lower)/2), theList);
      pivot = theList["dog"+lower];
      m = lower;
      for (var idx = lower + 1; idx <= upper; idx++) {
         if (theList["dog"+idx].score < pivot.score) {
             m++;
             quickSortSwap(m, idx, theList);
         }
      }
      quickSortSwap(lower, m, theList);
      quickSort(lower, m - 1, theList);
      quickSort(m + 1, upper, theList);
   }
}

// --------------------------------------------
function DoTheSort(theList) {
    quickSort(0, theList.numDogs-1, theList);
}

// ------------------------------
function getVarsFromCookie() {
    var allCookies = "" + document.cookie;
    //debugwrite("allCookies=" + allCookies);
    var start = allCookies.indexOf("breedSelectorData=");
    //debugwrite("start=" + start);

    if (start == -1) {
        //alert("Cookie data not found (r).");
    } else {
        start += "breedSelectorData=".length;
        var end = allCookies.indexOf(':', start);
        if (end == -1) {
            end = allCookies.length;
        }

        var cookieString = unescape(allCookies.substring(start, end));

        //debugwrite("cookieString=" + cookieString);

        var tokens = cookieString.split("&");

        userSizeM = tokens[0];
        userCoatM = tokens[1];
        userTypesM = tokens[2];
        userFriendlyM = tokens[3];
        userIndependence = tokens[4];
        userDom1 = tokens[5];
        userDom2 = tokens[6];
        userTraining = tokens[7];
        userExercise = tokens[8];
        userGrooming = tokens[9];
        userProfGrooming = tokens[10];

        userHasTrained = (tokens[11] == "Y");

        userPeople = tokens[12];
        userPets = tokens[14];
        userSpace = tokens[16];
        userClimate = tokens[17];
        userTalents = tokens[18];

        var semiPos = userTalents.indexOf(";");
        if (semiPos > -1) {
            userTalents = userTalents.substring(0, semiPos);
        }


        //debugwrite("userSizeM=" + userSizeM);
        //debugwrite("userCoatM=" + userCoatM);
        //debugwrite("userTypesM=" + userTypesM);
        //debugwrite("userTalents=" + userTalents);
    }
}

// --------------------------------------------
function doTheRankings() {
    var idx, dogIdx, dogAttr, usrAttr, dogAttr2;
    var	maxScore, oneDogData;

    if (dogData == null) {
	    initDogData();
    }
    if (dogData.numDogs == null) {
	    initDogData();
    }

	/* --------------------------------------*/
	maxScore = 0;

	if (userTypesM != null && userTypesM.length > 0)
		maxScore += Const.IMPORTANTMATCH*2;
	if (userSizeM != null && userSizeM.length > 0)
		maxScore += Const.IMPORTANTMATCH;
	if (userCoatM != null && userCoatM.length > 0)
		maxScore += Const.EXACTMATCH;

	if (userTraining == 1 ||
	    userTraining == 5)
		maxScore += Const.IMPORTANTMATCH;
	else if (userTraining > 0)
		maxScore += Const.EXACTMATCH;

	if (userExercise != 0)
		maxScore += Const.EXACTMATCH;
	if (userGrooming != 0)
		maxScore += Const.EXACTMATCH;
	if (userProfGrooming != 0)
		maxScore += Const.EXACTMATCH;

	maxScore += Const.EXACTMATCH;

	maxScore += Const.IMPORTANTMATCH;
	if (userDom2 > 0)
		maxScore += Const.SECONDDOM;

	if (userFriendlyM != null && userFriendlyM.length > 0)
		maxScore += Const.EXACTMATCH;

	if (userPeople > 0)
		maxScore += Const.EXACTMATCH;
	if (userPets > 0)
		maxScore += Const.EXACTMATCH;
	if (userSpace > 0)
		maxScore += Const.EXACTMATCH;
	if (userClimate > 0)
		maxScore += Const.EXACTMATCH;

	for (idx=Const.Service; idx <= Const.Tricks+1 && /* the extra 1 is for companion dog */
										idx-Const.Service < userTalents.length; idx++)
		if (userTalents.charAt(idx-Const.Service) == 'Y')
			maxScore += Const.EXACTMATCH;
		else if (userTalents.charAt(idx-Const.Service) == 'I')
			maxScore += Const.IMPORTANTMATCH;

	// --------------------------------------------
	for (dogIdx=0; dogIdx < dogData.numDogs; dogIdx++) {
		oneDogData = dogData["dog" + dogIdx].data;
		var thisScore = 0;

		dogAttr = null;
		dogAttr = oneDogData.charAt(Const.Size);
		for (idx=0; idx < userSizeM.length; idx++) {
			if (userSizeM.charAt(idx) == dogAttr) {
				thisScore += Const.IMPORTANTMATCH;
				break;
			} else if (Math.abs(dogAttr - userSizeM.charAt(idx)) == 1) {
				thisScore += Const.OFFBYONE;
				break;
			}
		}

		dogAttr = oneDogData.charAt(Const.Type);
		if (islower(dogAttr)) {
			dogAttr = dogAttr.toUpperCase();
			dogAttr2 = 'F';
		} else if (dogAttr == 'Z') {
			dogAttr = 'A';
			dogAttr2 = 'J';
		} else {
			dogAttr2 = 0;
		}

		for (idx=0; idx < userTypesM.length; idx++) {
			if (userTypesM.charAt(idx) == dogAttr) {
				thisScore += Const.IMPORTANTMATCH*2;
				break;
			}
			if (userTypesM.charAt(idx) == dogAttr2) {
				thisScore += Const.IMPORTANTMATCH*2;
				break;
			}
		}

		dogAttr = oneDogData.charAt(Const.Coat);
		for (idx=0; idx < userCoatM.length; idx++) {
			if (userCoatM.charAt(idx) == dogAttr)
				thisScore += Const.EXACTMATCH;
		}

		dogAttr = oneDogData.charAt(Const.Friendliness);
		for (idx=0; idx < userFriendlyM.length; idx++)
			if (userFriendlyM.charAt(idx) == dogAttr)
				thisScore += Const.EXACTMATCH;

		dogAttr = oneDogData.charAt(Const.Independence);
		usrAttr = userIndependence;
		if (dogAttr != 0 && usrAttr != 0) {
			if (dogAttr >= usrAttr)
				thisScore += Const.EXACTMATCH;
			else if (Math.abs(dogAttr - usrAttr) == 1)
				thisScore += Const.OFFBYONE;
		}

		if (userTraining == 1) {
			dogAttr = oneDogData.charAt(Const.Dominance);
			if (dogAttr <= 2)
				thisScore += Const.IMPORTANTMATCH;
			else if (dogAttr == 3)
				thisScore += Const.OFFBYONE;
		} else if (userTraining == 5) {
			dogAttr = oneDogData.charAt(Const.Trainability);
			if (dogAttr == 5)
				thisScore += Const.IMPORTANTMATCH;
			else if (dogAttr == 4)
				thisScore += Const.EXACTMATCH;
		} else if (userTraining > 0) {
			dogAttr = oneDogData.charAt(Const.Trainability);
			if (dogAttr >= userTraining)
				thisScore += Const.EXACTMATCH;
		}

		dogAttr = oneDogData.charAt(Const.Exercise);
		if (dogAttr != 0 && userExercise != 0) {
			if (dogAttr <= userExercise)
				thisScore += Const.EXACTMATCH;
			else if (Math.abs(dogAttr - userExercise) == 1)
				thisScore += Const.OFFBYONE;
		}

		dogAttr = oneDogData.charAt(Const.Grooming);
		if (dogAttr != 0 && userGrooming != 0) {
			if (dogAttr <= userGrooming)
				thisScore += Const.EXACTMATCH;
			else if (Math.abs(dogAttr - userGrooming) == 1)
				thisScore += Const.OFFBYONE;
		}

		dogAttr = oneDogData.charAt(Const.Professional);
		if (dogAttr != 0 && userProfGrooming != 0) {
			if (dogAttr <= userProfGrooming)
				thisScore += Const.EXACTMATCH;
			else if (Math.abs(dogAttr - userProfGrooming) == 1)
				thisScore += Const.OFFBYONE;
		}

		dogAttr = oneDogData.charAt(Const.Children);
		if (dogAttr != 0 && userPeople != 0) {
			if (dogAttr == userPeople)
				thisScore += Const.EXACTMATCH;
			else if (Math.abs(dogAttr - userPeople) == 1)
				thisScore += Const.OFFBYONE;
		}

		dogAttr = oneDogData.charAt(Const.Pets);
		if (dogAttr != 0 && userPets != 0) {
			if (dogAttr == userPets)
				thisScore += Const.EXACTMATCH;
			else if (Math.abs(dogAttr - userPets) == 1)
				thisScore += Const.OFFBYONE;
		}

		dogAttr = oneDogData.charAt(Const.Space);
		if (dogAttr != 0 && userSpace != 0) {

			if (dogAttr <= userSpace)
				thisScore += Const.EXACTMATCH;
			else if (Math.abs(dogAttr - userSpace) == 1)
				thisScore += Const.OFFBYONE;
		}

		dogAttr = oneDogData.charAt(Const.Weather);
		if (dogAttr != 0 && userClimate != 0) {

			if (dogAttr == 3)
				thisScore += Const.EXACTMATCH;
			else
				if (dogAttr == userClimate)
					thisScore += Const.EXACTMATCH;
		}

		if (userTalents.charAt(0) == 'Y' || userTalents.charAt(0) == 'I') {		// Service
			if (oneDogData.charAt(Const.Service) > '0') {
				if (userTalents.charAt(0) == 'I')
					thisScore += Const.IMPORTANTMATCH;
				else
					thisScore += Const.EXACTMATCH;
			}
		}

		if (userTalents.charAt(1) == 'Y' || userTalents.charAt(1) == 'I') {		// Jogging
			dogAttr = oneDogData.charAt(Const.Jogging);
			if (dogAttr == 5) {
				if (userTalents.charAt(1) == 'I')
					thisScore += Const.IMPORTANTMATCH;
				else
					thisScore += Const.EXACTMATCH;
			} else if (dogAttr == 4) {
				if (userTalents.charAt(1) == 'I')
					thisScore += Const.EXACTMATCH;
				else
					thisScore += Const.OFFBYONE;
			} else if (dogAttr == 3)
				thisScore += Const.OFFBYTWO;
		}

		if (userTalents.charAt(22) == 'Y' || userTalents.charAt(22) == 'I') {
			dogAttr = oneDogData.charAt(Const.Children);
			if (dogAttr == 5) {
				if (userTalents.charAt(22) == 'I')
					thisScore += Const.IMPORTANTMATCH;
				else
					thisScore += Const.EXACTMATCH;
			} else if (dogAttr == 4) {
				if (userTalents.charAt(22) == 'I')
					thisScore += Const.EXACTMATCH;
				else
					thisScore += Const.OFFBYONE;
			}
			else if (dogAttr == 3)
				thisScore += Const.OFFBYTWO;
		}

		for (idx=Const.Hunting; (idx <= Const.Tricks)
							&& ((idx-Const.Service) < userTalents.length); idx++) {
			if (oneDogData.charAt(idx) == 'Y') {
				if (userTalents.charAt(idx-Const.Service) == 'Y')
					thisScore += Const.EXACTMATCH;
				else if (userTalents.charAt(idx-Const.Service) == 'I')
					thisScore += Const.IMPORTANTMATCH;
			}
		}

		if (!userHasTrained && (oneDogData.charAt(Const.Novice) == 'Y')) {
			thisScore += Const.EXACTMATCH;
	    }

		dogAttr = oneDogData.charAt(Const.Dominance);
		dogAttr = dogAttr * 2;
		if (userDom1 == dogAttr) {
			thisScore += Const.IMPORTANTMATCH;
		} else if (Math.abs(userDom1 - dogAttr) <= 2) {
			thisScore += Const.OFFBYONE;
		} else if (Math.abs(userDom1 - dogAttr) > 5) {
			var toSubtract = Const.EXACTMATCH;

			if (dogAttr > userDom1) {
				toSubtract = Const.IMPORTANTMATCH;

				if (!userHasTrained) {
					toSubtract = toSubtract * 2;

					if (oneDogData.charAt(Const.Novice) == 'N') {
						toSubtract = toSubtract * 2;
					}
				}
			}
			thisScore -= toSubtract;
		}

		if (userDom2 > 0) {
			if (userDom2 == dogAttr) {
				thisScore += Const.SECONDDOM;
			} else if (Math.abs(userDom2 - dogAttr) <= 2) {
				thisScore += Const.OFFBYONE;
			} else if (Math.abs(userDom2 - dogAttr) > 5) {
				thisScore -= Const.SECONDDOM;
			}
		}

		//---------------------------------------------
		if (thisScore < 0)
			thisScore = 0;
		thisScore = (((thisScore) * 100) / maxScore);

		dogData["dog" + dogIdx].score = Math.round(thisScore);

	}

	DoTheSort(dogData);
}

// --------------------------------------------
function showResults() { 
    var doc = document;
	var newurl;

	for (var dogIdx=dogData.numDogs-1; dogIdx >= dogData.numDogs-30; dogIdx--) {
		var filename=dogData["dog" + dogIdx].file;		
		
		var values=filename.split(".");	
		
		doc.writeln('<tr><td>');
		/* The following code is commented by Geeta */
		/* var pos= filename.indexOf('.');		
		var str= filename.substring(0, pos);
		var strurl =document.hidvalue.bsurl.value;
		if (document.hidvalue.urltype.value == "Short")
		{			
			newurl = strurl +"&fn="+str;
     	}
		else
		{
			newurl = strurl +"&filename="+str;
		}
		var newurl = strurl +"&fn="+str; */	
        /* End */

		/* To get the path of displayed links */
		var newurl = "IAMS_Page.jsp?pageID=DBD&breedPage="+filename;
		/* End */
		doc.writeln('<A HREF="'+ newurl);
		doc.writeln('">');			
		var nam= dogData["dog" + dogIdx].name;	
		doc.writeln(nam);
		doc.writeln('</A></td><td>');			
		doc.writeln(dogData["dog" + dogIdx].score);
		doc.writeln('</td></tr>');			
	}
}
