$(document).ready(function(){


	if ($.browser.opera)
	{	
		$(document.body).addClass("Opera");	
	}			

	// check screen width on load and window resize
	checkWindowSize();
	jQuery.event.add(window, "resize", resizefunctions);
	

	// Overlay adjustments (measure window height)
	var winheight = $(window).height();
	createCookie('browsery',winheight);
	createCookie('browserx',$(window).width());

	function resizeFrame() 
	{
	    var winheight = $(window).height();
		if ($('#lightbox').is(':visible')) {
			positionLightboxImage();
		}
	}

	// Overlay
	$('.overlaybutton').live('click', function(e) {
	  if($('#flash_fallback_1').is(':visible'))
	  {
		$('#flash_fallback_1').hide();
	  }
	
	  $('body').keydown(function(e) { if (e.keyCode == 27) removeOverlay(); })
	  $('<div id="overlay"></div>')
	  	.css('height', $(document).height())
	    .css('top', $(document).scrollTop())
	    .css('opacity', '0')
	    .animate({'opacity': '0.98'}, 180)
	    .appendTo('body')
	    .click(function() {
	      removeOverlay();
	    });
		
	  $('<div id="overlaybox" class="'+$(this).attr('rel')+'"></div>')
	    .hide()
	    .appendTo('body');
	  var url = '?type=overlaycontent&id=' + $(this).attr('rel');	
	  $('<div id="overlayboxcontent"></div>')
	    .load(url, function() {
	      positionOverlayContent();
		   $('#overlaybox').delay(240).fadeIn(250);
	    })
	    .appendTo('#overlaybox');
		    
	  return false;;
	});

	
	$('.unselectable').disableTextSelect();
			
	// dynamically adjust folderpath rigth-margin to prevent overlapping of folderinfo
	var folderinfowidth = $('#Actiontools').width();
	$('#FolderPath').css("marginRight",folderinfowidth+20+"px");
	
});

	// all the functions when uses resizes browser
	function resizefunctions(){
		checkWindowSize();
		positionOverlayContent();
		positionGalleryFooter();
		
	}


	
	// get element heights and adjust copyright position
	function positionGalleryFooter() {
	
		// detects screen viewport (viewporty and viewportx)
		var viewportw=window,viewportd=document,viewporte=viewportd.documentElement,viewportg=viewportd.getElementsByTagName('body')[0],viewportx=viewportw.innerWidth||viewporte.clientWidth||viewportg.clientWidth,viewporty=viewportw.innerHeight||viewporte.clientHeight||viewportg.clientHeight;
		var usernavi = $('#usernavi').height();
		var siteheader = $('#SiteHeader').height();
		var galleryalbums = $('#GalleryAlbums').height();
		var galleryfooter = $('#GalleryFooter').height();
		var galleryadmintoolbar = $('#GalleryToolbar').height();
		var gallerystory = $('#GalleryStory').height()+galleryfooter;
		var guestuploadbar = $('#GuestBar').height();
		var albumviewspace = viewporty-usernavi-siteheader-galleryalbums-galleryfooter-galleryadmintoolbar-guestuploadbar;
		var photoviewspace = viewporty-usernavi-siteheader-galleryfooter;
		
		//check if the gallerystory is longer than the itemslist
		if (albumviewspace < gallerystory) {
			$('#GalleryItems').css("min-height", gallerystory+"px");
		}
		else {
			$('#GalleryItems').css("min-height", albumviewspace+"px");			
		}

		$('#browseview').css("min-height", photoviewspace+"px");
		$('#GalleryFooter').show();

//		alert("viewport:"+viewporty+"px - usernavi:"+usernavi+"px - siteheader:"+siteheader+"px - galleryalbums:"+galleryalbums+"px - galleryfooter:"+galleryfooter+"px - galleryadmintoolbar:"+galleryadmintoolbar);
	}

	
	// Overlay functions
	function positionOverlayContent() {
	  var top = ($(window).height() - $('#overlaybox').height()) / 2;
	  var left = ($(window).width() - $('#overlaybox').width()) / 2;
	  var postop = top + $(document).scrollTop();
	  if ( postop < 0) { postop = 10; }
	  $('#overlaybox')
	    .css({
	      'top': postop,
	      'left': left
	    });
	}
	function removeOverlay() {
	
          $('#flash_fallback_1').show();
	  $('body').unbind('keydown');
	  $('#overlay, #overlaybox')
	    .fadeOut(220, function() {
	      $(this).remove();
	    });
	}


	// resolution functions
	function checkWindowSize() {
	    var width = $(window).width(),
	    new_class = width > 1920 ? 'over1920' :
	                width > 1600 ? 'w1920' :
	                width > 1280 ? 'w1600' :
	                width > 1024 ? 'w1280' :
	                width < 1024 ? 'sub1024' : '';
	    $(document.body).removeClass('over1920 w1920 w1600 w1280 sub1024').addClass(new_class);
	}


  function badFolderThumb(div)
  {
    div.parentNode.className += " imageError"
  }
  function togglehd(onoff)
  {  
		
        createCookie("videohd_enabled",onoff);
	document.location.href = document.location.href;
		    
  }

   var key_cursors = true;

  function disableCursors()
  {
     key_cursors = false;
  }
			
  function enableCursors()
  {
     key_cursors = true;
  }
	

   var http_request = false;
   function makeRequest(url, parameters) {
      http_request = false;
      if (window.XMLHttpRequest) {
         http_request = new XMLHttpRequest();
         if (http_request.overrideMimeType) {
            http_request.overrideMimeType('text/html');
         }
      } else if (window.ActiveXObject) {
         try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
         } catch (e) {
            try {
               http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
         }
      }

      if (!http_request) {
         return false;
      }
      http_request.onreadystatechange = alertContents;
      http_request.open('GET', url + parameters, true);
      http_request.send(null);
   }

   function alertContents() {
      if (http_request.readyState == 4) {
         if (http_request.status == 200) {
            result = http_request.responseText;
            document.getElementById('PictureRating').innerHTML = result;            
         }
      }
   }
   



