var BrowserCorrectionFF=0;
var lastWidth=0;
window.onresize = function (){
  // validni alternativa za onresize="" v body
  ResizePage();
}
function ResizePage(){
  // nacte rozmery v zavislosti na prohlizeci
  var cardWidthMin = 260;
  var space = 3;
  var myWidth = 0, myHeight = 0;
  var cardCount=0;
  if( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    myWidth = window.innerWidth;
    myHeight = window.innerHeight;
    if (myWidth <= 1024)
    myWidth = 550;
    else if(myWidth >= 1272){
      if (myWidth+BrowserCorrectionFF > 1285)myWidth = 807;  // 815  780  807
      else myWidth = 780;  // 815  780  807
    }else{
      myWidth -= 480; // ff 477
      // korekce firefox
      myWidth+=BrowserCorrectionFF;
    }
  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    myWidth = document.documentElement.clientWidth;
    //alert(myWidth);
    myHeight = document.documentElement.clientHeight;
    if (myWidth <= 1024)
      myWidth = 545;
    else if(myWidth >= 1270)
      myWidth = 807;  // 815  780  807
    else
      myWidth -= 465;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    //IE 4 compatible
    myWidth = document.body.clientWidth;
    myHeight = document.body.clientHeight;
  }
  if(lastWidth!=myWidth){  
    lastWidth=myWidth;
    padding = myWidth;
    className1='p1Prvek novinka';
    className2='p1Prvek doprodej';
    className3='p1Prvek';
    cardCount = Math.floor( myWidth / cardWidthMin );
    //myWidth = cardCount * cardWidthMin; // odecte rozmer minimalni rozmer karty, pro tolik sloupcu kolik se tam nejvice vleze
    myWidth -= (cardCount+1)*space;
    myWidth /= cardCount; // vysledny rozmer podeli poctem karet cimz ziskam rozmer o ktery budu zvetsovat kazdou kartu, nedojde tedy k preteceni a ubrani sloupce
    myWidth = Math.floor(myWidth);
    // vlastni postup na zmenu rozmeru
    var Cards = document.getElementById("p1Produkty");
    if(Cards){
      // -1 protoze tam je nejaky resetovaci element navic.
      for (i=0;i<Cards.childNodes.length-1;i++)
      {
        Cards.childNodes[i].style.width=(myWidth)+'px';
      }
    }
  }
}
function panely(tab){
  var listy = document.getElementById("jcPanelyListy");
  var menu = document.getElementById("jcPanelyMenu");
  var all = listy.getElementsByTagName('div');
  for (var i=0; i<all.length;i++){
    if (all[i].className != tab && all[i].parentNode == listy)
      all[i].style.display='none';
    else if (all[i].parentNode == listy)
      all[i].style.display='block';
  }
  var all=menu.getElementsByTagName('span');
  for (var i=0; i<all.length;i++){
    if (all[i].className != tab && all[i].parentNode == menu){
      all[i].style.textDecoration='underline';
      all[i].style.backgroundColor='#F1F1F1';
      all[i].style.borderBottom='solid 1px #E0E0E0';
      all[i].style.cursor='pointer';
    }
    else if (all[i].parentNode == menu){
      all[i].style.borderBottom='solid 1px #FFFFFF';
      all[i].style.textDecoration='none';
      all[i].style.background='white';
      all[i].style.cursor='auto';
    }
  }
}
var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
function startup(){
  // sbali kosik, vyber defauktnich prvku
  if(document.getElementById('formOrder')){
    //toggleDisplay(\'bez_registrace\',true);
    toggleDisplay('kont_ico',false);
    toggleDisplay('doru',false);
    toggleDisplay('fakt',false);
    toggleDisplay('fakt_ico',false);
  }
  BrowserDetect.init();
  // korekce na karty kvuli FF
  if(BrowserDetect.browser=='Firefox'){
    BrowserCorrectionFF-=12;
  }
  // resize
  ResizePage();
  // lalala
  //alert(window.innerWidth);
}
/* eshop navigace */
function navigator1() {
  location.href=(document.getElementById("navigator1").options[document.getElementById("navigator1").selectedIndex].value);
}
function navigator2() {
  location.href=(document.getElementById("navigator2").options[document.getElementById("navigator2").selectedIndex].value);
}
function navigator3() {
  location.href=(document.getElementById("navigator3").options[document.getElementById("navigator3").selectedIndex].value);
}
/* end eshop navigace */

/* kosik */
/* kontrola celeho formulare s kosikem, dopravou a registraci */
function kosikCheck()
{
    if(!kontrolaDopravy()) // je vybrana doprava ?
        return false;
    else if(!kontrolaRegistrace()) //
        return false;
    else
        return true;
}

function aktualizujSoucty()
{
    var suma_bez = document.getElementById('suma_bez');
    var suma_s = document.getElementById('suma_s');

    suma_bez.innerHTML = Math.ceil(cenaZbozi_bez + cenaDopravy_bez + cenaBonusu_bez)+ ',-';
    suma_s.innerHTML = Math.ceil(cenaZbozi_s + cenaDopravy_s + cenaBonusu_s)+ ',-';
}

function celkovaCenaDopravy()
{
    var doprava_cena_bez = document.getElementById('doprava_cena_bez');
    var doprava_cena_s = document.getElementById('doprava_cena_s');

    cenaDopravy_bez = cenaDruhDopravy_bez + cenaTypDopravy_bez + cenaPlatebniMetoda_bez;
    cenaDopravy_s = cenaDruhDopravy_s + cenaTypDopravy_s + cenaPlatebniMetoda_s;

    doprava_cena_bez.innerHTML = Math.ceil(cenaDopravy_bez)+ ',-';
    doprava_cena_s.innerHTML = Math.ceil(cenaDopravy_s)+ ',-';
}

