
// ************************ PORTFOLIO CONFIGURATION **************************************
/*
var portfolio = {
	"2roomsflat_bogrationovskaya": {
		"description": "2-х комнатная квартира на Багратионовской",
		"images": {
			"0001": {"file": "0001.jpg", "show_in_toolbar": true, "description": ""},
			"0002": {"file": "0002.jpg", "show_in_toolbar": false, "description": ""},
			"0003": {"file": "0003.jpg", "show_in_toolbar": false, "description": ""},
			"0004": {"file": "0004.jpg", "show_in_toolbar": false, "description": ""},
			"0005": {"file": "0005.jpg", "show_in_toolbar": true, "description": ""},
			"0006": {"file": "0006.jpg", "show_in_toolbar": false, "description": ""},
			"0007": {"file": "0007.jpg", "show_in_toolbar": false, "description": ""},
			"0008": {"file": "0008.jpg", "show_in_toolbar": false, "description": ""},
			"0009": {"file": "0002.jpg", "show_in_toolbar": true, "description": ""},
			"0010": {"file": "0003.jpg", "show_in_toolbar": false, "description": ""},
			"0011": {"file": "0004.jpg", "show_in_toolbar": false, "description": ""},
			"0012": {"file": "0005.jpg", "show_in_toolbar": false, "description": ""},
			"0013": {"file": "0006.jpg", "show_in_toolbar": true, "description": ""},
			"0014": {"file": "0007.jpg", "show_in_toolbar": false, "description": ""},
			"0015": {"file": "0008.jpg", "show_in_toolbar": false, "description": ""}
		}
	},
	"3roomsflat_kotelniki": {
		"description": "3-х комнатная квартира в Кательниках",
		"images": {	
			'0001': {'file': '0001.jpg', 'show_in_toolbar': true, 'description': ''},
			'0002': {'file': '0002.jpg', 'show_in_toolbar': false, 'description': ''},
			'0003': {'file': '0003.jpg', 'show_in_toolbar': false, 'description': ''},
			'0004': {'file': '0004.jpg', 'show_in_toolbar': false, 'description': ''},
			'0005': {'file': '0005.jpg', 'show_in_toolbar': false, 'description': ''},
			'0006': {'file': '0006.jpg', 'show_in_toolbar': true, 'description': ''},
			'0007': {'file': '0007.jpg', 'show_in_toolbar': false, 'description': ''},
			'0008': {'file': '0008.jpg', 'show_in_toolbar': false, 'description': ''},
			'0009': {'file': '0009.jpg', 'show_in_toolbar': false, 'description': ''},
			'0010': {'file': '0010.jpg', 'show_in_toolbar': false, 'description': ''},
			'0011': {'file': '0011.jpg', 'show_in_toolbar': true, 'description': ''},
			'0012': {'file': '0012.jpg', 'show_in_toolbar': false, 'description': ''},
			'0013': {'file': '0013.jpg', 'show_in_toolbar': false, 'description': ''},
			'0014': {'file': '0014.jpg', 'show_in_toolbar': false, 'description': ''},
			'0015': {'file': '0015.jpg', 'show_in_toolbar': false, 'description': ''},
			'0016': {'file': '0016.jpg', 'show_in_toolbar': true, 'description': ''},
			'0017': {'file': '0017.jpg', 'show_in_toolbar': false, 'description': ''},
			'0018': {'file': '0018.jpg', 'show_in_toolbar': false, 'description': ''},
			'0019': {'file': '0019.jpg', 'show_in_toolbar': false, 'description': ''},
			'0020': {'file': '0020.jpg', 'show_in_toolbar': false, 'description': ''},
			'0021': {'file': '0021.jpg', 'show_in_toolbar': true, 'description': ''},
			'0022': {'file': '0022.jpg', 'show_in_toolbar': false, 'description': ''},
			'0023': {'file': '0023.jpg', 'show_in_toolbar': false, 'description': ''},
			'0024': {'file': '0024.jpg', 'show_in_toolbar': false, 'description': ''},
			'0025': {'file': '0025.jpg', 'show_in_toolbar': false, 'description': ''},
			'0026': {'file': '0026.jpg', 'show_in_toolbar': true, 'description': ''},
			'0027': {'file': '0027.jpg', 'show_in_toolbar': false, 'description': ''}
		}
	},
	"4roomflat_koshtoyanca": {
		"description": "4-х комнатная квартира на коштоянца",
		"images": {
			'0001': {'file': '0001.jpg', 'show_in_toolbar': true, 'description': ''},
			'0002': {'file': '0002.jpg', 'show_in_toolbar': false, 'description': ''},
			'0003': {'file': '0003.jpg', 'show_in_toolbar': false, 'description': ''},
			'0004': {'file': '0004.jpg', 'show_in_toolbar': false, 'description': ''},
			'0005': {'file': '0005.jpg', 'show_in_toolbar': false, 'description': ''},
			'0006': {'file': '0006.jpg', 'show_in_toolbar': false, 'description': ''},
			'0007': {'file': '0007.jpg', 'show_in_toolbar': true, 'description': ''},
			'0008': {'file': '0008.jpg', 'show_in_toolbar': false, 'description': ''},
			'0009': {'file': '0009.jpg', 'show_in_toolbar': false, 'description': ''},
			'0010': {'file': '0010.jpg', 'show_in_toolbar': false, 'description': ''},
			'0011': {'file': '0011.jpg', 'show_in_toolbar': false, 'description': ''},
			'0012': {'file': '0012.jpg', 'show_in_toolbar': false, 'description': ''},
			'0013': {'file': '0013.jpg', 'show_in_toolbar': true, 'description': ''},
			'0014': {'file': '0014.jpg', 'show_in_toolbar': false, 'description': ''},
			'0015': {'file': '0015.jpg', 'show_in_toolbar': false, 'description': ''},
			'0016': {'file': '0016.jpg', 'show_in_toolbar': false, 'description': ''},
			'0017': {'file': '0017.jpg', 'show_in_toolbar': false, 'description': ''},
			'0018': {'file': '0018.jpg', 'show_in_toolbar': false, 'description': ''},
			'0019': {'file': '0019.jpg', 'show_in_toolbar': true, 'description': ''},
			'0020': {'file': '0020.jpg', 'show_in_toolbar': false, 'description': ''},
			'0021': {'file': '0021.jpg', 'show_in_toolbar': false, 'description': ''},
			'0022': {'file': '0022.jpg', 'show_in_toolbar': false, 'description': ''},
			'0023': {'file': '0023.jpg', 'show_in_toolbar': false, 'description': ''},
			'0024': {'file': '0024.jpg', 'show_in_toolbar': false, 'description': ''},
			'0025': {'file': '0025.jpg', 'show_in_toolbar': true, 'description': ''},
			'0026': {'file': '0026.jpg', 'show_in_toolbar': false, 'description': ''},
			'0027': {'file': '0027.jpg', 'show_in_toolbar': false, 'description': ''},
			'0028': {'file': '0028.jpg', 'show_in_toolbar': false, 'description': ''},
			'0029': {'file': '0029.jpg', 'show_in_toolbar': false, 'description': ''},
			'0030': {'file': '0030.jpg', 'show_in_toolbar': false, 'description': ''},
			'0031': {'file': '0031.jpg', 'show_in_toolbar': true, 'description': ''},
			'0032': {'file': '0032.jpg', 'show_in_toolbar': false, 'description': ''},
			'0033': {'file': '0033.jpg', 'show_in_toolbar': false, 'description': ''},
			'0034': {'file': '0034.jpg', 'show_in_toolbar': false, 'description': ''},
			'0035': {'file': '0035.jpg', 'show_in_toolbar': false, 'description': ''},
			'0036': {'file': '0036.jpg', 'show_in_toolbar': false, 'description': ''},
			'0037': {'file': '0037.jpg', 'show_in_toolbar': true, 'description': ''},
			'0038': {'file': '0038.jpg', 'show_in_toolbar': false, 'description': ''},
			'0039': {'file': '0039.jpg', 'show_in_toolbar': false, 'description': ''},
			'0040': {'file': '0040.jpg', 'show_in_toolbar': false, 'description': ''},
			'0041': {'file': '0041.jpg', 'show_in_toolbar': false, 'description': ''},
			'0042': {'file': '0042.jpg', 'show_in_toolbar': false, 'description': ''},
			'0043': {'file': '0043.jpg', 'show_in_toolbar': true, 'description': ''},
			'0044': {'file': '0044.jpg', 'show_in_toolbar': false, 'description': ''},
			'0045': {'file': '0045.jpg', 'show_in_toolbar': false, 'description': ''},
			'0046': {'file': '0046.jpg', 'show_in_toolbar': false, 'description': ''},
			'0047': {'file': '0047.jpg', 'show_in_toolbar': false, 'description': ''},
			'0048': {'file': '0048.jpg', 'show_in_toolbar': false, 'description': ''},
			'0049': {'file': '0049.jpg', 'show_in_toolbar': true, 'description': ''},
			'0050': {'file': '0050.jpg', 'show_in_toolbar': false, 'description': ''},
			'0051': {'file': '0051.jpg', 'show_in_toolbar': false, 'description': ''},
			'0052': {'file': '0052.jpg', 'show_in_toolbar': false, 'description': ''}
		}
	},
	"5roomflat_noviyarbat": {
		"description": "5-ти комнатня квартира на новом арбате",
		"images": {
			'0001': {'file': '0001.jpg', 'show_in_toolbar': true, 'description': ''},
			'0002': {'file': '0002.jpg', 'show_in_toolbar': false, 'description': ''},
			'0003': {'file': '0003.jpg', 'show_in_toolbar': false, 'description': ''},
			'0004': {'file': '0004.jpg', 'show_in_toolbar': false, 'description': ''},
			'0005': {'file': '0005.jpg', 'show_in_toolbar': false, 'description': ''},
			'0006': {'file': '0006.jpg', 'show_in_toolbar': true, 'description': ''},
			'0007': {'file': '0007.jpg', 'show_in_toolbar': false, 'description': ''},
			'0008': {'file': '0008.jpg', 'show_in_toolbar': false, 'description': ''},
			'0009': {'file': '0009.jpg', 'show_in_toolbar': false, 'description': ''},
			'0010': {'file': '0010.jpg', 'show_in_toolbar': false, 'description': ''},
			'0011': {'file': '0011.jpg', 'show_in_toolbar': true, 'description': ''},
			'0012': {'file': '0012.jpg', 'show_in_toolbar': false, 'description': ''},
			'0013': {'file': '0013.jpg', 'show_in_toolbar': false, 'description': ''},
			'0014': {'file': '0014.jpg', 'show_in_toolbar': false, 'description': ''},
			'0015': {'file': '0015.jpg', 'show_in_toolbar': false, 'description': ''},
			'0016': {'file': '0016.jpg', 'show_in_toolbar': true, 'description': ''},
			'0017': {'file': '0017.jpg', 'show_in_toolbar': false, 'description': ''},
			'0018': {'file': '0018.jpg', 'show_in_toolbar': false, 'description': ''},
			'0019': {'file': '0019.jpg', 'show_in_toolbar': false, 'description': ''},
			'0020': {'file': '0020.jpg', 'show_in_toolbar': false, 'description': ''},
			'0021': {'file': '0021.jpg', 'show_in_toolbar': true, 'description': ''},
			'0022': {'file': '0022.jpg', 'show_in_toolbar': false, 'description': ''},
			'0023': {'file': '0023.jpg', 'show_in_toolbar': false, 'description': ''},
			'0024': {'file': '0024.jpg', 'show_in_toolbar': false, 'description': ''},
			'0025': {'file': '0025.jpg', 'show_in_toolbar': false, 'description': ''},
			'0026': {'file': '0026.jpg', 'show_in_toolbar': true, 'description': ''},
			'0027': {'file': '0027.jpg', 'show_in_toolbar': false, 'description': ''},
			'0028': {'file': '0028.jpg', 'show_in_toolbar': false, 'description': ''},
			'0029': {'file': '0029.jpg', 'show_in_toolbar': false, 'description': ''},
			'0030': {'file': '0030.jpg', 'show_in_toolbar': false, 'description': ''},
			'0031': {'file': '0031.jpg', 'show_in_toolbar': true, 'description': ''},
			'0032': {'file': '0032.jpg', 'show_in_toolbar': false, 'description': ''},
			'0033': {'file': '0033.jpg', 'show_in_toolbar': false, 'description': ''},
			'0034': {'file': '0034.jpg', 'show_in_toolbar': false, 'description': ''}
		}
	},
	"cottage": {
		"description": "Котедж",
		"images": {
			'0001': {'file': '0001.jpg', 'show_in_toolbar': true, 'description': ''},
			'0002': {'file': '0002.jpg', 'show_in_toolbar': false, 'description': ''},
			'0003': {'file': '0003.jpg', 'show_in_toolbar': false, 'description': ''},
			'0004': {'file': '0004.jpg', 'show_in_toolbar': false, 'description': ''},
			'0005': {'file': '0005.jpg', 'show_in_toolbar': false, 'description': ''},
			'0006': {'file': '0006.jpg', 'show_in_toolbar': false, 'description': ''},
			'0007': {'file': '0007.jpg', 'show_in_toolbar': true, 'description': ''},
			'0008': {'file': '0008.jpg', 'show_in_toolbar': false, 'description': ''},
			'0009': {'file': '0009.jpg', 'show_in_toolbar': false, 'description': ''},
			'0010': {'file': '0010.jpg', 'show_in_toolbar': false, 'description': ''},
			'0011': {'file': '0011.jpg', 'show_in_toolbar': false, 'description': ''},
			'0012': {'file': '0012.jpg', 'show_in_toolbar': false, 'description': ''},
			'0013': {'file': '0013.jpg', 'show_in_toolbar': true, 'description': ''},
			'0014': {'file': '0014.jpg', 'show_in_toolbar': false, 'description': ''},
			'0015': {'file': '0015.jpg', 'show_in_toolbar': false, 'description': ''},
			'0016': {'file': '0016.jpg', 'show_in_toolbar': false, 'description': ''},
			'0017': {'file': '0017.jpg', 'show_in_toolbar': false, 'description': ''},
			'0018': {'file': '0018.jpg', 'show_in_toolbar': false, 'description': ''},
			'0019': {'file': '0019.jpg', 'show_in_toolbar': true, 'description': ''},
			'0020': {'file': '0020.jpg', 'show_in_toolbar': false, 'description': ''},
			'0021': {'file': '0021.jpg', 'show_in_toolbar': false, 'description': ''},
			'0022': {'file': '0022.jpg', 'show_in_toolbar': false, 'description': ''},
			'0023': {'file': '0023.jpg', 'show_in_toolbar': false, 'description': ''},
			'0024': {'file': '0024.jpg', 'show_in_toolbar': false, 'description': ''},
			'0025': {'file': '0025.jpg', 'show_in_toolbar': true, 'description': ''},
			'0026': {'file': '0026.jpg', 'show_in_toolbar': false, 'description': ''},
			'0027': {'file': '0027.jpg', 'show_in_toolbar': false, 'description': ''},
			'0028': {'file': '0028.jpg', 'show_in_toolbar': false, 'description': ''},
			'0029': {'file': '0029.jpg', 'show_in_toolbar': false, 'description': ''},
			'0030': {'file': '0030.jpg', 'show_in_toolbar': false, 'description': ''},
			'0031': {'file': '0031.jpg', 'show_in_toolbar': true, 'description': ''},
			'0032': {'file': '0032.jpg', 'show_in_toolbar': false, 'description': ''},
			'0033': {'file': '0033.jpg', 'show_in_toolbar': false, 'description': ''},
			'0034': {'file': '0034.jpg', 'show_in_toolbar': false, 'description': ''},
			'0035': {'file': '0035.jpg', 'show_in_toolbar': false, 'description': ''},
			'0036': {'file': '0036.jpg', 'show_in_toolbar': false, 'description': ''},
			'0037': {'file': '0037.jpg', 'show_in_toolbar': true, 'description': ''},
			'0038': {'file': '0038.jpg', 'show_in_toolbar': false, 'description': ''},
			'0039': {'file': '0039.jpg', 'show_in_toolbar': false, 'description': ''},
			'0040': {'file': '0040.jpg', 'show_in_toolbar': false, 'description': ''},
			'0041': {'file': '0041.jpg', 'show_in_toolbar': false, 'description': ''},
			'0042': {'file': '0042.jpg', 'show_in_toolbar': false, 'description': ''},
			'0043': {'file': '0043.jpg', 'show_in_toolbar': true, 'description': ''},
			'0044': {'file': '0044.jpg', 'show_in_toolbar': false, 'description': ''},
			'0045': {'file': '0045.jpg', 'show_in_toolbar': false, 'description': ''},
			'0046': {'file': '0046.jpg', 'show_in_toolbar': false, 'description': ''},
			'0047': {'file': '0047.jpg', 'show_in_toolbar': false, 'description': ''},
			'0048': {'file': '0048.jpg', 'show_in_toolbar': false, 'description': ''},
			'0049': {'file': '0049.jpg', 'show_in_toolbar': true, 'description': ''},
			'0050': {'file': '0050.jpg', 'show_in_toolbar': false, 'description': ''},
			'0051': {'file': '0051.jpg', 'show_in_toolbar': false, 'description': ''},
			'0052': {'file': '0052.jpg', 'show_in_toolbar': false, 'description': ''},
			'0053': {'file': '0053.jpg', 'show_in_toolbar': false, 'description': ''}
		}
	},
	"cottage1": {
		"description": "Котедж",
		"images": {
			'0001': {'file': '0001.jpg', 'show_in_toolbar': true, 'description': ''},
			'0002': {'file': '0002.jpg', 'show_in_toolbar': false, 'description': ''},
			'0003': {'file': '0003.jpg', 'show_in_toolbar': false, 'description': ''},
			'0004': {'file': '0004.jpg', 'show_in_toolbar': false, 'description': ''},
			'0005': {'file': '0005.jpg', 'show_in_toolbar': false, 'description': ''},
			'0006': {'file': '0006.jpg', 'show_in_toolbar': true, 'description': ''},
			'0007': {'file': '0007.jpg', 'show_in_toolbar': false, 'description': ''},
			'0008': {'file': '0008.jpg', 'show_in_toolbar': false, 'description': ''},
			'0009': {'file': '0009.jpg', 'show_in_toolbar': false, 'description': ''},
			'0010': {'file': '0010.jpg', 'show_in_toolbar': false, 'description': ''},
			'0011': {'file': '0011.jpg', 'show_in_toolbar': true, 'description': ''},
			'0012': {'file': '0012.jpg', 'show_in_toolbar': false, 'description': ''},
			'0013': {'file': '0013.jpg', 'show_in_toolbar': false, 'description': ''},
			'0014': {'file': '0014.jpg', 'show_in_toolbar': false, 'description': ''},
			'0015': {'file': '0015.jpg', 'show_in_toolbar': false, 'description': ''},
			'0016': {'file': '0016.jpg', 'show_in_toolbar': true, 'description': ''},
			'0017': {'file': '0017.jpg', 'show_in_toolbar': false, 'description': ''},
			'0018': {'file': '0018.jpg', 'show_in_toolbar': false, 'description': ''},
			'0019': {'file': '0019.jpg', 'show_in_toolbar': false, 'description': ''},
			'0020': {'file': '0020.jpg', 'show_in_toolbar': false, 'description': ''},
			'0021': {'file': '0021.jpg', 'show_in_toolbar': true, 'description': ''},
			'0022': {'file': '0022.jpg', 'show_in_toolbar': false, 'description': ''},
			'0023': {'file': '0023.jpg', 'show_in_toolbar': false, 'description': ''},
			'0024': {'file': '0024.jpg', 'show_in_toolbar': false, 'description': ''},
			'0025': {'file': '0025.jpg', 'show_in_toolbar': false, 'description': ''},
			'0026': {'file': '0026.jpg', 'show_in_toolbar': true, 'description': ''},
			'0027': {'file': '0027.jpg', 'show_in_toolbar': false, 'description': ''},
			'0028': {'file': '0028.jpg', 'show_in_toolbar': false, 'description': ''},
			'0029': {'file': '0029.jpg', 'show_in_toolbar': false, 'description': ''},
			'0030': {'file': '0030.jpg', 'show_in_toolbar': false, 'description': ''},
			'0031': {'file': '0031.jpg', 'show_in_toolbar': true, 'description': ''},
			'0032': {'file': '0032.jpg', 'show_in_toolbar': false, 'description': ''},
			'0033': {'file': '0033.jpg', 'show_in_toolbar': false, 'description': ''},
			'0034': {'file': '0034.jpg', 'show_in_toolbar': false, 'description': ''},
			'0035': {'file': '0035.jpg', 'show_in_toolbar': true, 'description': ''}
		}
	}
};

*/



