// JavaScript Document

// GOOGLE
function initialize(path) {
  popupOdkazy();
  initializeGoogle(path);
}

function initializeGoogle(path) {
	var latlng = new google.maps.LatLng(49.560165, 17.751797);
	var settings = {
		zoom: 16,
		center: latlng,
		mapTypeControl: true,
		mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DROPDOWN_MENU},
		navigationControl: true,
		navigationControlOptions: {style: google.maps.NavigationControlStyle.SMALL},
		mapTypeId: google.maps.MapTypeId.ROADMAP};
	var map = new google.maps.Map(document.getElementById("map_canvas"), settings);

	var companyImage = new google.maps.MarkerImage(path +'logo-mapa.png',
		new google.maps.Size(36,51),
		new google.maps.Point(0,0),
		new google.maps.Point(20,50)
	);

	var companyShadow = new google.maps.MarkerImage(path +'logo-mapa-shadow.png',
		new google.maps.Size(70,50),
		new google.maps.Point(0,0),
		new google.maps.Point(38,50));

	var companyPos = new google.maps.LatLng(49.560165, 17.751797);

	var companyMarker = new google.maps.Marker({
		position: companyPos,
		map: map,
		icon: companyImage,
		shadow: companyShadow,
		title:"CETRIS",
		zIndex: 3});
}


function popupOdkazy() {
  if (!document.getElementsByTagName) return false;
  var links = document.getElementsByTagName("a");
  for (var i=0; i < links.length; i++) {
    if (links[i].className.match("newWindow")) {
      links[i].onclick = function() { return !window.open(this.href); }
    }
  }
  return true;
}
function showSubmenu(id, selected) {
  if(document.getElementById('menu-'+ id))
    document.getElementById('menu-'+ id).className = document.getElementById('menu-'+ id).className +'-selected';
  if(document.getElementById('submenu-'+ id)) {
    document.getElementById('submenu-'+ id).className = document.getElementById('submenu-'+ id).className.replace("-off", '-on');//'top-submenu-frame-on';
    if(document.getElementById('selected-arrow-img') && selected == id ) {
      document.getElementById('selected-arrow-img').src = document.getElementById('selected-arrow-img').src.replace(/basic/i, 'submenu');
      document.getElementById('selected-arrow-img').height = 19;
      document.getElementById('selected-arrow-frame').setAttribute('style', 'z-index: 150;');
    }
  }
}

function hideSubmenu(id, selected) {
  if(document.getElementById('menu-'+ id))
    document.getElementById('menu-'+ id).className =  document.getElementById('menu-'+ id).className.replace(/-selected/i, '');
  if(document.getElementById('submenu-'+ id)) {
     document.getElementById('submenu-'+ id).className = document.getElementById('submenu-'+ id).className.replace("-on", '-off');//'top-submenu-frame-off';
    if(document.getElementById('selected-arrow-img') && selected == id) {
      document.getElementById('selected-arrow-img').src = document.getElementById('selected-arrow-img').src.replace(/submenu/i, 'basic');
      document.getElementById('selected-arrow-img').height = 15;
      document.getElementById('selected-arrow-frame').setAttribute('style', 'z-index: 0;');
    }
  }
}

function showHideElement(element) {
  if(document.getElementById(element)) {
    if(document.getElementById(element).style.display == 'none') {
      document.getElementById(element).style.display = 'block';
    } else {
      document.getElementById(element).style.display = 'none';
    }
  }
}
function showHideElementDownload(element) {
  if(document.getElementById('sub-'+ element)) {
      if(document.getElementById('sub-'+ element).style.display == 'none') {
        document.getElementById('sub-'+ element).style.display = 'block';
        document.getElementById('category-'+ element).className = 'category-frame-on';
        document.getElementById('icon-'+ element).src = document.getElementById('icon-'+ element).src.replace(/green/i, 'black');
      } else {
        document.getElementById('sub-'+ element).style.display = 'none';
        document.getElementById('category-'+ element).className = 'category-frame-off';
        document.getElementById('icon-'+ element).src = document.getElementById('icon-'+ element).src.replace(/black/i, 'green');
      }
    }
}

function getAnswerForm(element) {
  if(document.getElementById('itemsContainer-'+ element)) {
    document.getElementById('itemsContainer-'+ element).style.display = 'block';
    document.getElementById('itemsContainer-'+ element).innerHTML = document.getElementById('itemsContainer-'+ element).innerHTML + '<div>Tady bude odpovedni formular</div>';
  }
}

