var currLayer   = 'home';
var showEffect  = 'none';
var blastersTimeout;
var effectTimeout;
var smallHackTimeout;
var fadeCurr = 0;
var fadeMax = 60;
var speedIn = 500;
var speedOut = 250;
var fadeStep = 5;
var stepInSpeed  = Math.round(speedIn*fadeStep/fadeMax);
var stepOutSpeed = Math.round(speedOut*fadeStep/fadeMax);
var e1;
var e2;
var currGallery;
var slideSpeed = 2500;
var slidesTimeout;
var slidePic;
var allPics = new Array();
var sCurrLeft = 0;
var sCurrTop = 0;
var sCurrContent= 0;

window.onload = loadInteractive;

function loadInteractive () {
// video effects
	e1 = $('ve_back'); 
	e2 = $('ve_front');
	e1.style.filter = 'alpha(opacity=0)';
	e2.style.filter = 'alpha(opacity=0)';
	e1.style.opacity = 0;
	e2.style.opacity = 0;
	e1.style.backgroundColor = 'black';
	e2.style.backgroundColor = 'black';
// corect CSS :)
	$('gallery_top').style.overflowX = 'hidden';
//	$('sHolder').style.overflowX = 'hidden';
	$('faq').style.overflowX = 'hidden';
	$('gi_left').style.overflowX = 'hidden';
	$('gi_right').style.overflowX = 'hidden';
	$('news').style.overflowX = 'hidden';
	$('products').style.overflowX = 'hidden';
// menu layer
	showMenu ();
// init gallery
	showGallery ();
	initServices ();
}
function visible (id,value) {
	$(id).style.visibility = value;
}

function display (id,value) {
	$(id).style.display = value;
}

function toggleDisplay (id) {
	if ($(id).style.display=='block') {display(id,'none')} else {display(id,'block')};
}

function Over (object) {
	object.style.fontWeight='bold';
}

function menuOut (object) {
	if (!(currLayer == (object.id).slice(5))) {object.style.fontWeight='normal'};
}

function refOut (object) {
	if (!(currRef == (object.id).slice(4))) {object.style.fontWeight='normal'}
}

function servLOut (object) {
	var value = ('sL' + sCurrLeft);
	if (!(value == (object.id))) {object.style.fontWeight='normal'}
}

function servTOut (object) {
	var value = ('sT' + sCurrTop);
	if (!(value == (object.id))) {object.style.fontWeight='normal'}
}

function newsOver (object) {
	object.style.border = '1px gray solid';
}

function imageOver (object) {
	object.style.border = '1px white solid';
}

function imageOut (object) {
	object.style.border = '1px rgb(99,100,102) solid';
}

function toggleBlasters (toggle) {
	visible('blaster_left',toggle);
	visible('logos_right',toggle);
}

function toggleEffects (disable,id) {
	var stay = ((currLayer=='gallery')||(currLayer=='video'))&&((id=='gallery')||(id=='video'));
	var out  = ((currLayer=='gallery')||(currLayer=='video'))&&(!(id=='gallery'))&&(!(id=='video'));
	if (disable == 1) {					// effects off
		var toggle = 'visible';
		if (out) {
			clearTimeout(effectTimeout);
			smallHackTimeout = setTimeout('smallHack(\'none\')',speedIn);
			fadeOut ();
			}
		} 
		else {
			var toggle = 'hidden'; 		// effects on
			if (!stay) {
				smallHack('block');
				clearTimeout(effectTimeout);
				clearTimeout(smallHackTimeout);
				clearTimeout(blastersTimeout);
				fadeIn ();
				}
			};
	if (toggle == 'visible') {
		var timeLeft = (fadeCurr*stepOutSpeed/fadeStep);
		blastersTimeout = setTimeout("toggleBlasters('" + toggle + "')",timeLeft)
	}
		else {toggleBlasters(toggle)}
}

function clearPopup () {
	display('contact','none');
	display('map','none');
}

function clearLayer () {
	var button = $('menu_'+currLayer);
	visible(currLayer,'hidden');
	button.className = 'menu_item';
	button.style.fontWeight = 'normal';
}

function changeLayer (id) {
	if (id == 'gallery') {showTopGallery()} else {clearTimeout(slidesTimeout)};
	if (id == currLayer) {return};
	clearLayer();
	if (id == 'services') {visible('sContent'+sCurrContent,'visible')} else {visible('sContent'+sCurrContent,'hidden')};
	if (id == 'video' || id == 'gallery') {toggleEffects(0,id)} else {toggleEffects(1,id)};
	var button = $('menu_'+id);
	button.className = 'curr_item';	
	button.style.fontWeight = 'bold';
	currLayer = id;
	visible(id,'visible');
	clearPopup();
}