// ************************ MAIN PAGE CENTER BLOCK **************************************

var mainContentBlocksCount = 6;
var mainContentBlockSelected = 1;
var scrollMin = -1;
var scrollMax = 106;
var scrollMarkerSize = 20;

function switchContent(blockID){
	if(blockID != mainContentBlockSelected){
		$("#main-block-content").animate({top: -180 * (blockID - 1)} , 500);
	
		$("#digit-button-" + mainContentBlockSelected).removeClass("digit-button-active").addClass("digit-button-simple");
		$("#digit-button-" + blockID).removeClass("digit-button-simple").addClass("digit-button-active");
		
		var scrollMarkerPosition = scrollMin + Math.round((scrollMax - scrollMin)/(mainContentBlocksCount - 1))*(blockID - 1);
		if(scrollMarkerPosition < scrollMin) scrollMarkerPosition = scrollMin;
		if(scrollMarkerPosition > scrollMax) scrollMarkerPosition = scrollMax;
		
		$("#main-block-scroll-marker").animate({top: scrollMarkerPosition} , 500);
		
		mainContentBlockSelected = blockID;
	}
}



// ************************ GALLERY **************************************

var oldCurX = 0;
var oldCurY = 0;
var newCurX = 0;
var newCurY = 0;

var galleryStepsCount = 5;
var galleryContainer = null;
var galleryContent = null;
var galleryMargin = 100;
var galleryImageWidth = 94;
var galleryImageHeight = 70;

