/*
 * jQuery ifixpng plugin
 * (previously known as pngfix)
 * Version 2.1  (23/04/2008)
 * @requires jQuery v1.1.3 or above
 *
 * Examples at: http://jquery.khurshid.com
 * Copyright (c) 2007 Kush M.
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 */
 
 /**
  *
  * @example
  *
  * optional if location of pixel.gif if different to default which is images/pixel.gif
  * $.ifixpng('media/pixel.gif');
  *
  * $('img[@src$=.png], #panel').ifixpng();
  *
  * @apply hack to all png images and #panel which icluded png img in its css
  *
  * @name ifixpng
  * @type jQuery
  * @cat Plugins/Image
  * @return jQuery
  * @author jQuery Community
  */
 
(function($) {

	/**
	 * helper variables and function
	 */
	$.ifixpng = function(customPixel) {
		$.ifixpng.pixel = customPixel;
	};
	
	$.ifixpng.getPixel = function() {
		return $.ifixpng.pixel || '/js/pixel.gif';
	};
	
	var hack = {
		ltie7  : $.browser.msie && $.browser.version < 7,
		filter : function(src) {
			return "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true,sizingMethod=scale,src='"+src+"')";
		}
	};
	
	/**
	 * Applies ie png hack to selected dom elements
	 *
	 * $('img[@src$=.png]').ifixpng();
	 * @desc apply hack to all images with png extensions
	 *
	 * $('#panel, img[@src$=.png]').ifixpng();
	 * @desc apply hack to element #panel and all images with png extensions
	 *
	 * @name ifixpng
	 */
	 
	$.fn.ifixpng = hack.ltie7 ? function() {
    	return this.each(function() {
			var $$ = $(this);
			// in case rewriting urls
			var base = $('base').attr('href');
			if (base) {
				// remove anything after the last '/'
				base = base.replace(/\/[^\/]+$/,'/');
			}
			if ($$.is('img') || $$.is('input')) { // hack image tags present in dom
				if ($$.attr('src')) {
					if ($$.attr('src').match(/.*\.png([?].*)?$/i)) { // make sure it is png image
						// use source tag value if set 
						var source = (base && $$.attr('src').search(/^(\/|http:)/i)) ? base + $$.attr('src') : $$.attr('src');
						// apply filter
						$$.css({filter:hack.filter(source), width:$$.attr('width'), height:$$.attr('height')})
						  .attr({src:$.ifixpng.getPixel()})
						  .positionFix();
					}
				}
			} else { // hack png css properties present inside css
				var image = $$.css('backgroundImage');
				if (image.match(/^url\(["']?(.*\.png([?].*)?)["']?\)$/i)) {
					image = RegExp.$1;
					image = (base && image.substring(0,1)!='/') ? base + image : image;
					$$.css({backgroundImage:'none', filter:hack.filter(image)})
					  .children().children().positionFix();
				}
			}
		});
	} : function() { return this; };
	
	/**
	 * Removes any png hack that may have been applied previously
	 *
	 * $('img[@src$=.png]').iunfixpng();
	 * @desc revert hack on all images with png extensions
	 *
	 * $('#panel, img[@src$=.png]').iunfixpng();
	 * @desc revert hack on element #panel and all images with png extensions
	 *
	 * @name iunfixpng
	 */
	 
	$.fn.iunfixpng = hack.ltie7 ? function() {
    	return this.each(function() {
			var $$ = $(this);
			var src = $$.css('filter');
			if (src.match(/src=["']?(.*\.png([?].*)?)["']?/i)) { // get img source from filter
				src = RegExp.$1;
				if ($$.is('img') || $$.is('input')) {
					$$.attr({src:src}).css({filter:''});
				} else {
					$$.css({filter:'', background:'url('+src+')'});
				}
			}
		});
	} : function() { return this; };
	
	/**
	 * positions selected item relatively
	 */
	 
	$.fn.positionFix = function() {
		return this.each(function() {
			var $$ = $(this);
			var position = $$.css('position');
			if (position != 'absolute' && position != 'relative') {
				$$.css({position:'relative'});
			}
		});
	};

})(jQuery);



var hash = str_replace('#', '', window.location.hash);
hash = parseInt(hash);

// checker if window resized = repaint canvas
var resized = false;

//var dx = -2;
//var dy = 2;

// canvas variable
var ctx = 0;
//var ctx2 = 0;

// timing variable - setInterval, setTimeout
var int = 0;


var minY = 0; // minimum Y coord.
var maxY = 0; // maximum Y coord.
var minX = 0; // minimum X coord.
var maxX = 0; // maximum X coord.

// bezier drawing values
var cpx1 = 0; // control point 1 X coord.
var cpy1 = 0; // control point 1 Y coord.
var cpx2 = 0; // control point 2 X coord.
var cpy2 = 0; // control point 2 Y coord.
var cx = 0;	  // end point X coord.
var cy = 0;   // end point Y coord.

var canvas = 0; // just for init() canvas

// bezier animation vars
var mtdx = 0; // "mayak-effect" var
var mayak_fade = 250; // "mayak-effect" fading  var
var mayak_fade_2 = 400; // "mayak-effect" fading  var
var mayak_pink_fade = 200;
//var x1_mayak = 0;

// moving bezier vars
var tdx = 0;       // linear shift of all drawings
var ddx = 60;      // amount of points to shift for one time, equal "speed"
var pink_tdx = 0;  // linear shift of pink bezier
var pink_ddx = 30; // ddx/1.5, pink shift


var scaler = 0; //scale amount for canvas images

var scaler_music = 0; //scale amount for canvas images

var pink_hacktdx = 0; // app

var rlast_pink = 0; // just checker for pink stripe on last slides

var pretdx = 0; // zero-point on mousedown by tdx
var prec = 0; // limit for drag
var tdxprec = 0;

// icon images on canvas
var icon0 = new Image();
icon0.src = '/i/icon-zero.png';

var icon0_on = new Image();
icon0_on.src = '/i/icon-zero-on.png';

var icon1 = new Image();
icon1.src = '/i/icon-one.png';

var icon2 = new Image();
icon2.src = '/i/icon-two.png';

var icon3 = new Image();
icon3.src = '/i/icon-three.png';

var icon4 = new Image();
icon4.src = '/i/icon-four.png';

var icon5 = new Image();
icon5.src = '/i/icon-five.png';

var icon6 = new Image();
icon6.src = '/i/icon-six.png';

var icon7 = new Image();
icon7.src = '/i/icon-seven.png';

var icon8 = new Image();
icon8.src = '/i/icon-eight.png';

var icon9 = new Image();
icon9.src = '/i/icon-nine.png';

var icon10 = new Image();
icon10.src = '/i/icon-ten.png';

var icon11 = new Image();
icon11.src = '/i/icon-eleven.png';

var icon12 = new Image();
icon12.src = '/i/icon-twelve.png';

var icon13 = new Image();
icon13.src = '/i/icon-thirteen.png';

var icon14 = new Image();
icon14.src = '/i/icon-fourteen.png';

var icon15 = new Image();
icon15.src = '/i/icon-fifteen.png';

var iconTop1 = new Image();
iconTop1.src = '/i/icon-fourteen-p.png';

var iconTop2 = new Image();
iconTop2.src = '/i/icon-fifteen-p.png';

var imgs = [
'/i/icon-zero.png',
'/i/icon-zero-on.png',
'/i/icon-one.png',
'/i/icon-two.png',
'/i/icon-three.png',
'/i/icon-four.png',
'/i/icon-five.png',
'/i/icon-six.png',
'/i/icon-seven.png',
'/i/icon-eight.png',
'/i/icon-nine.png',
'/i/icon-ten.png',
'/i/icon-eleven.png',
'/i/icon-twelve.png',
'/i/icon-thirteen.png',
'/i/icon-fourteen.png',
'/i/icon-fifteen.png',
'/i/icon-fourteen-p.png',
'/i/icon-fifteen-p.png'
];

// initialize function, enable canvas for compliant browser
function init() {
	//$('#canwrap').remove();
	//$('#mapwrap').prepend('<div id="canwrap"><canvas height="520" width="1680" id="canvas"/></div>');
    canvas = document.getElementById('canvas');
	//if (canvas.getContext) {
	try {
		ctx = canvas.getContext('2d');
		$('#canvas').attr('width',$('#mapwrap').width()); //set canvas width
		maxX = $('#mapwrap').width(); // set max X value
		maxY = $('#mapwrap').height() // set max Y value
		
		// setting values for main green line
		cpx1 = maxX/2 - 100;
		cpy1 = maxY + 50;
		cpx2 = maxX/2 + 400;
		cpy2 = maxY;
		cx = maxX;
		cy = maxY/2+80;
		ctx.strokeStyle = 'rgb(141,198,63)';
		//checking hash
		if ((hash == 0 || !hash)&& !resized) {
				$.preload( imgs, {
					onFinish: function(){
						create_main(0,1);					
					}
				});
		}
		
		if (hash >= 0) {
			click_num = hash;
			current_slide = hash;
			$('#l-arrow, #r-arrow').show();
			$('.slidewrap:eq(' + hash + ')').show();
			mayak_fade = 0;
			tdx = maxX*hash;
			
			
			switch (hash) {
				case 0: {$('#l-arrow').hide(); create_main(1,0);} break;
				case 1: {animateToLeft_0(0,1,1); } break;	
				case 2: {animateToLeft_1(1,2,1); } break;
				case 3: {animateToLeft_2(2,3,1); } break; 
				case 4: {animateToLeft_3(3,4,1);scaler = 34; } break;
				case 5: {$('.slide-container .animatik').fadeIn(200); animateToLeft_4(4,5,1);scaler = 34; } break;
				case 6: {$('.slide-container .animatik').fadeIn(200);animateToLeft_5(5,6,1);scaler = 34; } break;
				case 7: {$('.slide-container .animatik').fadeIn(200);animateToLeft_6(6,7,1);scaler = 34; } break;
				case 8: {$('.slide-container .animatik').fadeIn(200);animateToLeft_7(7,8,1);scaler = 34; } break;
				case 9: {$('.slide-container .music, .slide-container .animatik').fadeIn(200);animateToLeft_8(8,9,1);scaler = 34; } break;
				case 10: {$('.slide-container .music, .slide-container .animatik').fadeIn(200);cut_x = 170; animateToLeft_9(9,10,1);scaler = 34; } break;
				case 11: {$('#r-arrow').hide(); animateToLeft_10(10,11,1); scaler = 34; cut_x = 170;} break;
				
				//case 2:animateToLeft_0(0,1,1); break;
			}
		} else  {
			$('.slidewrap:eq(0)').show();
			//create_main(1,0);
		}
	} catch (e) {
		
		setTimeout(init, 1000);
	}
}


// create first slide to show
function create_main(i,slideNum) {
	ctx.clearRect(0,0,maxX,maxY);
	ctx.beginPath();
	ctx.strokeStyle = 'rgb(70,194,243)';
	ctx.moveTo(maxX/2+20,maxY/2 + 30);
	ctx.bezierCurveTo(cpx1+200, cpy1-200, cpx2, cpy2, cx, cy);
	ctx.stroke();
	ctx.closePath();
	ctx.beginPath();
	ctx.drawImage(icon0_on,maxX/2 - 115,maxY/2-140);
	ctx.closePath();
}


// TOLEFT FUNCTIONS

// ********************************** SLIDE 1 **************************************** //

var pathfind = 0;
var slidefix = 0;
function animateToLeft_0(slideFrom, slideTo, speed) {
	
	if (tdx < maxX) {
		
		ctx.clearRect(0,0,maxX,maxY);
		var precFrom = maxX * slideFrom;
		var precTo = maxX * slideTo;
		
		tdx = tdx + ddx;
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(70,194,243)';
		ctx.moveTo(maxX/2 + 20 - precFrom - tdx, maxY/2 + 30);
		ctx.bezierCurveTo(cpx1 + 200 - precFrom - tdx, cpy1-200, cpx2 - precFrom - tdx, cpy2, cx - precFrom - tdx, cy);
		ctx.bezierCurveTo(cx/2 - 400 + precTo - tdx, 180, cx/2 - 400 + precTo - tdx, 200, cx/2 - 230 + precTo - tdx, 230);
		ctx.stroke();
		ctx.closePath();
		
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(141,198,63)';
		ctx.moveTo(cx/2 - 150 + precTo - tdx, maxY/2 + 50);
		ctx.bezierCurveTo(cx/2 + precTo - tdx, cpy1, cx/2 + precTo - tdx, 480, cx + precTo - tdx, 470);
		ctx.moveTo(cx/2 - 120 + precTo - tdx,maxY/2 - 50);
		ctx.bezierCurveTo(cx/2 - 50 + precTo - tdx, 130, cx/2 + 50 + precTo - tdx, 200, cx/2 + 30 + precTo - tdx, 170);
		ctx.moveTo(cx/2 - 120 + precTo - tdx,maxY/2);
		ctx.bezierCurveTo(cx/2 - 50 + precTo - tdx, 250, cx/2 - 30 + precTo - tdx, 320, cx/2 + 30 + precTo - tdx, 340);
		ctx.stroke();
		ctx.closePath();
		
		ctx.beginPath();
		ctx.drawImage(icon0,maxX/2 - 115 - precFrom - tdx,maxY/2-140);
		ctx.drawImage(icon1,maxX/2 - 240 + precTo - tdx, maxY/2-70);
		ctx.drawImage(icon2,maxX/2 + precTo - tdx,80);
		ctx.drawImage(icon3,maxX/2 + 24 + precTo - tdx,290);
		ctx.closePath();
		
	} else  {
		
		clearInterval(int);
		mtdx = 700;
		mayak_fade = 300;
		slidefix = cx * slideTo - tdx;
		$('.slide').css('left', slidefix + 'px');
		int = setInterval('main_mayak_0()', 30);
		$('.slidewrap:eq(1)').fadeIn(200, function(){$('#l-arrow, #r-arrow').show();});
		mousebinding(); // binding mouse drag
	}
}

function main_mayak_0() {
	
	if (mayak_fade > 0) {
		ctx.clearRect(0,0,maxX,maxY);
		mtdx = mtdx - ddx;
		var precFrom = maxX * 1;
		var precTo = maxX * 0;
		var mayak = Math.sin(mtdx/250)*mayak_fade/6;
		mayak_fade -= 6;
		
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(70,194,243)';
		ctx.moveTo(0, cy);
		ctx.bezierCurveTo(cx/2 - 400 + precFrom - tdx, 180, cx/2 - 400 + precFrom - tdx + mayak, 200, cx/2 - 230 + precFrom - tdx, 230);
		ctx.stroke();
		ctx.closePath();
		
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(141,198,63)';
		ctx.moveTo(cx/2 - 150 + precFrom - tdx, maxY/2 + 50);
		ctx.bezierCurveTo(cx/2 + precFrom - tdx + mayak, cpy1, cx/2 + precFrom - tdx, 480, cx + precFrom - tdx, 470);
		ctx.moveTo(cx/2 - 120 + precFrom - tdx,maxY/2 - 50);
		ctx.bezierCurveTo(maxX/2 - 50 + precFrom - tdx + mayak, 130, cx/2 + 50 + precFrom - tdx, 200, cx/2 + 30 + precFrom - tdx, 170);
		ctx.moveTo(cx/2 - 120 + precFrom - tdx ,maxY/2);
		ctx.bezierCurveTo(cx/2 - 50 + precFrom - tdx  + mayak, 250, cx/2 - 30 + precFrom - tdx, 320, cx/2 + 30 + precFrom - tdx, 340);
		ctx.stroke();
		ctx.closePath();
		
		ctx.beginPath();
		//ctx.drawImage(icon1,maxX/2 - 240, maxY/2-70);
		ctx.drawImage(icon1,maxX/2 - 240 + precFrom - tdx, maxY/2-70);
		ctx.drawImage(icon2,maxX/2 + precFrom - tdx, 80);
		ctx.drawImage(icon3,maxX/2 + 24 + precFrom - tdx, 290);
		//ctx.drawImage(icon4,maxX/2-350 + precTo - tdx,maxY/2-80);
		ctx.closePath();


	} else {
		mayak_fade = 250;
		clearInterval(int);
	}

}

function animateToRight_1(slideFrom, slideTo, speed) {
	if (tdx > maxX*slideTo) {
		ctx.clearRect(0,0,maxX,maxY);
		var precFrom = maxX * slideFrom;
		var precTo = maxX * slideTo;
		tdx = tdx - ddx;
		
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(70,194,243)';
		ctx.moveTo(maxX/2 + 20 - precTo - tdx, maxY/2 + 30);
		ctx.bezierCurveTo(cpx1 + 200 - precTo - tdx, cpy1-200, cpx2 - precTo - tdx, cpy2, cx - precTo - tdx, cy);
		ctx.bezierCurveTo(cx/2 - 400 + precFrom - tdx, 180, cx/2 - 400 + precFrom - tdx, 200, cx/2 - 230 + precFrom - tdx, 230);
		ctx.stroke();
		ctx.closePath();
		
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(141,198,63)';
		ctx.moveTo(cx/2 - 150 + precFrom - tdx, maxY/2 + 50);
		if (pink_hacktdx) ctx.bezierCurveTo(cx/2 + precFrom - tdx, cpy1, cx/2 + precFrom - tdx, 480, cx, 470);
		else ctx.bezierCurveTo(cx/2 + precFrom - tdx, cpy1, cx/2 + precFrom - tdx, 480, cx + precFrom - tdx, 470);
		
		ctx.moveTo(cx/2 - 120 + precFrom - tdx,maxY/2 - 50);
		ctx.bezierCurveTo(cx/2 - 50 + precFrom - tdx, 130, cx/2 + 50 + precFrom - tdx, 200, cx/2 + 30 + precFrom - tdx, 170);
		ctx.moveTo(cx/2 - 120 + precFrom - tdx,maxY/2);
		ctx.bezierCurveTo(cx/2 - 50 + precFrom - tdx, 250, cx/2 - 30 + precFrom - tdx, 320, cx/2 + 30 + precFrom - tdx, 340);
		ctx.stroke();
		ctx.closePath();
		
		ctx.beginPath();
		ctx.drawImage(icon0,maxX/2 - 115 - precTo - tdx,maxY/2 - 140);
		ctx.drawImage(icon1,maxX/2-240 + precFrom - tdx,maxY/2-70);
		ctx.drawImage(icon2,maxX/2 + precFrom - tdx,80);
		ctx.drawImage(icon3,maxX/2 + 24 + precFrom - tdx,290);
		ctx.closePath();

	} else {
		clearInterval(int);
		mtdx = tdx/slideFrom;
		mayak_fade = 300;
		int = setInterval('main_r_mayak_0()', 30);
		slidefix = cx * slideTo - tdx;
		$('.slide').css('left', slidefix + 'px');
		$('.slidewrap:eq(0)').fadeIn(200, function(){$('#l-arrow, #r-arrow').show();$('#l-arrow').hide();});
		mousebinding(); // binding mouse drag
	}
}


function main_r_mayak_0() {
	if (mayak_fade > 0) {
		ctx.clearRect(0,0,maxX,maxY);
		mtdx = mtdx - ddx;
		var precFrom = maxX * 1;
		var precTo = maxX * 0;
		var mayak = Math.sin(mtdx/250)*mayak_fade/6;
		mayak_fade -= 6;
		
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(70,194,243)';
		ctx.moveTo(maxX/2 + 20 - precTo - tdx, maxY/2 + 30);
		ctx.bezierCurveTo(cpx1 + 200 - precTo - tdx + mayak, cpy1-200, cpx2 - precTo - tdx, cpy2, cx - precTo - tdx, cy);
		//ctx.bezierCurveTo(cpx1 - 350 + precFrom - tdx, 180, cpx2/2 - 200 + precFrom - tdx, 200, cx/2 - 330 + precFrom - tdx, 230);
		ctx.stroke();
		ctx.closePath();
		
		ctx.beginPath();
		ctx.drawImage(icon0_on,maxX/2- 115 - precTo - tdx,maxY/2-140);
		ctx.closePath();

	} else {
		mayak_fade = 300;
		clearInterval(int);
	}

}
// ********************************** /SLIDE 1 **************************************** //


// ********************************** SLIDE 2 **************************************** //

function animateToLeft_1(slideFrom, slideTo, speed) {
	if (tdx < maxX*slideTo) {
		
		ctx.clearRect(0,0,maxX,maxY);
		var precFrom = maxX * slideFrom;
		var precTo = maxX * slideTo;
		tdx = tdx + ddx;
		
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(70,194,243)';
		ctx.moveTo(precFrom - tdx, cy);
		ctx.bezierCurveTo(cx/2 - 400 + precFrom - tdx, 180, cx/2 - 400 + precFrom - tdx, 200, cx/2 - 230 + precFrom - tdx, 230);
		ctx.stroke();
		ctx.closePath();
		
		
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(141,198,63)';
		ctx.moveTo(cx/2 - 150 + precFrom - tdx, maxY/2 + 50);
		ctx.bezierCurveTo(cx/2 + precFrom - tdx, cpy1, cx/2 + precFrom - tdx, 480, cx + precFrom - tdx, 470);
		
		ctx.bezierCurveTo((cx/2 - 200 + precTo) - tdx, 470, (cx/2 - 400 + precTo) - tdx, 260, cx/2 - 180 + precTo - tdx, maxY/2-10);
		ctx.moveTo(cx/2 - 60 + precTo - tdx, maxY/2-10);
		ctx.bezierCurveTo(cx/2 + 100 + precTo - tdx, 260, (cx/2 + 250 + precTo) - tdx, 450, cx + precTo - tdx, 450);
		
		
		ctx.moveTo(cx/2 - 120 + precFrom - tdx,maxY/2 - 50);
		ctx.bezierCurveTo(cx/2 - 50 + precFrom - tdx, 130, cx/2 + 50 + precFrom - tdx, 200, cx/2 + 30 + precFrom - tdx, 170);
		ctx.moveTo(cx/2 - 120 + precFrom - tdx,maxY/2);
		ctx.bezierCurveTo(cx/2 - 50 + precFrom - tdx, 250, cx/2 - 30 + precFrom - tdx, 320, cx/2 + 30 + precFrom - tdx, 340);
		ctx.stroke();
		ctx.closePath();
				
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(236,0,140)';
		ctx.moveTo(cx/2 - 120 + precTo - tdx, maxY/2-65);
		ctx.bezierCurveTo(cx/2 + precTo - tdx, -100, cx/2 + 300 + precTo - tdx, 150, cx+precTo - tdx, cy-200);	
		ctx.stroke();
		ctx.closePath();
		
		ctx.beginPath();
		ctx.drawImage(icon1,maxX/2 - 240 + precFrom - tdx, maxY/2-70);
		ctx.drawImage(icon2,maxX/2 + precFrom - tdx, 80);
		ctx.drawImage(icon3,maxX/2 + 24 + precFrom - tdx, 290);
		ctx.drawImage(icon4,maxX/2 - 200 + precTo - tdx, maxY/2-70);
		ctx.closePath();
		
		

	} else  {
		clearInterval(int);
		mtdx = 700;
		if (!resized) {mayak_fade = 200;}
		if (resized) {mtdx = 700;} // to redraw lines in their positions, after resize
		if (hash) {mtdx = 700;}
		slidefix = cx * slideTo - tdx;
		$('.slide').css('left', slidefix + 'px');
		$('.slidewrap:eq(2)').fadeIn(200, function(){$('#l-arrow, #r-arrow').show();});
		int = setInterval('main_mayak_1('+slideFrom+','+slideTo+')',30);
	}
}



function main_mayak_1 (slideFrom, slideTo) {
	if (mayak_fade > 0) {
		var precFrom = maxX * 2;
		var precTo = maxX * 0;
		
		ctx.clearRect(0,0,maxX,maxY);
		
		var mayak = Math.sin(mtdx/200)*mayak_fade;
		mayak_fade -= 6;
		mtdx = mtdx - ddx;
		
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(141,198,63)';
		ctx.moveTo(0, 470);
		ctx.bezierCurveTo(cx/2 - 200 + precFrom - tdx, 470, cx/2 - 400 + mayak + precFrom - tdx, 260, cx/2 - 180 + precFrom - tdx, maxY/2-10);
		ctx.moveTo(cx/2 - 60 + precFrom - tdx, maxY/2-10);
		ctx.bezierCurveTo(cx/2 + 100 + mayak + precFrom - tdx, 260, (cx/2 + 250) + precFrom - tdx, 450, cx + precFrom - tdx, 450);
		ctx.stroke();
		ctx.closePath();
		
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(236,0,140)';
		ctx.moveTo(cx/2 - 120 + precFrom - tdx, maxY/2-65);
		ctx.bezierCurveTo(cx/2 - mayak + precFrom - tdx, -100, cx/2 + 300 + precFrom - tdx, 150, cx, cy-200);
		ctx.stroke();
		ctx.closePath();
		
		ctx.beginPath();
		ctx.drawImage(icon4,maxX/2-200 + precFrom - tdx, maxY/2-70);
		ctx.closePath();	
		
	} else {
		clearInterval(int);
		//mayak_fade_2 = mayak_fade+6;
		if (resized) {mayak_fade=1;}
		mtdx = 700;
		if (hash) mayak_fade = 1;
		else mayak_fade = 200;
		//int = setInterval('pink_mayak_1()',30);
		
		mousebinding(); // binding mouse drag
		
	}

}

function animateToRight_2(slideFrom, slideTo, speed) {
	if (tdx > maxX*slideTo) {
		
		ctx.clearRect(0,0,maxX,maxY);
		var precFrom = maxX * slideFrom;
		var precTo = maxX * slideTo;
		tdx = tdx - ddx;
		
		
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(70,194,243)';
		ctx.moveTo(precTo - tdx, cy);
		ctx.bezierCurveTo(cx/2 - 400 + precTo - tdx, 180, cx/2 - 400 + precTo - tdx, 200, cx/2 - 230 + precTo - tdx, 230);
		ctx.stroke();
		ctx.closePath();
		
		
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(141,198,63)';
		ctx.moveTo(cx/2 - 150 + precTo - tdx, maxY/2 + 50);
		ctx.bezierCurveTo(cx/2 + precTo - tdx, cpy1, cx/2 + precTo - tdx, 480, cx + precTo - tdx, 470);
		
		ctx.bezierCurveTo((cx/2 - 200 + precFrom) - tdx, 470, (cx/2 - 400 + precFrom) - tdx, 260, cx/2 - 180 + precFrom - tdx, maxY/2-10);
		ctx.moveTo(cx/2 - 60 + precFrom - tdx, maxY/2-10);
		if (pink_hacktdx) ctx.bezierCurveTo(cx/2 + 100 + precFrom - tdx, 260, (cx/2 + 250 + precFrom) - tdx, 450, cx, 450);
		else ctx.bezierCurveTo(cx/2 + 100 + precFrom - tdx, 260, (cx/2 + 250 + precFrom) - tdx, 450, cx + precFrom - tdx, 450);
		
		
		ctx.moveTo(cx/2 - 120 + precTo - tdx,maxY/2 - 50);
		ctx.bezierCurveTo(cx/2 - 50 + precTo- tdx, 130, cx/2 + 50 + precTo - tdx, 200, cx/2 + 30 + precTo - tdx, 170);
		ctx.moveTo(cx/2 - 120 + precTo - tdx,maxY/2);
		ctx.bezierCurveTo(cx/2 - 50 + precTo - tdx, 250, cx/2 - 30 + precTo - tdx, 320, cx/2 + 30 + precTo - tdx, 340);
		ctx.stroke();
		ctx.closePath();
		
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(236,0,140)';
		ctx.moveTo(cx/2 - 120 + precFrom - tdx, maxY/2-65);
		if (pink_hacktdx) ctx.bezierCurveTo(cx/2 + precFrom - tdx, -100, cx/2 + 300 + precFrom - tdx, 150, cx, cy-200);
		else ctx.bezierCurveTo(cx/2 + precFrom - tdx, -100, cx/2 + 300 + precFrom - tdx, 150, cx + precFrom - tdx, cy-200);
		ctx.stroke();
		ctx.closePath();
		
		ctx.beginPath();
		ctx.drawImage(icon1,maxX/2 - 240 + precTo - tdx, maxY/2-70);
		ctx.drawImage(icon2,maxX/2 + precTo - tdx, 80);
		ctx.drawImage(icon3,maxX/2 + 24 + precTo - tdx, 290);
		ctx.drawImage(icon4,maxX/2 - 200 + precFrom - tdx, maxY/2-70);
		ctx.closePath();
		
		
	} else {
		clearInterval(int);
		mtdx = 700;
		mayak_fade = 300;
		$('.slide').css('left', slidefix + 'px');
		int = setInterval('main_mayak_0()', 30);
		slidefix = cx * slideTo - tdx;
		$('.slidewrap:eq(1)').fadeIn(200, function(){$('#l-arrow, #r-arrow').show();});
		mousebinding(); // binding mouse drag
	}
}

// ********************************** /SLIDE 2 **************************************** //

// ********************************** SLIDE 3 **************************************** //


function animateToLeft_2(slideFrom, slideTo, speed) {
	if (tdx < maxX*slideTo) {
		
		ctx.clearRect(0,0,maxX,maxY);
		var precFrom = maxX * slideFrom;
		var precTo = maxX * slideTo;
		tdx = tdx + ddx;
		
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(141,198,63)';
		ctx.moveTo((precFrom) - tdx, 470);		
		ctx.bezierCurveTo((cx/2 - 200 + precFrom) - tdx, 470, (cx/2 - 400 + precFrom) - tdx, 260, cx/2 - 180 + precFrom - tdx, maxY/2-10);
		ctx.moveTo(cx/2 - 60 + precFrom - tdx, maxY/2-10);
		ctx.bezierCurveTo(cx/2 + 100 + precFrom - tdx, 260, (cx/2 + 250 + precFrom) - tdx, 450, cx + precFrom - tdx, 450);
		
		ctx.bezierCurveTo(cx/2 - 350 + precTo - tdx, 430, (cx/2 - 420 + precTo) - tdx, 410, cx/2-200 + precTo - tdx, 380);
		ctx.moveTo(cx/2-100 + precTo - tdx, 330);
		ctx.bezierCurveTo(cx/2 + 100 + precTo - tdx, 250, (cx/2 + 200 + precTo) - tdx, 400, cx + precTo  - tdx, 380);
		
		ctx.stroke();
		ctx.closePath();
		
		
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(236,0,140)';
		ctx.moveTo(cx/2 - 120 + precFrom - tdx, maxY/2-65);
		ctx.bezierCurveTo(cx/2 + precFrom - tdx, -100, cx/2 + 300 + precFrom - tdx, 150, cx+precFrom-tdx, cy-200);
		
		ctx.bezierCurveTo(cx/2 - cx/2 + precTo - tdx, 140, (cx/2) - cx/3 + precTo - tdx, 150, (cx/2) - 400 + precTo - tdx, 100);
		ctx.moveTo((cx/2) - 330 + precTo - tdx, 70);
		ctx.bezierCurveTo(cx/2 - 130 + precTo - tdx, 30, cx/2 - 80 + precTo - tdx, 30, (cx/2) + 70 + precTo - tdx, 60);
		
		ctx.moveTo((cx/2) + 150 + precTo - tdx, 100);
		//ctx.bezierCurveTo((cx/2) + 350 + precTo - tdx, 150, (cx/2) + 550 + precTo - tdx, 100, cx+precTo-tdx, 60);
		ctx.bezierCurveTo((cx/2) + 350 + precTo - tdx, 150, cx + precTo - tdx, 0, cx + (cx/2 - 160) + precTo - tdx, 270);
		
		ctx.stroke();
		ctx.closePath();
		
		ctx.beginPath();
		ctx.drawImage(icon4,maxX/2-200 + precFrom - tdx, maxY/2-70);
		ctx.drawImage(icon5,maxX/2-220 + precTo - tdx, maxY/2 + 20);
		
		ctx.drawImage(iconTop1,(cx/2) - 430 + precTo - tdx, 15);
		ctx.drawImage(iconTop2,(cx/2) + 30 + precTo - tdx, 15);
		ctx.closePath();
		
	} else {
		//clearInterval(int);

		clearInterval(int);
		mtdx = 700;
		if (!resized) {mayak_fade = 200;}
		if (resized) {mtdx = 700;} // to redraw lines in their positions, after resize
		if (hash) {mtdx = 700;}
		slidefix = cx * slideTo - tdx;
		pretdx = tdx;
		$('.slide').css('left', '0px');
		$('.slide-3 .text-1').css('left', 160 + slidefix + 'px');
		$('.slide-3 .text-2').css('left', -30 + slidefix + 'px');
		$('.slide-3 .text-3').css('left', 430 + slidefix + 'px');
		$('.slidewrap:eq(3)').fadeIn(200, function(){$('#l-arrow, #r-arrow').show();});
		int = setInterval('main_mayak_2('+slideFrom+','+slideTo+')',30);
	}
}

var toppinker = 0;
function main_mayak_2 (slideFrom, slideTo) {
	if (mayak_fade > 0) {
		var precFrom = maxX * 3;
		var precTo = maxX * 0;
		
		ctx.clearRect(0,0,maxX,maxY);
		var mayak = Math.sin(mtdx/200)*mayak_fade;
		mayak_fade -= 6;
		mtdx = mtdx - ddx;
		
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(141,198,63)';
		ctx.moveTo(0, 450);
	
		ctx.bezierCurveTo(cx/2 - 350 - mayak + precFrom - tdx, 430, (cx/2 - 420) - mayak + precFrom - tdx, 410, cx/2-200 + precFrom - tdx, 380);
		ctx.moveTo(cx/2-100 + precFrom - tdx, 330);
		ctx.bezierCurveTo(cx/2 + 100 + mayak + precFrom - tdx, 250, (cx/2 + 200) + precFrom - tdx, 400, cx + precFrom - tdx, 380);
		
		ctx.stroke();
		ctx.closePath();
		
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(236,0,140)';
		ctx.moveTo(0, cy-200);
		ctx.bezierCurveTo(cx/2 - 700 + precFrom - tdx, 140, (cx/2) - 600 + mayak + precFrom - tdx, 150, (cx/2) - 400 + precFrom - tdx, 100);
		ctx.moveTo((cx/2) - 330 + precFrom - tdx, 70);
		ctx.bezierCurveTo(cx/2 - 130 + precFrom - pretdx, 30, cx/2 - 80 + mayak + precFrom - pretdx, 30, (cx/2) + 70 + precFrom - pretdx, 60);
		ctx.moveTo((cx/2) + 150 + precFrom - pretdx, 100);
		ctx.bezierCurveTo((cx/2) + 350 + mayak + precFrom - pretdx, 150, cx + precFrom - pretdx, 0, cx + (cx/2 - 160) + precFrom -pretdx, 270);
		ctx.stroke();
		ctx.closePath();
		
		ctx.beginPath();
		ctx.drawImage(icon5,maxX/2-220 + precFrom - tdx, maxY/2 + 20);
		ctx.drawImage(iconTop1,(cx/2) - 430 + precFrom - pretdx, 15);
		ctx.drawImage(iconTop2,(cx/2) + 30 + precFrom - pretdx, 15);
		ctx.closePath();
	} else {
		clearInterval(int);
		if (resized) {mayak_fade=1;}
		mtdx = 700;
		if (hash) mayak_fade = 1;
		else mayak_fade = 200;
		//alert(slidefix);
		mousebinding(); // binding mouse drag
		toppinker = cx * 3 - pretdx;
		
	}

}

function animateToRight_3(slideFrom, slideTo, speed) {
	if (tdx > maxX*slideTo) {
		
		ctx.clearRect(0,0,maxX,maxY);
		var precFrom = maxX * slideFrom;
		var precTo = maxX * slideTo;
		tdx = tdx - ddx;
			
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(141,198,63)';
		ctx.moveTo((precTo) - tdx, 470);
		ctx.bezierCurveTo((cpx1 - 200 + precTo) - tdx, 470, (cx/2 - 400 + precTo) - tdx, 260, cx/2 - 180 + precTo - tdx, maxY/2-10);
		ctx.moveTo(cx/2 - 60 + precTo - tdx, maxY/2-10);
		ctx.bezierCurveTo(cx/2 + 100 + precTo - tdx, 260, (cx/2 + 250 + precTo) - tdx, 450, cx + precTo - tdx, 450);
		
		ctx.bezierCurveTo(cx/2 - 350 + precFrom - tdx, 430, (cx/2 - 420 + precFrom) - tdx, 410, cx/2-200 + precFrom - tdx, 380);
		ctx.moveTo(cx/2-100 + precFrom - tdx, 330);
		if (pink_hacktdx) ctx.bezierCurveTo(cx/2 + 100 + precFrom - tdx, 250, (cx/2 + 200 + precFrom) - tdx, 400, cx, 380);
		else ctx.bezierCurveTo(cx/2 + 100 + precFrom - tdx, 250, (cx/2 + 200 + precFrom) - tdx, 400, cx + precFrom - tdx, 380);
		
		
		ctx.stroke();
		ctx.closePath();
		
		
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(236,0,140)';
		ctx.moveTo(cx/2 - 120 + precTo - tdx, maxY/2-65);
		ctx.bezierCurveTo(cx/2 + precTo - tdx, -100, cx/2 + 300 + precTo - tdx, 150, cx + precTo - tdx, cy-200);
		
		
		if (pink_hacktdx) {
			ctx.bezierCurveTo(cx/2 - cx/2 + precFrom - pretdx, 140, (cx/2) - cx/3 + precFrom - pretdx, 150, (cx/2) - 400 + precFrom - pretdx, 100);
			ctx.moveTo((cx/2) - 330 + precFrom - pretdx, 70);
			ctx.bezierCurveTo(cx/2 - 130 + precFrom - pretdx, 30, cx/2 - 80 + precFrom - pretdx, 30, (cx/2) + 70 + precFrom - pretdx, 60);
			ctx.moveTo((cx/2) + 150 + precFrom - pretdx, 100);
			ctx.bezierCurveTo((cx/2) + 350 + precFrom - pretdx, 150, cx + precFrom - pretdx, 0, cx + (cx/2 - 160) + precFrom - pretdx, 270);
			ctx.stroke();
			ctx.closePath();
			ctx.beginPath();
			ctx.drawImage(icon4,maxX/2-200 + precTo - tdx, maxY/2-70);
			ctx.drawImage(icon5,maxX/2-220 + precFrom - tdx, maxY/2 + 20);
			ctx.drawImage(iconTop1,(cx/2) - 430 + precFrom - pretdx, 15);
			ctx.drawImage(iconTop2,(cx/2) + 30 + precFrom - pretdx, 15);
			ctx.closePath();
			
		} else {
			ctx.bezierCurveTo(cx/2 - cx/2 + precFrom - tdx, 140, (cx/2) - cx/3 + precFrom - tdx, 150, (cx/2) - 400 + precFrom - tdx, 100);
			ctx.moveTo((cx/2) - 330 + precFrom - tdx, 70);
			ctx.bezierCurveTo(cx/2 - 130 + precFrom - tdx, 30, cx/2 - 80 + precFrom - tdx, 30, (cx/2) + 70 + precFrom - tdx, 60);
			ctx.moveTo((cx/2) + 150 + precFrom - tdx, 100);
			ctx.bezierCurveTo((cx/2) + 350 + precFrom - tdx, 150, cx + precFrom - tdx, 0, cx + (cx/2 - 160)+precFrom-tdx, 270);
			ctx.stroke();
			ctx.closePath();
			ctx.beginPath();
			ctx.drawImage(icon4,maxX/2-200 + precTo - tdx, maxY/2-70);
			ctx.drawImage(icon5,maxX/2-220 + precFrom - tdx, maxY/2 + 20);
			ctx.drawImage(iconTop1,(cx/2) - 430 + precFrom - tdx, 15);
			ctx.drawImage(iconTop2,(cx/2) + 30 + precFrom - tdx, 15);
			ctx.closePath();	
		}

		
	} else {
		clearInterval(int);
		mtdx = 700;
		if (!resized) {mayak_fade = 200;}
		if (resized) {mtdx = 700;} // to redraw lines in their positions, after resize
		if (hash) {mtdx = 700;}
		slidefix = cx * slideTo - tdx;
		$('.slide').css('left', slidefix + 'px');
		
		$('.slidewrap:eq(2)').fadeIn(200, function(){$('#l-arrow, #r-arrow').show();});
		int = setInterval('main_mayak_1('+slideFrom+','+slideTo+')',30);
	}
}

// ********************************** /SLIDE 3 **************************************** //

// ********************************** SLIDE 4 **************************************** //

function animateToLeft_3(slideFrom, slideTo, speed) {
	if (tdx < maxX*slideTo) {
		
		ctx.clearRect(0,0,maxX,maxY);
		var precFrom = maxX * slideFrom;
		var precTo = maxX * slideTo;
		tdx = tdx + ddx;
			
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(141,198,63)';
		ctx.moveTo(precFrom - tdx, 450);
		ctx.bezierCurveTo(cx/2 - 350 + precFrom - tdx, 430, (cx/2 - 420 + precFrom) - tdx, 410, cx/2-200 + precFrom - tdx, 380);
		ctx.moveTo(cx/2-100 + precFrom - tdx, 330);
		ctx.bezierCurveTo(cx/2 + 100 + precFrom - tdx, 250, (cx/2 + 200 + precFrom) - tdx, 400, cx + precFrom - tdx, 380);
		
		ctx.bezierCurveTo(cx/2 - cx/4 + precTo - tdx, 380, (cx/2 - 400 + precTo) - tdx, 300, cx/2-210 + precTo - tdx, 300);
		ctx.moveTo(cx/2-100 + precTo - tdx, 300);
		ctx.bezierCurveTo(cx/2 + 200 + precTo - tdx, 300, (cx/2 + 200 + precTo) - tdx, 400, cx + precTo - tdx, 450);
		
		ctx.stroke();
		ctx.closePath();
		
		scaler += 1;
		scaler_music += 1;	
		
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(236,0,140)';
		ctx.moveTo(0, cy-200);
		ctx.bezierCurveTo(cx/2 - 700 + precFrom - tdx, 140, (cx/2) - 600 + precFrom - tdx, 150, (cx/2) - 400 + precFrom - tdx, 100);
		ctx.moveTo((cx/2) - 330 + precFrom - tdx, 70);
		ctx.bezierCurveTo(cx/2 - 130, 30, cx/2 - 80, 30, (cx/2) + 70, 60);
		ctx.moveTo((cx/2) + 150, 100);
		ctx.bezierCurveTo((cx/2) + 350, 150, cx, 0, cx + (cx/2 - 160), 270);
		ctx.stroke();
		ctx.closePath();
		
		ctx.beginPath();
		ctx.drawImage(iconTop2,(cx/2) + 30, 15+scaler/2, 176-scaler,176-scaler);
		
		ctx.drawImage(icon5,maxX/2-220 + precFrom - tdx, maxY/2 + 20);
		ctx.drawImage(icon6,maxX/2-220 + precTo - tdx,maxY/2 - 20);
		
		
		ctx.drawImage(iconTop1,(cx/2) - 430  + precFrom - tdx, 15, 184,184);
			
		ctx.closePath();

		
	} else {
		 //scaler = 34
		clearInterval(int);
		mtdx = 700;
		if (!resized) {mayak_fade = 200;}
		if (resized) {mtdx = 700;} // to redraw lines in their positions, after resize
		if (hash) {mtdx = 700;}
		slidefix = cx * slideTo - tdx;
		$('.slide').css('left', slidefix + 'px');
		int = setInterval('main_mayak_3('+slideFrom+','+slideTo+')',30);
		$('.slidewrap:eq(4), .slide-container .animatik').fadeIn(200, function(){});
		$('#l-arrow, #r-arrow').show();
		/*clearInterval(int);
		$('.slidewrap:eq(4)').fadeIn(200, function(){$('#l-arrow, #r-arrow').show();});*/
	}
}

function main_mayak_3 (slideFrom, slideTo) {
	if (mayak_fade > 0) {
		
		var precFrom = maxX * 4;
		var precTo = maxX * 0;
		
		ctx.clearRect(0,0,maxX,maxY);
		var mayak = Math.sin(mtdx/200)*mayak_fade;
		mayak_fade -= 6;
		mtdx = mtdx - ddx;
		
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(141,198,63)';
		ctx.moveTo(0, 380);	
		ctx.bezierCurveTo(cx/2 - cx/4 + precFrom - tdx, 380, (cx/2 - 400) - mayak + precFrom - tdx, 300, cx/2-210 + precFrom - tdx, 300);
		ctx.moveTo(cx/2-100 + precFrom - tdx, 300);
		ctx.bezierCurveTo(cx/2 + 100 - mayak + precFrom - tdx, 300, (cx/2 + 200) - mayak + precFrom - tdx, 400, cx + precFrom - tdx, 450);
		ctx.stroke();
		ctx.closePath();
		
		
		
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(236,0,140)';
		ctx.moveTo(0, cy-200);
		ctx.bezierCurveTo(cx/2 - 700 - maxX, 140, (cx/2) - 600 - maxX, 150, (cx/2) - 400 - maxX, 100);
		ctx.moveTo((cx/2) - 330 - maxX, 70);
		ctx.bezierCurveTo(cx/2 - 130, 30, cx/2 - 80, 30, (cx/2) + 70, 60);
		ctx.moveTo((cx/2) + 150, 100);
		ctx.bezierCurveTo((cx/2) + 350, 150, cx, 0, cx + (cx/2 - 160), 270);
		ctx.stroke();
		ctx.closePath();	
		
		ctx.beginPath();
		ctx.drawImage(icon6,maxX/2-220 + precFrom - tdx, maxY/2 - 20);
		//ctx.drawImage(iconTop1,(cx/2) - 430 - scaler_music*16, 15+scaler/2, 184-scaler, 184-scaler);
		ctx.drawImage(iconTop2,(cx/2) + 30, 15+scaler/2, 176-scaler,176-scaler);	
		ctx.closePath();

		
		
	} else {
		clearInterval(int);
		if (resized) {mayak_fade=1;}
		mtdx = 700;
		if (hash) mayak_fade = 1;
		else mayak_fade = 200;

		mousebinding(); // binding mouse drag
		
	}

}

function animateToRight_4(slideFrom, slideTo, speed) {
	if (tdx > maxX*slideTo) {
		
		ctx.clearRect(0,0,maxX,maxY);
		var precFrom = maxX * slideFrom;
		var precTo = maxX * slideTo;
		tdx = tdx - ddx;
			
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(141,198,63)';
		
		ctx.moveTo(precTo - tdx, 450);
		ctx.bezierCurveTo(cx/2 - 350 + precTo - tdx, 430, (cx/2 - 420 + precTo) - tdx, 410, cx/2-200 + precTo - tdx, 380);
		ctx.moveTo(cx/2-100 + precTo - tdx, 330);
		ctx.bezierCurveTo(cx/2 + precTo - tdx, 250, (cx/2 + 200 + precTo) - tdx, 400, cx + precTo - tdx, 380);
		
		ctx.bezierCurveTo(cx/2 - cx/4 + precFrom - tdx, 380, (cx/2 - 400 + precFrom) - tdx, 300, cx/2-210 + precFrom - tdx, 300);
		ctx.moveTo(cx/2-100 + precFrom - tdx, 300);
		if (pink_hacktdx) ctx.bezierCurveTo(cx/2 + 100 + precFrom - tdx, 300, (cx/2 + 200 + precFrom) - tdx, 400, cx, 450);
		else ctx.bezierCurveTo(cx/2 + 100 + precFrom - tdx, 300, (cx/2 + 200 + precFrom) - tdx, 400, cx + precFrom - tdx, 450);
		ctx.stroke();
		ctx.closePath();
				
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(236,0,140)';
		ctx.moveTo(0, cy-200);
		ctx.bezierCurveTo(cx/2 + precTo - tdx, 140, (cx/2) - 600 + precTo - tdx, 150, (cx/2) - 400 + precTo - tdx, 100);
		ctx.moveTo((cx/2) - 330 + precTo - tdx, 70);
		ctx.bezierCurveTo(cx/2 - 130, 30, cx/2 - 80, 30, (cx/2) + 70, 60);
		ctx.moveTo((cx/2) + 150, 100);
		ctx.bezierCurveTo((cx/2) + 350, 150, cx, 0, cx + (cx/2 - 160), 270);
		ctx.stroke();
		ctx.closePath();
		
		ctx.beginPath();
		ctx.drawImage(iconTop2,(cx/2) + 30, 15+scaler/2, 176-scaler,176-scaler);
		ctx.drawImage(icon5,maxX/2-220 + precTo - tdx, maxY/2 + 20);
		ctx.drawImage(icon6,maxX/2-220 + precFrom  - tdx,maxY/2 - 20);
		
		
		if (!$('body').hasClass('cmove')) scaler -= 1;
		ctx.drawImage(iconTop1,(cx/2) - 430 + precTo - tdx, 15, 184, 184);
		
		ctx.closePath();


	} else {
		clearInterval(int);
		mtdx = 700;
		if (!resized) {mayak_fade = 200;}
		if (resized) {mtdx = 700;} // to redraw lines in their positions, after resize
		if (hash) {mtdx = 700;}
		slidefix = cx * slideTo - tdx;
		pretdx = tdx;
		$('.slide').css('left', '0px');
		$('.slide-3 .text-1').css('left', 160 + slidefix + 'px');
		$('.slide-3 .text-2').css('left', -30 + slidefix + 'px');
		$('.slide-3 .text-3').css('left', 430 + slidefix + 'px');
		$('.slidewrap:eq(3)').fadeIn(200, function(){$('#l-arrow, #r-arrow').show();});
		int = setInterval('main_mayak_2('+slideFrom+','+slideTo+')',30);
	}
}

// ********************************** /SLIDE 4 **************************************** //

// ********************************** SLIDE 5 **************************************** //

function animateToLeft_4(slideFrom, slideTo, speed) {
	if (tdx < maxX*slideTo) {
		ctx.clearRect(0,0,maxX,maxY);
		var precFrom = maxX * slideFrom;
		var precTo = maxX * slideTo;
		tdx = tdx + ddx;
			
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(141,198,63)';
		
		
		ctx.moveTo(precFrom - tdx, 380);
		ctx.bezierCurveTo(cx/2 - cx/4 + precFrom - tdx, 380, (cx/2 - 400 + precFrom) - tdx, 300, cx/2-210 + precFrom - tdx, 300);
		ctx.moveTo(cx/2-100 + precFrom - tdx, 300);
		ctx.bezierCurveTo(cx/2 + 100 + precFrom - tdx, 300, (cx/2 + 200 + precFrom) - tdx, 400, cx + precFrom - tdx, 450);
		
		ctx.bezierCurveTo(cx/2 - cx/4 + precTo - tdx, 470, (cx/2 - 400 + precTo) - tdx, 300, cx/2-210 + precTo - tdx, 300);
		ctx.moveTo(cx/2-100 + precTo - tdx, 300);
		ctx.bezierCurveTo(cx/2 + 200 + precTo - tdx, 300, (cx/2 + 200 + precTo) - tdx, 400, cx + precTo - tdx, 450);
		
		ctx.stroke();
		ctx.closePath();
		
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(236,0,140)';
		ctx.moveTo(0, cy-200);
		ctx.bezierCurveTo(cx/2 - 700 - maxX, 140, (cx/2) - 600 - maxX, 150, (cx/2) - 400 - maxX, 100);
		ctx.moveTo((cx/2) - 330 - maxX, 70);
		ctx.bezierCurveTo(cx/2 - 130, 30, cx/2 - 80, 30, (cx/2) + 70, 60);
		ctx.moveTo((cx/2) + 150, 100);
		ctx.bezierCurveTo((cx/2) + 350, 150, cx, 0, cx + (cx/2 - 160), 270);
		ctx.stroke();
		ctx.closePath();
		
		
		ctx.beginPath();	
		ctx.drawImage(icon6,maxX/2-220 + precFrom - tdx,maxY/2 - 20);
		ctx.drawImage(icon9,maxX/2-220 + precTo - tdx, maxY/2 - 20);
		
		//ctx.drawImage(iconTop1,(cx/2) - 430, 15+scaler/2, 184-scaler,184-scaler);
		ctx.drawImage(iconTop2,(cx/2) + 30, 15+scaler/2, 176-scaler,176-scaler);	
		ctx.closePath();
	
		$('#stat').html(tdx  + '___' + slideFrom + '___' + slideTo);
		
	} else {
		clearInterval(int);
		mtdx = 700;
		if (!resized) {mayak_fade = 200;}
		if (resized) {mtdx = 700;} // to redraw lines in their positions, after resize
		if (hash) {mtdx = 700;}
		slidefix = cx * slideTo - tdx;
		$('.slide').css('left', slidefix + 'px');
		$('.slidewrap:eq(5)').fadeIn(200, function(){});
		$('#l-arrow, #r-arrow').show();
		int = setInterval('main_mayak_4('+slideFrom+','+slideTo+')',30);
	}
}


function main_mayak_4 (slideFrom, slideTo) {
	if (mayak_fade > 0) {
		
		var precFrom = maxX * 5;
		var precTo = maxX * 0;
		
		ctx.clearRect(0,0,maxX,maxY);
		var mayak = Math.sin(mtdx/200)*mayak_fade;
		mtdx = mtdx - ddx;
		mayak_fade -= 6;
		
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(141,198,63)';
		
		ctx.moveTo(0, 450);		
		ctx.bezierCurveTo(cx/2 - cx/4 + precFrom - tdx, 470, (cx/2 - 400) - mayak + precFrom - tdx, 300, cx/2-210 + precFrom - tdx, 300);
		ctx.moveTo(cx/2-100 + precFrom - tdx, 300);
		ctx.bezierCurveTo(cx/2 + 100 - mayak + precFrom - tdx, 300, (cx/2 + 200) + precFrom - tdx, 400, cx + precFrom - tdx, 450);
		
		ctx.stroke();
		ctx.closePath();
		
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(236,0,140)';
		ctx.moveTo(0, cy-200);
		ctx.bezierCurveTo(cx/2 - 700 - maxX, 140, (cx/2) - 600 - maxX, 150, (cx/2) - 400 - maxX, 100);
		ctx.moveTo((cx/2) - 330 - maxX, 70);
		ctx.bezierCurveTo(cx/2 - 130, 30, cx/2 - 80, 30, (cx/2) + 70, 60);
		ctx.moveTo((cx/2) + 150, 100);
		ctx.bezierCurveTo((cx/2) + 350, 150, cx, 0, cx + (cx/2 - 160), 270);
		ctx.stroke();
		ctx.closePath();
			
		ctx.beginPath();	
		ctx.drawImage(icon9,maxX/2-220 + precFrom - tdx, maxY/2 - 20);
		
		//ctx.drawImage(iconTop1,(cx/2) - 430, 15+scaler/2, 184-scaler,184-scaler);
		ctx.drawImage(iconTop2,(cx/2) + 30, 15+scaler/2, 176-scaler,176-scaler);	
		ctx.closePath();
	

	} else {
		clearInterval(int);
		if (resized) {mayak_fade=1;}
		mtdx = 700;
		if (hash) mayak_fade = 1;
		else mayak_fade = 200;
		
		mousebinding(); // binding mouse drag
		
	}
}

function animateToRight_5(slideFrom, slideTo, speed) {
	if (tdx > maxX*slideTo) {
		
		ctx.clearRect(0,0,maxX,maxY);
		var precFrom = maxX * slideFrom;
		var precTo = maxX * slideTo;
		tdx = tdx - ddx;
			
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(141,198,63)';
		
		ctx.moveTo(precTo - tdx, 380);
		ctx.bezierCurveTo(cx/2 - cx/4 + precTo - tdx, 380, (cx/2 - 400 + precTo) - tdx, 300, cx/2-210 + precTo - tdx, 300);
		ctx.moveTo(cx/2-100 + precTo - tdx, 300);
		ctx.bezierCurveTo(cx/2 + 200 + precTo - tdx, 300, (cx/2 + 200 + precTo) - tdx, 400, cx + precTo - tdx, 450);

		ctx.bezierCurveTo(cx/2 - cx/4 + precFrom - tdx, 470, (cx/2 - 400 + precFrom) - tdx, 300, cx/2-210 + precFrom - tdx, 300);
		ctx.moveTo(cx/2-100 + precFrom - tdx, 300);
		if (pink_hacktdx) ctx.bezierCurveTo(cx/2 + 100 + precFrom - tdx, 300, (cx/2 + 200 + precFrom) - tdx, 400, cx, 450);
		else ctx.bezierCurveTo(cx/2 + 100 + precFrom - tdx, 300, (cx/2 + 200 + precFrom) - tdx, 400, cx + precFrom - tdx, 450);
		
		ctx.stroke();
		ctx.closePath();
		
		
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(236,0,140)';
		ctx.moveTo(0, cy-200);
		ctx.bezierCurveTo(cx/2 - 700 - maxX, 140, (cx/2) - 600 - maxX, 150, (cx/2) - 400 - maxX, 100);
		ctx.moveTo((cx/2) - 330 - maxX, 70);
		ctx.bezierCurveTo(cx/2 - 130, 30, cx/2 - 80, 30, (cx/2) + 70, 60);
		ctx.moveTo((cx/2) + 150, 100);
		ctx.bezierCurveTo((cx/2) + 350, 150, cx, 0, cx + (cx/2 - 160), 270);
		ctx.stroke();
		ctx.closePath();
		
		ctx.beginPath();	
		ctx.drawImage(icon6,maxX/2-220 + precTo - tdx,maxY/2 - 20);
		ctx.drawImage(icon9,maxX/2-220 + precFrom - tdx, maxY/2 - 20);
		
		//ctx.drawImage(iconTop1,(cx/2) - 430, 15+scaler/2, 184-scaler,184-scaler);
		ctx.drawImage(iconTop2,(cx/2) + 30, 15+scaler/2, 176-scaler,176-scaler);	
		ctx.closePath();

	} else {
		clearInterval(int);
		mtdx = 700;
		if (!resized) {mayak_fade = 200;}
		if (resized) {mtdx = 700;} // to redraw lines in their positions, after resize
		if (hash) {mtdx = 700;}
		slidefix = cx * slideTo - tdx;
		$('.slide').css('left', slidefix + 'px');
		$('.slidewrap:eq(4)').fadeIn(200, function(){$('#l-arrow, #r-arrow').show();});
		int = setInterval('main_mayak_3('+slideFrom+','+slideTo+')',30);
	}
}

// ********************************** /SLIDE 5 **************************************** //

// ********************************** SLIDE 6 **************************************** //

function animateToLeft_5(slideFrom, slideTo, speed) {
	if (tdx < maxX*slideTo) {
		
		ctx.clearRect(0,0,maxX,maxY);
		var precFrom = maxX * slideFrom;
		var precTo = maxX * slideTo;
		tdx = tdx + ddx;
			
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(141,198,63)';
		
		ctx.moveTo(precFrom - tdx, 450);
		ctx.bezierCurveTo(cx/2 - cx/4 + precFrom - tdx, 470, (cx/2 - 400 + precFrom) - tdx, 300, cx/2-210 + precFrom - tdx, 300);
		ctx.moveTo(cx/2-100 + precFrom - tdx, 300);
		ctx.bezierCurveTo(cx/2 + 100 + precFrom - tdx, 300, (cx/2 + 200 + precFrom) - tdx, 400, cx + precFrom - tdx, 450);
		
		ctx.bezierCurveTo(cx/2 - cx/4 + precTo - tdx, 470, (cx/2 - 400 + precTo) - tdx, 300, cx/2-210 + precTo - tdx, 300);
		ctx.moveTo(cx/2-100 + precTo - tdx, 300);
		ctx.bezierCurveTo(cx/2 + 200 + precTo - tdx, 300, (cx/2 + 200 + precTo) - tdx, 400, cx + precTo - tdx, 450);
		
		ctx.stroke();
		ctx.closePath();
		
		
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(236,0,140)';
		ctx.moveTo(0, cy-200);
		ctx.bezierCurveTo(cx/2 - 700 - maxX, 140, (cx/2) - 600 - maxX, 150, (cx/2) - 400 - maxX, 100);
		ctx.moveTo((cx/2) - 330 - maxX, 70);
		ctx.bezierCurveTo(cx/2 - 130, 30, cx/2 - 80, 30, (cx/2) + 70, 60);
		ctx.moveTo((cx/2) + 150, 100);
		ctx.bezierCurveTo((cx/2) + 350, 150, cx, 0, cx + (cx/2 - 160), 270);
		ctx.stroke();
		ctx.closePath();
		
		ctx.beginPath();	
		ctx.drawImage(icon9,maxX/2-220 + precFrom - tdx, maxY/2 - 20);
		ctx.drawImage(icon7,maxX/2-220 + precTo - tdx,maxY/2 - 20);
		
		//ctx.drawImage(iconTop1,(cx/2) - 430, 15+scaler/2, 184-scaler,184-scaler);
		ctx.drawImage(iconTop2,(cx/2) + 30, 15+scaler/2, 176-scaler,176-scaler);	
		ctx.closePath();

	} else {
		clearInterval(int);
		mtdx = 700;
		if (!resized) {mayak_fade = 200;}
		if (resized) {mtdx = 700;} // to redraw lines in their positions, after resize
		if (hash) {mtdx = 700;}
		slidefix = cx * slideTo - tdx;
		$('.slide').css('left', slidefix + 'px');
		$('.slidewrap:eq(6)').fadeIn(200, function(){$('#l-arrow, #r-arrow').show();});
		int = setInterval('main_mayak_5('+slideFrom+','+slideTo+')',30);
	}
}

function main_mayak_5 (slideFrom, slideTo) {
	if (mayak_fade > 0) {
		
		var precFrom = maxX * 6;
		var precTo = maxX * 0;
		
		ctx.clearRect(0,0,maxX,maxY);
		var mayak = Math.sin(mtdx/200)*mayak_fade;
		mtdx = mtdx - ddx;
		mayak_fade -= 6;
		
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(141,198,63)';
		
		ctx.moveTo(0, 450);
		ctx.bezierCurveTo(cx/2 - cx/4 + precFrom - tdx, 470, (cx/2 - 400) - mayak + precFrom - tdx, 300, cx/2-210 + precFrom - tdx, 300);
		ctx.moveTo(cx/2-100 + precFrom - tdx, 300);
		ctx.bezierCurveTo(cx/2 + 100 - mayak + precFrom - tdx, 300, (cx/2 + 200) + precFrom - tdx, 400, cx + precFrom - tdx, 450);
		
		ctx.stroke();
		ctx.closePath();
		
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(236,0,140)';
		ctx.moveTo(0, cy-200);
		ctx.bezierCurveTo(cx/2 - 700 - maxX, 140, (cx/2) - 600 - maxX, 150, (cx/2) - 400 - maxX, 100);
		ctx.moveTo((cx/2) - 330 - maxX, 70);
		ctx.bezierCurveTo(cx/2 - 130, 30, cx/2 - 80, 30, (cx/2) + 70, 60);
		ctx.moveTo((cx/2) + 150, 100);
		ctx.bezierCurveTo((cx/2) + 350, 150, cx, 0, cx + (cx/2 - 160), 270);
		ctx.stroke();
		ctx.closePath();
		
		ctx.beginPath();	
		ctx.drawImage(icon7,maxX/2-220 + precFrom - tdx, maxY/2 - 20);
		
		//ctx.drawImage(iconTop1,(cx/2) - 430, 15+scaler/2, 184-scaler,184-scaler);
		ctx.drawImage(iconTop2,(cx/2) + 30, 15+scaler/2, 176-scaler,176-scaler);	
		ctx.closePath();

	} else {
		clearInterval(int);
		if (resized) {mayak_fade=1;}
		mtdx = 700;
		if (hash) mayak_fade = 1;
		else mayak_fade = 200;
		
		mousebinding(); // binding mouse drag
		
	}
}

function animateToRight_6(slideFrom, slideTo, speed) {
	if (tdx > maxX*slideTo) {
		
		ctx.clearRect(0,0,maxX,maxY);
		var precFrom = maxX * slideFrom;
		var precTo = maxX * slideTo;
		tdx = tdx - ddx;
			
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(141,198,63)';
		
		ctx.moveTo(precTo - tdx, 380);
		ctx.bezierCurveTo(cx/2 - cx/4 + precTo - tdx, 380, (cx/2 - 400 + precTo) - tdx, 300, cx/2-210 + precTo - tdx, 300);
		ctx.moveTo(cx/2-100 + precTo - tdx, 300);
		ctx.bezierCurveTo(cx/2 + 200 + precTo - tdx, 300, (cx/2 + 200 + precTo) - tdx, 400, cx + precTo - tdx, 450);

		ctx.bezierCurveTo(cx/2 - cx/4 + precFrom - tdx, 470, (cx/2 - 400 + precFrom) - tdx, 300, cx/2-210 + precFrom - tdx, 300);
		ctx.moveTo(cx/2-100 + precFrom- tdx, 300);
		if (pink_hacktdx) ctx.bezierCurveTo(cx/2 + 100 + precFrom - tdx, 300, (cx/2 + 200 + precFrom) - tdx, 400, cx, 450);
		else ctx.bezierCurveTo(cx/2 + 100 + precFrom - tdx, 300, (cx/2 + 200 + precFrom) - tdx, 400, cx + precFrom - tdx, 450);
		
		ctx.stroke();
		ctx.closePath();
		
		
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(236,0,140)';
		ctx.moveTo(0, cy-200);
		ctx.bezierCurveTo(cx/2 - 700 - maxX, 140, (cx/2) - 600 - maxX, 150, (cx/2) - 400 - maxX, 100);
		ctx.moveTo((cx/2) - 330 - maxX, 70);
		ctx.bezierCurveTo(cx/2 - 130, 30, cx/2 - 80, 30, (cx/2) + 70, 60);
		ctx.moveTo((cx/2) + 150, 100);
		ctx.bezierCurveTo((cx/2) + 350, 150, cx, 0, cx + (cx/2 - 160), 270);
		ctx.stroke();
		ctx.closePath();
		
		ctx.beginPath();	
		ctx.drawImage(icon9,maxX/2-220 + precTo - tdx,maxY/2 - 20);
		ctx.drawImage(icon7,maxX/2-220 + precFrom - tdx, maxY/2 - 20);
		
		//ctx.drawImage(iconTop1,(cx/2) - 430, 15+scaler/2, 184-scaler,184-scaler);
		ctx.drawImage(iconTop2,(cx/2) + 30, 15+scaler/2, 176-scaler,176-scaler);	
		ctx.closePath();
	
	} else {
		clearInterval(int);
		mtdx = 5000;
		if (!resized) {mayak_fade = 200;}
		if (resized) {mtdx = 5000;} // to redraw lines in their positions, after resize
		if (hash) {mtdx = 5000;}
		slidefix = cx * slideTo - tdx;
		$('.slide').css('left', slidefix + 'px');
		$('.slidewrap:eq(5)').fadeIn(200, function(){$('#l-arrow, #r-arrow').show();});
		int = setInterval('main_mayak_4('+slideFrom+','+slideTo+')',30);
	}
}

// ********************************** /SLIDE 6 **************************************** //


// ********************************** SLIDE 7 **************************************** //


function animateToLeft_6(slideFrom, slideTo, speed) {
	if (tdx < maxX*slideTo) {
		
		ctx.clearRect(0,0,maxX,maxY);
		var precFrom = maxX * slideFrom;
		var precTo = maxX * slideTo;
		tdx = tdx + ddx;
			
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(141,198,63)';
		
		ctx.moveTo(precFrom - tdx, 450);
		ctx.bezierCurveTo(cx/2 - cx/4 + precFrom - tdx, 470, (cx/2 - 400 + precFrom) - tdx, 300, cx/2-210 + precFrom - tdx, 300);
		ctx.moveTo(cx/2-100 + precFrom - tdx, 300);
		ctx.bezierCurveTo(cx/2 + 100 + precFrom - tdx, 300, (cx/2 + 200 + precFrom) - tdx, 400, cx + precFrom - tdx, 450);
		
		ctx.bezierCurveTo(cx/2 - cx/4 + precTo - tdx, 470, (cx/2 - 400 + precTo) - tdx, 300, cx/2-210 + precTo - tdx, 300);
		ctx.moveTo(cx/2-100 + precTo - tdx, 300);
		ctx.bezierCurveTo(cx/2 + 200 + precTo - tdx, 300, (cx/2 + 200 + precTo) - tdx, 400, cx + precTo - tdx, 450);
		
		ctx.stroke();
		ctx.closePath();
		
		
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(236,0,140)';
		ctx.moveTo(0, cy-200);
		ctx.bezierCurveTo(cx/2 - 700 - maxX, 140, (cx/2) - 600 - maxX, 150, (cx/2) - 400 - maxX, 100);
		ctx.moveTo((cx/2) - 330 - maxX, 70);
		ctx.bezierCurveTo(cx/2 - 130, 30, cx/2 - 80, 30, (cx/2) + 70, 60);
		ctx.moveTo((cx/2) + 150, 100);
		ctx.bezierCurveTo((cx/2) + 350, 150, cx, 0, cx + (cx/2 - 160), 270);
		ctx.stroke();
		ctx.closePath();
		
		ctx.beginPath();	
		ctx.drawImage(icon7,maxX/2-220 + precFrom - tdx, maxY/2 - 20);
		ctx.drawImage(icon8,maxX/2-220 + precTo - tdx,maxY/2 - 20);
		
		//ctx.drawImage(iconTop1,(cx/2) - 430, 15+scaler/2, 184-scaler,184-scaler);
		ctx.drawImage(iconTop2,(cx/2) + 30, 15+scaler/2, 176-scaler,176-scaler);	
		ctx.closePath();
		
	} else {
		clearInterval(int);
		mtdx = 700;
		if (!resized) {mayak_fade = 200;}
		if (resized) {mtdx = 700;} // to redraw lines in their positions, after resize
		if (hash) {mtdx = 700;}
		slidefix = cx * slideTo - tdx;
		$('.slide').css('left', slidefix + 'px');
		$('.slidewrap:eq(7)').fadeIn(200, function(){$('#l-arrow, #r-arrow').show();});
		int = setInterval('main_mayak_6('+slideFrom+','+slideTo+')',30);
	}
}

function main_mayak_6 (slideFrom, slideTo) {
	if (mayak_fade > 0) {
		
		var precFrom = maxX * 7;
		var precTo = maxX * 0;
		
		ctx.clearRect(0,0,maxX,maxY);
		var mayak = Math.sin(mtdx/200)*mayak_fade;
		mtdx = mtdx - ddx;
		mayak_fade -= 6;
		
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(141,198,63)';
		
		ctx.moveTo(0, 450);
		ctx.bezierCurveTo(cx/2 - cx/4 + precFrom - tdx, 470, (cx/2 - 400) - mayak + precFrom - tdx, 300, cx/2-210 + precFrom - tdx, 300);
		ctx.moveTo(cx/2-100 + precFrom - tdx, 300);
		ctx.bezierCurveTo(cx/2 + 100 - mayak + precFrom - tdx, 300, (cx/2 + 200) + precFrom - tdx, 400, cx + precFrom - tdx, 450);
		
		ctx.stroke();
		ctx.closePath();
		
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(236,0,140)';
		ctx.moveTo(0, cy-200);
		ctx.bezierCurveTo(cx/2 - 700 - maxX, 140, (cx/2) - 600 - maxX, 150, (cx/2) - 400 - maxX, 100);
		ctx.moveTo((cx/2) - 330 - maxX, 70);
		ctx.bezierCurveTo(cx/2 - 130, 30, cx/2 - 80, 30, (cx/2) + 70, 60);
		ctx.moveTo((cx/2) + 150, 100);
		ctx.bezierCurveTo((cx/2) + 350, 150, cx, 0, cx + (cx/2 - 160), 270);
		ctx.stroke();
		ctx.closePath();
		
		ctx.beginPath();	
		ctx.drawImage(icon8,maxX/2-220 + precFrom - tdx, maxY/2 - 20);
		
		//ctx.drawImage(iconTop1,(cx/2) - 430, 15+scaler/2, 184-scaler,184-scaler);
		ctx.drawImage(iconTop2,(cx/2) + 30, 15+scaler/2, 176-scaler,176-scaler);	
		ctx.closePath();

	} else {
		clearInterval(int);
		if (resized) {mayak_fade=1;}
		mtdx = 700;
		if (hash) mayak_fade = 1;
		else mayak_fade = 200;
		
		mousebinding(); // binding mouse drag
		
	}
}

function animateToRight_7(slideFrom, slideTo, speed) {
	if (tdx > maxX*slideTo) {
		
		ctx.clearRect(0,0,maxX,maxY);
		var precFrom = maxX * slideFrom;
		var precTo = maxX * slideTo;
		tdx = tdx - ddx;
			
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(141,198,63)';
		
		ctx.moveTo(precTo - tdx, 380);
		ctx.bezierCurveTo(cx/2 - cx/4 + precTo - tdx, 380, (cx/2 - 400 + precTo) - tdx, 300, cx/2-210 + precTo - tdx, 300);
		ctx.moveTo(cx/2-100 + precTo - tdx, 300);
		ctx.bezierCurveTo(cx/2 + 200 + precTo - tdx, 300, (cx/2 + 200 + precTo) - tdx, 400, cx + precTo - tdx, 450);

		ctx.bezierCurveTo(cx/2 - cx/4 + precFrom - tdx, 470, (cx/2 - 400 + precFrom) - tdx, 300, cx/2-210 + precFrom - tdx, 300);
		ctx.moveTo(cx/2-100 + precFrom- tdx, 300);
		if (pink_hacktdx) ctx.bezierCurveTo(cx/2 + 100 + precFrom - tdx, 300, (cx/2 + 200 + precFrom) - tdx, 400, cx, 450);
		else ctx.bezierCurveTo(cx/2 + 100 + precFrom - tdx, 300, (cx/2 + 200 + precFrom) - tdx, 400, cx + precFrom - tdx, 450);
		ctx.stroke();
		ctx.closePath();
		
		
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(236,0,140)';
		ctx.moveTo(0, cy-200);
		ctx.bezierCurveTo(cx/2 - 700 - maxX, 140, (cx/2) - 600 - maxX, 150, (cx/2) - 400 - maxX, 100);
		ctx.moveTo((cx/2) - 330 - maxX, 70);
		ctx.bezierCurveTo(cx/2 - 130, 30, cx/2 - 80, 30, (cx/2) + 70, 60);
		ctx.moveTo((cx/2) + 150, 100);
		ctx.bezierCurveTo((cx/2) + 350, 150, cx, 0, cx + (cx/2 - 160), 270);
		ctx.stroke();
		ctx.closePath();
		
		ctx.beginPath();	
		ctx.drawImage(icon7,maxX/2-220 + precTo - tdx,maxY/2 - 20);
		ctx.drawImage(icon8,maxX/2-220 + precFrom - tdx, maxY/2 - 20);
		
		//ctx.drawImage(iconTop1,(cx/2) - 430, 15+scaler/2, 184-scaler,184-scaler);
		ctx.drawImage(iconTop2,(cx/2) + 30, 15+scaler/2, 176-scaler,176-scaler);	
		ctx.closePath();
	
	} else {
		clearInterval(int);
		mtdx = 5000;
		if (!resized) {mayak_fade = 200;}
		if (resized) {mtdx = 5000;} // to redraw lines in their positions, after resize
		if (hash) {mtdx = 5000;}
		slidefix = cx * slideTo - tdx;
		$('.slide').css('left', slidefix + 'px');
		$('.slidewrap:eq(6)').fadeIn(200, function(){$('#l-arrow, #r-arrow').show();});
		int = setInterval('main_mayak_5('+slideFrom+','+slideTo+')',30);
	}
}


// ********************************** /SLIDE 7 **************************************** //

// ********************************** SLIDE 8 **************************************** //


function animateToLeft_7(slideFrom, slideTo, speed) {
	if (tdx < maxX*slideTo) {
		
		ctx.clearRect(0,0,maxX,maxY);
		var precFrom = maxX * slideFrom;
		var precTo = maxX * slideTo;
		tdx = tdx + ddx;
			
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(141,198,63)';
		
		ctx.moveTo(precFrom - tdx, 450);
		ctx.bezierCurveTo(cx/2 - cx/4 + precFrom - tdx, 470, (cx/2 - 400 + precFrom) - tdx, 300, cx/2-210 + precFrom - tdx, 300);
		ctx.moveTo(cx/2-100 + precFrom - tdx, 300);
		ctx.bezierCurveTo(cx/2 + 100 + precFrom - tdx, 300, (cx/2 + 200 + precFrom) - tdx, 400, cx + precFrom - tdx, 450);
		
		ctx.bezierCurveTo(cx/2 - cx/4 + precTo - tdx, 470, (cx/2 - 400 + precTo) - tdx, 300, cx/2-190 + precTo - tdx, 300);
		ctx.moveTo(cx/2 - 100 + precTo - tdx, 300);
		ctx.bezierCurveTo(cx/2 + 300 + precTo - tdx, 300, (cx/2 + 200 + precTo) - tdx, 400, cx + precTo - tdx, 450);
		
		ctx.stroke();
		ctx.closePath();
		
		
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(236,0,140)';
		ctx.moveTo(0, cy-200);
		ctx.bezierCurveTo(cx/2 - 700 - maxX, 140, (cx/2) - 600 - maxX, 150, (cx/2) - 400 - maxX, 100);
		ctx.moveTo((cx/2) - 330 - maxX, 70);
		ctx.bezierCurveTo(cx/2 - 130, 30, cx/2 - 80, 30, (cx/2) + 70, 60);
		ctx.moveTo((cx/2) + 150, 100);
		ctx.bezierCurveTo((cx/2) + 350, 150, cx, 0, cx + (cx/2 - 160), 270);
		ctx.stroke();
		ctx.closePath();
		
		ctx.beginPath();	
		ctx.drawImage(icon8,maxX/2-220 + precFrom - tdx, maxY/2 - 20);
		ctx.drawImage(icon10,maxX/2-220 + precTo - tdx,maxY/2 - 20);
		
		//ctx.drawImage(iconTop1,(cx/2) - 430, 15+scaler/2, 184-scaler,184-scaler);
		ctx.drawImage(iconTop2,(cx/2) + 30, 15+scaler/2, 176-scaler,176-scaler);	
		ctx.closePath();
	
		$('#stat').html(tdx  + '___' + slideFrom + '___' + slideTo);
		
	} else {
		clearInterval(int);
		mtdx = 700;
		if (!resized) {mayak_fade = 200;}
		if (resized) {mtdx = 700;} // to redraw lines in their positions, after resize
		if (hash) {mtdx = 700;}
		$('.slide').css('left', slidefix + 'px');
		$('.slidewrap:eq(8)').fadeIn(200, function(){$('#l-arrow, #r-arrow').show();});
		int = setInterval('main_mayak_7('+slideFrom+','+slideTo+')',30);
	}
}

function main_mayak_7 (slideFrom, slideTo) {
	if (mayak_fade > 0) {
		
		var precFrom = maxX * 8;
		var precTo = maxX * 0;
		
		ctx.clearRect(0,0,maxX,maxY);
		var mayak = Math.sin(mtdx/200)*mayak_fade;
		mtdx = mtdx - ddx;
		mayak_fade -= 6;
		
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(141,198,63)';
		
		ctx.moveTo(0, 450);
		ctx.bezierCurveTo(cx/2 - cx/4 + precFrom - tdx, 470, (cx/2 - 400) - mayak + precFrom - tdx, 300, cx/2-190 + precFrom - tdx, 300);
		ctx.moveTo(cx/2-100 + precFrom - tdx, 300);
		ctx.bezierCurveTo(cx/2 + 300 - mayak + precFrom - tdx, 300, (cx/2 + 200) + precFrom - tdx, 400, cx + precFrom - tdx, 450);
		
		ctx.stroke();
		ctx.closePath();
		
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(236,0,140)';
		ctx.moveTo(0, cy-200);
		ctx.bezierCurveTo(cx/2 - 700 - maxX, 140, (cx/2) - 600 - maxX, 150, (cx/2) - 400 - maxX, 100);
		ctx.moveTo((cx/2) - 330 - maxX, 70);
		ctx.bezierCurveTo(cx/2 - 130, 30, cx/2 - 80, 30, (cx/2) + 70, 60);
		ctx.moveTo((cx/2) + 150, 100);
		ctx.bezierCurveTo((cx/2) + 350, 150, cx, 0, cx + (cx/2 - 160), 270);
		ctx.stroke();
		ctx.closePath();
		
		ctx.beginPath();	
		ctx.drawImage(icon10,maxX/2-220 + precFrom - tdx, maxY/2 - 20);
		
		//ctx.drawImage(iconTop1,(cx/2) - 430, 15+scaler/2, 184-scaler,184-scaler);
		ctx.drawImage(iconTop2,(cx/2) + 30, 15+scaler/2, 176-scaler,176-scaler);	
		ctx.closePath();
	} else {
		clearInterval(int);
		if (resized) {mayak_fade=1;}
		mtdx = 700;
		if (hash) mayak_fade = 1;
		else mayak_fade = 200;
		
		mousebinding(); // binding mouse drag
		
	}
}

function animateToRight_8(slideFrom, slideTo, speed) {
	if (tdx > maxX*slideTo) {
		
		ctx.clearRect(0,0,maxX,maxY);
		var precFrom = maxX * slideFrom;
		var precTo = maxX * slideTo;
		tdx = tdx - ddx;
			
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(141,198,63)';
		
		ctx.moveTo(precTo - tdx, 380);
		ctx.bezierCurveTo(cx/2 - cx/4 + precTo - tdx, 380, (cx/2 - 400 + precTo) - tdx, 300, cx/2-190 + precTo - tdx, 300);
		ctx.moveTo(cx/2-100 + precTo - tdx, 300);
		ctx.bezierCurveTo(cx/2 + 100 + precTo - tdx, 300, (cx/2 + 200 + precTo) - tdx, 400, cx + precTo - tdx, 450);
		
		ctx.bezierCurveTo(cx/2 - cx/4 + precFrom - tdx, 470, (cx/2 - 400 + precFrom) - tdx, 300, cx/2-190 + precFrom - tdx, 300);
		ctx.moveTo(cx/2-100 + precFrom- tdx, 300);
		if (pink_hacktdx) ctx.bezierCurveTo(cx/2 + 300 + precFrom - tdx, 300, (cx/2 + 200 + precFrom) - tdx, 400, cx, 450);
		else ctx.bezierCurveTo(cx/2 + 300 + precFrom - tdx, 300, (cx/2 + 200 + precFrom) - tdx, 400, cx + precFrom - tdx, 450);
		
		
		ctx.stroke();
		ctx.closePath();
		
		
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(236,0,140)';
		ctx.moveTo(0, cy-200);
		ctx.bezierCurveTo(cx/2 - 700 - maxX, 140, (cx/2) - 600 - maxX, 150, (cx/2) - 400 - maxX, 100);
		ctx.moveTo((cx/2) - 330 - maxX, 70);
		ctx.bezierCurveTo(cx/2 - 130, 30, cx/2 - 80, 30, (cx/2) + 70, 60);
		ctx.moveTo((cx/2) + 150, 100);
		ctx.bezierCurveTo((cx/2) + 350, 150, cx, 0, cx + (cx/2 - 160), 270);
		ctx.stroke();
		ctx.closePath();
		
		ctx.beginPath();	
		ctx.drawImage(icon8,maxX/2-220 + precTo - tdx,maxY/2 - 20);
		ctx.drawImage(icon10,maxX/2-220 + precFrom - tdx, maxY/2 - 20);
		
		//ctx.drawImage(iconTop1,(cx/2) - 430, 15+scaler/2, 184-scaler,184-scaler);
		ctx.drawImage(iconTop2,(cx/2) + 30, 15+scaler/2, 176-scaler,176-scaler);	
		ctx.closePath();
	} else {
		clearInterval(int);
		mtdx = 5000;
		if (!resized) {mayak_fade = 200;}
		if (resized) {mtdx = 5000;} // to redraw lines in their positions, after resize
		if (hash) {mtdx = 5000;}
		slidefix = cx * slideTo - tdx;
		$('.slide').css('left', slidefix + 'px');
		$('.slidewrap:eq(7)').fadeIn(200, function(){$('#l-arrow, #r-arrow').show();});
		int = setInterval('main_mayak_6('+slideFrom+','+slideTo+')',30);
	}
}


// ********************************** /SLIDE 8 **************************************** //

// ********************************** SLIDE 9 **************************************** //


function animateToLeft_8(slideFrom, slideTo, speed) {
	if (tdx < maxX*slideTo) {
		
		ctx.clearRect(0,0,maxX,maxY);
		var precFrom = maxX * slideFrom;
		var precTo = maxX * slideTo;
		tdx = tdx + ddx;
			
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(141,198,63)';
		
		ctx.moveTo(precFrom - tdx, 450);
		ctx.bezierCurveTo(cx/2 - cx/4 + precFrom - tdx, 470, (cx/2 - 400 + precFrom) - tdx, 300, cx/2-190 + precFrom - tdx, 300);
		ctx.moveTo(cx/2-200 + precFrom - tdx, 300);
		ctx.bezierCurveTo(cx/2 + 100 + precFrom - tdx, 300, (cx/2 + 200 + precFrom) - tdx, 400, cx + precFrom - tdx, 450);
		
		ctx.bezierCurveTo(cx/2 - cx/4 + precTo - tdx, 470, (cx/2 - 400 + precTo) - tdx, 300, cx/2-190 + precTo - tdx, 300);
		ctx.moveTo(cx/2-110 + precTo - tdx, 280);
		ctx.bezierCurveTo(cx/2 + 200 + precTo - tdx, 150, (cx/2 + 300 + precTo) - tdx, 180, cx + precTo - tdx, 200);
		
		ctx.stroke();
		ctx.closePath();
		
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(236,0,140)';
		ctx.moveTo(0, cy-200);
		ctx.bezierCurveTo(cx/2 - 700 - maxX - precFrom + tdx, 140, (cx/2) - 600 - maxX - precFrom + tdx, 150, (cx/2) - 400 - maxX - precFrom + tdx, 100);
		ctx.moveTo((cx/2) - 330 - maxX - precFrom + tdx, 70);
		ctx.bezierCurveTo(cx/2 - 130, 30, cx/2 - 80, 30, (cx/2) + 70, 60);
		ctx.moveTo((cx/2) + 150, 100);
		ctx.bezierCurveTo((cx/2) + 350, 150, cx, 0, cx + (cx/2 - 160), 270);
		ctx.stroke();
		ctx.closePath();
		
		scaler_music -=0.9;
		ctx.beginPath();
		ctx.drawImage(iconTop2,(cx/2) + 30, 15+scaler/2, 176-scaler,176-scaler);
		ctx.drawImage(icon10,maxX/2-220 + precFrom - tdx, maxY/2 - 20);
		ctx.drawImage(icon11,maxX/2-220 + precTo - tdx,maxY/2 - 20);
		ctx.drawImage(iconTop1,(cx/2) - 430 - maxX - precFrom + tdx, 15, 184-scaler, 184-scaler);
		ctx.closePath();
				
	} else {
		clearInterval(int);
		mtdx = 700;
		if (!resized) {mayak_fade = 200;mayak_pink_fade = 200;}
		if (resized) {mtdx = 700;} // to redraw lines in their positions, after resize
		if (hash) {mtdx = 700;}
		slidefix = cx * slideTo - tdx;
		$('.slide').css('left', slidefix + 'px');
		$('.slidewrap:eq(9)').fadeIn(200, function(){$('#l-arrow, #r-arrow').show();});
		$('.slide-container .music').fadeIn(200);
		int = setInterval('main_mayak_8('+slideFrom+','+slideTo+')',30);
	}
}


function main_mayak_8 (slideFrom, slideTo) {
	if (mayak_fade > 0) {
		
		var precFrom = maxX * 9;
		var precTo = maxX * 0;
		
		ctx.clearRect(0,0,maxX,maxY);
		var mayak = Math.sin(mtdx/200) * mayak_fade;
		var mayak_pink = Math.sin(mtdx/200) * mayak_pink_fade;
		mtdx = mtdx - ddx;
		mayak_fade -= 6;
		
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(141,198,63)';
		
		ctx.moveTo(0, 450);
		ctx.bezierCurveTo(cx/2 - cx/4 + precFrom - tdx, 470, (cx/2 - 400) - mayak + precFrom - tdx, 300, cx/2-190 + precFrom - tdx, 300);
		ctx.moveTo(cx/2-110 + precFrom - tdx, 280);
		ctx.bezierCurveTo(cx/2 + 200 - mayak + precFrom - tdx, 150, (cx/2 + 300) + precFrom - tdx, 180, cx + precFrom - tdx, 200);
		
		ctx.stroke();
		ctx.closePath();
		
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(236,0,140)';
		ctx.moveTo(0, cy-200);
		ctx.bezierCurveTo(cx/2 - 700, 140, (cx/2) - 600 + mayak_pink, 150, (cx/2) - 400, 100);
		ctx.moveTo((cx/2) - 330, 70);
		ctx.bezierCurveTo(cx/2 - 130 + mayak_pink, 30, cx/2 - 80, 30, (cx/2) + 70, 60);
		ctx.moveTo((cx/2) + 150, 100);
		ctx.bezierCurveTo((cx/2) + 350, 150, cx, 0, cx + (cx/2 - 160), 270);
		ctx.stroke();
		ctx.closePath();
		
		ctx.beginPath();	
		ctx.drawImage(iconTop2,(cx/2) + 30, 15+scaler/2, 176-scaler,176-scaler);
		ctx.drawImage(icon11,maxX/2-220 + precFrom - tdx, maxY/2 - 20);
		
		ctx.drawImage(iconTop1,(cx/2) - 430, 15, 184-scaler, 184-scaler);
		
		ctx.closePath();
} else {
		clearInterval(int);
		if (resized) {mayak_fade=1;}
		mtdx = 700;
		rlast_pink = 0;
		if (hash) mayak_fade = 1;
		else mayak_fade = 200;
		
		mousebinding(); // binding mouse drag
		
	}
}

function animateToRight_9(slideFrom, slideTo, speed) {
	if (tdx > maxX*slideTo) {
		
		ctx.clearRect(0,0,maxX,maxY);
		var precFrom = maxX * slideFrom;
		var precTo = maxX * slideTo;
		tdx = tdx - ddx;
			
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(141,198,63)';
		
		ctx.moveTo(precTo - tdx, 380);
		ctx.bezierCurveTo(cx/2 - cx/4 + precTo - tdx, 380, (cx/2 - 400 + precTo) - tdx, 300, cx/2-190 + precTo - tdx, 300);
		ctx.moveTo(cx/2-100 + precTo - tdx, 300);
		ctx.bezierCurveTo(cx/2 + 200 + precTo - tdx, 300, (cx/2 + 200 + precTo) - tdx, 400, cx + precTo - tdx, 450);
		
		ctx.bezierCurveTo(cx/2 - cx/4 + precFrom - tdx, 470, (cx/2 - 400 + precFrom) - tdx, 300, cx/2-190 + precFrom - tdx, 300);
		ctx.moveTo(cx/2-110 + precFrom - tdx, 280);
		if (pink_hacktdx) ctx.bezierCurveTo(cx/2 + 200 + precFrom - tdx, 150, (cx/2 + 300 + precFrom) - tdx, 180, cx, 200);
		else ctx.bezierCurveTo(cx/2 + 200 + precFrom - tdx, 150, (cx/2 + 300 + precFrom) - tdx, 180, cx + precFrom - tdx, 200);
		
		ctx.stroke();
		ctx.closePath();
		
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(236,0,140)';
		if (pink_hacktdx) {
			ctx.moveTo(0, cy-200);
			ctx.bezierCurveTo(cx/2 - 700, 140, (cx/2) - 600, 150, (cx/2) - 400, 100);
			ctx.moveTo((cx/2) - 330, 70);
			ctx.bezierCurveTo(cx/2 - 130, 30, cx/2 - 80, 30, (cx/2) + 70, 60);
			ctx.moveTo((cx/2) + 150, 100);
			ctx.bezierCurveTo((cx/2) + 350, 150, cx, 0, cx + (cx/2 - 160), 270);
			ctx.stroke();
			ctx.closePath();
			ctx.drawImage(iconTop1,(cx/2) - 430, 15, 184-scaler,184-scaler);
		} else {
			ctx.moveTo(0, cy-200);
			ctx.bezierCurveTo(cx/2 - 700 + tdx - precFrom, 140, (cx/2) - 600, 150, (cx/2) - 400 + tdx - precFrom, 100);
			ctx.moveTo((cx/2) - 330 + tdx - precFrom, 70);
			ctx.bezierCurveTo(cx/2 - 130, 30, cx/2 - 80, 30, (cx/2) + 70, 60);
			ctx.moveTo((cx/2) + 150, 100);
			ctx.bezierCurveTo((cx/2) + 350, 150, cx, 0, cx + (cx/2 - 160), 270);
			ctx.stroke();
			ctx.closePath();
			ctx.drawImage(iconTop1,(cx/2) - 430 + tdx - precFrom, 15, 184-scaler,184-scaler);
		}
		
		scaler_music +=0.9;
		ctx.beginPath();
		ctx.drawImage(iconTop2,(cx/2) + 30, 15+scaler/2, 176-scaler,176-scaler);
		ctx.drawImage(icon10,maxX/2-220 + precTo - tdx,maxY/2 - 20);
		ctx.drawImage(icon11,maxX/2-220 + precFrom - tdx, maxY/2 - 20);
		
		ctx.closePath();
	
	} else {
		clearInterval(int);
		mtdx = 5000;
		if (!resized) {mayak_fade = 200;}
		if (resized) {mtdx = 5000;} // to redraw lines in their positions, after resize
		if (hash) {mtdx = 5000;}
		slidefix = cx * slideTo - tdx;
		$('.slide').css('left', slidefix + 'px');
		$('.slidewrap:eq(8)').fadeIn(200, function(){$('#l-arrow, #r-arrow').show();});
		int = setInterval('main_mayak_7('+slideFrom+','+slideTo+')',30);
	}
}


// ********************************** /SLIDE 8 **************************************** //

// ********************************** SLIDE 9 **************************************** //

function animateToLeft_9(slideFrom, slideTo, speed) {
	if (tdx < maxX*slideTo) {
		if (!rlast_pink && !resized) cut_x += 6;
		ctx.clearRect(0,0,maxX,maxY);
		var precFrom = maxX * slideFrom;
		var precTo = maxX * slideTo;
		tdx = tdx + ddx;
			
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(141,198,63)';

		ctx.moveTo(precFrom - tdx, 450);
		ctx.bezierCurveTo(cx/2 - cx/4 + precFrom - tdx, 470, (cx/2 - 400 + precFrom) - tdx, 300, cx/2-190 + precFrom - tdx, 300);
		ctx.moveTo(cx/2-110 + precFrom - tdx, 280);
		ctx.bezierCurveTo(cx/2 + 200 + precFrom - tdx, 150, (cx/2 + 300 + precFrom) - tdx, 180, cx + precFrom - tdx, 200);
		
		ctx.bezierCurveTo(cx/2 - cx/4 + precTo - tdx, 210, cx/2 - 600 + precTo - tdx, 300, cx/2-200 + precTo - tdx, 350);
		
		ctx.stroke();
		ctx.closePath();
		
				
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(70,194,243)';
		ctx.moveTo(cx/2-210 + precTo - tdx, 350);
		ctx.bezierCurveTo(cx/2+300 + precTo - tdx, 440, cx/2+400 + precTo - tdx, -100, cx + precTo - tdx, 150);
		ctx.stroke();
		ctx.closePath();
		
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(236,0,140)';
		ctx.moveTo(0, cy-200);
		ctx.bezierCurveTo(cx/2 - 700, 140, (cx/2) - 600, 150, (cx/2) - 400, 100);
		ctx.moveTo((cx/2) - 330, 70);
		ctx.bezierCurveTo(cx/2 - 130, 30, cx/2 - 80, 30, (cx/2) + 70, 60);
		ctx.moveTo((cx/2) + 150, 100);
		ctx.bezierCurveTo((cx/2) + 350 - cut_x*2.5, 150 + cut_x/2, cx - cut_x*6, 0 + cut_x, cx/2 - 160 + precTo - tdx, 270);
		
		ctx.stroke();
		ctx.closePath();
		
		ctx.beginPath();	
		ctx.drawImage(iconTop2,(cx/2) + 30, 15+scaler/2, 176-scaler,176-scaler);
		ctx.drawImage(icon11,maxX/2-220 + precFrom - tdx, maxY/2 - 20);
		ctx.drawImage(icon12,maxX/2-220 + precTo - tdx,maxY/2 - 20);
		
		ctx.drawImage(iconTop1,(cx/2) - 430, 15, 184-scaler, 184-scaler);
		ctx.closePath();
} else {
		clearInterval(int);
		mtdx = 700;
		if (!resized) {mayak_fade = 200;}
		if (resized) {mtdx = 700;} // to redraw lines in their positions, after resize
		if (hash) {mtdx = 700;}
		slidefix = cx * slideTo - tdx;
		$('.slide').css('left', slidefix + 'px');
		//$('.slidewrap:eq(10)').fadeIn(200, function(){$('#l-arrow, #r-arrow').show();});
		$('.slide-container .music, .slide-container .animatik').fadeIn(200);
		int = setInterval('main_mayak_9('+slideFrom+','+slideTo+')',30);
	}
}

var cut_x = 0;
function main_mayak_9 (slideFrom, slideTo) {
	if (mayak_fade > 0) {
		
		var precFrom = maxX * 10;
		var precTo = maxX * 0;
		
		ctx.clearRect(0,0,maxX,maxY);
		var mayak = Math.sin(mtdx/200)*mayak_fade;
		mtdx = mtdx - ddx;
		mayak_fade -= 6;
		
		
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(141,198,63)';
		ctx.moveTo(0, 200);
		ctx.bezierCurveTo(cx/2 - cx/4 + precFrom - tdx, 210, cx/2 - 600 - mayak + precFrom - tdx, 300, cx/2-200 + precFrom - tdx, 350);	
		ctx.stroke();
		ctx.closePath();
		
				
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(70,194,243)';
		ctx.moveTo(cx/2-210 + precFrom - tdx, 350);
		ctx.bezierCurveTo(cx/2+300 + mayak + precFrom - tdx, 440, cx/2+400 + precFrom - tdx, -100, cx + precFrom - tdx, 150);
		ctx.stroke();
		ctx.closePath();
		
		
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(236,0,140)';
		ctx.moveTo(0, cy-200);
		ctx.bezierCurveTo(cx/2 - 700, 140, (cx/2) - 600, 150, (cx/2) - 400, 100);
		ctx.moveTo((cx/2) - 330, 70);
		ctx.bezierCurveTo(cx/2 - 130, 30, cx/2 - 80, 30, (cx/2) + 70, 60);
		
		ctx.moveTo((cx/2) + 150, 100);
		//ctx.bezierCurveTo((cx/2) + 350, 150, (cx/2) + 550, 100, cx/2 - 200, 260);
		ctx.bezierCurveTo((cx/2) + 350 - cut_x*2.5, 150 + cut_x/2, cx - cut_x*6 - mayak, 0 + cut_x, cx/2 - 160 + precFrom - tdx, 270);
		
		/*ctx.moveTo((cx/2)+ 100, 145);
		ctx.bezierCurveTo(cx/2 + cut_x/4, cut_x/1.3, cx/2 - cut_x + 100, cut_x/1.5 + 20, (cx/2) - cut_x + 60, cut_x/2+160);*/
		
		ctx.stroke();
		ctx.closePath();
		
		ctx.beginPath();	
		ctx.drawImage(iconTop2,(cx/2) + 30, 15+scaler/2, 176-scaler,176-scaler);
		ctx.drawImage(icon12,maxX/2-220 + precFrom - tdx, maxY/2 - 20);
		
		//ctx.drawImage(iconTop1,(cx/2) - 430, 15+scaler/2, 184-scaler,184-scaler);
		
		ctx.drawImage(iconTop1,(cx/2) - 430, 15, 184-scaler, 184-scaler);
		ctx.closePath();

	} else {
		 // cut_x = 204
		clearInterval(int);
		if (resized) {mayak_fade=1;}
		mtdx = 700;
		if (hash) mayak_fade = 1;
		else mayak_fade = 200;
		$('.slidewrap:eq(10)').fadeIn(200, function(){$('#l-arrow, #r-arrow').show();});
		mousebinding(); // binding mouse drag
		
	}
}

function animateToRight_10 (slideFrom, slideTo, speed) {
	if (tdx > maxX*slideTo) {
		ctx.clearRect(0,0,maxX,maxY);
		var precFrom = maxX * slideFrom;
		var precTo = maxX * slideTo;
		tdx = tdx - ddx;
		if (!pink_hacktdx) { cut_x -= 6; }
			
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(141,198,63)';
	
		
		ctx.moveTo(precTo - tdx, 450);
		ctx.bezierCurveTo(cx/2 - cx/4 + precTo - tdx, 470, (cx/2 - 500 + precTo) - tdx, 300, cx/2-190 + precTo - tdx, 300);
		ctx.moveTo(cx/2-110 + precTo - tdx, 280);
		ctx.bezierCurveTo(cx/2 + 200 + precTo - tdx, 150, (cx/2 + 300 + precTo) - tdx, 180, cx + precTo - tdx, 200);

		ctx.bezierCurveTo(cx/2 - cx/4 + precFrom - tdx, 210, cx/2 - 600 + precFrom - tdx, 300, cx/2-200 + precFrom - tdx, 350);
		
		ctx.stroke();
		ctx.closePath();
		
				
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(70,194,243)';
		ctx.moveTo(cx/2-210 + precFrom - tdx, 350);
		
		if (pink_hacktdx) ctx.bezierCurveTo(cx/2+300 + precFrom - tdx, 440, cx/2+400 + precFrom - tdx, -100, cx, 150);
		else ctx.bezierCurveTo(cx/2+300 + precFrom - tdx, 440, cx/2+400 + precFrom - tdx, -100, cx + precFrom - tdx, 150);
		ctx.stroke();
		ctx.closePath();
		
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(236,0,140)';
		
		ctx.moveTo(0, cy-200);
		ctx.bezierCurveTo(cx/2 - 700, 140, (cx/2) - 600, 150, (cx/2) - 400, 100);
		ctx.moveTo((cx/2) - 330, 70);
		ctx.bezierCurveTo(cx/2 - 130, 30, cx/2 - 80, 30, (cx/2) + 70, 60);
		
		if (pink_hacktdx) {
			ctx.moveTo((cx/2) + 150, 100);
			ctx.bezierCurveTo((cx/2) + 350 - cut_x*2.5, 150 + cut_x/2, cx - cut_x*6, 0 + cut_x, cx/2 - 160 + precFrom - tdx, 270);
		} else {
			ctx.moveTo((cx/2) + 150, 100);
			ctx.bezierCurveTo((cx/2) + 350 - cut_x*2.5, 150 + cut_x/2, cx - cut_x*6, 0 + cut_x, cx/2 - 160 + precFrom - tdx, 270);

		}
		ctx.stroke();
		ctx.closePath();
		
		ctx.beginPath();	
		ctx.drawImage(iconTop2,(cx/2) + 30, 15+scaler/2, 176-scaler,176-scaler);
		ctx.drawImage(icon11,maxX/2-220 + precTo - tdx, maxY/2 - 20);
		ctx.drawImage(icon12,maxX/2-220 + precFrom - tdx,maxY/2 - 20);
		
		ctx.drawImage(iconTop1, (cx/2) - 430, 15, 184-scaler,184-scaler);

		
		ctx.closePath();
	
	} else {
		clearInterval(int);
		mtdx = 5000;
		cut_x = 0;
		if (!resized) {mayak_fade = 200; mayak_pink_fade = 0;}
		if (resized) {mtdx = 5000;} // to redraw lines in their positions, after resize
		if (hash) {mtdx = 5000;}
		slidefix = cx * slideTo - tdx;
		$('.slide').css('left', slidefix + 'px');
		$('.slidewrap:eq(9)').fadeIn(200, function(){$('#l-arrow, #r-arrow').show();});
		$('.slide-container .music').fadeIn(200);
		int = setInterval('main_mayak_8('+slideFrom+','+slideTo+')',30);
	}
}



// ********************************** /SLIDE 9 **************************************** //

// ********************************** SLIDE 10 **************************************** //


function animateToLeft_10(slideFrom, slideTo, speed) {
	if (tdx < maxX*slideTo) {
		
		ctx.clearRect(0,0,maxX,maxY);
		var precFrom = maxX * slideFrom;
		var precTo = maxX * slideTo;
		tdx = tdx + ddx;
			
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(141,198,63)';
		
		ctx.moveTo(precFrom - tdx, 200);
		ctx.bezierCurveTo(cx/2 - cx/4 + precFrom - tdx, 210, cx/2 - 600 + precFrom - tdx, 300, cx/2 - 200 + precFrom - tdx, 350);
		
		ctx.stroke();
		ctx.closePath();
		
				
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(70,194,243)';
		ctx.moveTo(cx/2-210 + precFrom - tdx, 350);
		ctx.bezierCurveTo(cx/2+300 + precFrom - tdx, 440, cx/2+400 + precFrom - tdx, -100, cx + precFrom - tdx, 150);
		
		ctx.bezierCurveTo(cx/2 - 400 + precTo - tdx, 450, cx/2 - 250 + precTo - tdx, 100, cx/2 - 60 + precTo - tdx, 180);
		ctx.stroke();
		ctx.closePath();
		
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(236,0,140)';
		ctx.moveTo(0, cy-200);
		ctx.bezierCurveTo(cx/2 - 700 + precFrom - tdx, 140, (cx/2) - 600 + precFrom - tdx, 150, (cx/2) - 400 + precFrom - tdx, 100);
		ctx.moveTo((cx/2) - 330 + precFrom - tdx, 70);
		ctx.bezierCurveTo(cx/2 - 130 + precFrom - tdx, 30, cx/2 - 80 + precFrom - tdx, 30, (cx/2) + 70 + precFrom - tdx, 60);
		
		ctx.moveTo((cx/2) + 150 + precFrom - tdx, 100);
		//ctx.bezierCurveTo((cx/2) + 350 + precFrom - tdx, 150, (cx/2) + 550 + precFrom - tdx, 100, cx + precFrom - tdx, 60);
		ctx.bezierCurveTo((cx/2) + 350 - cut_x*2.5 + precFrom - tdx, 150 + cut_x/2, cx - cut_x*6 + precFrom - tdx, 0 + cut_x, cx/2 - 160 + precFrom - tdx, 270);
		ctx.stroke();
		ctx.closePath();
				
		ctx.beginPath();	
		ctx.drawImage(icon12,maxX/2-220 + precFrom - tdx, maxY/2 - 20);
		ctx.drawImage(icon13,maxX/2-70 + precTo - tdx,maxY/2-110);
		
		ctx.drawImage(iconTop1,(cx/2) - 430 + precFrom - tdx, 15, 184-scaler,184-scaler);
		ctx.drawImage(iconTop2,(cx/2) + 30 + precFrom - tdx, 15+scaler/2, 176-scaler,176-scaler);	
		ctx.closePath();

	} else {
		clearInterval(int);
		mtdx = 700;
		if (!resized) {mayak_fade = 200;}
		if (resized) {mtdx = 700;} // to redraw lines in their positions, after resize
		if (hash) {mtdx = 700;}
		slidefix = cx * slideTo - tdx;
		$('.slide').css('left', slidefix + 'px');
		$('.slidewrap:eq(11)').fadeIn(200, function(){$('#l-arrow, #r-arrow').show();$('#r-arrow').hide()});
		int = setInterval('main_mayak_10('+slideFrom+','+slideTo+')',30);
	}
}

function main_mayak_10 (slideFrom, slideTo) {
	if (mayak_fade > 0) {
		
		var precFrom = maxX * 11;
		var precTo = maxX * 0;
		
		ctx.clearRect(0,0,maxX,maxY);
		var mayak = Math.sin(mtdx/200)*mayak_fade;
		mtdx = mtdx - ddx;
		mayak_fade -= 6;
				
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(70,194,243)';
		ctx.moveTo(0,150);		
		ctx.bezierCurveTo(cx/2 - 400 + mayak + precFrom - tdx, 450, cx/2 - 250 + mayak + precFrom - tdx, 100, cx/2 - 60 + precFrom - tdx, 180);
		ctx.stroke();
		ctx.closePath();
		
		
		ctx.beginPath();	
		ctx.drawImage(icon13,maxX/2-70 + precFrom - tdx,maxY/2-110);
		ctx.closePath();
		
	} else {
		clearInterval(int);
		if (resized) {mayak_fade=1;}
		mtdx = 700;
		if (hash) mayak_fade = 1;
		else mayak_fade = 200;
		mousebinding(); // binding mouse drag
		//cut_x = 0;
		
	}
}

function animateToRight_11(slideFrom, slideTo, speed) {
	if (tdx > maxX*slideTo) {
		
		ctx.clearRect(0,0,maxX,maxY);
		var precFrom = maxX * slideFrom;
		var precTo = maxX * slideTo;
		tdx = tdx - ddx;
			
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(141,198,63)';
		
		ctx.moveTo(precTo - tdx, 200);
		
		ctx.bezierCurveTo(cx/2 - cx/4 + precTo - tdx, 210, cx/2 - 600 + precTo - tdx, 300, cx/2 - 200 + precTo - tdx, 350);
		
		ctx.stroke();
		ctx.closePath();
		
				
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(70,194,243)';
		ctx.moveTo(cx/2-210 + precTo - tdx, 350);
		ctx.bezierCurveTo(cx/2+300 + precTo - tdx, 440, cx/2+400 + precTo - tdx, -100, cx + precTo - tdx, 150);
		
		ctx.bezierCurveTo(cx/2 - 400 + precFrom - tdx, 450, cx/2 - 250 + precFrom - tdx, 100, cx/2 - 60 + precFrom - tdx, 180);
		ctx.stroke();
		ctx.closePath();
		
		ctx.beginPath();
		ctx.strokeStyle = 'rgb(236,0,140)';
		ctx.moveTo(precTo - tdx, cy-200);
		ctx.bezierCurveTo(cx/2 - 700 + precTo - tdx, 140, (cx/2) - 600 + precTo - tdx, 150, (cx/2) - 400 + precTo - tdx, 100);
		ctx.moveTo((cx/2) - 330 + precTo - tdx, 70);
		ctx.bezierCurveTo(cx/2 - 130 + precTo - tdx, 30, cx/2 - 80 + precTo - tdx, 30, (cx/2) + 70 + precTo - tdx, 60);

		ctx.moveTo((cx/2) + 150 + precTo - tdx, 100);
		//ctx.bezierCurveTo((cx/2) + 350 + precTo - tdx, 150, (cx/2) + 550 + precTo - tdx, 100, cx + precTo - tdx, 60);
		ctx.bezierCurveTo((cx/2) + 350 - cut_x*2.5 + precTo - tdx, 150 + cut_x/2, cx - cut_x*6 + precTo - tdx, 0 + cut_x, cx/2 - 160 + precTo - tdx, 270);
		ctx.stroke();
		ctx.closePath();
		
		ctx.beginPath();	
		ctx.drawImage(icon12,maxX/2-220 + precTo - tdx, maxY/2 - 20);
		ctx.drawImage(icon13,maxX/2-70 + precFrom - tdx,maxY/2-110);
		ctx.drawImage(iconTop1,(cx/2) - 430 + precTo - tdx, 15, 184 - scaler,184-scaler);
		ctx.drawImage(iconTop2,(cx/2) + 30 + precTo - tdx, 15+scaler/2, 176-scaler,176-scaler);	
		ctx.closePath();

	} else {
		clearInterval(int);
		mtdx = 5000;
		//cut_x = 0;
		if (!resized) {mayak_fade = 200;}
		if (resized) {mtdx = 5000;} // to redraw lines in their positions, after resize
		if (hash) {mtdx = 5000;}
		slidefix = cx * slideTo - tdx;
		$('.slide').css('left', slidefix + 'px');
		rlast_pink = 1;
		
		$('.slide-container .music, .slide-container .animatik').fadeIn(200);
		int = setInterval('main_mayak_9('+slideFrom+','+slideTo+')',30);
	}
}

// ********************************** /SLIDE 10 **************************************** //





var click_num = 0; //number of clicks (dunno why?)
var current_slide = 0; // current slide

$(document).ready(function(){

	//window.location.hash = hash;
	
	var detail = 0;
	if ($.browser.msie && $.browser.version == 6) {
		$('img.png').ifixpng();	
	}
	
	
	init();
	
	
	
	mousebinding();
	
	
	$('#l-arrow').click(function(){
		//
		if (click_num!=0) {
			$('#mapwrap').unbind('mousedown mouseup');
			resized = false;
			hash = false;
			$('#l-arrow, #r-arrow').hide();
			$('.slidewrap').fadeOut(200, function(){/*$('.slide').css('left', slidefix + 'px');*/});
			
			if (click_num == 4) $('.slide-container .music, .slide-container .animatik').fadeOut(200);
			if (click_num == 9) $('.slide-container .music').fadeOut(200);
			clearInterval(int);
			int = setInterval('animateToRight_'+click_num+'('+click_num+','+(click_num-1)+',1)',30);
			click_num--;
			current_slide = click_num;
		}
		detail = current_slide;
		if (detail > 1) detail = detail + 2;
		if (detail > 5) detail = detail + 2;
		$('.details.d-a').attr('href', '/process/' + detail + '/');
		return false;
	});
	
	$('#r-arrow').click(function(){
		//alert(click_num);
		if (click_num!=$('.slide').size()) {
			$('#mapwrap').unbind('mousedown mouseup');
			resized = false;
			hash = false;
			$('#l-arrow, #r-arrow').hide();
			$('.slidewrap').fadeOut(200, function(){/*$('.slide').css('left', slidefix + 'px');*/});
			if (click_num == 10) $('.slide-container .music, .slide-container .animatik').fadeOut(200);
			
			clearInterval(int);
			int = setInterval('animateToLeft_'+click_num+'('+click_num+','+(click_num+1)+',1)',30);
			click_num++;
			current_slide = click_num;
		}
		//alert(current_slide);
		detail = current_slide;
		if (detail > 1) detail = detail + 2;
		if (detail > 5) detail = detail + 2;
		$('.details.d-a').attr('href', '/process/' + detail + '/');
		return false;
	});
	
	
	
	$(window).resize(function(){
		resized = true;
		init();	
		tdx = maxX*current_slide;
		
		switch (current_slide) {
			case 1:animateToLeft_0(0,1,1); break;
			case 2:animateToLeft_1(1,2,1); break;
			case 3:animateToLeft_2(2,3,1); break;
			case 4:animateToLeft_3(3,4,1); break;
			case 5:animateToLeft_4(4,5,1); break;
			case 6:animateToLeft_5(5,6,1); break;
			case 7:animateToLeft_6(6,7,1); break;
			case 8:animateToLeft_7(7,8,1); break;
			case 9:animateToLeft_8(8,9,1); break;
			case 10:animateToLeft_9(9,10,1); break;
			case 11:animateToLeft_10(10,11,1); break;
		}
	});
	$('.details').attr('href', $('.slidewrap:visible .text-1').find('.detail-link a').attr('href'));
	
	$('.slide .text-0, .slide .text-1, .slide .text-2, .slide .text-3').click(function(){
		//alert($(this).closest('.slide').find('.detail-link a').attr('href'));
		window.location = $(this).closest('.slide').find('.detail-link a').attr('href');									
	});

});




function mousebinding() {
	$('#mapwrap').bind('mousedown', function(c){
		var c_zero = c.pageX;
		pretdx = tdx;
		prec = 0;
		ddx = 0;
		var s3_cleft = $('.slide-3 .text-1').get(0).offsetLeft;
		
		$('body').addClass('cmove');
		$('#mapwrap').bind('mousemove', function(m){
			prec = m.pageX - c_zero;
			if (prec >= -100 && prec <= 100) {
				tdx = pretdx-prec;
				tdxprec = prec;
				switch (current_slide) {
					//case 0:create_main(1,0); break;
					case 0: {animateToLeft_0(0,1,1);$('.slide-0').css('left', slidefix + (prec) + 'px');} break;
				    case 1:{pink_hacktdx = 1; animateToRight_1(1,0,1);$('.slide-1').css('left', slidefix + (prec) + 'px');} break;
					case 2:{pink_hacktdx = 1; animateToRight_2(2,1,1);$('.slide-2').css('left', slidefix + (prec) + 'px');} break;
					case 3:{
							pink_hacktdx = 1; 
							animateToRight_3(3,2,1); 
							$('.slide-3 .text-1').css('left', s3_cleft + prec + 'px');
						} break;
					
					case 4:{pink_hacktdx = 1;animateToRight_4(4,3,1);$('.slide-5').css('left', slidefix + (prec) + 'px');} break;
					case 5:{pink_hacktdx = 1;animateToRight_5(5,4,1);$('.slide-8').css('left', slidefix + (prec) + 'px');} break;
					case 6:{pink_hacktdx = 1;animateToRight_6(6,5,1);$('.slide-6').css('left', slidefix + (prec) + 'px');} break;
					case 7:{pink_hacktdx = 1;animateToRight_7(7,6,1);$('.slide-7').css('left', slidefix + (prec) + 'px');} break;
					case 8:{pink_hacktdx = 1;animateToRight_8(8,7,1);$('.slide-9').css('left', slidefix + (prec) + 'px');} break;
					case 9:{
							pink_hacktdx = 1; 
							animateToRight_9(9,8,1);
							$('.slide-10').css('left', slidefix + (prec) + 'px');
						} break;
					case 10:{
							pink_hacktdx = 1; 
							animateToRight_10(10,9,1);
							$('.slide-11').css('left', slidefix + (prec) + 'px');
						} break;
					case 11:{animateToRight_11(11,10,1);$('.slide-12').css('left', slidefix + (prec) + 'px');} break;
				}
			}

			return false;
		}).bind('mouseup', function(){
			$('.cmove').removeClass('cmove');
			$(this).unbind('mousemove');
			pink_hacktdx = 0; 
			ddx = 60;
			pathfind = -tdxprec;
			//alert(pathfind);
			if (pathfind <= ddx && pathfind != 0) pathfind = ddx - pathfind;
			if (pathfind > ddx) pathfind = (ddx - (pathfind - ddx));

			if (prec < 0) {
				$('#r-arrow').click();
			}
			if (prec > 0) {
				$('#l-arrow').click();
			}
			
				
		});
		return false;
	});

	$('.slide a, .slide .text-0, .slide .text-1, .slide .text-2, .slide .text-3, .slide-container .music, .slide-container .animatik').mouseover(function(){$(this).find('.detail-link').show();})
	.mouseout(function(){$(this).find('.detail-link').hide();});
	
	
	//$('.slide a ').hover(function(){$(this).parent().mouseover();}, function(){$(this).parent().mouseout();});

	
};


function str_replace(search, replace, subject, count) {
 
    var i = 0, j = 0, temp = '', repl = '', sl = 0, fl = 0,
            f = [].concat(search),
            r = [].concat(replace),
            s = subject,
            ra = r instanceof Array, sa = s instanceof Array;
    s = [].concat(s);
    if (count) {
        this.window[count] = 0;
    }
 
    for (i=0, sl=s.length; i < sl; i++) {
        if (s[i] === '') {
            continue;
        }
        for (j=0, fl=f.length; j < fl; j++) {
            temp = s[i]+'';
            repl = ra ? (r[j] !== undefined ? r[j] : '') : r[0];
            s[i] = (temp).split(f[j]).join(repl);
            if (count && s[i] !== temp) {
                this.window[count] += (temp.length-s[i].length)/f[j].length;}
        }
    }
    return sa ? s : s[0];
}