function clearRef () {
	var button = $('ref_' + currRef);
	button.className = 'ref_item';
	button.style.fontWeight = 'normal';
}

function changeImage (obj_id,new_pic) {
	var newImage = new Image();
	newImage.src = (new_pic);
	obj_id.src = newImage.src;
}

function showMenu () {
	var menuHtml = '';
	menuHtml += ('<div id="menu_' + menuArray[0][0] + '" class="curr_item" onmouseover="Over(this)" onmouseout="menuOut(this)" onclick="changeLayer(&#39;' + menuArray[0][0] + '&#39;)">' + menuArray[0][1] + '</div>');
	for ( var i=1; i < menuCount; i++ ) {
		menuHtml += ('<div id="menu_' + menuArray[i][0] + '" class="menu_item" onmouseover="Over(this)" onmouseout="menuOut(this)" onclick="changeLayer(&#39;' + menuArray[i][0] + '&#39;)">' + menuArray[i][1] + '</div>');
	}
	$('menu').innerHTML = menuHtml;
}

function changeVideo (newvideo,type) {
	$('gallery_top').style.display = 'none';
	$('video_holder').style.display = 'block';
	var s1 = new SWFObject('index_files/player.swf','video_player','614','370','7');
	s1.addParam('allowfullscreen','true');
	s1.addVariable('width','622');
	s1.addVariable('height','350');
	var video = ('video/' + newvideo + '.' + type);
	s1.addVariable('file',video);
	s1.addVariable('autostart','true');
	s1.write('video_player');
}

function sNewPicture (value) {
	var holder = $('sPicture');
	var content = "";
	for (i = 0; i < 2; i++) {
		var pic = ('index_files/gallery/' + sPics[value][i] + '.jpg');
		content += '<img class="left" src="'+ pic +'" alt="" />';
	}
	holder.innerHTML = content;
}

function sNewContent (p) {
	$('sContent' + p).scrollTop=0;
	if (p == sCurrContent) {return};
	var newDiv = ('sContent' + p);
	var oldDiv = ('sContent' + sCurrContent);
	visible(oldDiv,'hidden');
	visible(newDiv,'visible');
	sCurrContent = p;
	var oldLeft = $('sL' + sCurrLeft);
	oldLeft.className = 'servL_item';
	if (!(p == sCurrLeft)) {oldLeft.style.fontWeight = 'normal'};
	$('sL' + p).className = 'servL_curr_item';
	sCurrLeft = p;
	sNewPicture(p);
}

function initServices () {
	$('sPicture').innerHTML='<img class="left" src="index_files/gallery/' + sPics[0][0] + '.jpg" /><img class="left" src="index_files/gallery/' + sPics[0][1] + '.jpg" />';
	var sLContent = '<div id="sL0" class="servL_curr_item" onmouseover="Over(this)" onmouseout="servLOut(this)" onclick="sNewContent(0)">' + sL[0] + '</div>';
	for (var i=1; i < sLLength; i++) {
		sLContent += '<div id="sL' + (i) + '" class="servL_item" onmouseover="Over(this)" onmouseout="servLOut(this)" onclick="sNewContent('+ i +')">' + sL[i] + '</div>';
	}
	$('sMenu_left').innerHTML = sLContent;
}

function showGallery () {
	var topHTML = '';
	for (var i = mediaArrayLength-1; i > -1; i-=1) {
		topHTML += mediaArray[i][0](i);
	};
	$('gallery_top').innerHTML = topHTML;
}

function showPic (picture) {
	var newImage = new Image ();
	newImage.src = 'index_files/gallery/' + picture + '.jpg';
	$('gi_center').style.background = 'url(' + newImage.src + ') top no-repeat';
}

function slides () {
	if (slidePic == allPics.length) {slidePic = 0;return};
	showPic(allPics[slidePic]);
	slidePic++;
	slidesTimeout = setTimeout('slides()',slideSpeed);
}