var galleryArrowRight = null;
var galleryArrowLeft = null;

var galleryImages = new Array();
var gallerySmallImages = new Array();
var galleryBigImages = new Array();



function galleryAction(evt){
	
	var coords = getMouseOffset(galleryContainer, evt);
	 
	newCurX = coords.x;
	newCurY = coords.y;
}

function updateGallery(){
	var containerHeight = galleryContainer.clientHeight;
	newCurY = containerHeight / 2 - Math.abs(newCurY - containerHeight / 2);
	
	if((newCurX != oldCurX) || (newCurY != oldCurY)){
		
		var containerWidth = galleryContainer.clientWidth;
		var containerHeight = galleryContainer.clientHeight;
		var imagesWidth = galleryContent.clientWidth;
		
		var position =  0;
		var startImage = 0;
		var finishImage = 0;
		var currentImage = 0;
		var affectedBlocks = 0;
		var imagesWidth = 0;
		
		var positionOffsetLeft1 = 0;
		var positionOffsetLeft2 = 0;
		var currentImageOffset = 0;
		
		for(var i in galleryImages) imagesWidth += galleryImages[i].getWidth();
		
		imagesWidth = galleryImageWidth * (galleryImages.length - 1);
		affectedBlocks = containerWidth / galleryImageWidth / 4;
		
		var dx = (newCurX - oldCurX) / galleryStepsCount;
		if(dx > 30) dx = 30;
		if(dx < -30) dx = -30;
		oldCurX = oldCurX + dx;
		oldCurY = oldCurY + (newCurY - oldCurY) / galleryStepsCount;
		
		var heightScale = (1 - Math.abs((containerHeight / 2- oldCurY) * 2 / containerHeight)) * 1.5;
		if(heightScale > 1) heightScale = 1;
		
		if(Math.abs(newCurX - oldCurX) < 1) oldCurX = newCurX;
		
		xScale = (Math.sin(-1.57 + 6.28 * oldCurX / containerWidth) + 1) / 2;
		xScale = xScale * xScale * heightScale;
		
		
		affectedBlocks = affectedBlocks * xScale;
		if(affectedBlocks < 1) affectedBlocks = 1;
		galleryMargin = galleryImageWidth * affectedBlocks;

		position = galleryMargin - (imagesWidth + galleryMargin * 2 - containerWidth) * (oldCurX / containerWidth);
		startImage = Math.floor((oldCurX - affectedBlocks * galleryImageWidth - position) / galleryImageWidth) + 1;
		finishImage = Math.floor((oldCurX + affectedBlocks * galleryImageWidth - position) / galleryImageWidth) + 1;
		currentImage = (oldCurX - position) / galleryImageWidth + 1;
		
		if(startImage < 1) startImage = 1;
		if(finishImage > galleryImages.length - 1) finishImage = galleryImages.length - 1;
		
		var sumWidth = 0;
		
		for(var i = 1; i < galleryImages.length; i++){
			if(i < startImage || i > finishImage) galleryImages[i].setRatio(1);
			else{
				
				var imgOffset = oldCurX - (position + galleryImageWidth * i - Math.round(galleryImageWidth / 2));
				var imgRatio = Math.sin(1.57 - 1.57 * imgOffset / (affectedBlocks * galleryImageWidth)) * xScale + 1;
				if(imgRatio < 1) imgRatio = 1;
				
				galleryImages[i].setRatio(imgRatio);
				
				if(i < Math.floor(currentImage)) positionOffsetLeft1 += galleryImageWidth * (imgRatio - 1);
				if(i == Math.floor(currentImage)) positionOffsetLeft2 += galleryImageWidth * (imgRatio - 1) * (currentImage - Math.floor(currentImage));
			}
			if(imgRatio > 1.1 && !galleryImages[i].big){
				galleryImages[i].src = galleryBigImages[i].src;
				galleryImages[i].big = true;
			}
			if(imgRatio <= 1.1 && galleryImages[i].big){
				galleryImages[i].src = gallerySmallImages[i].src;
				galleryImages[i].big = false;
			}
			
			sumWidth += galleryImages[i].getWidth() + 1;
		}
		
		
		var correctedPos = position - positionOffsetLeft1 - positionOffsetLeft2;
		
		if(correctedPos > oldCurX) correctedPos = oldCurX;
		if((correctedPos + sumWidth) < oldCurX) correctedPos = oldCurX - sumWidth;
		
		if(correctedPos > -10 && galleryArrowLeft.visible){
			galleryArrowLeft.animate({left: -30}, 500);
			galleryArrowLeft.visible = false;
		}
		if(correctedPos <= -10 && !galleryArrowLeft.visible){
			galleryArrowLeft.animate({left: 20}, 500);
			galleryArrowLeft.visible = true;
		}
		
		if((correctedPos + sumWidth) > (containerWidth + 10) && !galleryArrowRight.visible){
			galleryArrowRight.animate({right: 20}, 500);
			galleryArrowRight.visible = true;
		}
		if((correctedPos + sumWidth) <= (containerWidth + 10) && galleryArrowRight.visible){
			galleryArrowRight.animate({right: -30}, 500);
			galleryArrowRight.visible = false;
		}
		
		galleryContent.style.left = Math.round(correctedPos) + "px";
	}
}

