// JavaScript Document
window.onload=init;



function ge(id){
	return document.getElementById(id);
}

function gc(objClass, objTag){
	var list = document.getElementsByTagName(objTag);
	var list2 = new Array;
	var n=0;
	for (var i = 0; i < list.length; i++){
		if(list[i].className == objClass){
			list2[n]=list[i];
			n++;
		}
	}
	return list2;
}
var bg1, bg2, rand1, rand2, ir=100, koef=1, interval;

ImageFiles = new Array (
    "images/bg1.jpg",
    "images/bg2.jpg",
    "images/bg3.jpg",
    "images/bg4.jpg",
    "images/bg5.jpg",
    "images/bg6.jpg",
    "images/bg7.jpg"

);

ImageObjects = new Array (ImageFiles.length);
for (var i = 0; i < ImageFiles.length; i++)
{
        ImageObjects[i] = new Image(1000,192);
        ImageObjects[i].src = ImageFiles[i];
}

function init(){

	bg1=ge('bg1');
	bg2=ge('bg2');
	for(var i=1; i<8; i++){
		var img=new Image;
		img.src="images/bg"+i+".jpg";
	}
	rand1=1+Math.floor(Math.random()*7);
	rand2=1+Math.floor(Math.random()*7);
	while(rand1==rand2){
		rand2=1+Math.floor(Math.random()*7);
	}

	//Если мы в сочи, то жестко выставляем картинку
    if (null !== /sochi2014/.exec(window.location.href)) {
        rand1 = rand2 = 6;
    }

	bg1.style.background='url(/images/bg'+ rand1 +'.jpg) no-repeat';
	bg2.style.background='url(/images/bg'+ rand2 +'.jpg) no-repeat';
	//setTimeout("startAnim()",3000);
    if (window.location.href.indexOf('/contacts')>=0 && document.getElementById('moscowMap')) {
        initializeGoogleMaps();
    }
}

function startAnim(){
	interval=setInterval('changeBg()',10);
}

function changeBg(){
	if(ir>0){
		koef+=0.01;
		ir=ir-koef;
		if(ir<0) ir=0;
		bg1.style.opacity=ir/100;
		bg1.style.filter='alpha(opacity=' + ir + ')';
	}else{
		clearInterval(interval);
		ir=100;
		koef=1;
		bg1.style.background=bg2.style.background;
		bg1.style.opacity=1;
		bg1.style.filter='alpha(opacity=100)';
		rand1=1+Math.floor(Math.random()*4);
		while(rand2==rand1){
			rand1=1+Math.floor(Math.random()*4);
		}
		bg2.style.background= 'url('+ImageObjects[rand1].src+') no-repeat';
		//setTimeout("startAnim()",3000);
	}
}

function changeVisibilityById(id)
{
    var currentDiv = document.getElementById(id);
    var display    = "";

    ('none' != currentDiv.style.display)   ? display = 'none':
                                              display = 'block';

    currentDiv.style.display = display;

    return false;
}

function resetBG(id)
{
    var currentDiv = document.getElementById(id);
    var background    = "";
	//working under Mozilla also:
    ( ('rgb(250,242,221)' == currentDiv.style.background.substring(0,16)) || ('rgb(250, 242, 221)' == currentDiv.style.background.substring(0,18)) )  ? background = 'transparent':
                                           background = 'rgb(250,242,221)';



    currentDiv.style.background = background;

}


function getBounds(element)
{
  var left = element.offsetLeft;
  var top = element.offsetTop;

  for (var parent = element.offsetParent; parent; parent = parent.offsetParent)
  {
    left += parent.offsetLeft - parent.scrollLeft;
    top += parent.offsetTop - parent.scrollTop
  }
  return {left: left, top: top, width: element.offsetWidth, height: element.offsetHeight};
}


function getAbsPosition(obj) {
      var x = y = 0;
      while(obj) {
            x += obj.offsetLeft;
            y += obj.offsetTop;
            obj = obj.offsetParent;
      }
      return {x:x, y:y};
}


function viewDept(id, th)
{
    var bounds =  getAbsPosition(th);


    var deptDiv = document.getElementById(id);


    //делаем чтобы работало и под IE, и под Mozilla:

    var ua = navigator.userAgent.toLowerCase();

    isIE = (ua.indexOf("msie") != -1 && ua.indexOf("opera") == -1 && ua.indexOf("webtv") == -1);



    if (isIE){
        deptDiv.style.top  = bounds.y;
        deptDiv.style.left = bounds.x + 10;
    } else {
        deptDiv.style.top  = bounds.y  + "px;"
        deptDiv.style.left = bounds.x + 10 + 'px;';
    }


     ('none' != deptDiv.style.display)   ? display = 'none':
                                           display = 'block';

    deptDiv.style.display = display;


    //Итак, если мы погасили элемент, то надо погасить и все дочерние:
    shutDownBranch(id);

    return false;

}

function shutDownBranch(id)
{
    var deptDiv = document.getElementById(id);

    if (deptDiv.style.display == 'none') // это — родительский Div!
    {
        var sub_depts_a = deptDiv.getElementsByTagName('a');

        for (var i = 0; i < sub_depts_a.length; i++)
        {
           if (sub_depts_a[i].name == "sub_dept")
           {
               sub_dept_id = "dept"+sub_depts_a[i].id;
               subDept = document.getElementById(sub_dept_id);
               subDept.style.display = 'none';
               shutDownBranch(sub_dept_id);
           }
        }
    }
}


