var slider_timeout = undefined;
  
var slide_timeout = 7000;
var additional_click_delay = 5000;
var slide_speed = 700;
var slide_number = 1;
var last_slide = 0;
var slide_start_x_pos = 322;
var slide_x_offset = 127;
var slide_height = 0;
var slide_x_fix = 1;
var slider_left_x_pos = -75;
var is_sliding = false;
var preload_slides;
var slide_first_loaded = 0;

$(init_page);



function init_page() {	
	
	//ad-gallery for news page
	// $('img.image1').data('ad-desc', 'Whoa! This description is set through elm.data("ad-desc") instead of using the longdesc attribute.<br>And it contains <strong>H</strong>ow <strong>T</strong>o <strong>M</strong>eet <strong>L</strong>adies... <em>What?</em> That aint what HTML stands for? Man...');
    //$('img.image1').data('ad-title', 'Title through $.data');
    //$('img.image4').data('ad-desc', 'This image is wider than the wrapper, so it has been scaled down');
    //$('img.image5').data('ad-desc', 'This image is higher than the wrapper, so it has been scaled down');
	var galleries = $('.ad-gallery').adGallery();
    $('#switch-effect').change(
      function() {
        galleries[0].settings.effect = $(this).val();
        return false;
      }
    );
    $('#toggle-slideshow').click(
      function() {
        galleries[0].slideshow.toggle();
        return false;
      }
    );
    $('#toggle-description').click(
      function() {
        if(!galleries[0].settings.description_wrapper) {
          galleries[0].settings.description_wrapper = $('#descriptions');
        } else {
          galleries[0].settings.description_wrapper = false;
        }
        return false;
      }
    );
	
	
	if ($('#slider').length > 0) {
		if($.browser.mozilla)
			slide_x_fix = 0;
		
  	setup_slider(true);
  	//setup_slider_left();
  }
  
  init_toggle_items();
  fix_float_locations();
  $('a.lightbox').lightBox();
	
	//setTimeout(next_slide, slide_timeout);
	get_stock_prices();
	$('#worldclock').clock();
	
	
  $('*[columns]').each(function(){
    split_columns(this, $(this).attr('columns'));
  });
}
function setup_slider(init) {
  slide_height = $('#slider_mask').height();
  
  $('#slider').css({top:0,left:slide_start_x_pos});
  $('#slider_left').css({top:0,left:slider_left_x_pos});

  var slides = $('#slider > li');

  $('#slider li,#slider_left li').hide();

  if(init){
	  slide_buttons = $('<div id="buttons"></div>');
	  $('#slider_mask').append(slide_buttons);
	  //autoplay_slide();
  }
  preload_slides = [];
  
  slides.each(function(idx){
    if(idx ==  (slide_number-1)){
      if(init){
      }else{
        $(this).css({top:0,left:0}).show(); 
        $('#slider_left li.slide_' + (idx+1)).css({top:0,left:0}).show(); 
      }
    }    
    
    
    if(init){
      
      preload_slides.push($(this).css('background-image').replace(/url\("/,'').replace(/"\)/,"").replace('url(', '').replace(')', ''));
      preload_slides.push($('#slider_left li.slide_' + (idx+1)).css('background-image').replace(/url\("/,'').replace(/"\)/,"").replace('url(', '').replace(')', ''));

      
      var bt = $('<a href="#">' + idx + '</a>');
      if(idx == 0)bt.addClass('current');
      bt.get(0).idx = idx;
      bt.click(function(){
        clearTimeout(slider_timeout);
        show_slide((this.idx + 1));
        slider_timeout = setTimeout(autoplay_slide, additional_click_delay);
        return false; 
      });
      slide_buttons.append(bt);
     }       
  });
  
  if(init){
   //console.log(preload_slides);  
    
  	$.imgpreload(preload_slides,
  	{
  		each: function()
  		{
  			if(this.src == preload_slides[0] || this.src == preload_slides[1] ){
  			  slide_first_loaded++;
  			  if(slide_first_loaded==2){
            $('#slider li.slide_1').css({top:0,left:0}).show(); 
            $('#slider_left li.slide_1').css({top:0,left:0}).show(); 
            slide_number = 0;
    			  show_slide(1);
  	        autoplay_slide();
  	        $('#slider_mask .loading').remove();
          }
  			}
  		},
  		all: function()
  		{
  		   
  			// this = array of new image objects
  			// callback executes when all images are loaded
  		}
  	});
	    
  }
}
function autoplay_slide(){
  slider_timeout = setInterval(next_slide,  slide_timeout);
}
function next_slide() {
  show_slide(slide_number + 1);
}