function gallery_init(){
	
	galleryContainer = document.getElementById('images-container');
	galleryContent = document.getElementById('gallery-images');
	galleryArrowLeft = $("#gallery-arrow-left");
	galleryArrowRight = $("#gallery-arrow-right");
	galleryArrowLeft.visible = false;
	galleryArrowRight.visible = false;
	
	galleryContent.position = 100;
	galleryContent.setPoition = function(){
		this.style.left = Math.floor(this.position) + "px";
	}
	
	galleryContainer.onmousemove = galleryAction;
	 
	setInterval('updateGallery()', 10 );	
	
	var k = 0;
	for(var i in portfolio){
		for(var j in portfolio[i]["images"]){
			if(portfolio[i]["images"][j]["show_in_toolbar"]){
				k++;
				
				var imgDescription = portfolio[i]["description"];
				if(portfolio[i]["images"][j]["description"]) imgDescription += " | " + portfolio[i]["images"][j]["description"];
				
				var  code = "";
				code += "<td style='vertical-align: middle;'>";
				code += "<a href='/portfolio/gallery/?project=" + i + "&image=" + j + "'>";
				code += "<img id='gallery-image-" + k + "' class='gallery-image' src='' width='94' height='70' border='0'";
				if(imgDescription != "") code += " alt='" + imgDescription + "'";
				code += ">";
				
				code += "</a>";
				code += "</td>";
				
				$("#gallery-images tbody tr").append(code);
				
				galleryImages[k] = document.getElementById("gallery-image-" + k);
				galleryImages[k].ratio = 1;
				galleryImages[k].big = false;
				galleryImages[k].setRatio = function(ratio){
					this.ratio = ratio;
					this.style.width = Math.floor(this.ratio * galleryImageWidth) + "px";
					this.style.height = Math.floor(this.ratio * galleryImageHeight) + "px";
				}
				galleryImages[k].getWidth = function(){
					return this.ratio * galleryImageWidth;
				}
				
				galleryBigImages[k] = new Image();
				galleryBigImages[k].src = "/images/portfolio/" + i + "/188x140_" + portfolio[i]["images"][j]["file"];
				
				gallerySmallImages[k] = new Image();
				gallerySmallImages[k].src = "/images/portfolio/" + i + "/94x70_" + portfolio[i]["images"][j]["file"];
				
				galleryImages[k].src = gallerySmallImages[k].src;
			}
		}
	}
	
	newCurX = Math.round(galleryContainer.clientWidth / 2);
	newCurY = 0;
}

