<!--

//
// Create a linked image, including a thumbnail and a hyperlink to display a large image
//
//    Substitution values used
//        layout;
//            "Skowhegan" or "HOn30"	"l"	"HO"	"HOn30"		"Skowhegan and Athens"
//            "Riverside" or "On30"	"r"	"O"	"On30"		"Riverside Yard"
//            "Lakewood"		"l"	"HO"	"HOn30"		"Lakewood"
//            "Airedale" or  "009"	"a"	"OO"	"009"		"Airedale"
//            "Estate"   or  "O9"	"f"	"O"	"09"		"Estate Railway (Not yet named)"
//            "Arizona"	 or  "1n20"    	"1"	"1"	"1n20"		"Arizona 20 inch gauge (Not yet named)"
//            "009Micro"                "m"     "00"    "009"           "009 Micro Layout (Not yet named)"
//        type;
//            "motive"/"locomotive"/"railcar"	"m"
//            "goods"				"g"
//            "passenger"			"p"
//            "layout"				"l"
//            "structure"			"s"
//            "plans"                           "d"  <-- ** NEW **
//
function LinkedImage($inValues)
{
    $Error = "";
    $ImgFormat = "jpg";

    //  Extract passed parameters
    $parmFrom     = GetParmText($inValues, "from");
    $parmLayout   = GetParmText($inValues, "layout");
    $parmType     = GetParmText($inValues, "type");
    $parmImgno    = GetParmText($inValues, "imgno");
    $parmText     = GetParmText($inValues, "text");
    $parmAlign    = GetParmText($inValues, "align");
    $parmLink     = GetParmText($inValues, "link");
    $parmLinkText = GetParmText($inValues, "linktext");
    $parmHeight   = GetParmText($inValues, "height");
    $parmWidth    = GetParmText($inValues, "width");

    //  Validate parameters
    if ($parmFrom  == "****")                                    {$Error = "Required parameter 'from' not found";}
    if ($parmFrom.length != 3)                                   {$Error = "Incorrect length for parameter 'from'";}
    if ($parmLayout  == "****")                                  {$Error = "Required parameter 'layout' not found";}
    if ($parmType  == "****")                                    {$Error = "Required parameter 'type' not found";}
    if ($parmImgno  == "****")                                   {$Error = "Required parameter 'imgno' not found";}
    if ($parmText  == "****")                                    {$Error = "Required parameter 'text' not found";}
    if (($parmHeight == "****") && ($parmWidth != "****"))       {$Error = "Parameter mismatch: 'width' found without 'height'";}
    if (($parmWidth == "****")  && ($parmHeight != "****"))      {$Error = "Parameter mismatch: 'height' found without 'width'";}
    if (($parmLink == "no")     && ($parmLinkText != "****"))    {$Error = "Parameter mismatch: 'LinkText' found when 'link=no' specified";}

    //  Generate layout id
    if ($Error.length == 0)
    { 
        if      ($parmLayout == "Skowhegan" || $parmLayout == "HOn30") {$LayoutID = "l";}
        else if ($parmLayout == "Lakewood")   {$LayoutID = "l";}
        else if ($parmLayout == "Riverside" || $parmLayout == "On30")  {$LayoutID = "r";}
        else if ($parmLayout == "Airedale"  || $parmLayout == "009")   {$LayoutID = "a";}
        else if ($parmLayout == "Estate"    || $parmLayout == "O9")    {$LayoutID = "f";}
        else if ($parmLayout == "Arizona"   || $parmLayout == "1n20")  {$LayoutID = "1";}
        else if ($parmLayout == "009Micro")                            {$LayoutID = "m";}

        else                                  {$LayoutID = "*"; $Error = "Value '" + $parmLayout + "' for parameter 'layout' is not supported";}
    }

    //  Generate type ID
    if ($Error.length == 0)
    { 
        if      ($parmType == "locomotive")  {$TypeID = "m";}
        else if ($parmType == "motive")      {$TypeID = "m";}
        else if ($parmType == "railcar")     {$TypeID = "m";}
        else if ($parmType == "goods")       {$TypeID = "g";}
        else if ($parmType == "passenger")   {$TypeID = "g";}
        else if ($parmType == "layout")      {$TypeID = "l";}
        else if ($parmType == "structure")   {$TypeID = "s";}
        else if ($parmType == "plans")       {$TypeID = "d"; $ImgFormat="gif";}
        else                                 {$TypeID = "*"; $Error = "Value '" + $parmType + "' for parameter 'type' is not supported";}
    }

    //  If width and height are equal to a full sized image then change image size indicator and inhibit linking
        $ThisImageSize = "m";
        if (($parmWidth == "400") && ($parmHeight == "266")) 
        {
            $ThisImageSize = "l";
            $parmLink = "no";
        }

    //  Build full name for thumbnail image
    if ($Error.length == 0)
    {
        $PathName =  "http://i22.photobucket.com/albums/b343/mbox4uk/";
        $PathName += "k" + $LayoutID + $TypeID;
        if ($parmImgno.length == 1) {$PathName += "0";}
        $PathName += $parmImgno + "xx" + $ThisImageSize + "." + $ImgFormat;
    }

    //  Build tag for link
    if ($Error.length == 0)
    {
        $TagLink  = "<A HREF='jpage993.html?";
        $TagLink += "from=" + $parmFrom;
        $TagLink += ",layout=" + $parmLayout;
        $TagLink += ",type=" + $parmType;
        $TagLink += ",imgno=" + $parmImgno;
        if (($parmWidth != "****") && ($parmHeight != "****")) {$TagLink += ",width=" + ($parmWidth*2) + ",height=" + ($parmHeight*2);}
        $TagLink += ",text=" + $parmText.replace(/ /g, '~' );
        $TagLink += "'>";
    }

    //  Build tag for image
    if ($Error.length == 0)
    {
        if ($parmLinkText == "****")
        {
            $TagImg  = "<IMG SRC='";
            $TagImg += $PathName + "'";
            if (($parmAlign == "left") || ($parmAlign == "right")) {$TagImg += " ALIGN='" + $parmAlign + "'";}
            $TagImg += " BORDER=1";
            if (($parmWidth != "****") && ($parmHeight != "****")) {$TagImg += " WIDTH=" + $parmWidth + " HEIGHT=" + $parmHeight;}
            else                                                   {$TagImg += " WIDTH=200 HEIGHT=133";}
            $TagImg += " ALT='";
            $TagImg += $parmText;
            if ($parmLink != "no") {$TagImg += " **Click for larger image**";}
            $TagImg += "'>";
        }
        else
        {
            $TagImg = $parmLinkText;
        }
    }

    //  Output generated script
    if ($Error.length == 0)
    {
        if ($parmLink != "no") {document.write($TagLink);}
        document.write($TagImg);
        if ($parmLink != "no") {document.write("</A>");}
    }

    if ($Error.length > 0)
    {
        document.write("<BR><FONT COLOR='red'>");
        document.write("<BR><B>Error during javascript function call</B>");
        document.write("<BR>Call : LinkedImage(" + $inValues + ")");
        document.write("<BR>Reason : " + $Error);
        document.write("</FONT><BR>");
    }
}



//
//  Get parameter value by keyword, returned as text
//
function GetParmText($inValues, $inKey)
   {
    //  Get passed parameter
    ParmFull = $inValues + ",";
    ParmLength = ParmFull.length;

    //  Search parameter for requested keyword
    Return   = "****";
    ThisKey  = "";
    ThisParm = "";
    FlagKey  = 1;
    Index    = 0;

    while (Index < ParmLength)
       {Char = ParmFull.substr(Index,1);
        if     (Char == ",")   {if (ThisKey == $inKey)
                                  {Return = ThisParm;
                                   Index = ParmLength;
                                  }
                                else
                                  {ThisKey  = "";
                                   ThisParm = "";
                                   FlagKey  = 1;
                                  }
                               }
        else if (Char == "=")  {FlagKey = 0;}
        else if (FlagKey == 1) {ThisKey += Char;}
        else                   {ThisParm += Char;}
        Index++;
       }

    return(Return);
   }
