/**
 * Přednačtení zaměňovaných obrázků
 */ 
var cart = new Image(78, 58); cart.src="images/cart_corner.jpg";
var cartOn = new Image(78, 58); cartOn.src="images/cart_corner_on.jpg";

/**
 * Zamění obrázek jiným obrázkem.
 */ 
function switchImage(imageName, newImageSrc)
{
  document.images[imageName].src = newImageSrc;
}


/**
 * Zobrazí nebo skryje element dokumentu tím, že jeho styl display
 * nastaví na block nebo none. Pokud není styl nastaven na none,
 * je použito none. 
 */
function toggleOpen(element)
{
	if (document.getElementById(element).style.display != "none") 
  {
		document.getElementById(element).style.display = "none";
	} 
  else 
  {
		document.getElementById(element).style.display = "block";
	}
}
function toggleHide(element)
{
  document.getElementById(element).style.display = "none";
}

/**
 * Zobrazí specifikované chybové hlášení v dialogu a nastaví focus na
 * daný element formuláře (zvýrazní také pozadí elementu). Vždy vrací hodnotu
 * false. 
 */ 
function errMsg(msg, element)
{
  window.alert(msg);
  if (element != null)
  {
    element.focus();
    element.style.backgroundColor = "#FFE653";
  }
  return false;
}

/**
 * Vrací true, pokud je hodnota v zadaném elementu korektní e-mailová adresa.
 */ 
function isCorrectEmail(emailElement)
{
  if (emailElement.value.indexOf('@') < 1 
  || emailElement.value.indexOf(' ') > -1
  || emailElement.value.indexOf('.') < 1)
  {
    return false;
  }
  else
  {
  	return true;
  }
}

/**
 * Vrací true, pokud je hodnota v zadaném elementu celé číslo.
 */ 
function isInteger(numberElement)
{
  for (i = 0; i < numberElement.value.length; i++)
  {
    if (isNaN(parseInt(numberElement.value.charAt(i)))) 
    {
    	return false;
    }
  }
  return true;
}

/**
 * Vrací true, pokud je hodnota v zadaném elementu PSČ.
 */ 
function isPSC(pscElement)
{
  PocCislic = 0;
  for (i = 0; i < pscElement.value.length; i++)
  {
    if (i == 3 && pscElement.value.charAt(i) == ' ') 
    {
    	continue;
    }
    PocCislic++;
    if (isNaN(parseInt(pscElement.value.charAt(i)))) 
    {
    	return false;
    }
  }
  return PocCislic == 5;
}

/** 
 * Ověří, zda jsou ve formuláři pro hledání zadané potřebné údaje. Vrací true,
 * pokud jsou zadané, jinak false.
 */  
function SimpleSearchControl(form)
{
  // Zkontrolujeme povinné údaje
  if (form.vyraz.value == "") 
  {
    return errMsg("Zadejte prosím text, který bude hledán v názvech a popisech výrobků.", form.vyraz);
  }
  return true;
}

/** 
 * Ověří údaje ve formuláři pro aktualizaci počtu kusů výrobků v nákupním košíku.
 */ 
function updateProductCountCheck(form)
{
  // Zkontrolujeme povinné údaje
  if (form.countOfPieces.value == "" || !isInteger(form.countOfPieces)) 
  {
  	return errMsg("Zadejte prosím celé číslo udávající počet výrobků, které chcete vložit do košíku.", form.countOfPieces);
 	}
	return true;
}