var currentImage = null;
var portfolioImageLoaded = false;
var portfolioImageReadyToChange = false;
var portfolioImageAlreadyChanging = false;
var portfolioImageCurrentProject = null;
var portfolioImageCurrentImage = null;
var portfolioProject = null;

function portfolioLayout(){
	
	var containerWidth = $("#portfolio-body").width();
	var height = Math.round(containerWidth / 4 * 3);
	if(height > 600) height = 600;
	if((height / 2) != Math.floor(height / 2)) height -= 1;
	
	$("#portfolio-body").css("height", height);
	
	var imgHeight = Math.round(containerWidth / 1060 * 795);
	$("#portfolio-item").css("width", containerWidth);
	$("#portfolio-item").css("height", imgHeight);
	$("#portfolio-item").css("top",  Math.round((height - imgHeight) / 2));
	
	$("#portfolio-text").css("top", height);
	$(".portfolio-text-header").css("fontSize", 16 - Math.ceil((1000 - containerWidth) / 100) + "pt");
	$(".portfolio-text-description").css("fontSize", 10 - Math.ceil((1000 - containerWidth) / 200) + "pt");
	
	$("#portfolio-images-bar").css("height", height - 50);
	
	
	$("#loading").css({
		"top": Math.round((height - 22) / 2),
		"left": Math.round((containerWidth - 361) / 2)
	});
	
	$("#portfolio-text").css({
		"width": containerWidth
	});
	
	$("#portfolio-text-foreground").css("width", containerWidth - 180);
	$("#portfolio-text").css("height",  $("#portfolio-text-foreground").height() + 40);
	
	if(currentImage == null) $("#portfolio-text").css("top", height);
	else $("#portfolio-text").css("top", (height - $("#portfolio-text").height()));
		
	$("#portfolio-hotkeyst").css("left", Math.round((containerWidth - $("#portfolio-hotkeyst").width()) / 2));
}

