﻿
     ////////////////////////////// Colour Functions //////////////////////////////
     //Convert a hex value to its decimal value - the inputed hex must be in the
     // format of a hex triplet - the kind we use for HTML colours. The function
     // will return an array with three values.
     function hex2num(hex) {
         if (hex.charAt(0) == "#") {
             hex = hex.slice(1);
         }
         hex = hex.toUpperCase();
         var hex_alphabets = "0123456789ABCDEF";
         var value = new Array(3);
         var k = 0;
         var int1, int2;
         for (var i = 0; i < 6; i += 2) {
             int1 = hex_alphabets.indexOf(hex.charAt(i));
             int2 = hex_alphabets.indexOf(hex.charAt(i + 1));
             value[k] = (int1 * 16) + int2;
             k++;
         }
         return (value);
     }
     //Give a array with three values as the argument and the function will return
     // the corresponding hex triplet.
     function num2hex(triplet) {
         var hex_alphabets = "0123456789ABCDEF";
         var hex = "#";
         var int1, int2;
         for (var i = 0; i < 3; i++) {
             int1 = triplet[i] / 16;
             int2 = triplet[i] % 16;

             hex += hex_alphabets.charAt(int1) + hex_alphabets.charAt(int2);
         }
         return (hex);
     }

     //Function that fades the color.
     //Arguments...
     //id  - ID of the element whose colour must be faded.
     //start_hex - The initial color of the element.
     //stop_hex - The final color. The element will fade from the initial color to
     //the final color.
     //difference- The colour values will be incremented by this number
     //delay  - The speed of the the effect - higher delay means slower effect.
     //color_background- The fade must be for the color of the element or for its
     // background.
     //      Allowed values are 'c'(Color of element) and 'b'(Background)
     function fadeColor(id, start_hex, stop_hex, difference, delay, color_background) {
         //Default values...
         if (!difference) difference = 20;
         if (!delay) delay = 100;
         if (!start_hex) start_hex = "#FFFFFF";
         if (!stop_hex) stop_hex = "#000000";
         if (!color_background) color_background = "c";

        //commented out because I expect to pass the object rather than the pointer.
         var ele = document.getElementById(id);
         if (!ele) return;
         var start = hex2num(start_hex);
         var stop = hex2num(stop_hex);

         //Make it numbers rather than strings.
         for (var i = 0; i < 3; i++) {
             start[i] = Number(start[i]);
             stop[i] = Number(stop[i]);
         }

         //Morph one colour to the other. If the start color is greater than the stop
         // colour, start color will be decremented till it reaches the stop color.
         // If it is lower, it will incremented.
         for (var i = 0; i < 3; i++) {
             if (start[i] < stop[i]) {
                 start[i] += difference;
                 if (start[i] > stop[i]) start[i] = stop[i];
                 //If we have overshot our target, make it equal - or it won't stop.
             }
             else if (start[i] > stop[i]) {
                 start[i] -= difference;
                 if (start[i] < stop[i]) start[i] = stop[i];
             }
         }

         //Change the color(or the background color).
         var color = "rgb(" + start[0] + "," + start[1] + "," + start[2] + ")";
         if (color_background == "b") {
             ele.style.backgroundColor = color;
         } else {
             ele.style.color = color;
         }

         //Stop if we have reached the target.
         if ((start[0] == stop[0]) && (start[1] == stop[1]) && (start[2] == stop[2]))
             return;

         start_hex = num2hex(start);
         //Keep calling this function
         window.setTimeout("fadeColor('" + id + "','" + start_hex + "','" + stop_hex + "',"
     + difference + "," + delay + ",'" + color_background + "')", delay);
     }

     function checkEnterKey(buttonToClickID) {
         if ((event.which && event.which == 13) || (event.keyCode && event.keyCode == 13)) {
             document.getElementById(buttonToClickID).click();
             return false;
         }
         else {
             return true;
         }
     }

//     function showhide(obj, hide) {
//         if (hide) {
//             Object(obj).style.visibility = "hidden";
//         }

//         else {
//             Object(obj).style.visibility = "visible";
//         }
//     }

     function loading(id, message, timeout, position) {
         var ele = document.getElementById(id);
         if (!ele) return;

         var characters = new Array();

         for (i = 0; i < message.length; i++) {
             characters[i] = message.substring(i, i + 1)
         }

         if (position < message.length) {
             ele.innerHTML = ele.innerHTML + characters[position];
         }

         else {
             ele.innerHTML = "";
             position = -1;
         }

         position++;

         window.setTimeout("loading('" + ele.id + "','" + message + "','" + timeout + "','" + position + "')", timeout);
     }

     function fileUploadValidator() {
         // Original:  ArjoGod, Shauna Merritt -->
         // Modified By:  Ronnie T. Moore, Editor -->

         // This script and many more are available free online at -->
         // The JavaScript Source!! http://javascript.internet.com -->

         // Begin
         extArray = new Array(".gif", ".jpg", ".png");
         function LimitAttach(form, file) {
             allowSubmit = false;
             if (!file) return;
             while (file.indexOf("\\") != -1)
                 file = file.slice(file.indexOf("\\") + 1);
             ext = file.slice(file.indexOf(".")).toLowerCase();
             for (var i = 0; i < extArray.length; i++) {
                 if (extArray[i] == ext) { allowSubmit = true; break; }
             }
             if (allowSubmit) form.submit();
             else
                 alert("Please only upload files that end in types:  "
                + (extArray.join("  ")) + "\nPlease select a new "
                + "file to upload and submit again.");
         }
         //  End -->
     }
    

     
     
     