function gotoGallery (gallery) {
	currGallery = gallery;
	showInsideGallery ();
	var beforPics = '';
	var afterPics = '';
	var currPic;
	for (i in mediaArray[gallery][2]) {
		currPic = mediaArray[gallery][2][i]
		beforPics += '<img src="index_files/gallery/tn_' + currPic + '.jpg" onmouseover="imageOver(this)" onmouseout="imageOut(this)" onclick="clearTimeout(slidesTimeout);showPic(&#39' + currPic + '&#39)" />';
	};
	for (i in mediaArray[gallery][3]) {
		currPic = mediaArray[gallery][3][i];
		afterPics += '<img src="index_files/gallery/tn_' + currPic + '.jpg" onmouseover="imageOver(this)" onmouseout="imageOut(this)" onclick="clearTimeout(slidesTimeout);showPic(&#39' + currPic + '&#39)" />';
	};
	$('gi_left').innerHTML = beforPics;
	$('gi_right').innerHTML = afterPics;
	allPics = joinArrays (gallery);
	clearTimeout(slidesTimeout);
	slidePic = 0;
	slides(allPics);
}

function showTopGallery () {
	$('gallery_top').style.display = 'block';
	$('gallery_inside').style.display = 'none';
	$('video_holder').style.display = 'none';
}

function showInsideGallery () {
	$('gallery_top').style.display = 'none';
	$('gallery_inside').style.display = 'block';
}

function goDirect (gallery) {
	changeLayer('gallery');
	gotoGallery(gallery);
}

function goDirectV (video) {
	changeLayer('gallery');
	changeVideo(mediaArray[video][2],mediaArray[video][3]);
}

function smallHack (param) {
	var vEffect1 = $('ve_back'); 
	vEffect1.style.display = param;
	var vEffect2 = $('ve_front'); 
	vEffect2.style.display = param;
}

function fadeIn () {		//efffect appears
	if (fadeCurr >= fadeMax) {return};
	fadeCurr += fadeStep;
	changeOpac(fadeCurr);
	effectTimeout = setTimeout('fadeIn()',stepInSpeed)
	visible('info_popups','hidden');
}

function fadeOut () {		//efffect appears
	if (fadeCurr <= 0) {return};
	fadeCurr -= fadeStep;
	changeOpac(fadeCurr);
	effectTimeout = setTimeout('fadeOut()',stepOutSpeed)
	visible('info_popups','visible');
}

function changeOpac(opacity) {
	e1.style.opacity = (opacity / 100);
	e1.style.filter = "alpha(opacity=" + opacity + ")";
	e2.style.opacity = (opacity / 100);
	e2.style.filter = "alpha(opacity=" + opacity + ")";
}

function joinArrays (gallery) {
	var joined      = new Array;
	var arrayBe     = new Array;
	var arrayAf     = new Array;
	var arrayBe     = mediaArray[gallery][2];
	var arrayAf     = mediaArray[gallery][3];
	var count       = 0;
	var bigger      = (arrayBe.length < arrayAf.length)?arrayAf.length:arrayBe.length;
	for (var i=0; i < bigger; i++) {
		if (arrayBe[i]) {joined[count] = arrayBe[i]; count++}
		if (arrayAf[i]) {joined[count] = arrayAf[i]; count++}
	};
	return joined;
}

function $ (id){
	return document.getElementById(id);
}

function validateRequest (formObject) {
	var allOk = true;
	if (formObject["name"].value=="") {formEffect('name');allOk = false;} else {disFormEffect('name')};
	if (formObject["phone"].value=="") {formEffect('phone');allOk = false;} else {disFormEffect('phone')};
	return allOk;
}

function formEffect(field) {
	$(field).style.color = 'red';
}

function disFormEffect(field) {
	$(field).style.color = 'white';
}

function validate (object) {
	var allOk = true;
	var f_name  = object.elements[0].value;
	var f_phone = object.elements[1].value;
	var f_email = object.elements[2].value;

	var nameFilter = /(^[\u0430-\u044Fa-z]+)([\u0430-\u044Fa-z\s]*)([\u0430-\u044Fa-z]+$)/i;
	var phoneFilter = /^\d+[\d\s]+\d$/;
	var emailFilter = /^([\w\-\.])+\@([\w\-\.])+\.([a-z]{2,4})$/i;

	if (!emailFilter.test(f_email)) { allOk = formEffect('email');} else {disFormEffect('email')};
	if (!nameFilter.test(f_name))   { allOk = formEffect('name');}  else {disFormEffect('name')};
	if (!phoneFilter.test(f_phone)) { allOk = formEffect('phone');} else {disFormEffect('phone')};
	return allOk;
}