function portfolioLoadNewImage(step){
	if(step == 0){
		$("#loading").hide();
		$("#portfolio-text").animate({"top": $("#portfolio-body").height()}, 300, "linear", function(){
			portfolioLoadNewImage(1);
		});
	}
	if(step == 1){
		$("#loading").fadeIn("fast", function(){
			portfolioImageReadyToChange = true;
			portfolioLoadNewImage(2);
		});
	}
	if(step == 2){
		if(portfolioImageReadyToChange && portfolioImageLoaded) portfolioLoadNewImage(3);
	}
	if(step == 3){
		$("#loading").fadeOut("fast", function(){
			portfolioLoadNewImage(4);
		});
	}
	if(step == 4){
		$("#portfolio-item").fadeOut("fast", function(){
			portfolioLoadNewImage(5);
		});
	}
	if(step == 5){
		$("#portfolio-item").attr("src", currentImage.src).fadeIn("fast", function(){
			portfolioLoadNewImage(6);	
		});
	}
	if(step == 6){
		$(".portfolio-text-header").html(portfolio[portfolioImageCurrentProject]["description"]);
		$(".portfolio-text-description").html(portfolio[portfolioImageCurrentProject]["images"][portfolioImageCurrentImage]["description"]);
		$("#portfolio-text-foreground").css("width", $("#portfolio-body").width() - 180);
		
		$("#portfolio-text").css("height",  $("#portfolio-text-foreground").height() + 40);
		if(portfolioToolbarEnabled){
			$("#portfolio-text").animate({"top": $("#portfolio-body").height() - $("#portfolio-text").height()}, 300, "linear", function(){
				portfolioLoadNewImage(7);
			});
		}
		else portfolioLoadNewImage(7);
	}
	if(step == 7){
		portfolioImageAlreadyChanging = false;
	}
}
function portfolioShowImage(project, img){
	if(!portfolioImageAlreadyChanging){
		portfolioImageCurrentProject = project;
		portfolioImageCurrentImage = img;
		portfolioImageAlreadyChanging = true;
		portfolioImageLoaded = false;
		portfolioImageReadyToChange = false;
		
		var loader = new ImageLoader("/images/portfolio/" + project + "/1060x795_" + portfolio[project]["images"][img]["file"]);
		loader.loadEvent = function(loadedImg){
			currentImage = loadedImg;
			portfolioImageLoaded = true;
			portfolioLoadNewImage(2);
		}
		loader.load();
		
		portfolioLoadNewImage(0);
	}
}

var imagesBarContainer = null;
var imagesBarContent = null;