function addArrow(element) {
  element.innerHTML = element.innerHTML + '&nbsp;&gt;';
}

function removeArrow(element) {
  element.innerHTML = element.innerHTML.replace("&nbsp;&gt;", '');
}

function opacityUp(element, delay) {
  if(delay <= 100) {
    document.getElementById('items-'+ element).style.opacity = delay / 100;
    setTimeout('opacityUp('+ element +', '+ (delay + 2) +')', 1);
  }
}
function opacityDown(element, delay) {
  if(delay >= 0) {
    document.getElementById('items-'+ element).style.opacity = delay / 100;
    setTimeout('opacityDown('+ element +', '+ (delay - 10) +')', 1);
  }
}

function xy(element) {
  document.getElementById('items-'+ element).className = document.getElementById('items-'+ element).className.replace('off', 'on');
  opacityUp(element, 0);
}
function x(element) {
  document.getElementById('items-'+ element).className = document.getElementById('items-'+ element).className.replace('off', 'on');
}

function y(element) {
  //opacityDown(element, 100);
  document.getElementById('items-'+ element).className = document.getElementById('items-'+ element).className.replace('on', 'off');
}


function switchTab(element) {
  if(document.getElementById(element +"-header-item")) {
    if(element == 'faq') {
      document.getElementById("faq-header-item").className = 'faq-header-item-on';
      document.getElementById("discussion-header-item").className = 'faq-header-item-off';
      document.getElementById("content-discussion").style.display = 'none';
      document.getElementById("content-faq").style.display = 'block';
    } else if(element == 'discussion') {
      document.getElementById("faq-header-item").className = 'faq-header-item-off';
      document.getElementById("discussion-header-item").className = 'faq-header-item-on';
      document.getElementById("content-discussion").style.display = 'block';
      document.getElementById("content-faq").style.display = 'none';
    }
  }
}


/* MAPA */
var countries = new Array();
countries[1] = "Jihočeský kraj";
countries[2] = "Jihomoravský kraj";
countries[3] = "Karlovarský kraj";
countries[4] = "Královehradecký kraj";
countries[5] = "Liberecký kraj";
countries[6] = "Moravskoslezský kraj";
countries[7] = "Olomoucký kraj";
countries[8] = "Pardubický kraj";
countries[9] = "Plzeňský kraj";
countries[10] = "Hlavní město Praha";
countries[11] = "Středočeský kraj";
countries[12] = "Ústecký kraj";
countries[13] = "Vysočina";
countries[14] = "Zlínský kraj";

countries[16] = "Bratislavský kraj";
countries[17] = "Trnavský kraj";
countries[18] = "Trenčianský kraj";
countries[19] = "Nitrianský kraj";
countries[20] = "Žilinský kraj";
countries[21] = "Banskobystrický kraj";
countries[22] = "Prešovský kraj";
countries[23] = "Košický kraj";

var PI = new Array();

var mapImagesPrefix = "";

function ImagesPreload(path) {
  prefix = path;//mapImagesPrefix +"images/"
  PI[0] = new Image(); PI[0].src = prefix + 'mapa-cr.png';
  PI[1] = new Image(); PI[1].src = prefix + 'mapa-cr-jihocesky.png';
  PI[2] = new Image(); PI[2].src = prefix + 'mapa-cr-jihomoravsky.png';
  PI[3] = new Image(); PI[3].src = prefix + 'mapa-cr-karlovarsky.png';
  PI[4] = new Image(); PI[4].src = prefix + 'mapa-cr-kralovehradecky.png';
  PI[5] = new Image(); PI[5].src = prefix + 'mapa-cr-liberecky.png';
  PI[6] = new Image(); PI[6].src = prefix + 'mapa-cr-moravskoslezsky.png';
  PI[7] = new Image(); PI[7].src = prefix + 'mapa-cr-olomoucky.png';
  PI[8] = new Image(); PI[8].src = prefix + 'mapa-cr-pardubicky.png';
  PI[9] = new Image(); PI[9].src = prefix + 'mapa-cr-plzensky.png';
  PI[10] = new Image(); PI[10].src = prefix + 'mapa-cr-praha.png';
  PI[11] = new Image(); PI[11].src = prefix + 'mapa-cr-stredocesky.png';
  PI[12] = new Image(); PI[12].src = prefix + 'mapa-cr-ustecky.png';
  PI[13] = new Image(); PI[13].src = prefix + 'mapa-cr-vysocina.png';
  PI[14] = new Image(); PI[14].src = prefix + 'mapa-cr-zlinsky.png';
  
  PI[16] = new Image(); PI[16].src = prefix + 'mapa-sr-bratislavsky.png';
  PI[17] = new Image(); PI[17].src = prefix + 'mapa-sr-trnavsky.png';
  PI[18] = new Image(); PI[18].src = prefix + 'mapa-sr-trenciansky.png';
  PI[19] = new Image(); PI[19].src = prefix + 'mapa-sr-nitriansky.png';
  PI[20] = new Image(); PI[20].src = prefix + 'mapa-sr-zilinsky.png';
  PI[21] = new Image(); PI[21].src = prefix + 'mapa-sr-banskobystricky.png';
  PI[22] = new Image(); PI[22].src = prefix + 'mapa-sr-presovsky.png';
  PI[23] = new Image(); PI[23].src = prefix + 'mapa-sr-kosicky.png';
  PI[24] = new Image(); PI[24].src = prefix + 'mapa-sr.png';
  
  PI[100] = new Image(); PI[100].src = prefix + 'mapa-cr-empty.png';
  PI[101] = new Image(); PI[101].src = prefix + 'mapa-sr-empty.png';
}

