/*SLIDING BANNER
VARIABLES THAT MAY BE CHANGED:
TIME: for the timing between each transition
TRANSITION: the kind of transition between each slide. These are the available transitions:
    *  blindX
    * blindY
    * blindZ
    * cover
    * curtainX
    * curtainY
    * fade
    * fadeZoom
    * growX
    * growY
    * scrollUp
    * scrollDown
    * scrollLeft
    * scrollRight
    * scrollHorz
    * scrollVert
    * shuffle
    * slideX
    * slideY
    * toss
    * turnUp
    * turnDown
    * turnLeft
    * turnRight
    * uncover
    * wipe
    * zoom
Current Transition: fade
*/

//GLOBAL VARIABLES
var images = [];
var time = 10000;
var transition = "fade";
var counter = 0;
var tries = 0;
var now = new Date();


//when dom has loaded
$(document).ready(function() {
        doAjax();
});

function doAjax() {
    tries++;
    $.ajax({
        url: '/scripts/currentXML.xml',
        type: 'GET',
        dataType: 'xml',
        timeout: 1000,
        error: function() {
            alert("An error occurred while loading XML file");
            //try loading the file one more time after one second
            if (tries < 2) {
                setTimeout(function() { doAjax() }, 1000);
            }
        }, //error function
        success: function(xml) {
			
            $(xml).find('show').each(function() {
				
				
                //create the array of images
                var image = $(this).attr('imgId');
                images[images.length] = image;

                //wrap a div around each highlight 
                var div = $('<div></div>')
                .css("border", "none")
                .attr("id", counter)
                .appendTo("#divJSBanner");

                var overlay = $('<div></div>')
                .attr("id", "divJSText")
                .appendTo("#" + counter);

                //create a new div for the descriptions
                var desc = $('<div>' + decodeHtml($(this).find('description').text()) + '</div>')
                .attr("class", "description")
                .appendTo("#" + counter);

                var desc = $('<div>' + decodeHtml($(this).find('airTime').text()) + '</div>')
                .attr("class", "airTime")
                .appendTo("#" + counter);

                //create the link
                var link = $('<a></a>')
                .attr("href", $(this).find('url').text())
                .appendTo("#" + counter);

                //FOR SWF OBJECTS
                if ($(this).attr('imgId').split(".")[1] == "swf") {
                    //append the flash object within the link
                    var div = $('<div></div>')
                    div.appendTo($(link));
                    $($(div)).flash(
                        { src: "/images/banner/" + image,
                            width: 730,
                            height: 214
                        },
                        { version: 8 }
                    );

                    //FOR PICTURES
                } else if ($(this).attr('imgId').split(".")[1] == "jpg") {
                    //append the image within the link
                    var newImg = $('<img></img>')
                    .attr("src", "/images/banner/" + image)
                    .css("border", "none")
                    .attr("width", 732)
                    .appendTo($(link));
                }

                counter++;
				
            }); //xml

            //CREATE THE TRANSITIONS
            if (counter > 1) {
                $('#divJSBanner')
                    .cycle({
                        fx: transition,
                        speed: 'slow',
                        timeout: time,
                        pager: '#navigation'
                    }); //cycle
            }



        } //success
    });               //ajax
} //doAjax
           
 function decodeHtml(s)
{
      var out = "";
      if (s==null) return;
      var l = s.length;
      for (var i=0; i<l; i++)
      {
            var ch = s.charAt(i);
            if (ch == '&')
            {
                  var semicolonIndex = s.indexOf(';', i+1);
            if (semicolonIndex > 0)
            {
                        var entity = s.substring(i + 1, semicolonIndex);
                        if (entity.length > 1 && entity.charAt(0) == '#')
                        {
                              if (entity.charAt(1) == 'x' || entity.charAt(1) == 'X')
                                    ch = String.fromCharCode(eval('0'+entity.substring(1)));
                              else
                                    ch = String.fromCharCode(eval(entity.substring(1)));
                        }
                    else
                      {
                              switch (entity)
                              {
                                    case 'quot': ch = String.fromCharCode(0x0022); break;
                                    case 'amp': ch = String.fromCharCode(0x0026); break;
                                    case 'lt': ch = String.fromCharCode(0x003c); break;
                                    case 'gt': ch = String.fromCharCode(0x003e); break;
                                    case 'nbsp': ch = String.fromCharCode(0x00a0); break;
                                    case 'iexcl': ch = String.fromCharCode(0x00a1); break;
                                    case 'cent': ch = String.fromCharCode(0x00a2); break;
                                    case 'pound': ch = String.fromCharCode(0x00a3); break;
                                    case 'curren': ch = String.fromCharCode(0x00a4); break;
                                    case 'yen': ch = String.fromCharCode(0x00a5); break;
                                    case 'brvbar': ch = String.fromCharCode(0x00a6); break;
                                    case 'sect': ch = String.fromCharCode(0x00a7); break;
                                    case 'uml': ch = String.fromCharCode(0x00a8); break;
                                    case 'copy': ch = String.fromCharCode(0x00a9); break;
                                    case 'ordf': ch = String.fromCharCode(0x00aa); break;
                                    case 'laquo': ch = String.fromCharCode(0x00ab); break;
                                    case 'not': ch = String.fromCharCode(0x00ac); break;
                                    case 'shy': ch = String.fromCharCode(0x00ad); break;
                                    case 'reg': ch = String.fromCharCode(0x00ae); break;
                                    case 'macr': ch = String.fromCharCode(0x00af); break;
                                    case 'deg': ch = String.fromCharCode(0x00b0); break;
                                    case 'plusmn': ch = String.fromCharCode(0x00b1); break;
                                    case 'sup2': ch = String.fromCharCode(0x00b2); break;
                                    case 'sup3': ch = String.fromCharCode(0x00b3); break;
                                    case 'acute': ch = String.fromCharCode(0x00b4); break;
                                    case 'micro': ch = String.fromCharCode(0x00b5); break;
                                    case 'para': ch = String.fromCharCode(0x00b6); break;
                                    case 'middot': ch = String.fromCharCode(0x00b7); break;
                                    case 'cedil': ch = String.fromCharCode(0x00b8); break;
                                    case 'sup1': ch = String.fromCharCode(0x00b9); break;
                                    case 'ordm': ch = String.fromCharCode(0x00ba); break;
                                    case 'raquo': ch = String.fromCharCode(0x00bb); break;
                                    case 'frac14': ch = String.fromCharCode(0x00bc); break;
                                    case 'frac12': ch = String.fromCharCode(0x00bd); break;
                                    case 'frac34': ch = String.fromCharCode(0x00be); break;
                                    case 'iquest': ch = String.fromCharCode(0x00bf); break;
                                    case 'Atilde': ch = String.fromCharCode(0x00c3); break;
                                    case 'Ccedil': ch = String.fromCharCode(0x00c7); break;
                                    case 'Egrave': ch = String.fromCharCode(0x00c8); break;
                                    case 'Eacute': ch = String.fromCharCode(0x00c9); break;
                                    case 'Igrave': ch = String.fromCharCode(0x00cc); break;
                                    case 'Iacute': ch = String.fromCharCode(0x00cd); break;
                                    case 'Ntilde': ch = String.fromCharCode(0x00d1); break;
                                    case 'Ograve': ch = String.fromCharCode(0x00d2); break;
                                    case 'Oacute': ch = String.fromCharCode(0x00d3); break;
                                    case 'Otilde': ch = String.fromCharCode(0x00d5); break;
                                    case 'Ugrave': ch = String.fromCharCode(0x00d9); break;
                                    case 'Uacute': ch = String.fromCharCode(0x00da); break;
                                    case 'Ucirc': ch = String.fromCharCode(0x00db); break;
                                    case 'Uuml': ch = String.fromCharCode(0x00dc); break;
                                    case 'Yacute': ch = String.fromCharCode(0x00dd); break;                                   
                                    case 'agrave': ch = String.fromCharCode(0x00e0); break;
                                    case 'aacute': ch = String.fromCharCode(0x00e1); break;
                                    case 'acirc': ch = String.fromCharCode(0x00e2); break;
                                    case 'atilde': ch = String.fromCharCode(0x00e3); break;
                                    case 'auml': ch = String.fromCharCode(0x00e4); break;                                 
                                    case 'ccedil': ch = String.fromCharCode(0x00e7); break;
                                    case 'egrave': ch = String.fromCharCode(0x00e8); break;
                                    case 'eacute': ch = String.fromCharCode(0x00e9); break;
                                    case 'ecirc': ch = String.fromCharCode(0x00ea); break;                                   
                                    case 'igrave': ch = String.fromCharCode(0x00ec); break;
                                    case 'iacute': ch = String.fromCharCode(0x00ed); break;
                                    case 'icirc': ch = String.fromCharCode(0x00ee); break;
                                    case 'iuml': ch = String.fromCharCode(0x00ef); break;
                                    case 'eth': ch = String.fromCharCode(0x00f0); break;
                                    case 'ntilde': ch = String.fromCharCode(0x00f1); break;
                                    case 'ograve': ch = String.fromCharCode(0x00f2); break;
                                    case 'oacute': ch = String.fromCharCode(0x00f3); break;                                   
                                    case 'otilde': ch = String.fromCharCode(0x00f5); break;                                   
                                    case 'divide': ch = String.fromCharCode(0x00f7); break;                                  
                                    case 'ugrave': ch = String.fromCharCode(0x00f9); break;
                                    case 'uacute': ch = String.fromCharCode(0x00fa); break;
                                    case 'ucirc': ch = String.fromCharCode(0x00fb); break;
                                    case 'uuml': ch = String.fromCharCode(0x00fc); break;                                   
                                    case 'tilde': ch = String.fromCharCode(0x02dc); break;                                ;
                                    case 'euro': ch = String.fromCharCode(0x20ac); break;
                                    case 'image': ch = String.fromCharCode(0x2111); break;                                 
                                    case 'prod': ch = String.fromCharCode(0x220f); break;
                                    case 'sum': ch = String.fromCharCode(0x2211); break;
                                    case 'minus': ch = String.fromCharCode(0x2212); break;
                                    case 'lowast': ch = String.fromCharCode(0x2217); break;
                                    case 'radic': ch = String.fromCharCode(0x221a); break;
                                    case 'prop': ch = String.fromCharCode(0x221d); break;
                                    case 'infin': ch = String.fromCharCode(0x221e); break;                                  
                                    case 'le': ch = String.fromCharCode(0x2264); break;
                                    case 'ge': ch = String.fromCharCode(0x2265); break;
                                    default: ch = ''; break;
                              }
                        }
                        i = semicolonIndex;
                  }
            }
            out += ch;
      }
      return out;
}