$(init_page);
var page_height;
var cur_caption = 0;
var sux_browser = false;
  init_sifr();  
  
function init_page(){
  BrowserDetect.init();
  if(BrowserDetect.browser == 'Explorer' && BrowserDetect.version < 8)sux_browser = true;
  //$('#main_menu').superfish(); 
  
  // Reize page
  resize_page(); $(window).resize(resize_page);
  
  // Toggle Items
  init_toggle_items();
  
  // Setup Lightbox
  $('a.lightbox').lightBox({
      imageBtnPrev:	 WWW_ROOT + 'template/peregrine/images/lightbox-peregrine-prev.gif',		 
			imageBtnNext:	 WWW_ROOT + 'template/peregrine/images/lightbox-peregrine-next.gif',			 
			imageBtnClose: WWW_ROOT + 'template/peregrine/images/lightbox-peregrine-close.gif'
    
    });

  setTimeout(function(){reveal_header();  }, 3000);


  
}

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){
    if(document.all){
      $('#media_caption_' + cur_caption).hide();
      $('#media_caption_' + idx).hide();
      $('#media_caption_' + idx).css('top',0).show();
      
    }else{
      $('#media_caption_' + cur_caption).fadeOut('slow');
      $('#media_caption_' + idx).hide();
      $('#media_caption_' + idx).css('top',0).fadeIn('slow');
    }
  }
  

  cur_caption = idx;
  
}

function resize_page(){
  if(page_height == undefined){
    page_height = $('#page').height();
  }
  var wh = $(window).height();
  if(page_height < wh) $('#page').height(wh);
  
}


function reveal_header(){
  $('#logo').fadeIn();  
  $('#login_box').fadeIn();
}

/* 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();
  }

}





/* 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;
}



/* 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"
		}
	]
};