function hightlightLocality(kraj) {
  document.getElementById("mapa-image-"+ (kraj > 15 ? "sk" : "cr")).src = PI[kraj].src;
 // document.getElementById("kraj-title").innerHTML = countries[kraj];
  
}
function hideLocality(num) {
  document.getElementById("mapa-image-"+ (num == 101 ? "sk" : "cr")).src = PI[num].src;
}

var selectedLocality = 0;

var referenceParams = new Array();
referenceParams[0] = 0; // kraj
referenceParams[1] = 0; // stat
referenceParams[2] = 0; // system

var globalLang = 'cz';

function setParams(lang, param, value) {
  globalLang = lang;
  var noRegionSelected = new Array();
  noRegionSelected['cz'] = 'Nebyl vybrán žádný kraj.';
  noRegionSelected['en'] = 'No region selected';
  noRegionSelected['de'] = 'Kein Bezirk wurde ausgewählt.';
  noRegionSelected['es'] = 'No ha sido seleccionada ninguna región.';
  noRegionSelected['pl'] = 'Nie wybrano żadnego województwa.';
  noRegionSelected['fr'] = 'Aucune région n’a été choisie.';
  noRegionSelected['ru'] = 'Не было выбрано ни одного края.';
  
  if(param == 0) { // vyber kraje
    document.getElementById("mapa-image-"+ (value > 15 ? "sk" : "cr")).src = PI[value].src;
    if(value == 0) {
      document.getElementById("kraj-title-"+ (value > 15 ? "sk" : "cr")).innerHTML = noRegionSelected[globalLang];
    } else {
      document.getElementById("kraj-title-"+ (value > 15 ? "sk" : "cr")).innerHTML = countries[value];
      document.getElementById("mapa-mapa-"+ (value > 15 ? "sk" : "cr")).setAttribute("style", "background-image: url("+ (PI[value].src).replace(".png", "-old.png") +");");
    }
    if(value > 15) {
      document.getElementById("mapa-image-cr").src = PI[0].src;
      document.getElementById("kraj-title-cr").innerHTML = noRegionSelected[globalLang];
      document.getElementById("mapa-mapa-cr").setAttribute("style", "");
    } else {
      document.getElementById("mapa-image-sk").src = PI[24].src;
      document.getElementById("kraj-title-sk").innerHTML = noRegionSelected[globalLang];
      document.getElementById("mapa-mapa-sk").setAttribute("style", "");
    }
  } else if(param == 1) { // vyber statu, pokud bude vybrana CR nebo SR, zpristupnime vyber kraje
    referenceParams[0] = 0;
    if(value == 1) {
      document.getElementById("mapa-frame-cr").setAttribute("style", "display: block;");
      document.getElementById("mapa-frame-sk").setAttribute("style", "display: none;");
    } else if(value == 2) {
      document.getElementById("mapa-frame-sk").setAttribute("style", "display: block;");
      document.getElementById("mapa-frame-cr").setAttribute("style", "display: none;");
    } else {
      document.getElementById("mapa-frame-sk").setAttribute("style", "display: none;");
      document.getElementById("mapa-frame-cr").setAttribute("style", "display: none;");
    }
  } 
  referenceParams[param] = value;
}

  function changePodlahoveKrytiny(selected) {
    document.getElementById('pvc').src = document.getElementById('pvc').src.replace('-selected', '');
    document.getElementById('parkety').src = document.getElementById('parkety').src.replace('-selected', '');
    document.getElementById('dlazba').src = document.getElementById('dlazba').src.replace('-selected', '');
    document.getElementById(selected).src = document.getElementById(selected).src.replace('.png', '-selected.png');
    document.getElementById('current-icon').src = document.getElementById(selected).src;
    document.getElementById('podlahova-krytina-selected').value = selected;
  }
  var formData = {
    "podlahovaKrytina":'',
    "plochaMistnosti":'',
    "vzdalenostNosniku":'',
    "velikostZatizeni":'',
    "form":''
  };