function show_slide(idx){
  
  if(idx >  $('#slider li').length) idx = 1;
  if(idx == slide_number || is_sliding) return;
  
  
  is_sliding = true;
  
  $('#slider_mask #buttons a').removeClass('current');
  $($('#slider_mask #buttons a').get(idx-1)).addClass('current');
  $('#slider .slide_' + idx).css({top:-slide_height, left:slide_x_offset}).show();
  $('#slider_left .slide_' + idx).css({top:slide_height, left:- slide_x_offset}).show();
  // animate them
  $('#slider_left').animate({top:-slide_height, left:slider_left_x_pos+slide_x_offset},
    (slide_speed-10), "cubicEaseInOut", function() {
      
    }
  ); 
  $('#slider').animate({top:slide_height, left:slide_start_x_pos-slide_x_offset},
    slide_speed, "cubicEaseInOut", function() {
      slide_number = idx;
      setup_slider();
      is_sliding = false;
    }
  );
}


/* Toggle Items */
function init_toggle_items(){
 
  $('.toggle_body').hide();
  $('.toggle_arrow a').bind('click', function(){
     
    var o_next = $(this).parent().next();
    if(o_next.css('display')=='none'){
      o_next.slideDown(); 
      
      $('.toggle_arrow.selected a').trigger('click');
      $(this).parent().addClass('selected'); 
      
    }else{
      o_next.slideUp();  
      $(this).parent().removeClass('selected'); 
    }
    return false;  
  });
  
  
  var anchor = window.location.hash;

  if(anchor !=''){
    $('.toggle_arrow.selected').removeClass('selected');
    
    $('a').each(function(i){
      if($(this).attr('href')== anchor){
        $(this).trigger('click');
      }
    });
  }else{
    $('.toggle_arrow.selected').next().show();
  }
  
}


/* Location Float */
function fix_float_locations(){
  $('.float-locations').each(
  
    function(){
      $(this).find('li').each(
        function(i){
          if((i+1)%3 ==1){
            $(this).css('clear','left');  
          }
        }
      );
      
    });  
}


/* Pull Stock Price */
function get_stock_prices(){
   $.get( WWW_ROOT + 'template/msi/js/stocks.js.php', function(data){
    $('#DOW_price').html(add_commas(parseFloat(data['.DJI'].replace(",", "").replace(" ", "")).toFixed(2)));
    $('#SP_price').html(add_commas(parseFloat(data['.INX'].replace(",", "").replace(" ", "")).toFixed(2)));
    $('#NASDAQ_price').html(add_commas(parseFloat(data['.IXIC'].replace(",", " ").replace(" ", "")).toFixed(2)));
    $('#crude_oil_price').html('$' + add_commas(parseFloat(data['LightSweetCrudeOil'].replace(",", "").replace(" ", "")).toFixed(2)) + '<br>USD/bbl');
    $('#gas_price').html('$' + add_commas(parseFloat(data['NaturalGas'].replace(",", ",").replace(" ", "")).toFixed(2)) + '<br>Henry Hub');
    $('#gasoline_price').html('$' + add_commas(parseFloat(data['Gasoline'].replace(",", ",").replace(" ", "")).toFixed(2)));
    $('#light_crude_oil_price').html('$' + add_commas(parseFloat(data['WTICRUDEFUTUREUSDbbl'].replace(",", ",").replace(" ", "")).toFixed(2)));//data['LightSweetCrudeOil']);
    $('#filtrona_stock_price').html(add_commas(parseFloat(data['FLTR'].replace(",", "").replace(" ", "")).toFixed(2)) + '<span style="text-transform:none;">p</span>');
  },'json' );  
}
function add_commas(nStr)
{
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}


function split_columns(obj, val){
  var ch = $(obj).children();
  
  $(obj).addClass('column').wrap('<div class="multi_columns clearfix"></div>');
  
  var html = '';
  var begin = true;
  var maxlen = parseInt(ch.length / val);
  var row = 0;
  var new_ol;
 
  var css = {'width':  (100/val) + '%' , 'float':'left'};

  last_ol = obj;
  
  $(obj).css(css);
  
  for(var i = maxlen ; i<ch.length; i++){
    if(begin){
       new_ol = $('<ul start="'+ (i + 1) +'" class="column"></ul>');
       new_ol.css(css);
      $(new_ol).insertAfter(last_ol);  
    }
    
   // new_ol.append($(ch.children()[i]);
    new_ol.append(ch[i]);
    begin = false;    
    row++;
    
    if(row > maxlen){
      begin = true;
      row = 0;
      last_ol = new_ol;
    }
  }
  
}