function portfolio_init(){
	
	document.onkeydown = function(e){
		var keynum;
		var shiftPressed;
		var altPressed;
		var ctrlPressed;
			
		if(window.event){
			keynum = event.keyCode;
			shiftPressed = event.shiftKey;
			altPressed = event.altKey;
			ctrlPressed = event.ctrlKey;
		}
		else if(e.which){
			keynum = e.which;
			shiftPressed = e.shiftKey;
			altPressed = e.altKey;
			ctrlPressed = e.ctrlKey;
		}
		if(keynum == 32) return false;
		if(keynum == 13) return false;
	}
	document.onkeyup = function(e){
		var keynum;
		var shiftPressed;
		var altPressed;
		var ctrlPressed;
			
		if(window.event){
			keynum = event.keyCode;
			shiftPressed = event.shiftKey;
			altPressed = event.altKey;
			ctrlPressed = event.ctrlKey;
		}
		else if(e.which){
			keynum = e.which;
			shiftPressed = e.shiftKey;
			altPressed = e.altKey;
			ctrlPressed = e.ctrlKey;
		}
		return documentKeyPressed({"shift": shiftPressed, "alt": altPressed, "ctrl": ctrlPressed, "key": keynum});
	}
		
		
	var project = getRequestParameter("project");
	var img = getRequestParameter("image");
	
	
	if(project == ""){
		project = portfolio[0];
		for(var i in portfolio){
			for(var j in portfolio[i]["images"]){
				project = i;
				img = j;
				break;	
			}
			break;
		}
	}
	
	portfolioProject = project;
	
	$("#portfolio-body").append("<img id='portfolio-item' src='/images/spacer.gif' width='1060' height='795' border='0'>");
	$("#portfolio-body").append("<div id='portfolio-text'><div id='portfolio-text-background'></div><div id='portfolio-text-foreground'><div class='portfolio-text-header'></div><div class='portfolio-text-description'></div></div></div>");
	$("#portfolio-text-background").css("opacity", 0.5);
	
	$("#portfolio-body").append("<div id='portfolio-hotkeyst'><img class='png' src='/images/hotkeys.png' width='443' height='39' border='0'></div>");
		
	$("#portfolio-body").append("<div id='portfolio-images-bar'><div id='portfolio-images-box'></div></div>");
	
	
	imagesBarContainer = $("#portfolio-images-bar");
	imagesBarContent = $("#portfolio-images-box");
	
	 $("#portfolio-images-bar").bind("mousemove", function(e){
        var coords = getMouseOffset(this, e);
		 
		newCurX = coords.x;
		newCurY = coords.y;
    });
    
    setInterval('updatePortfolioImages()', 10 );

	
	$("#portfolio-body").append("<img id='loading' src='/images/loader.gif' width='361' height='22'>");
	
	/*
	for(var i in portfolio){
		for(var j in portfolio[i]["images"]){
			
			$("#portfolio-images-box").append("<div class='portfolio-images-box-item'><img class='png' src='/images/img_shadow.png' width='112' height='88' border='0' style='position: absolute; top: 0px; left: 0px; z-index: 100;'><a href='#' onclick='portfolioShowImage(\"" + i + "\", \"" + j + "\"); return false;'><img src='/images/portfolio/" + i + "/94x70_" + portfolio[i]["images"][j]["file"] +"' width='94' height='70' border='0' style='position: absolute; top: 8px; left: 8px; z-index: 110; border: solid #ffffff 1px;'></a></div>");
			
		}
	}
	*/
	
	for(var j in portfolio[project]["images"]){
		
		$("#portfolio-images-box").append("<div class='portfolio-images-box-item'><img class='png' src='/images/img_shadow.png' width='112' height='88' border='0' style='position: absolute; top: 0px; left: 0px; z-index: 100;'><a href='#' onclick='portfolioShowImage(\"" + project + "\", \"" + j + "\"); return false;'><img src='/images/portfolio/" + project + "/94x70_" + portfolio[project]["images"][j]["file"] +"' width='94' height='70' border='0' style='position: absolute; top: 8px; left: 8px; z-index: 110; border: solid #ffffff 1px;'></a></div>");
		
	}
	
	portfolioLayout();
	portfolioShowImage(project, img);
	
	
	
}


function updatePortfolioImages(){
	
	if(newCurY != oldCurY){
		oldCurY = oldCurY + Math.round((newCurY - oldCurY) / 10);
		
		var containerHeight = imagesBarContainer.height();
		var contentHeight = imagesBarContent.height();
		
		
		imagesBarContent.css("top", 10 + Math.round((containerHeight - 20 - contentHeight) * (oldCurY / containerHeight)));
	}
}

function documentKeyPressed(params){
	if(params.key == 32){
		if(params.shift) portfolioPrevImage();
		else portfolioNextImage();
			
	}
	if(params.key == 13){
		portfolioToggleToolbars();
	}
	if(params.key == 27){
		portfolioToggleHotkeys();
	}
	return false;
}

var portfolioArray = null;
var portfolioArrayCurrentIndex = 0;
var portfolioToolbarEnabled = true;
var portfolioHotkeysEnabled = true;

function initPortfolioArray(){
	portfolioArray = new Array();
	
	var iter = 0;
	//for(var i in portfolio){
		for(var j in portfolio[portfolioProject]["images"]){
			portfolioArray[iter] = {"project": portfolioProject, "image": j};
			if(portfolioImageCurrentProject == portfolioProject && portfolioImageCurrentImage == j) portfolioArrayCurrentIndex = iter;
			iter++;
		}
	//}
}

function portfolioNextImage(){
	if(!portfolioArray) initPortfolioArray();
	portfolioArrayCurrentIndex++;
	if(portfolioArrayCurrentIndex >= portfolioArray.length) portfolioArrayCurrentIndex = 0;
	portfolioShowImage(portfolioArray[portfolioArrayCurrentIndex]["project"], portfolioArray[portfolioArrayCurrentIndex]["image"]);
}

function portfolioPrevImage(){
	if(!portfolioArray) initPortfolioArray();
	portfolioArrayCurrentIndex--;
	if(portfolioArrayCurrentIndex < 0) portfolioArrayCurrentIndex =  portfolioArray.length - 1;
	portfolioShowImage(portfolioArray[portfolioArrayCurrentIndex]["project"], portfolioArray[portfolioArrayCurrentIndex]["image"]);
}

function portfolioToggleToolbars(){
	if(portfolioToolbarEnabled){
		$("#portfolio-images-bar").animate({"right": -150}, 300);
		$("#portfolio-text").animate({"top": $("#portfolio-body").height()}, 300);
		
		portfolioToolbarEnabled = false;
	}
	else{
		$("#portfolio-images-bar").animate({"right": 25}, 300);
		
		$("#portfolio-text").animate({"top": $("#portfolio-body").height() - $("#portfolio-text").height()}, 300, "linear");
		portfolioToolbarEnabled = true;
		
	}
}
function portfolioToggleHotkeys(){
	if(portfolioHotkeysEnabled){
		$("#portfolio-hotkeyst").animate({"top": -50}, 300);
		portfolioHotkeysEnabled = false;
	}
	else{
		$("#portfolio-hotkeyst").animate({"top": 10}, 300);
		portfolioHotkeysEnabled = true;
	}
}