var IdStack = new Array();

function changeDept(id)
{

    var elem = document.getElementsByTagName('div');
    var depts = new Array();
     for(i = 0,iarr = 0; i < elem.length; i++) {
          att = elem[i].getAttribute("name");
          if(att == 'department') {
               depts[iarr] = elem[i];
               iarr++;
          }
     }



    for (var i = 0; i < depts.length; i++)
    {

        dept = document.getElementById(depts[i].id);
        if (dept.id == id)
        {
            dept.style.display = 'block';
        }
        else
        {
            if (dept.style.display == 'block')
            {
                IdStack[IdStack.length] = dept.id;
                //old_id = dept.id;
            }

            dept.style.display = 'none';
        }
    }

    return false;

}

function back(id)
{
    var dept = document.getElementById(id);
    dept.style.display = 'none';

    dept = document.getElementById(IdStack[(IdStack.length-1)]);
    if (IdStack.length > 0) IdStack.length--;
    dept.style.display = 'block';

    return false;
}

//function initializeGoogleMaps() {
//  var mapName = 'moscowMap';
//  var mapX = 55.656184;
//  var mapY = 37.526173;
//  if (GBrowserIsCompatible()) {
//      var map = new GMap2(document.getElementById(mapName));
//      map.setCenter(new GLatLng(mapX, mapY), 15);
//      map.continuousZoomEnabled();
//      map.enableScrollWheelZoom();
//      var point = new GLatLng(mapX,mapY);
//      map.addOverlay(new GMarker(point));
//  }
//}
//

  var directionsDisplay;
  var directionsService = new google.maps.DirectionsService();
  var map;
  var oldDirections = [];
  var currentDirections = null;
  var mapX = 55.656184;
  var mapY = 37.526173;
  var mapName = 'moscowMap';
  var mapStart = 'mapStartPoint';

  function initializeGoogleMaps(isroute) {
    if (typeof isroute == 'undefined') {
        isroute = false;
    }
    var myLatlng = new google.maps.LatLng(mapX,mapY);
    var zoom = isroute ? 10 : 13;
    var myOptions = {
      zoom: zoom,
      center: myLatlng,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    }
    map = new google.maps.Map(document.getElementById(mapName), myOptions);
    if (!isroute) {
        var marker = new google.maps.Marker({
          position: myLatlng,
          map: map,
          draggable:false,
          animation: google.maps.Animation.DROP
        });
    }
  }

  function calcRoute() {
    var start = document.getElementById(mapStart).value;
    var end = ''+mapX+','+mapY;
    if (start != '') {
        var lang = getLang();
        var cityName = {
          'country': {
          'ru' : 'Россия',
          'en' : 'Russia',
          'de' : 'Russland'          
          },            
          'city': {
          'ru' : 'Москва',
          'en' : 'Moscow',
          'de' : 'Moskau'          
          }
        };
        if (start.indexOf(cityName.city[lang])<0) {
            start = cityName.country[lang]+', '+cityName.city[lang] +', '+start;
        }
        initializeGoogleMaps(true);

        directionsDisplay = new google.maps.DirectionsRenderer({
            'map': map,
            'preserveViewport': true,
            'draggable': true
        });
        var request = {
            origin:start,
            destination:end,
            travelMode: google.maps.DirectionsTravelMode.DRIVING
        };
        directionsService.route(request, function(response, status) {
          if (status == google.maps.DirectionsStatus.OK) {
            directionsDisplay.setDirections(response);
          }
        });
    } else {
        initializeGoogleMaps(false);
    }
  }

  function getLang() {
      var arr = window.location.href.split('/');
      if (arr[1].length>2 || arr[1]=='') {
          return 'ru';
      } else {
          return arr[1];
      }
  }
function searchFilter(val){
	var url = document.location.toString();
	var params = new Array();
	var result = {};
	url = url.split("?");
	url = url[url.length-1];
	url = url.split("&");
	for(i = 0; i < url.length; i++){
		params = url[i].split("=");
		if(params[0]!="" && params[1]!=undefined)
			result[params[0]] = params[1];
	}

	if(result.length==undefined){
		result['order'] = "desc";
		result['sort'] = "date";
		result['query'] = document.getElementById("searchBoxForm").query.value;
	}
	var loc_s_news = document.getElementById("loc_s_news");
	var loc_s_others = document.getElementById("loc_s_others");
	if(loc_s_news.checked == false && loc_s_others.checked == false){
		var check = val == "loc_s_news"?"loc_s_others":"loc_s_news";
		document.getElementById(check).checked = true;
	}
	var loc_s = 0;
	if(loc_s_news.checked == true){
		loc_s = 1;
	}
	if(loc_s_others.checked == true){
		loc_s = loc_s == 1?0:2;
	}
	loc_s = loc_s==0?"":"&loc_s="+loc_s;
	var locUrl = "/search/?&query="+result['query']+"&order="+result['order']+"&sort="+result['sort']+loc_s+"&from=";
	document.location.href = locUrl;
}