/* AJAX */
  
  // --- navrhovani podlah ---
  function floorDesign(currentStep, variant) {
    var xmlhttp = getXmlhttpObject();
    if(currentStep == 'orientace-podpor') {
      formData.vzdalenostNosniku = '';
      formData.velikostZatizeni = '';
    }
    xmlhttp.open("GET","../sysNavrhovaniPodlah/?aktualniKrok="+ currentStep +"&varianta="+variant +'&formData='+JSON.stringify(formData), true);
    xmlhttp.send();
    renderResult(xmlhttp, "floorDesignContainer");
  }
  
  function floorDesignSetCurrent(current) {
    var xmlhttp = getXmlhttpObject();
    xmlhttp.open("GET","../sysNavrhovaniPodlah/?setCurrent="+ current, true);
    xmlhttp.send();
    renderResult(xmlhttp, "floorDesignContainer");
  }
  
  function floorDesignGetResult(formVersion) {
    var xmlhttp = getXmlhttpObject();
    formData.vzdalenostNosniku = document.getElementById('vzdalenostNosniku') ? document.getElementById('vzdalenostNosniku').value : '';
    formData.velikostZatizeni = document.getElementById('velikostZatizeni') ? document.getElementById('velikostZatizeni').value : '';
    formData.plochaMistnosti = document.getElementById('plochaMistnosti').value;
    formData.podlahovaKrytina = document.getElementById('podlahova-krytina-selected').value;
    var re1=/(\d+)/;
    if(formData.podlahovaKrytina == 'podlahova-krytina' || formData.podlahovaKrytina == '') {
      alert('Pro další pokračování vyberte podlahovou krytinu!');
    } else if(!formData.plochaMistnosti.test(re1)) {
      alert('Hodnota pole "Plocha místnosti" musí být číslo!');
    } else if(formData.vzdalenostNosniku == '' && formVersion == 'form02') {
      alert('Hodnota pole "Pro pokračování je třeba vyplnit pole Vzdálenost nosníků');
    } else if(formData.velikostZatizeni == '' && formVersion == 'form02') {
      alert('Hodnota pole "Pro pokračování je třeba vyplnit pole Velikost zatížení');
    } else {
      formData.form = formVersion;
      xmlhttp.open("GET","../sysNavrhovaniPodlah/?postData="+ JSON.stringify(formData), true);
      xmlhttp.send();
      renderResult(xmlhttp, "floorDesignContainer");
    }
  }
  
  function floorDesignProcessForm(help, item, server) {
    var xmlhttp = getXmlhttpObject();
    if(item.value == '') alert('Pro další pokračování je potřeba vybrat '+ item.parentNode.parentNode.firstChild.innerHTML.replace(':', ''));
    else {
      if(item.id =='vzdalenostNosniku') {
        //formData.vzdalenostNosniku = item.value;
        //alert(server+ "/importPodlahy.php/?navrat=zatizeni&podpory="+ help +"&nosnikyVzdalenost="+ item.value +'&selected='+ formData.velikostZatizeni);
        xmlhttp.open("GET", server+ "/importPodlahy.php/?navrat=zatizeni&podpory="+ help +"&nosnikyVzdalenost="+ item.value +'&selected='+ formData.velikostZatizeni, true);
        xmlhttp.send();
        xmlhttp.onreadystatechange=function() {
          document.getElementById('velikostZatizeni').disabled = false;
          if (xmlhttp.readyState==4 && xmlhttp.status==200) {
            var select = document.getElementById('velikostZatizeni');
            var response = JSON.parse(xmlhttp.responseText.trim());
            for(var x = 0; x < response.x.length; x++) {
              y = document.createElement('option');
              y.setAttribute('value', response.x[x])
              y.innerHTML = response.x[x];
              select.appendChild(y);
            }
          }
        }
        
        //alert(document.getElementById("velikostZatizeni").innerHTML);
      } else if(item.id =='velikostZatizeni') {
        //formData.velikostZatizeni = item.value;
        document.getElementById('plochaMistnosti').disabled = false;
      }
      
    }
    eval('formData.'+item.id+' = \''+ item.value +'\'');
  }
  
  // --- end navrhovani podlah ---
  
  function reloadReferences() {
    
    var xmlhttp = getXmlhttpObject();
    renderLoadImage("referencesContainer", globalLang != 'cz' ? '../../' : '../');
    xmlhttp.open("GET","../sysReference/?lang="+ globalLang +"&kraj="+ referenceParams[0] +"&stat="+referenceParams[1]+ "&system="+ referenceParams[2], true);
    xmlhttp.send();
    renderResult(xmlhttp, "referencesContainer");
  }
  function afterReloadRescan() {
    Slimbox.scanPage = function() {
    $$("a").filter(function(el) {
    		return el.rel && el.rel.test(/^lightbox/i);
    	}).slimbox({/* Put custom options here */}, null, function(el) {
    		return (this == el) || ((this.rel.length > 8) && (this.rel == el.rel));
    	});
    };
    if (!/android|iphone|ipod|series60|symbian|windows ce|blackberry/i.test(navigator.userAgent)) {
    	window.addEvent("domready", Slimbox.scanPage);
    }
  }
  function reloadSellingPoint() {
    var xmlhttp = getXmlhttpObject();
    renderLoadImage('prodejniMistaContainer', globalLang != 'cz' ? '../../../' : '../../');
    renderResult(xmlhttp, "prodejniMistaContainer");
    xmlhttp.open("GET","../../sysProdejniMista/?lang="+ globalLang +"&kraj="+ referenceParams[0] +"&stat="+referenceParams[1], true);
    xmlhttp.send();
  }
  
  function reloadInstalationCompanies() {
    var xmlhttp = getXmlhttpObject();
    renderLoadImage('montazniFirmyContainer', '../../');
    renderResult(xmlhttp, "montazniFirmyContainer");
    xmlhttp.open("GET","../../sysMontazniFirmy/?kraj="+ referenceParams[0] +"&typ="+referenceParams[2], true);
    xmlhttp.send();
  }
  
  function getDiscussion(targetElement, parent) {
    var xmlhttp = getXmlhttpObject();
    renderLoadImage('prodejniMistaContainer', '../../');
    renderResult(xmlhttp, "prodejniMistaContainer");
    xmlhttp.open("GET","../../sysDiscussion/?parent="+ parent, true);
    xmlhttp.send();
  }

  function renderLoadImage(elementId, ext) {
    var text = '';
    switch(globalLang) {
      case 'cz': text = 'Načítám data'; break;
      case 'en': text = 'Loading data'; break;
      case 'de': text = 'Daten werden geladen'; break;
      case 'es': text = 'Cargando datos'; break;
      case 'pl': text = 'Wczytuję dane'; break;
      case 'ru': text = 'Загрузка данных'; break;
      case 'fr': text = 'Lecture des données en cours'; break;
      default: text = 'Loading data';
    }
    document.getElementById(elementId).innerHTML = '<div class="loading-animation">'+
                                                   '<img src="'+ ext +'custom/admin/images/loadingAnimation.gif" border="0" width="208" height="13" alt="" class="">'+
                                                   '<br />'+ text +'</div>';
  }

  function renderResult(xmlhttp, targetElement) {
    xmlhttp.onreadystatechange=function() {
      if (xmlhttp.readyState==4 && xmlhttp.status==200) {
        document.getElementById(targetElement).innerHTML = xmlhttp.responseText;
      }
    }
  }

  function getXmlhttpObject() {
    var xmlhttp;
    if (window.XMLHttpRequest) {
      // code for IE7+, Firefox, Chrome, Opera, Safari
      xmlhttp=new XMLHttpRequest();
    } else {
      // code for IE6, IE5
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    return xmlhttp;
  }
  function formFunction(form) {
    form.action = '';
    return true;
  }