function showRateTool()
{
  var element = document.getElementById("ratingscore");
  element.style.display = "none";
	
  var element = document.getElementById("ratingid");
  element.style.display = "block";
}
function showRatingScores()
{
  var element = document.getElementById("ratingid");
  element.style.display = "none";
  var element = document.getElementById("ratingscore");
  element.style.display = "block";
}
function ratePicture(stars,image)
{
  tmp = new Image();
  joo = readCookie("ratings");
  joo = joo + "|" + image + ":" + stars;
  createCookie("ratings",joo,1000);
 // tmp.src = image + "?type=ratepicture&stars=" + stars;
  var element = document.getElementById("ratingid");
  element.style.display = "none";
//  var element = document.getElementById("ratingpending");
//  element.style.display = "none";

//  var element = document.getElementById("ratingdone");
//  element.style.display = "block";

  makeRequest(image + "?type=ratepicture&stars=" + stars, "Oer");


}

function readCookie(name) {
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for(var i=0;i < ca.length;i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  }
  return null;
}

function createCookie(name,value,days) {
  if (days) {
    var date = new Date();
    date.setTime(date.getTime()+(days*24*60*60*1000));
    var expires = "; expires="+date.toGMTString();
  }
  else expires = "";
  document.cookie = name+"="+value+expires+"; path=/";
}
        var c = readCookie('kuvatstyle');
        if (c) switchstyle(c);

function switchstyle(styleName) {
	for(vlinkki=0; (linkki = document.getElementsByTagName("link")[vlinkki]); vlinkki++) 
	{
		if(linkki.getAttribute('title') == "dark" || linkki.getAttribute('title') == "light" || linkki.getAttribute('title') == "custom")
		{
			linkki.disabled = true;
			if (linkki.getAttribute('title') == styleName) linkki.disabled = false;
		}
	}
        createCookie('kuvatstyle', styleName, 1);

}

login = false;
	
function setImageSize(size)
{ 
  createCookie('kuvatfi_imagesize',size);
  if (size == "auto") {
    detectBrowserSize();
  }
  document.location.href=document.location.href;
}

function browserSize() 
{
       if( typeof( window.innerWidth ) == 'number' ) 
       {
          return [window.innerWidth, window.innerHeight];
       }
       else if (document.documentElement && ( document.documentElement.clientWidth ||document.documentElement.clientHeight)) 
       {
          return [document.documentElement.clientWidth,document.documentElement.clientHeight];
       } 
       else if (document.body && ( document.body.clientWidth || document.body.clientHeight )) 
       {
          return [document.body.clientWidth, document.body.clientHeight];
       }
}


/**
 * .disableTextSelect - Disable Text Select Plugin
 *
 * Version: 1.1
 * Updated: 2007-11-28
 *
 * Used to stop users from selecting text
 *
 * Copyright (c) 2007 James Dempster (letssurf@gmail.com, http://www.jdempster.com/category/jquery/disabletextselect/)
 *
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 **/

/**
 * Requirements:
 * - jQuery (John Resig, http://www.jquery.com/)
 **/
(function($){if($.browser.mozilla){$.fn.disableTextSelect=function(){return this.each(function(){$(this).css({"MozUserSelect":"none"})})};$.fn.enableTextSelect=function(){return this.each(function(){$(this).css({"MozUserSelect":""})})}}else{if($.browser.msie){$.fn.disableTextSelect=function(){return this.each(function(){$(this).bind("selectstart.disableTextSelect",function(){return false})})};$.fn.enableTextSelect=function(){return this.each(function(){$(this).unbind("selectstart.disableTextSelect")})}}else{$.fn.disableTextSelect=function(){return this.each(function(){$(this).bind("mousedown.disableTextSelect",function(){return false})})};$.fn.enableTextSelect=function(){return this.each(function(){$(this).unbind("mousedown.disableTextSelect")})}}}})(jQuery)


function getPageScroll() {
	var yScroll;
	if (self.pageYOffset) {
		yScroll = self.pageYOffset;
	} else if (document.documentElement && document.documentElement.scrollTop) {
		yScroll = document.documentElement.scrollTop;
	} else if (document.body) {
		yScroll = document.body.scrollTop;
	}
	return yScroll;
}

function setPageScroll() {
	window.scroll(0, readCookie('scrollposition'));
	$('.PictureNav').each(function() {
		$(this).click(function() {
			savePageScroll();	
		});
	});
}

function savePageScroll() {
	createCookie('scrollposition', getPageScroll());
}
		
function delPageScroll() {
	createCookie('scrollposition', getPageScroll(0));
}


