$(init_page);
var page_height;
var cur_caption = 0;
var sux_browser = false;
var banner_idx = 0;
    
// init_sifr();  
var srcollbar_options = {scrollbarWidth:21 , animateTo:true, animateInterval:50,dragMaxHeight:120, dragMargin:4};

function init_page(){
  BrowserDetect.init();
  if(BrowserDetect.browser == 'Explorer' && BrowserDetect.version < 8)sux_browser = true;
  //$('#main_menu').superfish(); 
  
  // Toggle Items
  //init_toggle_items();
  
  // Setup Lightbox
  $('a.lightbox').lightBox();

  // Setup Scrollables
  $('body.home .sub_content .scroll').css({width:'517px','height':'303px'});
  
  // Setup Sub-Contents
  init_sub_contents();  
  
  // Setup Quickjumps
  $('.quick_jump').quickjump();

  // Setup Toggle Titles
  $('.toggle_arrow').toggletitle();

  // Setup Video
  init_video_index();
 
  // Setup Tab
  init_tabs(); 
  
  init_popups();
  
  adjust_sidebox();
  
  if(typeof(main_banners)!='undefined'){
    rotate_banners();
  }
  if(sux_browser){
    $('#logo').appendTo($('#page'));
  }
  
}

function rotate_banners(){
  for(var i =0; i<main_banners.length; i++){
    var img = new Image;
    img.src = main_banners[i][0];  
  }
  the_banner = $('#display .display_item');
  banner_clone = the_banner.clone()
  banner_clone.hide();
  banner_clone.prependTo('#display');
  setTimeout(function(){ show_next_banner();},5000);
}

function show_next_banner(){
  banner_idx++;
  if(banner_idx > main_banners.length-1) banner_idx = 0;

  banner_clone.find('img').attr('src',main_banners[banner_idx][0]);
  banner_clone.find('.caption').html( main_banners[banner_idx][1]);
  
  banner_clone.fadeIn('slow');
  the_banner.fadeOut('slow',function(){
    $(this).find('img').attr('src', banner_clone.find('img').attr('src'))
    $(this).find('.caption').html( banner_clone.find('.caption').html() );
    $(this).show();
    banner_clone.hide();  
  });

  setTimeout(function(){show_next_banner();},5000);
  
  //alert(main_banners[banner_idx]) ;
    
 
}