var currentPortfolioProjectItemOver = null;
var porfolioProjectPhaze = new Array();
var portfolioProjectImages = new Array();
var porfolioProjectInMotion = false;
var porfolioProjectInterval = null;
var porfolioProjectInitialized = false;

function overPortfolioProjectItem(project){
	porfolioProjectInterval = setInterval("rotatePortfolioProject('" + project + "');", 100);
	
	$("#PortfolioProject-" + project + " ").css("background-color", "#f2ece4");
}
function outPortfolioProjectItem(project){
	clearInterval(porfolioProjectInterval);
	$("#PortfolioProject-" + project + " ").css("background-color", "#e7ded3");
}

function rotatePortfolioProject(project){
	if((!porfolioProjectInitialized) || porfolioProjectInMotion) return;
	porfolioProjectInMotion = true;
	rotatePortfolioProjectStep(project);
	
}

function rotatePortfolioProjectStep(project){
	porfolioProjectPhaze[project].phaze++;
	
	if(porfolioProjectPhaze[project].phaze > porfolioProjectPhaze[project].imagesCount) porfolioProjectPhaze[project].phaze = 1;
	
	var mess = "";
	
	for(var i = 0; i < porfolioProjectPhaze[project].imagesCount; i++){
		
		var relativePhaze = porfolioProjectPhaze[project].imagesCount + porfolioProjectPhaze[project].phaze - i;
		if(relativePhaze > porfolioProjectPhaze[project].imagesCount) relativePhaze -= porfolioProjectPhaze[project].imagesCount;
		
		
		var zIndx = 0;
		
		if(relativePhaze > 3 ) zIndx = 50;
		if(relativePhaze == 1 ) zIndx = 100;
		if(relativePhaze == 2 ) zIndx = 200;
		if(relativePhaze == 3 ) zIndx = 150;

		if(relativePhaze == 1){
			
			$("#PortfolioProjectImage-" + project + "-" + i).css("z-index", zIndx).animate({
				"left": 180,
				"top": 60,
				"width": 94,
				"height": 70
			}, 400);
		}
		if(relativePhaze == 2){
			$("#PortfolioProjectImage-" + project + "-" + i).attr("src", portfolioProjectImages[project][i].big.src).css("z-index", zIndx).animate({
				"left": 53,
				"top": 20,
				"width": 188,
				"height": 140
			}, 400);
		}
		if(relativePhaze == 3){
			$("#PortfolioProjectImage-" + project + "-" + i).attr("src", portfolioProjectImages[project][i].small.src).css("z-index", zIndx).animate({
				"left": 20,
				"top": 60,
				"width": 94,
				"height": 70
			}, 400, null, function(){
				setTimeout("porfolioProjectInMotion = false", 500);
			});
		}
		if(relativePhaze == 4){
			$("#PortfolioProjectImage-" + project + "-" + i).css("z-index", zIndx).animate({
				"left": 100,
				"top": 60,
				"width": 94,
				"height": 70
			}, 400);
		}
		
		
		mess += "" + i + " . " + relativePhaze + " . " + zIndx + "         ";
		
	}
	//console.log(mess);
	
}



function porfolioProjectsInit(){
	
	for(var project in portfolio){
		$("#PorfolioProjectContainer").append("<div id='PortfolioProject-" + project + "' style='position: relative; float: left; width: 300px; height: 220px; overflow: hidden; ' onmouseover='overPortfolioProjectItem(\"" + project + "\");' onmouseout='outPortfolioProjectItem(\"" + project + "\");'><div style='text-align: center; margin-top: 175px;'><strong>" + portfolio[project]["description"] + "</strong></div><div class='corner corner-tl'><img class='cornerimg png' src='/images/corners_content.png' width='20' height='95' border='0'></div><div class='corner corner-tr'><img class='cornerimg png' src='/images/corners_content.png' width='20' height='95' border='0'></div><div class='corner corner-br'><img class='cornerimg png' src='/images/corners_content.png' width='20' height='95' border='0'></div><div class='corner corner-bl'><img class='cornerimg png' src='/images/corners_content.png' width='20' height='95' border='0'></div></div>");
		
		portfolioProjectImages[project] = new Array();
		porfolioProjectPhaze[project] = {
			"phaze": 0,
			"imagesCount": 0	
		};
		
		
		var i = 0;
		for(var img in portfolio[project]["images"]){
			
			if(portfolio[project]["images"][img]["show_in_toolbar"]){
					
				porfolioProjectPhaze[project].imagesCount ++;
				
				portfolioProjectImages[project][i] = {
					"small": new Image(),
					"big": new Image()
				};
				
				portfolioProjectImages[project][i].small.src = "/images/portfolio/" + project + "/94x70_" + portfolio[project]["images"][img]["file"];
				portfolioProjectImages[project][i].big.src = "/images/portfolio/" + project + "/188x140_" + portfolio[project]["images"][img]["file"];
					
				$("#PortfolioProject-" + project).append("<a href='/portfolio/gallery/?project=" + project + "&image=" + img + "'><img id='PortfolioProjectImage-" + project + "-" + i + "' width='94' height='70' style='border: solid #3c3428 1px; position: absolute; top: 60px; left: 100px; z-index: 100;'></a>");
				
				$("#PortfolioProjectImage-" + project + "-" + i).attr("src", portfolioProjectImages[project][i].small.src);
				
				
				i++;
			}

		}
		rotatePortfolioProjectStep(project);
	}
	
	setTimeout("porfolioProjectInitialized = true;", 1000);
}