function zvolDruhDopravy(nazev, cena_s, cena_bez)
{
    var doprava_druh_nazev = document.getElementById('doprava_druh_nazev');

    cenaDruhDopravy_s = cena_s;
    cenaDruhDopravy_bez = cena_bez;

    doprava_druh_nazev.innerHTML = nazev;

    document.getElementById('doprava_typ_nazev').innerHTML = '';
    cenaTypDopravy_s = cenaTypDopravy_bez = 0;
    document.getElementById('platebni_metoda_nazev').innerHTML = '';
    cenaPlatebniMetoda_s = cenaPlatebniMetoda_bez = 0;

    celkovaCenaDopravy();
    aktualizujSoucty();
}

function zvolTypDopravy(nazev, cena_s, cena_bez)
{
    var doprava_typ_nazev = document.getElementById('doprava_typ_nazev');

    cenaTypDopravy_s = cena_s;
    cenaTypDopravy_bez = cena_bez;

    doprava_typ_nazev.innerHTML = ' '+nazev;

    document.getElementById('platebni_metoda_nazev').innerHTML = '';
    cenaPlatebniMetoda_s = cenaPlatebniMetoda_bez = 0;

    celkovaCenaDopravy();
    aktualizujSoucty();
}

function zvolMetoduPlatby(nazev, cena_s, cena_bez)
{
    var platebni_metoda_nazev = document.getElementById('platebni_metoda_nazev');

    cenaPlatebniMetoda_s = cena_s;
    cenaPlatebniMetoda_bez = cena_bez;

    platebni_metoda_nazev.innerHTML = ' '+nazev;

    celkovaCenaDopravy();
    aktualizujSoucty();
}

/** funkce obsluhuje kliknuti na checkbox "bonusu dopravy"
    vklada / odstranuje odpovidajici polozku v tabulce kosiku
*/

function zobraz_typy(druh)
{
    hide_all();
    document.getElementById('doprava-typy-table').style.display = 'block';
    for(i=0;i<typy_druhu[druh].length;i++)
        if(document.getElementById('typ-dopravy-'+typy_druhu[druh][i]))
            document.getElementById('typ-dopravy-'+typy_druhu[druh][i]).style.display = 'block';
    
    try
    {
        if(druh > 1 && (cenaZbozi_s + cenaDopravy_s) > 3000)
        {    
            document.getElementById('doprava-splatky-tip').style.display = 'block';
        }
        else
        {
            document.getElementById('doprava-splatky-tip').style.display = 'none';    
        }
        document.getElementById('vybrany-druh-dopravy').value = druh;
    } 
    catch(e) {}
    
    
}
function zobraz_platby(typ)
{
    hide_platby();
    document.getElementById('doprava-platby-table').style.display = 'block';
    for(i=0;i<=platby_typu[typ].length;i++)
        if(document.getElementById('platba-'+platby_typu[typ][i]))
            document.getElementById('platba-'+platby_typu[typ][i]).style.display = 'block';
}

function hide_typy()
{
    document.getElementById('doprava-typy-table').style.display = 'none';
    for(i=0;i<vsechny_typy.length;i++)
        if(document.getElementById(vsechny_typy[i]))
            document.getElementById(vsechny_typy[i]).style.display = 'none';
    re = new RegExp('Opera 7\.5');
    if(!re.test(navigator.userAgent))
    {
        for(j=0;j<document.getElementById('kosik_form').typ_dopravy.length;j++)
            document.getElementById('kosik_form').typ_dopravy[j].checked = false;
    }
}
function hide_platby()
{
    document.getElementById('doprava-platby-table').style.display = 'none';
    for(i=0;i<vsechny_platby.length;i++)
        if(document.getElementById(vsechny_platby[i]))
            document.getElementById(vsechny_platby[i]).style.display = 'none';
    re = new RegExp('Opera 7\.5');
    if(!re.test(navigator.userAgent))
    {
        for(j=0;j<document.getElementById('kosik_form').platba.length;j++)
            document.getElementById('kosik_form').platba[j].checked = false;
    }
}
function hide_all()
{
    hide_typy();
    hide_platby();
}
function init_transport_form()
{
    hide_typy();
    hide_platby();
    for(i=0;i<document.getElementById('kosik_form').druh_dopravy.length;i++)
        document.getElementById('kosik_form').druh_dopravy[i].checked = false;
}

/** je treba definovat*/
function kontrolaDopravy()
{
    var vybrany_druh = false;
    var vybrany_typ = false;
    var vybrana_platba = false;

    for(i=0;i<document.getElementById('kosik_form').druh_dopravy.length;i++)
        if(document.getElementById('kosik_form').druh_dopravy[i].checked)
            vybrany_druh = true;

    for(i=0;i<document.getElementById('kosik_form').typ_dopravy.length;i++)
        if(document.getElementById('kosik_form').typ_dopravy[i].checked)
            vybrany_typ = true;

    for(i=0;i<document.getElementById('kosik_form').platba.length;i++)
        if(document.getElementById('kosik_form').platba[i].checked)
            vybrana_platba = true;

    if(!vybrany_druh)
    {
        alert("Vyberte prosím druh dopravy. Děkujeme.");
        return false;
    }
    else if(!vybrany_typ)
    {
        alert("Vyberte prosím typ dopravy. Dě›kujeme.");
        return false;
    }
    else if(!vybrana_platba)
    {
        alert("Vyberte prosím platební metodu. Děkujeme.");
        return false;
    }
    else
        return true;
}

/** kosik moznosti skriti zobrazeni*/
function toggleDisplay(elementId,display)
{
    var element = document.getElementById(elementId);
    try
    {
        if(display)
            element.style.display='block';
        else
            element.style.display='none';
    }
    catch(e) {}
}
