/*

    Copyright 2003-2007 Purdue University. 

    Developed by: Peter Turbek, Department of Mathematics, Computer Science, and Statistics, Purdue University Calumet.


    This file is part of CaluMath.

    CaluMath is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    CaluMath is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.

*/

//Comment: This file contains all the information for what gets put in the menus used in the construction of page maker objects. 

CaluMath.PM.ColorArrayByCategory=[["",""], [ "red","#FF0000" ],[ "blue","#0000FF" ],[ "green","#008000" ],[ "yellow","#FFFF00" ],[ "orange","#FFA500" ],[ "brown","#A52A2A" ],[ "lime","#00FF00" ],[ "cyan","#00FFFF" ],[ "magenta","#FF00FF" ],["",""],["GREYS",""], [ "white","#FFFFFF" ],[ "whitesmoke","#F5F5F5" ],[ "gainsboro","#DCDCDC" ],[ "lightgrey","#D3D3D3" ],[ "silver","#C0C0C0" ],[ "darkgray","#A9A9A9" ],[ "gray","#808080" ],[ "dimgray","#696969" ],[ "black","#000000" ],[ "darkslategray","#2F4F4F" ],[ "slategray","#708090" ],[ "lightslategray","#778899" ],["",""],["BLUES",""], [ "steelblue","#4682B4" ],[ "royalblue","#4169E1" ],[ "cornflowerblue","#6495ED" ],[ "lightsteelblue","#B0C4DE" ],[ "mediumslateblue","#7B68EE" ],[ "slateblue","#6A5ACD" ],[ "darkslateblue","#483D8B" ],[ "midnightblue","#191970" ],[ "navy","#000080" ],[ "darkblue","#00008B" ],[ "mediumblue","#0000CD" ],[ "dodgerblue","#1E90FF" ],[ "deepskyblue","#00BFFF" ],[ "lightskyblue","#87CEFA" ],[ "skyblue","#87CEEB" ],[ "lightblue","#ADD8E6" ],[ "powderblue","#B0E0E6" ], ["",""],["BLUEGREENS",""], [ "azure","#F0FFFF" ],[ "lightcyan","#E0FFFF" ],[ "paleturquoise","#AFEEEE" ],[ "mediumturquoise","#48D1CC" ],[ "lightseagreen","#20B2AA" ],[ "darkcyan","#008B8B" ],[ "teal","#008080" ],[ "cadetblue","#5F9EA0" ],[ "darkturquoise","#00CED1" ],[ "aqua","#00FFFF" ],[ "turquoise","#40E0D0" ],[ "aquamarine","#7FFFD4" ],[ "mediumaquamarine","#66CDAA" ],[ "darkseagreen","#8FBC8F" ],[ "mediumseagreen","#3CB371" ],[ "seagreen","#2E8B57" ],["",""],["GREENS",""], [ "darkgreen","#006400" ],[ "green","#008000" ],[ "forestgreen","#228B22" ],[ "limegreen","#32CD32" ],[ "lime","#00FF00" ],[ "chartreuse","#7FFF00" ],[ "lawngreen","#7CFC00" ],[ "greenyellow","#ADFF2F" ],[ "palegreen","#98FB98" ],[ "lightgreen","#90EE90" ],[ "springgreen","#00FF7F" ],[ "mediumspringgreen","#00FA9A" ],[ "darkolivegreen","#556B2F" ],[ "olivedrab","#6B8E23" ],[ "olive","#808000" ],["",""],["YELLOW BROWNS",""],[ "darkkhaki","#BDB76B" ],[ "darkgoldenrod","#B8860B" ],[ "goldenrod","#DAA520" ],[ "gold","#FFD700" ],[ "khaki","#F0E68C" ],[ "palegoldenrod","#EEE8AA" ],[ "blanchedalmond","#FFEBCD" ],[ "moccasin","#FFE4B5" ],[ "wheat","#F5DEB3" ],[ "navajowhite","#FFDEAD" ],[ "burlywood","#DEB887" ],[ "tan","#D2B48C" ],[ "rosybrown","#BC8F8F" ],[ "sienna","#A0522D" ],[ "saddlebrown","#8B4513" ],[ "chocolate","#D2691E" ],[ "peru","#CD853F" ],[ "sandybrown","#F4A460" ],[ "darkred","#8B0000" ],[ "maroon","#800000" ],[ "brown","#A52A2A" ],[ "firebrick","#B22222" ],["",""],["ORANGE REDS",""],[ "indianred","#CD5C5C" ],[ "lightcoral","#F08080" ],[ "salmon","#FA8072" ],[ "darksalmon","#E9967A" ],[ "lightsalmon","#FFA07A" ],[ "coral","#FF7F50" ],[ "tomato","#FF6347" ],[ "darkorange","#FF8C00" ],[ "orange","#FFA500" ],[ "orangered","#FF4500" ],[ "crimson","#DC143C" ],[ "red","#FF0000" ],[ "deeppink","#FF1493" ],[ "fuchsia","#FF00FF" ],[ "hotpink","#FF69B4" ],[ "lightpink","#FFB6C1" ],[ "pink","#FFC0CB" ],["",""],["PURPLES",""],[ "palevioletred","#DB7093" ],[ "mediumvioletred","#C71585" ],[ "purple","#800080" ],[ "darkmagenta","#8B008B" ],[ "mediumpurple","#9370DB" ],[ "blueviolet","#8A2BE2" ],[ "indigo","#4B0082" ],[ "darkviolet","#9400D3" ],[ "darkorchid","#9932CC" ],[ "mediumorchid","#BA55D3" ],[ "orchid","#DA70D6" ],[ "violet","#EE82EE" ],[ "plum","#DDA0DD" ],[ "thistle","#D8BFD8" ],["",""],["PASTELS",""], [ "lavender","#E6E6FA" ],[ "ghostwhite","#F8F8FF" ],[ "aliceblue","#F0F8FF" ],[ "mintcream","#F5FFFA" ],[ "honeydew","#F0FFF0" ],[ "lightgoldenrodyellow","#FAFAD2" ],[ "lemonchiffon","#FFFACD" ],[ "cornsilk","#FFF8DC" ],[ "lightyellow","#FFFFE0" ],[ "ivory","#FFFFF0" ],[ "floralwhite","#FFFAF0" ],[ "linen","#FAF0E6" ],[ "oldlace","#FDF5E6" ],[ "antiquewhite","#FAEBD7" ],[ "bisque","#FFE4C4" ],[ "peachpuff","#FFDAB9" ],[ "papayawhip","#FFEFD5" ],[ "seashell","#FFF5EE" ],[ "lavenderblush","#FFF0F5" ],[ "mistyrose","#FFE4E1" ],[ "snow","#FFFAFA" ] ];


CaluMath.PM.ColorArrayAlphabetical = [["ALPHABETICAL",""],["aliceblue","#F0F8FF"],["antiquewhite","#FAEBD7"],["aqua","#00FFFF"],["aquamarine","#7FFFD4"],["azure","#F0FFFF"],["bisque","#FFE4C4"],["black","#000000"],["blanchedalmond","#FFEBCD"],["blue","#0000FF"],["blueviolet","#8A2BE2"],["brown","#A52A2A"],["burlywood","#DEB887"],["cadetblue","#5F9EA0"],["chartreuse","#7FFF00"],["chocolate","#D2691E"],["coral","#FF7F50"],["cornflowerblue","#6495ED"],["cornsilk","#FFF8DC"],["crimson","#DC143C"],["cyan","#00FFFF"],["darkblue","#00008B"],["darkcyan","#008B8B"],["darkgoldenrod","#B8860B"],["darkgray","#A9A9A9"],["darkgreen","#006400"],["darkkhaki","#BDB76B"],["darkmagenta","#8B008B"],["darkolivegreen","#556B2F"],["darkorange","#FF8C00"],["darkorchid","#9932CC"],["darkred","#8B0000"],["darksalmon","#E9967A"],["darkseagreen","#8FBC8F"],["darkslateblue","#483D8B"],["darkslategray","#2F4F4F"],["darkturquoise","#00CED1"],["darkviolet","#9400D3"],["deeppink","#FF1493"],["deepskyblue","#00BFFF"],["dimgray","#696969"],["dodgerblue","#1E90FF"],["firebrick","#B22222"],["floralwhite","#FFFAF0"],["forestgreen","#228B22"],["fuchsia","#FF00FF"],["gainsboro","#DCDCDC"],["ghostwhite","#F8F8FF"],["gold","#FFD700"],["goldenrod","#DAA520"],["gray","#808080"],["green","#008000"],["greenyellow","#ADFF2F"],["honeydew","#F0FFF0"],["hotpink","#FF69B4"],["indianred","#CD5C5C"],["indigo","#4B0082"],["ivory","#FFFFF0"],["khaki","#F0E68C"],["lavender","#E6E6FA"],["lavenderblush","#FFF0F5"],["lawngreen","#7CFC00"],["lemonchiffon","#FFFACD"],["lightblue","#ADD8E6"],["lightcoral","#F08080"],["lightcyan","#E0FFFF"],["lightgoldenrodyellow","#FAFAD2"],["lightgreen","#90EE90"],["lightgrey","#D3D3D3"],["lightpink","#FFB6C1"],["lightsalmon","#FFA07A"],["lightseagreen","#20B2AA"],["lightskyblue","#87CEFA"],["lightslategray","#778899"],["lightsteelblue","#B0C4DE"],["lightyellow","#FFFFE0"],["lime","#00FF00"],["lime","#00FF00"],["limegreen","#32CD32"],["linen","#FAF0E6"],["magenta","#FF00FF"],["maroon","#800000"],["mediumaquamarine","#66CDAA"],["mediumblue","#0000CD"],["mediumorchid","#BA55D3"],["mediumpurple","#9370DB"],["mediumseagreen","#3CB371"],["mediumslateblue","#7B68EE"],["mediumspringgreen","#00FA9A"],["mediumturquoise","#48D1CC"],["mediumvioletred","#C71585"],["midnightblue","#191970"],["mintcream","#F5FFFA"],["mistyrose","#FFE4E1"],["moccasin","#FFE4B5"],["navajowhite","#FFDEAD"],["navy","#000080"],["oldlace","#FDF5E6"],["olive","#808000"],["olivedrab","#6B8E23"],["orange","#FFA500"],["orangered","#FF4500"],["orchid","#DA70D6"],["palegoldenrod","#EEE8AA"],["palegreen","#98FB98"],["paleturquoise","#AFEEEE"],["palevioletred","#DB7093"],["papayawhip","#FFEFD5"],["peachpuff","#FFDAB9"],["peru","#CD853F"],["pink","#FFC0CB"],["plum","#DDA0DD"],["powderblue","#B0E0E6"],["purple","#800080"],["red","#FF0000"],["rosybrown","#BC8F8F"],["royalblue","#4169E1"],["saddlebrown","#8B4513"],["salmon","#FA8072"],["sandybrown","#F4A460"],["seagreen","#2E8B57"],["seashell","#FFF5EE"],["sienna","#A0522D"],["silver","#C0C0C0"],["skyblue","#87CEEB"],["slateblue","#6A5ACD"],["slategray","#708090"],["snow","#FFFAFA"],["springgreen","#00FF7F"],["steelblue","#4682B4"],["tan","#D2B48C"],["teal","#008080"],["thistle","#D8BFD8"],["tomato","#FF6347"],["turquoise","#40E0D0"],["violet","#EE82EE"],["wheat","#F5DEB3"],["white","#FFFFFF"],["whitesmoke","#F5F5F5"],["yellow","#FFFF00"]];

CaluMath.PM.ArrayTo100= [["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["20","20"],["21","21"],["22","22"],["23","23"],["24","24"],["25","25"],["26","26"],["27","27"],["28","28"],["29","29"],["30","30"],["31","31"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"],["40","40"],["41","41"],["42","42"],["43","43"],["44","44"],["45","45"],["46","46"],["47","47"],["48","48"],["49","49"],["50","50"],["51","51"],["52","52"],["53","53"],["54","54"],["55","55"],["56","56"],["57","57"],["58","58"],["59","59"],["60","60"],["61","61"],["62","62"],["63","63"],["64","64"],["65","65"],["66","66"],["67","67"],["68","68"],["69","69"],["70","70"],["71","71"],["72","72"],["73","73"],["74","74"],["75","75"],["76","76"],["77","77"],["78","78"],["79","79"],["80","80"],["81","81"],["82","82"],["83","83"],["84","84"],["85","85"],["86","86"],["87","87"],["88","88"],["89","89"],["90","90"],["91","91"],["92","92"],["93","93"],["94","94"],["95","95"],["96","96"],["97","97"],["98","98"],["99","99"],["100","100"]];

CaluMath.PM.ColorArray=[["",""], [ "red","#FF0000" ],[ "blue","#0000FF" ],[ "green","#008000" ],[ "yellow","#FFFF00" ],[ "orange","#FFA500" ],[ "brown","#A52A2A" ],[ "lime","#00FF00" ],[ "cyan","#00FFFF" ],[ "magenta","#FF00FF" ],["",""],["GREYS",""], [ "white","#FFFFFF" ],[ "whitesmoke","#F5F5F5" ],[ "gainsboro","#DCDCDC" ],[ "lightgrey","#D3D3D3" ],[ "silver","#C0C0C0" ],[ "darkgray","#A9A9A9" ],[ "gray","#808080" ],[ "dimgray","#696969" ],[ "black","#000000" ],[ "darkslategray","#2F4F4F" ],[ "slategray","#708090" ],[ "lightslategray","#778899" ],["",""],["BLUES",""], [ "steelblue","#4682B4" ],[ "royalblue","#4169E1" ],[ "cornflowerblue","#6495ED" ],[ "lightsteelblue","#B0C4DE" ],[ "mediumslateblue","#7B68EE" ],[ "slateblue","#6A5ACD" ],[ "darkslateblue","#483D8B" ],[ "midnightblue","#191970" ],[ "navy","#000080" ],[ "darkblue","#00008B" ],[ "mediumblue","#0000CD" ],[ "dodgerblue","#1E90FF" ],[ "deepskyblue","#00BFFF" ],[ "lightskyblue","#87CEFA" ],[ "skyblue","#87CEEB" ],[ "lightblue","#ADD8E6" ],[ "powderblue","#B0E0E6" ],["",""],["BLUEGREENS",""], [ "azure","#F0FFFF" ],[ "lightcyan","#E0FFFF" ],[ "paleturquoise","#AFEEEE" ],[ "mediumturquoise","#48D1CC" ],[ "lightseagreen","#20B2AA" ],[ "darkcyan","#008B8B" ],[ "teal","#008080" ],[ "cadetblue","#5F9EA0" ],[ "darkturquoise","#00CED1" ],[ "aqua","#00FFFF" ],[ "turquoise","#40E0D0" ],[ "aquamarine","#7FFFD4" ],[ "mediumaquamarine","#66CDAA" ],[ "darkseagreen","#8FBC8F" ],[ "mediumseagreen","#3CB371" ],[ "seagreen","#2E8B57" ],["",""],["GREENS",""], [ "darkgreen","#006400" ],[ "green","#008000" ],[ "forestgreen","#228B22" ],[ "limegreen","#32CD32" ],[ "lime","#00FF00" ],[ "chartreuse","#7FFF00" ],[ "lawngreen","#7CFC00" ],[ "greenyellow","#ADFF2F" ],[ "palegreen","#98FB98" ],[ "lightgreen","#90EE90" ],[ "springgreen","#00FF7F" ],[ "mediumspringgreen","#00FA9A" ],[ "darkolivegreen","#556B2F" ],[ "olivedrab","#6B8E23" ],[ "olive","#808000" ],["",""],["YELLOW BROWNS",""],[ "darkkhaki","#BDB76B" ],[ "darkgoldenrod","#B8860B" ],[ "goldenrod","#DAA520" ],[ "gold","#FFD700" ],[ "khaki","#F0E68C" ],[ "palegoldenrod","#EEE8AA" ],[ "blanchedalmond","#FFEBCD" ],[ "moccasin","#FFE4B5" ],[ "wheat","#F5DEB3" ],[ "navajowhite","#FFDEAD" ],[ "burlywood","#DEB887" ],[ "tan","#D2B48C" ],[ "rosybrown","#BC8F8F" ],[ "sienna","#A0522D" ],[ "saddlebrown","#8B4513" ],[ "chocolate","#D2691E" ],[ "peru","#CD853F" ],[ "sandybrown","#F4A460" ],[ "darkred","#8B0000" ],[ "maroon","#800000" ],[ "brown","#A52A2A" ],[ "firebrick","#B22222" ],["",""],["ORANGE REDS",""],[ "indianred","#CD5C5C" ],[ "lightcoral","#F08080" ],[ "salmon","#FA8072" ],[ "darksalmon","#E9967A" ],[ "lightsalmon","#FFA07A" ],[ "coral","#FF7F50" ],[ "tomato","#FF6347" ],[ "darkorange","#FF8C00" ],[ "orange","#FFA500" ],[ "orangered","#FF4500" ],[ "crimson","#DC143C" ],[ "red","#FF0000" ],[ "deeppink","#FF1493" ],[ "fuchsia","#FF00FF" ],[ "hotpink","#FF69B4" ],[ "lightpink","#FFB6C1" ],[ "pink","#FFC0CB" ],["",""],["PURPLES",""],[ "palevioletred","#DB7093" ],[ "mediumvioletred","#C71585" ],[ "purple","#800080" ],[ "darkmagenta","#8B008B" ],[ "mediumpurple","#9370DB" ],[ "blueviolet","#8A2BE2" ],[ "indigo","#4B0082" ],[ "darkviolet","#9400D3" ],[ "darkorchid","#9932CC" ],[ "mediumorchid","#BA55D3" ],[ "orchid","#DA70D6" ],[ "violet","#EE82EE" ],[ "plum","#DDA0DD" ],[ "thistle","#D8BFD8" ],["",""],["PASTELS",""], [ "lavender","#E6E6FA" ],[ "ghostwhite","#F8F8FF" ],[ "aliceblue","#F0F8FF" ],[ "mintcream","#F5FFFA" ],[ "honeydew","#F0FFF0" ],[ "lightgoldenrodyellow","#FAFAD2" ],[ "lemonchiffon","#FFFACD" ],[ "cornsilk","#FFF8DC" ],[ "lightyellow","#FFFFE0" ],[ "ivory","#FFFFF0" ],[ "floralwhite","#FFFAF0" ],[ "linen","#FAF0E6" ],[ "oldlace","#FDF5E6" ],[ "antiquewhite","#FAEBD7" ],[ "bisque","#FFE4C4" ],[ "peachpuff","#FFDAB9" ],[ "papayawhip","#FFEFD5" ],[ "seashell","#FFF5EE" ],[ "lavenderblush","#FFF0F5" ],[ "mistyrose","#FFE4E1" ],[ "snow","#FFFAFA" ],["",""],["ALPHABETICAL",""],["LISTING",""],["aliceblue","#F0F8FF"],["antiquewhite","#FAEBD7"],["aqua","#00FFFF"],["aquamarine","#7FFFD4"],["azure","#F0FFFF"],["bisque","#FFE4C4"],["black","#000000"],["blanchedalmond","#FFEBCD"],["blue","#0000FF"],["blueviolet","#8A2BE2"],["brown","#A52A2A"],["burlywood","#DEB887"],["cadetblue","#5F9EA0"],["chartreuse","#7FFF00"],["chocolate","#D2691E"],["coral","#FF7F50"],["cornflowerblue","#6495ED"],["cornsilk","#FFF8DC"],["crimson","#DC143C"],["cyan","#00FFFF"],["darkblue","#00008B"],["darkcyan","#008B8B"],["darkgoldenrod","#B8860B"],["darkgray","#A9A9A9"],["darkgreen","#006400"],["darkkhaki","#BDB76B"],["darkmagenta","#8B008B"],["darkolivegreen","#556B2F"],["darkorange","#FF8C00"],["darkorchid","#9932CC"],["darkred","#8B0000"],["darksalmon","#E9967A"],["darkseagreen","#8FBC8F"],["darkslateblue","#483D8B"],["darkslategray","#2F4F4F"],["darkturquoise","#00CED1"],["darkviolet","#9400D3"],["deeppink","#FF1493"],["deepskyblue","#00BFFF"],["dimgray","#696969"],["dodgerblue","#1E90FF"],["firebrick","#B22222"],["floralwhite","#FFFAF0"],["forestgreen","#228B22"],["fuchsia","#FF00FF"],["gainsboro","#DCDCDC"],["ghostwhite","#F8F8FF"],["gold","#FFD700"],["goldenrod","#DAA520"],["gray","#808080"],["green","#008000"],["greenyellow","#ADFF2F"],["honeydew","#F0FFF0"],["hotpink","#FF69B4"],["indianred","#CD5C5C"],["indigo","#4B0082"],["ivory","#FFFFF0"],["khaki","#F0E68C"],["lavender","#E6E6FA"],["lavenderblush","#FFF0F5"],["lawngreen","#7CFC00"],["lemonchiffon","#FFFACD"],["lightblue","#ADD8E6"],["lightcoral","#F08080"],["lightcyan","#E0FFFF"],["lightgoldenrodyellow","#FAFAD2"],["lightgreen","#90EE90"],["lightgrey","#D3D3D3"],["lightpink","#FFB6C1"],["lightsalmon","#FFA07A"],["lightseagreen","#20B2AA"],["lightskyblue","#87CEFA"],["lightslategray","#778899"],["lightsteelblue","#B0C4DE"],["lightyellow","#FFFFE0"],["lime","#00FF00"],["lime","#00FF00"],["limegreen","#32CD32"],["linen","#FAF0E6"],["magenta","#FF00FF"],["maroon","#800000"],["mediumaquamarine","#66CDAA"],["mediumblue","#0000CD"],["mediumorchid","#BA55D3"],["mediumpurple","#9370DB"],["mediumseagreen","#3CB371"],["mediumslateblue","#7B68EE"],["mediumspringgreen","#00FA9A"],["mediumturquoise","#48D1CC"],["mediumvioletred","#C71585"],["midnightblue","#191970"],["mintcream","#F5FFFA"],["mistyrose","#FFE4E1"],["moccasin","#FFE4B5"],["navajowhite","#FFDEAD"],["navy","#000080"],["oldlace","#FDF5E6"],["olive","#808000"],["olivedrab","#6B8E23"],["orange","#FFA500"],["orangered","#FF4500"],["orchid","#DA70D6"],["palegoldenrod","#EEE8AA"],["palegreen","#98FB98"],["paleturquoise","#AFEEEE"],["palevioletred","#DB7093"],["papayawhip","#FFEFD5"],["peachpuff","#FFDAB9"],["peru","#CD853F"],["pink","#FFC0CB"],["plum","#DDA0DD"],["powderblue","#B0E0E6"],["purple","#800080"],["red","#FF0000"],["rosybrown","#BC8F8F"],["royalblue","#4169E1"],["saddlebrown","#8B4513"],["salmon","#FA8072"],["sandybrown","#F4A460"],["seagreen","#2E8B57"],["seashell","#FFF5EE"],["sienna","#A0522D"],["silver","#C0C0C0"],["skyblue","#87CEEB"],["slateblue","#6A5ACD"],["slategray","#708090"],["snow","#FFFAFA"],["springgreen","#00FF7F"],["steelblue","#4682B4"],["tan","#D2B48C"],["teal","#008080"],["thistle","#D8BFD8"],["tomato","#FF6347"],["turquoise","#40E0D0"],["violet","#EE82EE"],["wheat","#F5DEB3"],["white","#FFFFFF"],["whitesmoke","#F5F5F5"],["yellow","#FFFF00"] ];

CaluMath.PM.stylefontSizeLIST=["","xx-small","x-small", "small", "medium","large","x-large","xx-large", "6px","8px","10px","11px","12px","14px","16px","18px","20px","22px","24px","26px","28px","30px","32px","34px","36px","40px","44px","48px","52px","56px","60px","64px","68px","72px","76px","84px","92px","100px","120px","150px","200px"];

//CaluMath.PM.COORDINATESTYPELIST=[["Numeric","e"], ["Symbolic","s"], ["Functional","f"], ["Graphical","g"]];  


//Comment: These are the choices they have for coordinates of functions to be put in a paragraph.
CaluMath.PM.COORDINATESOPTIONSLIST=[["display both sides","cm_display"], ["left hand side","cm_lhs"], ["right hand side","cm_rhs"], ["display graphically", "cm_graphical"], ["coordinates","cm_coordinates"]];

//Comment: These are the choices they have for the type of coordinates of functions to be put in a paragraph.
CaluMath.PM.COORDINATESTYPELIST=[["Numeric","e"], ["Symbolic","s"], ["Functional","f"]];  

//Comment: These are the choices they have for the type of Random numbers for a constant.
CaluMath.PM.RANDOMNUMBERLIST=[["Random Integer","CaluMath.Html.RandomInteger"], ["NonZero Random Integer","CaluMath.Html.NonZeroRandomInteger"], ["Random Number","CaluMath.Html.RandomNumber"],["NonZero Random Number","CaluMath.Html.NonZeroRandomNumber"]];  

//Comment: Note that each list hast the prefix "style", the JavaScript Name of the style property, followed by LIST. 
CaluMath.PM.texttagLIST=[["Paragraph","p"], ["Text","span"], ["Title","h1"],["Section Heading","h2"] , ["Container","div"]]; 
//CaluMath.PM.stylefontSizeLIST=["","xx-small","x-small", "small", "medium","large","x-large","xx-large", "6px","8px","10px","11px","12px","14px","16px","18px","20px","22px","24px","26px","28px","30px","32px","34px","36px","40px","44px","48px","52px","56px","60px","64px","68px","72px","76px","84px","92px","100px","120px","150px","200px"];
//CaluMath.PM.stylecolorLIST=["","black", "red", "blue", "green", "orange", "yellow", "aqua"];
CaluMath.PM.stylecolorLIST=CaluMath.PM.ColorArray;  
CaluMath.PM.stylefontFamilyLIST=["","New Times Roman", "Helvetica", "Corrier New", "Creepy"];
CaluMath.PM.stylebackgroundColorLIST=CaluMath.PM.ColorArray;  
CaluMath.PM.styletextAlignLIST=["","left", "center","right"]
CaluMath.PM.stylefontWeightLIST=[["",""],["normal","normal"],["bold", 700]];
CaluMath.PM.stylefontStyleLIST=[["",""],["normal", "normal"],["italics", "italic"]];
CaluMath.PM.styledisplayLIST=[["",""],["visible", ""],["hidden", "none"]];
CaluMath.PM.stylewidthLIST=["","25px","50px","100px","150px","200px","250px","300px","350px","400px","450px","500px","550px","600px","650px","700px","750px","800px","850px","900px","950px","1000px","1050px","1100px","1150px","1200px","1250px","1300px","1350px"];





if(window.CM_TopWindow==window){

CaluMath.PM.DefaultEntriesObject= new Object();
CaluMath.PM.DefaultEntriesObject.cm_plotstyle=["cm_plotstyle", "menu", [["normal","normal"],["thin","thin"],["thick","thick"],["very thick","verythick"],["dotted", "cm_dotted"]], "normal", [["Plot Style","help/individual_help.html#cm_plotstyle"], "Thickness of the graph drawn", "same"]];
CaluMath.PM.DefaultEntriesObject.cm_plotstyle2=["cm_plotstyle", "menu", [["normal","normal"],["thin","thin"],["thick","thick"],["very thick","verythick"]], "normal", [["Plot Style","help/individual_help.html#cm_plotstyle"], "Thickness of the graph drawn", "same"]];
CaluMath.PM.DefaultEntriesObject.newplot=function(){
  return ["newplot", "menu", "newplotlist", arguments[0], [["Axes", "help/individual_help.html#requirednewplot"], "Axes for graph", "same"]];
};
CaluMath.PM.DefaultEntriesObject.newplot1=function(){
   return ["newplot", "menu", '[["none", "CM_ParentObject", "CM_ParentObject"]],concat,newplotlist', arguments[0], [["Axes", "help/individual_help.html#requirednewplot"], "Axes for graph", "same"]];
};
CaluMath.PM.DefaultEntriesObject.definedfunction= ["definedfunction", "menu", "definedfunctionlist", "", [["Function", "help/individual_help.html#requireddefinedfunction"], "Function", "same"]];
CaluMath.PM.DefaultEntriesObject.definedfunction1= ["definedfunction1", "menu", "definedfunctionlist", "", [["Function", "help/individual_help.html#requireddefinedfunction"], "Function", "same"]];

CaluMath.PM.DefaultEntriesObject.discretefunction= ["discretefunction", "menu", "discretefunctionlist", "", [["Function", "help/individual_help.html#requireddefinedfunction"], "Function", "same"]];


CaluMath.PM.DefaultEntriesObject.visibilitywithstyle= function(){
   return ["style=display", "menu", [["visible","n/a"], ["invisible", "none"]], "visible", [["Visibility","help/individual_help.html#styledisplay"], "Visible When Page Loads?", "same"]];
};

CaluMath.PM.DefaultEntriesObject.visibility= ["display", "menu", [["visible","n/a"], ["invisible", "none"]], "visible", [["Visibility","help/individual_help.html#styledisplay"], "Visible When Page Loads?", "same"]];


CaluMath.PM.DefaultEntriesObject.graphrequired=function(){
   if(arguments[0].cm_constructorname != "String"){
      if(arguments[3] ==null){
         return ["graph", "menu", [["none", "none"]].concat(arguments[0]), arguments[2], [["Graph", "help/individual_help.html#requiredgraph"], arguments[1], "same"]];
      }
      else{
         return ["graph", "menu", arguments[0], arguments[2], [["Graph", "help/individual_help.html#requiredgraph"], arguments[1], "same"]];
      }
   }
   else{
//alerttest(["graph", "menu", '[["none", "none"]],concat,'+arguments[0], "newplotlist", "none", [["Graph", "help/individual_help.html#requiredgraph"], arguments[1], "same"]]);
      return ["graph", "menu", '[["none", "none"]],concat,'+arguments[0], "newplotlist", [["Graph", "help/individual_help.html#requiredgraph"], arguments[1], "same"]];
   };
};


CaluMath.PM.DefaultEntriesObject.requiredname=function(){
   //Comment: arguments are (name, what to put as default, followed by CaluMath.PM.PlotNameIndex++, size of input field. 
   if(arguments[2] != null && arguments[1] !="no"){
      return ["name", "input", arguments[2], arguments[1]+""+CaluMath.PM.PlotNameIndex++, [[arguments[0]+" Name","help/individual_help.html#requiredname"],"No spaces. Examples: f, f_0, f1, Distance, Height","same"],CaluMath.PM.IsValidName];
   }
   else if(arguments[2] != null){
      return ["name", "input", arguments[2], "", [[arguments[0]+" Name","help/individual_help.html#requiredname"],"No spaces. Examples: f, f_0, f1, Distance, Height","same"],CaluMath.PM.IsBlankOrValidName];
   }
   else if(arguments[1]  != null && arguments[1]=="no"){
      return ["name", "input", 20, "", [[arguments[0]+" Name","help/individual_help.html#requiredname"],"No spaces. Examples: f, f_0, f1, Distance, Height","same"],CaluMath.PM.IsBlankOrValidName];
   }
   else if(arguments[1]  != null && arguments[1].cm_constructorname=="String"){
      return ["name", "input", 20, arguments[1]+""+CaluMath.PM.PlotNameIndex++, [[arguments[0]+" Name","help/individual_help.html#requiredname"],"No spaces. Examples: f, f_0, f1, Distance, Height","same"],CaluMath.PM.IsValidName];
   }
   else if(arguments[1] != null){
      return ["name", "input", arguments[1], "", [[arguments[0]+" Name","help/individual_help.html#requiredname"],"No spaces. Examples: f, f_0, f1, Distance, Height","same"],CaluMath.PM.IsValidName];
   }
   else{
      return ["name", "input", 20, "", [[arguments[0]+" Name","help/individual_help.html#requiredname"],"No spaces. Examples: f, f_0, f1, Distance, Height","same"],CaluMath.PM.IsValidName];
   };
};

CaluMath.PM.DefaultEntriesObject.optionsname=function(){
   //Comment: arguments are (name, what to put as default, followed by CaluMath.PM.PlotNameIndex++, size of input field. 
   if(arguments[2] != null && arguments[2] != "no"){
      return ["name", "input", arguments[2], arguments[1]+""+CaluMath.PM.PlotNameIndex++, [[arguments[0]+" Name","help/individual_help.html#name"],"No spaces. Examples: f, f_0, f1, Distance, Height","same"],CaluMath.PM.IsValidName];
   }
   else if(arguments[2] != null){
      return ["name", "input", arguments[2], "", [[arguments[0]+" Name","help/individual_help.html#name"],"No spaces. Examples: f, f_0, f1, Distance, Height","same"],CaluMath.PM.IsBlankOrValidName];
   }
   else if(arguments[1]  != null && arguments[1]=="no"){
      return ["name", "input", 20, "", [[arguments[0]+" Name","help/individual_help.html#name"],"No spaces. Examples: f, f_0, f1, Distance, Height","same"],CaluMath.PM.IsBlankOrValidName];
   }
   else if(arguments[1]  != null && arguments[1].cm_constructorname=="String"){
      return ["name", "input", 20, arguments[1]+""+CaluMath.PM.PlotNameIndex++, [[arguments[0]+" Name","help/individual_help.html#name"],"No spaces. Examples: f, f_0, f1, Distance, Height","same"],CaluMath.PM.IsValidName];
   }
   else if(arguments[1] != null){
      return ["name", "input", arguments[1], "", [[arguments[0]+" Name","help/individual_help.html#name"],"No spaces. Examples: f, f_0, f1, Distance, Height","same"],CaluMath.PM.IsValidName];
   }
   else{
      return ["name", "input", 20, "", [[arguments[0]+" Name","help/individual_help.html#name"],"No spaces. Examples: f, f_0, f1, Distance, Height","same"],CaluMath.PM.IsValidName];
   };
};

CaluMath.PM.DefaultEntriesObject.cm_equationreplacement=function(){
   //Comment: arguments[0] is the width of the field containing the alternate name.
   return ["cm_equationreplacement", "input", arguments[0], "", [["Alternate Displayed Equation","help/individual_help.html#cm_equationreplacement"],"Equation displayed next to axes.","same"]];
};

CaluMath.PM.DefaultEntriesObject.cm_equation=function(){
   //Comment: arguments[0] is the default value, either "yes" or "no". arguments[1] is the string that appears in the title(the pop up piece of text when the mouse is over the item in the table)
   return ["cm_equation", "menu", [["yes", "yes"], ["no","no"]], arguments[0], [["Display Equation","help/individual_help.html#cm_equation"],arguments[1],"same"]];
};

CaluMath.PM.DefaultEntriesObject.cm_insertoption=function(){
   return ["cm_insertoption", "menu", [["current point", "n/a"],["insert before", "cm_insertbefore"] ,["insert in", "cm_insertin"],["insert after","cm_insertafter"]], "current point", [["Insert Options","help/individual_help.html#cm_insertoption"],"Placement of Object with respect to Target Object","same"]];
};

CaluMath.PM.DefaultEntriesObject.cm_caswindow=function(){
   return ["cm_caswindow", "menu", "newwindowlist", "", [["Window","help/individual_help.html#cm_caswindow"],"Placement Object In This Window","same"]];
};

CaluMath.PM.DefaultEntriesObject.requiredvalue=function(){
   //Comment: arguments[0] is the width of the field for the button label.
   return ["value", "input", arguments[0], "", [["Button Label","help/individual_help.html#requiredvalue"],"Text That Appears On Button","same"], CaluMath.PM.IsNonEmptyString];
};

CaluMath.PM.DefaultEntriesObject.value=function(){
   //Comment: arguments[0] is the width of the field for the button label.
   return ["value", "input", arguments[0], "default", [["Button Label","help/individual_help.html#value"],"Text That Appears On Button","same"], CaluMath.PM.IsNonEmptyString];
};

CaluMath.PM.DefaultEntriesObject.cm_option=function(){
   return ["cm_option", "menu", ["yes", "no"], arguments[0], [["Add To Graph Menu","help/individual_help.html#cm_option"],"Add Graph to Drop-Down Graph Menu","same"]];
};

CaluMath.PM.DefaultEntriesObject.cm_onlyforlists=function(){
   return ["cm_onlyforlists", "menu", ["no", "yes"], "no", [["Only Use For Lists","help/individual_help.html#cm_onlyforlists"],"Not For Document, Only For Lists","same"]];
};

CaluMath.PM.DefaultEntriesObject.cm_bracketticklength=function(){
   return ["cm_bracketticklength", "menu", [[".5",".5"],["1","1"],["1.5","1.5"],["2","2"],["2.5","2.5"],["3","3"],["3.5","3.5"],["4", "4"],["4.5", "4.5"],["5", "5"],["6", "6"],["7", "7"],["To Edge of Axes", "edgeofgraph"]], "3", "Tick Length Fraction"]
};

//CaluMath.PM.DefaultEntriesObject.cm_color= ["color", "menu", CaluMath.PM.ColorArray, "auto", "Select Graph Color"];
CaluMath.PM.DefaultEntriesObject.cm_color= function(){
   if(arguments[1] == null){
      return ["color","input", 10,"", [[arguments[0],"help/rgb_color_window.html"]]];
   }
   else{
      return [arguments[1],"input", 10,"", [[arguments[0],"help/rgb_color_window.html"]]];
   }
};

//CaluMath.PM.DefaultEntriesObject.cm_alternatecolor=["alternatecolor","input", 10,"n/a", [["Or RBG Graph Color","help/rgb_color_window.html"]]];

CaluMath.PM.PageMakerdefinedconstantDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerdefinedconstantDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.requiredname("Constant",40),
["definition", "input", 100, "", [["Constant Definition","help/individual_help.html#requireddefinition"], "Examples: 12*3^2, 10*pi*sin(pi/4), ln(e^5)", "same"],CaluMath.PM.IsEvalMath],
["cm_precision", "input", 10, "5", [["Precision","help/individual_help.html#requiredcm_precision"], "Rounds constant to this many decimal places", "same"], CaluMath.PM.IsNumber]
];
};

CaluMath.PM.PageMakerdefinedconstantDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerdefinedconstantDefault.optionsarray=[
   CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};

CaluMath.PM.PageMakerdefinedconstantDefault.textstring='<b>An example:</b> <i>Constant Name: A</i>, <i>Constant Definition: pi/4</i>, <i>Precision: 3</i> defines A to be Unicode(pi)/4 rounded to 3 decimal places. <br> To create a Random Number, click the Create A Random Number button and follow the directions.';


CaluMath.PM.PageMakervariablenameDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakervariablenameDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.requiredname("Object",40),
//["name", "input", 30, "", "Name",CaluMath.PM.IsValidName],
["definition", "input", 100, "", [["Named Object Definition","help/individual_help.html#requireddefinition"], "Examples: \"Hello World\", [0,1,2]", "same"], CaluMath.PM.IsNonEmptyStringReplaceAll]
];
};



CaluMath.PM.PageMakervariablenameDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakervariablenameDefault.optionsarray=[
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};

CaluMath.PM.PageMakervariablenameDefault.textstring= ['This is used to create and name an object, usually an Array or String. In CaluMath, an Array is a list of things, and a String is a sequence of characters, typically used for text. To create an Array, use square brackets and separate the entries by commas. To create a String, encase the String in either single or double quotes.  <br><br>',
    '<b>Array Example 1:</b> <i>Object Name: A</i>, <i>Named Object Definition: [2,4,6,8]</i> defines A to be the Array (meaning list) of the elements 2,4,6,8. The Array A has four elements, indexed starting with 0. A[0] is the element in position 0, namely 2, A[1] is the element in position 1, namely 4. A.length is the length of the list, namely 4.<br><br>',
    '<b>Array Example 2:</b> Elements in an Array can also be Arrays. This is particularly useful if you want to have an Array of points in the x,y plane. Consider the points (0,0), (2,Unicode(pi)), and (4,-2). You can create an Array of points by entering <i>Object Name: B</i>, <i>Named Object Definition: [[0,0],[2,cm_evalmno(pi)],[4,-2]]</i>. In this case B= [[0,0],[2,3.141592653589793],[4,-2]], B[0]=[0,0], B[1]=[2,3.141592653589793], and B[2]=[4,-2]. Note that when you create a Constant using the Define A Constant submenu, it is automatically evaluated mathematically, for example, if you defined the constant A to be pi, automatically pi is interpreted to mean 3.14... In Named Objects, however, that is not the case. In the previous array of points, we tell CaluMath to interpret pi as the number 3.14... by using cm_evalno(pi), which tells CaluMath to mathematically evaluate the symbol pi to a number.<br><br>',
    ' <b>A String Example:</b> Object Name=B, Named Object Definition="Hello there" defines A to be the String Hello there.<br><br>',
].join("");

CaluMath.PM.PageMakerdefinedfunctionDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerdefinedfunctionDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.requiredname("Function"),
["cm_variable", "input", 10, "", [["Function Variable","help/individual_help.html#requiredcm_variablefunction"],"No spaces. Examples: x, x1, y, time", "same"],CaluMath.PM.IsValidName],
["definition", "input", 40, "", [["Function Definition","help/individual_help.html#requireddefinition"], "Examples: 12*x^2, 10*pi*sin(pi*x), e^x", "same"],CaluMath.PM.IsNonEmptyStringReplaceAll]
];
};

CaluMath.PM.PageMakerdefinedfunctionDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerdefinedfunctionDefault.optionsarray=[
["cm_alternatename", "input", 15, "", [["Alternate Function Name","help/individual_help.html#cm_alternatename"], "Desired displayed name, if different from the function name.", "same"], CaluMath.PM.IsBlankOrValidName],
["cm_precision", "input", 10, "5", [["Precision","help/individual_help.html#cm_precision"], "In Text, rounds function results to this many digits","same"], CaluMath.PM.IsNumber],
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};

CaluMath.PM.PageMakerdefinedfunctionDefault.textstring=['<b> You must use a * to indicate multiplication and a ^ to indicate powers.</b> Use parentheses liberally. <br><br>',
    'Examples: <br><br>',
    'Function Name: f, Function Variable: x, Function Definition: 3*x^2+4 defines the function <mi>f(x)=3*x^2+4</mi>. <br><br>',
    'Function Name: g, Function Variable: t, Function Definition: e^(sin(t)) defines the function <mi>g(t)=e^(sin(t))</mi>. <br><br>',
    'Function Name: h, Function Variable: z, Function Definition: log(z)/z^2 defines the function <mi>h(z)=log(z)/z^2</mi>. <br><br>',
    'For the function <mi>f</mi> above, if you also input Altername Function Name: Distance, whenever f appears in the web page, it will appear with this name Distance instead of f. <br><br>',
    'Precision rounds off function values only in the case where function values are computed by using the Insert Math or New Formatted Text button in the Text window when creating Text. <br><br>',
    'You can use trig functions sin, cos, tan, csc, sec, and cot, and the inverse trig functions arcsin, arccos, arctan, and arccot in your function definitions. You can also use the exponential and logarithmic functions  e, ln, and log.<br><br>',
    ].join("");

CaluMath.PM.PageMakerdiscretefunctionfrompointsarrayDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerdiscretefunctionfrompointsarrayDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.requiredname("Function"),
["cm_variable", "input", 10, "", [["Function Variable","help/individual_help.html#requiredcm_variablefunction"],"No spaces. Examples: x, x1, y, time", "same"],CaluMath.PM.IsValidName],
["cm_pointsarray", "input", 100, "", "Array Of Points", CaluMath.PM.IsNonEmptyString ],
["cm_precision","menu",[0, 1,2,3,4,5,6,7,8,9,10,11,12,.5,.25],3, "Precision"]
//["cm_functiontype", "menu", [["Discrete Function","cm_parsediscretefunction"],["PiecewiseLinear Function"]], "cm_parsepiecewiselinearfunction", "Type Of Function"]
];
};

CaluMath.PM.PageMakerdiscretefunctionfrompointsarrayDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerdiscretefunctionfrompointsarrayDefault.optionsarray=[
//["cm_alternatename", "input", 15, "", [["Alternate Function Name","help/individual_help.html#cm_alternatename"], "Desired displayed name, if different from the function name.", "same"], CaluMath.PM.IsBlankOrValidName],
//["cm_precision", "input", 10, "5", [["Precision","help/individual_help.html#cm_precision"], "In Text, rounds function results to this many digits","same"], CaluMath.PM.IsNumber],
//CM_DefaultEntriesObject.cm_onlyforlists()
];
};

CaluMath.PM.PageMakerdiscretefunctionfrompointsarrayDefault.textstring=['Enter a double array, whose entries consists of points, in the field Array Of Points. A function is constructed which assigns to each x coordinate, the corresponding y coordinate. The function is undefined at all values not cooresponding to a point.<br><br>',
   '<b>Example:</b> Function Name: f, Function Variable: x and Array Of Points: [[0,1],[2,5],[-2,3]], defines a function with the property that <mi>f(0)=1</mi>, <mi>f(2)=5</mi>,  <mi>f(-2)=3</mi>, and f is undefined at all other values.<br><br>',
   'You can graph a Discrete Function from Points Array by using Discrete Function Plot in the Axes and Graphs menu.<br><br>',
   '<b>Important Notes:</b> Using Discrete Function From Points Array you can define a "function" f that is not really a function. This occurs if the double array entered in Array Of Points, contains several points with the same x value but different y values, for example [[1,2],[3,5],[1,7],[4,5]]. In this particular example, the "function" f defined will not be a function, since f(1) is not well-defined, it is either 2 or 7. In this case, f(3) returns the number 5, and f(1) returns the array [2,7].<br><br>',
   '<b>Special Properties of Discrete Function From Points Array:</b> Suppose you define a Discrete Function From Points Array named f. Then f has the following special properties: <br><br>',
   '<b>1.</b> f.cm_domain is an array consisting of all the x values that appear in Array of Points. This is defined whether f is a function or not. <br><br>',
   '<b>2.</b> f.cm_isafunction is "yes" if f is a function or "no" if f is not a function.<br><br>',
   '<b>3.</b> f.cm_range is an array consisting of all the y values that appear in Array of Points. Note that it is defined whether f is a function or not.<br><br>',
   '<b>4.</b> f.cm_notwelldefined is an array consisting of all the x values for which there are multiple y values. The length of this array is given by f.cm_notwelldefined.length. Note that if f.cm_notwelldefined.length=0, then no x value has multiple y values, so f is a function.<br><br>',
   '<b>5.</b> f.cm_duplicatepoints is "yes" if duplicate points were entered in Array of Points and "no" if duplicate points were not entered. If a point is entered more than once, the first entry is kept but all succeeding entries are removed.<br><br>',
   '<b>6.</b> f.cm_pointsarray is the array entered in Array of Points with any duplicate entries removed.<br><br>',
   '<b>Example:</b> Function Name: f, Function Variable: x and Array Of Points: [[0,1],[2,5],[-2,1],[3,5]] produces a Discrete Function From Points Array named f with the following properties:  h.cm_domain returns the array [-2,0,2,3], h.cm_isafunction returns yes, h.cm_range returns [1,5], h.cm_notwelldefined returns an array of length 0.<br><br>',
   '<b>Example:</b> Function Name: f, Function Variable: x and Array Of Points: [[0,1],[2,5],[-2,1],[2,7],[0,3]] produces a Discrete Function From Points Array named f with the following properties: h.cm_domain returns [-2,0,2], h.cm_isafunction returns no, h.cm_range returns [1,3,5,7], h.cm_notwelldefined returns [0,2].<br><br>',
   '<b>Example:</b> Function Name: f, Function Variable: x and Array Of Points: [[0,1],[2,5],[-2,1],[2,5]] produces a Discrete Function From Points Array named f with the following properties: h.cm_domain returns [-2,0,2], h.cm_isafunction returns yes, h.cm_range returns [1,5], h.cm_duplicatepoints returns "yes", and h.cm_pointsarray=[[0,1],[2,5],[-2,1]], since the point [2,5] was entered twice.<br><br>',
   ].join(""); 


CaluMath.PM.PageMakersplitfunctionDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakersplitfunctionDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.requiredname("Function"),
//["name", "input", 15, "", "Function Name",CaluMath.PM.IsValidName],
["cm_variable", "input", 10, "x", "Function Variable",CaluMath.PM.IsValidName],
["empty"],["empty"],["empty"],
["definition1", "input", 40, "", "Function Definition 1"],
["condition1", "input", 40, "", "Condition 1"],
["empty"],["empty"],["empty"],
["definition2", "input", 40, "", "Function Definition 2"],
["condition2", "input", 40, "", "Condition 2"],
["empty"],["empty"],["empty"],
["definition3", "input", 40, "", "Function Definition 3"],
["condition3", "input", 40, "", "Condition 3"],
["empty"],["empty"],["empty"],
["definition4", "input", 40, "", "Function Definition 4"],
["condition4", "input", 40, "", "Condition 4"],
["empty"],["empty"],["empty"],
["definition5", "input", 40, "", "Function Definition 5"],
["condition5", "input", 40, "", "Condition 5"],
["empty"],["empty"],["empty"],
["definition6", "input", 40, "", "Function Definition 6"],
["condition6", "input", 40, "", "Condition 6"],
["empty"],["empty"],["empty"],
["cm_inputarray", "input", 40, "", "Or Enter A Double Array of Points For Piecewise Linear Split Function"]
];
};

CaluMath.PM.PageMakersplitfunctionDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakersplitfunctionDefault.optionsarray=[
["cm_alternatename", "input", 15, "", "Alternate Function Name",CaluMath.PM.IsBlankOrValidName],
["cm_precision", "input", 10, "5", [["Precision","help/individual_help.html#cm_precision"], "In Text, rounds function results to this many digits","same"], CaluMath.PM.IsNumber],
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};

//CM_PageMakersplitfunctionDefault.textstring='An example: Function Name=f, Function Variable=x, Function Definition 1=x^2+4, Condition 1= -5 &lt;= x  &lt; 0, Function Definition 2 = 5, Condition 2= x=0, Function Definition 3= 5-x, Condition 3=x &gt; 0, yields a split function with different definitions depending on whether <mi>-5 Unicode(le) x &lt; 0</mi>, <mi>x =0</mi>, or <mi>x >0</mi>.';
CaluMath.PM.PageMakersplitfunctionDefault.textstring='An example: Function Name: f, Function Variable: x, Function Definition 1: x^2+4, Condition 1: -5 <= x  < 0, Function Definition 2: 5, Condition 2:   x=0, Function Definition 3:  5-x, Condition 3: x > 0, yields a split function with different definitions depending on whether <mi>-5 Unicode(le) x < 0</mi>, <mi>x =0</mi>, or <mi>x >0</mi>. <br><br> A piecewise-linear split function can be created by entering a double array, where each entry is a point that the graph of the function goes through, in the field Or Enter A Double Array of Points For Piecewise Linear Split Function. Entering [[-2,5],[0,-1],[3,6]] yields a split function whose graph consists of the two line segments connecting the points [-2,5],[0,-1] and [3,6]. The points must be listed in stricly increasing or strictly decreasing x values of the points. In this case, you do not need to enter anything in the Function Definition fields or the  Condition  fields.<br><br> For the function above, if you also have Altername Function Name=Distance, for example, whenever f appears in the web page, it will appear with this name Distance instead of f. <br><br> Splitfunctions have one special feature. Assume you created the function f. In any paragraph or similar text in a page, you can enter cm_evalno(f.cm_htmlversion()) and the definition of the splitfunction will appear nicely formatted on several lines, complete with a curly brace.';

CaluMath.PM.PageMakernewplotDefault.makeoptionsarray=function(){ 
   return CaluMath.PM.PageMakernewplotDefault.optionsarray=[
//CM_DefaultEntriesObject.cm_plotstyle,
CaluMath.PM.DefaultEntriesObject.cm_equation("yes", "Display equations of graphs in these axes"),
["cm_equationcontainerwidth", "menu", [200,250,300,350,400,450,500,550,600,650,700], "300", "Equation Container Width"],
//CM_DefaultEntriesObject.cm_option("yes"),
["fontsize", "menu", [6,8,10,11,12,14,16,18,20,22,24,26,28,30,32,34,36,40,44,48,52], 16, "Font Size"],
["cm_fontfamily", "menu", ["New Times Roman", "Helvetica", "Corrier New", "Bermuda Solid","Creepy"], "Helvetica", "Font Family"], 
//["cm_xaxiscolor", "menu", CaluMath.PM.ColorArray, "auto",  "Color Of X Axis"],
CaluMath.PM.DefaultEntriesObject.cm_color("Color Of X Axis","cm_xaxiscolor"),
//["cm_yaxiscolor", "menu", CaluMath.PM.ColorArray, "auto", "Color Of Y Axis"],
CaluMath.PM.DefaultEntriesObject.cm_color("Color Of Y Axis","cm_yaxiscolor"),
//["cm_xlabelcolor", "menu", CaluMath.PM.ColorArray, "auto", "Color Of X Labels"],
CaluMath.PM.DefaultEntriesObject.cm_color("Color Of X Labels","cm_xlabelcolor"),
//["cm_ylabelcolor", "menu", CaluMath.PM.ColorArray, "auto",  "Color Of Y Labels"],
CaluMath.PM.DefaultEntriesObject.cm_color("Color Of Y Labels","cm_ylabelcolor"),
//["cm_xtickcolor", "menu", CaluMath.PM.ColorArray, "auto", "Color Of X Ticks"],
CaluMath.PM.DefaultEntriesObject.cm_color("Color Of X Ticks","cm_xtickcolor"),
//["cm_ytickcolor", "menu", CaluMath.PM.ColorArray, "auto",  "Color Of Y Ticks"],
CaluMath.PM.DefaultEntriesObject.cm_color("Color Of Y Ticks","cm_ytickcolor"),
["cm_xaxislabel", "input", 10, "", "Label For X Axis"],
["cm_yaxislabel", "input", 10, "", "Label For Y Axis"],
["cm_topmargin", "input", 10, 54, "Top Margin",CaluMath.PM.IsNumber],
["cm_leftmargin", "input", 10, 54, "Left Margin",CaluMath.PM.IsNumber],
["cm_rightmargin", "input", 10, 54, "Right Margin",CaluMath.PM.IsNumber],
["cm_bottommargin", "input", 10, 54, "Bottom Margin", CaluMath.PM.IsNumber],
["cm_xtickunit", "input", 10, "auto", "X Tick Spacing", CaluMath.PM.IsEvalMath],
["cm_ytickunit", "input", 10, "auto", "Y Tick Spacing", CaluMath.PM.IsEvalMath],
["cm_xprecision", "input", 10, "", "X Tick And Label Precision", CaluMath.PM.IsNumber],
["cm_yprecision", "input", 10, "", "Y Tick And Label Precision", CaluMath.PM.IsNumber],
["cm_xlabelreplacement", "input", 10, "", "X Label Replacement"],
["cm_ylabelreplacement", "input", 10, "", "Y Label Replacement"],
["cm_yaxisat", "input", 10, "0", "X Coordinate of Y Axis", CaluMath.PM.IsEvalMath],
["cm_xaxisat", "input", 10, "0", "Y Coordinate of X Axis", CaluMath.PM.IsEvalMath],
["cm_writexaxis","menu",["yes","no","invisible"],"yes", "Draw X Axis"],
["cm_writeyaxis","menu",["yes","no","invisible"],"yes", "Draw Y Axis"],
["cm_writexticks","menu",["yes","no","invisible"],"yes", "Draw X Ticks"],
["cm_writeyticks","menu",["yes","no","invisible"],"yes", "Draw Y Ticks"],
["cm_writexlabels","menu",["yes","no","invisible"],"yes", "Write X Labels"],
["cm_writeylabels","menu",["yes","no","invisible"],"yes", "Write Y Labels"],
["cm_constrained", "menu", ["yes", "no"], "no", "Constrained"],
["cm_grid", "menu", ["yes", "no"], "no", "Grid Lines"],
//["cm_backgroundcolor", "menu", CaluMath.PM.ColorArray, "auto", "Background Color"],
CaluMath.PM.DefaultEntriesObject.cm_color("Background Color","cm_backgroundcolor"),
CaluMath.PM.DefaultEntriesObject.visibilitywithstyle(),
["cm_caswindow", "menu", "newwindowlist", "", [["Window","help/individual_help.html#requiredcm_caswindow"], "Axes Appear In This Window","same"]],
["cm_insertoption", "menu", [["current point", "n/a"],["insertin", "cm_insertin"]], "current point", "Insert Options"],
["cm_inserttarget", "menu", '[["n/a", "n/a"]],concat,staticobjectlist', "newwindowlist", "Insert Target"],
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};

CaluMath.PM.PageMakernewplotDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakernewplotDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.requiredname("Axes"),
["width", "input", 10, 6, [["Plot Width (inches)","help/individual_help.html#requiredwidth"], "Width In Inches Of Plot","same"],CaluMath.PM.IsNumber],
["height", "input", 10, 5, [["Plot Height (inches)","help/individual_help.html#requiredheight"], "Height In Inches Of Plot","same"],CaluMath.PM.IsNumber],
["cm_xstart", "input", 30, "default", [["Beginning X Value","help/individual_help.html#requiredcm_xstart"], "Horizontal Axis Begins At This Number","same"],CaluMath.PM.IsDefaultOrEvalMath],
["cm_xfinish", "input", 30, "default", [["Ending X Value","help/individual_help.html#requiredcm_xfinish"], "Horizontal Axis Ends At This Number","same"] ,CaluMath.PM.IsDefaultOrEvalMath],
["cm_ystart", "input", 30, "default", [["Beginning Y Value","help/individual_help.html#requiredcm_ystart"], "Vertical Axis Begins At This Number","same"],CaluMath.PM.IsDefaultOrEvalMath],
["cm_yfinish", "input", 30, "default", [["Ending Y Value","help/individual_help.html#requiredcm_yfinish"], "Vertical Axis Ends At This Number","same"],CaluMath.PM.IsDefaultOrEvalMath]
//["dynamic", "menu", [["no","no"],["yes","yes"]], "no", "Dynamic Axes"],
//["caswindow", "menu", [["CM_MainWindow","CM_MainWindow"]], "CM_MainWindow", "Window"]
];
};

CaluMath.PM.PageMakernewplotDefault.textstring=['The <b>Name</b> for the axes should contain no spaces and cannot start with a number.<br><br>',
   '<b>The Width and Height</b> are the dimensions (in inches) that the axes would be if they were printed on paper.<br><br>', 
   'Enter the smallest and largest x coordinate for the axes in <b>Beginning X Value</b> and <b>Ending X Value</b>.<br><br>', 
   'If you leave Beginning Y Value and Ending Y Value as the word <b>default</b>, then CaluMath will determine these values based on the graphs of any functions (and only functions-not lines or circles) that you draw on the graph.<br><br>', 
   'If you leave any of Beginning X Value and Ending X Value as the word default, CaluMath will examine the x ranges for all the functions you graph on the axes and adapt the axes to them.<br><br>', 
   'We discuss the options below: <br><br>', 
   '<b>Display Equation: yes</b> means that a box to the right of the axes will be constructed. Equations of graphs you construct will be placed in this box. You can control the width of the box with Equation Container Width. <br><br>', 
   '<b>Labels</b> are the numbers or symbols that mark off distance along the x and y axes.<br><br>', 
   '<b>Font Size</b> and <b>Font Family</b> controls the size and appearance of the labels. <br><br>', 
   '<b>Label For X Axis</b> and  <b>Label For Y Axis</b> provide labels for the x and y axis. As an example, Label For X Axis=Time and  Label For Y Axis=Distance will labels the axes as Time and Distance.<br><br>', 
   '<b>Top Margin, Left Margin, Right Margin</b>, and <b>Bottom Margin</b> refer to the amount of space, in pixels, you want surrounding your axes. <br><br>', 
   'CaluMath will automatically choose where to draw ticks along the x and y axes, you can control this by entering the spacing values you want in <b>X Tick Spacing</b> and <b>Y Tick Spacing</b>. Any spacing you enter is automatically rounded off to an integer unless you specify the precision you want in <b>X and Y Tick Label Precision</b>. For example, entering X Tick Spacing: pi will produce a tick spacing of 3, (since pi is rounded off). However, if you choose X Tick Label Precision: 2, then the tick spacing will be 3.14 units.<br><br>', 
   'If, for example, you want to have Unicode(pi) appear below each tick, instead of 3.14. You accomplish this by entering X Label Replacement: Unicode(pi). Unicode tells CaluMath that the expression in parentheses is a symbol. In the parentheses you can enter any Greek letter in upper or lower cases. <br><br>',
   'You can have the vertical and horizontal axes not intersect at the origin by using <b>X Coordinate of Y Axis</b> and <b>Y Coordinate of X Axis</b>. <br><br>',
   'You can make the Axes, the Ticks on the Axes, and the Labels next to the Ticks invisible (and never constructed) or hidden (which means they can be revealed later through user interaction with the web page). <br><br>',
   'Constrained:yes means the scaling in the x and y directions of the axes will be the same. <br><br>',
   'Grid Lines:yes means silver lines will be drawn going through each tick mark, making the axes look like graph paper. <br><br>',
   'Window, Insert Options, and Insert Taget are only used if you want to create the axes after the page loads, as a result of user interaction with the web page. In this case you must create an Iframe that will load as the web page loads. Then construct the set of axes. The Iframe name will appear in Window and you should select it.<br><br>',
   ].join("");

CaluMath.PM.PageMakerfunctionplotDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerfunctionplotDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.newplot(""),
CaluMath.PM.DefaultEntriesObject.definedfunction,
["cm_xstart", "input", 30, CaluMath.PM.GetPageMakerObjectSetting(CaluMath.PM.PlotlistObject.newplotlist[0][2],"cm_xstart"), "Beginning X Value", CaluMath.PM.IsEvalMath],
["cm_xfinish", "input", 30, CaluMath.PM.GetPageMakerObjectSetting(CaluMath.PM.PlotlistObject.newplotlist[0][2],"cm_xfinish"), "Ending X Value", CaluMath.PM.IsEvalMath]
];
};

CaluMath.PM.PageMakerfunctionplotDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerfunctionplotDefault.optionsarray=[
["cm_derivative", "menu", '[["n/a"]],concat,definedfunctionslist', "",  [["Derivative Function", "help/individual_help.html#cm_derivative"], "Derivative Of This Function", "same"]],
["delta", "input", 10,"1e-8", [["Delta","help/individual_help.html#delta"], "Size Of Delta For Derivative Approximation", "same"], CaluMath.PM.IsBlankOrNumber],
CaluMath.PM.DefaultEntriesObject.cm_plotstyle,
CaluMath.PM.DefaultEntriesObject.cm_equation("yes", "Display the equation of this graph"),
CaluMath.PM.DefaultEntriesObject.cm_equationreplacement(25),
CaluMath.PM.DefaultEntriesObject.cm_option("yes"),
CaluMath.PM.DefaultEntriesObject.cm_color("Select Graph Color"),
//CaluMath.PM.DefaultEntriesObject.cm_alternatecolor,
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};

CaluMath.PM.PageMakerfunctionplotDefault.textstring='You must define a function before you can graph it. Enter the beginning and ending x values for the graph in Beginning X Value and Ending X Value. Do not leave the word default in these boxes (if it appears there). <br><br> Changing the selection in Plotstyle can make the graph appear thick, thin, dotted, or normal. <br><br> Display Equation=yes means the equation of the function will be placed in a box to the right of the axes. To ensure this happens, when you constructed the axes, you should have selected Display Equation=yes for the axes (so that the box next to the axes that contains the equations is constructed). <br> If you do not like the way the equation is written, you can enter what you want displayed by using Alternate Displayed Equation. Whatever you type in this box will be displayed to the right of the axes in place of the function definition. There are several shortcuts you can use.  In the entry, cm_rhs is replace by the right hand side of the function definition and cm_lhs is replaced by the left hand side of the function. For example, if the function is f(x) = x^2, that is what would normally be displayed to the right of the graph. However if you enter The blue graph is y=cm_rhs in Alternate Displayed Equation,  then <mi>The blue graph is y=x^2</mi> is what appears to the right of the axes. <br><br>  If the function you are graphing has a derivative that you have defined, select it in Derivative Function. The derivative function will be used in drawing tangent lines to the graph. If you have not defined the derivative function, tangents are approximated using secant lines with a distance of Delta between the two points. The entry Delta=1e-8 should work for almost all applications.  <br><br> In Preprogrammed Buttons And Boxes, you can construct a Graph Menu for each set of axes. This is a drop down menu of the graphs in that set of axes. You can choose to have the graph you are constructing be an entry in the Graph Menu by choosing Add To Graph Menu=yes. By means of this menu, users can choose the graph and interact with it, for example, by highlighting points on it or removing it. If the Graph Menu is not constructed, then selecting Add To Graph Menu=yes has no effect. <br><br> Only Use For Lists should never be used by CaluMath beginners.';

CaluMath.PM.PageMakerdiscretefunctionplotDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerdiscretefunctionplotDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.newplot(""),
CaluMath.PM.DefaultEntriesObject.discretefunction,
["cm_xstart", "input", 30, CaluMath.PM.GetPageMakerObjectSetting(CaluMath.PM.PlotlistObject.newplotlist[0][2],"cm_xstart"), "Beginning X Value", CaluMath.PM.IsDefaultOrEvalMath],
["cm_xfinish", "input", 30, CaluMath.PM.GetPageMakerObjectSetting(CaluMath.PM.PlotlistObject.newplotlist[0][2],"cm_xfinish"), "Ending X Value", CaluMath.PM.IsDefaultOrEvalMath]
];
};

CaluMath.PM.PageMakerdiscretefunctionplotDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerdiscretefunctionplotDefault.optionsarray=[
["cm_highlightwidth", "input", 10,"8", "Point Width",CaluMath.PM.IsNumber],
["cm_highlightheight", "input", 10,"8", "Point Height",CaluMath.PM.IsNumber],
CaluMath.PM.DefaultEntriesObject.cm_equation("yes", "Display the equation of this graph"),
CaluMath.PM.DefaultEntriesObject.cm_equationreplacement(25),
CaluMath.PM.DefaultEntriesObject.cm_option("yes"),
CaluMath.PM.DefaultEntriesObject.cm_color("Select Graph Color"),
//CaluMath.PM.DefaultEntriesObject.cm_alternatecolor,
["cm_precision","menu",[0, 1,2,3,4,5,6,7,8,9,10,11,12,.5,.25],3, "Precision"],
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};



CaluMath.PM.PageMakerrescaleaxesDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerrescaleaxesDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.newplot(""),
["width", "input", 10, CaluMath.PM.GetPageMakerObjectSetting(CaluMath.PM.PlotlistObject.newplotlist[0][2],"width"), [["Plot Width (inches)","help/individual_help.html#requiredwidth"], "Width In Inches Of Plot","same"],CaluMath.PM.IsNumber],
["height", "input", 10, CaluMath.PM.GetPageMakerObjectSetting(CaluMath.PM.PlotlistObject.newplotlist[0][2],"height"), [["Plot Height (inches)","help/individual_help.html#requiredheight"], "Height In Inches Of Plot","same"],CaluMath.PM.IsNumber],
["cm_xstart", "input", 30, CaluMath.PM.GetPageMakerObjectSetting(CaluMath.PM.PlotlistObject.newplotlist[0][2],"cm_xstart"), "Beginning X Value", CaluMath.PM.IsDefaultOrEvalMath],
["cm_xfinish", "input", 30, CaluMath.PM.GetPageMakerObjectSetting(CaluMath.PM.PlotlistObject.newplotlist[0][2],"cm_xfinish"), "Ending X Value", CaluMath.PM.IsDefaultOrEvalMath],
["cm_ystart", "input", 30, CaluMath.PM.GetPageMakerObjectSetting(CaluMath.PM.PlotlistObject.newplotlist[0][2],"cm_ystart"), "Beginning Y Value", CaluMath.PM.IsDefaultOrEvalMath],
["cm_yfinish", "input", 30, CaluMath.PM.GetPageMakerObjectSetting(CaluMath.PM.PlotlistObject.newplotlist[0][2],"cm_yfinish"), "Ending Y Value", CaluMath.PM.IsDefaultOrEvalMath],
["cm_yaxisat", "input", 10, CaluMath.PM.GetPageMakerObjectSetting(CaluMath.PM.PlotlistObject.newplotlist[0][2],"cm_yaxisat"), "X Coordinate of Y Axis", CaluMath.PM.IsEvalMath],
["cm_xaxisat", "input", 10, CaluMath.PM.GetPageMakerObjectSetting(CaluMath.PM.PlotlistObject.newplotlist[0][2],"cm_axisat"), "Y Coordinate of X Axis", CaluMath.PM.IsEvalMath]
];
};

CaluMath.PM.PageMakerrescaleaxesDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerrescaleaxesDefault.optionsarray=[
];
};



CaluMath.PM.PageMakerupdatablefunctionplotDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerupdatablefunctionplotDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.newplot(""),
CaluMath.PM.DefaultEntriesObject.requiredname("Updatable Graph",40)
];
};

CaluMath.PM.PageMakerupdatablefunctionplotDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerupdatablefunctionplotDefault.optionsarray=[
//["cm_derivative", "menu", '[["n/a"]],concat,definedfunctionlist', "",  [["Derivative Function", "help/individual_help.html#cm_derivative"], "Derivative Of This Function", "same"]],
//["delta", "input", 10,"1e-8", [["Delta","help/individual_help.html#delta"], "Size Of Delta For Derivative Approximation", "same"], CaluMath.PM.IsBlankOrNumber],
CaluMath.PM.DefaultEntriesObject.cm_plotstyle2,
CaluMath.PM.DefaultEntriesObject.cm_equation("yes", "Display the equation of this graph"),
CaluMath.PM.DefaultEntriesObject.cm_equationreplacement(25),
CaluMath.PM.DefaultEntriesObject.cm_option("yes"),
CaluMath.PM.DefaultEntriesObject.cm_color("Select Graph Color"),
//CaluMath.PM.DefaultEntriesObject.cm_alternatecolor,
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};


CaluMath.PM.PageMakerupdatablefunctionplotDefault.textstring=['For the most part, the graphs created using the Axes and Graphs menu are static. They can be created or removed through user interaction with the graph, however they cannot be modified once they are created. However, you may want to create an animation where a graph moves, or you may want to allow a user to drag a graph around on a set of axes. Updatable graphs fill this role.<br><br>',
   '<b>When you construct an Updatable Graph, it does not appear until you use Update To Function Graph, Update To Area Between Functions, or Update To Tangent Graph.</b><br><br>',
   '<b>Axes:</b> Select the Axes you want the Updatable Graph created in.<br><br>',
   '<b>Updatable Graph Name:</b> Enter a name for your Updatable Graph. This is the name that will appear in lists when using Update To Function Graph, Update To Area Between Functions, or Update To Tangent Graph.<br><br>',
   '<b>Plot Style:</b> Changing the selection in Plot Style can make the graph appear thick, thin, dotted, or very thick.<br><br>', 
   '<b>Display Equation: </b> Selecting yes  means the equation of the function will be placed in a box to the right of the axes. <b> This does not happen when the Updatable Graph is created, since Updated Graphs are originally not visible, but does occur after the Updatable graph is updated to the graph of a function.</b> To ensure this happens, when you constructed the axes, you should have selected <i>Display Equation: yes</i> for the axes (so that the box next to the axes that contains the equations is constructed). If you do not like the way the equation is written, you can enter what you want displayed by using Alternate Displayed Equation.<br><br>', 
   '<b>Alternate Displayed Equation:</b> If you do not like the way the equation is written, you can enter what you want displayed by using Alternate Displayed Equation. Whatever you type in this box will be displayed to the right of the axes in place of the function definition. There are several shortcuts you can use.  In the entry, cm_rhs is replace by the right hand side of the function definition and cm_lhs is replaced by the left hand side of the function. For example, if the function is f(x) = x^2, that is what would normally be displayed to the right of the graph. However if you enter The blue graph is y=cm_rhs in Alternate Displayed Equation,  then <mi>The blue graph is y=x^2</mi> is what appears to the right of the axes. <br><br>',  
   '<b>Add To Graph Menu:</b> In Preprogrammed Buttons And Boxes, you can construct a Graph Menu for each set of axes. This is a drop down menu of the graphs in that set of axes. You can choose to have the graph you are constructing be an entry in the Graph Menu by choosing <i>Add To Graph Menu: yes</i>. By means of this menu, users can choose the graph and interact with it, for example, by highlighting points on it or removing it. If the Graph Menu is not constructed, then selecting <i>Add To Graph Menu: yes</i> has no effect. <br><br>',
   '<b>Only Use For Lists:</b> This should never be used by CaluMath beginners. Sometimes, in advanced CaluMath constructions, you need to modify an object whose name does not appear in a list. This allows you to create a "phantom" object, whose name will appear in lists but the object itself will not appear in the web page in any way. <br><br>', 
].join("");


//Comment: Because of the CaluMath.PM.PlotlistObject.newplotlist[0][2] below, this cannot be handled directly by CaluMath.PM.CreateAdHocDependencies, since the required array cannot be constructed as the page loads. 
CaluMath.PM.PageMakerupdatefunctionplotDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerupdatefunctionplotDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.newplot(""),
CaluMath.PM.DefaultEntriesObject.definedfunction,
["graph", "menu", "updatablefunctionplotlist", "newplotlist", "This Updatable Graph"]
];
};

//Comment: Because of the CaluMath.PM.PlotlistObject.newplotlist[0][2] below, this cannot be handled directly by CaluMath.PM.CreateAdHocDependencies, since the required array cannot be constructed as the page loads. 
CaluMath.PM.PageMakerupdatefunctionplotDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerupdatefunctionplotDefault.optionsarray=[
["cm_xstart", "input", 30, CaluMath.PM.GetPageMakerObjectSetting(CaluMath.PM.PlotlistObject.newplotlist[0][2],"cm_xstart"), "Beginning X Value", CaluMath.PM.IsEvalMath],
["cm_xfinish", "input", 30, CaluMath.PM.GetPageMakerObjectSetting(CaluMath.PM.PlotlistObject.newplotlist[0][2],"cm_xfinish"), "Ending X Value", CaluMath.PM.IsEvalMath],
CaluMath.PM.DefaultEntriesObject.cm_equationreplacement(25),
["cm_leftendpointx", "input",30,"","Left Endpoint X Coordinate",CaluMath.PM.IsBlankOrEvalMath],
["cm_leftendpointy", "input",30,"","Left Endpoint Y Coordinate",CaluMath.PM.IsBlankOrEvalMath],
["cm_rightendpointx", "input",30,"","Right Endpoint X Coordinate",CaluMath.PM.IsBlankOrEvalMath],
["cm_rightendpointy", "input",30,"","Right Endpoint Y Coordinate", CaluMath.PM.IsBlankOrEvalMath]
];
};

CaluMath.PM.PageMakerupdatefunctionplotDefault.textstring=['<b>When an Updatable Graph is created, it is invisible. By using Update To Function Graph, you cause the Updatable Graph to become the graph of the function you select.</b><br><br>', 
   '<b>You must construt an Updatable Graph and the function you want it to become the graph of prior to using Update To Function Graph.</b><br><br>',
   '<b>Axes:</b> Select the Axes the Updatable Graph appears in.<br><br>',
   '<b>Function:</b> Select the function whose graph you want the Updatable Graph to be the graph of. <br><br>',
   '<b>This Updatable Graph Name:</b> Select the Updatable Graph that you want to update to the graph of the function.<br><br>',
   '<b>Beginning X Value:</b> Enter the x coordinate that marks where the graph of the function begins. <br><br>',
   '<b>Ending X Value:</b> Enter the x coordinate that marks where the graph of the function ends. <br><br>',
   '<b>Alternate Displayed Equation:</b> If, when you constructed the Updatable Graph, you selected <i>Display Equation: yes</i>, the equation of the function will be displayed to the right of the axes where the graph appears. If you do not like the way the equation is written, you can enter what you want displayed by using Alternate Displayed Equation. Whatever you type in this box will be displayed to the right of the axes in place of the function definition. There are several shortcuts you can use.  In the entry, cm_rhs is replace by the right hand side of the function definition and cm_lhs is replaced by the left hand side of the function. For example, if the function is f(x) = x^2, that is what would normally be displayed to the right of the graph. However if you enter The blue graph is y=cm_rhs in Alternate Displayed Equation,  then <mi>The blue graph is y=x^2</mi> is what appears to the right of the axes. <br><br>',  
].join("");



CaluMath.PM.PageMakerupdateareabetweenfunctionsplotDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerupdateareabetweenfunctionsplotDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.newplot(""),
["definedfunction", "menu", "definedfunctionlist", "", [["First Function", "help/individual_help.html#requireddefinedfunction"], "First Function", "same"]],
["definedfunction1", "menu", "definedfunctionlist", "", [["Second Function", "help/individual_help.html#requireddefinedfunction"], "Second Function", "same"]],
["graph", "menu", "updatablefunctionplotlist", "newplotlist", "This Updatable Graph"]
];
};

CaluMath.PM.PageMakerupdateareabetweenfunctionsplotDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerupdateareabetweenfunctionsplotDefault.optionsarray=[
["cm_xstart", "input", 30, CaluMath.PM.GetPageMakerObjectSetting(CaluMath.PM.PlotlistObject.newplotlist[0][2],"cm_xstart"), "Beginning X Value", CaluMath.PM.IsEvalMath],
["cm_xfinish", "input", 30, CaluMath.PM.GetPageMakerObjectSetting(CaluMath.PM.PlotlistObject.newplotlist[0][2],"cm_xfinish"), "Ending X Value", CaluMath.PM.IsEvalMath],
["cm_filltype", "menu", [["Area Below First Function And Above Second Function", "topbottom"],["Area Between Functions", "between"]], "topbottom", "Shade This Area"]
];
};


CaluMath.PM.PageMakerupdateareabetweenfunctionsplotDefault.textstring=['<b>When an Updatable Graph is created, it is invisible. By using Update To Area Between Functions, you cause the Updatable Graph to become visible and fill in the area between the graphs of two functions.</b><br><br>', 
   '<b>You must construt an Updatable Graph and the related functions before using Update To Area Between Functions. You do not have to construct a graph of each function. Update To Area Between Functions will fill in the space betwen them; in effect giving you a graph of both functions.</b><br><br>',
   '<b>Axes:</b> Select the Axes the Updatable Graph appears in.<br><br>',
   '<b>First Function:</b> Select one of the functions you want the Updatable Graph to fill in the area between. <b>The order of the functions is important as explained in Shade This Area</b>.<br><br>',
   '<b>Second Function:</b> Select the other function you want the Updatable Graph to fill in the area between.  <b>The order of the functions is important as explained in Shade This Area</b>.<br><br>',
   '<b>This Updatable Graph Name:</b> Select the Updatable Graph that you want to update to the area between the functions.<br><br>',
   '<b>Beginning X Value:</b> Enter the x coordinate that marks where the graph of the area begins. <br><br>',
   '<b>Ending X Value:</b> Enter the x coordinate that marks where the graph of the area ends. <br><br>',
   '<b>Shade This Area:</b> Select <i>Area Between Functions</i> if you want to shade the area inbetween the functions, regardless of which function is on top and which is on the bottom. Select <i>Area Below First Function and Above Second Function</i> if you only want to shade the area below the first function and above the second function. <b>In this case, the choice of the functions as First Function and Second Function matters; switching the functions will yield a different area.</b><br><br>',  
].join("");



CaluMath.PM.PageMakerupdateblanksegmentsDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerupdateblanksegmentsDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.newplot(""),
["graph", "menu", "updatablefunctionplotlist", "newplotlist", "This Updatable Graph"],
["empty"],["empty"],["empty"],
//["cm_segment1", "input", 40, "", "First Blank Segment",CaluMath.PM.IsNonEmptyStringReplaceAll],
//["cm_segment2", "input", 40, "", "Second Blank Segment",CaluMath.PM.IsNonEmptyStringReplaceAll],
["cm_segment1", "input", 40, "", "First Blank Segment"],
["cm_segment2", "input", 40, "", "Second Blank Segment"],
["empty"],["empty"],["empty"],
//["cm_segment3", "input", 40, "", "Third Blank Segment",CaluMath.PM.IsNonEmptyStringReplaceAll],
//["cm_segment4", "input", 40, "", "Fourth Blank Segment",CaluMath.PM.IsNonEmptyStringReplaceAll],
["cm_segment3", "input", 40, "", "Third Blank Segment"],
["cm_segment4", "input", 40, "", "Fourth Blank Segment"],
["empty"],["empty"],["empty"],
//["cm_segment5", "input", 40, "", "Fifth Blank Segment",CaluMath.PM.IsNonEmptyStringReplaceAll]
["cm_segment5", "input", 40, "", "Fifth Blank Segment"]
];
};

CaluMath.PM.PageMakerupdateblanksegmentsDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerupdateblanksegmentsDefault.optionsarray=[
];
};

CaluMath.PM.PageMakerupdateblanksegmentsDefault.textstring=['<b>When an Updatable Graph is created, it is invisible; it does not appear until you use Update To Function Graph, Update To Area Between Functions, or Update To Tangent Graph.</b><br><br>', 
   '<b>Updatable Graphs are made to be changed after they are constructed, usually as part of an animation, or in response to a user clicking or dragging their mouse on a set of axes. Because they need to be changed quickly, they sometimes do not correctly represent places where the graph of a function is undefined. Another difficulty is with split functions: the Updatable Graph does not detect jumps in splitfunctions, and erroneously connects braches of the splitfunction which are disconnected. Update With Blank Segments allows you to correct this. </b><br><br>',
   '<b>Axes:</b> Select the Axes the Updatable Graph appears in.<br><br>',
   '<b>This Updatable Graph Name:</b> Select the Updatable Graph on which you want to have blank segments appear.<br><br>',
   '<b>First Blank Segment:</b> Indicate the interval you want left blank. For example, if you want the graph to be blank from x=2 to x=4, enter <i>First Blank Segment: [2,4]</i>. If you want the graph to be blank at x=1, enter <i>First Blank Segment: [1,1]</i>. In this case, a tiny interval containing x=1 will be left blank. You can emphasise that the graph is undefined at exactly x=1 by plotting an open circle at that point. <br><br>',
   '<b>Complete the remain Blank Segment entries, if necessary. </b><br><br>',
   '<b>If you need to make more than five intervals blank, you can construct multiple Update With Blank Segments for the same Updatable Graph.</b><br><br>', 
   '<b>Warning! You must actually enter an interval in a Blank Segment Entry, you cannot enter the name of an Array. If you previously defined the Array C=[1,2], you cannot enter <i>First Blank Segment: C</i>.</b><br><br>',
].join("");



CaluMath.PM.PageMakerupdatetangentplotDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerupdatetangentplotDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.newplot(""),
CaluMath.PM.DefaultEntriesObject.definedfunction,
["graph", "menu", "updatablefunctionplotlist", "newplotlist", "This Updatable Graph"],
["cm_point", "input", 30,"", "Tangent At This Point", CaluMath.PM.IsEvalMath]
];
};

CaluMath.PM.PageMakerupdatetangentplotDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerupdatetangentplotDefault.optionsarray=[
["cm_tangentlengthfraction", "menu",[["1/4","1/8"],["1/2","1/4"],["3/4","3/8"],["1/1","1/1"]], "1/4", "Tangent Length/Axes Width"], 
["cm_xprecision","menu",[0, 1,2,3,4,5,6,7,8,9,10,11,12,.5,.25],3, "X Coordinate Precision"],
["cm_yprecision","menu",[0, 1,2,3,4,5,6,7,8,9,10,11,12,.5,.25],3, "Y Coordinate Precision"],
["cm_derivative", "input", 30, "", "Name of Derivative Function(if already defined)"],
CaluMath.PM.DefaultEntriesObject.cm_equationreplacement(25)
];
};

CaluMath.PM.PageMakerupdatetangentplotDefault.textstring=['<b>When an Updatable Graph is created, it is invisible. By using Update To Tangent Graph, you cause the Updatable Graph to become the graph of a tangent line to the selected function.</b><br><br>', 
   '<b>You must construt an Updatable Graph and the function you want it to become the graph of prior to using Update To Tangent Graph.</b><br><br>',
   '<b>Axes:</b> Select the Axes the Updatable Graph appears in.<br><br>',
   '<b>Function:</b> Select the function whose graph you want the Updatable Graph to become the tangent line to. <br><br>',
   '<b>This Updatable Graph Name:</b> Select the Updatable Graph that you want to update to the graph of a tangent line.<br><br>',
   '<b>Tangent At This Point:</b> Enter the x coordinate where you want the tangent to be drawn at. <br><br>',
   '<b>Tangent Length/Axes Width:</b> This gives the length of the tangent as a fraction of the horizontal with of the entire set of axes. For example, selecting <i>Tangent Length/Axes Width: 1/2</i> means the length of the tangent will be half the widht of the axes it is drawn on. The actual length of the tangent may be less, however, if it rises above the top of the axes or it sinks below the bottom of the axes.<br><br>',
   '<b>X Coordinate Precision:</b> This rounds off the x coordinate of the point of tangency to this many digits after the decimal place. Selecting <i>X Coordinate Precision: .5</i> rounds the x coordinate off to the nearest 1/2, selecting .25 rounds the x coordinate off to the nearest fourth. <br><br>',
   '<b>Y Coordinate Precision:</b> This rounds off the y coordinate of the point of tangency to this many digits after the decimal place. Selecting <i>Y Coordinate Precision: .5</i> rounds the y coordinate off to the nearest 1/2, selecting .25 rounds the x coordinate off to the nearest fourth. <b>Excessive rounding of the y coordinate may cause the tangent line to not actually touch the graph.</b> <br><br>',
   '<b>Alternate Displayed Equation:</b> If, when you constructed the Updatable Graph, you selected <i>Display Equation: yes</i>, the equation of the tangent line function will be displayed to the right of the axes where the graph appears. If you do not like the way the equation is written, you can enter what you want displayed by using Alternate Displayed Equation. Whatever you type in this box will be displayed to the right of the axes in place of the equation of the tangent line function. There are several shortcuts you can use.  In the entry, cm_rhs is replace by the right hand side of the tangent line equation and cm_lhs is replaced by the left hand side of the tangent line equation. For example, if you drew the tangent line to a function h at the point x=1,  the tangent line equation might be something such as <mi>h_Tangent1(x) = 2.25+(x-(1.5))*3</mi>, and this is what would normally be displayed to the right of the graph. However if you enter <mi>The tangent line is y=cm_rhs</mi> in Alternate Displayed Equation,  then <mi>The tangent line is y= 2.25+(x-(1.5))*3</mi> is what appears to the right of the axes. <br><br>',  
   '<b>Name Of Derivative Function (if already defined):</b> If you already defined the function that is the derivative of the function whose tangent line you want to draw, enter its name here. If you have not already defined the derivative function, a tangent line approximation is used to draw the tangent. Visually, the tangents will look identical, however the equations of a tangent line approximation and the true tangent will not be the same. <br><br>',  
].join("");



CaluMath.PM.PageMakeranimationplotDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakeranimationplotDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.newplot(""),
CaluMath.PM.DefaultEntriesObject.requiredname("Animation Plot"),
["cm_xstart", "input", 10, CaluMath.PM.GetPageMakerObjectSetting(CaluMath.PM.PlotlistObject.newplotlist[0][2],"xstart"), "Beginning Animation Value", CaluMath.PM.IsEvalMath],
["cm_xfinish", "input", 10, CaluMath.PM.GetPageMakerObjectSetting(CaluMath.PM.PlotlistObject.newplotlist[0][2],"xfinish"), "Ending Animation Value", CaluMath.PM.IsEvalMath],
["cm_animationlength", "input", 10, "5000", "Animation Length", CaluMath.PM.IsEvalMath],
["cm_definedfunction1x", "menu", '[["n/a"]],concat,definedfunctionlist', "", "Function1 X coordinate"],
["cm_definedfunction1y", "menu", '[["n/a"]],concat,definedfunctionlist', "", "Function1 Y coordinate"],
["cm_figure1", "input", 40, "box", "Figure 1",CaluMath.PM.IsNonEmptyString],
["cm_image0leftoffset", "input", 5, "default", "Figure 1 LeftOffset", CaluMath.PM.IsDefaultOrNumber],
["cm_image0topoffset", "input", 5, "default", "Figure 1 TopOffset", CaluMath.PM.IsDefaultOrNumber],
["cm_definedfunction2x", "menu", '[["n/a"]],concat,definedfunctionlist', "", "Function2 X coordinate"],
["cm_definedfunction2y", "menu", '[["n/a"]],concat,definedfunctionlist', "", "Function2 Y coordinate"],
["cm_figure2", "input", 40, "box", "Figure 2",CaluMath.PM.IsNonEmptyString],
["cm_image1leftoffset", "input", 5, "default", "Figure 2 LeftOffset", CaluMath.PM.IsDefaultOrNumber],
["cm_image1topoffset", "input", 5, "default", "Figure 2 TopOffset", CaluMath.PM.IsDefaultOrNumber],
["cm_definedfunction3x", "menu", '[["n/a"]],concat,definedfunctionlist', "", "Function3 X coordinate"],
["cm_definedfunction3y", "menu", '[["n/a"]],concat,definedfunctionlist', "", "Function3 Y coordinate"],
["cm_figure3", "input", 40, "box", "Figure 3",CaluMath.PM.IsNonEmptyString],
["cm_image2leftoffset", "input", 5, "default", "Figure 3 LeftOffset", CaluMath.PM.IsDefaultOrNumber],
["cm_image2topoffset", "input", 5, "default", "Figure 3 TopOffset", CaluMath.PM.IsDefaultOrNumber],
["cm_definedfunction4x", "menu", '[["n/a"]],concat,definedfunctionlist', "", "Function4 X coordinate"],
["cm_definedfunction4y", "menu", '[["n/a"]],concat,definedfunctionlist', "", "Function4 Y coordinate"],
["cm_figure4", "input", 40, "box", "Figure 4",CaluMath.PM.IsNonEmptyString],
["cm_image3leftoffset", "input", 5, "default", "Figure 4 LeftOffset", CaluMath.PM.IsDefaultOrNumber],
["cm_image3topoffset", "input", 5, "default", "Figure 4 TopOffset", CaluMath.PM.IsDefaultOrNumber],
["cm_definedfunction5x", "menu", '[["n/a"]],concat,definedfunctionlist', "", "Function5 X coordinate"],
["cm_definedfunction5y", "menu", '[["n/a"]],concat,definedfunctionlist', "", "Function5 Y coordinate"],
["cm_figure5", "input", 40, "box", "Figure 5",CaluMath.PM.IsNonEmptyString],
["cm_image4leftoffset", "input", 5, "default", "Figure 5 LeftOffset", CaluMath.PM.IsDefaultOrNumber],
["cm_image4topoffset", "input", 5, "default", "Figure 5 TopOffset", CaluMath.PM.IsDefaultOrNumber]
];
};

CaluMath.PM.PageMakeranimationplotDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakeranimationplotDefault.optionsarray=[
CaluMath.PM.DefaultEntriesObject.cm_option("yes"),
CaluMath.PM.DefaultEntriesObject.cm_color("Select Graph Color"),
//CaluMath.PM.DefaultEntriesObject.cm_alternatecolor,
["type","menu",[["Move A Box Or Picture","cm_animation"],["Repeatedly Do Routine", "cm_animationroutine"]],"Move A Box Or Picture", "Animation Type"],
["cm_millisecondsperframe","input",10,"default", "Miliseconds Per Frame", CaluMath.PM.IsDefaultOrNumber],
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};


CaluMath.PM.PageMakeranimationplotDefault.textstring='A Calumath animation is a box or picture that moves around on a set of axes. One function, that you define, controls the motion of the figure in the x direction. Another function, that you also define, controls the motion of the image in the y direction. You must construct a set of axes and define the functions that control the x and y motion of the figure before you construct an animation. <br><br> We give a simple example. Suppose we want to create an animation of an object moving counterclockwise around the unit circle. It is well known that this can be parameterized by the functions x=cost(t) and y=sin(t) where t goes from 0 to 2Unicode(pi). To accomplish this we must first define (using the Functions and  Constants menu) the functions f(t)=cos(t) and g(t) = sin(t). We should also define a set of axes. For the axes, you should select Constrained=yes, which forces the scaling in the x and y directions to be the same. This will ensure that circles look like perfect circles and not ovals. Once this is done, we enter the following: <br><br> Enter a name for the animation in Animation Plot Name. <br><br> Enter 0 in Beginning Animation Value and 2*pi in Ending Animation Value. This is because we want the animation to run from 0 to 2*pi. <br><br> Enter 5000 in Animation Length; this means the animation will last roughly 5,000 milliseconds, namely, 5 seconds.  <br><br> In Function 1 X Coordinate, select f. In Function 1 Y Coordinate, select g. <br><br> Enter box in Figure 1; this means a tiny box will be constructed and will be the figure that moves in the animation. If you want to use a picture, enter the address of the picture relative to the address of the web page you are constructing. <br><br> If you are using a picture instead of having CaluMath draw a box for the animation, CaluMath will place the top left corner of the picture at the coordinates given by the x and y functions. In this example, the top left corner of the picture will be placed at (1,0). You can enter offsets that will move the picture either up or down or left or right from its initial starting point. For example, if you want the picture to be centered at (1,0) when the animation starts, then you will have to do some adjusting using Figure 1 LeftOffset and Figure 1 TopOffset to accomplish this. Positive entries in these fields move the figure either left or up. Negative entries move the figure right and down. <br><br> If you want to have more than one figure moving at the same time, fill in the information for Function 2 X Coordinate, Function 2 Y Coordinate and Figure 2. Recall that you must construct the x and y functions for this other figure before you can define the animation that uses them. <br><br> Once you create your animation, you need buttons for the user to control it. The easiest thing to do is select Animations from the Main Menu in the CaluMath Page Maker, and Create All Animation Buttons from the sub-menu. This will create Start, Stop, Reset, Increase Animation Speed, etc. buttons for the user to interact with your animation. If you only want certain buttons, you can create them individually. <br><br> You can construct one other type of animation using CaluMath. For example, you can create an animation where the graph of f(x) = x^2, then f(x) = 2*x^2, then f(x) = 3*x^2 etc. is displayed. This is accomplished by selecting Animation Type=Repeatedly Do Routine. Unfortunately, there is no help for this type of animation yet.'; 

CaluMath.PM.PageMakeranimationplotDefault.textstring=['<b>There are two types of Animations you can create in CaluMath:</b><br><br>',
   '1. <b>A box or picture that moves around on a set of axes.</b> To accomplish this you must select <i>Animation Type: Move A Box Or Picture</i>. One function, that you define, controls the motion of the figure in the x direction. Another function, that you also define, controls the motion of the figure in the y direction. You can have several figures move in the same set of axes as part of the same Animation. <b>Warning: You must create a set of axes and define the functions that control the movement of the figure in the x and y direction before you create the Animation Plot.</b> <br><br>',
   '2. <b>An animation similar to a slide show.</b> In this case, you define a Routine that is repeatedly executed. Typically, each time the Routine is executed, a graph is updated. To accomplish this you must select <i>Animation Type: Repeatedly Do Routine</i>. In addition, after constructing the Animation Plot, you must create a Routine which contains the items you want constructed with each new frame of the animation. After creating the Routine, associate it to the Animation by use of the Routine For Animation Sub-Menu. <br><br>',
   '<b> Running Value:</b> Each Animation is controlled by a number, called the running value, that keeps changing as the Animation runs. The running value begins at the value you enter in <i>Beginning Animation Value</i> and ends at the value entered in <i>Ending Animation Value</i>. Suppose, for example, that you entered 1 in <i>Beginning Animation Value</i> and 21 in <i>Ending Animation Value</i>.<br><br>',
   '<b>For the first type of Animation above,</b> enter how long (in milliseconds) you want the Animation to run in Animation Length. For example, if you want the Animation to run for 5 seconds, enter 5000. The result of this is that running value will successively be increased and the figure moved in response to the new value of the running value in a way that results in the Animation lasting for 5 seconds.<br><br>',
   '<b>For the second type of Animation above,</b> enter how long (in milliseconds) you want the Animation to run in Animation Length. For example, if you want the Animation to run for 5 seconds, enter 5000. You also should enter how long you want each frame to last in Milliseconds Per Frame. For example, suppose you enter 500 in Milliseconds Per Frame. For this example, it means your animation will be 5000/500 = 10 frames long. Therefore, the running value will change ten times in going from its beginning to its ending value. Since we chose 1 and 21 as the starting and ending values, it means the running value will change by 2 for each new frame. Therefore the running values will be 3,5,7,9,11,13,15,17,19,21. Note that the running value will automatically be at 1 before the user clicks the Play button. <br><br>',
//   'As the Animation runs, the running value keeps increasing until it reaches the Ending Animation Value.  
   '<b>A simple example for the first type of Animation above.</b> Suppose we want to create an animation of an object moving counterclockwise around the unit circle. It is well known that this can be parameterized by the functions x=cost(t) and y=sin(t) where t goes from 0 to 2Unicode(pi). To accomplish:<br><br>',
   '<b>1.</b> Define (using the Functions and  Constants menu) the functions f(t)=cos(t) and g(t) = sin(t). <br><br>',
   '<b>2.</b> Define a set of axes. For the axes, you should select <i>Constrained:yes</i>, which forces the scaling in the x and y directions to be the same. This will ensure that circles look like perfect circles and not ovals.<br><br>',
   '<b>3.</b> In Animation Plot, enter or select the following values:<br><br>',
   '<b>a.</b> Select <i>Animation Type: Move A Box Or Picture</i>.<br><br>',
   '<b>b.</b> Enter a name for the animation in <i>Animation Plot Name</i>.<br><br>',
   '<b>c.</b> Enter 0 in <i>Beginning Animation Value</i> and 2*pi in <i>Ending Animation Value</i>. This is because we want the animation to run from 0 to 2*pi. <br><br>',
   '<b>d.</b> Enter 5000 in <i>Animation Length</i>; this means the animation will last roughly 5,000 milliseconds, namely, 5 seconds. <br><br>',
   '<b>e.</b> In <i>Function 1 X Coordinate</i>, select f. In <i>Function 1 Y Coordinate</i>, select g. This means, that as the running value changes, the x coordinate will be given by f(running value) and the y coordinate will be given by g(running value).  <br><br>',
   '<b>f.</b>  Enter box in <i>Figure 1</i>; this means a tiny box will be constructed and will be the figure that moves in the animation. <br><br>',
   '<b>g.</b>  If you are using a picture instead of having CaluMath draw a box for the animation, enter the web address of the picture (relative to web address where the page will be placed). CaluMath will place the top left corner of the picture at the coordinates given by the x and y functions. In this example, the top left corner of the picture will be placed at (1,0). You can enter offsets that will move the picture either up or down or left or right from its initial starting point. For example, if you want the picture to be centered at (1,0) when the animation starts, then you will have to do some adjusting using Figure 1 LeftOffset and Figure 1 TopOffset to accomplish this. Positive entries in these fields move the figure either left or up. Negative entries move the figure right and down. <br><br>',
   '<b>4.</b> Use the Sub-Menu Create All Animation Buttons to create all possible animation buttons, for example, Start, Stop, etc. <br><br><br>',
   '<b>A simple example for the second type of Animation above.</b> Suppose we want to create a slideshow of the graphs of the functions f(x) = -5x^2, f(x) = -4x^2, ... f(x) = 0x^2, f(x) = 1x^2, ... f(x) = 5x^2. In this case, before the user clicks the Play button, we want the the graph of f(x) = -5x^2 displayed, and then we want 10 frames of the animation to be played, with the final frame being the graph of f(x) = 5x^2. This is how to accomplish this:<br><br>', 
   '<b>1.</b> Define the constant A =-5 (using the Functions and  Constants menu). Define the function f(x)=A*x^2. Note that, because of the definition of f, each time A changes, f will actually be a different function.<br><br>',
   '<b>2.</b> Define a set of axes. Have the axes go from -4 to 4 in the x direction and -90 to 90 in the y direction (by using the field <i> Beginning X Value</i>, <i>Ending X Value</i>, <i> Beginning Y Value</i>, and <i> Ending Y Value</i>). This ensures that all of the graphs of the various functions f will fit on the axes.<br><br>',
   '<b>3.</b> Create an Updatable Graph by using the Updatable Graphs Menu and the Make Updatable Graph Sub-Menu.<br><br>',
   '<b>4.</b> Update the Updatable Graph to the graph of f using the Updatable Graphs Menu and the Update To Function Graph Sub-Menu. <br><br>',
   '<b>5.</b> In Animation Plot, enter or select the following values<br><br>',
   '<b>a.</b> Select <i>Animation Type: Repeatedly Do Routine</i>.<br><br>',
   '<b>b.</b> Enter a name for the animation in <i>Animation Plot Name</i>.<br><br>',
   '<b>c.</b> Enter -5 in <i>Beginning Animation Value</i> and 5 in <i>Ending Animation Value</i>. This is because we want the animation to run from -5 to 5, so the functions f(x)= -5x^2, f(x) = -4x^2, ... f(x)= 5x^2 will be graphed. <br><br>',
   '<b>d.</b> We want there to be 10 frames in the Animation. Suppose we want each frame to be 1 second (which is 1000 milliseconds long). This means we want the Animation to run for 10 seconds. Therefore, enter <i>Milliseconds Per Frame: 1000</i> and <i>Animation Length: 10000</i>. <br><br>',
   '<b>e.</b> Every other setting in in Animation Plot can be ignored.<br><br>',
   '<b>6.</b> Construct a Routine. The Routine should contain two items: <br><br>',
   '<b>a.</b> From the Animation Menu, choose the Name Animation Running Value Sub-Menu. Enter A in the <i>Animation Running Value Name</i> box. This means that A will no longer refer to -5, but will instead refer to  the current running value of the Animation.<br><br>',
   '<b>b.</b> Update the Updatable Graph to the graph of f. When this is done, since f(x)=Ax^2, it will now update to the graph of the new function A (with the new value of A).<br><br>',
   '<b>7.</b> Use the Sub-Menu Create All Animation Buttons to create all possible animation buttons, for example, Start, Stop, etc. <br><br>',
   '<b>8.</b> We still must associate the Routine we created to the Animation we created. Use the Animation Menus and choose the Sub-Menu Routine For Animation. Select the Animation you created and the Routine you created to associate the routine to the animation. <br><br>',
   '<b>9.</b> When you play the animation, the successive graphs of the parabolas are seen. The equation that is displayed for each of them, however, is f(x) = A*x^2, in other words, it displays A instead of the current value of A. This can be changed as follows:<br><br>',
   '<b>a.</b> Edit both places where you used Update To Function Graph to update the Updatable Graph to the graph of f. In each place in the field <i> Alternate Displayed Equation </i>, enter <i>f(x)=cm_evalno(A)*x^2</i>. This field is used to change the equations that are displayed to the right of a graph. In this case, the cm_evalno(A) forces A to be evaluated, in other words, the current value of A will appear instead of the letter A.<br><br>',
   '<b>8.</b> The Animation should now display the current equation for each graph as A changes.<br><br>',
].join("");


   '<b>1.</b> <br><br>',
   '<b>2.</b> <br><br>',
   '<b>3.</b> <br><br>',
   '<b>4.</b> <br><br>',
   '<b>5.</b> <br><br>',
   '<b>6.</b> <br><br>',


CaluMath.PM.PageMakertangentDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakertangentDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.newplot(""),
["graph", "menu", "canaddtangentslist", "newplotlist", [["Graph", "help/individual_help.html#requiredgraph"], "Draw Tangent On This Graph", "same"]],
["cm_xcoordinate", "input", 10,"", "X Coordinate", CaluMath.PM.IsEvalMath],
["cm_functionindex", "input", 10,"", [["MultiFunction Index", "help/individual_help.html#requiredcm_functionindex"], "Section of Graph of Non-Functions", "same"], CaluMath.PM.IsDefaultOrNumber],
CaluMath.PM.DefaultEntriesObject.requiredname("Tangent", "Tangent")
]
};

CaluMath.PM.PageMakertangentDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakertangentDefault.optionsarray=[
CaluMath.PM.DefaultEntriesObject.cm_plotstyle,
["cm_tangentlengthfraction", "menu",[["1/4","1/8"],["1/2","1/4"],["3/4","3/8"],["1/1","1/1"]], "1/4", "Tangent Length/Axes Width"], 
["cm_xprecision","menu",[0, 1,2,3,4,5,6,7,8,9,10,11,12,.5,.25],3, "X Coordinate Precision"],
["cm_yprecision","menu",[0, 1,2,3,4,5,6,7,8,9,10,11,12,.5,.25],3, "Y Coordinate Precision"],
CaluMath.PM.DefaultEntriesObject.cm_equation("no", "Display equation of this tangent"),
CaluMath.PM.DefaultEntriesObject.cm_equationreplacement(25),
CaluMath.PM.DefaultEntriesObject.cm_option("yes"),
CaluMath.PM.DefaultEntriesObject.cm_color("Select Graph Color"),
//CaluMath.PM.DefaultEntriesObject.cm_alternatecolor,
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};

CaluMath.PM.PageMakerhighlightDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerhighlightDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.newplot(""),
//["definedfunction", "menu", CaluMath.PM.PlotlistObject.definedfunctionlist, CaluMath.PM.PlotlistObject.definedfunctionlist[0], [["Graph", "help/individual_help.html#requiredgraph"], "Highlight Point On This Graph", "same"]],
["graph", "menu", "canaddhighlightslist", "newplotlist", "Function"],
["cm_xcoordinate", "input", 10,"", "X Coordinate", CaluMath.PM.IsEvalMath],
["cm_functionindex", "input", 10,"", [["MultiFunction Index", "help/individual_help.html#requiredcm_functionindex"], "Section of Graph of Non-Functions", "same"], CaluMath.PM.IsDefaultOrNumber],
CaluMath.PM.DefaultEntriesObject.requiredname("Highlight", "Highlight")
];
};

CaluMath.PM.PageMakerhighlightDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerhighlightDefault.optionsarray=[
["cm_highlightwidth", "input", 10,"8", "Point Width",CaluMath.PM.IsNumber],
["cm_highlightheight", "input", 10,"8", "Point Height",CaluMath.PM.IsNumber],
["cm_xprecision","menu",[0, 1,2,3,4,5,6,7,8,9,10,11,12,.5,.25],3, "X Coordinate Precision"],
["cm_yprecision","menu",[0, 1,2,3,4,5,6,7,8,9,10,11,12,.5,.25],3, "Y Coordinate Precision"],
CaluMath.PM.DefaultEntriesObject.cm_equation("no", "Display coordinates of this point"),
CaluMath.PM.DefaultEntriesObject.cm_equationreplacement(25),
CaluMath.PM.DefaultEntriesObject.cm_option("no"),
["cm_pointstyle", "menu", ["closed", "open"], "closed", "Open or Closed Point"],
CaluMath.PM.DefaultEntriesObject.cm_color("Select Graph Color"),
//CaluMath.PM.DefaultEntriesObject.cm_alternatecolor,
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};


CaluMath.PM.PageMakerhighlightDefault.textstring=['This is used to plot a point on a previously graphed Function, Line Segment Graph or Circle. <b>If you want to plot a point anywhere on a set of axes, you should use Plot A Point instead of Highlight A Point.</b>  All points in CaluMath are rectangular, not circular. If you plot a point that appears outside the set of axes, a warning pops up to tell the user that the point is outside the limits of the graph.<br><br>', 
   '<b>1.</b> Enter the x coordinate of the point on the Function, Line Segment Graph or Circle that you want highlighted.<br><br>',
   '<b>1.</b> Multifunction Index only applies to Circles and Line Segment Graphs. If you enter an x coordinate, on a circle there will probably be two y values corresponding to the x coordinate you enter. Points on the top half of the circle are considered to have Multifunction Index 0, and points on the bottom half of the circle have Multifunction Index 1. Enter one of these values to have the point appear on the top or bottom halves of the circle.<br><br>',
   '<b>1.</b> Each Line Segment Graph is the union of several line segments. The first segment has Multifunction Index 0, the next has Multifunction Index 1, and so forth. Enter the Multifunction index of the segment you on which you want the highlight to appear.<br><br>',
   '<b>1.</b> Plot Width and Plot Height give the width and height of the point in pixels. For best results, these numbers should be divisible by 4.<br><br>', 
   '<b>2.</b> The X Coordinate Precision and Y Coordinate Precision rounds the x and y coordinates of the point to this many digits of precision. For example if you enter pi in X Coordinate and select X Coordinate Precision:2, then the x coordinate will be 3.14.  If .25 or .5 is selected for precision it will round the coordinate to the nearest fourth or half. As an example X CoordinatePrecision:25 rounds 2.78776 to 2.75.<br><br>',
   '<b>3.</b> You can round the x coordinate of the highlighted point to anything that seems reasonable, however <b>use care to not round off y values too much. For example, rounding off the y value to 0 decimal places will often round the point off the graph of the line, circle or function it is supposed to lie on.</b><br><br>',
   '<b>4.</b> Display Equation:yes means the coordinates of the point will be placed in a box to the right of the axes. To ensure this happens, when you constructed the axes, you should have selected Display Equation:yes for the axes (so that the box next to the axes that contains the equations is constructed). If you named the point Highlight1 and it has coordinates(2,3), then Highlight1:(2,3) will be displayed. If you do not like the way the equation is written, you can enter what you want displayed by using Alternate Displayed Equation. Whatever you type in this box will be displayed to the right of the axes in place of the coordinates of the point. There are several shortcuts you can use.  In the entry, cm_rhs is replaced by the right hand side of what is normally displayed, and cm_lhs is replaced by the left hand side of what is normally displayed. In the previous example, if you enter <i>You clicked on cm_rhs</i> then <i>You clicked on (2,3)</i> appears; if you enter  <i>cm_lhs is plotted</i> then <i>Highlight1 is plotted</i> appears.<br><br>', 
   '<b>5.</b> In Preprogrammed Buttons And Boxes, you can construct a Graph Menu for each set of axes. This is a drop down menu of the graphs in that set of axes. You can choose to have the point you are plotting be an entry in the Graph Menu by choosing Add To Graph Menu:yes. By means of this menu, users can choose the graph and interact with it. However, for points, there is not much a user can do to interact with them except to remove them. Since points can clutter up the Graph Menu, the default setting for Graph Menu is no.<br><br>', 
   '<b>6.</b> You can select whether you want the point to be open or filled in. Enter a color for the point in the Select Graph Color Box, or click the associated link and follow the directions.<br><br>', 
   '<b>7. (Advanced)</b> Beginners should leave Only Use For Lists at its default value of no. Only Use For Lists should only be used when you want to do something with a graph, but the graph does not appear in a menu in the CaluMath Page Maker. This situation can occur when using For Loops, or in connection with allowing users to define functions in Text Boxes. Sometimes you will need to graph one of these functions, but their name will not appear in a menu. You can select <i>Only Use For Lists: yes</i> to create a "phantom" object. It\'s name will appear in menus, however it will not appear anywhere in the web page.<br><br>',
].join("");


CaluMath.PM.PageMakerpointplotDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerpointplotDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.newplot(""),
["cm_xcoordinate", "input", 30,"", "X Coordinate", CaluMath.PM.IsEvalMath],
["cm_ycoordinate", "input", 30,"", "Y Coordinate", CaluMath.PM.IsEvalMath],
CaluMath.PM.DefaultEntriesObject.requiredname("Point", "Point")
];
};

CaluMath.PM.PageMakerpointplotDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerpointplotDefault.optionsarray=[
["cm_highlightwidth", "input", 10,"8", "Point Width",CaluMath.PM.IsNumber],
["cm_highlightheight", "input", 10,"8", "Point Height",CaluMath.PM.IsNumber],
["cm_xprecision","menu",[0, 1,2,3,4,5,6,7,8,9,10,11,12,.5,.25],3, "X Coordinate Precision"],
["cm_yprecision","menu",[0, 1,2,3,4,5,6,7,8,9,10,11,12,.5,.25],3, "Y Coordinate Precision"],
CaluMath.PM.DefaultEntriesObject.cm_equation("no", "Display the coordinates of this point"),
CaluMath.PM.DefaultEntriesObject.cm_equationreplacement(25),
CaluMath.PM.DefaultEntriesObject.cm_option("no"),
["cm_pointstyle", "menu", ["closed", "open"], "closed", "Open or Closed Point"],
CaluMath.PM.DefaultEntriesObject.cm_color("Select Graph Color"),
//CaluMath.PM.DefaultEntriesObject.cm_alternatecolor,
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};

CaluMath.PM.PageMakerpointplotDefault.textstring=['This is used to plot a point anywhere on a set of axes. <b>If you want to plot a point on a line, circle, or graph of a function that has already been plotted, you should use Highlight A Point instead of Plot A Point.</b>  All points in CaluMath are rectangular, not circular. If you plot a point that appears outside the set of axes, a warning pops up to tell the user that the point is outside the limits of the graph.<br><br>', 
   '<b>1.</b> Plot Width and Plot Height give the width and height of the point in pixels. For best results, these numbers should be divisible by 4.<br><br>', 
   '<b>2.</b> The X Coordinate Precision and Y Coordinate Precision rounds the x and y coordinates of the point to this many digits of precision. For example if you enter pi in X Coordinate and select X Coordinate Precision:2, then the x coordinate will be 3.14.  If .25 or .5 is selected for precision it will round the coordinate to the nearest fourth or half. As an example X CoordinatePrecision:25 rounds 2.78776 to 2.75.<br><br>',
   '<b>3.</b> Display Equation:yes means the coordinates of the point will be placed in a box to the right of the axes. To ensure this happens, when you constructed the axes, you should have selected Display Equation:yes for the axes (so that the box next to the axes that contains the equations is constructed). If you named the point Point1 and it has coordinates(2,3), then Point1:(2,3) will be displayed. If you do not like the way the equation is written, you can enter what you want displayed by using Alternate Displayed Equation. Whatever you type in this box will be displayed to the right of the axes in place of the coordinates of the point. There are several shortcuts you can use.  In the entry, cm_rhs is replaced by the right hand side of what is normally displayed, and cm_lhs is replaced by the left hand side of what is normally displayed. In the previous example, if you enter <i>You clicked on cm_rhs</i> then <i>You clicked on (2,3)</i> appears; if you enter  <i>cm_lhs is plotted</i> then <i>Point1 is plotted</i> appears.<br><br>', 
   '<b>4.</b> In Preprogrammed Buttons And Boxes, you can construct a Graph Menu for each set of axes. This is a drop down menu of the graphs in that set of axes. You can choose to have the point you are plotting be an entry in the Graph Menu by choosing Add To Graph Menu:yes. By means of this menu, users can choose the graph and interact with it. However, for points, there is not much a user can do to interact with them except to remove them. Since points can clutter up the Graph Menu, the default setting for Graph Menu is no.<br><br>', 
   '<b>5.</b> You can select whether you want the point to be open or filled in. Enter a color for the point in the Select Graph Color Box, or click the associated link and follow the directions.<br><br>', 
   '<b>6. (Advanced)</b> Beginners should leave Only Use For Lists at its default value of no. Only Use For Lists should only be used when you want to do something with a graph, but the graph does not appear in a menu in the CaluMath Page Maker. This situation can occur when using For Loops, or in connection with allowing users to define functions in Text Boxes. Sometimes you will need to graph one of these functions, but their name will not appear in a menu. You can select <i>Only Use For Lists: yes</i> to create a "phantom" object. It\'s name will appear in menus, however it will not appear anywhere in the web page.<br><br>',
].join("");

CaluMath.PM.PageMakermovepointDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakermovepointDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.newplot(""),
["graph", "menu", "pointslist", "newplotlist", "Move This Point"],
["cm_xcoordinate", "input", 30,"", "X Coordinate", CaluMath.PM.IsEvalMath],
["cm_ycoordinate", "input", 30,"", "Y Coordinate", CaluMath.PM.IsEvalMath]
];
};

CaluMath.PM.PageMakermovepointDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakermovepointDefault.optionsarray=[
CaluMath.PM.DefaultEntriesObject.cm_equationreplacement(25),
CaluMath.PM.DefaultEntriesObject.cm_color("Select Graph Color"),
//CaluMath.PM.DefaultEntriesObject.cm_alternatecolor,
["cm_highlightwidth", "input", 10,"8", "Point Width",CaluMath.PM.IsNumber],
["cm_highlightheight", "input", 10,"8", "Point Height",CaluMath.PM.IsNumber]
];
};





CaluMath.PM.PageMakeractivatedragpointDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakeractivatedragpointDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.newplot(""),
["graph", "menu", "pointslist", "newplotlist", "List of Points"],
["cm_pointslist", "input", 100,"all", "Drag These Points (separate by commas)"]
];
};

CaluMath.PM.PageMakeractivatedragpointDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakeractivatedragpointDefault.optionsarray=[
//["cm_ondragevaluationoption", "menu",[["After Point is Dragged","discrete"] ,["While Point is Dragged","continuous"]], "auto", "Do Drag Routine When"],
CaluMath.PM.DefaultEntriesObject.cm_color("Select Graph Color"),
//CaluMath.PM.DefaultEntriesObject.cm_alternatecolor,
["cm_highlightwidth", "input", 10,"8", "Point Width",CaluMath.PM.IsNumber],
["cm_highlightheight", "input", 10,"8", "Point Height",CaluMath.PM.IsNumber],
["cm_dragxprecision","menu",[0, 1,2,3,4,5,6,7,8,9,10,11,12,.5,.25],3, "X Precision"],
["cm_dragyprecision","menu",[0, 1,2,3,4,5,6,7,8,9,10,11,12,.5,.25],3, "Y Precision"],
CaluMath.PM.DefaultEntriesObject.cm_equationreplacement(25),
["cm_createtimefunction", "menu",[["no","no"],["yes","yes"]],"no", "Create Time Function (To make a graph or animation of point movement)"],
["cm_arrayname", "input", 50,"", "Optional Name For Points List"]
];
};

CaluMath.PM.PageMakeractivatedragpointDefault.textstring=['<b> For a general discussion of dragging objects, click the Quick Introduction button in the CaluMath Page Maker.</b><br>',
   'Activate Dragging Points activates the ability of the user to drag previously constructed Points around on a set of axes. When the user does, CaluMath constantly reports the coordinates of the point as it is dragged. The coordinates can be used by a routine for a variety of purposes, for example, to move a graph.<br><br>',
   '<b>1.</b> <b>After you activate points to be dragged you must, at some point, create a Routine that will be associated with the points that are dragged. The first object in the Routine should be Name Dragged Value (in the Dragging Objects menu). This captures the current value of the point. You can choose to have the Routine be invoked while the point is being dragged or after the point has been dragged. After creating the Routine, associate it to the Axes by the Routine For Dragging sub-menu in the Dragging Objects menu. You can place the Routine anywhere in your web page, however you must associate the Routine to the axes only after you construct the Activate Drag Points.</b><br><br>',
   '<b>2.</b> <b>List Of Points</b> is a list of all the points that are, or will (for example by userinteraction with the web page) be plotted on the axes. This list is placed here only to help you decide which points you want to allow the user to drag; selecting a particular point has no effect.<br><br>',
   '<b>3.</b> Enter the list of points you want dragged in <b>Drag These Points</b>. Separate the individual points by commas. If you want to allow the user to drag all the points in the axes, enter all in the box.<br><br>',
   '<b>4.</b> If a point was constructed using the Highlight A Point menu, then the point is a point highlighted on a graph. When the point is dragged, it will stay on the graph it belongs to. Points plotted using the Plot A Point menu can be dragged anywhere.<br><br>',
   '<b>5.</b> Currently, CaluMath does not have the functionality to drag highlighted points on Circle and Arcs or Line Segment Graphs. If the user tries to drag one of these points, nothing will happen.<br><br>',
   '<b>6.</b> You can change the color, height, and width of the points the user drags using <b>Select Graph Color</b>, <b>Point Width</b>, and <b>Point Height</b>. Enter the desired color in the text box or click the associated link and follow the directions. For each point, the change takes place when the user starts to drag the point. The height and width of the points are in pixels. For best results, each value should be a multiple of 4. Unfortunately, there is no way to easily change the color of each point back to its original value after dragging.<br><br>',
   '<b>7.</b> If, when the point was constructed, you chose <b>Display Equation:yes</b>, it means the coordinates of the point will be placed in a box to the right of the axes. If you named the point Point1 and it has coordinates(2,3), then Point1:(2,3) will be displayed. This will be updated as the point is dragged. If you do not like the way the coordinates are displayed, you can enter what you want displayed by using <b>Alternate Displayed Equation</b>. Whatever you type in this box will be displayed to the right of the axes in place of the coordinates of the point. There are several shortcuts you can use.  In the entry, cm_rhs is replaced by the right hand side of what is normally displayed, and cm_lhs is replaced by the left hand side of what is normally displayed. In the previous example, if you enter <i>You clicked on cm_rhs</i> then <i>You clicked on (2,3)</i> appears; if you enter  <i>cm_lhs is plotted</i> then <i>Point1 is plotted</i> appears. In addition, it you enter cm_x or cm_y, they will be replaced by the x and y coordinates of the point respectively. <br><br>', 
   '<b>8.</b> In <b>Display Equation</b>, if you need to write a comma, you must write /, instead. In the previous example, enter <i> The coordinates are cm_x /, cm_y</i> yields <i> The coordinates are 2, 3</i>.<br><br>', 
   '<b>9.</b> <b>Precision</b> refers to the number of decimal places of accuracy for the x and y coordinates of the dragged point. As the point is dragged, its new coordinates are compared to its previous coordinates; if, after rounding, they are the same, the point is not moved, and any associated routines associated with the point are not invoked. Precision: .25 or Precision: .5 rounds values off to the nearest fourth or half.<br><br>',
   '<b>10.</b> You should give some thought to your choice for <b>Precision</b>. If you choose Precision:10, then every tiny movement of the mouse will cause the point to move and an associated routine to be invoked. If the routine is complicated, this can cause the web page, and the dragged point, to be sluggish.<br><br>',
   '<b>11.</b> If you enter a name in <b>Optional Name For Points List</b>, an Array, whose entries are the potential points that can be dragged (not the points the user actually dragged) is created and given the name you entered.<br><br>', 
].join("");

/*
   '<b>6.</b> 
   '<b>7.</b> 
   '<b>8.</b> 
   '<b>9.</b> 
   '<b>6.</b> 

   '<b>3.</b> 
   '<b>4.</b> 
   '<b>5.</b> 
   '<b>6.</b> 
*/



CaluMath.PM.PageMakerdeactivatedragpointDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerdeactivatedragpointDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.newplot("")
//["graph", "menu", "pointslist", "newplotlist", "Drag This Point"]
];
};

CaluMath.PM.PageMakerdeactivatedragpointDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerdeactivatedragpointDefault.optionsarray=[
CaluMath.PM.DefaultEntriesObject.cm_equationreplacement(25),
CaluMath.PM.DefaultEntriesObject.cm_color("Select Graph Color"),
//CaluMath.PM.DefaultEntriesObject.cm_alternatecolor,
["cm_highlightwidth", "input", 10,"8", "Point Width",CaluMath.PM.IsNumber],
["cm_highlightheight", "input", 10,"8", "Point Height",CaluMath.PM.IsNumber]
];
};


CaluMath.PM.PageMakerdeactivatedragpointDefault.textstring=['<b> For a general discussion of dragging objects, click the Quick Introduction button in the CaluMath Page Maker.</b><br>',
   'Deactivate Dragging Points cancels the effects of a previous Activate Dragging Poings. It will stop a user\'s ability to drag points around on a graph.<br><br>',
   '<b>1.</b> Choose the axes for which you want to stop the ability to drag points.<br><br>',
   '<b>2.</b> You can change the color, height, and width of the points the user dragged or had the potential to drag. Enter the desired color in the text box or click the associated link and follow the directions. Each point which had the ability to be dragged will be changed to this color. The height and width of the points are in pixels. For best results, each value should be a multiple of 4.<br><br>',
   '<b>3.</b> If, when the point was constructed, you chose Display Equation:yes, it means the coordinates of the point are placed in a box to the right of the axes. If you named the point Point1 and it has coordinates(2,3), then Point1:(2,3) will be displayed. This will be updated as the point is dragged. If you do not like the way the coordinates are displayed, you can enter what you want displayed by using Alternate Displayed Equation. Whatever you type in this box will be displayed to the right of the axes in place of the coordinates of the point. There are several shortcuts you can use.  In the entry, cm_rhs is replaced by the right hand side of what is normally displayed, and cm_lhs is replaced by the left hand side of what is normally displayed. In the previous example, if you enter <i>You clicked on cm_rhs</i> then <i>You clicked on (2,3)</i> appears; if you enter  <i>cm_lhs is plotted</i> then <i>Point1 is plotted</i> appears. All points that had the potential to be dragged will have their displayed coordinates re-evaluated with a Deactivate Dragging Points.<br><br>', 
].join("");



CaluMath.PM.PageMakeractivatecapturedragpathDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakeractivatecapturedragpathDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.newplot("")
//CM_DefaultEntriesObject.requiredname("Name")
];
};

CaluMath.PM.PageMakeractivatecapturedragpathDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakeractivatecapturedragpathDefault.optionsarray=[
//["cm_ondragevaluationoption", "menu",[["After Point is Dragged","discrete"] ,["While Point is Dragged","continuous"]], "auto", "Do Drag Routine When"],
CaluMath.PM.DefaultEntriesObject.cm_equationreplacement(25),
["cm_draggingpathoptions", "menu", [["arbitrary movement","n/a"], ["x always increasing", "cm_xincreases"],["x always decreasing", "cm_xdecreases"]], "arbitrary movement", "Restrictions On Dragging"],
["cm_draggingpathrepeats", "menu", [["multiple","multiple"], ["once", "once"]], "multiple", "Number of Drags Permitted"],
//["cm_dragxcapturedistance","menu",["n/a",2,4,6,8,10,12,14,16,18,20,25,30],6, "X Distance (in pixels) Mouse Moves For New Point "],
//["cm_dragycapturedistance","menu",["n/a",2,4,6,8,10,12,14,16,18,20,25,30],6, "Y Distance (in pixels) Mouse Moves For New Point "],
["cm_dragcapturedistance","menu",["n/a",2,4,6,8,10,12,14,16,18,20,25,30],6, "Distance (in pixels) Mouse Moves For New Point "],
["cm_dragxprecision","menu",[0, 1,2,3,4,5,6,7,8,9,10,11,12,.5,.25],3, "X Precision"],
["cm_dragyprecision","menu",[0, 1,2,3,4,5,6,7,8,9,10,11,12,.5,.25],3, "Y Precision"],
["cm_createtimefunction", "menu",[["no","no"],["yes","yes"]], "no", "Create Time Function (To make a graph or animation of point movement)"]
];
};

CaluMath.PM.PageMakeractivatecapturedragpathDefault.textstring=['<b> For a general discussion of dragging objects, click the Quick Introduction button in the CaluMath Page Maker.</b><br>',
  'Activate Capture Drag Path activates a set of axes to be prepared for the user to drag their cursor over the axes. When the user does, CaluMath keeps track of the points the cursor is dragged over. Typically this is used to create a graph of the points where the user dragged their mouse. <br><br>',
  'Some of the options can be described very easily, others only make sense in the context of how you will use Activate Capture Drag Path.<br><br>',
  '<b>Number of Drags Permitted:</b> This controls whether the user can drag their cursor over the axes only one time or multiple times. <br><br>',
  '<b>Distance (in pixels) Mouse Moves For New Point:</b> This controls the minimum amount the mouse must move before a new point is registered. The smaller the number, the more accurately the path of the mouse can be graphed, however if the number is too small, slower computers may lag a bit when they draw the graph.<br><br>',
  '<b>X Precision and Y Precision:</b> The coordinates of the points over which the mouse is dragged will have their <mi>x</mi> and <mi>y</mi> coordinates rounded to the number of digits indicated in these fields.<br><br>',
  '<b>Restrictions On Dragging:</b> This controls whether the user is allowed to move their mouse arbitrarily, or only in one direction. This is important, because if the user moves their mouse backwards and forwards in the x direction, the resulting graph will not be the graph of a function. If arbitrary movement is allowed, the only way to construct a graph of their path is by using a Line Segment Graph. If, on the other hand, you only allow movement in one direction, the graph will be the graph of a function. In this case, you can use the dragged path to create a split function and update an Updatable Graph to the graph of the splitfunction. In general, Updatable Graphs are better suited to dragging, since they are designed to be constructed and updated more quickly than other types of graphs. Note that if you only allow movement in one direction, the user can still move their mouse in an arbitrary way; however any movements in the opposite direction will not be registered.<br><br>',
  'We now indicate how Activate Capture Dragged Path may be used.<br><br>',
  '<b>1.</b> You set Restrictions On Dragging: x always increasing. When the axes is constructed, an Updatable Graph is also constructed. The user drags their mouse over the set of axes. When the user stops dragging their mouse a Routine captures the array of points the mouse moved over. A Split Function is defined using the array of points. The Updatable Graph is updated to the graph of the split function. In this case you do not see the graph being drawn until after the mouse is done being dragged.<br><br>',  
  '<b>2.</b> You set Restrictions On Dragging: arbitrary movement. The user drags their mouse over the set of axes. When the user stops dragging their mouse a Routine captures the array of points the mouse moved over. A Line Segment Graph is constructed that approximates the graph by drawing very small line segments connecting successive points in the array of points. In this case you do not see the graph drawn until after the mouse is done being dragged.<br><br>', 
  '<b>3.</b> This is similar to 2) above. You set Restrictions On Dragging: arbitrary movement. When the user first clicks down on the mouse, you have a Routine create a Line Segment Graph beginning and ending at the one point on which they clicked. The user drags their mouse over the set of axes. While they do a Routine constantly captures the new point the mouse has moved to, and adds a line segment to the already constructed Line Segment Graph by using the Add Segment To Line Segment Graph Sub-Menu. In this case, you see the graph being created as you draw it. <br><br>', 
//  '<b>4.</b> Not recommended: The user drags their mouse over the set of axes. When the user stops dragging their mouse a Routine captures the array of points the mouse moved over. A Split Function is defined using the array of points. Using Graph Of A Function, the Split Function is graphed. This is not recommended since, on slower computers, it will take several seconds for the graph to appear once the user stops dragging their mouse.<br><br>', 
  'If multiple drags are permitted, the user can drag their mouse over the axes again and new graphs will be drawn. In this case you need to create a button that has a button action containing a Deactivate Capture Drag Path, so the user has a way to end creating graphs by dragging their mouse on the set of axes.<br><br>', 

  '<b>If you create a Highligh Button,</b> to highlight points on the graph created by the dragged mouse movement, observe the following:<br><br>',
  'If, in constructing the Highlight Button, you select Prompt User For Correct Point: yes, then after the user clicks on a point, a small dialog box appears, asking the user if they are satisfied with their point, or if they want to enter the x coordinate of a different point to be highlighted. This dialog box does not work correctly on Line Segment Graphs with very small line segments. Therefore, if you construct a graph for the dragged path by using a Line Segment Graph, you should select Prompt User For Correct Point: no. This is not a problem however, if you defined a Split Function from the dragged path and used an Updatable Graph to graph the Split Function.<br><br>', 
  
//  'The three types of graphs above have the following advantages and disadvantages.<br><br>',
//  '<b>1. Advantages:</b> Line Segment Graphs can have an arbitrary shape, in particular, they can double back and intersect themselves, and have several different points with the same <mi>x</mi> value. Using the Preprogrammed Buttons And Boxes sub-menu, a Highlight Button can be constructed can be constructed as part of the Routine which will allow the user to click on the graph and obtain coordinates.<br><br>', 
//  '<b>Disadvantages:</b> There may be a slight lag of a second or two between the end of the mouse drag and the creation of the graph. Highlighting points on a Line Segment Graph (by using the Highlight Button) has one special difficulty. However, as an option in the Highlight Button, you can only highlight the points the user clicks, you cannot offer them the option of entering in the exact <mi>x</mi> coordinate of the point that interests them. This is because that capability is only accurate if they enter the coordinate of a point on the same segment as the point on which they clicked. However, in the present case, each segment is so small, that this cannot be accomplished.<br><br>', 
//  '2<b>. Advantages:</b><br><br>', 
].join("");

// To use Activate Capture Drag Path, you also need to construct a Routine that is executed after the user finishes dragging their mouse on the axes. One item in the routine should be Name Dragged Value (from the Dragging Objects sub-menu). This gives you both the final point the user moved their mouse to and an array of all the points in the path of the mouse. Finally, you need to associate the Routine to the Activate Capture Drag Path by using Routine For Dragging in the Dragging Objects sub-menu. You should look at the help button in the Activate Capture Drag Path window for more details.";


CaluMath.PM.PageMakerdeactivatecapturedragpathDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerdeactivatecapturedragpathDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.newplot("")
//["graph", "menu", "pointslist", "newplotlist", "Drag This Point"]
];
};

CaluMath.PM.PageMakerdeactivatecapturedragpathDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerdeactivatecapturedragpathDefault.optionsarray=[
CaluMath.PM.DefaultEntriesObject.cm_equationreplacement(25)
];
};

CaluMath.PM.PageMakerdeactivatecapturedragpathDefault.textstring=['<b> For a general discussion of dragging objects, click the Quick Introduction button in the CaluMath Page Maker.</b><br>',
  '<b>Activate Capture Drag Path activates a set of axes to be prepared for the user to drag their cursor over the axes. When the user does, CaluMath keeps track of the points the cursor is dragged over. Typically this is used to create a graph of the points where the user dragged their mouse. </b><br><br>',
  '<b>Dectivate Capture Drag Path is used to cancel the effects of Activate Capture Drag Path. When you do not want to allow a user to drag their mouse over a set of axes anymore, use Deactivate Capture Drag Path. </b><br><br>',
].join("");




/////////////////////////////////////RECTANGLE BELOW//////////////////////

CaluMath.PM.PageMakerrectangleplotDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerrectangleplotDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.newplot(""),
["cm_x1coordinate", "input", 30,"", "One Corner X Coordinate", CaluMath.PM.IsEvalMath],
["cm_y1coordinate", "input", 30,"", "One Corner Y Coordinate", CaluMath.PM.IsEvalMath],
["cm_x2coordinate", "input", 30,"", "Other Corner X Coordinate", CaluMath.PM.IsEvalMath],
["cm_y2coordinate", "input", 30,"", "Other Corner Y Coordinate", CaluMath.PM.IsEvalMath],
CaluMath.PM.DefaultEntriesObject.requiredname("Rectangle", "Rectangle")
];
};

CaluMath.PM.PageMakerrectangleplotDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerrectangleplotDefault.optionsarray=[
CaluMath.PM.DefaultEntriesObject.cm_equation("no", "Display the coordinates of this point"),
CaluMath.PM.DefaultEntriesObject.cm_equationreplacement(25),
CaluMath.PM.DefaultEntriesObject.cm_option("no"),
["cm_rectanglestyle", "menu", ["filled", "open"], "filled", "Filled In Or Open Rectangle"],
["cm_plotstyle", "menu", [["normal","normal"],["thin","thin"], ["thick","thick"],["very thick","verythick"]], "normal", [["Plot Style","help/individual_help.html#cm_plotstyle"], "Thickness of the Open Rectangle Drawn", "same"]],
CaluMath.PM.DefaultEntriesObject.cm_color("Select Graph Color"),
//CaluMath.PM.DefaultEntriesObject.cm_alternatecolor,
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};

CaluMath.PM.PageMakermoverectangleDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakermoverectangleDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.newplot(""),
["graph", "menu", "rectangleslist", "newplotlist", "Move This Rectangle"],
["cm_x1coordinate", "input", 30,"", "One Corner X Coordinate", CaluMath.PM.IsEvalMath],
["cm_y1coordinate", "input", 30,"", "One Corner Y Coordinate", CaluMath.PM.IsEvalMath],
["cm_x2coordinate", "input", 30,"", "Another Corner X Coordinate", CaluMath.PM.IsEvalMath],
["cm_y2coordinate", "input", 30,"", "Another Corner Y Coordinate", CaluMath.PM.IsEvalMath]
];
};

CaluMath.PM.PageMakermoverectangleDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakermoverectangleDefault.optionsarray=[
CaluMath.PM.DefaultEntriesObject.cm_equationreplacement(25),
CaluMath.PM.DefaultEntriesObject.cm_color("Select Graph Color")
//CaluMath.PM.DefaultEntriesObject.cm_alternatecolor
];
};

CaluMath.PM.PageMakeractivatedragrectangleDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakeractivatedragrectangleDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.newplot(""),
["graph", "menu", "rectangleslist", "newplotlist", "List Of Rectangles"],
["cm_rectangleslist", "input", 100,"all", "Drag These Rectangles (separate by commas)"]
];
};

CaluMath.PM.PageMakeractivatedragrectangleDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakeractivatedragrectangleDefault.optionsarray=[
//["cm_ondragevaluationoption", "menu",[["After Rectangle is Dragged","discrete"] ,["While Rectangle is Dragged","continuous"]], "auto", "Do Drag Routine When"],
CaluMath.PM.DefaultEntriesObject.cm_equationreplacement(25),
CaluMath.PM.DefaultEntriesObject.cm_color("Select Graph Color"),
//CaluMath.PM.DefaultEntriesObject.cm_alternatecolor,
["cm_dragxprecision","menu",[0, 1,2,3,4,5,6,7,8,9,10,11,12,.5,.25],3, "X Precision"],
["cm_dragyprecision","menu",[0, 1,2,3,4,5,6,7,8,9,10,11,12,.5,.25],3, "Y Precision"],
["cm_arrayname", "input", 50,"", "Optional Name For Rectangles List"]
];
};


CaluMath.PM.PageMakeractivatedragrectangleDefault.textstring=['<b> For a general discussion of dragging objects, click the Quick Introduction button in the CaluMath Page Maker.</b><br>',
   'Activate Dragging Rectangles activates the ability of the user to drag previously constructed Rectangles around on a set of axes. When the user does, CaluMath constantly reports the coordinates of the Rectangle as it is dragged. The coordinates can be used by a routine for a variety of purposes, for example, to move a graph or input the information into a function and display the results.<br><br>',
   '<b>1.</b> <b>After you activate rectangles to be dragged you must, at some point, create a Routine that will be associated with the rectangles that are dragged. The first object in the Routine should be Name Dragged Value (in the Dragging Objects menu). This captures the current coordinates of the four corners of the rectangle. You can choose to have the Routine be invoked at the very beginning of when the rectangle is being dragged, while the rectangle is being dragged or after the rectangle has been dragged. After creating the Routine, associate it to the Axes by the Routine For Dragging sub-menu in the Dragging Objects menu. You can place the Routine anywhere in your web page, however you must associate the Routine to the axes only after you construct the Activate Drag Rectangles.</b><br><br>',
   '<b>2.</b> <b>List Of Rectangles</b> is a list of all the rectangles that are, or will (for example by userinteraction with the web page) be plotted on the axes. This list is placed here only to help you decide which rectangles you want to allow the user to drag; selecting a particular rectangle has no effect.<br><br>',
   '<b>3.</b> Enter the list of rectangles you want dragged in <b>Drag These Rectangles</b>. Separate the individual rectangles by commas. If you want to allow the user to drag all the rectangles in the axes, enter <i>Drag These Rectangles: all</i> in the box.<br><br>',
   '<b>4.</b> You can change the color of the rectangles the user drags using <b>Select Graph Color</b>. Enter the desired color in the text box or click the associated link and follow the directions. Unfortunately, there is no way to easily change the color of each rectangle back to its original value after dragging.<br><br>',
   '<b>5.</b> If, when the rectangle was constructed, you chose <b>Display Equation:yes</b>, it means the coordinates of the corners of the rectangle will be placed in a box to the right of the axes. If you named the rectangle Rectangle1 and its top left corner has coordinates(2,7) and bottom right coordinate at (4,1), then Rectangl1:[[2,7], [4,7],[4,1],[2,1]]; these are the coordinates of the top left, top right, bottom right, and bottom left corners. This will be updated as the rectangle is dragged. If you do not like the way the coordinates are displayed, you can enter what you want displayed by using <b>Alternate Displayed Equation</b>. Whatever you type in this box will be displayed to the right of the axes in place of the coordinates for the corners of the rectangle. There are several shortcuts you can use.  In the entry, cm_rhs is replaced by the right hand side of what is normally displayed, and cm_lhs is replaced by the left hand side of what is normally displayed. In the previous example, if you enter <i>You clicked on cm_rhs</i> then <i>You clicked on [[2,7], [4,7],[4,1],[2,1]]</i> appears; if you enter  <i>cm_lhs is plotted</i> then <i>Rectangle1 is plotted</i> appears. In addition, cm_topleft, cm_topright, cm_bottomright, and cm_bottomleft are replaced by the coordinates of the top left, top right, bottom right, and bottom left corners of the rectangle respectively. Furthermore, cm_x1 and cm_y1 are replaced by the x and y coordinates of the top left corner respectively; cm_x2 and cm_y2 are replaced by the x and y coordinates of the top right corner respectively; cm_x3 and cm_y3 are replaced by the x and y coordinates of the bottom right corner respectively; and cm_x4 and cm_y4 are replaced by the x and y coordinates of the bottom left corner respectively. For example, <i>Top Left Corner x coordinate is cm_x1</i> yields <i>Top Left Corner x coordinate is 2</i>.  <br><br>', 
   '<b>6.</b> In <b>Alternate Displayed Equation</b>, if you need to write a comma, you must write /, instead. In the previous example, enter <i> The left and right x coordinates are cm_x1 /, cm_x2</i> yields <i> The left and right x coordinates are 2, 4</i>.<br><br>', 
   '<b>7.</b> <b>Precision</b> refers to the number of decimal places of accuracy for the x and y coordinates of the dragged rectangle. As the rectangle is dragged, its new coordinates are compared to its previous coordinates; if, after rounding, they are the same, the rectangle is not moved, and any associated routines associated with the rectangle are not invoked. Precision: .25 or Precision: .5 rounds values off to the nearest fourth or half.<br><br>',
   '<b>8.</b> You should give some thought to your choice for <b>Precision</b>. If you choose Precision:10, then every tiny movement of the mouse will cause the rectangle to move and an associated routine to be invoked. If the routine is complicated, this can cause the web page, and the dragged rectangle, to be sluggish.<br><br>',
   '<b>9.</b> If you enter a name in <b>Optional Name For Rectangles List</b>, an Array, whose entries are the potential rectangles that can be dragged (not the rectangles the user actually dragged) is created and given the name you entered.<br><br>', 
].join("");




CaluMath.PM.PageMakerdeactivatedragrectangleDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerdeactivatedragrectangleDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.newplot("")
];
};

CaluMath.PM.PageMakerdeactivatedragrectangleDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerdeactivatedragrectangleDefault.optionsarray=[
CaluMath.PM.DefaultEntriesObject.cm_equationreplacement(25),
CaluMath.PM.DefaultEntriesObject.cm_color("Select Graph Color")
//CaluMath.PM.DefaultEntriesObject.cm_alternatecolor
];
};

CaluMath.PM.PageMakerdeactivatedragrectangleDefault.textstring=['<b> For a general discussion of dragging objects, click the Quick Introduction button in the CaluMath Page Maker.</b><br>',
   'Activate Dragging Rectangles activates the ability of the user to drag previously constructed Rectangles around on a set of axes. When the user does, CaluMath constantly reports the coordinates of the Rectangle as it is dragged. The coordinates can be used by a routine for a variety of purposes, for example, to move a graph or input the information into a function and display the results.<br><br>',
   '<b>5.</b> You can change the color of any of the rectangles that could potentially have been dragged (whether the user dragged them or not) using <b>Select Graph Color</b>. Enter the desired color in the text box or click the associated link and follow the directions. Unfortunately, there is no way to easily change the color of each rectangle back to its original value after dragging.<br><br>',
   '<b>6.</b> If, when the rectangle was constructed, you chose <b>Display Equation:yes</b>, it means the coordinates of the corners of the rectangle will be placed in a box to the right of the axes. If you named the rectangle Rectangle1 and its top left corner has coordinates(2,7) and bottom right coordinate at (4,1), then Rectangl1:[[2,7], [4,7],[4,1],[2,1]]; these are the coordinates of the top left, top right, bottom right, and bottom left corners. This will be updated as the rectangle is dragged. If you do not like the way the coordinates are displayed, you can enter what you want displayed by using <b>Alternate Displayed Equation</b>. Whatever you type in this box will be displayed to the right of the axes in place of the coordinates for the corners of the rectangle. There are several shortcuts you can use.  In the entry, cm_rhs is replaced by the right hand side of what is normally displayed, and cm_lhs is replaced by the left hand side of what is normally displayed. In the previous example, if you enter <i>You clicked on cm_rhs</i> then <i>You clicked on [[2,7], [4,7],[4,1],[2,1]]</i> appears; if you enter  <i>cm_lhs is plotted</i> then <i>Rectangle1 is plotted</i> appears. In addition, cm_topleft, cm_topright, cm_bottomright, and cm_bottomleft are replaced by the coordinates of the top left, top right, bottom right, and bottom left corners of the rectangle respectively. Furthermore, cm_x1 and cm_y1 are replaced by the x and y coordinates of the top left corner respectively; cm_x2 and cm_y2 are replaced by the x and y coordinates of the top right corner respectively; cm_x3 and cm_y3 are replaced by the x and y coordinates of the bottom right corner respectively; and cm_x4 and cm_y4 are replaced by the x and y coordinates of the bottom left corner respectively. For example, <i>Top Left Corner x coordinate is cm_x1</i> yields <i>Top Left Corner x coordinate is 2</i>.<br><br>', 
   '<b>7.</b> In <b>Alternate Displayed Equation</b>, if you need to write a comma, you must write /, instead. In the previous example, enter <i> The left and right x coordinates are cm_x1 /, cm_x2</i> yields <i> The left and right x coordinates are 2, 4</i>.<br><br>', 
].join("");


CaluMath.PM.PageMakerdeactivateclickableaxesDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerdeactivateclickableaxesDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.newplot("")
];
};

CaluMath.PM.PageMakerdeactivateclickableaxesDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerdeactivateclickableaxesDefault.optionsarray=[
];
};



CaluMath.PM.PageMakeractivateviewrectangleDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakeractivateviewrectangleDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.newplot(""),
CaluMath.PM.DefaultEntriesObject.requiredname("Rectangle", "Rectangle")
];
};

CaluMath.PM.PageMakeractivateviewrectangleDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakeractivateviewrectangleDefault.optionsarray=[
//["cm_ondragevaluationoption", "menu",[["After Rectangle is Dragged","discrete"] ,["While Rectangle is Dragged","continuous"]], "auto", "Do Drag Routine When"],
["cm_plotstyle", "menu", [["normal","normal"],["thin","thin"], ["thick","thick"],["very thick","verythick"]], "normal", [["Plot Style","help/individual_help.html#cm_plotstyle"], "Thickness of the Open Rectangle Drawn", "same"]],
CaluMath.PM.DefaultEntriesObject.cm_color("Select Graph Color"),
//CaluMath.PM.DefaultEntriesObject.cm_alternatecolor,
CaluMath.PM.DefaultEntriesObject.cm_equation("no", "Display the coordinates of this point"),
CaluMath.PM.DefaultEntriesObject.cm_equationreplacement(25),
CaluMath.PM.DefaultEntriesObject.cm_option("no"),
["cm_dragxprecision","menu",[0, 1,2,3,4,5,6,7,8,9,10,11,12,.5,.25],3, "X Precision"],
["cm_dragyprecision","menu",[0, 1,2,3,4,5,6,7,8,9,10,11,12,.5,.25],3, "Y Precision"]
];
};

CaluMath.PM.PageMakerdeactivateviewrectangleDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerdeactivateviewrectangleDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.newplot("")
];
};

CaluMath.PM.PageMakerdeactivateviewrectangleDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerdeactivateviewrectangleDefault.optionsarray=[
["cm_plotstyle", "menu", [["normal","normal"],["thin","thin"], ["thick","thick"],["very thick","verythick"]], "normal", [["Plot Style","help/individual_help.html#cm_plotstyle"], "Thickness of the Open Rectangle Drawn", "same"]],
CaluMath.PM.DefaultEntriesObject.cm_equationreplacement(25),
CaluMath.PM.DefaultEntriesObject.cm_color("Select Graph Color")
//CaluMath.PM.DefaultEntriesObject.cm_alternatecolor
];
};


CaluMath.PM.PageMakeractivatestretchrectangleDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakeractivatestretchrectangleDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.newplot(""),
["graph", "menu", "rectangleslist", "newplotlist", "List Of Rectangles"],
["cm_rectangleslist", "input", 100,"all", "Stretch These Rectangles (separate by commas)"]
];
};

CaluMath.PM.PageMakeractivatestretchrectangleDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakeractivatestretchrectangleDefault.optionsarray=[
["cm_sidesdragged", "menu",[["Top Side","cm_topside"], ["Bottom Side","cm_bottomside"],["Left Side","cm_leftside"], ["Right Side","cm_rightside"], ["Both Vertical Sides","cm_verticalsides"], ["Both Horizontal Sides","cm_horizontalsides"], ["All Sides","cm_allsides"]], "cm_topside", "Which Sides Can Be Dragged"],
//["cm_ondragevaluationoption", "menu",[["After Rectangle is Dragged","discrete"] ,["While Rectangle is Dragged","continuous"]], "auto", "Do Drag Routine When"],
CaluMath.PM.DefaultEntriesObject.cm_equationreplacement(25),
CaluMath.PM.DefaultEntriesObject.cm_color("Select Graph Color"),
//CaluMath.PM.DefaultEntriesObject.cm_alternatecolor,
["cm_dragxprecision","menu",[0, 1,2,3,4,5,6,7,8,9,10,11,12,.5,.25],3, "X Precision"],
["cm_dragyprecision","menu",[0, 1,2,3,4,5,6,7,8,9,10,11,12,.5,.25],3, "Y Precision"],
["cm_arrayname", "input", 50,"", "Optional Name For Rectangles List"]
];
};

CaluMath.PM.PageMakeractivatestretchrectangleDefault.textstring=['<b> For a general discussion of dragging objects, click the Quick Introduction button in the CaluMath Page Maker.</b><br>',
   'Activate Stretch Rectangles activates the ability of the user to stretch the sides of previously constructed Rectangles to change their shape. When the user does, CaluMath constantly reports the coordinates of the Rectangle as it is stretched. The coordinates can be used by a routine for a variety of purposes, for example, to move a graph or input the information into a function and display the results.<br><br>',
   '<b>1.</b> <b>After you activate rectangles to be stretched you must, at some point, create a Routine that will be associated with the rectangles that are stretched. The first object in the Routine should be Name Dragged Value (in the Dragging Objects menu). This captures the current coordinates of the four corners of the rectangle. You can choose to have the Routine be invoked at the very beginning of when the rectangle is being stretched, while the rectangle is being stretched or after the rectangle has been stretched. After creating the Routine, associate it to the Axes by the Routine For Dragging sub-menu in the Dragging Objects menu. You can place the Routine anywhere in your web page, however you must associate the Routine to the axes only after you construct the Activate Drag Rectangles.</b><br><br>',
   '<b>2.</b> <b>List Of Rectangles</b> is a list of all the rectangles that are, or will (for example by userinteraction with the web page) be plotted on the axes. This list is placed here only to help you decide which rectangles you want to allow the user to stretch; selecting a particular rectangle has no effect.<br><br>',
   '<b>3.</b> Enter the list of rectangles you want stretched in <b>Stretch These Rectangles</b>. Separate the individual rectangles by commas. If you want to allow the user to stretch all the rectangles in the axes, enter <i>Drag These Rectangles: all</i> in the box.<br><br>',
   '<b>4. Which Sides Can Be Dragged:</b> Enter the sides of the rectangles you want the user to have the ability to be stretched.<br><br>',
   '<b>5.</b> You can change the color of the rectangles the user stretches using <b>Select Graph Color</b>. Enter the desired color in the text box or click the associated link and follow the directions. Unfortunately, there is no way to easily change the color of each rectangle back to its original value after stretching.<br><br>',
   '<b>6.</b> If, when the rectangle was constructed, you chose <b>Display Equation:yes</b>, it means the coordinates of the corners of the rectangle will be placed in a box to the right of the axes. If you named the rectangle Rectangle1 and its top left corner has coordinates(2,7) and bottom right coordinate at (4,1), then Rectangl1:[[2,7], [4,7],[4,1],[2,1]]; these are the coordinates of the top left, top right, bottom right, and bottom left corners. This will be updated as the rectangle is stretched. If you do not like the way the coordinates are displayed, you can enter what you want displayed by using <b>Alternate Displayed Equation</b>. Whatever you type in this box will be displayed to the right of the axes in place of the coordinates for the corners of the rectangle. There are several shortcuts you can use.  In the entry, cm_rhs is replaced by the right hand side of what is normally displayed, and cm_lhs is replaced by the left hand side of what is normally displayed. In the previous example, if you enter <i>You clicked on cm_rhs</i> then <i>You clicked on [[2,7], [4,7],[4,1],[2,1]]</i> appears; if you enter  <i>cm_lhs is plotted</i> then <i>Rectangle1 is plotted</i> appears. In addition, cm_topleft, cm_topright, cm_bottomright, and cm_bottomleft are replaced by the coordinates of the top left, top right, bottom right, and bottom left corners of the rectangle respectively. Furthermore, cm_x1 and cm_y1 are replaced by the x and y coordinates of the top left corner respectively; cm_x2 and cm_y2 are replaced by the x and y coordinates of the top right corner respectively; cm_x3 and cm_y3 are replaced by the x and y coordinates of the bottom right corner respectively; and cm_x4 and cm_y4 are replaced by the x and y coordinates of the bottom left corner respectively. For example, <i>Top Left Corner x coordinate is cm_x1</i> yields <i>Top Left Corner x coordinate is 2</i>.  <br><br>', 
   '<b>7.</b> In <b>Alternate Displayed Equation</b>, if you need to write a comma, you must write /, instead. In the previous example, enter <i> The left and right x coordinates are cm_x1 /, cm_x2</i> yields <i> The left and right x coordinates are 2, 4</i>.<br><br>', 
   '<b>8.</b> <b>Precision</b> refers to the number of decimal places of accuracy for the x and y coordinates of the stretched rectangle. As the rectangle is stretched, its new coordinates are compared to its previous coordinates; if, after rounding, they are the same, the rectangle is not moved, and any associated routines associated with the rectangle are not invoked. Precision: .25 or Precision: .5 rounds values off to the nearest fourth or half.<br><br>',
   '<b>9.</b> You should give some thought to your choice for <b>Precision</b>. If you choose Precision:10, then every tiny movement of the mouse will cause the rectangle to move and an associated routine to be invoked. If the routine is complicated, this can cause the web page, and the stretched rectangle, to be sluggish.<br><br>',
   '<b>10.</b> If you enter a name in <b>Optional Name For Rectangles List</b>, an Array, whose entries are the potential rectangles that can be stretched (not the rectangles the user actually stretched) is created and given the name you entered.<br><br>', 
].join("");



CaluMath.PM.PageMakerdeactivatestretchrectangleDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerdeactivatestretchrectangleDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.newplot("")
//["graph", "menu", "rectangleslist", "newplotlist", "Drag This Rectangle"]
];
};

CaluMath.PM.PageMakerdeactivatestretchrectangleDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerdeactivatestretchrectangleDefault.optionsarray=[
//["cm_plotstyle", "menu", [["normal","normal"],["thick","thick"],["thin","thin"]], "normal", [["Plot Style","help/individual_help.html#cm_plotstyle"], "Thickness of the Open Rectangle Drawn", "same"]],
CaluMath.PM.DefaultEntriesObject.cm_equationreplacement(25),
CaluMath.PM.DefaultEntriesObject.cm_color("Select Graph Color")
//CaluMath.PM.DefaultEntriesObject.cm_alternatecolor
];
};


/////////////////////////////////RECTANGLE ABOVE//////////////////////



CaluMath.PM.PageMakerslidingscaleDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerslidingscaleDefault.requiredarray=[
//CaluMath.PM.DefaultEntriesObject.newplot1(""),
CaluMath.PM.DefaultEntriesObject.requiredname("Sliding Scale",30),
["cm_width", "input", 20, "150", "Sliding Scale Width", CaluMath.PM.IsEvalMath],
["cm_height", "input", 20, "20", "Sliding Scale Height", CaluMath.PM.IsEvalMath]
];
};

CaluMath.PM.PageMakerslidingscaleDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerslidingscaleDefault.optionsarray=[
//["cm_ondragevaluationoption", "menu",[["After Scale is Dragged","discrete"] ,["While Scale is Dragged","continuous"]], "auto", "Do Drag Routine When"],
["cm_beginningcoordinate", "input", 10, "default", "Beginning Coordinate of Sliding Bar", CaluMath.PM.IsDefaultOrEvalMath],
CaluMath.PM.DefaultEntriesObject.cm_caswindow(),
CaluMath.PM.DefaultEntriesObject.cm_insertoption(),
["cm_inserttarget", "menu", '[["n/a", "n/a"]],concat,namedobjectlist', "newwindowlist", "n/a", "Insert Target"],
CaluMath.PM.DefaultEntriesObject.visibilitywithstyle(),
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};





CaluMath.PM.PageMakerlinearplotDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerlinearplotDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.newplot(""),
["pointslist", "input", 50,"", "List of Points",CaluMath.PM.IsNonEmptyString],
["labels", "input", 25, "", "Segment Labels"],
CaluMath.PM.DefaultEntriesObject.requiredname("Line Segment", "LineSegment")
];
};

CaluMath.PM.PageMakerlinearplotDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerlinearplotDefault.optionsarray=[
CaluMath.PM.DefaultEntriesObject.cm_plotstyle,
CaluMath.PM.DefaultEntriesObject.cm_color("Select Graph Color"),
//CaluMath.PM.DefaultEntriesObject.cm_alternatecolor,
["cm_arrows", "input", 25, "", "Segment Arrows"],
CaluMath.PM.DefaultEntriesObject.cm_equation("no", "Display line segment coordinates"),
CaluMath.PM.DefaultEntriesObject.cm_equationreplacement(25),
CaluMath.PM.DefaultEntriesObject.cm_option("yes"),
["position", "menu", [["counterclockwise-interior", "i"],["counterclockwise-exterior", "e"]], "counterclockwise-interior", "Label Placement"],
["fontsize", "menu", [["6","6"],["8","8"],["10","10"],["12","12"],["14","14"],["16","16"],["18","18"],["20","20"],["22","22"],["24","24"],["26","26"],["28","28"],["32","32"], ["36","36"],["40","40"],["44","44"],["48","48"], ["52","52"]],  "16", "Font Size"],
["cm_fontfamily", "menu", ["New Times Roman", "Helvetica", "Corrier New", "Bermuda Solid","Creepy"], "Helvetica", "Font Family"], 
["margin", "menu", [[" ","n/a"], ["0","0"], ["2","2"],["4","4"],["6","6"],["8","8"],["10","10"],["12","12"],["14","14"],["16","16"],["18","18"],["20","20"],["22","22"],["24","24"],["26","26"],["28","28"],["32","32"], ["36","36"],["40","40"],["44","44"],["48","48"], ["52","52"]], 10, "Text Margin"],
CaluMath.PM.DefaultEntriesObject.cm_color("Text Color", "textcolor"),
["cm_pointsasarraytype", "menu", [["List Of Points","list"],["Single Array","singlearray"],["Array of Points","doublearray"]], "List Of Points", "Format Of Points"],
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};


CaluMath.PM.PageMakerlinearplotDefault.textstring= '1. In List Of Points, enter the points you want the line segments to go through. If you want a line segment that goes through (-7,-15), (7,5), (-4,18), and (-7,0), there are three ways of doing this: <br><br> 1. Select Format of Points=List Of Points, and enter (-7,-15)(7,5)(-4,18)(-7,0) in the List of Points field. <br>2. Select Format of Points=Single Array, and enter [-7,-15,7,5,-4,18,-7,0] in the List of Points field. <br>3. Select Format of Points=Array Of Points, and enter [[-7,-15],[7,5],[-4,18],[-7,0]] in the List of Points field. <br><br> Note that these four points create three line segments. If we want to label each segment, you enter the labels you want (separated by commas) in the Segment Label field. For example, to label the segments A,B,and C, enter A,B,C in the Segment Label field. <br><br> In Line Segment Name, enter the name for the line segments or keep the name that is automatically generated by CaluMath. <br><br> Choose the axes you want to draw the segments on in the field Axes.  <br><br> We now discuss the options.  <br><br> Display Equation=yes means some information about the line segments will be placed in a box to the right of the axes. To ensure this happens, when you constructed the axes, you should have selected Display Equation=yes for the axes (so that the box next to the axes that contains the equations is constructed). For the example above, if the name of the line is Line1 then the information Line1: [ [ -7,-15,7,5,-4,18,-7,0 ] ] would be displayed.  <br> If you do not like the way the information is written, you can enter whatever you want displayed by using Alternate Displayed Equation. Whatever you type in this box will be displayed to the right of the axes in place of the line segment information. There are several shortcuts you can use.  In the entry, cm_rhs is replace by the right hand side of the equals sign of the normally displayed information and cm_lhs is replaced by the left hand side of the normally displayed information. For the above example,if you enter The blue graph is  the line segments going through cm_rhs in Alternate Displayed Equation,  then <mi>The blue graph is  the line segments going through [ [ -7,-15,7,5,-4,18,-7,0 ] ]</mi> is what appears to the right of the axes. <br><br>  Note that, for the above example, the four points entered in the List Of Points create three line segments, the first connecting (-7,-15) and (7,5), the second connecting (7,5) and (-4,18), and the third connecting (-4,18) and (-7,0). We have the option of drawing an arrow at each end of each each line segment; for this example this means there are six different possible arrows that can be drawn. In Segment Arrows, you enter an e if you want an angle pointing to the exterior of that individual segment to be drawn, you enter an i if the arrow should point to the inside of that segment, and you enter an n if you want no arrow to be drawn. For example, if we enter en en ei in Segment Arrows, then an exterior arrow is drawn at the beginning of the segment connecting (-7,-15) and (7,5) and no arrow is drawn at the end of that segment. Similarly an exterior arrow is drawn at the beginning of the segment connecting (7,5) and (-4,18) and no arrow is drawn at the end of that segment.  Similarly an exterior arrow is drawn at the beginning of the segment connecting (-4,18) and (-7,0) and an interior angle is drawn at the end of that segment. <br><br> If you make the final point in List of Points the same as the initial point, then you get a closed loop. If you trace through this loop, it will either be in the counterclockwise direction or the clockwise direction. If the figure is traced out in the counterclockwise direction, you can select whether you want the labels placed on the inside or outside of the line segments by selecting counterclockwise-interior or  counterclockwise-exterior in the Label Placement field. If the figure traces a clockwise path, then the placement of the labels is the opposite. Therefore a clockwise orientation and selection of  counterclockwise-interior  actually places the labels outside the figure. If the figure is not closed (so the last point is not the same as the first), then you can determine the orientation by imagining that the first point is appended to the List Of Points entry so the figure becomes closed. <br><br> Font size refers to the size of the labels in pixels. Text color and Font Family refer to the color and font of the labels. <br><br> Text margin controls the amount of space between the labels and the line segments. A Text Margin of 0 will put the label almost touching a side of the segment. ';


CaluMath.PM.PageMakeraddlinearplotsegmentDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerlinearplotDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.newplot(""),
["graph", "menu", "linearplotlist", "newplotlist", "Line Segment Graph"],
["pointslist", "input", 50,"", "List of Points",CaluMath.PM.IsNonEmptyString],
["labels", "input", 25, "", "Segment Labels"]
];
};

CaluMath.PM.PageMakeraddlinearplotsegmentDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerlinearplotDefault.optionsarray=[
["cm_arrows", "input", 25, "", "Segment Arrows"],
["cm_continuefrompreviouspoint", "menu", [["yes", "yes"],["no", "no"]], "yes", "Join to Last Vertex?"],
["position", "menu", [["counterclockwise-interior", "i"],["counterclockwise-exterior", "e"]], "counterclockwise-interior", "Label Placement"],
["fontsize", "menu", [["6","6"],["8","8"],["10","10"],["12","12"],["14","14"],["16","16"],["18","18"],["20","20"],["22","22"],["24","24"],["26","26"],["28","28"],["32","32"], ["36","36"],["40","40"],["44","44"],["48","48"], ["52","52"]],  "16", "Font Size"],
["cm_fontfamily", "menu", ["New Times Roman", "Helvetica", "Corrier New", "Bermuda Solid","Creepy"], "Helvetica", "Font Family"], 
CaluMath.PM.DefaultEntriesObject.cm_color("Text Color", "textcolor"),
["cm_pointsasarraytype", "menu", [["List Of Points","list"],["Single Array","singlearray"],["Array of Points","doublearray"]], "List Of Points", "Format Of Points"],
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};

CaluMath.PM.PageMakeraddlinearplotsegmentDefault.textstring= '1. In List Of Points, enter the points you want the line segments to go through. If you want a line segment that goes through (-7,-15), (7,5), (-4,18), and (-7,0), there are three ways of doing this: <br><br> 1. Select Format of Points=List Of Points, and enter (-7,-15)(7,5)(-4,18)(-7,0) in the List of Points field. <br>2. Select Format of Points=Single Array, and enter [-7,-15,7,5,-4,18,-7,0] in the List of Points field. <br>3. Select Format of Points=Array Of Points, and enter [[-7,-15],[7,5],[-4,18],[-7,0]] in the List of Points field. <br><br> Note that these four points create three line segments. If we want to label each segment, you enter the labels you want (separated by commas) in the Segment Label field. For example, to label the segments A,B,and C, enter A,B,C in the Segment Label field. <br><br> In Line Segment Name, enter the name for the line segments or keep the name that is automatically generated by CaluMath. <br><br> Choose the axes you want to draw the segments on in the field Axes.  <br><br> We now discuss the options.  <br><br> Display Equation=yes means some information about the line segments will be placed in a box to the right of the axes. To ensure this happens, when you constructed the axes, you should have selected Display Equation=yes for the axes (so that the box next to the axes that contains the equations is constructed). For the example above, if the name of the line is Line1 then the information Line1: [ [ -7,-15,7,5,-4,18,-7,0 ] ] would be displayed.  <br> If you do not like the way the information is written, you can enter whatever you want displayed by using Alternate Displayed Equation. Whatever you type in this box will be displayed to the right of the axes in place of the line segment information. There are several shortcuts you can use.  In the entry, cm_rhs is replace by the right hand side of the equals sign of the normally displayed information and cm_lhs is replaced by the left hand side of the normally displayed information. For the above example,if you enter The blue graph is  the line segments going through cm_rhs in Alternate Displayed Equation,  then <mi>The blue graph is  the line segments going through [ [ -7,-15,7,5,-4,18,-7,0 ] ]</mi> is what appears to the right of the axes. <br><br>  Note that, for the above example, the four points entered in the List Of Points create three line segments, the first connecting (-7,-15) and (7,5), the second connecting (7,5) and (-4,18), and the third connecting (-4,18) and (-7,0). We have the option of drawing an arrow at each end of each each line segment; for this example this means there are six different possible arrows that can be drawn. In Segment Arrows, you enter an e if you want an angle pointing to the exterior of that individual segment to be drawn, you enter an i if the arrow should point to the inside of that segment, and you enter an n if you want no arrow to be drawn. For example, if we enter en en ei in Segment Arrows, then an exterior arrow is drawn at the beginning of the segment connecting (-7,-15) and (7,5) and no arrow is drawn at the end of that segment. Similarly an exterior arrow is drawn at the beginning of the segment connecting (7,5) and (-4,18) and no arrow is drawn at the end of that segment.  Similarly an exterior arrow is drawn at the beginning of the segment connecting (-4,18) and (-7,0) and an interior angle is drawn at the end of that segment. <br><br> If you make the final point in List of Points the same as the initial point, then you get a closed loop. If you trace through this loop, it will either be in the counterclockwise direction or the clockwise direction. If the figure is traced out in the counterclockwise direction, you can select whether you want the labels placed on the inside or outside of the line segments by selecting counterclockwise-interior or  counterclockwise-exterior in the Label Placement field. If the figure traces a clockwise path, then the placement of the labels is the opposite. Therefore a clockwise orientation and selection of  counterclockwise-interior  actually places the labels outside the figure. If the figure is not closed (so the last point is not the same as the first), then you can determine the orientation by imagining that the first point is appended to the List Of Points entry so the figure becomes closed. <br><br> Font size refers to the size of the labels in pixels. Text color and Font Family refer to the color and font of the labels. <br><br> Text margin controls the amount of space between the labels and the line segments. A Text Margin of 0 will put the label almost touching a side of the segment. ';


CaluMath.PM.StandardButtonslist = [["Tangent Button","tangentclickbutton"], ["Highlight Button","highlightclickbutton"], ["Plot Point Button","pointclickbutton"], ["Remove Plot Button","removeclickbutton"], ["End Remove Plot Button","endremoveclickbutton"], ["Calculator  Button","calculatorbutton"], ["JavaScript Button","javascriptbutton"], ["Evaluation Button","enterbutton"] , ["Input Box","input"], ["Output Box","output"], ["Graph Menu","select"], ["Text Box", "inputtext"], ["Text Area", "inputarea"], ["Boxes","boxes"] ];

CaluMath.PM.Comparisonlist = [["=","=="], ["<","<"],[">",">"],["<=","<="],[">=",">="],["<>","<>"],["equals","e"],["not equals","ne"],["in","in"], ["not in","notin"]]; 

CaluMath.PM.Comparisonlist2 = [[" ","n/a"], ["=","=="], ["<","<"],[">",">"],["<=","<="],[">=",">="],["<>","<>"]]; 
CaluMath.PM.Comparisonlist3 = [[" ","n/a"], ["=","=="], ["<",">"],[">","<"],["<=",">="],[">=","<="],["<>","<>"]]; 

CaluMath.PM.PageMakercomparisonDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakercomparisonDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.requiredname("Optional Comparison", "no"),
["first1", "input", 30,"", "First Term", CaluMath.PM.IsNonEmptyStringReplaceAll],
["comparison1", "menu", CaluMath.PM.Comparisonlist, CaluMath.PM.Comparisonlist[0], "Comparison"],
["second1", "input", 30,"", "Second Term", CaluMath.PM.IsNonEmptyStringReplaceAll],
["precision1", "input", 10, "", "Precision", CaluMath.PM.IsBlankOrNumber],
["andor1", "menu", [["n/a","n/a"],["and","and"],["or","or"]], "n/a", "And/Or"],
["first2", "input", 30,"", "First Term", CaluMath.PM.IsBlankOrNonEmptyStringReplaceAll],
["comparison2", "menu", CaluMath.PM.Comparisonlist, CaluMath.PM.Comparisonlist[0], "Comparison"],
["second2", "input", 30,"", "Second Term", CaluMath.PM.IsBlankOrNonEmptyStringReplaceAll],
["precision2", "input", 10, "", "Precision", CaluMath.PM.IsBlankOrNumber],
["andor2", "menu", [["n/a","n/a"],["and","and"],["or","or"]], "n/a", "And/Or"],
["first3", "input", 30,"", "First Term", CaluMath.PM.IsBlankOrNonEmptyStringReplaceAll],
["comparison3", "menu", CaluMath.PM.Comparisonlist, CaluMath.PM.Comparisonlist[0], "Comparison"],
["second3", "input", 30,"", "Second Term", CaluMath.PM.IsBlankOrNonEmptyStringReplaceAll],
["precision3", "input", 10, "", "Precision", CaluMath.PM.IsBlankOrNumber],
["andor3", "menu", [["n/a","n/a"],["and","and"],["or","or"]], "n/a", "And/Or"],
["first4", "input", 30,"", "First Term", CaluMath.PM.IsBlankOrNonEmptyStringReplaceAll],
["comparison4", "menu", CaluMath.PM.Comparisonlist, CaluMath.PM.Comparisonlist[0], "Comparison"],
["second4", "input", 30,"", "Second Term", CaluMath.PM.IsBlankOrNonEmptyStringReplaceAll],
["precision4", "input", 10, "", "Precision", CaluMath.PM.IsBlankOrNumber],
["parentheses", "menu", [["((AB)C)D","((AB)C)D"],["(AB)(CD)","(AB)(CD)"]], "(AB)(CD)", "Parentheses (Only For Four Statements)"]
];
};

CaluMath.PM.PageMakercomparisonDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakercomparisonDefault.optionsarray=[
];
};

CaluMath.PM.PageMakercomparisonDefault.textstring=['When doing a comparison, you should ask yourself if the things you are comparing are numbers or not. <br><b> 1. Numbers:</b> If each of the two terms you are comparing is a number, a previously defined constant, or a mathematical expression that evaluates to a number, you should use one of the comparisons =,<,>,<=,>=, or <>. Note that <> means not equal. <br><br>',
   '<b>2. Strings, Arrays, and other Objects:</b> For any other type of equality, you should use the comparison <i>equals</i> or <i>not equals</i>. In this case the things you are comparing must either be objects such as Strings or Arrays, or already defined names for objects such as Strings or Arrays.<br><br>', 
   '<b>3. Is An Element Of:</b> The final type of equality is <i>in</i> and <i>not in</i>. You would use these if the Second Term is an Array and you want to check whether the First Term is either an entry or not an entry in the Array. We give examples below. <br><br>',
   '<b>Numbers:</b> If you do not specify precision, the numbers must match exactly. If you do this, you should make sure the numbers are rounded to the same precision. If you specify precision, it says that the two terms must differ by not more than the precision; note that the precision does not indicate the number of digits after the decimal place that they numbers must agree. <br><br>',
   'First Term: pi, Comparison: = , Second Term: 3, yields "no" (meaning false). However with Precision: .15, it yields "yes" (meaning true), since Unicode(pi)-3=.1426... which is not greater than .15. The same terms and precision with Comparison > yields "yes", since 3+.15 is  greater than Unicode(pi), while if used with Comparison: > and Precision: .12 yields "no" since 3+.12 is not greater than Unicode(pi).<br><br>',
   'Unfortunately JavaScript has bizzare round off errors, for example 2.2-2.1 yields 0.10000000000000009. If you compare two numbers without precision, then you will always obtain the correct result. If you compare two numbers with precision, you may obtain unexpected results due to the very tiny roundoff errors involved in JavaScript when numbers are added or subtracted. <br><br>',
   'The above example leads to First Term: 2.2, Comparison: =, Second Term: 2.1, Precision: .1, which yields "no", even though it should yield "yes", since 2.2-2.1 is not more than the precision .1.<br><br>',
   'The only safe way to see if your numbers agree to a certain precision, is to round them to the number of digits you desire and use Comparison: =, with Precision left blank. Recall that the command to round numbers is CaluMath.Html.Round. <br><br>',
   'First Term: CaluMath.Html.Round(2.9845222, 5), Comparison: =, Second Term: CaluMath.Html.Round(2.98452333,5), with Precision left blank yields "yes", since each number is rounded to 5 decimal places and the numbers after rounding are equal. <br><br>', 
   '<b>Strings:</b> Recall that a String is a sequence of characters encased in either single quotes or double quotes. This is usually used for text. For example "Hello There" is a string. Note that the double quotes are not part of the String, they merely indicate that the thing between them is a String. If (using Named Object in the Functions and Constants Menu) you defined A="Hello World", then First Term: A, Comparison: equals, and Second Term: "Hello World" yields "yes" (meaning true). Note that, in this case, precision is ignored. Observe that Hello World must be put in quotes, since it is a String; however A, since it is already defined and has a meaning in CaluMath, should not be put in quotes. CaluMath is case-sensitive, so "Hello" is not equal to "hello".<br><br>',  
   '<b>Arrays:</b> Recall that an Array is a list, and is indicated by putting the entries (separated by commas) between square brackets. First Term: [1,2,3,\'hello\'], Comparison: =, Second Term: [1,2,3, "hello"], yields "yes" since corresponding entries are equal (note that the last element of each Array is the string hello). First Term: [1,2.02,3, "hello"], Comparison: =, Second Term: [1,2,3, "hello"], Precision=.05, yields "yes" since corresponding entries of the Arrays are either the same, or differ by less than .05.  <br><br>',
   '<b>Is An Element Of:</b>First Term: 3, Comparison: in, Second Term [1,2,3,5,"hello"], yields "yes", since 3 is an element of the Array. <br><br>',
   'First Term: 3.123, Comparison: in, Second Term [1,2,3,5,"hello"], Precision:.13 yields "yes", since 3.123 differs from 3 by less than .13. <br><br>',
   'First Term: "hello", Comparison: in, Second Term [1,2,3,5,"hello"], Precision:.13 yields "yes", since "hello" is an element of the Array.  <br><br>',
   'First Term: "[1,3]", Comparison: in, Second Term [1,2,[1,3],5,"hello"], Precision:.13 yields "yes", since [1,3] is an element of the Array.  <br><br>',
   'You can put join several comparisons by selecting <i>and</i> or <i>or</i> from the And/Or menus. If you have four sets of comparisons, you have a choice of how you want to group them. For example A or B and C or D could be grouped either as (((A or B) and C) or D) or as (A or B) and (C or D).',   
   
].join("");

//////////////////////////////MULTIPLE BUTTONS AND INPUTS////////////////////////////////////////////
//////////////////////////////MULTIPLE BUTTONS AND INPUTS////////////////////////////////////////////
//////////////////////////////MULTIPLE BUTTONS AND INPUTS////////////////////////////////////////////
//////////////////////////////MULTIPLE BUTTONS AND INPUTS////////////////////////////////////////////


CaluMath.PM.PageMakertangentclickbuttonDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakertangentclickbuttonDefault.requiredarray=[
["buttontype",  "menu", [["Tangent Button", "tangentclickbutton"]] , "Tangent Button", "Button Type"],
CaluMath.PM.DefaultEntriesObject.newplot(""),
//["graph", "menu", '[["none", "none"]],concat,canaddtangentslist', "newplotlist", "none", [["Graph", "help/individual_help.html#requiredgraph"], "Draw Tangents On A Particular Graph", "same"]],
CaluMath.PM.DefaultEntriesObject.graphrequired("canaddtangentslist", "Draw Tangents On A Particular Graph"),
["cm_numberofclicks", "input", 10, "Infinity", "Number of Clicks", CaluMath.PM.IsNumber]
];
};

CaluMath.PM.PageMakertangentclickbuttonDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakertangentclickbuttonDefault.optionsarray=[
CaluMath.PM.DefaultEntriesObject.value(20),
["style=fontSize", "menu", [["10","10px"],["12","12px"],["14","14px"],["16","16px"],["18","18px"],["20","20px"],["22","22px"],["24","24px"],["26","26px"],["28","28px"],["32","32px"], ["36","36px"],["40","40px"],["44","44px"],["48","48px"], ["52","52px"]], 16, "Button Font Size"],
CaluMath.PM.DefaultEntriesObject.cm_option("no"),
CaluMath.PM.DefaultEntriesObject.cm_equation("no", "Display tangent equations"),
["cm_displaycoordinates", "menu", ["yes","no"], "no", "Display Coordinates In Axes Information Box"],
CaluMath.PM.DefaultEntriesObject.cm_equationreplacement(25),
["cm_prompt", "menu", ["yes","no"], "yes", "Prompt User For Correct Point?"],
["cm_variable", "input", 15, "x", "Variable in Prompt Window"],
["cm_clickxprecision","menu",[0, 1,2,3,4,5,6,7,8,9,10,11,12,.5,.25],3, "X Coordinate Precision"],
["cm_clickyprecision","menu",[0, 1,2,3,4,5,6,7,8,9,10,11,12,.5,.25],3, "Y Coordinate Precision"],
["cm_instructionmessage", "menu", ["yes","no"], "yes", "Pop-up Instruction Window?"],
//["color", "menu", CaluMath.PM.ColorArray, "auto", "Tangent Color"],
CaluMath.PM.DefaultEntriesObject.cm_color("Tangent Color"),
["cm_displayhighlight", "menu", ["yes", "no"], "no", "Highlight Point Also?"],
["cm_highlightequation", "menu", ["yes", "no"], "no", "Highlight Equation?"],
["cm_removeprevious", "menu", ["yes", "no"], "yes", "Remove Previous Tangent?"],
CaluMath.PM.DefaultEntriesObject.cm_caswindow(),
CaluMath.PM.DefaultEntriesObject.cm_insertoption(),
["cm_inserttarget", "menu", "namedobjectlist", "newwindowlist", "Insert Target"],
CaluMath.PM.DefaultEntriesObject.visibilitywithstyle(),
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};


CaluMath.PM.PageMakertangentclickbuttonDefault.textstring=['<b>When the user clicks on a Tangent Button, it prepares a set of axes to receive mouse clicks from the user. When the user clicks on a graph, a tangent line is drawn at the place the user clicked.</b><br><br>',
   '<b>Tangent Buttons can be associated to a set of axes or a particular graph. In the former case, you MUST constuct a Graph Menu (using the Preprogrammed Buttons And Boxes Menu). A graph Menu is a drop down menu containing a list of all the graphs constructed in a set of axes. From this menu, the user selects the graph they want to draw a tangent on.</b><br><br>',
   '<b>If you associate the Tangent Button to a particular graph, you do not need to construct a Graph Menu.</b><br><br>',
   '<b>Axes:</b> Select the Axes that contain the graphs on which you want to draw tangent lines.<br><br>',
   '<b>Graph:</b> Select the particular graph on which you want to draw tangent lines, or select none to be able to draw tangent lines on any graph in the set of axes. <b>If you select none, you MUST constuct a Graph Menu (using the Preprogrammed Buttons And Boxes Menu). The Graph Menu allows the users to select the graph on which they want to draw tangent lines.</b><br><br>',
   '<b>Number Of Clicks</b> Enter the number of times the user is permitted to click on the axes to draw tangents. Enter Infinity to allow them to click an unlimited number of times.<br><br>',
   '<b>Button Label:</b> This is the text that will appear on the Tangent Button. Leave the entry as the word default to have "Tangent" appear, otherwise, enter the text you would like to appear.<br><br>',
   '<b>Button Font Size:</b> This gives the size, in pixels, of the text on the button.<br><br>',
   '<b>Add To Graph Menu:</b> Select yes to add each tangent created to the Graph Menu. If a Graph Menu has not been constructed for the set of axes, this selection has no effect.<br><br>',
   '<b>Display Equation: </b> Selecting yes  means the equation of the tangent line will be placed in a box to the right of the axes. If a tangent line is drawn on the graph of a function f, the first tangent will have the name f_Tangent0(x), the next f_Tangent1(x), etc. To ensure that the equations are displayed, when you construct the axes, you should select <i>Display Equation: yes</i> for the axes (so that the box next to the axes that contains the equations is constructed). If you do not like the way the equation is written, you can enter what you want displayed by using Alternate Displayed Equation.<br><br>', 
   '<b>Alternate Displayed Equation:</b> If you do not like the way the equation is written, you can enter what you want displayed by using Alternate Displayed Equation. Whatever you type in this box will be displayed to the right of the axes in place of the function definition. There are several shortcuts you can use.  In the entry, cm_rhs is replace by the right hand side of the function definition and cm_lhs is replaced by the left hand side of the function. For example, suppose f_Tangent0(x) = 4+(-2)(x-2) is displayed to the right of the graph. However if you enter <i>Alternate Displayed Equation: The Tangent line is y=cm_rhs</i>,  then <mi>The Tangent line is y=4+(-2)(x-2)</mi> is what appears to the right of the axes. <br><br>',  
   '<b>Prompt User For Correct Point?:</b> When the user clicks on the graph of a function, it may be possible that they did not click at exactly the point they wanted, for example, they may have clicked at x=1.01 when they meant to click at x=1. Select <i>Prompt User For Correct Point?: yes</i> to have a pop-up window appear. The window asks the user if they are satisfied with the point they clicked, and, if not, it allows them to enter the x coordinate of the point they want.<br><br>',
   '<b>Variable in Prompt Window:</b> The Prompt User For Correct Point window will say somehing such as "You clicked a point with x=2.537." Enter the name of the variable you want to appear in the Prompt window in expressions such as this. For example, if you enter <i>Variable in Prompt Window: distance</i> the previous expression will appear as "You clicked a point with distance=2.537."<br><br>',
   '<b>X Coordinate Precision:</b> This rounds off the x coordinate of the point of tangency to this many digits after the decimal place. Selecting <i>X Coordinate Precision: .5</i> rounds the x coordinate off to the nearest 1/2, selecting .25 rounds the x coordinate off to the nearest fourth. <br><br>',
   '<b>Y Coordinate Precision:</b> This rounds off the y coordinate of the point of tangency to this many digits after the decimal place. Selecting <i>Y Coordinate Precision: .5</i> rounds the y coordinate off to the nearest 1/2, selecting .25 rounds the x coordinate off to the nearest fourth. <b>Excessive rounding of the y coordinate may cause the tangent line to not actually touch the graph.</b> <br><br>',
   '<b>Pop-up Instruction Window:</b> Selecting <i>yes</i> means that when the user clicks on the Tangent Button, a pop-up window appears with instructions informing the user that they should click on the axes and a tangent line will appear at the point on which they click.<br><br>',      
   '<b>Tangent Color:</b> Enter a color, such as <i>red</i>, or click the link and follow the instructions.<br><br>',
   '<b>Highlight Point Also:</b> Select <i>yes</i> to plot the point of tangency in addition to plotting the tangent line.<br><br>',
   '<b>Remove Previous Tangent:</b> Select <i>yes</i> to remove the previous tangent when the next tangent is drawn. Select <i>no</i> to keep all of the tangents on the axes as they are drawn.<br><br>',
   '<b>Window: </b> The main web page constructed with the CaluMath Page Maker is called the CM_MainWindow. If you construct your page so it opens new windows, the names for those windows appear in the Window list. Select the Window where you want your Tangent Button to appear. <br><br>',
   '<b>Insert Options and Insert Target:</b> If you want the Tangent Button inserted at the current point in the creation of the web page, select <i>Insert Options: current point</i>. If you want it inserted before, after, or inside another object, select this option and choose the object you want it inserted before, after or inside from the Insert Target menu. <br><br>',
   '<b>Visibility:</b> Choose whether you want the Tangent Button to be visible or invisible. If you select <i>Visibility: invisible</i> you can have it become visible (usually as a result of user interaction with the page) by using the Visibility entry from the Main Menu, and the Hide And Unhide Sub-Menu.<br><br>',
   '<b>Only Use For Lists (Advanced):</b> Beginners should leave Only Use For Lists at its default value of no. Only Use For Lists should only be used when you want to do something with an Tangent Button, but the Tangent Button does not appear in a menu in the CaluMath Page Maker. This situation can occur when using For Loops, or in connection with allowing users to define functions in Text Boxes. You can select <i>Only Use For Lists: yes</i> to create a "phantom" object. It\'s name will appear in menus, however it will not appear anywhere in the web page.<br><br>',
].join("");


CaluMath.PM.PageMakerhighlightclickbuttonDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerhighlightclickbuttonDefault.requiredarray=[
["buttontype",  "menu", [["Highlight Button", "highlightclickbutton"]] , "Highlight Button", "Button Type"],
CaluMath.PM.DefaultEntriesObject.newplot(""),
//["graph", "menu", '[["none", "none"]],concat,canaddhighlightslist',"newplotlist", "none", [["Graph", "help/individual_help.html#requiredgraph"], "Highlight Points On A Particular Graph", "same"]],
CaluMath.PM.DefaultEntriesObject.graphrequired("canaddhighlightslist", "Highlight Points On A Particular Graph"),
["cm_numberofclicks", "input", 10, "Infinity", "Number of Clicks", CaluMath.PM.IsNumber]
];
};

CaluMath.PM.PageMakerhighlightclickbuttonDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerhighlightclickbuttonDefault.optionsarray=[
CaluMath.PM.DefaultEntriesObject.value(20),
["style=fontSize", "menu", [["10","10px"],["12","12px"],["14","14px"],["16","16px"],["18","18px"],["20","20px"],["22","22px"],["24","24px"],["26","26px"],["28","28px"],["32","32px"], ["36","36px"],["40","40px"],["44","44px"],["48","48px"], ["52","52px"]], 16, "Button Font Size"],
CaluMath.PM.DefaultEntriesObject.cm_option("no"),
CaluMath.PM.DefaultEntriesObject.cm_equation("no", "Display point coordinates"),
["cm_displaycoordinates", "menu", ["yes","no"], "no", "Display Coordinates In Axes Information Box"],
CaluMath.PM.DefaultEntriesObject.cm_equationreplacement(25),
["cm_prompt", "menu", ["yes","no"], "yes", "Prompt User For Correct Point?"],
["cm_variable", "input", 15, "x", "Variable in Prompt Window"],
["cm_clickxprecision","menu",[0, 1,2,3,4,5,6,7,8,9,10,11,12,.5,.25],3, "X Coordinate Precision"],
["cm_clickyprecision","menu",[0, 1,2,3,4,5,6,7,8,9,10,11,12,.5,.25],3, "Y Coordinate Precision"],
["cm_instructionmessage", "menu", ["yes","no"], "yes", "Pop-up Instruction Window?"],
["cm_highlightwidth", "input", 10,"8", "Point Width",CaluMath.PM.IsNumber],
["cm_highlightheight", "input", 10,"8", "Point Height",CaluMath.PM.IsNumber],
["cm_pointstyle", "menu", ["closed", "open"], "closed", "Open or Closed Point"],
//["color", "menu", CaluMath.PM.ColorArray, "auto", "Point Color"],
CaluMath.PM.DefaultEntriesObject.cm_color("Point Color"),
["cm_removeprevious", "menu", ["yes", "no"], "yes", "Remove Previous Highlight?"],
CaluMath.PM.DefaultEntriesObject.cm_caswindow(),
CaluMath.PM.DefaultEntriesObject.cm_insertoption(),
["cm_inserttarget", "menu", '[["n/a", "n/a"]],concat,namedobjectlist', "newwindowlist", "n/a", "Insert Target"],
CaluMath.PM.DefaultEntriesObject.visibilitywithstyle(),
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};


CaluMath.PM.PageMakerhighlightclickbuttonDefault.textstring=['<b>When the user clicks on a Highlight Button, it prepares a set of axes to receive mouse clicks from the user. When the user clicks on a graph, a point is plotted at the place the user clicked. If the user clicks on a point that is not on the graph, nothing happens.</b><br><br>',
   '<b>Highlight Buttons can be associated to a set of axes or a particular graph. In the former case, you MUST constuct a Graph Menu (using the Preprogrammed Buttons And Boxes Menu). A graph Menu is a drop down menu containing a list of all the graphs constructed in a set of axes. From this menu, the user selects the graph on which they want to highlight points.</b><br><br>',
   '<b>If you associate the Highlight Button to a particular graph, you do not need to construct a Graph Menu.</b><br><br>',
   '<b>Highlight Buttons are for ploting points on graphs. If you want to plot points anywhere on a set of axes, construct a Point Button.</b><br><br>',
   '<b>Axes:</b> Select the Axes which contain the graphs you want to highlight points on.<br><br>',
   '<b>Graph:</b> Select the particular graph you want to highlight points on, or select none to be able to highlight points on any graph in the set of axes. <b>If you select none, you MUST constuct a Graph Menu (using the Preprogrammed Buttons And Boxes Menu). The Graph Menu allows the users to select the graph on which they want to highlight points.</b><br><br>',
   '<b>Number Of Clicks</b> Enter the number of times the user is permitted to click on the axes to highlight points. Enter Infinity to allow them to click an unlimited number of times.<br><br>',
   '<b>Button Label:</b> This is the text that will appear on the Highlight Button. Leave the entry as the word default to have "Highlight" appear, otherwise, enter the text you would like to appear.<br><br>',
   '<b>Button Font Size:</b> This gives the size, in pixels, of the text on the button.<br><br>',
   '<b>Add To Graph Menu:</b> Select yes to add each point created to the Graph Menu. If a Graph Menu has not been constructed for the set of axes, this selection has no effect. Usually you should leave this at the default value of <i>no</i>, otherwise the Graph Menu will get cluttered with lots of points.<br><br>',
   '<b>Display Equation: </b> Selecting yes  means the equation of the point will be placed in a box to the right of the axes. Typically expressions such as CM_Point1: (2,4) will be displayed. To ensure that the equations are displayed, when you construct the axes, you should select <i>Display Equation: yes</i> for the axes (so that the box next to the axes that contains the equations is constructed). If you do not like the way the equation is written, you can enter what you want displayed by using Alternate Displayed Equation.<br><br>', 
   '<b>Alternate Displayed Equation:</b> If you do not like the way the equation is written, you can enter what you want displayed by using Alternate Displayed Equation. Whatever you type in this box will be displayed to the right of the axes in place of the original point definition. There are several shortcuts you can use.  In the entry, cm_rhs is replace by the right hand side of the point definition and cm_lhs is replaced by the left hand side of the point definition. For example, suppose CM_Point1: (2,4) is displayed to the right of the graph. However if you enter <i>Alternate Displayed Equation: The Clicked Point is cm_rhs</i>,  then <mi>The Clicked Point is (2,4)</mi> is what appears to the right of the axes. <br><br>',  
   '<b>Prompt User For Correct Point?:</b> When the user clicks on the graph of a function, it may be possible that they did not click at exactly the point they wanted, for example, they may have clicked at x=1.01 when they meant to click at x=1. Select <i>Prompt User For Correct Point?: yes</i> to have a pop-up window appear. The window asks the user if they are satisfied with the point they clicked, and, if not, it allows them to enter the x coordinate of the point they want.<br><br>',
   '<b>Prompt User For Correct Point? Warning! When the user clicks on a Line Segment Graph, it is assumed they will click near the point they want. The Prompt Window will allow them to enter an x coordinate and a point on the same segment with that x coordinate will be plotted. In this case, it is assumed that the Line Segment graph is composed of several distinct segments that are large enough to be individually seen. If the Line Segment Graph is composed of very tiny segments, for example, if the Line Segment Graph is used to approximate the graph of a function, the Prompt Window will not work correctly. In this case, you should select </b><i>Prompt User For Correct Point?: no</i>.<br><br>',
   '<b>Variable in Prompt Window:</b> The Prompt User For Correct Point window will say somehing such as "You clicked a point with x=2.537." Enter the name of the variable you want to appear in the Prompt window in expressions such as this. For example, if you enter <i>Variable in Prompt Window: distance</i> the previous expression will appear as "You clicked a point with distance=2.537."<br><br>',
   '<b>X Coordinate Precision:</b> This rounds off the x coordinate of the highlighted point to this many digits after the decimal place. Selecting <i>X Coordinate Precision: .5</i> rounds the x coordinate off to the nearest 1/2, selecting .25 rounds the x coordinate off to the nearest fourth. <br><br>',
   '<b>Y Coordinate Precision:</b> This rounds off the y coordinate of the highlighted point to this many digits after the decimal place. Selecting <i>Y Coordinate Precision: .5</i> rounds the y coordinate off to the nearest 1/2, selecting .25 rounds the x coordinate off to the nearest fourth. <b>Excessive rounding of the y coordinate may cause the highlighted point to not actually touch the graph.</b> <br><br>',
   '<b>Pop-up Instruction Window:</b> Selecting <i>yes</i> means that when the user clicks on the Highlight Button, a pop-up window appears with instructions informing the user that they should click on a graph and the point on which they click will be highlighted.<br><br>',      
   '<b>Point Width:</b> Enter the width, in pixels, of the highlighted point. For best results, the width should be a multiple of 4.<br><br>',
   '<b>Point Height:</b> Enter the height, in pixels, of the highlighted point. For best results, the height should be a multiple of 4.<br><br>',
   '<b>Open Or Closed Point:</b> Select whether you want open points, or closed (meaning filled-in) points plotted.<br><br>',
   '<b>Point Color:</b> Enter a color, such as <i>red</i>, or click the link and follow the instructions.<br><br>',
   '<b>Remove Previous Highlight:</b> Select <i>yes</i> to remove the previously highlighted point when the next point is plotted. Select <i>no</i> to keep all of the points on the axes as they are plotted.<br><br>',
   '<b>Window: </b> The main web page constructed with the CaluMath Page Maker is called the CM_MainWindow. If you construct your page so it opens new windows, the names for those windows appear in the Window list. Select the Window where you want your Highlight Button to appear. <br><br>',
   '<b>Insert Options and Insert Target:</b> If you want the Highlight Button inserted at the current point in the creation of the web page, select <i>Insert Options: current point</i>. If you want it inserted before, after, or inside another object, select this option and choose the object you want it inserted before, after or inside from the Insert Target menu. <br><br>',
   '<b>Visibility:</b> Choose whether you want the Highlight Button to be visible or invisible. If you select <i>Visibility: invisible</i> you can have it become visible (usually as a result of user interaction with the page) by using the Visibility entry from the Main Menu, and the Hide And Unhide Sub-Menu.<br><br>',
   '<b>Only Use For Lists (Advanced):</b> Beginners should leave Only Use For Lists at its default value of no. Only Use For Lists should only be used when you want to do something with an Highlight Button, but the Highlight Button does not appear in a menu in the CaluMath Page Maker. This situation can occur when using For Loops, or in connection with allowing users to define functions in Text Boxes. You can select <i>Only Use For Lists: yes</i> to create a "phantom" object. It\'s name will appear in menus, however it will not appear anywhere in the web page.<br><br>',
].join("");



CaluMath.PM.PageMakerpointclickbuttonDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerpointclickbuttonDefault.requiredarray=[
["buttontype",  "menu", [["Point Button", "pointclickbutton"]] , "Point Button", "Button Type"],
CaluMath.PM.DefaultEntriesObject.newplot(""),
["cm_numberofclicks", "input", 10, "Infinity", "Number of Clicks", CaluMath.PM.IsNumber]
];
};

CaluMath.PM.PageMakerpointclickbuttonDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerpointclickbuttonDefault.optionsarray=[
CaluMath.PM.DefaultEntriesObject.value(20),
["style=fontSize", "menu", [["10","10px"],["12","12px"],["14","14px"],["16","16px"],["18","18px"],["20","20px"],["22","22px"],["24","24px"],["26","26px"],["28","28px"],["32","32px"], ["36","36px"],["40","40px"],["44","44px"],["48","48px"], ["52","52px"]], 16, "Font Size"],
CaluMath.PM.DefaultEntriesObject.cm_option("no"),
CaluMath.PM.DefaultEntriesObject.cm_equation("no", "Display point coordinates"),
["cm_displaycoordinates", "menu", ["yes","no"], "no", "Display Coordinates In Axes Information Box"],
CaluMath.PM.DefaultEntriesObject.cm_equationreplacement(25),
["cm_prompt", "menu", ["yes","no"], "yes", "Prompt User For Correct Point?"],
["cm_clickxprecision","menu",[0, 1,2,3,4,5,6,7,8,9,10,11,12,.5,.25],3, "X Coordinate Precision"],
["cm_clickyprecision","menu",[0, 1,2,3,4,5,6,7,8,9,10,11,12,.5,.25],3, "Y Coordinate Precision"],
["cm_instructionmessage", "menu", ["yes","no"], "yes", "Pop-up Instruction Window?"],
["cm_highlightwidth", "input", 10,"8", "Point Width",CaluMath.PM.IsNumber],
["cm_highlightheight", "input", 10,"8", "Point Height",CaluMath.PM.IsNumber],
["cm_pointstyle", "menu", ["closed", "open"], "closed", "Open or Closed Point"],
//["color", "menu", CaluMath.PM.ColorArray, "auto", "Point Color"],
CaluMath.PM.DefaultEntriesObject.cm_color("Point Color"),
["cm_removeprevious", "menu", ["yes", "no"], "yes", "Remove Previous Point?"],
CaluMath.PM.DefaultEntriesObject.cm_caswindow(),
CaluMath.PM.DefaultEntriesObject.cm_insertoption(),
["cm_inserttarget", "menu", '[["n/a", "n/a"]],concat,namedobjectlist', "newwindowlist", "n/a", "Insert Target"],
CaluMath.PM.DefaultEntriesObject.visibilitywithstyle(),
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};

CaluMath.PM.PageMakerpointclickbuttonDefault.textstring=['<b>When the user clicks on a Point Button, it prepares a set of axes to receive mouse clicks from the user. When the user clicks on the axes, a point is plotted at the place the user clicked.</b><br><br>',
   '<b>Point Buttons are for ploting points anywhere on a set of axes. If you want to plot points on a graph on a set of axes, construct a Highlight Button.</b><br><br>',
   '<b>Axes:</b> Select the Axes on which you want to plot points.<br><br>',
   '<b>Number Of Clicks</b> Enter the number of times the user is permitted to click on the axes to plot points. Enter Infinity to allow them to click an unlimited number of times.<br><br>',
   '<b>Button Label:</b> This is the text that will appear on the Point Button. Leave the entry as the word default to have "Point" appear, otherwise, enter the text you would like to appear.<br><br>',
   '<b>Button Font Size:</b> This gives the size, in pixels, of the text on the button.<br><br>',
   '<b>Add To Graph Menu:</b> Select yes to add each point created to the Graph Menu. If a Graph Menu has not been constructed for the set of axes, this selection has no effect. Usually you should leave this at the default value of <i>no</i>, otherwise the Graph Menu will get cluttered with lots of points.<br><br>',
   '<b>Display Equation: </b> Selecting yes  means the equation of the point will be placed in a box to the right of the axes. Typically expressions such as CM_Point1: (2,4) will be displayed. To ensure that the equations are displayed, when you construct the axes, you should select <i>Display Equation: yes</i> for the axes (so that the box next to the axes that contains the equations is constructed). If you do not like the way the equation is written, you can enter what you want displayed by using Alternate Displayed Equation.<br><br>', 
   '<b>Alternate Displayed Equation:</b> If you do not like the way the equation is written, you can enter what you want displayed by using Alternate Displayed Equation. Whatever you type in this box will be displayed to the right of the axes in place of the original point definition. There are several shortcuts you can use.  In the entry, cm_rhs is replace by the right hand side of the point definition and cm_lhs is replaced by the left hand side of the point definition. For example, suppose CM_Point1: (2,4) is displayed to the right of the graph. However if you enter <i>Alternate Displayed Equation: The Clicked Point is cm_rhs</i>,  then <mi>The Clicked Point is (2,4)</mi> is what appears to the right of the axes. <br><br>',  
   '<b>Prompt User For Correct Point?:</b> When the user clicks on a set of axes it may be possible that they did not click at exactly the point they wanted, for example, they may have clicked at (1.01, 1.99)  when they meant to click at (1,2). Select <i>Prompt User For Correct Point?: yes</i> to have a pop-up window appear. The window asks the user if they are satisfied with the point they clicked, and, if not, it allows them to enter the coordinates of the point they want.<br><br>',
   '<b>Variable in Prompt Window:</b> The Prompt User For Correct Point window will say somehing such as "You clicked a point with x=2.537." Enter the name of the variable you want to appear in the Prompt window in expressions such as this. For example, if you enter <i>Variable in Prompt Window: distance</i> the previous expression will appear as "You clicked a point with distance=2.537."<br><br>',
   '<b>X Coordinate Precision:</b> This rounds off the x coordinate of the plotted point to this many digits after the decimal place. Selecting <i>X Coordinate Precision: .5</i> rounds the x coordinate off to the nearest 1/2, selecting .25 rounds the x coordinate off to the nearest fourth. <br><br>',
   '<b>Y Coordinate Precision:</b> This rounds off the y coordinate of the plotted point to this many digits after the decimal place. Selecting <i>Y Coordinate Precision: .5</i> rounds the y coordinate off to the nearest 1/2, selecting .25 rounds the x coordinate off to the nearest fourth. <br><br>',
   '<b>Pop-up Instruction Window:</b> Selecting <i>yes</i> means that when the user clicks on the Point Button, a pop-up window appears with instructions informing the user that they should click on the axes and the point on which they click will be plotted.<br><br>',      
   '<b>Point Width:</b> Enter the width, in pixels, of the plotted point. For best results, the width should be a multiple of 4.<br><br>',
   '<b>Point Height:</b> Enter the height, in pixels, of the plotted point. For best results, the height should be a multiple of 4.<br><br>',
   '<b>Open Or Closed Point:</b> Select whether you want open points, or closed (meaning filled-in) points plotted.<br><br>',
   '<b>Point Color:</b> Enter a color, such as <i>red</i>, or click the link and follow the instructions.<br><br>',
   '<b>Remove Previous Point:</b> Select <i>yes</i> to remove the previously plotted point when the next point is plotted. Select <i>no</i> to keep all of the points on the axes as they are plotted.<br><br>',
   '<b>Window: </b> The main web page constructed with the CaluMath Page Maker is called the CM_MainWindow. If you construct your page so it opens new windows, the names for those windows appear in the Window list. Select the Window where you want your Point Button to appear. <br><br>',
   '<b>Insert Options and Insert Target:</b> If you want the Point Button inserted at the current point in the creation of the web page, select <i>Insert Options: current point</i>. If you want it inserted before, after, or inside another object, select this option and choose the object you want it inserted before, after or inside from the Insert Target menu. <br><br>',
   '<b>Visibility:</b> Choose whether you want the Point Button to be visible or invisible. If you select <i>Visibility: invisible</i> you can have it become visible (usually as a result of user interaction with the page) by using the Visibility entry from the Main Menu, and the Hide And Unhide Sub-Menu.<br><br>',
   '<b>Only Use For Lists (Advanced):</b> Beginners should leave Only Use For Lists at its default value of no. Only Use For Lists should only be used when you want to do something with an Point Button, but the Point Button does not appear in a menu in the CaluMath Page Maker. This situation can occur when using For Loops, or in connection with allowing users to define functions in Text Boxes. You can select <i>Only Use For Lists: yes</i> to create a "phantom" object. It\'s name will appear in menus, however it will not appear anywhere in the web page.<br><br>',
].join("");



CaluMath.PM.PageMakerremoveclickbuttonDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerremoveclickbuttonDefault.requiredarray=[
["buttontype",  "menu", [["Remove Graph Button", "removeclickbutton"]] , "Remove Graph Button", "Button Type"],
CaluMath.PM.DefaultEntriesObject.newplot(""),
["cm_numberofclicks", "input", 10, "Infinity", "Number of Clicks", CaluMath.PM.IsNumber]
];
};

CaluMath.PM.PageMakerremoveclickbuttonDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerremoveclickbuttonDefault.optionsarray=[
CaluMath.PM.DefaultEntriesObject.value(20),
["style=fontSize", "menu", [["10","10px"],["12","12px"],["14","14px"],["16","16px"],["18","18px"],["20","20px"],["22","22px"],["24","24px"],["26","26px"],["28","28px"],["32","32px"], ["36","36px"],["40","40px"],["44","44px"],["48","48px"], ["52","52px"]], 16, "Font Size"],
["cm_instructionmessage", "menu", ["yes","no"], "yes", "Pop-up Instruction Window?"],
CaluMath.PM.DefaultEntriesObject.cm_caswindow(),
CaluMath.PM.DefaultEntriesObject.cm_insertoption(),
["cm_inserttarget", "menu", '[["n/a", "n/a"]],concat,namedobjectlist', "newwindowlist", "n/a", "Insert Target"],
CaluMath.PM.DefaultEntriesObject.visibilitywithstyle(),
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};


CaluMath.PM.PageMakerremoveclickbuttonDefault.textstring=['<b>When the user clicks on a Remove Graph Button, it prepares a set of axes to receive mouse clicks from the user. When the user clicks on any graph or point in the axes, the graph or point is removed.</b><br><br>',
   '<b>When you construct a Remove Graph Button you should also construct an End Graph Removal Button. Clicking on this button, ends the user\'s ability to remove graphs by clicking on them. This allows the user to have other types of interactions with the axes, for example, allowing the user to click on a set of axes to plot points.</b><br><br>',
   '<b>Axes:</b> Select the Axes for which you want the user to be able to remove graphs.<br><br>',
   '<b>Number Of Clicks</b> Enter the number of times the user is permitted to click on the axes to remove graphs. Enter Infinity to allow the user to click an unlimited number of times.<br><br>',
   '<b>Button Label:</b> This is the text that will appear on the Remove Graph Button. Leave the entry as the word default to have "Remove Graphs" appear, otherwise, enter the text you would like to appear.<br><br>',
   '<b>Button Font Size:</b> This gives the size, in pixels, of the text on the button.<br><br>',
   '<b>Pop-up Instruction Window:</b> Selecting <i>yes</i> means that when the user clicks on the Remove Graph Button, a pop-up window appears with instructions informing the user that they should click on the axes to remove graphs.<br><br>',      
   '<b>Window: </b> The main web page constructed with the CaluMath Page Maker is called the CM_MainWindow. If you construct your page so it opens new windows, the names for those windows appear in the Window list. Select the Window where you want your Remove Graph Button to appear. <br><br>',
   '<b>Insert Options and Insert Target:</b> If you want the Remove Graph Button inserted at the current point in the creation of the web page, select <i>Insert Options: current point</i>. If you want it inserted before, after, or inside another object, select this option and choose the object you want it inserted before, after or inside from the Insert Target menu. <br><br>',
   '<b>Visibility:</b> Choose whether you want the Remove Graph Button to be visible or invisible. If you select <i>Visibility: invisible</i> you can have it become visible (usually as a result of user interaction with the page) by using the Visibility entry from the Main Menu, and the Hide And Unhide Sub-Menu.<br><br>',
   '<b>Only Use For Lists (Advanced):</b> Beginners should leave Only Use For Lists at its default value of no. Only Use For Lists should only be used when you want to do something with a Remove Graph Button, but the Remove Graph Button does not appear in a menu in the CaluMath Page Maker. This situation can occur when using For Loops, or in connection with allowing users to define functions in Text Boxes. You can select <i>Only Use For Lists: yes</i> to create a "phantom" object. It\'s name will appear in menus, however it will not appear anywhere in the web page.<br><br>',
].join("");


CaluMath.PM.PageMakerendremoveclickbuttonDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerendremoveclickbuttonDefault.requiredarray=[
["buttontype",  "menu", [["End Graph RemovalButton", "endremoveclickbutton"]] , "End Graph Removal Button", "Button Type"],
CaluMath.PM.DefaultEntriesObject.newplot("")
];
};

CaluMath.PM.PageMakerendremoveclickbuttonDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerendremoveclickbuttonDefault.optionsarray=[
CaluMath.PM.DefaultEntriesObject.value(20),
["style=fontSize", "menu", [["10","10px"],["12","12px"],["14","14px"],["16","16px"],["18","18px"],["20","20px"],["22","22px"],["24","24px"],["26","26px"],["28","28px"],["32","32px"], ["36","36px"],["40","40px"],["44","44px"],["48","48px"], ["52","52px"]], 16, "Font Size"],
["cm_instructionmessage", "menu", ["yes","no"], "yes", "Pop-up Instruction Window?"],
CaluMath.PM.DefaultEntriesObject.cm_caswindow(),
CaluMath.PM.DefaultEntriesObject.cm_insertoption(),
["cm_inserttarget", "menu", '[["n/a", "n/a"]],concat,namedobjectlist', "newwindowlist", "n/a", "Insert Target"],
CaluMath.PM.DefaultEntriesObject.visibilitywithstyle(),
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};


CaluMath.PM.PageMakerendremoveclickbuttonDefault.textstring=['<b>When the user clicks on a Remove Graph Button, it prepares a set of axes to receive mouse clicks from the user. When the user clicks on any graph or point in the axes, the graph or point is removed. When the user clicks on an End Graph Removal Button button, it stops the user\'s ability to remove graphs by clicking. </b><br><br>',
   '<b>Constructing an End Graph Removal Button only makes sense if you also construct a Remove Graph Button, since the End Graph Removal Button undoes the action of a Remove Graph Button. Clicking the End Graph Removal Button allows the user to have other types of interactions with the axes, for example, allowing the user to click on a set of axes to plot points.</b><br><br>',
   '<b>Axes:</b> Select the Axes for which you want to end the user\'s ability to remove graphs.<br><br>',
   '<b>Button Label:</b> This is the text that will appear on the End Graph Removal Button. Leave the entry as the word default to have "End Graph Removal" appear, otherwise, enter the text you would like to appear.<br><br>',
   '<b>Button Font Size:</b> This gives the size, in pixels, of the text on the button.<br><br>',
   '<b>Pop-up Instruction Window:</b> Selecting <i>yes</i> means that when the user clicks on the End Graph Removal Button, a pop-up window appears with instructions informing the user that clicking on the axes will no longer remove graphs.<br><br>',      
   '<b>Window: </b> The main web page constructed with the CaluMath Page Maker is called the CM_MainWindow. If you construct your page so it opens new windows, the names for those windows appear in the Window list. Select the Window where you want your End Graph Removal Button to appear. <br><br>',
   '<b>Insert Options and Insert Target:</b> If you want the End Graph Removal Button inserted at the current point in the creation of the web page, select <i>Insert Options: current point</i>. If you want it inserted before, after, or inside another object, select this option and choose the object you want it inserted before, after or inside from the Insert Target menu. <br><br>',
   '<b>Visibility:</b> Choose whether you want the End Graph Removal Button to be visible or invisible. If you select <i>Visibility: invisible</i> you can have it become visible (usually as a result of user interaction with the page) by using the Visibility entry from the Main Menu, and the Hide And Unhide Sub-Menu.<br><br>',
   '<b>Only Use For Lists (Advanced):</b> Beginners should leave Only Use For Lists at its default value of no. Only Use For Lists should only be used when you want to do something with an End Graph Removal Button, but the End Graph Removal Button does not appear in a menu in the CaluMath Page Maker. This situation can occur when using For Loops, or in connection with allowing users to define functions in Text Boxes. You can select <i>Only Use For Lists: yes</i> to create a "phantom" object. It\'s name will appear in menus, however it will not appear anywhere in the web page.<br><br>',
].join("");


CaluMath.PM.PageMakercalculatorbuttonDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakercalculatorbuttonDefault.requiredarray=[
["buttontype",  "menu", [["Calculator Button", "calculatorbutton"]] , "Calculator Button", "Button Type"],
//CM_DefaultEntriesObject.newplot1("CM_ParentObject")
CaluMath.PM.DefaultEntriesObject.newplot1("")
];
};

CaluMath.PM.PageMakercalculatorbuttonDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakercalculatorbuttonDefault.optionsarray=[
CaluMath.PM.DefaultEntriesObject.value(20),
["style=fontSize", "menu", [["10","10px"],["12","12px"],["14","14px"],["16","16px"],["18","18px"],["20","20px"],["22","22px"],["24","24px"],["26","26px"],["28","28px"],["32","32px"], ["36","36px"],["40","40px"],["44","44px"],["48","48px"], ["52","52px"]], 16, "Font Size"],
["cm_instructionmessage", "menu", ["yes","no"], "yes", "Pop-up Instruction Window?"],
CaluMath.PM.DefaultEntriesObject.cm_caswindow(),
CaluMath.PM.DefaultEntriesObject.cm_insertoption(),
["cm_inserttarget", "menu", '[["n/a", "n/a"]],concat,namedobjectlist', "newwindowlist", "n/a", "Insert Target"],
CaluMath.PM.DefaultEntriesObject.visibilitywithstyle(),
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};


CaluMath.PM.PageMakerjavascriptbuttonDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerjavascriptbuttonDefault.requiredarray=[
["buttontype",  "menu", [["JavaScript Button", "javascriptbutton"]] , "JavaScript Button", "Button Type"],
//CM_DefaultEntriesObject.newplot1("CM_ParentObject")
CaluMath.PM.DefaultEntriesObject.newplot1("")
];
};

CaluMath.PM.PageMakerjavascriptbuttonDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerjavascriptbuttonDefault.optionsarray=[
CaluMath.PM.DefaultEntriesObject.value(20),
["style=fontSize", "menu", [["10","10px"],["12","12px"],["14","14px"],["16","16px"],["18","18px"],["20","20px"],["22","22px"],["24","24px"],["26","26px"],["28","28px"],["32","32px"], ["36","36px"],["40","40px"],["44","44px"],["48","48px"], ["52","52px"]], 16, "Font Size"],
["cm_instructionmessage", "menu", ["yes","no"], "yes", "Pop-up Instruction Window?"],
CaluMath.PM.DefaultEntriesObject.cm_caswindow(),
CaluMath.PM.DefaultEntriesObject.cm_insertoption(),
["cm_inserttarget", "menu", '[["n/a", "n/a"]],concat,namedobjectlist', "newwindowlist", "n/a", "Insert Target"],
CaluMath.PM.DefaultEntriesObject.visibilitywithstyle(),
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};


CaluMath.PM.PageMakerenterbuttonDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerenterbuttonDefault.requiredarray=[
["buttontype",  "menu", [["Enter Button", "enterbutton"]] , "Enter Button", "Button Type"],
//CM_DefaultEntriesObject.newplot1("CM_ParentObject")
CaluMath.PM.DefaultEntriesObject.newplot1("")
];
};

CaluMath.PM.PageMakerenterbuttonDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerenterbuttonDefault.optionsarray=[
CaluMath.PM.DefaultEntriesObject.value(20),
["style=fontSize", "menu", [["10","10px"],["12","12px"],["14","14px"],["16","16px"],["18","18px"],["20","20px"],["22","22px"],["24","24px"],["26","26px"],["28","28px"],["32","32px"], ["36","36px"],["40","40px"],["44","44px"],["48","48px"], ["52","52px"]], 16, "Font Size"],
["cm_instructionmessage", "menu", ["yes","no"], "yes", "Pop-up Instruction Window?"],
CaluMath.PM.DefaultEntriesObject.cm_caswindow(),
CaluMath.PM.DefaultEntriesObject.cm_insertoption(),
["cm_inserttarget", "menu", '[["n/a", "n/a"]],concat,namedobjectlist', "newwindowlist", "n/a", "Insert Target"],
CaluMath.PM.DefaultEntriesObject.visibilitywithstyle(),
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};




CaluMath.PM.PageMakerinputDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerinputDefault.requiredarray=[
["buttontype",  "menu", [["Input Box", "input"]] , "Input Box", "Text Box Type"],
//CM_DefaultEntriesObject.newplot1("CM_ParentObject")
CaluMath.PM.DefaultEntriesObject.newplot1("")
];
};

CaluMath.PM.PageMakerinputDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerinputDefault.optionsarray=[
//["label", "input", 20, "default", "Input Box", CaluMath.PM.IsNonEmptyString],
["style=fontSize", "menu", [["10","10px"],["12","12px"],["14","14px"],["16","16px"],["18","18px"],["20","20px"],["22","22px"],["24","24px"],["26","26px"],["28","28px"],["32","32px"], ["36","36px"],["40","40px"],["44","44px"],["48","48px"], ["52","52px"]], 16, "Font Size"],
["size", "menu", [1,2,3,4,5,6,7,8,9,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100,110,120,130,140,150,160,170,180,190,200], 100, "Input Box Length"],
CaluMath.PM.DefaultEntriesObject.cm_caswindow(),
CaluMath.PM.DefaultEntriesObject.cm_insertoption(),
["cm_inserttarget", "menu", '[["n/a", "n/a"]],concat,namedobjectlist', "newwindowlist", "n/a", "Insert Target"],
CaluMath.PM.DefaultEntriesObject.visibilitywithstyle(),
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};



CaluMath.PM.PageMakeroutputDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakeroutputDefault.requiredarray=[
["buttontype",  "menu", [["Axes Information Box", "output"]] , "Axes Information Box", "Axes Information Box"],
//CM_DefaultEntriesObject.newplot1("CM_ParentObject")
CaluMath.PM.DefaultEntriesObject.newplot("")
];
};

CaluMath.PM.PageMakeroutputDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakeroutputDefault.optionsarray=[
//["label", "input", 20, "default", "Results Box", CaluMath.PM.IsNonEmptyString],
["style=fontSize", "menu", [["10","10px"],["12","12px"],["14","14px"],["16","16px"],["18","18px"],["20","20px"],["22","22px"],["24","24px"],["26","26px"],["28","28px"],["32","32px"], ["36","36px"],["40","40px"],["44","44px"],["48","48px"], ["52","52px"]], 16, "Font Size"],
["size", "menu", [1,2,3,4,5,6,7,8,9,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100,110,120,130,140,150,160,170,180,190,200], 20, "Information Box Length"],
CaluMath.PM.DefaultEntriesObject.cm_caswindow(),
CaluMath.PM.DefaultEntriesObject.cm_insertoption(),
["cm_inserttarget", "menu", '[["n/a", "n/a"]],concat,namedobjectlist', "newwindowlist", "n/a", "Insert Target"],
CaluMath.PM.DefaultEntriesObject.visibilitywithstyle(),
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};

CaluMath.PM.PageMakeroutputDefault.textstring=['<b>An Axes Information Box displays information about a set of Axes and user interaction with the axes. It is usually used to display the coordinates of points on which the user clicks.</b><br><br>',
   '<b>To have an Axes Information Box display the coordinates of points on which a user clicks, the corresponding Tangent Button, Highlight Button, Point Button, or Click On Graph Button must have have <i>Display Coordinates in Axes Information Box: yes</i> selected when the buttons are constructed.</b><br><br>',
   '<b>Axes:</b> Select the Axes whose information you want to display in the Axes Information Box.<br><br>',
   '<b>Font Size:</b> This gives the size, in pixels, of the text in the Axes Information Box.<br><br>',
   '<b>Information Box Length:</b> This gives the length, in characters, of the Axes Information Box.<br><br>',
   '<b>Window: </b> The main web page constructed with the CaluMath Page Maker is called the CM_MainWindow. If you construct your page so it opens new windows, the names for those windows appear in the Window list. Select the Window where you want your Axes Information Box to appear. <br><br>',
   '<b>Insert Options and Insert Target:</b> If you want the Axes Information Box inserted at the current point in the creation of the web page, select <i>Insert Options: current point</i>. If you want it inserted before, after, or inside another object, select this option and choose the object you want it inserted before, after or inside from the Insert Target menu. <br><br>',
   '<b>Visibility:</b> Choose whether you want the Axes Information Box to be visible or invisible. If you select <i>Visibility: invisible</i> you can have it become visible (usually as a result of user interaction with the page) by using the Visibility entry from the Main Menu, and the Hide And Unhide Sub-Menu.<br><br>',
   '<b>Only Use For Lists (Advanced):</b> Beginners should leave Only Use For Lists at its default value of no. Only Use For Lists should only be used when you want to do something with an Axes Information Box, but the Axes Information Box does not appear in a menu in the CaluMath Page Maker. This situation can occur when using For Loops, or in connection with allowing users to define functions in Text Boxes. You can select <i>Only Use For Lists: yes</i> to create a "phantom" object. It\'s name will appear in menus, however it will not appear anywhere in the web page.<br><br>',
].join("");


CaluMath.PM.PageMakerselectDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerselectDefault.requiredarray=[
["buttontype",  "menu", [["Graph Menu", "select"]] , "Graph Menu", "Menu Type"],
CaluMath.PM.DefaultEntriesObject.newplot("")
];
};

CaluMath.PM.PageMakerselectDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerselectDefault.optionsarray=[
["style=fontSize", "menu", [["10","10px"],["12","12px"],["14","14px"],["16","16px"],["18","18px"],["20","20px"],["22","22px"],["24","24px"],["26","26px"],["28","28px"],["32","32px"], ["36","36px"],["40","40px"],["44","44px"],["48","48px"], ["52","52px"]], 16, "Font Size"],
CaluMath.PM.DefaultEntriesObject.cm_caswindow(),
CaluMath.PM.DefaultEntriesObject.cm_insertoption(),
["cm_inserttarget", "menu", '[["n/a", "n/a"]],concat,namedobjectlist', "newwindowlist", "n/a", "Insert Target"],
CaluMath.PM.DefaultEntriesObject.visibilitywithstyle(),
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};


CaluMath.PM.PageMakerselectDefault.textstring=['<b>A Graph Menu is a drop down menu that can contain all of the graphs and points appearing in a set of axes. Users select the graph which they want to interact with. For example, if you construct a Tangent Button that is associated to a set of axes (and not a particular graph in a set of axes), the user select the graph from the Graph Menu that they want to draw tangent lines on. </b><br><br>',
   '<b>Buttons, such as Tangent Buttons, Highlight Buttons, and Click On Graph Buttons, can also be associated to a particular graph in a set of axes. When this is done, a Graph Menu does not need to be constructed since the Button is constructed to only deal with one particular graph.</b><br><br>',
   '<b>Note that you can control which graphs appear in a Graph Menu. Each graph and point that can be constructed has an option <i>Display In Graph Menu</i>, which can be set to yes or no. In general, you would want to select <i>Display In Graph Menu: no</i>, for points, since, even if they appear in a Graph Menu, there is little interaction that can be done with them.</b><br><br>', 
   '<b>If you do not construct a Graph Menu for a set of axes, selecting <i>Display In Graph Menu: yes</i> for any graph or point has no effect. It also will not cause an error in the web page.</b><br><br>',
   '<b>Axes:</b> Select the Axes whose graphs you want displayed in the Graph Menu.<br><br>',
   '<b>Font Size:</b> This gives the size, in pixels, of the text displayed in the Graph Menu.<br><br>',
   '<b>Window: </b> The main web page constructed with the CaluMath Page Maker is called the CM_MainWindow. If you construct your page so it opens new windows, the names for those windows appear in the Window list. Select the Window where you want your Graph Menu to appear. <br><br>',
   '<b>Insert Options and Insert Target:</b> If you want the Graph Menu inserted at the current point in the creation of the web page, select <i>Insert Options: current point</i>. If you want it inserted before, after, or inside another object, select this option and choose the object you want it inserted before, after or inside from the Insert Target menu. <br><br>',
   '<b>Visibility:</b> Choose whether you want the Graph Menu to be visible or invisible. If you select <i>Visibility: invisible</i> you can have it become visible (usually as a result of user interaction with the page) by using the Visibility entry from the Main Menu, and the Hide And Unhide Sub-Menu.<br><br>',
   '<b>Only Use For Lists (Advanced):</b> Beginners should leave Only Use For Lists at its default value of no. Only Use For Lists should only be used when you want to do something with a Graph Menu, but the Graph Menu does not appear in a menu in the CaluMath Page Maker. This situation can occur when using For Loops, or in connection with allowing users to define functions in Text Boxes. You can select <i>Only Use For Lists: yes</i> to create a "phantom" object. It\'s name will appear in menus, however it will not appear anywhere in the web page.<br><br>',
].join("");


CaluMath.PM.PageMakerinputtextDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerinputtextDefault.requiredarray=[
["buttontype",  "menu", [["Text Box", "inputtext"]] , "Text Box", "Text Box Type"],
CaluMath.PM.DefaultEntriesObject.newplot1(""),
CaluMath.PM.DefaultEntriesObject.graphrequired("cansupportbuttonslist", "Have Text Box Belong To A Particular Graph"),
CaluMath.PM.DefaultEntriesObject.requiredname("Text Box",30)
];
};

CaluMath.PM.PageMakerinputtextDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerinputtextDefault.optionsarray=[
["size", "menu", [1,2,3,4,5,6,7,8,9,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100,110,120,130,140,150,160,170,180,190,200], 100, "Input Box Length"],
CaluMath.PM.DefaultEntriesObject.cm_caswindow(),
CaluMath.PM.DefaultEntriesObject.cm_insertoption(),
["cm_inserttarget", "menu", '[["n/a", "n/a"]],concat,namedobjectlist', "newwindowlist", "n/a", "Insert Target"],
CaluMath.PM.DefaultEntriesObject.visibilitywithstyle(),
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};

CaluMath.PM.PageMakerinputareaDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerinputareaDefault.requiredarray=[
["buttontype",  "menu", [["Input Box", "inputarea"]] , "Input Box", "Text Box Type"],
CaluMath.PM.DefaultEntriesObject.newplot1(""),
//["graph", "menu", '[["none", "none"]],concat,cansupportbuttonslist',"newplotlist", [["Graph", "help/individual_help.html#requiredgraph"], "Have Text Area Belong To A Particular Graph", "same"]],
CaluMath.PM.DefaultEntriesObject.graphrequired("cansupportbuttonslist", "Have Text Area Belong To A Particular Graph"),
CaluMath.PM.DefaultEntriesObject.requiredname("Text Area",40)
];
};

CaluMath.PM.PageMakerinputareaDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerinputareaDefault.optionsarray=[
["rows", "menu", [1,2,3,4,5,6,7,8,9,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100,110,120,130,140,150,160,170,180,190,200], 10, "Rows In Text Area"],
["cols", "menu", [1,2,3,4,5,6,7,8,9,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100,110,120,130,140,150,160,170,180,190,200], 100, "Columns In Text Area"],
CaluMath.PM.DefaultEntriesObject.cm_caswindow(),
CaluMath.PM.DefaultEntriesObject.cm_insertoption(),
["cm_inserttarget", "menu", '[["n/a", "n/a"]],concat,namedobjectlist', "newwindowlist", "n/a", "Insert Target"],
CaluMath.PM.DefaultEntriesObject.visibilitywithstyle(),
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};

CaluMath.PM.PageMakerinputareaDefault.extraoptions="type=textarea";


CaluMath.PM.PageMakeriframecontainerDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakeriframecontainerDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.requiredname("IFrame Container",40)
];
};


CaluMath.PM.PageMakeriframecontainerDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakeriframecontainerDefault.optionsarray=[
["cm_caswindow", "menu", CaluMath.PM.PlotlistObject.newwindowlist, "CM_MainWindow", "Window"],
["cm_insertoption", "menu", [["current point", "n/a"],["insert in", "cm_insertin"]], "current point", "Insert Options"],
["cm_inserttarget", "menu", '[["n/a", "n/a"]],concat,staticobjectlist', "n/a", "Insert Target"],
//["cm_inserttarget", "menu", [["n/a", "n/a"]].concat(CaluMath.PM.PlotlistObject.CM_MainWindow.staticobjectlist), "n/a", "Insert Target"],
["visibility", "menu", [["visible","block"], ["invisible", "none"]], "visible", [["Visibility","help/individual_help.html#visibility"], "Visible When Page Loads?", "same"]],
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};


CaluMath.PM.PageMakeriframecontainerDefault.textstring='The only purpose for constructing an Iframe Container is when you want to construct an iframe that is invisible when the page loads. In this case, select Visibility=invisible when constructing the Iframe Container. Construct the iframe and using the Insert Options and Insert Target fields for the iframe, place the iframe inside the Iframe Container. <br><br> You can place an Iframe Container inside any object that is not dynamically created. The main use of this is to place the Iframe Container in non-dynamically created tables.';


CaluMath.PM.PageMakerlinebreakDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerlinebreakDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.requiredname("Optional", "no")
//CM_DefaultEntriesObject.requiredname("Optional")
];
};


CaluMath.PM.PageMakerlinebreakDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerlinebreakDefault.optionsarray=[
CaluMath.PM.DefaultEntriesObject.cm_caswindow(),
//["cm_caswindow", "menu", CaluMath.PM.PlotlistObject.newwindowlist, "CM_MainWindow", "Window"],
["cm_insertoption", "menu", [["current point", "n/a"],["insertbefore", "cm_insertbefore"] ,["insertin", "cm_insertin"],["insertafter","cm_insertafter"]], "current point", "Insert Options"],
["cm_inserttarget", "menu", '[["n/a", "n/a"]],concat,namedobjectlist', "newwindowlist", "n/a", "Insert Target"],
//["cm_inserttarget", "menu", [["n/a", "n/a"]].concat(CaluMath.PM.PlotlistObject.CM_MainWindow.namedobjectlist), "n/a", "Insert Target"],
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};

CaluMath.PM.PageMakerlinebreakDefault.textstring='This produces a line break, so all subsequent objects in the constructed web page appear on a new line. You only need to give the line break a name if you want to have it removed at some point as a result of user interaction with the page.';

CaluMath.PM.PageMakerbuttonactionDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerbuttonactionDefault.requiredarray=[
["button", "menu", "buttonlist","" , "Button"],
["type", "menu", [["When Button Clicked", "cm_add"], ["When Graph is Clicked", "cm_clickadd"]], "When Button Clicked" , "Timing of Event"]
];
};

CaluMath.PM.PageMakerbuttonactionDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerbuttonactionDefault.optionsarray=[
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};


CaluMath.PM.PageMakerforloopDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerforloopDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.requiredname("For Loop (Optional)","no", 50),
["cm_variable", "input", 10,"i", "Index Name",CaluMath.PM.IsNonEmptyStringReplaceAll],
["cm_begin", "input", 10,"0", "Index Starts At",CaluMath.PM.IsNumberReplaceAll],
["cm_end", "input", 10,"0", "Index Ends Before",CaluMath.PM.IsNumberReplaceAll],
["cm_increment", "input", 10,"1", "Increment Or Decrement By",CaluMath.PM.IsNumberReplaceAll]
];
};

CaluMath.PM.PageMakerforloopDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerforloopDefault.optionsarray=[
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};


CaluMath.PM.PageMakerforloopDefault.textstring=['<b> A For Loop in CaluMath is similar to a For Loop in any computer programming language. It allows you to successively repeat a task based upon an index you determine. </b><br><br>',
   'A For Loop is a container for items that you place in it. The Index starts at its beinning value. All of the items in the For Loop container are constructed. Then the index is increased by 1. All of the items in the For Loop container are again created. This repeats until the index reaches th Ends Before entry; when Ends Before is reached, the items in the container are not constructed and the loop is no longer repeated.<br><br>', 
   'After you exit the For Loop screen by clicking the Finish For Loop button, you will be prompted to add items to your For Loop. In general, the items you add will have something to do with the Index; as the index changes the items in the For Loop container will have different properties.<br><br>',
   '<b>Name For Loop (Optional):</b> Give a name for your For Loop. Although this is not necessary, you must do this if you want to add something to the For Loop at a later time. Giving the For Loop a descriptive name that describes what it does is always helpful.<br><br>',
   '<b>Index Name:</b> Enter name for the Index. This is the parameter that increases by one each time the items in the For Loop are constructed.<br><br>',
   '<b>Index Starts At:</b> Enter the number you want the index to start at.<br><br>',
   '<b>Index Ends Before:</b> Enter the number for which you want the loop to stop executing. When the loop gets to this number, it ends execution, therefore the step with the Index at the Index Ends Before number never gets executed. <br><br>',
   '<b>Example 1: Defining the and graphing the functions f1(x) = 1*sin(x), f2(x) := 2*sin(x), f3(x) = 3*sin(x), and f4(x) = 4*sin(x)</b><br><br>', 
   'After defining a set of axes, construct a For Loop. Enter <i>Index Name: i</i>, <i>Index Starts At: 1</i> and <i>Index Ends Before: 5</i>. This means that the items in the For Loop container will be executed when i is 1,2,3, and 4, but not when i is 5.<br><br>',
   'After exiting the For Loop screen by clicking the Finish For Loop button, you will be prompted to add items to your For Loop. Add the following items:<br><br>',
   'From the Functions And Constants Menu and the Define A Function Sub-Menu, define a function by entering <i>Function Name: fcm_evalno(i)</i>, <i>Function Variable: x</i> and <i>Function Definition:  cm_evalno(i)*sin(x)</i>.  Recall that cm_evalno() evaluates whatever is in the parentheses, so it will replace i by its current value in the loop. This means the functions f1(x) = 1*sin(x), ..., f4(x) = 4*sin(x) will be defined.<br><br>',
   'From the Axes and Graphs Menu and the Graph Of A Function, graph the function fcm_evalno(i). Note that this is how the function will appear in the list of functions given there.<br><br>',
].join("");



CaluMath.PM.PageMakeraddtoforloopDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakeraddtoforloopDefault.requiredarray=[
["forloop", "menu", "forlooplist","" , "Button Action"]
];
};


CaluMath.PM.PageMakeraddtoforloopDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakeraddtoforloopDefault.optionsarray=[
];
};


CaluMath.PM.PageMakernewwindowDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakernewwindowDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.requiredname("New Window",40),
["title", "input", 30,"", "Optional Web Browser Title" ]
];
};

CaluMath.PM.PageMakernewwindowDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakernewwindowDefault.optionsarray=[
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};


CaluMath.PM.PageMakeraddtobuttonactionDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakeraddtobuttonactionDefault.requiredarray=[
["buttonaction", "menu", "buttonactionlist","" , "Button Action"]
];
};


CaluMath.PM.PageMakeraddtobuttonactionDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakeraddtobuttonactionDefault.optionsarray=[
];
};

CaluMath.PM.PageMakerbuttonactionnextDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerbuttonactionnextDefault.requiredarray=[
//["buttonaction", "menu", CaluMath.PM.PlotlistObject.buttonlist.concat(CaluMath.PM.PlotlistObject.buttonactionlist),CaluMath.PM.PlotlistObject.buttonlist.concat(CaluMath.PM.PlotlistObject.buttonactionlist)[0][0] , "Button Action"]
];
};

CaluMath.PM.PageMakerbuttonactionnextDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerbuttonactionnextDefault.optionsarray=[
];
};


CaluMath.PM.PageMakerremovegraphDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerremovegraphDefault.requiredarray=[
["graph", "menu", "graphlist", "", [["Graph", "help/individual_help.html#requiredgraph"], "Remove This Graph", "same"]]
];
};

CaluMath.PM.PageMakerremovegraphDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerremovegraphDefault.optionsarray=[
];
};

CaluMath.PM.PageMakerhideandunhidegraphDefault.makerequiredarray=function(){
   var temparray= CaluMath.PM.PlotlistObject.namedobjectlist.concat(CaluMath.PM.PlotlistObject.graphlist);
   return CaluMath.PM.PageMakerhideandunhidegraphDefault.requiredarray=[
["graph", "menu", temparray, null, [["Graph", "help/individual_help.html#requiredgraph"], "Hide Or Unhide This Graph", "same"]],
["display", "menu", [["visible","unhide"], ["invisible", "hide"]], "visible", [["Visibility","help/individual_help.html#requireddisplay"], "Visible When Page Loads?", "same"]]
];
};

CaluMath.PM.PageMakerhideandunhidegraphDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerhideandunhidegraphDefault.optionsarray=[
];
};



CaluMath.PM.PageMakernameclickedpointDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakernameclickedpointDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.requiredname("Clicked Point",40)
];
};

CaluMath.PM.PageMakernameclickedpointDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakernameclickedpointDefault.optionsarray=[
];
};

CaluMath.PM.PageMakernamedraggedvalueDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakernamedraggedvalueDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.requiredname("Dragged Value",40),
["cm_valuetype", "menu", [["Capture Drag Path", "cm_capturedragpath"],["Dragged Point","cm_draggedpoint"], ["Dragged Or Stretched Rectangle","cm_draggedrectangle"],["Constructed Rectangle By Dragging", "cm_viewrectangle"], ["Dragged Sliding Scale", "cm_draggedslidingscale"]], "Dragged Point", "Type of Dragged Object"]
];
};

CaluMath.PM.PageMakernamedraggedvalueDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakernamedraggedvalueDefault.optionsarray=[
];
};


CaluMath.PM.PageMakernamedraggedvalueDefault.textstring=['<b> For a general discussion of dragging objects, click the Quick Introduction button in the CaluMath Page Maker.</b><br>',
   'Name Dragged Value is used to capture the information (usually coordinates) about an object that is being dragged by the user and give it a name. Using the name, you can use the name in a Routine that you associate to the dragged object; steps in the Routine are carried out as the user drags the object.<br><br>',
   'The information that is captured with Name Dragged Value depends on the type of object being dragged. <b>In Name Dragged Value, suppose you entered Dragged Value Name: MyDragedValue.</b> For each type of dragging, we list below the information that would be captured. Recall that Arrays are lists of objects. If MyArray=[5,4], then MyArray[0]=5 and MyArray[1]=4.<br><br>',
   '<b>1. Actiate Dragging Points:</b> MyDraggedValue is an Array consisting of the x and y coordinates of the point being dragged. MyDraggedValue.x is the x coordinate of the point and MyDraggedValue.y is the y coordinate of the point.  MyDraggedValue.point is the name of the point being dragged. For example, suppose the user drags the point Point15 to the coordinates (1,4). Then MyDraggedValue=[1,4], MyDraggedValue.x=1, MyDraggedValue.y=4, and MyDraggedValue.point=Point15.<br><br>',
   '<b>2. Activate Dragging Rectangles, Activate Stretch Rectangles, and Construct Rectangle By Dragging:</b> MyDraggedValue is an Array with four entries. The first entry is an Array containg the x and y coordinates of the top left corner of the rectangle. The second entry is an Array containg the x and y coordinates of the top right corner. The third entry is an Array containg the x and y coordinates of the bottom right corner. The fourth entry is an Array containg the x and y coordinates of the bottom left corner. MyDraggedValue.rectangle is the name of the rectangle being dragged. In addition, MyDraggedValue.x1 is the x coordinate of the top left corner, MyDraggedValue.y1 is the y coordinate of the top left corner, MyDraggedValue.x2 is the x coordinate of the top right corner, MyDraggedValue.y2 is the y coordinate of the top right corner, MyDraggedValue.x3 is the x coordinate of the bottom right corner, MyDraggedValue.y3 is the y coordinate of the bottom right corner, MyDraggedValue.x4 is the x coordinate of the bottom left corner,  and MyDraggedValue.y4 is the y coordinate of the bottom left corner. For example, suppose the user drags the the rectangle Rectangle16 so its top left corner is at (1,5) and its bottom right corner is at (4, -3). Then MyDraggedValue=[[1,5],[4,5],[4,-3],[1,-3]]. This means that the top left corner of the rectangle is at MyDraggedValue[0], the top right corner is at MyDraggedValue[1], the bottom right corner is at MyDraggedValue[2], and the bottom left corner is at MyDraggedValue[3]. In addition, MyDraggedValue.x1=1, MyDraggedValue.y1=5, MyDraggedValue.x2=4, MyDraggedValue.y2=5, MyDraggedValue.x3=4, MyDraggedValue.y3=-3, and MyDraggedValue.x4=1, MyDraggedValue.y4=-3. In addition MyDraggedValue.rectangle=Rectangle16. <br><br>',
   '<b>3. Activate Sliding Scale:</b> MyDraggedValue is the number of pixels from the left end of the sliding scale that the moveable bar is located. MyDraggedValue_ratio is the ratio of MyDraggedValue to the width of the sliding scale; if the bar is at the very left end of the sliding scale, MyDraggedValue_ratio is 0, and if the bar is at the right end, MyDraggedValue_ratio is 1. <br><br>',
   '<b>4. Activate Capture Dragged Path:</b> MyDraggedValue is an Array consisting of the x and y coordinates of the user\'s mouse. MyDraggedValue_array is an Array consisting of all of the points since the user started dragging their mouse. Therefore MyDraggedValue[0] is where the user put their mouse down, MyDraggedValue[1] is the next point they dragged their mouse to etc.<br><br>',
].join("");



CaluMath.PM.PageMakernameanimationvalueDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakernameanimationvalueDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.requiredname("Animation Running Value",40)
];
};

CaluMath.PM.PageMakernameanimationvalueDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakernameanimationvalueDefault.optionsarray=[
];
};

CaluMath.PM.PageMakernameanimationvalueDefault.textstring=['<b>Use this to give a name to the current value of the parameter that controls the animation.</b><br><br>',
   'There are two types of animations (see the explanation given when creating an Animation Plot). The animation obtained by selecting <i>Animation Type: Repeatedly Do Routine</i> results in a slideshow. At each step of the animation, a Routine is executed. <b> The first step in the Routine should be to Name Animation Running Value</b>. The Routine uses this name to do the steps you want carried out at each step of the animation.<br><br>',
   '<b> See the explanation given when creating an Animation Plot for a complete example.</b><br><br>',
].join("");

CaluMath.PM.PageMakerbuttonDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerbuttonDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.newplot1(""),
//["graph", "menu", '[["none", "none"]],concat,cansupportbuttonslist',"newplotlist", [["Graph", "help/individual_help.html#requiredgraph"], "Have Button Belong To A Particular Graph", "same"]],
CaluMath.PM.DefaultEntriesObject.graphrequired("cansupportbuttonslist", "Have Button Belong To A Particular Graph"),
CaluMath.PM.DefaultEntriesObject.requiredname("Button",40),
CaluMath.PM.DefaultEntriesObject.requiredvalue(20)
//["value", "input", 20, "", "Button Label", CaluMath.PM.IsNonEmptyString]
];
};

CaluMath.PM.PageMakerbuttonDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerbuttonDefault.optionsarray=[
["style=fontSize", "menu", [["10","10px"],["12","12px"],["14","14px"],["16","16px"],["18","18px"],["20","20px"],["22","22px"],["24","24px"],["26","26px"],["28","28px"],["32","32px"], ["36","36px"],["40","40px"],["44","44px"],["48","48px"], ["52","52px"]], 16, "Font Size"],
CaluMath.PM.DefaultEntriesObject.cm_caswindow(),
CaluMath.PM.DefaultEntriesObject.cm_insertoption(),
["cm_inserttarget", "menu", '[["n/a", "n/a"]],concat,namedobjectlist', "newwindowlist", "n/a", "Insert Target"],
CaluMath.PM.DefaultEntriesObject.visibilitywithstyle(),
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};

CaluMath.PM.PageMakerclickbuttonDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerclickbuttonDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.newplot(""),
//["graph", "menu", '[["none", "none"]],concat,cansupportbuttonslist',"newplotlist", [["Graph", "help/individual_help.html#requiredgraph"], "Have Button Belong To A Particular Graph", "same"]],
CaluMath.PM.DefaultEntriesObject.graphrequired("cansupportbuttonslist", "Have Button Belong To A Particular Graph"),
CaluMath.PM.DefaultEntriesObject.requiredname("Click Button",40),
CaluMath.PM.DefaultEntriesObject.requiredvalue(20),
["cm_numberofclicks", "input", 10, "1", "Number of Clicks", CaluMath.PM.IsNumber]
];
};

CaluMath.PM.PageMakerclickbuttonDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerclickbuttonDefault.optionsarray=[
["cm_execution", "menu", [["sequential","sequential"], ["end","end"],["all","all"]], "sequential", "Execution"],
["cm_prompt", "menu", ["yes","no"], "yes", "Prompt User For Correct Point?"],
["cm_variable", "input", 15, "x", "Variable in Prompt Window"],
["cm_displaycoordinates", "menu", ["yes","no"], "no", "Display Coordinates In Axes Information Box"],
["cm_clickxprecision","menu",[0, 1,2,3,4,5,6,7,8,9,10,11,12,.5,.25],3, "X Coordinate Precision"],
["cm_clickyprecision","menu",[0, 1,2,3,4,5,6,7,8,9,10,11,12,.5,.25],3, "Y Coordinate Precision"],
["style=fontSize", "menu", [["10","10px"],["12","12px"],["14","14px"],["16","16px"],["18","18px"],["20","20px"],["22","22px"],["24","24px"],["26","26px"],["28","28px"],["32","32px"], ["36","36px"],["40","40px"],["44","44px"],["48","48px"], ["52","52px"]], 16, "Font Size"],
CaluMath.PM.DefaultEntriesObject.cm_caswindow(),
CaluMath.PM.DefaultEntriesObject.cm_insertoption(),
["cm_inserttarget", "menu", '[["n/a", "n/a"]],concat,namedobjectlist', "newwindowlist", "n/a", "Insert Target"],
CaluMath.PM.DefaultEntriesObject.visibilitywithstyle(),
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};

CaluMath.PM.PageMakerboxesDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerboxesDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.newplot1(""),
//["graph", "menu", '[["none", "none"]],concat,cansupportbuttonslist',"newplotlist", [["Graph", "help/individual_help.html#requiredgraph"], "Have Boxes Belong To A Particular Graph", "same"]],
CaluMath.PM.DefaultEntriesObject.graphrequired("cansupportbuttonslist", "Have Boxes Belong To A Particular Graph"),
CaluMath.PM.DefaultEntriesObject.requiredname("Boxes",40),
["cm_choices", "input", 40, "", [["Choices","help/individual_help.html#requiredcm_choices"], "Seperate Entries By A Comma", "same"], CaluMath.PM.IsNonEmptyString]
];
};

CaluMath.PM.PageMakerboxesDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerboxesDefault.optionsarray=[
CaluMath.PM.DefaultEntriesObject.cm_caswindow(),
CaluMath.PM.DefaultEntriesObject.cm_insertoption(),
["cm_inserttarget", "menu", '[["n/a", "n/a"]],concat,namedobjectlist', "newwindowlist", "n/a", "Insert Target"],
CaluMath.PM.DefaultEntriesObject.visibilitywithstyle(),
["type","menu",[["Radio","radio"],["Check Box","checkbox"]],"radio", "Box Type"],
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};


CaluMath.PM.PageMakerdropdownmenuDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerdropdownmenuDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.newplot1(""),
CaluMath.PM.DefaultEntriesObject.graphrequired("cansupportbuttonslist", "Have Drop Down Menu Belong To A Particular Graph"),
CaluMath.PM.DefaultEntriesObject.requiredname("Drop Down Menu",40),
["cm_choices", "input", 40, "", [["Choices","help/individual_help.html#requiredcm_choices"], "Seperate Entries By A Comma", "same"], CaluMath.PM.IsNonEmptyString]
];
};

CaluMath.PM.PageMakerdropdownmenuDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerdropdownmenuDefault.optionsarray=[
CaluMath.PM.DefaultEntriesObject.cm_caswindow(),
CaluMath.PM.DefaultEntriesObject.cm_insertoption(),
["cm_inserttarget", "menu", '[["n/a", "n/a"]],concat,namedobjectlist', "newwindowlist", "n/a", "Insert Target"],
CaluMath.PM.DefaultEntriesObject.visibilitywithstyle(),
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};


CaluMath.PM.PageMakerhideandunhideDefault.makerequiredarray=function(){
   var temparray= new Array();
//   var temparray= CaluMath.PM.PlotlistObject.namedobjectlist;
   for(var j=0; j<CaluMath.PM.PlotlistObject.newwindowlist.length; j++){
      temparray=temparray.concat(CaluMath.PM.PlotlistObject[CaluMath.PM.PlotlistObject.newwindowlist[j][0]].namedobjectlist);
   };
   return CaluMath.PM.PageMakerhideandunhideDefault.requiredarray=[
//["hidetarget", "menu", temparray, temparray[0][0], "Object"],
["hidetarget", "menu", temparray, null, "Object"],
["display", "menu", [["visible","unhide"], ["invisible", "hide"]], "visible", [["Visibility","help/individual_help.html#requireddisplay"], "Visible When Page Loads?", "same"]]
];
};

CaluMath.PM.PageMakerhideandunhideDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerhideandunhideDefault.optionsarray=[
];
};


CaluMath.PM.PageMakerremovehtmlDefault.makerequiredarray=function(){
   var temparray= new Array();
//   var temparray= CaluMath.PM.PlotlistObject.namedobjectlist;
   for(var j=0; j<CaluMath.PM.PlotlistObject.newwindowlist.length; j++){
      temparray=temparray.concat(CaluMath.PM.PlotlistObject[CaluMath.PM.PlotlistObject.newwindowlist[j][0]].namedobjectlist);
   };
   return CaluMath.PM.PageMakerremovehtmlDefault.requiredarray=[
//["hidetarget", "menu", temparray, temparray[0][0], "Object"],
["hidetarget", "menu", temparray, null, "Object"]
];
};

CaluMath.PM.PageMakerremovehtmlDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerremovehtmlDefault.optionsarray=[
];
};


CaluMath.PM.PageMakerchangebuttontypeDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerchangebuttontypeDefault.requiredarray=[
["button", "menu", "buttonlist", "", "Button"],
["buttontype", "menu", [["Button", "button"],["Click Button", "clickbutton"],["Tangent Button","tangentclickbutton"],["Highlight Button", "highlightclickbutton"],["Plot Point Button", "pointclickbutton"]], "button", "Button Type"]
];
};

CaluMath.PM.PageMakerchangebuttontypeDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerchangebuttontypeDefault.optionsarray=[
];
};


CaluMath.PM.PageMakergettextboxvalueDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakergettextboxvalueDefault.requiredarray=[
["cm_spacesoption", "menu", [["Remove Leading And Trailing Spaces", "cm_removeleadingandtrailingspaces"],["Remove Leading Spaces", "cm_removeleadingspaces"],["Remove Trailing Spaces", "cm_removetrailingspaces"], ["Remove All Spaces", "cm_removespaces"], ["Do Not Remove Spaces", "leavespaces"], ["Evaluates To A Number", "isevalmath"], ["Defines A Function", "isparsefunction"]], "leadingandtrailingspaces", "Remove Spaces? Is A Number? Is A Function?"],
["cm_blankoption", "menu", [["no", "no"],["yes", "yes"]], "yes", "Can Entry Be Blank?"],
["cm_upperlowercase", "menu", [["n/a", "n/a"],["Convert To Upper Case", "toUpperCase"],["Convert To Lower Case", "toLowerCase"]], "no", "Convert to Upper Or Lower Case?"],
["cm_precision","menu",[0, 1,2,3,4,5,6,7,8,9,10,11,12,.5,.25],3, "Precision For Math Input"],
["empty"],
CaluMath.PM.DefaultEntriesObject.requiredname("Text Box Value",40),
["textbox", "menu", "textboxlist", "", "Text Box"]
];
};


CaluMath.PM.PageMakergettextboxvalueDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakergettextboxvalueDefault.optionsarray=[
];
};

CaluMath.PM.PageMakergettextboxvalueDefault.textstring=['<b>This is used to give a name to the contents the user entered in a text box. After assigning the name, you can use the name anywhere in your web page to refer to the contents. Typcially, a page designer constructs a text box and a button, with the instructions to enter something in the textbox and click the button when finished. One step in the button action should be to Get Text Box Value.</b> <br><br>',
   'When naming the textbox contents, you have several options which control how the contents are evaluated and whether the box can be left blank or not. We discuss each option below with the assumption that the user clicks a button and the button action has a Get Text Box Value command. For each example, we assume that Text Box Value Name: StudentAnswer is entered. <br><br>',
   '<b>1. Can Entry Be Blank: no</b> means that a warning box (instructing the user to not leave the box blank) will pop up if text box is left blank or only contains spaces. All processing stops after the warning is issued. <br><br>',
   '<b>2. Leading spaces</b> are blanks the user puts at the beginning of the contents of the text box.  Trailing spaces are blanks the user puts at the end. By selecting the appropriate entry in Remove Spaces? Is A Number? Is A Function? you can choose to ignore blanks in the contents.<br><br>',
   '<b>3. Remove Spaces? Is A Number? Is A Function?:</b>  Remove Leading and Trailing Spaces, and Text Box Value Name: StudentAnswer will give the name StudentAnswer to the contents the user types in the textbox, with any beginning and ending spaces removed. For example, if the user types three spaces, the word car, and four spaces, then StudentAnswer will be car (with no spaces). <br><br>',
   '<b>4. Convert To Upper Or Lower Case?:</b> If you do not care if the user types Car or car, then select either <i>Convert To Upper Case</i> or <i>Convert To Lower Case</i>. If <i>Convert To Upper Case</i>  is selected and either car or Car is typed, then SudentAnswer=CAR. This helps if you want to do a Conditional, and want the page to do different things depending on what they typed. In this case, you only have to do one comparison to see if the converted contents equals CAR, and do not separately need to check Car or car or any combination of upper and lower case letters. <br><br>',
   '<b>5. Precision For Math Input:</b> If you want the user to input a mathematical expression that evaluates to a number, select <i>Evaluates To A Number</i>  in  Remove Spaces? Is A Number? Is A Function?. For example, if the user types pi/3, then StudentAnswer will be 1.0471975511965976, which is the number Unicode(pi) divided by 3. For <i>Evaluates To A Number</i>  only, precision determines how many decimal places the resulting number is rounded off to. The user is warned if they do not type in a mathematical expression and all processing of the expression or subsequent steps stops. If they type something like 1/0, processing proceeds and StudentAnswer=undefined. <br><br>',
   '<b>6.</b> If you want the user to type in the definition of a function, select <i>Defines A Function</i>  in  Remove Spaces? Is A Number? Is A Function?. For example, if the user types f(x)= 3*x^2, then StudentAnswer will be the function f, and the function f will be defined in the web page. For <i>Defines A Function</i>, precision is ignored. <br><br>',
   '<b>6. (Advanced)</b> Continuing the above example, suppose a user typed the definition f(x)=3*x^2. In this case StudentAnswer is the function f. Suppose, as part of a Button Action, you want to draw a graph of f. Unfortunately, f will not appear in the list of defined functions in the CaluMath Page Maker, since the user will have made up the name f, not you. Recall that in any field that expects you to enter text, you can enter cm_evalno(...) or cm_evalmno(...) where the dots represents something that you want evaluated, or mathematically evaluated (to a number) respectively. To graph f on a set of axes named H,  create a function (using the Functions and Constants menu) called cm_evalno(StudentAnswer), give it any definition you want, and select <i>yes</i> in Only Use For Lists. You will be warned that using Only Use For Lists is dangerous unless you know what you are doing. Selecting <i>yes</i> in this field will add the function cm_evalno(StudentAnswer) to function lists, however the function itself will not appear when the web page is constructed. The sole purpose of Only Use For Lists is to have something appear in a list that would not normally appear. Once this is done, you can now graph the function cm_evalno(StudentAnswer), in other words, f, since when StudentAnswer is evaluated, it equals the function f. Therefore f is graphed and the resulting graph is called H.f. If you want to highlight a point on H.f, in the Axes and Graphs menu, select the Highlight A Point submenu, and select the graph cm_evalno(StudentAnswer). <br><br>',
].join("");

CaluMath.PM.PageMakerputtextboxvalueDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerputtextboxvalueDefault.requiredarray=[
["textbox", "menu", "textboxlist", "", "Text Box"],
["value", "input", 100, "", "Value", CaluMath.PM.IsNonEmptyString]
];
};


CaluMath.PM.PageMakerputtextboxvalueDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerputtextboxvalueDefault.optionsarray=[
];
};

CaluMath.PM.PageMakergetboxindexDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakergetboxindexDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.requiredname("Selected Value",40),
["box", "menu", "boxeslist", "", "Box or Drop Down"],
["cm_checktype", "menu", [["index","index"], ["label", "label"]], "index", "Name For Index Or Label?"]
];
};


CaluMath.PM.PageMakeraddtoboxordropdownDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakeraddtoboxordropdownDefault.requiredarray=[
["box", "menu", "boxeslist", "", "Box or Drop Down"],
["cm_choices", "input", 40, "", [["Choices","help/individual_help.html#requiredcm_choices"], "Seperate Entries By A Comma", "same"], CaluMath.PM.IsNonEmptyString]
];
};

CaluMath.PM.PageMakeraddtoboxordropdownDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakeraddtoboxordropdownDefault.optionsarray=[
];
};

CaluMath.PM.PageMakergetboxindexDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakergetboxindexDefault.optionsarray=[
];
};

CaluMath.PM.PageMakerputboxindexDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerputboxindexDefault.requiredarray=[
["box", "menu", "boxeslist", "", "Radio Buttons"],
["index", "input", 50, "0", "Index (starting at 0)", CaluMath.PM.IsEvalMath]
];
};


CaluMath.PM.PageMakerputboxindexDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerputboxindexDefault.optionsarray=[
];
};

CaluMath.PM.PageMakerputfocusDefault.makerequiredarray=function(){
//   var templist= CaluMath.PM.PlotlistObject.focuslist;
   return CaluMath.PM.PageMakerputfocusDefault.requiredarray=[
["target", "menu", "focuslist", "", "Focus Target"]
];
};


CaluMath.PM.PageMakerputfocusDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerputfocusDefault.optionsarray=[
];
};

CaluMath.PM.PageMakersearchDefault.cm_numberofcolumns=7;

CaluMath.PM.PageMakersearchDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakersearchDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.newplot(""),
//["graph", "menu", "cansupportsearcheslist", "newplotlist", [["Graph", "help/individual_help.html#requiredgraph"], "Search This Graph", "same"]],
CaluMath.PM.DefaultEntriesObject.graphrequired("cansupportsearcheslist", "Search This Graph"),
["cm_search", "menu", ["tangent","highlight","point"], "point", "Search Type"],
//["name", "input", 20,"Search"+CM_TopWindow.CaluMath.PM.PlotNameIndex, [["Search Name","help/individual_help.html#requiredname"],"No spaces. Examples: f, f_0, f1, Distance, Height","same"], CaluMath.PM.IsValidName], 
CaluMath.PM.DefaultEntriesObject.requiredname("Search", "Search"),
["cm_array", "input", 20,"", "Or Array To Search", CaluMath.PM.IsBlankOrValidName],
//["","","","",""],
["cm_convertarray","menu",[[" ","auto"],["convert graphs to points","yes"]]," ", "Array Of Graph Objects Or Points?"],
["","","","",""],
["","","","",""],
["leftvalue1", "input", 20, "", "Value"],  
["leftrelation1", "menu", CaluMath.PM.Comparisonlist3, "n/a", "Relation"], 
["var1", "menu", [["x", "cm_xcoordinate"],["y","cm_ycoordinate"]], "x", "Variable"], 
["rightrelation1", "menu", CaluMath.PM.Comparisonlist2, "n/a", "Relation"], 
["rightvalue1", "input", 20, "", "Value"],
["precision1", "input", 10, "", "Precision", CaluMath.PM.IsBlankOrNumber],
["andor1", "menu", [["n/a","n/a"],["and","and"],["or","or"]], "n/a", "And/Or"],
["leftvalue2", "input", 20, "", "Value"],
["leftrelation2", "menu", CaluMath.PM.Comparisonlist3, "n/a", "Relation"], 
["var2", "menu", [["x", "cm_xcoordinate"],["y","cm_ycoordinate"]], "x", "Variable"], 
["rightrelation2", "menu", CaluMath.PM.Comparisonlist2, "n/a", "Relation"], 
["rightvalue2", "input", 20, "", "Value"],
["precision2", "input", 10, "", "Precision", CaluMath.PM.IsBlankOrNumber],
["andor2", "menu", [["n/a","n/a"],["and","and"],["or","or"]], "n/a", "And/Or"],
["leftvalue3", "input", 20, "", "Value"],
["leftrelation3", "menu", CaluMath.PM.Comparisonlist3, "n/a", "Relation"], 
["var3", "menu", [["x", "cm_xcoordinate"],["y","cm_ycoordinate"]], "x", "Variable"], 
["rightrelation3", "menu", CaluMath.PM.Comparisonlist2, "n/a", "Relation"], 
["rightvalue3", "input", 20, "", "Value"],
["precision3", "input", 10, "", "Precision", CaluMath.PM.IsBlankOrNumber],
["andor3", "menu", [["n/a","n/a"],["and","and"],["or","or"]], "n/a", "And/Or"],
["leftvalue4", "input", 20, "", "Value"],
["leftrelation4", "menu", CaluMath.PM.Comparisonlist3, "n/a", "Relation"], 
["var4", "menu", [["x", "cm_xcoordinate"],["y","cm_ycoordinate"]], "x", "Variable"], 
["rightrelation4", "menu", CaluMath.PM.Comparisonlist2, "n/a", "Relation"], 
["rightvalue4", "input", 20, "", "Value"],
["precision4", "input", 10, "", "Precision", CaluMath.PM.IsBlankOrNumber],
["parentheses", "menu", [["((AB)C)D","((AB)C)D"],["(AB)(CD)","(AB)(CD)"]], "(AB)(CD)", "Parentheses (Only For Four Statements)"],
["","","","",""],
["","","","",""],
["pixels","menu",["n/a", "no","yes"],"n/a",  "Precision in Pixels?"]
];
};

CaluMath.PM.PageMakersearchDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakersearchDefault.optionsarray=[
];
};



CaluMath.PM.PageMakertextplotDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakertextplotDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.newplot(""),
CaluMath.PM.DefaultEntriesObject.graphrequired("functionplotlist", "Text Plot For A Particular Graph"),
["cm_xcoordinate", "input", 10,"", "X Coordinate", CaluMath.PM.IsEvalMath],
["cm_ycoordinate", "input", 10,"", "Y Coordinate", CaluMath.PM.IsDefaultOrEvalMath],
CaluMath.PM.DefaultEntriesObject.requiredname("TextPlot", "TextPlot"),
["cm_textinput", "input", 50,"", "Text", CaluMath.PM.IsNonEmptyString]
];
};


CaluMath.PM.PageMakertextplotDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakertextplotDefault.optionsarray=[
["fontsize", "menu", [["6","6"],["8","8"],["10","10"],["12","12"],["14","14"],["16","16"],["18","18"],["20","20"],["22","22"],["24","24"],["26","26"],["28","28"],["32","32"], ["36","36"],["40","40"],["44","44"],["48","48"], ["52","52"]],  "16", "Font Size"],
["cm_fontfamily", "menu", ["New Times Roman", "Helvetica", "Corrier New", "Bermuda Solid","Creepy"], "Helvetica", "Font Family"], 
CaluMath.PM.DefaultEntriesObject.cm_color("Text Color"),
["position", "menu", [["auto","auto"],["top,center","bc"],["top,left","br"], ["top,right","bl"],["center,left","cr"],["center,center","cc"],["center,right","cl"], ["bottom,center", "tc"],["bottom,left", "tr"], ["bottom,right", "tl"]], "auto", "Alignment"],
["cm_topmargin", "menu",[["auto","auto"],[1,1],[2,2],[3,3],[4,4],[5,5],[6,6],[7,7],[8,8],[9,9],[10,10],[11,11],[12,12],[13,13],[14,14],[15,15],[16,16],[18,18],[10,10],[20,20],[22,22],[24,24],[26,26],[28,28],[30,30],[36,36],[40,40],[48,48]],"auto", "Top Margin"],
["cm_bottommargin", "menu",[["auto","auto"],[1,1],[2,2],[3,3],[4,4],[5,5],[6,6],[7,7],[8,8],[9,9],[10,10],[11,11],[12,12],[13,13],[14,14],[15,15],[16,16],[18,18],[10,10],[20,20],[22,22],[24,24],[26,26],[28,28],[30,30],[36,36],[40,40],[48,48]],"auto", "Bottom Margin"],
["cm_leftmargin", "menu",[["auto","auto"],[1,1],[2,2],[3,3],[4,4],[5,5],[6,6],[7,7],[8,8],[9,9],[10,10],[11,11],[12,12],[13,13],[14,14],[15,15],[16,16],[18,18],[10,10],[20,20],[22,22],[24,24],[26,26],[28,28],[30,30],[36,36],[40,40],[48,48]],"auto", "Left Margin"],
["cm_rightmargin", "menu",[["auto","auto"],[1,1],[2,2],[3,3],[4,4],[5,5],[6,6],[7,7],[8,8],[9,9],[10,10],[11,11],[12,12],[13,13],[14,14],[15,15],[16,16],[18,18],[10,10],[20,20],[22,22],[24,24],[26,26],[28,28],[30,30],[36,36],[40,40],[48,48]],"auto", "Right Margin"],
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};

CaluMath.PM.PageMakermovetextplotDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakermovetextplotDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.newplot(""),
["graph", "menu", "textplotlist", "newplotlist", "Move This Text Plot"],
["cm_xcoordinate", "input", 30,"", "X Coordinate", CaluMath.PM.IsEvalMath],
["cm_ycoordinate", "input", 30,"", "Y Coordinate", CaluMath.PM.IsEvalMath],
["cm_textinput", "input", 50,"", "Text", CaluMath.PM.IsNonEmptyString]
];
};

CaluMath.PM.PageMakermovetextplotDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakermovetextplotDefault.optionsarray=[
CaluMath.PM.DefaultEntriesObject.cm_equationreplacement(25)
];
};





CaluMath.PM.PageMakerlabelplotDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerlabelplotDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.newplot(""),
["cm_axis", "menu", [["x","x"], ["y","y"]], "x", "Axis For Label"],
["cm_labelat", "input", 10,"", "Coordinate", CaluMath.PM.IsEvalMath],
//["name", "input", 10,"Label"+CaluMath.PM.PlotNameIndex++, "Label Name", CaluMath.PM.IsValidName]
CaluMath.PM.DefaultEntriesObject.requiredname("Label", "Label")
];
};

CaluMath.PM.PageMakerlabelplotDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerlabelplotDefault.optionsarray=[
["fontsize", "menu", [6,8,10,11,12,14,16,18,20,22,24,26,28,30,32,34,36,40,44,48,52], 16, "Font Size"],
["cm_fontfamily", "menu", ["New Times Roman", "Helvetica", "Corrier New", "Bermuda Solid","Creepy"], "Helvetica", "Font Family"], 
//["cm_tickcolor", "menu", CaluMath.PM.ColorArray, "auto", "Tick Color"],
CaluMath.PM.DefaultEntriesObject.cm_color("Tick Color", "cm_tickcolor"),
//["cm_labelcolor", "menu", CaluMath.PM.ColorArray, "auto", "Label Color"],
CaluMath.PM.DefaultEntriesObject.cm_color("Label Color", "cm_labelcolor"),
["cm_label", "input", 20,"auto", "Label Symbol"],
["cm_ticklength", "menu", ["auto",4,5,6,7.8,9,10,11,12,13,14,15,16,18,20,22,24,26,28,30,32,34,36,38,40,44,48,52], "auto", "Tick Length"],
["cm_tickfraction", "menu", ["auto","1/8", "1/4", "3/8","1/2","5/8","3/4","7/8","1"], "auto", "Fraction of Tick On Side Of Label"],
["position", "menu", [["auto","auto"],["top,center","bc"],["top,left","br"], ["top,right","bl"],["center,left","cr"],["center,center","cc"],["center,right","cl"], ["bottom,center", "tc"],["bottom,left", "tr"], ["bottom,right", "tl"]], "auto", "Alignment"],
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
//["position", "menu", [["auto","auto"],["top,left","tl"], ["top,right","tr"],["center,left","cl"],["center,right","cr"], ["bottom,left", "bl"], ["bottom,right", "br"], ["center,center","cc"]], "auto", "Alignment"]
];
};

CaluMath.PM.PageMakerconditionalDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerconditionalDefault.requiredarray=[
["branchtype", "menu", [["if only", "if only"],["if", "if"], ["else if" , "else if"], ["else","else"]], "none", "Branching Possibilities"],
//["name", "input", 50,"", "Conditional Name", CaluMath.PM.IsBlankOrValidName]
CaluMath.PM.DefaultEntriesObject.requiredname("Conditional","no", 50)
];
};

CaluMath.PM.PageMakerconditionalDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerconditionalDefault.optionsarray=[
["insertconditionaloption", "menu", ["n/a", "insertbefore", "insertafter"], "n/a", "Insert Options"],
["insertconditionaltarget", "menu", '[["n/a", "n/a"]],concat,conditionallist', "", "Conditional Target"]
];
};

CaluMath.PM.PageMakerconditionalDefault.textstring=['You use this if you want something to take place only if certain conditions are satisfied.<br><br>',
   '<b>1.</b> If you want something to happen if a condition is satisfied, but nothing to happen if the condition is not satisfied, choose the <i>if only</i> in the Branching Possibilities menu.<br><br>',
   '<b>2.</b> If you want something to happen if a condition is satisfied, and something different to happen if the condition is not satisfied, then you need to make two conditionals. The first condition is an <i>if</i> and the second conditional is an <i>else</i>.<br><br>',
   '<b>3.</b> You can also have and <i>if</i> conditional, followed by one or more <i>else if</i> conditionals, followed optionally by an <i>else</i> conditional. <br><br>',
   'For an <i>if</i> and <i>else if</i> conditional, you must state the condition that must be satisfied. Therefore, upon finishing the conditional screen, you are immediately taken to a comparison screen where you state the conditions that must be satisfied. Upon finishing the comparison screen, you are then prompted to construct all the objects you want constructed if the comparison is satisfied. After each object, you are asked if you want to continue adding items to your conditional or not. You click OK to continue adding items and click Cancel if you want to stop adding items.<br><br>',
   'For and <i>else</i>, there is no comparison, so when finishing the conditional screen, you are prompted to construct all the items you want to be constructed in this case. <br><br>',
   'Note that each conditional is a container, it contains the comparison that must be satisfied, and all the items that are created if it is satisfied. If you edit your web page, you will see that all of the items in a conditional are grouped together.<br><br>', 
   '<b>Warnings and Hints:</b><br><br>',
   '<b>1.</b> If you create a string of conditionals, it must start with an <i>if</i> conditional, it can never start with an <i>else if</i> or <i>else</i> conditional. This will cause your page to malfunction.<br><br>', 
   '<b>2.</b> If you cut and paste items on your page, you must never paste an item before the comparison in an <i>if</i> or <i>else if</i> conditional. This will cause the page to malfunction.  <br><br>', 
   '<b>3.</b> You do not have to give a conditional a name, however it makes sense to give it a descriptive name to remind you of what it does.<br><br>', 
   '<b>4.</b> If you finish your conditional, but later want to add an item to it, you can use the Add To Conditional sub-menu to add items to it. Note however, that the list of conditionals that appears there only contains conditionals that have names. If you did not name a conditional and want to add something to it, you will need to edit the conditional to give it a name first.'
].join(""); 


CaluMath.PM.PageMakeraddtoconditionalDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakeraddtoconditionalDefault.requiredarray=[
["conditional", "menu", "conditionallist","" , "Conditional"]
];
};

CaluMath.PM.PageMakeraddtoconditionalDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakeraddtoconditionalDefault.optionsarray=[
];
};

CaluMath.PM.PageMakerjavascriptDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerjavascriptDefault.requiredarray=[
];
};

CaluMath.PM.PageMakerjavascriptDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerjavascriptDefault.optionsarray=[
];
};

CaluMath.PM.PageMakercommentDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakercommentDefault.requiredarray=[
];
};

CaluMath.PM.PageMakercommentDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakercommentDefault.optionsarray=[
];
};

CaluMath.PM.PageMakeraddhtmlDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakeraddhtmlDefault.requiredarray=[
];
};

CaluMath.PM.PageMakeraddhtmlDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakeraddhtmlDefault.optionsarray=[
];
};

CaluMath.PM.PageMakerheadhtmlDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerheadhtmlDefault.requiredarray=[
];
};

CaluMath.PM.PageMakerheadhtmlDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerheadhtmlDefault.optionsarray=[
];
};


CaluMath.PM.PageMakerroutineDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerroutineDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.requiredname("Routine",40)
];
};

CaluMath.PM.PageMakerroutineDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerroutineDefault.optionsarray=[
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};

CaluMath.PM.PageMakerroutineDefault.textstring=['<b> A Routine is a container for items that you place in it. When the Routine is executed, all the items in the container are constructed.</b><br><br>', 
   'Routines can be passed arguments (also called parameters). In the Routine, arguments are referred to using Array notation. Therefore, arguments[0] is the first argument, arguments[1] is the second argument, etc. If you want to access the arguments, the first steps in your Routine should be give them names using the Functions And Constants Menu and the Named Object Sub-Menu. For example, you can define A=arguments[0], and B=arguments[1], etc. and then use A and B in your Routine.<br><br>',
   'You exectute a Routine by using the Conditionals and Routines Menu and the Execute a Routine Sub-Menu.<br><br>',
].join("");


CaluMath.PM.PageMakeraddtoroutineDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakeraddtoroutineDefault.requiredarray=[
["routine", "menu", "routinelist","", "Routine"]
];
};

CaluMath.PM.PageMakeraddtoroutineDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakeraddtoroutineDefault.optionsarray=[
];
};

CaluMath.PM.PageMakerexecuteroutineDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerexecuteroutineDefault.requiredarray=[
//["routine", "menu", "routinelist","" , "Routine"],
["routine", "menu", "executeroutinelist","" , "Routine Or Button Action"],
["parameters", "input", 100,"", "Arguments"],
["cm_settimeoutamount", "input", 15,"0", "Delay by (miliseconds)"],
["cm_afterpageloads", "menu", [["no","no"],["yes","yes"]],"no", "Execute After Page Loads?"]
];
};

CaluMath.PM.PageMakerexecuteroutineDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakeraddtoroutineDefault.optionsarray=[
];
};

CaluMath.PM.PageMakerexecuteroutineDefault.textstring=['<b> A Routine is a container for items that you place in it. When the Routine is executed, all the items in the container are constructed.</b><br><br>', 
   'You can use this screen to execute a Routine, or execute a Button Action. Normally, a Button Action is executed when a user clicks on a Button, however you can choose to execute a Button Action, independent of whether the user clicks on the Button or not. An example might be executing a Button Action for a Start Button of an Animation so that it plays as soon as the web page is loaded.<br><br>',
   '<b>Routine Or Button Action:</b> Select the Routine or Button whose Button Action you want executed. Note the names of some of the Buttons may be a bit strange, for example, a Start Button for an animation will have a name such as cm_startbutton. In addition, the names of most Buttons will have cm_node.onclick appended to them. This is not important; you can easily surmise the name of the button from the entry.<br><br>',
   '<b>Arguments:</b> Enter arguments (if any) for the Routine. These are parameters that are passed to the Routine. Separate each argument by a comma. <b>If an argument is a String, it must be enclosed in double quotes, not single quotes. If an argument is a mathematical expression, you should define it as a constant first, using the Functions and Constants menu, and then put the name of the constant as an argument.</b><br><br>',
   '<b>Arguments: Do not accidentally put an extra comma after the last argument or before the first argument.</b><br><br>', 
   '<b>Delay By (milliseconds):</b> If you do not want the Routine executed immediately, but want it delayed, enter the number of milliseconds you want it delayed by here. If you select <i>Execute After Page Loads?: yes</i>, the delay is ignored. <br><br>',
   '<b>Execute After Page Loads?:</b> If a Routine is executed as the web page is loaded, it may refer the objects that have not been created yet. In this case, you should have the Routine executed after the page loads. This does not apply if the Routine is executed as a result of user interaction after the page has loaded. In these cases you should select <i>Execute After Page Loads?: no</i>.<br><br>',
].join("");



CaluMath.PM.PageMakercm_alertDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakercm_alertDefault.requiredarray=[
["text", "input", 100,"", "Alert Text"],
["alerttype", "menu", [["no","cm_alert"],["yes","CaluMath.Html.Alert"]],"no", "Warning", CaluMath.PM.IsBlankOrNonEmptyString]
];
};

CaluMath.PM.PageMakercm_alertDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakeraddtoroutineDefault.optionsarray=[
];
};

CaluMath.PM.PageMakercm_alertDefault.textstring='An Pop-Up Message Window is a small pop-up window that appears, usually to give the user an instruction. You can only place text inside a Pop-Up Message Window window; you cannot put graphs or tables or other such things in it. You can do some computations in a Pop-Up Message Window window, however. Recall that cm_eval followed by an expression in parentheses is used to evaluate the expression in the parentheses. If the expression in parentheses evaluates mathematically to a number, then you should use cm_evalm, meaning evaluate mathematically, instead. For example, if the function f(x) = x^2 has already been defined, then including the text <mi> Note that f(3)=cm_evalmno(f(3)) </mi> will produce the message <mi> Note that f(3)=9 </mi> in the Pop-Up Message Window window (because the f(3) will be evaluated to 9). <br><br> The message you want displayed in the pop-up window should be entered in the Alert Text box. If you want the pop-up window to appear like a warning, select Warning=yes. In this case, a JavaScript warning will appear and the user cannot continue until they click OK on the warning box.';  

CaluMath.PM.PageMakertextstylesheetDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakertextstylesheetDefault.optionsarray=[
["htmltype", "menu", CaluMath.PM.texttagLIST.concat([["body","body"], ["ordered list","ol"],["unordered list","ul"],["definition list", "dl"],["list item","li"],["definition title", "dt"],["definition data", "dd"]]), CaluMath.PM.texttagLIST[0], "Text Type"],
//["htmltype", "menu", CaluMath.PM.texttagLIST.concat([["ordered list","ol"],["unordered list","ul"],["definition list", "dl"],["list item","li"],["definition title", "dt"],["definition data", "dd"]]), CaluMath.PM.texttagLIST[0], "Text Type"],
//["color", "menu", CaluMath.PM.ColorArray, "", "Text Color"],
CaluMath.PM.DefaultEntriesObject.cm_color("Text Color"),
//["background-Color", "menu", CaluMath.PM.stylecolorLIST, CaluMath.PM.stylecolorLIST[0], "Background Color"], 
//["background-Color", "menu", CaluMath.PM.ColorArray, "auto", "Background Color"],
CaluMath.PM.DefaultEntriesObject.cm_color("Background Color", "background-Color"),
["font-size","menu", CaluMath.PM.stylefontSizeLIST, CaluMath.PM.stylefontSizeLIST[0], "Font Size"], 
["font-weight","menu", [["",""],["normal","normal"],["bold", 700]], "",  "Bold"],
["font-style","menu", [["",""],["normal", "normal"],["italics", "italic"]], "",  "Italics"],
["font-family", "menu", CaluMath.PM.stylefontFamilyLIST, CaluMath.PM.stylefontFamilyLIST[0], "Font Family"],
["text-align", "menu", ["","left", "center","right"], "",  "Alignment"],
["display", "menu", CaluMath.PM.styledisplayLIST, CaluMath.PM.styledisplayLIST[0], [["Visibility","help/individual_help.html#display"], "Visible When Page Loads?", "same"]],
["width", "menu", [["auto","auto"], ["100","100px"],["150","150px"],["200","200px"],["250","250px"],["300","300px"],["350","350px"],["400","400px"],["350","350px"],["400","400px"],["450","450px"],["500","500px"],["550","550px"],["600","600px"], ["650","650px"],["700","700px"],["750","750px"],["800","800px"],["850","850px"],["900","900px"],["950","950px"],["1000","1000px"],["1050","1050px"],["1100","1100px"],["1150","1150px"],["1200","1200px"],["1250","1250px"],["1300","1300px"]], "auto", "Text Width"]
];
};

CaluMath.PM.PageMakertextstylesheetDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakertextstylesheetDefault.requiredarray=[
];
};

CaluMath.PM.PageMakertextstylesheetDefault.textstring='This is used to set default values for different types of text objects. In Text Type, body refers to the entire document, so if you select Text Type=body and Text Width=850, it means the width of the entire web page will be 850 pixels. When the page appears on large monitors, everything will appear to the left of the page, making it more readable than if lines of text spanned the entire width of the monitor. <br><br> Any values you enter can be overwritten for particular objects you create. For example, if you select Text Type=paragraph and Text Color=red, then all paragraphs will appear in red in the document. However, if you choose a particular color for a paragraph you create, then the color for that particular paragraph will overrule the default color.';


CaluMath.PM.PageMakerendinsertionarrayDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerendinsertionarrayDefault.optionsarray=[
];
};

CaluMath.PM.PageMakerendinsertionarrayDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerendinsertionarrayDefault.requiredarray=[
];
};

CaluMath.PM.PageMakerfocusobjectDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerfocusobjectDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.requiredname("Focus Object", "Focus", 40)
];
};

CaluMath.PM.PageMakerfocusobjectDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerfocusobjectDefault.optionsarray=[
CaluMath.PM.DefaultEntriesObject.cm_caswindow(),
CaluMath.PM.DefaultEntriesObject.cm_insertoption(),
["cm_inserttarget", "menu", '[["n/a", "n/a"]],concat,namedobjectlist', "newwindowlist",  "Insert Target"]
];
};


CaluMath.PM.PageMakerarcplotDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerarcplotDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.newplot(""),
["cm_xcenter", "input", 10,"", "X Coordinate Of Center", CaluMath.PM.IsEvalMath],
["cm_ycenter", "input", 10,"", "Y Coordinate Of Center", CaluMath.PM.IsEvalMath],
["cm_radius", "input", 10,"", "Radius", CaluMath.PM.IsEvalMath],
["cm_beginning", "input", 10,"", "Beginning Angle", CaluMath.PM.IsEvalMath],
["cm_ending", "input", 10,"", "Ending Angle", CaluMath.PM.IsEvalMath],
//["name", "input", 10,"Circle"+CM_TopWindow.CaluMath.PM.PlotNameIndex, "Circle Name", CaluMath.PM.IsValidName]
CaluMath.PM.DefaultEntriesObject.requiredname("Arc", "Arc")
];
};

CaluMath.PM.PageMakerarcplotDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerarcplotDefault.optionsarray=[
//["cm_derivative", "menu", '[["n/a"]],concat,definedfunctionlist', "",  "Derivative Function"],
["delta", "input", 10,"1e-8", "Delta", CaluMath.PM.IsBlankOrNumber],
["cm_constrained", "menu", ["no", "yes"], "no", "Constrained?"],
CaluMath.PM.DefaultEntriesObject.cm_plotstyle,
CaluMath.PM.DefaultEntriesObject.cm_equation("no", "Display circle radius and center"),
["cm_units", "menu", [["x coordinate", "x"], ["pixels","pixels"]], "x", "Radius Units"],
CaluMath.PM.DefaultEntriesObject.cm_equationreplacement(25),
CaluMath.PM.DefaultEntriesObject.cm_option("yes"),
//["color", "menu", CaluMath.PM.ColorArray, "auto", "Arc Color"],
CaluMath.PM.DefaultEntriesObject.cm_color("Arc Color"),
["arrows", "menu", [["none","none"],["beginning","f"],["ending","s"], ["both","b"]], "none", "Arrows"],
["cm_radiansordegrees", "menu", [["radians","radians"],["degrees","degrees"]], "radians", "Degrees Or Radians"],
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};

CaluMath.PM.PageMakerarcplotDefault.textstring='Enter a name for the circle or arc in the Arc Name field or leave the automatically generated name that appears there. <br><br>  Enter the x and y coordinates of the center of the arc or circle in X Coordinate Of Center and Y Coordinate Of Center. Enter the radius in Radius. Enter the beginning and ending angles for the arc in Beginning Angle and Ending Angle. Make sure that the units you use for the angle match the units selected in the Degrees Or Radians field. If you select Degrees Or Radians=radians, and enter 0 and 2*pi in the Beginning and Ending Angle fields, then a circle will be drawn. <br><br> If the axes are not scaled the same, a correctly drawn circle will actually appear as an oval. Selecting Constrained=yes will cause the circle or arc to appear as a circle or circular arc, no matter how the axes are scaled. In this case you should pay attention to the Radius Units field. If Radius Units=x coordinate is selected, the entry in Radius is interpreted to be in terms of units along the x axis. For example, a radius of 10 will be the size of 10 units along the x axis (not the y axis which may be scaled differently). If you select Radius Units=pixels, the entry in Radius will be interpreted as a length in pixels (pixels are the smallest size dot appearing on a computer monitor). <br><br> Changing the selection in Plotstyle can make the graph appear thick, thin, dotted, or normal. <br><br> Display Equation=yes means the name, center and radius of the arc or circle will be placed in a box to the right of the axes. To ensure this happens, when you constructed the axes, you should have selected Display Equation=yes for the axes (so that the box next to the axes that contains the equations is constructed). <br> If you do not like the way the center and radius of the circle is displayed, you can enter what you want displayed by using Alternate Displayed Equation. Whatever you type in this box will be displayed to the right of the axes in place of the function definition. There are several shortcuts you can use.  In the entry, cm_rhs is replace by the right hand side of what is normally displayed and cm_lhs is replaced by the left hand side of what is normally displayed.  <br><br>  Tangents are approximated using secant lines with a distance of Delta between the two points. The entry Delta=1e-8 should work for almost all applications.  <br><br> In Preprogrammed Buttons And Boxes, you can construct a Graph Menu for each set of axes. This is a drop down menu of the graphs in that set of axes. You can choose to have the graph you are constructing be an entry in the Graph Menu by choosing Add To Graph Menu=yes. By means of this menu, users can choose the graph and interact with it, for example, by highlighting points on it or removing it. If the Graph Menu is not constructed, then selecting Add To Graph Menu=yes has no effect. <br><br> You can draw arrows at the beginning or end of an arc or at both ends. <br><br> Degrees or Radians refers to the units used in Beginning Angle and Ending Angle fields.  <br><br> Only Use For Lists should never be used by CaluMath beginners.';



CaluMath.PM.PageMakerlabelvertexDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerlabelvertexDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.newplot(""),
//["graph", "menu", "canaddhighlightslist", "newplotlist", [["Line Segment", "help/individual_help.html#requiredgraph"], "Label For This Line Segment", "same"]],
CaluMath.PM.DefaultEntriesObject.graphrequired("canaddverticeslist", "Label For This Line Segment"),
["cm_vertex", "input", 10,"0", "Vertex Number", CaluMath.PM.IsEvalMath],
["cm_radius", "input", 10,"default", "Arc Radius", CaluMath.PM.IsDefaultOrEvalMath],
["cm_text", "input", 10,"", "Label Text", CaluMath.PM.IsBlankOrNonEmptyString]
];
};

CaluMath.PM.PageMakerlabelvertexDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerlabelvertexDefault.optionsarray=[
["cm_units", "menu", [["x coordinate", "x"], ["pixels","pixels"]], "x", "Radius Units"],
["cm_createarc", "menu", [["yes", "yes"], ["no","no"]], "yes", "Create Arc"],
["cm_arcposition", "menu", [["counterclockwise-interior", "i"],["counterclockwise-exterior", "e"]], "counterclockwise-interior", "Arc Placement"],
["arrows", "menu", [["none","none"],["beginning","f"],["ending","s"], ["both","b"]], "none", "Arrows"],
["cm_textposition", "menu", [["counterclockwise-interior", "i"],["counterclockwise-exterior", "e"]], "counterclockwise-interior", "Text Placement"],
//["color", "menu", CaluMath.PM.ColorArray, "auto", "Arc Color"],
CaluMath.PM.DefaultEntriesObject.cm_color("Arc Color"),
//["cm_textcolor", "menu", CaluMath.PM.ColorArray, "auto", "Text Color"],
CaluMath.PM.DefaultEntriesObject.cm_color("Text Color", "cm_textcolor"),
["cm_fontsize", "menu", [["auto","auto"],["6","6"],["8","8"],["10","10"],["12","12"],["14","14"],["16","16"],["18","18"],["20","20"],["22","22"],["24","24"],["26","26"],["28","28"],["32","32"], ["36","36"],["40","40"],["44","44"],["48","48"], ["52","52"]], "auto", "Font Size"],
["cm_fontfamily", "menu", ["New Times Roman", "Helvetica", "Corrier New", "Bermuda Solid","Creepy"], "Helvetica", "Font Family"], 
//["name", "input", 10,"Label"+CM_TopWindow.CaluMath.PM.PlotNameIndex, "Circle Name", CaluMath.PM.IsValidName]
CaluMath.PM.DefaultEntriesObject.optionsname("Label", "Label"),
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};

CaluMath.PM.PageMakerlabelallverticesDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerlabelallverticesDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.newplot(""),
//["graph", "menu", "canaddhighlightslist", "newplotlist", [["Line Segment", "help/individual_help.html#requiredgraph"], "Label For This Line Segment", "same"]],
CaluMath.PM.DefaultEntriesObject.graphrequired("canaddhighlightslist", "Label For This Line Segment"),
["cm_radius", "input", 10,"default", "Arc Radius", CaluMath.PM.IsDefaultOrEvalMath],
["cm_text", "input", 10,"", "Label Text", CaluMath.PM.IsBlankOrNonEmptyString]
];
};

CaluMath.PM.PageMakerlabelallverticesDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerlabelallverticesDefault.optionsarray=[
["cm_units", "menu", [["x coordinate", "x"], ["pixels","pixels"]], "x", "Radius Units"],
["cm_createarc", "menu", [["yes", "yes"], ["no","no"]], "yes", "Create Arc"],
["cm_arcposition", "menu", [["counterclockwise-interior", "i"],["counterclockwise-exterior", "e"]], "counterclockwise-interior", "Arc Placement"],
["arrows", "menu", [["none","none"],["beginning","f"],["ending","s"], ["both","b"]], "none", "Arrows"],
["cm_textposition", "menu", [["counterclockwise-interior", "i"],["counterclockwise-exterior", "e"]], "counterclockwise-interior", "Text Placement"],
//["color", "menu", CaluMath.PM.ColorArray, "auto", "Arc Color"],
CaluMath.PM.DefaultEntriesObject.cm_color("Arc Color"),
//["cm_textcolor", "menu", CaluMath.PM.ColorArray, "auto", "Text Color"],
CaluMath.PM.DefaultEntriesObject.cm_color("Text Color", "cm_textcolor"),
["cm_fontsize", "menu", [["auto","auto"],["6","6"],["8","8"],["10","10"],["12","12"],["14","14"],["16","16"],["18","18"],["20","20"],["22","22"],["24","24"],["26","26"],["28","28"],["32","32"], ["36","36"],["40","40"],["44","44"],["48","48"], ["52","52"]], "auto", "Font Size"],
["cm_fontfamily", "menu", ["New Times Roman", "Helvetica", "Corrier New", "Bermuda Solid","Creepy"], "Helvetica", "Font Family"], 
CaluMath.PM.DefaultEntriesObject.optionsname("Label", "Label"),
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};





CaluMath.PM.PageMakerarrowDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerarrowDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.newplot(""),
["cm_xcoordinate", "input", 10,"", "Arrow X Coordinate", CaluMath.PM.IsEvalMath],
["cm_ycoordinate", "input", 10,"", "Arrow Y Coordinate", CaluMath.PM.IsEvalMath],
["cm_xoffset", "input", 10,"", "+/- X Length of Arrow Stem", CaluMath.PM.IsEvalMath],
["cm_yoffset", "input", 10,"", "+/- Y Length of Arrow Stem", CaluMath.PM.IsEvalMath],
["cm_text", "input", 30,"", "Optional Text", CaluMath.PM.IsBlankOrNonEmptyString]
];
};

CaluMath.PM.PageMakerarrowDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerarrowDefault.optionsarray=[
//["name", "input", 10, "Arrow"+CM_TopWindow.CaluMath.PM.PlotNameIndex,"Arrow Name", CaluMath.PM.IsValidName],
CaluMath.PM.DefaultEntriesObject.optionsname("Arrow", "Arrow"),
//["color", "menu", CaluMath.PM.ColorArray, "auto", "Arrow Color"],
CaluMath.PM.DefaultEntriesObject.cm_color("Arrow Color"),
CaluMath.PM.DefaultEntriesObject.cm_plotstyle,
["cm_xyarrowoffset", "input", 10,"", "Arrow Margin (pixels)", CaluMath.PM.IsBlankOrNumber],
//["xarrowoffset", "input", 10,"", "X Offset For Arrow (pixels)", CaluMath.PM.IsBlankOrNumber],
//["yarrowoffset", "input", 10,"", "Y Offset For Arrow (pixels)", CaluMath.PM.IsBlankOrNumber],
//["cm_ongraph", "menu", ["yes","no"], "no", "Guarantee on Graph"],
["style=fontSize", "menu", [["10","10px"],["12","12px"],["14","14px"],["16","16px"],["18","18px"],["20","20px"],["22","22px"],["24","24px"],["26","26px"],["28","28px"],["32","32px"], ["36","36px"],["40","40px"],["44","44px"],["48","48px"], ["52","52px"]], 26, "Text Size"],
//["cm_fontcolor", "menu", ["black", "red", "orange", "yellow", "green", "blue", "purple", "violet", "aqua", "white"], "black", "Font Color"],
//["cm_fontcolor", "menu", CaluMath.PM.ColorArray, "auto", "Text Color"],
CaluMath.PM.DefaultEntriesObject.cm_color("Text Color", "cm_fontcolor"),
//["cm_backgroundColor", "menu", ["", "black", "red", "orange", "yellow", "green", "blue", "purple", "violet", "aqua", "white"], "", "Background Color"],
//["cm_backgroundColor", "menu", CaluMath.PM.ColorArray, "auto", "Background Color"],
CaluMath.PM.DefaultEntriesObject.cm_color("Background Color", "cm_backgroundColor"),
["width", "menu", [["auto","auto"], ["100","100px"],["150","150px"],["200","200px"],["250","250px"],["300","300px"],["350","350px"],["400","400px"],["350","350px"],["400","400px"],["450","450px"],["500","500px"],["550","550px"],["600","600px"]], "auto", "Text Width"],
["cm_leftmargin", "input", 10,"", "Left Margin For Text (pixels)", CaluMath.PM.IsBlankOrNumber],
["cm_rightmargin", "input", 10,"", "Right Margin For Text (pixels)", CaluMath.PM.IsBlankOrNumber],
["cm_topmargin", "input", 10,"", "Top Margin For Text (pixels)", CaluMath.PM.IsBlankOrNumber],
["cm_bottommargin", "input", 10,"", "Bottom Margin For Text (pixels)", CaluMath.PM.IsBlankOrNumber],
["position", "menu", [["auto","auto"],["top,center","bc"],["top,left","br"], ["top,right","bl"],["center,left","cr"],["center,center","cc"],["center,right","cl"], ["bottom,center", "tc"],["bottom,left", "tr"], ["bottom,right", "tl"]], "auto", "Text Alignment"],
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};

CaluMath.PM.PageMakerbracketDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerbracketDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.newplot(""),
["cm_x1coordinate", "input", 10,"", "First Point X Coordinate", CaluMath.PM.IsEvalMath],
["cm_y1coordinate", "input", 10,"", "First Point Y Coordinate", CaluMath.PM.IsEvalMath],
["cm_x2coordinate", "input", 10,"", "Second Point X Coordinate", CaluMath.PM.IsEvalMath],
["cm_y2coordinate", "input", 10,"", "Second Point Y Coordinate", CaluMath.PM.IsEvalMath],
["cm_text", "input", 30,"", "Optional Text", CaluMath.PM.IsBlankOrNonEmptyString]
];
};

CaluMath.PM.PageMakerbracketDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerbracketDefault.optionsarray=[
//["name", "input", 10, "Bracket"+CM_TopWindow.CaluMath.PM.PlotNameIndex,"Bracket Name", CaluMath.PM.IsValidName],
CaluMath.PM.DefaultEntriesObject.optionsname("Bracket", "Bracket"),
["position", "menu", [["above","t"],["below","b"],["left","l"],["right","r"]], "left", "Bracket Position"],
["cm_bracketwidth", "menu", [["2","2"],["4","4"],["6","6"],["8","8"],["10","10"],["12","12"],["14","14"],["16","16"],["18","18"],["20","20"],["22","22"],["24","24"],["26","26"],["28","28"],["32","32"], ["36","36"],["40","40"],["44","44"],["48","48"], ["52","52"]], 16, "Bracket Width"],
["cm_brackettick", "menu", ["yes","no"], "yes", "Tick on Bracket"],
["cm_brackettickat", "menu", ["0",".1",".2",".3",".4",".5",".6",".7",".8",".9","1"], ".5", "Tick Position"],
//["cm_bracketticklength", "menu", [".5","1","1.5", "2", "2.5","3", "3.5", "4", "4.5", "5"], "1", "Tick Length Fraction"],
CaluMath.PM.DefaultEntriesObject.cm_bracketticklength(),
["margin", "menu", [["2","2"],["4","4"],["6","6"],["8","8"],["10","10"],["12","12"],["14","14"],["16","16"],["18","18"],["20","20"],["22","22"],["24","24"],["26","26"],["28","28"],["32","32"], ["36","36"],["40","40"],["44","44"],["48","48"], ["52","52"]], 10, "Bracket Margin"],
//["color", "menu", CaluMath.PM.ColorArray, "auto", "Bracket Color"],
CaluMath.PM.DefaultEntriesObject.cm_color("Bracket Color"),
CaluMath.PM.DefaultEntriesObject.cm_plotstyle,
["cm_topmargin", "input", 10,"", "Top Margin For Text (pixels +/- )", CaluMath.PM.IsBlankOrNumber],
["cm_bottommargin", "input", 10,"", "Bottom Margin For Text (pixels +/- )", CaluMath.PM.IsBlankOrNumber],
["cm_leftmargin", "input", 10,"", "Left Margin For Text (pixels +/- )", CaluMath.PM.IsBlankOrNumber],
["cm_rightmargin", "input", 10,"", "Right Margin For Text (pixels +/- )", CaluMath.PM.IsBlankOrNumber],
["style=fontSize", "menu", [["10","10px"],["12","12px"],["14","14px"],["16","16px"],["18","18px"],["20","20px"],["22","22px"],["24","24px"],["26","26px"],["28","28px"],["32","32px"], ["36","36px"],["40","40px"],["44","44px"],["48","48px"], ["52","52px"]], 26, "Font Size"],
//["cm_textcolor", "menu", CaluMath.PM.ColorArray, "auto", "Text Color"],
CaluMath.PM.DefaultEntriesObject.cm_color("Text Color", "cm_textcolor"),
//["cm_backgroundColor", "menu", ["", "black", "red", "orange", "yellow", "green", "blue", "purple", "violet", "aqua", "white"], "", "Background Color"],
["cm_backgroundColor", "menu", CaluMath.PM.ColorArray, "auto", "Background Color"],
CaluMath.PM.DefaultEntriesObject.cm_color("Background Color", "cm_backgroundColor"),
["width", "menu", [["auto","auto"], ["100","100px"],["150","150px"],["200","200px"],["250","250px"],["300","300px"],["350","350px"],["400","400px"],["350","350px"],["400","400px"],["450","450px"],["500","500px"],["550","550px"],["600","600px"]], "auto", "Text Width"],
["cm_textposition", "menu", [["auto","auto"],["top,center","bc"],["top,left","br"], ["top,right","bl"],["center,left","cr"],["center,center","cc"],["center,right","cl"], ["bottom,center", "tc"],["bottom,left", "tr"], ["bottom,right", "tl"]], "auto", "Text Alignment"],
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};


CaluMath.PM.PageMakerpointbrackets3Default.makerequiredarray=function(){
   return CaluMath.PM.PageMakerpointbrackets3Default.requiredarray=[
CaluMath.PM.DefaultEntriesObject.newplot(""),
["cm_xcenter", "input", 10,"", "X Center", CaluMath.PM.IsEvalMath],
["cm_ycenter", "input", 10,"", "Y Center", CaluMath.PM.IsEvalMath],
["cm_xcoordinate", "input", 10,"", "X Coordinate", CaluMath.PM.IsEvalMath],
["cm_ycoordinate", "input", 10,"", "Y Coordinate", CaluMath.PM.IsEvalMath],
["cm_x1text", "input", 30,"", "First Quadrant X Text", CaluMath.PM.IsBlankOrNonEmptyString],
["cm_y1text", "input", 30,"", "First Quadrant Y Text", CaluMath.PM.IsBlankOrNonEmptyString],
["cm_x2text", "input", 30,"", "Second Quadrant X Text", CaluMath.PM.IsBlankOrNonEmptyString],
["cm_y2text", "input", 30,"", "Second Quadrant Y Text", CaluMath.PM.IsBlankOrNonEmptyString],
["cm_x3text", "input", 30,"", "Third Quadrant X Text", CaluMath.PM.IsBlankOrNonEmptyString],
["cm_y3text", "input", 30,"", "Third Quadrant Y Text", CaluMath.PM.IsBlankOrNonEmptyString],
["cm_x4text", "input", 30,"", "Fourth Quadrant X Text", CaluMath.PM.IsBlankOrNonEmptyString],
["cm_y4text", "input", 30,"", "Fourth Quadrant Y Text", CaluMath.PM.IsBlankOrNonEmptyString]
];
};

CaluMath.PM.PageMakerpointbrackets3Default.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerpointbrackets3Default.optionsarray=[
//["name", "input", 10, "Bracket"+CM_TopWindow.CaluMath.PM.PlotNameIndex,"Bracket Name", CaluMath.PM.IsValidName],
CaluMath.PM.DefaultEntriesObject.optionsname("Point Bracket", "PointBracket"),
["cm_xtolerance", "input", 10,"10", "X Tolerance For 0 (pixels)", CaluMath.PM.IsBlankOrNumber],
["cm_ytolerance", "input", 10,"10", "Y Tolerance For 0 (pixels)", CaluMath.PM.IsBlankOrNumber],
["cm_bracketpositions", "menu", [["along x axis","alongxaxis"],["along y axis","alongyaxis"],["along both axes","alongbothaxes"],["along neither axis","alongneitheraxis"]], "alongxaxis", "Bracket Positions"],
["cm_bracketwidth", "menu", [["2","2"],["4","4"],["6","6"],["8","8"],["10","10"],["12","12"],["14","14"],["16","16"],["18","18"],["20","20"],["22","22"],["24","24"],["26","26"],["28","28"],["32","32"], ["36","36"],["40","40"],["44","44"],["48","48"], ["52","52"]], 16, "Bracket Width"],
["cm_brackettick", "menu", ["yes","no"], "yes", "Tick on Bracket"],
["cm_brackettickat", "menu", ["0",".1",".2",".3",".4",".5",".6",".7",".8",".9","1"], ".5", "Tick Position"],
//["cm_bracketticklength", "menu", [".5","1","1.5", "2", "2.5","3", "3.5", "4", "4.5", "5"], "1", "Tick Length Fraction"],
CaluMath.PM.DefaultEntriesObject.cm_bracketticklength(),
["margin", "menu", [["auto","auto"],["2","2"],["4","4"],["6","6"],["8","8"],["10","10"],["12","12"],["14","14"],["16","16"],["18","18"],["20","20"],["22","22"],["24","24"],["26","26"],["28","28"],["32","32"], ["36","36"],["40","40"],["44","44"],["48","48"], ["52","52"]], "10", "Bracket Margin"],
//["cm_xcolor", "menu", CaluMath.PM.ColorArray, "auto",  "X Bracket Color"],
CaluMath.PM.DefaultEntriesObject.cm_color("X Bracket Color", "cm_xcolor"),
//["cm_ycolor", "menu", CaluMath.PM.ColorArray, "auto", "Y Bracket Color"],
CaluMath.PM.DefaultEntriesObject.cm_color("Y Bracket Color", "cm_ycolor"),
CaluMath.PM.DefaultEntriesObject.cm_plotstyle,
["cm_xmargin", "input", 10,"10", "Offset For X Text (pixels)", CaluMath.PM.IsBlankOrNumber],
["cm_ymargin", "input", 10,"10", "Offset For Y Text (pixels)", CaluMath.PM.IsBlankOrNumber],
//["cm_xtextcolor", "menu", CaluMath.PM.ColorArray, "auto", "X Text Color"],
CaluMath.PM.DefaultEntriesObject.cm_color("X Text Color", "cm_xtextcolor"),
//["cm_ytextcolor", "menu", CaluMath.PM.ColorArray, "auto", "Y Text Color"],
CaluMath.PM.DefaultEntriesObject.cm_color("Y Text Color", "cm_ytextcolor"),
["style=fontSize", "menu", [["10","10px"],["12","12px"],["14","14px"],["16","16px"],["18","18px"],["20","20px"],["22","22px"],["24","24px"],["26","26px"],["28","28px"],["32","32px"], ["36","36px"],["40","40px"],["44","44px"],["48","48px"], ["52","52px"]], 26, "Font Size"],
//["backgroundColor", "menu", ["", "black", "red", "orange", "yellow", "green", "blue", "purple", "violet", "aqua", "white"], "", "Background Color"],
CaluMath.PM.DefaultEntriesObject.cm_color("Background Color", "backgroundColor"),
["width", "menu", [["auto","auto"], ["100","100px"],["150","150px"],["200","200px"],["250","250px"],["300","300px"],["350","350px"],["400","400px"],["350","350px"],["400","400px"],["450","450px"],["500","500px"],["550","550px"],["600","600px"]], "auto", "Text Width"],
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};

CaluMath.PM.PageMakerpointbrackets2Default.makerequiredarray=function(){
   return CaluMath.PM.PageMakerpointbrackets2Default.requiredarray=[
CaluMath.PM.DefaultEntriesObject.newplot(""),
["cm_xcenter", "input", 10,"", "X Center", CaluMath.PM.IsEvalMath],
["cm_ycenter", "input", 10,"", "Y Center", CaluMath.PM.IsEvalMath],
["cm_xcoordinate", "input", 10,"", "X Coordinate", CaluMath.PM.IsEvalMath],
["cm_ycoordinate", "input", 10,"", "Y Coordinate", CaluMath.PM.IsEvalMath],
["cm_yzero", "input", 30,"", "Y Is Zero Text", CaluMath.PM.IsBlankOrNonEmptyString],
["cm_xpos", "input", 30,"", "X Is Positive Text", CaluMath.PM.IsBlankOrNonEmptyString],
["cm_xneg", "input", 30,"", "X Is Negative Text", CaluMath.PM.IsBlankOrNonEmptyString],
["cm_xzero", "input", 30,"", "X Is 0 Text", CaluMath.PM.IsBlankOrNonEmptyString],
["cm_ypos", "input", 30,"", "Y Is Positive Text", CaluMath.PM.IsBlankOrNonEmptyString],
["cm_yneg", "input", 30,"", "Y Is Negative Text", CaluMath.PM.IsBlankOrNonEmptyString]
];
};

CaluMath.PM.PageMakerpointbrackets2Default.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerpointbrackets2Default.optionsarray=[
//["name", "input", 10, "Bracket"+CM_TopWindow.CaluMath.PM.PlotNameIndex,"Bracket Name", CaluMath.PM.IsValidName],
CaluMath.PM.DefaultEntriesObject.optionsname("Point Bracket", "PointBracket"),
["cm_xtolerance", "input", 10,"10", "X Tolerance For 0 (pixels)", CaluMath.PM.IsBlankOrNumber],
["cm_ytolerance", "input", 10,"10", "Y Tolerance For 0 (pixels)", CaluMath.PM.IsBlankOrNumber],
["cm_bracketpositions", "menu", [["x below, y left","xbelowyleft"],["x below, y right","xbelowyright"],["x above, y left","xaboveyleft"],["x above, y right","xaboveyright"]], "alongxaxis", "Bracket Positions"],
["cm_bracketwidth", "menu", [["2","2"],["4","4"],["6","6"],["8","8"],["10","10"],["12","12"],["14","14"],["16","16"],["18","18"],["20","20"],["22","22"],["24","24"],["26","26"],["28","28"],["32","32"], ["36","36"],["40","40"],["44","44"],["48","48"], ["52","52"]], 16, "Bracket Width"],
["cm_brackettick", "menu", ["yes","no"], "yes", "Tick on Bracket"],
["cm_brackettickat", "menu", ["0",".1",".2",".3",".4",".5",".6",".7",".8",".9","1"], ".5", "Tick Position"],
//["cm_bracketticklength", "menu", [".5","1","1.5", "2", "2.5","3", "3.5", "4", "4.5", "5"], "1", "Tick Length Fraction"],
CaluMath.PM.DefaultEntriesObject.cm_bracketticklength(),
["margin", "menu", [["auto","auto"],["2","2"],["4","4"],["6","6"],["8","8"],["10","10"],["12","12"],["14","14"],["16","16"],["18","18"],["20","20"],["22","22"],["24","24"],["26","26"],["28","28"],["32","32"], ["36","36"],["40","40"],["44","44"],["48","48"], ["52","52"]], "10", "Bracket Margin"],
["cm_arrowlength", "input", 10,"50", "Arrow Length (pixels)", CaluMath.PM.IsBlankOrNumber],
["cm_arrowoffset", "input", 10,"", "Arrow Margin (pixels)", CaluMath.PM.IsBlankOrNumber],
//["cm_xcolor", "menu", CaluMath.PM.ColorArray, "auto", "X  Plot Color"],
CaluMath.PM.DefaultEntriesObject.cm_color("X Plot Color", "cm_xcolor"),
//["cm_ycolor", "menu", CaluMath.PM.ColorArray, "auto", "Y Plot Color"],
CaluMath.PM.DefaultEntriesObject.cm_color("Y Plot Color", "cm_ycolor"),
CaluMath.PM.DefaultEntriesObject.cm_plotstyle,
["cm_xmargin", "input", 10,"10", "Offset For X Text (pixels)", CaluMath.PM.IsBlankOrNumber],
["cm_ymargin", "input", 10,"10", "Offset For Y Text (pixels)", CaluMath.PM.IsBlankOrNumber],
//["cm_xtextcolor", "menu", CaluMath.PM.ColorArray, "auto", "X Text Color"],
CaluMath.PM.DefaultEntriesObject.cm_color("X Text Color", "cm_xtextcolor"),
//["cm_ytextcolor", "menu", CaluMath.PM.ColorArray, "auto", "Y Text Color"],
CaluMath.PM.DefaultEntriesObject.cm_color("Y Text Color", "cm_ytextcolor"),
["style=fontSize", "menu", [["10","10px"],["12","12px"],["14","14px"],["16","16px"],["18","18px"],["20","20px"],["22","22px"],["24","24px"],["26","26px"],["28","28px"],["32","32px"], ["36","36px"],["40","40px"],["44","44px"],["48","48px"], ["52","52px"]], 26, "Font Size"],
//["backgroundColor", "menu", ["", "black", "red", "orange", "yellow", "green", "blue", "purple", "violet", "aqua", "white"], "", "Background Color"],
CaluMath.PM.DefaultEntriesObject.cm_color("Background Color", "backgroundColor"),
["width", "menu", [["auto","auto"], ["100","100px"],["150","150px"],["200","200px"],["250","250px"],["300","300px"],["350","350px"],["400","400px"],["350","350px"],["400","400px"],["450","450px"],["500","500px"],["550","550px"],["600","600px"]], "auto", "Text Width"],
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};


CaluMath.PM.PageMakerpointbrackets1Default.makerequiredarray=function(){
   return CaluMath.PM.PageMakerpointbrackets1Default.requiredarray=[
CaluMath.PM.DefaultEntriesObject.newplot(""),
["cm_xcenter", "input", 10,"", "X Center", CaluMath.PM.IsEvalMath],
["cm_ycenter", "input", 10,"", "Y Center", CaluMath.PM.IsEvalMath],
["cm_xcoordinate", "input", 10,"", "Arrow X Coordinate", CaluMath.PM.IsEvalMath],
["cm_ycoordinate", "input", 10,"", "Arrow Y Coordinate", CaluMath.PM.IsEvalMath],
["cm_xoffset", "input", 10,"", "+/ X Length of Arrow Stem", CaluMath.PM.IsEvalMath],
["cm_yoffset", "input", 10,"", "+/ Y Length of Arrow Stem", CaluMath.PM.IsEvalMath],
["cm_text", "input", 30,"", "Optional Text", CaluMath.PM.IsBlankOrNonEmptyString]
];
};

CaluMath.PM.PageMakerpointbrackets1Default.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerpointbrackets1Default.optionsarray=[
//["name", "input", 10, "Arrow"+CM_TopWindow.CaluMath.PM.PlotNameIndex,"Arrow Name", CaluMath.PM.IsValidName],
CaluMath.PM.DefaultEntriesObject.optionsname("Point Bracket", "PointBracket"),
["cm_xtolerance", "input", 10,"10", "X Tolerance For 0 (pixels)", CaluMath.PM.IsBlankOrNumber],
["cm_ytolerance", "input", 10,"10", "Y Tolerance For 0 (pixels)", CaluMath.PM.IsBlankOrNumber],
//["cm_color", "menu", CaluMath.PM.ColorArray, "auto", "Arrow Color"],
CaluMath.PM.DefaultEntriesObject.cm_color("Arrow Color", "cm_color"),
CaluMath.PM.DefaultEntriesObject.cm_plotstyle,
["cm_xyarrowoffset", "input", 10,"", "Arrow Margin (pixels)", CaluMath.PM.IsBlankOrNumber],
//["xarrowoffset", "input", 10,"", "X Offset For Arrow (pixels)", CaluMath.PM.IsBlankOrNumber],
//["yarrowoffset", "input", 10,"", "Y Offset For Arrow (pixels)", CaluMath.PM.IsBlankOrNumber],
//["cm_ongraph", "menu", ["yes","no"], "no", "Guarantee on Graph"],
["style=fontSize", "menu", [["10","10px"],["12","12px"],["14","14px"],["16","16px"],["18","18px"],["20","20px"],["22","22px"],["24","24px"],["26","26px"],["28","28px"],["32","32px"], ["36","36px"],["40","40px"],["44","44px"],["48","48px"], ["52","52px"]], 26, "Font Size"],
//["cm_fontcolor", "menu", ["black", "red", "orange", "yellow", "green", "blue", "purple", "violet", "aqua", "white"], "black", "Font Color"],
//["cm_backgroundColor", "menu", ["", "black", "red", "orange", "yellow", "green", "blue", "purple", "violet", "aqua", "white"], "", "Background Color"],
//["cm_fontcolor", "menu", CaluMath.PM.ColorArray, "auto", "Font Color"],
CaluMath.PM.DefaultEntriesObject.cm_color("Text Color", "cm_fontcolor"),
//["cm_backgroundColor", "menu", CaluMath.PM.ColorArray, "auto", "Background Color"],
CaluMath.PM.DefaultEntriesObject.cm_color("Background Color", "cm_backgroundColor"),
["cm_width", "menu", [["auto","auto"], ["100","100px"],["150","150px"],["200","200px"],["250","250px"],["300","300px"],["350","350px"],["400","400px"],["350","350px"],["400","400px"],["450","450px"],["500","500px"],["550","550px"],["600","600px"]], "auto", "Text Width"],
["cm_leftmargin", "input", 10,"", "Left Margin For Text (pixels)", CaluMath.PM.IsBlankOrNumber],
["cm_rightmargin", "input", 10,"", "Right Margin For Text (pixels)", CaluMath.PM.IsBlankOrNumber],
["cm_topmargin", "input", 10,"", "Top Margin For Text (pixels)", CaluMath.PM.IsBlankOrNumber],
["cm_bottommargin", "input", 10,"", "Bottom Margin For Text (pixels)", CaluMath.PM.IsBlankOrNumber],
["cm_textposition", "menu", [["auto","auto"],["top,center","bc"],["top,left","br"], ["top,right","bl"],["center,left","cr"],["center,center","cc"],["center,right","cl"], ["bottom,center", "tc"],["bottom,left", "tr"], ["bottom,right", "tl"]], "auto", "Text Alignment"],
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};



CaluMath.PM.PageMakerendinsertionarrayDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerendinsertionarrayDefault.optionsarray=[
];
};

CaluMath.PM.PageMakerendinsertionarrayDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerendinsertionarrayDefault.requiredarray=[
];
};


CaluMath.PM.PageMakerstartbuttonDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerstartbuttonDefault.requiredarray=[
["buttontype",  "menu", [["Animation Start Button", "startbutton"]] , "Animation Start Button", "Button Type"],
["animationplot", "menu", "animationplotlist", "", "Animation"]
];
};

CaluMath.PM.PageMakerstartbuttonDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerstartbuttonDefault.optionsarray= [
CaluMath.PM.DefaultEntriesObject.value(20),
["style=fontSize", "menu", [["10","10px"],["12","12px"],["14","14px"],["16","16px"],["18","18px"],["20","20px"],["22","22px"],["24","24px"],["26","26px"],["28","28px"],["32","32px"], ["36","36px"],["40","40px"],["44","44px"],["48","48px"], ["52","52px"]], 16, "Button Font Size"],
CaluMath.PM.DefaultEntriesObject.cm_caswindow(),
CaluMath.PM.DefaultEntriesObject.cm_insertoption(),
["cm_inserttarget", "menu", '[["n/a", "n/a"]],concat,namedobjectlist', "newwindowlist", "n/a", "Insert Target"],
CaluMath.PM.DefaultEntriesObject.visibilitywithstyle(),
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};

CaluMath.PM.PageMakerstopbuttonDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerstopbuttonDefault.requiredarray=[
["buttontype",  "menu", [["Animation Stop Button", "stopbutton"]] , "Animation Stop Button", "Button Type"],
["animationplot", "menu", "animationplotlist", "", "Animation"]
];
};

CaluMath.PM.PageMakerstopbuttonDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerstopbuttonDefault.optionsarray= [
CaluMath.PM.DefaultEntriesObject.value(20),
["style=fontSize", "menu", [["10","10px"],["12","12px"],["14","14px"],["16","16px"],["18","18px"],["20","20px"],["22","22px"],["24","24px"],["26","26px"],["28","28px"],["32","32px"], ["36","36px"],["40","40px"],["44","44px"],["48","48px"], ["52","52px"]], 16, "Button Font Size"],
CaluMath.PM.DefaultEntriesObject.cm_caswindow(),
CaluMath.PM.DefaultEntriesObject.cm_insertoption(),
["cm_inserttarget", "menu", '[["n/a", "n/a"]],concat,namedobjectlist', "newwindowlist", "n/a", "Insert Target"],
CaluMath.PM.DefaultEntriesObject.visibilitywithstyle(),
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};

CaluMath.PM.PageMakerstepbuttonDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerstepbuttonDefault.requiredarray=[
["buttontype",  "menu", [["Animation Step Button", "stepbutton"]] , "Animation Step Button", "Button Type"],
["animationplot", "menu", "animationplotlist", "", "Animation"]
];
};

CaluMath.PM.PageMakerstepbuttonDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerstepbuttonDefault.optionsarray= [
CaluMath.PM.DefaultEntriesObject.value(20),
["style=fontSize", "menu", [["10","10px"],["12","12px"],["14","14px"],["16","16px"],["18","18px"],["20","20px"],["22","22px"],["24","24px"],["26","26px"],["28","28px"],["32","32px"], ["36","36px"],["40","40px"],["44","44px"],["48","48px"], ["52","52px"]], 16, "Button Font Size"],
CaluMath.PM.DefaultEntriesObject.cm_caswindow(),
CaluMath.PM.DefaultEntriesObject.cm_insertoption(),
["cm_inserttarget", "menu", '[["n/a", "n/a"]],concat,namedobjectlist', "newwindowlist", "n/a", "Insert Target"],
CaluMath.PM.DefaultEntriesObject.visibilitywithstyle(),
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};

CaluMath.PM.PageMakerresetbuttonDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerresetbuttonDefault.requiredarray=[
["buttontype",  "menu", [["Animation Reset Button", "resetbutton"]] , "Animation Reset Button", "Button Type"],
["animationplot", "menu", "animationplotlist", "", "Animation"]
];
};

CaluMath.PM.PageMakerresetbuttonDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerresetbuttonDefault.optionsarray= [
CaluMath.PM.DefaultEntriesObject.value(20),
["style=fontSize", "menu", [["10","10px"],["12","12px"],["14","14px"],["16","16px"],["18","18px"],["20","20px"],["22","22px"],["24","24px"],["26","26px"],["28","28px"],["32","32px"], ["36","36px"],["40","40px"],["44","44px"],["48","48px"], ["52","52px"]], 16, "Button Font Size"],
CaluMath.PM.DefaultEntriesObject.cm_caswindow(),
CaluMath.PM.DefaultEntriesObject.cm_insertoption(),
["cm_inserttarget", "menu", '[["n/a", "n/a"]],concat,namedobjectlist', "newwindowlist", "n/a", "Insert Target"],
CaluMath.PM.DefaultEntriesObject.visibilitywithstyle(),
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};

CaluMath.PM.PageMakerincreasespeedbuttonDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerincreasespeedbuttonDefault.requiredarray=[
["buttontype",  "menu", [["Animation Increase Speed Button", "increasespeedbutton"]] , "Animation Increase Speed Button", "Button Type"],
["animationplot", "menu", "animationplotlist", "", "Animation"]
];
};

CaluMath.PM.PageMakerincreasespeedbuttonDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerincreasespeedbuttonDefault.optionsarray=[
CaluMath.PM.DefaultEntriesObject.value(20),
["style=fontSize", "menu", [["10","10px"],["12","12px"],["14","14px"],["16","16px"],["18","18px"],["20","20px"],["22","22px"],["24","24px"],["26","26px"],["28","28px"],["32","32px"], ["36","36px"],["40","40px"],["44","44px"],["48","48px"], ["52","52px"]], 16, "Button Font Size"],
CaluMath.PM.DefaultEntriesObject.cm_caswindow(),
CaluMath.PM.DefaultEntriesObject.cm_insertoption(),
["cm_inserttarget", "menu", '[["n/a", "n/a"]],concat,namedobjectlist', "newwindowlist", "n/a", "Insert Target"],
CaluMath.PM.DefaultEntriesObject.visibilitywithstyle(),
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};

CaluMath.PM.PageMakerdecreasespeedbuttonDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerdecreasespeedbuttonDefault.requiredarray=[
["buttontype",  "menu", [["Animation Decrease Speed Button", "decreasespeedbutton"]] , "Animation Decrease Speed Button", "Button Type"],
["animationplot", "menu", "animationplotlist", "", "Animation"]
];
};

CaluMath.PM.PageMakerdecreasespeedbuttonDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerdecreasespeedbuttonDefault.optionsarray= [
CaluMath.PM.DefaultEntriesObject.value(20),
["style=fontSize", "menu", [["10","10px"],["12","12px"],["14","14px"],["16","16px"],["18","18px"],["20","20px"],["22","22px"],["24","24px"],["26","26px"],["28","28px"],["32","32px"], ["36","36px"],["40","40px"],["44","44px"],["48","48px"], ["52","52px"]], 16, "Button Font Size"],
CaluMath.PM.DefaultEntriesObject.cm_caswindow(),
CaluMath.PM.DefaultEntriesObject.cm_insertoption(),
["cm_inserttarget", "menu", '[["n/a", "n/a"]],concat,namedobjectlist', "newwindowlist", "n/a", "Insert Target"],
CaluMath.PM.DefaultEntriesObject.visibilitywithstyle(),
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};

CaluMath.PM.PageMakerchangedirectionbuttonDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerchangedirectionbuttonDefault.requiredarray=[
["buttontype",  "menu", [["Change Direction Button", "changedirectionbutton"]] , "Change Direction Button", "Button Type"],
["animationplot", "menu", "animationplotlist", "", "Animation"]
];
};

CaluMath.PM.PageMakerchangedirectionbuttonDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerchangedirectionbuttonDefault.optionsarray= [
CaluMath.PM.DefaultEntriesObject.value(20),
["style=fontSize", "menu", [["10","10px"],["12","12px"],["14","14px"],["16","16px"],["18","18px"],["20","20px"],["22","22px"],["24","24px"],["26","26px"],["28","28px"],["32","32px"], ["36","36px"],["40","40px"],["44","44px"],["48","48px"], ["52","52px"]], 16, "Button Font Size"],
CaluMath.PM.DefaultEntriesObject.cm_caswindow(),
CaluMath.PM.DefaultEntriesObject.cm_insertoption(),
["cm_inserttarget", "menu", '[["n/a", "n/a"]],concat,namedobjectlist', "newwindowlist", "n/a", "Insert Target"],
CaluMath.PM.DefaultEntriesObject.visibilitywithstyle(),
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};

CaluMath.PM.PageMakerallanimationbuttonDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerallanimationbuttonDefault.requiredarray=[
["buttontype",  "menu", [["All Animation Buttons", "allanimationbutton"]] , "All Animation Buttons", "Button Type"],
["animationplot", "menu", "animationplotlist", "", "Animation"]
];
};

CaluMath.PM.PageMakerallanimationbuttonDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerallanimationbuttonDefault.optionsarray= [
//CM_DefaultEntriesObject.value(20),
["style=fontSize", "menu", [["10","10px"],["12","12px"],["14","14px"],["16","16px"],["18","18px"],["20","20px"],["22","22px"],["24","24px"],["26","26px"],["28","28px"],["32","32px"], ["36","36px"],["40","40px"],["44","44px"],["48","48px"], ["52","52px"]], 16, "Button Font Size"],
CaluMath.PM.DefaultEntriesObject.cm_caswindow(),
CaluMath.PM.DefaultEntriesObject.cm_insertoption(),
["cm_inserttarget", "menu", '[["n/a", "n/a"]],concat,namedobjectlist', "newwindowlist", "n/a", "Insert Target"],
CaluMath.PM.DefaultEntriesObject.visibilitywithstyle(),
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};

CaluMath.PM.PageMakeranimationoutputDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakeranimationoutputDefault.requiredarray=[
["animationplot", "menu", "animationplotlist", "", "Animation"],
["definedfunction", "menu", "definedfunctionlist", "", "Function"],
//["name", "input", 10,"", "Text Box Name", CaluMath.PM.IsValidName]
CaluMath.PM.DefaultEntriesObject.requiredname("Animation Output", "AnimationOutput")
];
};

CaluMath.PM.PageMakeranimationoutputDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakeranimationoutputDefault.optionsarray=[
["size", "menu", [1,2,3,4,5,6,7,8,9,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100,110,120,130,140,150,160,170,180,190,200], 10, "Ouput Box Length"],
["cm_round","menu",[["do not round","donotround"],[0,0], [1,1],[2,2],[3,3],[4,4],[5,5],[6,6],[7,7],[8,8],[9,9],[10,10],[11,11],[12,12],[.5,.5],[.25, .25]],2, "Precision"],
CaluMath.PM.DefaultEntriesObject.cm_caswindow(),
CaluMath.PM.DefaultEntriesObject.cm_insertoption(),
["cm_inserttarget", "menu", '[["n/a", "n/a"]],concat,namedobjectlist', "newwindowlist", "n/a", "Insert Target"],
CaluMath.PM.DefaultEntriesObject.visibilitywithstyle(),
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};


CaluMath.PM.PageMakeranimationoutputDefault.textstring=['<b>This creates a Text Box that displays the values of functions as an Animation is running.</b><br><br>',
   'Recall that Animations are parameterized by the Running Value of the Animation. For example, if the Animation goes from 0 to 5, the Running Value starts at 0, and increases at a constant rate until it reaches 5.<br><br>',
   'If you previously defined a function f, then an Animation Output Text Box can update and display f(Running Value) at each step of the Animation. For example, if f yields the height of an object moving in an animation, the height will be constantly updated and displayed as the animation is running.<br><br>',
   '<b>Animation: </b> Choose the Animation to which you want to associate the Animation Output Text Box. Note that the names for the Animations in the list are preceeded by the names of the Axes in which they appear.  <b>Do not associate the Animation Output Text Box to a Composite Animation, even if a Composite Animation appear in the list of Animations!</b><br><br>',
   '<b>Function:</b> Choose the function whose output you want displayed in the Animation Output Text Box.<br><br>',
   '<b>Animation Output Name:</b> Enter a name for the Animation Ouput Text Box.<br><br>',
   '<b>Output Box Length:</b> Enter the size of the Animation Output Text Box. The size gives the number of characters that fit in the box.<br><br>',
   '<b>Precision: </b> Entries in the Animation Output Text Box will be rounded to this number of digits after the decimal place. If you select .5 or .25, entries will be rounded off to the nearest half or fourth respectively. <br><br>',
   '<b>Window: </b> The main web page constructed with the CaluMath Page Maker is called the CM_MainWindow. If you construct your page so it opens new windows, the names for those windows appear in the Window list. Select the Window where you want your Animation Output Text Box to appear. <br><br>',
   '<b>Insert Options and Insert Target:</b> If you want the Animation Output Text Box inserted at the current point in the creation of the web page, select <i>Insert Options: current point</i>. If you want it inserted before, after, or inside another object, select this option and choose the object you want it inserted before, after or inside from the Insert Target menu. <br><br>',
   '<b>Visibility:</b> Choose whether you want the Animation Output Text Box to be visible or invisible. If you select <i>Visibility: invisible</i> you can have it become visible (usually as a result of user interaction with the page) by using the Visibility entry from the Main Menu, and the Hide And Unhide Sub-Menu.<br><br>',
   '<b>Only Use For Lists (Advanced):</b> Beginners should leave Only Use For Lists at its default value of no. Only Use For Lists should only be used when you want to do something with an Animation Output Text Box, but the Animation Output Text Box does not appear in a menu in the CaluMath Page Maker. This situation can occur when using For Loops, or in connection with allowing users to define functions in Text Boxes. You can select <i>Only Use For Lists: yes</i> to create a "phantom" object. It\'s name will appear in menus, however it will not appear anywhere in the web page.<br><br>',
].join("");
 


CaluMath.PM.PageMakercompositeanimationDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakercompositeanimationDefault.requiredarray=[
//["name", "input", 10,"", "Name", CaluMath.PM.IsValidName],
CaluMath.PM.DefaultEntriesObject.requiredname("Composite Animation", "CompositeAnimation"),
["animationplot1", "menu", '[["n/a", "n/a"]],concat,animationplotlist', "", "Animation"],
["animationplot2", "menu", '[["n/a", "n/a"]],concat,animationplotlist', "", "Animation"],
["animationplot3", "menu", '[["n/a", "n/a"]],concat,animationplotlist', "", "Animation"],
["animationplot4", "menu", '[["n/a", "n/a"]],concat,animationplotlist', "", "Animation"],
["animationplot5", "menu", '[["n/a", "n/a"]],concat,animationplotlist', "", "Animation"]
];
};

CaluMath.PM.PageMakercompositeanimationDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakercompositeanimationDefault.optionsarray= [
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};


CaluMath.PM.PageMakercompositeanimationDefault.textstring=['<b>If you want to have an animation move objects on more than one axes, you need to construct a Composite Animation. This is a two-step process. First construct the individual animations you want in each set of axes. Then you construct a Composite Animation that links them all together under one name. After doing this, you create the buttons, such as the Start and Stop buttons, that control the animation, using the Composite Animation name. When the Start button is clicked, all of the animations that the Composite Animation linked together begin playing.</b><br><br>',
   '<b> Composite Animation Name:</b> Enter a name for the Composite Animation Name.<br><br>',
   '<b>Animation: </b> Select each of the Animations you want to be linked together for the Composite Animation.<br><br>',
   '<b>Only Use For Lists (Advanced):</b> Beginners should leave Only Use For Lists at its default value of no. Only Use For Lists should only be used when you want to do something with an Animation Output Text Box, but the Animation Output Text Box does not appear in a menu in the CaluMath Page Maker. This situation can occur when using For Loops, or in connection with allowing users to define functions in Text Boxes. You can select <i>Only Use For Lists: yes</i> to create a "phantom" object. It\'s name will appear in menus, however it will not appear anywhere in the web page.<br><br>',
   '<b>Warning! You should make sure each individual animation in the Composite Animation starts and ends at the same value and has the same Animation Length. If they are different, the Composite Animation overrides the settings of the individual animations so they have a uniform start, end, and animation Length.</b><br><br>', 
].join("");
 


CaluMath.PM.PageMakerfunctiontableDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerfunctiontableDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.requiredname("Table",40),
//CM_DefaultEntriesObject.definedfunction,
["rows", "menu", CaluMath.PM.ArrayTo100, "10","Number of Rows"],
["cols", "menu", [["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"]], "2", "Number of Columns"],
["empty"],
["empty"],
["cm_xvalue", "input", 10,"", "X value", CaluMath.PM.IsBlankOrEvalMath],
["cm_delta", "input", 10,"", "Change in X", CaluMath.PM.IsBlankOrEvalMath],
["cm_xplacement", "menu", [["beginning of table", "beginning"],["middle of table", "middle"] ,["end of table", "end"]], "current point", "X value Placement"],
["empty"],["empty"],
["definedfunction1", "menu", '[["x","x"]],concat,allfunctionslist', "", [["Column 1 Function", "help/individual_help.html#requireddefinedfunction"], "Column 1 Entry", "same"]],
["evaluation1", "menu", CaluMath.PM.COORDINATESTYPELIST, CaluMath.PM.COORDINATESTYPELIST[0], "Column 1 Evaluation"],
["cm_precision1", "input", 10, "5", [["Column 1 Precision","help/individual_help.html#requiredcm_precision"], "Rounds constant to this many decimal places", "same"], CaluMath.PM.IsNumber],
["cm_colheading1", "input", 30, "",  "Column 1 Heading", CaluMath.PM.IsBlankOrNonEmptyString],
["empty"],
["definedfunction2", "menu", '[["x","x"]],concat,allfunctionslist', "", [["Column 2 Function", "help/individual_help.html#requireddefinedfunction"], "Column 2 Entry", "same"]],
["evaluation2", "menu", CaluMath.PM.COORDINATESTYPELIST, CaluMath.PM.COORDINATESTYPELIST[0], "Column 2 Evaluation"],
["cm_precision2", "input", 10, "5", [["Column 2 Precision","help/individual_help.html#requiredcm_precision"], "Rounds constant to this many decimal places", "same"], CaluMath.PM.IsNumber],
["cm_colheading2", "input", 30, "",  "Column 2 Heading", CaluMath.PM.IsBlankOrNonEmptyString],
["empty"],
["definedfunction3", "menu", '[["x","x"]],concat,allfunctionslist', "", [["Column 3 Function", "help/individual_help.html#requireddefinedfunction"], "Column 3 Entry", "same"]],
["evaluation3", "menu", CaluMath.PM.COORDINATESTYPELIST, CaluMath.PM.COORDINATESTYPELIST[0], "Column 3 Evaluation"],
["cm_precision3", "input", 10, "5", [["Column 3 Precision","help/individual_help.html#requiredcm_precision"], "Rounds constant to this many decimal places", "same"], CaluMath.PM.IsNumber],
["cm_colheading3", "input", 30, "",  "Column 3 Heading", CaluMath.PM.IsBlankOrNonEmptyString],
["empty"],
["definedfunction4", "menu", '[["x","x"]],concat,allfunctionslist', "", [["Column 4 Function", "help/individual_help.html#requireddefinedfunction"], "Column 4 Entry", "same"]],
["evaluation4", "menu", CaluMath.PM.COORDINATESTYPELIST, CaluMath.PM.COORDINATESTYPELIST[0], "Column 4 Evaluation"],
["cm_precision4", "input", 10, "5", [["Column 4 Precision","help/individual_help.html#requiredcm_precision"], "Rounds constant to this many decimal places", "same"], CaluMath.PM.IsNumber],
["cm_colheading4", "input", 30, "",  "Column 4 Heading", CaluMath.PM.IsBlankOrNonEmptyString],
["empty"],
["definedfunction5", "menu", '[["x","x"]],concat,allfunctionslist', "", [["Column 5 Function", "help/individual_help.html#requireddefinedfunction"], "Column 5 Entry", "same"]],
["evaluation5", "menu", CaluMath.PM.COORDINATESTYPELIST, CaluMath.PM.COORDINATESTYPELIST[0], "Column 5 Evaluation"],
["cm_precision5", "input", 10, "5", [["Column 5 Precision","help/individual_help.html#requiredcm_precision"], "Rounds constant to this many decimal places", "same"], CaluMath.PM.IsNumber],
["cm_colheading5", "input", 30, "",  "Column 5 Heading", CaluMath.PM.IsBlankOrNonEmptyString],
["empty"],
["definedfunction6", "menu", '[["x","x"]],concat,allfunctionslist', "", [["Column 6 Function", "help/individual_help.html#requireddefinedfunction"], "Column 6 Entry", "same"]],
["evaluation6", "menu", CaluMath.PM.COORDINATESTYPELIST, CaluMath.PM.COORDINATESTYPELIST[0], "Column 6 Evaluation"],
["cm_precision6", "input", 10, "5", [["Column 6 Precision","help/individual_help.html#requiredcm_precision"], "Rounds constant to this many decimal places", "same"], CaluMath.PM.IsNumber],
["cm_colheading6", "input", 30, "",  "Column 6 Heading", CaluMath.PM.IsBlankOrNonEmptyString]
];
};

CaluMath.PM.PageMakerfunctiontableDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerfunctiontableDefault.optionsarray=[
["border", "menu", [["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"]], "2", "Border Width"],
["borderstyle", "menu", ["n/a", "none","dotted","dashed","solid","double","groove","ridge","inset","outset"], "none", "Border Style"],
//["bordercolor", "menu",  CaluMath.PM.ColorArray, "auto", "Border Color"],
CaluMath.PM.DefaultEntriesObject.cm_color("Border Color", "bordercolor"),
["borderspacing", "menu", [["auto","n/a"],["0","0px"],["1","1px"],["2","2px"],["3","3px"],["4","4px"],["5","5px"],["6","6px"],["7","7px"],["8","8px"],["9","9px"],["10","10px"],["11","11px"],["12","12px"]], "auto", "Space Between Borders"],
["headfont-size","menu", CaluMath.PM.stylefontSizeLIST, CaluMath.PM.stylefontSizeLIST[0], "Table Head Font Size"], 
//["headcolor", "menu", CaluMath.PM.ColorArray, "auto", "Table Head Color"], 
CaluMath.PM.DefaultEntriesObject.cm_color("Table Head Color", "headcolor"),
//["headbackgroundcolor", "menu", CaluMath.PM.ColorArray, "auto", "Head Background Color"],
CaluMath.PM.DefaultEntriesObject.cm_color("Head Background Color", "headbackgroundcolor"),
["font-size","menu", CaluMath.PM.stylefontSizeLIST, CaluMath.PM.stylefontSizeLIST[0], "Body Font Size"], 
//["color", "menu", CaluMath.PM.ColorArray, "auto", "Body Color"], 
CaluMath.PM.DefaultEntriesObject.cm_color("Text Color"),
//["backgroundcolor", "menu", CaluMath.PM.ColorArray, "auto", "Body Background Color"],
CaluMath.PM.DefaultEntriesObject.cm_color("Body Background Color", "backgroundcolor"),
["text-align","menu",[["",""],["left","left"],["center","center"],["right","right"]], "", "Entry Alignment"],
CaluMath.PM.DefaultEntriesObject.visibility,
["cm_caswindow", "menu", "newwindowlist", "", [["Window","help/individual_help.html#requiredcm_caswindow"], "Table Appears In This Window","same"]],
["cm_insertoption", "menu", [["current point", "n/a"],["insert before", "cm_insertbefore"] ,["insert in", "cm_insertin"],["insert after","cm_insertafter"]], "current point", [["Insert Options","help/individual_help.html#requiredcm_insertoption"], "Table Placement","same"]],
["cm_inserttarget", "menu", '[["n/a", "n/a"]],concat,namedobjectlist', "newwindowlist", "n/a", [["Insert Target","help/individual_help.html#requiredcm_inserttarget"], "Relation of Table To Other Objects","same"]],
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};


CaluMath.PM.PageMakertableDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakertableDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.requiredname("Table",40),
//["rows", "menu", [["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"]], "2", "Number of Rows"],
//["columns", "menu", [["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"]], "2", "Number of Columns"],
["rows", "menu", CaluMath.PM.ArrayTo100, "2", "Number of Rows"],
["columns", "menu", CaluMath.PM.ArrayTo100, "2", "Number of Columns"],
["dynamic", "menu", [["no","no"],["yes","yes"]], "no", [["Dynamic Table","help/individual_help.html#requireddynamic"], "Appears In Response To User Input","same"]],
["cm_caswindow", "menu", "newwindowlist", "", [["Window","help/individual_help.html#requiredcm_caswindow"], "Table Appears In This Window","same"]],
["cm_insertoption", "menu", [["current point", "n/a"],["insert before", "cm_insertbefore"] ,["insert in", "cm_insertin"],["insert after","cm_insertafter"]], "current point", [["Insert Options","help/individual_help.html#requiredcm_insertoption"], "Table Placement","same"]],
["cm_inserttarget", "menu", '[["n/a", "n/a"]],concat,namedobjectlist', "newwindowlist", "n/a", [["Insert Target","help/individual_help.html#requiredcm_inserttarget"], "Relation of Table To Other Objects","same"]]
];
};

CaluMath.PM.PageMakertableDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakertableDefault.optionsarray=[
["border", "menu", [["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"]], "2", "Border Width"],
["borderspacing", "menu", [["auto","n/a"],["0","0px"],["1","1px"],["2","2px"],["3","3px"],["4","4px"],["5","5px"],["6","6px"],["7","7px"],["8","8px"],["9","9px"],["10","10px"],["11","11px"],["12","12px"]], "auto", "Space Between Borders"],
["width", "menu", [["auto","n/a"], ["100","100px"],["150","150px"],["200","200px"],["250","250px"],["300","300px"],["350","350px"],["400","400px"],["350","350px"],["400","400px"],["450","450px"],["500","500px"],["550","550px"],["600","600px"], ["650","650px"],["700","700px"],["750","750px"],["800","800px"],["850","850px"],["900","900px"],["950","950px"],["1000","1000px"],["1050","1050px"],["1100","1100px"],["1150","1150px"],["1200","1200px"],["1250","1250px"],["1300","1300px"]], "auto", "Width Width"],
//["backgroundcolor", "menu", CaluMath.PM.ColorArray, "auto", "Background Color"],
CaluMath.PM.DefaultEntriesObject.cm_color("Background Color", "backgroundcolor"),
["font-size","menu", CaluMath.PM.stylefontSizeLIST, CaluMath.PM.stylefontSizeLIST[0], "Text Size"], 
//["color", "menu", CaluMath.PM.ColorArray, "auto", "Text Color"], 
CaluMath.PM.DefaultEntriesObject.cm_color("Text Color"),
["text-align","menu",[["",""],["left","left"],["center","center"],["right","right"]], "", "Entry Alignment"],
CaluMath.PM.DefaultEntriesObject.visibility,
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};


CaluMath.PM.PageMakertablefromdataDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakertablefromdataDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.requiredname("Table",40),
["cm_tabledata", "input", 200,"", "Data For Table", CaluMath.PM.IsNonEmptyString]
//["cm_caswindow", "menu", "newwindowlist", "", [["Window","help/individual_help.html#requiredcm_caswindow"], "Table Appears In This Window","same"]],
//["cm_insertoption", "menu", [["current point", "n/a"],["insert before", "cm_insertbefore"] ,["insert in", "cm_insertin"],["insert after","cm_insertafter"]], "current point", [["Insert Options","help/individual_help.html#requiredcm_insertoption"], "Table Placement","same"]],
//["cm_inserttarget", "menu", '[["n/a", "n/a"]],concat,namedobjectlist', "newwindowlist", "n/a", [["Insert Target","help/individual_help.html#requiredcm_inserttarget"], "Relation of Table To Other Objects","same"]]
];
};

CaluMath.PM.PageMakertablefromdataDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakertablefromdataDefault.optionsarray=[
["border", "menu", [["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"]], "2", "Border Width"],
["borderspacing", "menu", [["auto","n/a"],["0","0px"],["1","1px"],["2","2px"],["3","3px"],["4","4px"],["5","5px"],["6","6px"],["7","7px"],["8","8px"],["9","9px"],["10","10px"],["11","11px"],["12","12px"]], "auto", "Space Between Borders"],
["borderstyle", "menu", ["n/a", "none","dotted","dashed","solid","double","groove","ridge","inset","outset"], "none", "Border Style"],
//["borderwidth", "menu", [["n/a","n/a"],["0","0px"],["1","1px"],["2","2px"],["3","3px"],["4","4px"],["5","5px"],["6","6px"],["7","7px"],["8","8px"],["9","9px"],["10","10px"],["11","11px"],["12","12px"]], "2", "Border Width"],
//["bordercolor", "menu",  CaluMath.PM.ColorArray, "auto", "Border Color"],
CaluMath.PM.DefaultEntriesObject.cm_color("Border Color", "bordercolor"),
//["backgroundcolor", "menu", CaluMath.PM.ColorArray, "auto", "Background Color"],
CaluMath.PM.DefaultEntriesObject.cm_color("Background Color", "backgroundcolor"),
["cm_firstrowstylefontSize","menu", CaluMath.PM.stylefontSizeLIST, CaluMath.PM.stylefontSizeLIST[0], "First Row Font Size"], 
//["cm_firstrowstylecolor", "menu", CaluMath.PM.ColorArray, "auto", "First Row Color"], 
CaluMath.PM.DefaultEntriesObject.cm_color("First Row Color", "cm_firstrowstylecolor"),
["cm_firstrowstyletextAlign","menu",[["",""],["left","left"],["center","center"],["right","right"]], "", "First Row Entry Alignment"],
["cm_firstcolumnstylefontSize","menu", CaluMath.PM.stylefontSizeLIST, CaluMath.PM.stylefontSizeLIST[0], "First Column Font Size"], 
//["cm_firstcolumnstylecolor", "menu", CaluMath.PM.ColorArray, "auto", "First Column Color"], 
CaluMath.PM.DefaultEntriesObject.cm_color("First Column Color", "cm_firstcolumnstylecolor"),
["cm_firstcolumnstyletextAlign","menu",[["",""],["left","left"],["center","center"],["right","right"]], "", "First Column Entry Alignment"],
["cm_topleftstylefontSize","menu", CaluMath.PM.stylefontSizeLIST, CaluMath.PM.stylefontSizeLIST[0], "Top Left Entry Font Size"], 
//["cm_topleftstylecolor", "menu", CaluMath.PM.ColorArray, "auto", "Top Left Entry Color"], 
CaluMath.PM.DefaultEntriesObject.cm_color("Top Left Entry Color", "cm_topleftstylecolor"),
["cm_topleftstyletextAlign","menu",[["",""],["left","left"],["center","center"],["right","right"]], "", "Top Left Entry Alignment"],
["fontSize","menu", CaluMath.PM.stylefontSizeLIST, CaluMath.PM.stylefontSizeLIST[0], "Entry Font Size"], 
//["color", "menu", CaluMath.PM.ColorArray, "auto", "Entry Color"], 
CaluMath.PM.DefaultEntriesObject.cm_color("Entry Color"),
["textAlign","menu",[["",""],["left","left"],["center","center"],["right","right"]], "", "Entry Alignment"],
["cm_caswindow", "menu", "newwindowlist", "", [["Window","help/individual_help.html#requiredcm_caswindow"], "Table Appears In This Window","same"]],
["cm_insertoption", "menu", [["current point", "n/a"],["insert before", "cm_insertbefore"] ,["insert in", "cm_insertin"],["insert after","cm_insertafter"]], "current point", [["Insert Options","help/individual_help.html#requiredcm_insertoption"], "Table Placement","same"]],
["cm_inserttarget", "menu", '[["n/a", "n/a"]],concat,namedobjectlist', "newwindowlist", "n/a", [["Insert Target","help/individual_help.html#requiredcm_inserttarget"], "Relation of Table To Other Objects","same"]],
CaluMath.PM.DefaultEntriesObject.visibility,
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};

CaluMath.PM.PageMakerdiscretefunctionconstructiontableDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerdiscretefunctionconstructiontableDefault.requiredarray=[
["datatable", "menu", "tablefromdatalist", "", "Data Table"],
CaluMath.PM.DefaultEntriesObject.requiredname("Table",40),
["cm_functionrulelabels", "input", 200,"", "Data For Table", CaluMath.PM.IsNonEmptyString]
];
};

CaluMath.PM.PageMakerdiscretefunctionconstructiontableDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerdiscretefunctionconstructiontableDefault.optionsarray=[
["border", "menu", [["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"]], "2", "Border Width"],
["borderspacing", "menu", [["auto","n/a"],["0","0px"],["1","1px"],["2","2px"],["3","3px"],["4","4px"],["5","5px"],["6","6px"],["7","7px"],["8","8px"],["9","9px"],["10","10px"],["11","11px"],["12","12px"]], "auto", "Space Between Borders"],
["borderstyle", "menu", ["n/a", "none","dotted","dashed","solid","double","groove","ridge","inset","outset"], "none", "Border Style"],
["bordercolor", "menu",  CaluMath.PM.ColorArray, "auto", "Border Color"],
["backgroundcolor", "menu", CaluMath.PM.ColorArray, "auto", "Background Color"],
["cm_firstrowstylefontSize","menu", CaluMath.PM.stylefontSizeLIST, CaluMath.PM.stylefontSizeLIST[0], "First Row Font Size"], 
["cm_firstrowstylecolor", "menu", CaluMath.PM.ColorArray, "auto", "First Row Color Color"], 
["cm_firstrowstyletextAlign","menu",[["",""],["left","left"],["center","center"],["right","right"]], "", "First Row Entry Alignment"],
["cm_firstcolumnstylefontSize","menu", CaluMath.PM.stylefontSizeLIST, CaluMath.PM.stylefontSizeLIST[0], "First Column Font Size"], 
["cm_firstcolumnstylecolor", "menu", CaluMath.PM.ColorArray, "auto", "First Column Color"], 
["cm_firstcolumnstyletextAlign","menu",[["",""],["left","left"],["center","center"],["right","right"]], "", "First Column Entry Alignment"],
["cm_topleftstylefontSize","menu", CaluMath.PM.stylefontSizeLIST, CaluMath.PM.stylefontSizeLIST[0], "Top Left Entry Font Size"], 
["cm_topleftstylecolor", "menu", CaluMath.PM.ColorArray, "auto", "Top Left Entry Color"], 
["cm_topleftstyletextAlign","menu",[["",""],["left","left"],["center","center"],["right","right"]], "", "Top Left Entry Alignment"],
["fontSize","menu", CaluMath.PM.stylefontSizeLIST, CaluMath.PM.stylefontSizeLIST[0], "Entry Font Size"], 
["color", "menu", CaluMath.PM.ColorArray, "auto", "Entry Color"], 
["textAlign","menu",[["",""],["left","left"],["center","center"],["right","right"]], "", "Entry Alignment"],
["cm_caswindow", "menu", "newwindowlist", "", [["Window","help/individual_help.html#requiredcm_caswindow"], "Table Appears In This Window","same"]],
["cm_insertoption", "menu", [["current point", "n/a"],["insert before", "cm_insertbefore"] ,["insert in", "cm_insertin"],["insert after","cm_insertafter"]], "current point", [["Insert Options","help/individual_help.html#requiredcm_insertoption"], "Table Placement","same"]],
["cm_inserttarget", "menu", '[["n/a", "n/a"]],concat,namedobjectlist', "newwindowlist", "n/a", [["Insert Target","help/individual_help.html#requiredcm_inserttarget"], "Relation of Table To Other Objects","same"]],
CaluMath.PM.DefaultEntriesObject.visibility,
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists(),
["cm_domainlabel", "input", 20, "Domain","Label For Domain Choices",CaluMath.PM.IsNonEmptyString],
["cm_codomainlabel", "input", 20, "Codomain","Label For Codomain Choices",CaluMath.PM.IsNonEmptyString],
["cm_ruleslabel", "input", 20, "Function Rule","Label For Function Rules Choices",CaluMath.PM.IsNonEmptyString],
["cm_functionnamelabel", "input", 20, "Enter Function Name:","Label For Entering Function Name",CaluMath.PM.IsNonEmptyString],
["cm_domainoption", "menu",[["First Column", "firstcol"],["Remaining Columns", "notfirstcol"], ["All Entries", "all"]], "First Column", "Domain Choices"],
["cm_codomainoption", "menu",[["First Column", "firstcol"],["Remaining Columns", "notfirstcol"], ["All Entries", "all"]], "Remaining Columns", "Codomain Choices"],
["cm_rulesoption", "menu",[["First Column", "firstcol"],["Remaining Columns", "notfirstcol"], ["All Entries", "all"]], "First Column", "Function Rule Choices"],
["cm_undefinedsymbol", "input", 20, "nothing","Symbol For Undefined Elements",CaluMath.PM.IsNonEmptyString],
["cm_summaryparagraphcolor", "menu", CaluMath.PM.ColorArray, "auto", "Summary Paragraph Color"] 
];
};




CaluMath.PM.PageMakerinserttablerowDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerinserttablerowDefault.requiredarray=[
["tablechoice", "menu", "tablelist", "", "Table"],
["numberofrows", "menu", [["2","2"]], "2", "Number of Rows"],
["insertoption", "menu", [["insert before", "insertbefore"], ["insert after", "insertafter"]], "insert before", "Insert Options"],
["rows", "menu", [["0","0"], ["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"]], "2", "Row Number"]
];
};

CaluMath.PM.PageMakerinserttablerowDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerinserttablerowDefault.optionsarray=[
];
};

CaluMath.PM.PageMakerinserttablecolumnDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerinserttablecolumnDefault.requiredarray=[
["tablechoice", "menu", "tablelist", "", "Table"],
["numberofcolumns", "menu", [["2","2"]], "2", "Number of Columns"],
["insertoption", "menu", [["insert before", "insertbefore"], ["insert after", "insertafter"]], "insert before", "Insert Options"],
["columns", "menu", [["0","0"], ["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"]], "2", "Column Number"]
];
};

CaluMath.PM.PageMakerinserttablecolumnDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerinserttablecolumnDefault.optionsarray=[
];
};

CaluMath.PM.PageMakerdeletetablerowDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerdeletetablerowDefault.requiredarray=[
["tablechoice", "menu", "tablelist", "", "Table"],
["numberofrows", "menu", [["2","2"]], "2", "Number of Rows"],
["rows", "menu", [["0","0"], ["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"]], "2", "Row Number"]
];
};

CaluMath.PM.PageMakerdeletetablerowDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerdeletetablerowDefault.optionsarray=[
];
};

CaluMath.PM.PageMakerdeletetablecolumnDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerdeletetablecolumnDefault.requiredarray=[
["tablechoice", "menu", "tablelist", "", "Table"],
["numberofcolumns", "menu", [["2","2"]], "2", "Number of Columns"],
["columns", "menu", [["0","0"], ["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"]], "2", "Column Number"]
];
};

CaluMath.PM.PageMakerdeletetablecolumnDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerdeletetablecolumnDefault.optionsarray=[
];
};


CaluMath.PM.PageMakertablecellDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakertablecellDefault.requiredarray=[
["borderstyle", "menu", ["n/a", "none","dotted","dashed","solid","double","groove","ridge","inset","outset"], "none", "Border Style"],
["borderwidth", "menu", [["n/a","n/a"],["0","0px"],["1","1px"],["2","2px"],["3","3px"],["4","4px"],["5","5px"],["6","6px"],["7","7px"],["8","8px"],["9","9px"],["10","10px"],["11","11px"],["12","12px"]], "2", "Border Width"],
//["bordercolor", "menu",  CaluMath.PM.ColorArray, "auto", "Border Color"],
CaluMath.PM.DefaultEntriesObject.cm_color("Border Color", "bordercolor"),
//["backgroundcolor", "menu", CaluMath.PM.ColorArray, "auto", "Background Color"],
CaluMath.PM.DefaultEntriesObject.cm_color("Background Color", "backgroundcolor"),
["textalign", "menu", ["left","right","center","justify"], "center", "Horizontal Alignment"],
["verticalalign", "menu", ["top","middle","baseline","bottom"], "middle", "Vertical Alignment"],
["width", "menu", [["auto","n/a"], ["100","100px"],["150","150px"],["200","200px"],["250","250px"],["300","300px"],["350","350px"],["400","400px"],["350","350px"],["400","400px"],["450","450px"],["500","500px"],["550","550px"],["600","600px"], ["650","650px"],["700","700px"],["750","750px"],["800","800px"],["850","850px"],["900","900px"],["950","950px"],["1000","1000px"],["1050","1050px"],["1100","1100px"],["1150","1150px"],["1200","1200px"],["1250","1250px"],["1300","1300px"]], "auto", "Width Width"],
["visibility", "menu", [["visible","n/a"], ["invisible", "hidden"]], "visible", [["Visibility","help/individual_help.html#requiredvisibility"], "Visible When Page Loads?", "same"]]
];
};

CaluMath.PM.PageMakertablecellDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakertablecellDefault.optionsarray=[
];
};

CaluMath.PM.PageMakertablerowDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakertablerowDefault.requiredarray=[
["borderstyle", "menu", ["n/a", "none","dotted","dashed","solid","double","groove","ridge","inset","outset"], "none", "Border Style"],
["borderwidth", "menu", [["n/a","n/a"],["0","0px"],["1","1px"],["2","2px"],["3","3px"],["4","4px"],["5","5px"],["6","6px"],["7","7px"],["8","8px"],["9","9px"],["10","10px"],["11","11px"],["12","12px"]], "2", "Border Width"],
//["bordercolor", "menu", CaluMath.PM.ColorArray, "auto", "Border Color"],
CaluMath.PM.DefaultEntriesObject.cm_color("Border Color", "bordercolor"),
//["backgroundcolor", "menu", CaluMath.PM.ColorArray, "auto", "Background Color"],
CaluMath.PM.DefaultEntriesObject.cm_color("Background Color", "backgroundcolor"),
["textalign", "menu", ["left","right","center","justify"], "center", "Horizontal Alignment"],
["verticalalign", "menu", ["top","middle","baseline","bottom"], "middle", "Vertical Alignment"]
];
};

CaluMath.PM.PageMakertablerowDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakertablerowDefault.optionsarray=[
];
};

CaluMath.PM.PageMakerlistitemDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerlistitemDefault.requiredarray=[
//["backgroundcolor", "menu", CaluMath.PM.ColorArray, "auto", "Background Color"],
CaluMath.PM.DefaultEntriesObject.cm_color("Background Color", "backgroundcolor"),
["textalign", "menu", ["left","right","center","justify"], "center", "Horizontal Alignment"]
];
};

CaluMath.PM.PageMakerlistitemDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerlistitemDefault.optionsarray=[
];
};


CaluMath.PM.PageMakerlistDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerlistDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.requiredname("List",40),
["items", "menu", [["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"]], "2", "Number of Items"]
];
};

CaluMath.PM.PageMakerlistDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerlistDefault.optionsarray=[
["listtype", "menu", [["ordered","ol"],["unordered","ul"],["definition","dl"]], "ordered", "List Type"],
["type", "menu", [["default","n/a"], ["1,2,3", "decimal"], ["a,b,c", "lower-alpha"], ["i,ii,iii", "lower-roman"], ["A,B,C", "upper-alpha"], ["I,II,III", "upper-roman"]], "n/a", "List Marker"],
["position", "menu", [["default","n/a"], ["wrap", "inside"], ["no wrap", "outside"]], "n/a", "List Position"],
["display", "menu", [["visible","n/a"], ["invisible", "none"]], "n/a", [["Visibility","help/individual_help.html#display"], "Visible When Page Loads?", "same"]],
CaluMath.PM.DefaultEntriesObject.cm_caswindow(),
CaluMath.PM.DefaultEntriesObject.cm_insertoption(),
["cm_inserttarget", "menu", '[["n/a", "n/a"]],concat,namedobjectlist', "newwindowlist", "n/a", "Insert Target"],
["maketext", "menu", [["yes", "yes"],["no", "no"]],"yes", "Create Text Entries"],
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};


CaluMath.PM.PageMakerinsertlistitemDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerinsertlistitemDefault.requiredarray=[
["listchoice", "menu", "listlist", "", "List"],
["numberofitems", "menu", [["2","2"]], "2", "Number of Items"],
["insertoption", "menu", [["insert before", "insertbefore"], ["insert after", "insertafter"]], "insert before", "Insert Options"],
["items", "menu", [["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"]], "2", "Item Number"]
];
};

CaluMath.PM.PageMakerinsertlistitemDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerinsertlistitemDefault.optionsarray=[
];
};

CaluMath.PM.PageMakerdeletelistitemDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerdeletelistitemDefault.requiredarray=[
["listchoice", "menu", "listlist", "", "List"],
["numberofitems", "menu", [["2","2"]], "2", "Number of Items"],
["items", "menu", [ ["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"]], "2", "Item Number"]
];
};

CaluMath.PM.PageMakerdeletelistitemDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerdeletelistitemDefault.optionsarray=[
];
};


CaluMath.PM.PageMakerlinkDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerlinkDefault.requiredarray=[
["address", "input", 50,"", "Address", CaluMath.PM.IsNonEmptyString],
["description", "input", 50,"", "Description", CaluMath.PM.IsNonEmptyString],
["exactaddress", "menu", [["adjust address","no"],["exact address", "yes"]], "adjust address", "Exact Address?"],
CaluMath.PM.DefaultEntriesObject.requiredname("Link",40)
];
};

CaluMath.PM.PageMakerlinkDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerlinkDefault.optionsarray=[
CaluMath.PM.DefaultEntriesObject.cm_caswindow(),
CaluMath.PM.DefaultEntriesObject.cm_insertoption(),
["cm_inserttarget", "menu", '[["n/a", "n/a"]],concat,namedobjectlist', "newwindowlist", "n/a", "Insert Target"],
CaluMath.PM.DefaultEntriesObject.visibilitywithstyle(),
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};

CaluMath.PM.PageMakerlinkDefault.textstring='There are two ways to add a link to your document: <br><br> 1. Use the button next to the Address field to search on your computer for the web page you want to link to. The web page must be somewhere inside the CaluMath folder. Then choose adjust address in the Exact Address? field. CaluMath keeps track of where the web page is so the link is correctly constructed. Give your link a name so CaluMath can keep track of it. In the Description field, write the text you want the user to click on to follow the link. This will normally be displayed in blue and underlined.<br><br>2. In the Address field, enter the entire web address of the page you want to link to. It does not have to be contained in the CaluMath folder. Then choose exact address in the Exact Address? field. Give your link a name so CaluMath can keep track of it.  In the Description field, write the text you want the user to click on to follow the link. This will normally be displayed in blue and underlined. <br><br> For security purposes, the address of the link is not displayed in the Address field when you edit a link. If you leave the Address field blank, the previous address will be used. Only enter a new address if you want to link to a different web page.';

CaluMath.PM.PageMakerchangelinksDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerchangelinksDefault.requiredarray=[
["oldaddress", "menu", "linkslist", "", "Old Link"],
["address", "input", 50,"", "Address", CaluMath.PM.IsNonEmptyString],
["description", "input", 50,"", "Description", CaluMath.PM.IsNonEmptyString],
["exactaddress", "menu", [["adjust address","no"],["exact address", "yes"]], "adjust address", "Exact Address?"]
];
};

CaluMath.PM.PageMakerchangelinksDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerchangelinksDefault.optionsarray=[
];
};

CaluMath.PM.PageMakerchangeimagesDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerchangeimagesDefault.requiredarray=[
["oldaddress", "menu", "imageslist", "", "Old Image"],
["address", "input", 50,"", "Address", CaluMath.PM.IsNonEmptyString],
["description", "input", 50,"", "Description", CaluMath.PM.IsNonEmptyString],
["exactaddress", "menu", [["adjust address","no"],["exact address", "yes"]], "adjust address", "Exact Address?"]
];
};

CaluMath.PM.PageMakerchangeimagesDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerchangeimagesDefault.optionsarray=[
];
};

 

CaluMath.PM.PageMakerimageDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerimageDefault.requiredarray=[
["address", "input", 50,"", "Address", CaluMath.PM.IsNonEmptyString],
["exactaddress", "menu", [["adjust address","no"],["exact address", "yes"],], "adjust address", "Exact Address?"],
CaluMath.PM.DefaultEntriesObject.requiredname("Image",40)
];
};

CaluMath.PM.PageMakerimageDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerimageDefault.optionsarray=[
CaluMath.PM.DefaultEntriesObject.cm_caswindow(),
CaluMath.PM.DefaultEntriesObject.cm_insertoption(),
["cm_inserttarget", "menu", '[["n/a", "n/a"]],concat,namedobjectlist', "newwindowlist", "n/a", "Insert Target"],
CaluMath.PM.DefaultEntriesObject.visibilitywithstyle(),
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};

CaluMath.PM.PageMakerimageDefault.textstring='There are two ways to select an image to be included in your document: <br><br> 1. Use the button next to the Address field to search on your computer for an image. The image must be somewhere inside the CaluMath folder. Then choose adjust address in the Exact Address? field. Give your image a name. <br><br>2. In the Address field, enter the entire web address of the image. It does not have to be contained in the CaluMath folder. Then choose exact address in the Exact Address? field. Give your image a name. <br><br> If you edit an image, for security purposes, the address of the image is not displayed in the Address field. If you leave the Address field blank, the previous address will be used. Only enter a new address if you want to use a different image.';


CaluMath.PM.PageMakeriframeDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakeriframeDefault.optionsarray=[
];
};

CaluMath.PM.PageMakeriframeDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakeriframeDefault.requiredarray=[
CaluMath.PM.DefaultEntriesObject.requiredname("IFrame",40),
["cm_caswindow", "menu", "newwindowlist", "", [["Window","help/individual_help.html#requiredcm_caswindow"], "Iframe Appears In This Window","same"]],
["cm_insertoption", "menu", [["current point", "n/a"],["insertin", "cm_insertin"]], "current point", [["Insert Options","help/individual_help.html#requiredcm_insertoption"], "Iframe Placement","same"]],
["cm_inserttarget", "menu", '[["n/a", "n/a"]],concat,staticobjectlist', "newwindowlist", "n/a", [["Insert Target","help/individual_help.html#requiredcm_inserttarget"], "Relation of Iframe To Target Object","same"]],
["width", "menu", [ ["100","100px"],["150","150px"],["200","200px"],["250","250px"],["300","300px"],["350","350px"],["400","400px"],["350","350px"],["400","400px"],["450","450px"],["500","500px"],["550","550px"],["600","600px"], ["650","650px"],["700","700px"],["750","750px"],["800","800px"],["850","850px"],["900","900px"],["950","950px"],["1000","1000px"],["1050","1050px"],["1100","1100px"],["1150","1150px"],["1200","1200px"],["1250","1250px"],["1300","1300px"]], "auto", [["Width","help/individual_help.html#requiredwidth"], "Width In Pixels of Iframe","same"]],
["height", "menu", [["100","100px"],["150","150px"],["200","200px"],["250","250px"],["300","300px"],["350","350px"],["400","400px"],["350","350px"],["400","400px"],["450","450px"],["500","500px"],["550","550px"],["600","600px"], ["650","650px"],["700","700px"],["750","750px"],["800","800px"],["850","850px"],["900","900px"],["950","950px"],["1000","1000px"],["1050","1050px"],["1100","1100px"],["1150","1150px"],["1200","1200px"],["1250","1250px"],["1300","1300px"]], "auto", [["Height","help/individual_help.html#requiredheight"], "Height In Pixels Of Iframe","same"]],
["src", "input", 50,"cm_blank.html", "Source", CaluMath.PM.IsNonEmptyString],
["frameborder", "menu",[["no","0"],["yes","1"]], "0", "Border"],
["scrolling", "menu", [["yes","yes"], ["no", "no"]], "yes", "Scrolling"],
CaluMath.PM.DefaultEntriesObject.cm_onlyforlists()
];
};

CaluMath.PM.PageMakeriframeDefault.textstring='An Iframe is a box in a web page that contains another web page. Give the Iframe a name, choose the width and height in pixels, whether you want a border around it or not, and whether you want scrollbars to appear inside the iframe. Enter the web address of the iframe in Source, either as a complete URL or relative to the address of the page you are constructing. You have the choice of putting an iframe inside certain other objects, such as non-dynamic Tables or Iframe Containers.<br><br> An example: Iframe Name=MyIframe, Source=http://www.yahoo.com, Width=350, Height=350, Border=yes, Scrolling=yes, produces a 350x350 pixel box that contains the Yahoo home page.<br><br> If you use a relative address, it should be relative to where you are going to save your web page. This may cause it to not load properly when you are viewing the page in the CaluMath Page Maker, because the address will not be correct relative to the CaluMath Page Maker. You can alleviate this mistake by temporarily putting a copy of the document you want to appear in your iframe in the cm_pagemaker folder.<br><br> Iframes can only be constructed at the time the web page loads. You cannot construct an iframe as a result of user interaction with the page, for example, when the user clicks a button.<br><br><b>A Very Important Use Of IFrames:</b> In CaluMath all axes are drawn inside an iframe. This is done automatically and normally you never need to think of this and never need to construct an iframe yourself for a set of axes. <b>However</b> if you want to construct a set of axes after the web page loads, for example, in response to user interaction with the page, then you must create the iframe first (when the page loads), so that it is ready to have a set of axes drawn in it. In this case, you must choose Source=cm_blank.html, Border=no, Scrolling=no. The iframe will appear as a blank space in the web page after the page loads. You may want to hide the iframe, by first constructing an Iframe Container, and choosing Visibility=invisible for the Iframe Container. Then construct the iframe that will hold your set of axes, choose Insert Option=insert in, and select the name of the Iframe Container in the Insert Target field. When you eventually construct the set of axes, select the name of the Iframe you constructed in the Window field for the set of axes. <br><br> It is important to emphasize that axes that appear as the page load are constructed without using iframes-you just construct the set of axes.'; 

CaluMath.PM.PageMakeraddtonewwindowDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakeraddtonewwindowDefault.requiredarray=[
["newwindow", "menu", CaluMath.PM.PlotlistObject.newwindowlist.slice(1),CaluMath.PM.PlotlistObject.newwindowlist[1][0] , "Window"]
];
};

CaluMath.PM.PageMakeraddtonewwindowDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakeraddtonewwindowDefault.optionsarray=[
];
};

CaluMath.PM.PageMakerwebpagenameDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerwebpagenameDefault.requiredarray=[
["name", "input", 100, CaluMath.PM.PageName, "Web Page Name",CaluMath.PM.IsNonEmptyString]
//CaluMath.PM.DefaultEntriesObject.requiredname("Web Page",40)
];
};

CaluMath.PM.PageMakerwebpagenameDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerwebpagenameDefault.optionsarray=[
];
};

CaluMath.PM.PageMakerwebpagenameDefault.textstring='This will create a name for the web page you are constructing. This name appears in the title bar at the top of the window where the web page appears. It does not appear in the document itself, and does not replace giving a title to your web page (which does appear in your web page).<br><br> Because this name only appears in the title bar at the top of the window and is used in no other name by CaluMath, you can include spaces in the Web Page Name. You will be warned that your name may not be correct, however just click OK to continue.<br><br> Name Web Page has one unusual characteristic. You cannot used the Edit Page link to edit a Name Web Page entry. Instead, simply constuct a new Name Web Page; this will overwrite the old Name Web Page value.';


CaluMath.PM.PageMakerimportpageDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerimportpageDefault.requiredarray=[
["address", "input", 50,"", "Address", CaluMath.PM.IsNonEmptyString],
["exactaddress", "menu", [["adjust address","no"],["exact address", "yes"],], "adjust address", "Exact Address?"]
];
};

CaluMath.PM.PageMakerimportpageDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerimportpageDefault.optionsarray=[
];
};

CaluMath.PM.PageMakercoordinatesDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakercoordinatesDefault.requiredarray=[
["definedfunction", "menu", "allfunctionslist", "", "Function"],
["type", "menu", CaluMath.PM.COORDINATESOPTIONSLIST, CaluMath.PM.COORDINATESOPTIONSLIST[0], "Type"],
["evaluation", "menu", CaluMath.PM.COORDINATESTYPELIST, CaluMath.PM.COORDINATESTYPELIST[0], "Evaluation"],
["value", "input", 30, "", "X Value", CaluMath.PM.IsNonEmptyStringReplaceAll],
["yvalue", "input", 30, "", "Y Value", CaluMath.PM.IsNonEmptyStringReplaceAll],
//["name", "input", 10, "", "Name", CaluMath.PM.IsValidName]
CaluMath.PM.DefaultEntriesObject.requiredname("Coordinates")
];
};

CaluMath.PM.PageMakercoordinatesDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakercoordinatesDefault.optionsarray=[
];
};


CaluMath.PM.PageMakerclipboardplaceholderDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerclipboardplaceholderDefault.requiredarray=[
];
};

CaluMath.PM.PageMakerclipboardplaceholderDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerclipboardplaceholderDefault.optionsarray=[
];
};

CaluMath.PM.PageMakerclipboardDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerclipboardDefault.requiredarray=[
];
};

CaluMath.PM.PageMakerclipboardDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerclipboardDefault.optionsarray=[
];
};


CaluMath.PM.PageMakeractivateslidingscaleDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakeractivateslidingscaleDefault.requiredarray=[
//CaluMath.PM.DefaultEntriesObject.newplot1(""),
["slidingscale", "menu", "slidingscalelist", "", "Activate This Sliding Scale"]
];
};

CaluMath.PM.PageMakeractivateslidingscaleDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakeractivateslidingscaleDefault.optionsarray=[
];
};

CaluMath.PM.PageMakerdeactivateslidingscaleDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerdeactivateslidingscaleDefault.requiredarray=[
//CaluMath.PM.DefaultEntriesObject.newplot1(""),
["slidingscale", "menu", "slidingscalelist", "", "Deactivate This Sliding Scale"]
];
};

CaluMath.PM.PageMakerdeactivateslidingscaleDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerdeactivateslidingscaleDefault.optionsarray=[
];
};


CaluMath.PM.PageMakerdragroutineDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakerdragroutineDefault.requiredarray=[
//CaluMath.PM.DefaultEntriesObject.newplot1(""),
CaluMath.PM.DefaultEntriesObject.newplot(""),
["routine", "menu", "routinelist","" , "Routine For Dragged Object"],
["cm_whentoexectue", "menu", [["After Dragging Object", "notcontinuous"],["While Dragging Object","continuous"],["At Beginning","atbeginning"]],"After Dragging Object", "When To Execute Routine"]
//["cm_isslidingscale", "menu", [["This Is A Sliding Scale", "yes"],["This Is Not A Sliding Scale","no"]],"This Is Not A Sliding Scale", "Is This A Sliding Scale?"],
//["graph", "menu", '[["none", "none"]],concat,draggedobjectslist', "newplotlist", "If So, Choose Sliding Scale"]
//["graph", "menu", '[["none", "none"]],concat,slidingscalelist', "newplotlist", "If So, Choose Sliding Scale"]
//["slidingscale", "menu", 'slidingscalelist', "", "If So, Choose Sliding Scale"]
];
};

CaluMath.PM.PageMakerdragroutineDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakerdragroutineDefault.optionsarray=[
];
};


CaluMath.PM.PageMakeranimationroutineDefault.makerequiredarray=function(){
   return CaluMath.PM.PageMakeranimationroutineDefault.requiredarray=[
//CM_DefaultEntriesObject.newplot(""),
//["animationplot", "menu", "animationplotlist", "newplotlist", "Animations"],
["animationplot", "menu", "animationplotlist", "", "Animations"],
["routine", "menu", "routinelist","" , "Routine For Animation"]
];
};

CaluMath.PM.PageMakeranimationroutineDefault.makeoptionsarray=function(){
   return CaluMath.PM.PageMakeranimationroutineDefault.optionsarray=[
];
};


}; //This is the end of the CM_TopWindow conditional from the top of the page. The things below have to do with CaluMath.PM.PageMakertextDefault which must also exist in Special-Text Text windows.  


CaluMath.PM.PageMakertextDefault=CaluMath.PM.PageMakerhtmltextDefault;

CaluMath.PM.PageMakerhtmltextDefault.optionsarray=[
["stylecolorSELECT", "menu", [" "," "]," ", "Font Color"],
["stylefontFamilySELECT", "menu", [" "," "], " ","Font Family"],
["stylebackgroundColorSELECT", "menu", [" "," "]," ", "Background Color" ],
["stylefontSizeSELECT", "menu", [" "," "] ," ", "Font Size"  ],
["stylefontWeightSELECT", "menu", [" "," "], " ", "Bold"  ],
["stylefontStyleSELECT","menu", [" "," "], " ", "Italics" ],
["styletextAlignSELECT","menu", [" "," "]," ", "Alignment" ],
["styledisplaySELECT","menu", [" "," "]," ", "Visibility" ],
["stylewidthSELECT","menu", [" "," "]," ", "Width"], 
["cm_caswindow","menu", [" "," "], " ", "Window" ],
["cm_insertoption", "menu", [" "," "], " ", "Insert Options"],
["cm_inserttarget", "menu", [" "," "], " ","Insert Target" ]
]; 

CaluMath.PM.PageMakerhtmltextDefault.requiredarray=[
["tag", "menu", [" "," "], " ", "Text Type"],
["name", "input", 30," ", "Name"]
];      

if(window.CM_TopWindow==window){
//Comment: These are the descriptions of the objects that appear to the right of the Sub-Menu in the CaluMath Page Maker. They only appear in the CM_TopWindow

CaluMath.PM.PageMakertextDefault.description="Create Titles, Section Heads, Paragraphs, and Text. ";
CaluMath.PM.PageMakerlinebreakDefault.description=" Use this to begin a new line in your web page. ";
CaluMath.PM.PageMakerimageDefault.description=" Use this to place an Image in your document. ";
CaluMath.PM.PageMakerlinkDefault.description=" Use this to put a link to a web page in your document. ";
CaluMath.PM.PageMakeriframeDefault.description=" This allows a completely different web page to be inserted into a box in your page. If you want to make a set of axes appear when you click a button, you must first create an iframe and insert the axes inside the iframe.";
CaluMath.PM.PageMakeriframecontainerDefault.description=" When constructing a set of axes that are to be hidden when the page is loaded, the axes must be placed in an Iframe Container. ";
CaluMath.PM.PageMakercm_alertDefault.description=" This is a pop-up window that can be used for such purposes as giving instructions after a button is clicked. It can also be used for warnings. ";
CaluMath.PM.PageMakerwebpagenameDefault.description=" You can choose the name that appears in the menu bar of the web browser when your web page is displayed. ";
CaluMath.PM.PageMakertextstylesheetDefault.description=" This is used to determine the font-size, color, alignment, font family, etc. for all the titles, paragraphs, lists etc. that appear in the page. You can over-ride these values for individual titles, paragraphs, lists, etc. that you create.";


CaluMath.PM.PageMakerdefinedfunctionDefault.description="Used to define Functions such as f(x) = x^2, g(x)=10sin(x) and h(x) = xln(x) ";
CaluMath.PM.PageMakersplitfunctionDefault.description=" Used to define Split Functions. These are functions which assign different values depending on the size of the input. An example is f(x) equals x^2 when x>0, but it equals x^3 if x<=0. ";
CaluMath.PM.PageMakerdefinedconstantDefault.description=" Use this to define Constants, such as A=4, or B is a Nonzero Random Integer between -2 and 10, or C is a Random Number between -3 and 3 rounded to 5 decimal places. ";
CaluMath.PM.PageMakervariablenameDefault.description=" Use this to define Arrays, Strings, or JavaScript Objects. An array is a list of elements, for example [0,1,2,3,4]. Note that arrays are enclosed in square brackets. Strings are lists of characters with no meaning assigned to the characters. To define a String, you enclose it in either single or double quotes. For example, if you define a Constant by A=pi, then A will have the value A=3.1426... If you define the Named Object by A=\"pi\", then A will be the two letters p and i together. No meaning will be assigned them.";
CaluMath.PM.PageMakerdiscretefunctionconstructiontableDefault.description="This is a very specialized object for which no help is available now.";
CaluMath.PM.PageMakerdiscretefunctionfrompointsarrayDefault.description="Enter a double array, whose entries consists of points, and a function is created which assigns to each x coordinate, the corresponding y coordinate. The function is undefined at all values not corresponding to a point. For example, the array [[0,1],[2,5],[-2,3]], defines a function f with the property that f(0)=1, f(2)=5, f(-2)=3, and f is undefined at all other values."

CaluMath.PM.PageMakernewplotDefault.description=" Create a set of Axes. This is required before any of the graphs listed below can be done. There are many options for axes. You can make the horizontal and vertical axes visible or invisible, you can determine the spacing of the ticks along the axes, their color, and the labels that are used for each tick. Constrained Axes will be scaled the same amount in the horizontal and vertical directions. You can provide a label for the horizontal axis, such as time, and a label for the vertical axis, such as distance.";
CaluMath.PM.PageMakerfunctionplotDefault.description="Use this to graph a Function. Note that the function must first be defined, using the Functions And Constants menu, before it can be graphed.";
CaluMath.PM.PageMakerarcplotDefault.description="Use this to draw Circles and Arcs.";
CaluMath.PM.PageMakerlinearplotDefault.description="Use this to draw Line Segments or Polygons such as Triangles. The sides of the Segments and the Vertices can be labeled when the Polygon is created. ";
CaluMath.PM.PageMakeraddlinearplotsegmentDefault.description="Use this to add line segments to a previously constructed Line Segment Graph. This is especially useful if (using the Dragging Objects Menu) you allow a user to drag their mouse over a set of axes and then want to graph the path of the mouse.";
CaluMath.PM.PageMakerpointplotDefault.description="Use this to plot a Point on a set of axes. You can control the size of the dot and whether it is an open or closed dot. ";
CaluMath.PM.PageMakermovepointDefault.description="Use this to move an already created Point to a new position. You can also change the size or color of the Point at the same time.";
CaluMath.PM.PageMakerrectangleplotDefault.description="Use this to plot a Rectangle on a set of axes. The rectangles you create with Make A Rectange have vertical sides and a horizontal top and bottom. Once created, rectangles can be moved, and using the Dragging Objects menus, can be dragged around a set of axes and can even be stretched by having the user click and drag their sides. You can also create a rectangle by using the Line Segment Graph. Rectangles created by using Line Segment Graph do not have to have vertical sides, however, they cannot be moved or dragged once they are created.";
CaluMath.PM.PageMakermoverectangleDefault.description="Use this to move an already created Rectangle to a new position. You can also change the size or color of the Rectangle at the same time.";
CaluMath.PM.PageMakerhighlightDefault.description="Use this to highlight a point on a Graph, Circle or Line that is already plotted. If you graph f(x)=x^2 then highlighting  the point on the graph where x=3 will plot the point (3,9).  ";
CaluMath.PM.PageMakertangentDefault.description="Use this to draw a Tangent line to the graph of a Function or Circle or Arc. Tangent lines are used in calculus and are straight lines that most closely match a graph near a given point.";
CaluMath.PM.PageMakertextplotDefault.description="Use this to place text at a particular location on a set of axes.";
CaluMath.PM.PageMakerlabelvertexDefault.description="You can label an individual angle at the vertex of a polygon. A small arc can also be drawn at the vertex to indicate that it is an angle. You must first construct a polygon by using the Axes and Graphs menu and the Line Segment Graph sub-menu before you can label a vertex.";
CaluMath.PM.PageMakerlabelallverticesDefault.description="You can label all the angles at the vertices of a polygon. A small arc can be drawn at each vertex to indicate that you are labeling angles. All of the vertices have the same options, for example, color. You must first construct a polygon by using the Axes and Graphs menu and the Line Segment Graph sub-menu before you can label a vertex.";
CaluMath.PM.PageMakerlabelplotDefault.description="You can draw a tick as a specific horizontal or vertical coordinate on a set of Axes and choose the label, either a number or symbol,  that should be displayed there.";
CaluMath.PM.PageMakerarrowDefault.description="You can draw an arrow on a graph. You control where the tip of the arrow lies and the horizontal and vertical length, in pixels, of the stem.";
CaluMath.PM.PageMakerbracketDefault.description="You can draw a bracket on a graph, for example, to indicate the change in vertical coordinates between two points. You can add text to the bracket and control where the text appears.";
CaluMath.PM.PageMakerpointbrackets1Default.description="Use this when you want indicate the change in horizontal and vertical coordinates between two points. This would ideally be indicated by drawing a bracket in the horizontal direction, indicating horizontal change, and a bracket in the vertical direction, indicating vertical change. However, many times you will not know the points in advance, for example, because the two points are obtained by the user clicking on a graph. These three types of brackets, used together, provide reaonable brackets or arrows no matter what points are clicked. For example, if the points are close together, an arrow pointing to the points is drawn. If the points have the same horizontal coordinate but differ enough vertically, then a vertical bracket is drawn. If the points differ enough in both the horizontal and vertical coordinates, then horizontal and vertical brackets are drawn.";
CaluMath.PM.PageMakerpointbrackets2Default.description="Use this when you want indicate the change in horizontal and vertical coordinates between two points. This would ideally be indicated by drawing a bracket in the horizontal direction, indicating horizontal change, and a bracket in the vertical direction, indicating vertical change. However, many times you will not know the points in advance, for example, because the two points are obtained by the user clicking on a graph. These three types of brackets, used together, provide reaonable brackets or arrows no matter what points are clicked. For example, if the points are close together, an arrow pointing to the points is drawn. If the points have the same horizontal coordinate but differ enough vertically, then a vertical bracket is drawn. If the points differ enough in both the horizontal and vertical coordinates, then horizontal and vertical brackets are drawn.";
CaluMath.PM.PageMakerpointbrackets3Default.description="Use this when you want indicate the change in horizontal and vertical coordinates between two points. This would ideally be indicated by drawing a bracket in the horizontal direction, indicating horizontal change, and a bracket in the vertical direction, indicating vertical change. However, many times you will not know the points in advance, for example, because the two points are obtained by the user clicking on a graph. These three types of brackets, used together, provide reaonable brackets or arrows no matter what points are clicked. For example, if the points are close together, an arrow pointing to the points is drawn. If the points have the same horizontal coordinate but differ enough vertically, then a vertical bracket is drawn. If the points differ enough in both the horizontal and vertical coordinates, then horizontal and vertical brackets are drawn.";
CaluMath.PM.PageMakerdiscretefunctionplotDefault.description="Use this to plot a function whose graph is a finite set of points. Note that the function must first be defined, using the Functions And Constants menu and the Discrete Function From Points Array sub-menu.";


CaluMath.PM.PageMakerupdatablefunctionplotDefault.description="For the most part, the graphs created using the Axes and Graphs menu are static. They can be created or removed through user interaction with the graph, however they cannot be modified once they are created. However, you may want to create an animation where a graph moves, or you may want to allow a user to drag a graph around on a set of axes. Updatable graphs fill this role. Once they are created, they can be updated to be the graph of a new function. You should only use updatable graphs if you know the graph will be moved, since they require more computer resources than the static graphs created in the Axes and Graphs menu.  Make Updatable Graph creates a graph that can be moved (or updated) to the graph of different functions. When you create an Updatable Graph for a set of axes, the Updatable Graph does not immediately appear. It only appears when you update it to a function graph (using the Update To Function Graph Sub-Menu) or to a tangent graph (using the Update To Tangent Graph Sub-Menu).";
CaluMath.PM.PageMakerupdatefunctionplotDefault.description="Once you create an Updatable Graph and define a function, you use Update To Function Graph to tell the Updatable Graph to be the graph of the function. A typical use is the following. Define the constant A=1, and define the function f(x) = A*x^2. Create an Updatable Graph. Update the graph to the graph of f. The Updatable Graph will be the graph of f(x) = x^2.  Then define A=2 and again update the Updatable Graph to the graph of f. Now the Updatable Graph is the graph of f(x) = 2x^2.";
CaluMath.PM.PageMakerupdateareabetweenfunctionsplotDefault.description="If you create an Updatable Graph and define two function, you can use Update To Area Between Functions to have the Updatable Graph fill in the area between the graphs of the two functions. Note that the two functions themselves do not need to be graphed; the Updatable Graph shades in the area between the two functions.  ";
CaluMath.PM.PageMakerupdatetangentplotDefault.description="If you graph a function in a set of axes, you can update an already created Updatable Graph to a tangent line to the graph of the function. One possible use is if you want to draw tangent lines at different points. You can do this with one Updatable Graph by updating it (using Update To Tangent Graph) to tangent lines at different points on the graph of the function.";
CaluMath.PM.PageMakerupdateblanksegmentsDefault.description="Updatable Functions often need to be updated quickly, since they may be used when a graph is dragged around a set of axes, so Updatable Graphs often do not display undefined parts of a graph correctly. For example, an Updatable Graph that is updated to the function f(x) = tan(x), will connect the very positive points to the left of \u03C0/2 and the very negative points to the right of \u03C0/2. Using Update With Blank Segments, you can force parts of updated graphs to be blank. This is also useful for the graphs of splitfunctions, where there are jumps between sections of the graph.";

CaluMath.PM.PageMakeranimationplotDefault.description="There are two types of animations. For the first type, a graphic object is moved around on a set of axes. The second type is more like a slideshow; each \"frame\" lasts longer, and instead of moving a graphic object around, a different scenario (for example, a graph or geometric figure) is displayed. Animation Plot can be used to create either type of Animation on an already constructed set of Axes.";
CaluMath.PM.PageMakerstartbuttonDefault.description="Creates the Start Button for an Animation. This causes the Animation to either begin, or to continue from the last position at which it was stopped.";
CaluMath.PM.PageMakerstopbuttonDefault.description="Creates the Stop Button for an Animation.";
CaluMath.PM.PageMakerresetbuttonDefault.description="Creates the Reset Button for an Animation. Clicking this Button initializes the Animation. For example, if a user plays the animation, clicking the Reset Button causes the Animation to be set up again at the beginning. When the user then clicks the Start Button, the animation plays from the beginning.";
CaluMath.PM.PageMakerstepbuttonDefault.description="Clicking this button causes the Animation to move one frame at a time.";
CaluMath.PM.PageMakerincreasespeedbuttonDefault.description="Clicking this causes the Animation to be played more quickly.";
CaluMath.PM.PageMakerdecreasespeedbuttonDefault.description="Clicking this causes the Animation to be played more slowly.";
CaluMath.PM.PageMakerchangedirectionbuttonDefault.description="Clicking this causes the Animation to change direction.";
CaluMath.PM.PageMakerallanimationbuttonDefault.description="This allows all of the above Animation Buttons to be created at one time. It saves the page designer the time of having to create each button individually.";
CaluMath.PM.PageMakeranimationoutputDefault.description="Suppose you have an animation of a falling body. As the object is falling, you can use an Animation Output Text Box to display information such as the time, the speed of the object, or its height.";
CaluMath.PM.PageMakercompositeanimationDefault.description="Suppose you have individual Animations on different sets of Axes. A Composite Animation  links all of these to one set of controls, therefore when the user clicks on the Start Button, the Animations in all of the Axes begin playing. You only need this if you are constructing animations in different axes that you want to be controlled together. If you want several animations to be played on the same set of Axes, then use Animation Plot.";
CaluMath.PM.PageMakernameanimationvalueDefault.description="This allows you to give a name to the parameter controlling the animation. This is useful, for example, if you want to determine the point at which the user stopped an animation. To use this, you must first create a Routine, and have this be a step in the Routine. You also must use the Routine For Animation sub-menu below to associate the Routine to the Animation.";
CaluMath.PM.PageMakeranimationroutineDefault.description="This is used mostly for the slideshow type of animation described above under the Animation Plot sub-menu. Construct a Routine that you want executed after each step of the animation and use Routine For Animation to associate it to an animation to enusre it gets executed.";

CaluMath.PM.PageMakertangentclickbuttonDefault.description="When the user clicks on the Tangent Button, the user is instructed to click on a graph. At the point where the user clicks, a tangent line is drawn. ";
CaluMath.PM.PageMakerhighlightclickbuttonDefault.description="When the user clicks on the Highlight Button, the user is instructed to click on a graph. At the point where the user clicks, a the point is highlighted. ";
CaluMath.PM.PageMakerpointclickbuttonDefault.description="When the user clicks on the Point Button, the user is instructed to click on a set of Axes. At the point where the user clicks, a point is plotted. ";
CaluMath.PM.PageMakerremoveclickbuttonDefault.description="When the user clicks on the Remove Graph Button, the user is instructed to click on a graph. The graph the user clicks on is removed.";
CaluMath.PM.PageMakerendremoveclickbuttonDefault.description="When the user clicks on the Remove Graph Button, it stops the action of the Remove Graph Button. Therefore if the user clicks on a set of Axes, graphs are no longer removed.";
CaluMath.PM.PageMakercalculatorbuttonDefault.description="When the user clicks on the Calculator Button, the user is instructed to enter a mathematical expression in the Input Box. When the user then clicks on the Enter Button, the expression is evaluated and the result apperars in the Results Box. This is a full functioning calculator. For example, expression such as 3*sin(pi/4)+e^3 will be numerically evaluated.";
CaluMath.PM.PageMakerjavascriptbuttonDefault.description="When the user clicks on the JavaScript Button, the user is instructed to enter a JavaScript expression in the Input Box. When the user then clicks on the Enter Button, the expression is evaluated and the result apperars in the Results Box.";
CaluMath.PM.PageMakerenterbuttonDefault.description="What occurs when the user clicks on the Enter Button depends on what occurred before. If the user previously clicked the Calculator Button, then clicking the Enter Button evaluates the expression entered in the Input Box as a calculator would. If the user previously clicked the JavaScript Button, then clicking the Enter Button evaluates the JavaScript commands entered in the Input Box.";
CaluMath.PM.PageMakerinputDefault.description="A Text Box that the user inputs data into. When used in conjunction with the Calculator Button, the data entered in the Input Box is evaluated as if it were entered in a calculator and the result is placed in the Results Box. When used in conjunction with the JavaScript Button, the commands entered in the Input Box are executed.";
CaluMath.PM.PageMakeroutputDefault.description="A Text Box that displays results of user interaction with a graph. As an option, the coordinates of points that the user clicks on can be placed here.";
CaluMath.PM.PageMakerselectDefault.description="A drop down menu that contains a list of all of the graphs drawn on a set of Axes. When the user clicks a Tangent Button or Highlight Button, the graph that is chosen in the Graph Menu is the one that the user can click on to draw tangent lines or highlight points.";

CaluMath.PM.PageMakerbuttonDefault.description="Construct a Button. After constructing the Button, you need to construct a Button Action. The items added to the Button Action will be constructed or executed when the Button is clicked.";
CaluMath.PM.PageMakerclickbuttonDefault.description="A Click On Graph Button is a special type of Button. Its purpose is to prepare a set of Axes to receive user clicks. When constructing the Click On Graph Button, you determine how many times to allow the user to click on the Axes.  After constructing the Click On Graph Button, you need to construct two Button Actions. The items added to one Button Action will be constructed or executed when the Button is clicked. Typically this will be an instruction message informing the user that they are to click on a set of Axes. The items added to the other Button Action will be constructed or executed when the user clicks on the Axes.";
CaluMath.PM.PageMakerbuttonactionDefault.description="A Button Action contains the items you want to be created or executed in response to a user clicking on a button. There are two types of Button Actions. For both Buttons and Click On Graph Buttons there is a Button Action that takes place when the Button is clicked. When you create the Button Action, it is automatically given the name of the button with the suffix _ButtonAction. Click On Graph Buttons have an additional Button Action that occurs when the user clicks on a graph. The name for this Button Action is the name of the Button with the suffix _ClickAction.";
CaluMath.PM.PageMakeraddtobuttonactionDefault.description="When you create a Button Action, you add items to it. These items are executed when the user clicks on the Button, or in the case of Click Buttons, when the user clicks on a set of Axes. Many times, after you finish the Button Action, you may realize that you want to add other items to the Button Action. This can be accomplished using the Add To Button Action.";
CaluMath.PM.PageMakernameclickedpointDefault.description="This is only used as part of a Button Action for a Click On Graph Button. When the user clicks on a set of Axes, the point is given the name you choose using Name Clicked Point. For example if the user clicks on the point [3,4] and you name the point MyPoint, then MyPoint equals the Array [3,4]. Remember that Arrays are lists. Therefore MyPoint[0] is the first entry of the array and MyPoint[1] is the second entry, so MyPoint[0]=3 and MyPoint[1]=4. As a convenience, the names MyPoint.x and MyPoint.y are created and given the values of the x and y coordinates of the point respectively, so MyPoint.x=3 (the x coordinate) and MyPoint.y=4 (the y coordinate).";
CaluMath.PM.PageMakerbuttonactionnextDefault.description="This applies only to Click On Graph Buttons. When you create a Click On Graph Button, you determine how many times you want the user to click on the Axes. You also create a Button Action which consists of the items that are executed when the user clicks on the graph. You have the choice of having all of the items in the Button Action executed each time the user clicks on the Axes, or having some of the items executed after the first click, others after the second click, and so on. To do this, you need to indicate in the Button Action that you want the execution of the items in the Button Action to stop until the next time the user clicks on the graph. This is accomplished by the use of the Button Action Next Click. The items in the Button Action are executed until the Button Action Next Click is reached. The next time the user clicks on the Axes, the items after the Button Action Next Click are executed until a new Button Action Next Click is reached. For example, suppose a Button Action contains the following items: Tangent Graph, Button Action Next Click, Highlight A Point, Text Plot, Button Action Next Click, Tangent Graph. When the user clicks on the graph a tangent line is drawn. The second time the user clicks, a point on the graph is highlighted and some text is placed on the axes. The third time the user clicks on the graph, a tangent line is drawn.";
CaluMath.PM.PageMakerdeactivateclickableaxesDefault.description="When you create a Click On Graph Button, you determine how many times the user is allowed to click on a set of axes. Sometimes, you will not know how many times they will need to click, for example, if each time they click a point is plotted, you may want to allow them to keep clicking until they are satisfied with the point. Once they are satisfied with the point, you no longer want them to click on the axes again.  In this case, it is helpful to created a button that the user clicks when they are finished clicking on the axes. An item in this button's Button Action should be Deactivate Clicking On Axes.";
CaluMath.PM.PageMakerinputtextDefault.description="Creates a Text Box, namely, a box in which the user can type something. The thing the user types can be accessed by means of the Accessing Values Menu. You can also place text or numbers in the Text Box by means of the Accessing Values Menu.";
CaluMath.PM.PageMakerinputareaDefault.description="Creates a Text Area, namely, a box in which the user can type something. The diffence between a Text Box and a Text Area is that Text Areas can have an arbitrary number of rows while a Text Box is only one row long. The thing the user types in a Text Area can be accessed by means of Accessing Values Menu. You can also place text or numbers in the Text Area by means of the Accessing Values Menu.";
CaluMath.PM.PageMakerboxesDefault.description="Used to create Check Boxes and Radio Buttons. The difference between the two is that multiple items can be checked in Check Boxes, however only one item can be selected in a set of Radio Buttons. If you create a Check Box or Radio Button, the entries are indexed starting with 0; therefore the entries of a Check Box with three options will have indices 0, 1, and 2. The indices checked by the user can be accessed by means of the Accessing Values Menu. You can also check or uncheck boxes by means of the Accessing Values Menu.";
CaluMath.PM.PageMakerdropdownmenuDefault.description="Used to create a Drop Down Menu. The entries in the Drop Down Menu are indexed starting with 0; therefore the entries of a Drop Down Menu with three options will have indices 0, 1, and 2. The index selected by the user can be accessed by means of the Accessing Values Menu. You can also select an entry in a Drop Down Menu by means of the Accessing Values Menu.";
CaluMath.PM.PageMakerchangebuttontypeDefault.description="This is used if you created a Button, but later realize that it should be a Click Button or vice-versa.";
CaluMath.PM.PageMakerendinsertionarrayDefault.description="This is used if, during a Button Action, you clicked OK in a pop up window that said Continue Button Action, but realize that you don't want to add more items to the Button Action.";

CaluMath.PM.PageMakeractivatecapturedragpathDefault.description="This activates a set of axes to be prepared for the user to drag their cursor over the axes. When the user does, CaluMath keeps track of the points the cursor is dragged over. Typically this is used to create a graph of the points where the user dragged their mouse. To use Activate Capture Drag Path, you also need to construct a Routine that is executed after the user finishes dragging their mouse on the axes. One item in the routine should be Name Dragged Value (from the Dragging Objects sub-menu). This gives you both the final point the user moved their mouse to and an array of all the points in the path of the mouse. Finally, you need to associate the Routine to the Activate Capture Drag Path by using Routine For Dragging in the Dragging Objects sub-menu. You should look at the help button in the Activate Capture Drag Path window for more details.";
CaluMath.PM.PageMakerdeactivatecapturedragpathDefault.description="This stops CaluMath from keeping track when a user drags their cursor over a set of axes. Typically, after the user is done dragging their cursor over a set of axes, a routine (designed by you) is executed (perhaps which creates a graph based on where the user dragged the cursor). After that, you do not want the user to keep dragging their cursor over the graph. One way to accomplish this is to have the user click a button when they are done dragging. The Button Action for the button deactivates the Capture Drag Path.";
CaluMath.PM.PageMakeractivatedragpointDefault.description="This activates the ability of the user to drag previously constructed Points around on a set of axes. When the user does, CaluMath constantly reports the coordinates of the point as it is dragged. You access these coordinates by using the Name Dragged Value sub-menu. Once you have the coordinates, you can create a Routine that uses the coordinates to, for example, update a graph to a new position. You associate the Routine to the points you are dragging by means of the Routine For Dragging sub-menu.";
CaluMath.PM.PageMakerdeactivatedragpointDefault.description="This stops the user from dragging points that they previously were able to drag.";
CaluMath.PM.PageMakeractivatedragrectangleDefault.description="This activates the ability of the user to drag previously constructed Rectangles around on a set of axes. When the user does, CaluMath constantly reports the coordinates of the Rectangle as it is dragged. You access these coordinates by using the Name Dragged Value sub-menu. Once you have the coordinates, you can create a Routine that uses the coordinates to, for example, update a graph to a new position. You associate the Routine to the points you are dragging by means of the Routine For Dragging sub-menu.";
CaluMath.PM.PageMakerdeactivatedragrectangleDefault.description="This stops the user from dragging Rectangles that they previously were able to drag.";
CaluMath.PM.PageMakeractivatestretchrectangleDefault.description="This activates the ability of the user to stretch previously constructed Rectangles by dragging their sides. When the user does, CaluMath constantly reports the coordinates of the Rectangle as it is stretched. You access these coordinates by using the Name Dragged Value sub-menu. Once you have the coordinates, you can create a Routine that uses the coordinates to, for example, perform a calculation based on the position of the dragged side of the Rectangle. You associate the Routine to the points you are dragging by means of the Routine For Dragging sub-menu.";
CaluMath.PM.PageMakerdeactivatestretchrectangleDefault.description="This stops the user from dragging the sides of Rectangles that they previously were able to drag.";
CaluMath.PM.PageMakeractivateviewrectangleDefault.description="This allows the user to click their mouse down on a point on a set of axes and then drag their mouse over the graph. As they do, a rectangle with corners at the original point and the current point is created. As they drag their cursor, the dimensions of the rectangle change. Unlike other dragging constructions, you cannot associate a Routine to a Activate Construct Rectangle By Dragging that will do something while the rectangle is being created. Once the Rectangle has been constructed however, you can access its coordinates and use them in any manner you wish.";
CaluMath.PM.PageMakerdeactivateviewrectangleDefault.description="This stops the user from creating a rectangle by dragging.";
CaluMath.PM.PageMakerslidingscaleDefault.description="Used to create a Sliding Scale. The user can move a \"lever\" on the sliding scale. As the user moves the lever, CaluMath reports the position of the lever so a Routine can cause something to happen based on where the lever moves.";
CaluMath.PM.PageMakeractivateslidingscaleDefault.description="This allows the user to drag the lever on a Sliding Scale. As they drag the lever, CaluMath constantly reports the poition of the lever. You access the position of the lever by using the Name Dragged Value sub-menu. Once you have the position, you can create a Routine that uses the coordinates to, for example, update a graph based on the position of the lever.  You associate the Routine to the lever by means of the Routine For Dragging sub-menu.";
CaluMath.PM.PageMakerdeactivateslidingscaleDefault.description="This stops the user from being able to move the lever on a Sliding Scale.";
CaluMath.PM.PageMakernamedraggedvalueDefault.description="This captures the information about dragging for the above mentioned dragging techniques. Once the value is named, it can be used in a Routine to do something based on the position of the dragged object.";
CaluMath.PM.PageMakerdragroutineDefault.description="When you allow the user to drag an object, you also (separately) create a Routine which contains all of the steps you want executed either while the object is being dragged, before the object is dragged, or after the object is done being dragged. Usually, one of the first steps in the routine is use Name Dragged Value to capture the coordinates of the dragged object. Then the Routine would normally update a graph based upon the coordinates or do some calculation involving the coordinates. You use Routine For Dragging to associate the Routine to the things being dragged, in other words, while the object is being dragged the Routine For Dragging tells CaluMath to execute the Routine that is associated to the dragged objects.";

CaluMath.PM.PageMakernewwindowDefault.description="Used to create a New Window. You can think of the New Window as a container. The items you add to the New Window will be placed in the New Window.";
CaluMath.PM.PageMakeraddtonewwindowDefault.description="After you construct a New Window you may find that you want to add more items to it. You can use the Add To New Window menus to add items to a New Window.";
CaluMath.PM.PageMakerendinsertionarrayDefault.description="This is used if, during a New Window, you clicked OK in a pop up window that said Continue New Window, but realize that you don't want to add more items to the New Window.";

CaluMath.PM.PageMakertablefromdataDefault.description=" Used to construct a table from data entered as a list (actually a double array). The entered information consists of an array, where each entry is an array consisting of a row of the table. For example, the array [[\"Person\",\"Number\"], [\"Mary\", 3]] yields a table whose top left entry is Person, top right entry is Number, bottom left entry is Mary and bottom right entry is 3. Note that, except for the number 3, each entry is a String, so it is enclosed in quotes. You cannot use this to create a table that contain non-text entries, for example you cannot have a set of axes be an entry in the table.";
CaluMath.PM.PageMakerfunctiontableDefault.description="Function Tables list a range of values of a variable, spaced at regular intervals, and the values functions assign to those variable values.";
CaluMath.PM.PageMakertableDefault.description="Used to create a Table. The rows and columns of the table are numbered starting with 0.  If you name the table MyTable and give it a size of 2 rows and 2 columns, then automatically the values MyTableR0C0,MyTableR0C1,MyTableR1C0, and MyTableR1C1 are created. These to the top left, top right, bottom left and bottom right entries respectively. The table created is blank; you enter data in the table by creating other objects and using fields such as Insert Option and Insert Target to place them in the table. The Table sub-menu is the only way to place a non-text item, such as a set of Axes or a Link, inside a table.";
CaluMath.PM.PageMakerinserttablerowDefault.description="Used to insert a row in a table. This can only be used with tables constructed with the Table sub-menu.";
CaluMath.PM.PageMakerinserttablecolumnDefault.description="Used to insert a columnn in a table. This can only be used with tables constructed with the Table sub-menu.";
CaluMath.PM.PageMakerdeletetablerowDefault.description="Used to delete a row in a table. This can only be used with tables constructed with the Table sub-menu.";
CaluMath.PM.PageMakerdeletetablecolumnDefault.description="Used to delete a column in a table. This can only be used with tables constructed with the Table sub-menu.";

CaluMath.PM.PageMakerlistDefault.description="Used to create a List. The list items are numbered starting with 1. If you name the list MyList and give it a size of 2 items then automatically the values MyListI1,and MyListI2 are created. These refer to the first and second items in the list MyList respectively.";
CaluMath.PM.PageMakerinsertlistitemDefault.description="Used to insert an item in a list.";
CaluMath.PM.PageMakerdeletelistitemDefault.description="Used to delete an item in a list.";

CaluMath.PM.PageMakergettextboxvalueDefault.description="Used to give a name to the value that was typed in a Text Box or Text Area. Once it has a name, you can refer to it and use it in any way you wish. ";
CaluMath.PM.PageMakerputtextboxvalueDefault.description="Used to place a String of Text into a Text Box or Text Area.";
CaluMath.PM.PageMakergetboxindexDefault.description="Used to give a name to the index selected or checked in a Check Box, Radio Button, or Drop Down Menu. The entries in Check Boxes, Radio Buttons, and Drop Down Menus are numbered starting with 0. Therefore if a set of Radio Buttons has three entries, they are numbered 0,1,2. Using Get Box Or Drop Down Index allows you to give a name to the index that is selected by the user. This allows the page designer to know which item was selected.";
CaluMath.PM.PageMakerputboxindexDefault.description="Used to select a particular entry in Check Boxes, Radio Buttons, or Drop Down menus. The entries in Check Boxes, Radio Buttons, and Drop Down Menus are numbered starting with 0. Therefore if a set of Radio Buttons has three entries, they are numbered 0,1,2.";
CaluMath.PM.PageMakersearchDefault.description="Used to search all the objects graphed for items with certain properties, for example, all points graphed with an x coordinate between -2 and 3."

CaluMath.PM.PageMakerhideandunhideDefault.description="Used to make any object that is not a graph visible or invisible. This includes Text, Buttons, Click Buttons, Check Boxes, Radio Buttons, Tables, Lists and Drop Down Menus.";
CaluMath.PM.PageMakerremovehtmlDefault.description="Used to remove non-graph objects from the page. This does not merely make the object invisible, it actually removes the object. Note that this should only be used in Button Actions and Routines or in response to user interaction with the web page. If you create an object that you realize you do not want, remove it by editing it and choosing the Delete Button in the editing screen.";
CaluMath.PM.PageMakerhideandunhidegraphDefault.description="Used to make any graph or axes visible or invisible.";
CaluMath.PM.PageMakerremovegraphDefault.description="Used to remove graphs or Axes from the page. This does not merely make the graph invisible, it actually removes the graph. It automatically removes any children of the graph or Bottons or Boxes associated with the graph. Note that this should only be used in Button Actions and Routines or in response to user interaction with the web page. If you create a graph that you realize you do not want, remove it by editing it and choosing the Delete Button in the editing screen.";
CaluMath.PM.PageMakerfocusobjectDefault.description="A Focus Object is created in a place in the page that you want to be visible to the user. For example, suppose that when a user clicks on a Button, some Text is added to the bottom of the page. The Text may not be visible to the user unless the user scrolls down the page. Therefore, you should construct a Focus Object immediately before or after (or inside) the Text. Using the Place Focus Menu puts the focus on the Focus Object so that the text is visible to user. ";
CaluMath.PM.PageMakerputfocusDefault.description="Used to place the focus on a Focus Object or Box or Button. This means that the window will scroll until the Box, Button, or Focus Object is in view.";

CaluMath.PM.PageMakerconditionalDefault.description="Used to create if-else if-then statements. For the if or else if part a screen a Comparison screen is opened. You fill in the statement that must be fulfilled in order for the remainder of the conditional to be executed. The remainder of the Conditional is a container that contains the statements to be executed if the Comparison statement is satisfied. The else statment has no Comparison screen and is just a container that contains the statments executed if none of the if or else if statments are executed.";
CaluMath.PM.PageMakeraddtoconditionalDefault.description="Used if you have already created a Conditional and later realize that you need to add something to it.";
CaluMath.PM.PageMakercomparisonDefault.description="Used to provide a name for a Comparison statement. If the Comparison statment is satisfied, the name takes the value ";
CaluMath.PM.PageMakerroutineDefault.description="A Routine is a container with items that you place in it. When the Routine is executed all of the items in the Routine container are executed.";
CaluMath.PM.PageMakeraddtoroutineDefault.description="Used if you have already created a Routine and later realize that you need to add something to it.";
CaluMath.PM.PageMakerexecuteroutineDefault.description="Used to Execute a Routine. This causes all of the items in the Routine to be created or executed.";
CaluMath.PM.PageMakerforloopDefault.description="This creates a For Loop, as is found in most programming languages. For example: for(i=0; i<10; i++){ Do these items}. After the intial For Loop screen, which creates the For Loop, the For Loop is a type of container. All the items added to the container will be executed each time the loop is exectuted.";
CaluMath.PM.PageMakeraddtoforloopDefault.description="Used if you have already created a For Loop and later realize that you need to add something to it.";
CaluMath.PM.PageMakerjavascriptDefault.description="Used to add a JavaScript Command to your web page.";
CaluMath.PM.PageMakerendinsertionarrayDefault.description="This is used if, during a Button Action, Conditional, Routine, New Window, or For Loop, you clicked OK in a pop up window that said Continue Button Action, Conditional, Routine, New Window or For Loop, but realize that you don't want to add more items to it.";

CaluMath.PM.PageMakerimportpageDefault.description="Allows you to Import part of a previously constructed page into the present page.";
CaluMath.PM.PageMakerchangelinksDefault.description="If you had several links to a certain file and the file name has been changed, you can change all of the links simultaneously with Change All Links.";
CaluMath.PM.PageMakerchangeimagesDefault.description="If you had graphics from a certain graphics file in your document and the file name has been changed, you can change all of the graphics in your document simultaneously with Change All Images.";
CaluMath.PM.PageMakeraddhtmlDefault.description="You can add Html directly to your document with this command. This allows you to create Html with other web authoring tools and place it directly in a ";
CaluMath.PM.PageMakerheadhtmlDefault.description="You can add Html directly to the head of your document with this command. This allows you to add meta tag information and link directly to an external CSS stylesheet.";
CaluMath.PM.PageMakercommentDefault.description="Adds Comments to the page that are visible in Edit Mode.";
} //Comment: These only appear in CM_TopWindow. This ends the conditional Topwindow==window that the above definitions were enclosed in. 
//Comment: This ends the part for CaluMath.PM.PageMakerhtmltextDefault which appears in all text windows. 

if(window.CM_TopWindow==window){


//Comment: The entries need to be done indiviually. The graphs use CaluMath.PM.PlotlistObject.newplotlist which is undefined at this point
//CM_AdHocDependencyCreationList = ["functionplot","animationplot","discretefunctionplot","htmltext", "updatefunctionplot"];

CaluMath.PM.AdHocDependencyCreationList = ["htmltext", "addtonewwindow"];

//Comment: The ones below should be checked, because they involve second entries that are not strings or are arrays of zero length
//  removehtml,hideandunhide,hideandunhidegraph,moveobject


//NeedAdHocListNoArrays= new Array();
//NeedAdHocList= new Array();
//NeedAdHocListHelp= new Array();

CaluMath.PM.CreateDependencies= function(){
   
CaluMath.PM.PlotlistObject.newplotlist=[["", "", "",""]];
CaluMath.PM.PlotlistObject.stringinputfields= new Object();
CaluMath.PM.PlotlistObject.evalmathinputfields= new Object();


   var DefaultArray= CaluMath.PM.PageMakerDefaultMaker.DefaultArray;
   var DefaultArrayLength= DefaultArray.length;

   CaluMath.PM.PageMakerHelpCategoryObject= new Object();
   CaluMath.PM.PageMakerHelpCategoryObject.required= new Object();
   CaluMath.PM.PageMakerHelpCategoryObject.options= new Object();

   CaluMath.PM.PageMakerHelpArray= new Array();
   for( var defaultobjectindex=0; defaultobjectindex<DefaultArrayLength; defaultobjectindex++){
//alert(["In Default", defaultobjectindex, DefaultArray[defaultobjectindex].type]);
      if( !CaluMath.PM.AdHocDependencyCreationList.cm_contains(DefaultArray[defaultobjectindex].type)){
//try{
//alert([DefaultArray[defaultobjectindex], CaluMath.PM.PageMakeraddtoboxordropdownDefault]);
         var requiredarray = DefaultArray[defaultobjectindex].makerequiredarray();
         var requiredarraylength = requiredarray.length 
         var optionsarray = DefaultArray[defaultobjectindex].makeoptionsarray();
         var optionsarraylength = optionsarray.length;
//}
//catch(e){
//    if(DefaultArray[defaultobjectindex] != NeedAdHocListNoArrays[NeedAdHocListHelp.length-1]){
//       NeedAdHocListNoArrays.push(DefaultArray[defaultobjectindex]);
//    };
//};
         CaluMath.PM.PageMakerHelpArray[defaultobjectindex]=new Object();
         CaluMath.PM.PageMakerHelpArray[defaultobjectindex].type=DefaultArray[defaultobjectindex].type;
         CaluMath.PM.PageMakerHelpArray[defaultobjectindex].toString = function(){
           return this.type;
         };
         CaluMath.PM.PageMakerHelpArray[defaultobjectindex].required= new Array();
         CaluMath.PM.PageMakerHelpArray[defaultobjectindex].options= new Array();
         for(var i=0; i< requiredarraylength; i++){
            if(requiredarray[i] != null && requiredarray[i][1] == "input" && requiredarray[i][5] != null && requiredarray[i][5] == CaluMath.PM.IsNonEmptyString || requiredarray[i][5] ==CaluMath.PM.IsBlankOrNonEmptyString || requiredarray[i][5] == CaluMath.PM.IsValidName || requiredarray[i][5] == CaluMath.PM.IsBlankOrValidName){
               if(CaluMath.PM.PlotlistObject.stringinputfields[DefaultArray[defaultobjectindex].type]==null){
                  CaluMath.PM.PlotlistObject.stringinputfields[DefaultArray[defaultobjectindex].type]= [requiredarray[i][0]];
               }
               else{
                  CaluMath.PM.PlotlistObject.stringinputfields[DefaultArray[defaultobjectindex].type].push(requiredarray[i][0]);
               };
            }
            else if(requiredarray[i] != null && requiredarray[i][1] == "input" && requiredarray[i][5] != null && requiredarray[i][5] == CaluMath.PM.IsEvalMath || requiredarray[i][5] ==CaluMath.PM.IsDefaultOrEvalMath || requiredarray[i][5] ==CaluMath.PM.IsBlankOrEvalMath || requiredarray[i][5] ==CaluMath.PM.IsNumberReplaceAll  || requiredarray[i][5] == CaluMath.PM.IsNonEmptyStringReplaceAll  || requiredarray[i][5] == CaluMath.PM.IsBlankOrNonEmptyStringReplaceAll){
               if(CaluMath.PM.PlotlistObject.evalmathinputfields[DefaultArray[defaultobjectindex].type]==null){
                  CaluMath.PM.PlotlistObject.evalmathinputfields[DefaultArray[defaultobjectindex].type]= [requiredarray[i][0]];
               }
               else{
                  CaluMath.PM.PlotlistObject.evalmathinputfields[DefaultArray[defaultobjectindex].type].push(requiredarray[i][0]);
               };
            };
            if(requiredarray[i] != null && requiredarray[i][0] == "graph" && !(["updatefunctionplot", "updateareabetweenfunctionsplot", "updateblanksegments", "updatetangentplot"].cm_contains(DefaultArray[defaultobjectindex].type))){
               CaluMath.PM.PlotlistObject.definedfunctionlistdependencies[DefaultArray[defaultobjectindex].type]=["graph"];
            };

//            if(requiredarray[i] != null && requiredarray[i][0] != null &&requiredarray[i][1] != null && requiredarray[i][1] == "input" && requiredarray[i].length != 6){
//               alert([DefaultArray[defaultobjectindex].type,requiredarray[i].cm_display()]);
//            };
//try{
            if(requiredarray[i] != null && requiredarray[i][0] != null && requiredarray[i][2] != null && requiredarray[i][2].cm_constructorname =="Array" && (requiredarray[i][2].length==1 || requiredarray[i][2].length==0) ){
//                    alert([DefaultArray[defaultobjectindex], requiredarray[i][2].cm_display()]);
//               if(CheckThese[CheckThese.length-1] != DefaultArray[defaultobjectindex].type){
//                  CheckThese.push(DefaultArray[defaultobjectindex].type);
//                  if(requiredarray[i] != null){
//                  };
//               };
            }   
            if(requiredarray[i] != null && requiredarray[i][0] != null && requiredarray[i][2] != null){
            if(requiredarray[i][2].cm_constructorname=="String"){ //alerttest(requiredarray[i][2]);
               var tempdependencies=requiredarray[i][2].replace(/^.*concat\,/,"")+"dependencies"; 
               if(CaluMath.PM.PlotlistObject[tempdependencies] != null){
                  if(CaluMath.PM.PlotlistObject[tempdependencies][DefaultArray[defaultobjectindex].type] != null){
                     CaluMath.PM.PlotlistObject[tempdependencies][DefaultArray[defaultobjectindex].type].push(requiredarray[i][0]);
                  }
                  else{
                     CaluMath.PM.PlotlistObject[tempdependencies][DefaultArray[defaultobjectindex].type]=[requiredarray[i][0]];
                  };
               }
               else{
                  CaluMath.PM.PlotlistObject[tempdependencies] = new Object();
                  CaluMath.PM.PlotlistObject[tempdependencies][DefaultArray[defaultobjectindex].type]= [requiredarray[i][0]];
               };
            };
            };
//}
//catch(e){
//    if(DefaultArray[defaultobjectindex] != NeedAdHocList[NeedAdHocListHelp.length-1]){
//       NeedAdHocList.push(DefaultArray[defaultobjectindex]);
//    };
//};
//try{

            if(requiredarray[i] != null && requiredarray[i][0] != null && requiredarray[i][4] != null){
               CaluMath.PM.PageMakerHelpArray[defaultobjectindex].required[i]=requiredarray[i][0];
               if(CaluMath.PM.PageMakerHelpCategoryObject.required[requiredarray[i][0]]== null){
                  CaluMath.PM.PageMakerHelpCategoryObject.required[requiredarray[i][0]]= [DefaultArray[defaultobjectindex].type]; 
                  if(requiredarray[i][4].cm_constructorname != "Array"){
                     CaluMath.PM.PageMakerHelpCategoryObject.required[requiredarray[i][0]].names=[requiredarray[i][4]];
                  }
                  else{
                     if(requiredarray[i][4][0].cm_constructorname != "Array"){
                        CaluMath.PM.PageMakerHelpCategoryObject.required[requiredarray[i][0]].names=[requiredarray[i][4][0]];
                     }
                     else{
                        CaluMath.PM.PageMakerHelpCategoryObject.required[requiredarray[i][0]].names=[requiredarray[i][4][0][0]];
                     };
                  };
               }
               else{
                  CaluMath.PM.PageMakerHelpCategoryObject.required[requiredarray[i][0]].push(DefaultArray[defaultobjectindex].type); 
                  if(requiredarray[i][4].cm_constructorname != "Array"){
                     CaluMath.PM.PageMakerHelpCategoryObject.required[requiredarray[i][0]].names.push(requiredarray[i][4]);
                  }
                  else{
                     if(requiredarray[i][4][0].cm_constructorname != "Array"){
                        CaluMath.PM.PageMakerHelpCategoryObject.required[requiredarray[i][0]].names.push(requiredarray[i][4][0]);
                     }
                     else{
                        CaluMath.PM.PageMakerHelpCategoryObject.required[requiredarray[i][0]].names.push(requiredarray[i][4][0][0]);
                     };
                  };
               };
            };
//}
//catch(e){
//    if(DefaultArray[defaultobjectindex] != NeedAdHocListHelp[NeedAdHocListHelp.length-1]){
//       NeedAdHocListHelp.push(DefaultArray[defaultobjectindex]);
//    };
//};

         };

         for(var i=0; i< optionsarraylength; i++){
            if(optionsarray[i][2].cm_constructorname=="String"){
               var tempdependencies=optionsarray[i][2].replace(/^.*concat\,/,"")+"dependencies"; 
               if(CaluMath.PM.PlotlistObject[tempdependencies] != null){
                  if(CaluMath.PM.PlotlistObject[tempdependencies][DefaultArray[defaultobjectindex].type] != null){
                     CaluMath.PM.PlotlistObject[tempdependencies][DefaultArray[defaultobjectindex].type].push(optionsarray[i][0]);
                  }
                  else{
                     CaluMath.PM.PlotlistObject[tempdependencies][DefaultArray[defaultobjectindex].type]= [optionsarray[i][0]];
                  }
               }
               else{
                  CaluMath.PM.PlotlistObject[tempdependencies] = new Object();
                  CaluMath.PM.PlotlistObject[tempdependencies][DefaultArray[defaultobjectindex].type]= [optionsarray[i][0]];
               };
            };
            if(optionsarray[i] != null && optionsarray[i][0] != null){
               CaluMath.PM.PageMakerHelpArray[defaultobjectindex].options[i]=optionsarray[i][0];
               if(CaluMath.PM.PageMakerHelpCategoryObject.options[optionsarray[i][0]]== null){
                  CaluMath.PM.PageMakerHelpCategoryObject.options[optionsarray[i][0]]= [DefaultArray[defaultobjectindex].type]; 
                  if(optionsarray[i][4].cm_constructorname != "Array"){
                     CaluMath.PM.PageMakerHelpCategoryObject.options[optionsarray[i][0]].names=[optionsarray[i][4]];
                  }
                  else{
                     if(optionsarray[i][4][0].cm_constructorname != "Array"){
                        CaluMath.PM.PageMakerHelpCategoryObject.options[optionsarray[i][0]].names=[optionsarray[i][4][0]];
                     }
                     else{
                        CaluMath.PM.PageMakerHelpCategoryObject.options[optionsarray[i][0]].names=[optionsarray[i][4][0][0]];
                     };
                  };
               }
               else{
                  CaluMath.PM.PageMakerHelpCategoryObject.options[optionsarray[i][0]].push(DefaultArray[defaultobjectindex].type); 
                  if(optionsarray[i][4].cm_constructorname != "Array"){
                     CaluMath.PM.PageMakerHelpCategoryObject.options[optionsarray[i][0]].names.push(optionsarray[i][4]);
                  }
                  else{
                     if(optionsarray[i][4][0].cm_constructorname != "Array"){
                        CaluMath.PM.PageMakerHelpCategoryObject.options[optionsarray[i][0]].names.push(optionsarray[i][4][0]);
                     }
                     else{
                        CaluMath.PM.PageMakerHelpCategoryObject.options[optionsarray[i][0]].names.push(optionsarray[i][4][0][0]);
                     };
                  };
               };
            };
         };
      };


};



//Comment: Deals with addtonewwindow. 
CaluMath.PM.PlotlistObject.newwindowlistdependencies["addtonewwindow"]=["newwindow"];

CaluMath.PM.PlotlistObject.iframelistdependencies=new Object();
CaluMath.PM.PlotlistObject.iframelistdependencies["newplot"]=["cm_caswindow"];

CaluMath.PM.PlotlistObject.namedobjectlistdependencies["htmltext"]=["cm_inserttarget"];
CaluMath.PM.PlotlistObject.namedobjectlistdependencies["hideandunhide"]=["hidetarget"];


CaluMath.PM.PlotlistObject.newwindowlistdependencies["htmltext"]=["cm_caswindow"];
CaluMath.PM.PlotlistObject.namedobjectlistdependencies["removehtml"]=["hidetarget"];

CaluMath.PM.PlotlistObject.graphlistdependencies["hideandunhidegraph"]=["graph"];


/*
//Comment: We need this in case they input something like I= I+1. Since names would normally be in stringinputfields we delete these, so we don't double search
//Comment: The above doesn't make sense to me, so I eliminated it, Sept. 2, 2007.
CaluMath.PM.PlotlistObject.evalmathinputfields["definedconstant"].push("name");
CaluMath.PM.PlotlistObject.evalmathinputfields["variablename"].push("name");
CaluMath.PM.PlotlistObject.stringinputfields["definedconstant"]=null;
CaluMath.PM.PlotlistObject.stringinputfields["variablename"]=null;


//Comment: We do not want cm_variable to be replaced, so we rewrite the array here to only include name. 
CaluMath.PM.PlotlistObject.stringinputfields["definedfunction"]=["name"];
*/


//Comment: AdhocDependencies does not work for htmltext, so we need to create this so names with cm_eval( ) will be changed when a constant is renamed. 
CaluMath.PM.PlotlistObject.stringinputfields["htmltext"]=["name"];

//Comment: Because updatefunctionplot has a CaluMath.PM.PlotlistObject.newplotlist[0][2] term in the required array, it cannot be handled directly by CaluMath.PM.CreateAdHocDependencies, since the required array cannot be constructed as the page loads. 
//Comment: As of now, CaluMath.PM.PlotlistObject.stringinputfields["updatefunctionplot"] is left undefined and has nothing in it that needs to be defined. 
CaluMath.PM.PlotlistObject.evalmathinputfields["updatefunctionplot"]=["cm_xstart", "cm_xfinish"];


//Comment: We made a phony CaluMath.PM.PlotlistObject.newplotlist at the beginning of this function so the required and options lists could be created. But it does not have the correct form of the true CaluMath.PM.PlotlistObject.newplotlist. Therefore we define CaluMath.PM.PlotlistObject.newplotlist as a new Array so it can be correctly populated. 
CaluMath.PM.PlotlistObject.newplotlist=new Array();



};

CaluMath.PM.CreateDependencies();

};