function sub_content(id){ 
  //document.location.hash = '#' + id;
 
  $('.sub_content.current_sub_content').removeClass('current_sub_content');  
  $('.scmenu_selected').removeClass('scmenu_selected');
  $('#sub_content-' + id).addClass('current_sub_content');
  $('#subcontent_menu-' + id).addClass('scmenu_selected');
  
  // setup scrollable contents
  $('#sub_content-' + id + ' .scroll').jScrollPane(srcollbar_options);
  $('#sub_content-' + id + ' .scrollable').jScrollPane(srcollbar_options);
  //$('#sub_content-' + id + ' .tab_scroll').jScrollPane(srcollbar_options);
  
  // find which tab is open
  
  $('#sub_content-' + id + ' .tab_button').each(function(){
    
    if($(this).hasClass('selected')){
    
      var hash = ($(this).attr('href'));
      hash = hash.replace(/#/,'');
      $('.tab').hide(); 
      $('#' + hash).show();
      $('.tab_button').removeClass('selected');
      $(this).addClass('selected');    
      
      $('#' + hash).find('.tab_scroll').jScrollPane(srcollbar_options);
      return false;
    
        
    }
  })      
   
  // move video screen
  
  // $('#sub_content-' + id + ' #video_screen').appendTo( $('#sub_content-' + id) ); 
   

  if(typeof( $('#sub_content-' + id + ' #video_screen').get(0)) != undefined){
    // put outside the scroll area
    $('#sub_content-' + id).append($('#sub_content-' + id + ' #video_screen'));
    $('#video_screen').css({'z-index':100});
  }
  
}

function init_tabs(){
  
   $('.tab_button').each(function(idx){
    if(idx == 0){
      $(this).addClass('selected'); 
    }
   });
  $('.tab_button').click(function(){
    var hash = ($(this).attr('href'));
    hash = hash.replace(/#/,'');
    $('.tab').hide(); 
    $('#' + hash).show();
    $('.tab_button').removeClass('selected');
    $(this).addClass('selected');    
    
    $('#' + hash).find('.tab_scroll').jScrollPane(srcollbar_options);
    return false;
    
  });
  
  $('.tab').each(function(idx){
    $(this).css({top:0,left:0});
    if(idx==0){
      $(this).wrap('<div class="tab_container" style="position:relative"></div>');
    }else{
      $(this).hide();
      $('.tab_container').append(this);  

    }      
    
    
  })
    
}

function init_video_index(){
  
  $('.video_item a').filter(
    function(){
      if($(this).hasClass('lightbox')) return false;
      return true;
    }
  ).click(function(){
    var file = $(this).attr('href');
    $('#video_screen').css({'position':'absolute',top:0,left:0 }).show();

    var screen_width  = $('#video_screen .screen').width();
    var screen_height = $('#video_screen .screen').height();
        
        
    
    // animate the lightbox effects
    var img = $(this).find('img');
    var img_title = img.attr('title');
    var img_offset = img.offset();
    var target = $('#video_screen .screen');
    var target_offset =target.offset();
     
    $('#thumb_tween').remove();
    var tween = img.clone();
    tween.css({'width': img.width(), height:img.height(),'z-index':100});    
    tween.attr('src', img.attr('screen'));

    tween.attr('id','thumb_tween');
    $('body').append(tween);
    $('#video_screen .caption').html(img_title); // set the title
    tween.css({position:'absolute',left:img_offset.left,top:img_offset.top});
    tween.animate({'width':target.width(),'height':target.height(), 'top':target_offset.top, 'left':target_offset.left},
      260,
      'easeOutQuad',
      function(){
        // create the player after tweener splash finish animated.
        $('#video_screen .screen').html('<a class="media" href="'+ file +'"></a>');
        $('#video_screen a.media').media({
            width:screen_width,
            height:screen_height, 
            params:{wmode:'transparent',allowfullscreen:'true'},
            flashvars:{'controlbar':'over','autostart':'true'}
        });
    
        // remove the tweener splash
        setTimeout(function(){ $('#thumb_tween').fadeOut();},600);
        
      }
    );
    
    return false;
  });
  
  $('#video_screen .close').click(function(){
    
    
    $('#video_screen').fadeOut(500, function(){
      $('#video_screen .screen .media').remove(); //remove the embed video
    });
    return false;  
    
  });
 
  //$('a.media').media({width:470,height:250, flashvars:{'controlbar':'over'} });

  
}

function init_sub_contents(){
  
  var hash = window.location.hash;
  if(hash !=''){
    hash  = hash.replace(/#/,'');
    sub_content(hash);  
  }
  
  
  $('.sub_content').each(function(){    
    if($(this).hasClass('current_sub_content')){
      $(this).hide()  
    }  
  });
  
  
  $('#subcontent_menu-e-commerce_store a').removeAttr('onclick').attr('href', www_root  + 'store');;
  
}
function show_more(obj){
  if(BrowserDetect.browser == 'Explorer'){
    if(BrowserDetect.version < 8 ){
      $(obj).next().show();    
    }else{
      $(obj).next().fadeIn();    
    }
  }else{
    $(obj).next().fadeIn();
  }
  $(obj).remove();
}

function show_media_caption(idx){ 
  setTimeout(function(){real_show_media_caption(idx)},1300);
}
function real_show_media_caption(idx){
  if(cur_caption != idx){
    $('#media_caption_' + cur_caption).fadeOut('slow');
    $('#media_caption_' + idx).hide();
    $('#media_caption_' + idx).css('top',0).fadeIn('slow');
  }
  

  cur_caption = idx;
  
}


function adjust_sidebox(){
  if($('#content_left .box').get(0)!= undefined){
    $('#content_left .sidebox').insertAfter($('#content_left .box'));
  }
  
  if(sux_browser){
    if(!$('body').hasClass('home')){
      if($('#content_left .box').get(0)== undefined){
        $('#content_left').height( $('#sub_menu').height()+ 200);
      }
    }
    
  }
  var sidebox_offset = $('#content_left .sidebox').offset();
  var sidebox_height = $('#content_left .sidebox').height();
  
  var submenu_offset = $('#sub_menu').offset();
  if(submenu_offset == null) return;
  var submenu_bottom = submenu_offset.top  + $('#sub_menu').height();
  
  if($('#content_left .box').get(0)!= undefined){
    
    
    var submenu_bottom = submenu_offset.top  + $('#content_left .box').height();
 
     
    //alert(submenu_bottom + ' - ' + sidebox_offset.top );
    
  }
  //alert(submenu_bottom + ' - ' + sidebox_offset.top );
  if((sidebox_offset.top - submenu_bottom ) > 200){
    $('#content_left .sidebox').css({'position':'static','margin-top':100});
    var cl_offset = $('#content_left .sidebox').offset();
     
    //cl_offset.top + $('#content_left .sidebox').height();
    if(sux_browser){
      $('#content_left').height( cl_offset.top + $('#content_left .sidebox').height());
    }
     
     
    $('#content_left').css({'margin-bottom':0});
  }
}
 
/* 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();
  }

}

function init_popups(){
  $('a[target="popup"]').click(function(){
    popup($(this).attr('href'), this);
    return false;
  });  
}
function popup(addr,obj ){
  
  
       
  popup_window = window.open(addr, 'popup',  "menubar=0,resizable=0,width=350,height=550,scrollbars=1");
  
  if(obj!=undefined){
    var x = (document.all)?window.screenLeft:window.screenX;
    var y = (document.all)?window.screenTop:window.screenY;
    
    offset = $(obj).offset();
    x+= offset.left + $(obj).width() - $(window).scrollLeft() + 40 ;
    y+=offset.top - $(window).scrollTop() - 200;
    
    popup_window.moveTo(x,y);
  }
  
  popup_window.focus(); 
}



/* Helper functions */

function has_flash(){
  return FlashDetect.installed;
}


function is_valid_email(email) {
   var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
   if(reg.test(email) == false) {
      return false;
   }
   return true;
}

function strrpos( haystack, needle, offset){
    var i = (haystack+'').lastIndexOf( needle, offset ); // returns -1
    return i >= 0 ? i : false;
}


/* Browser Detection Class */
var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{
			string: navigator.userAgent,
			subString: "Chrome",
			identity: "Chrome"
		},
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari",
			versionSearch: "Version"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]
};


