/**
* elmToggle = jaky element se ma zapnout/vypnout
* sAction = 'show' nebo 'hide'
* aElmForClass = pole elementu na ktere se ma zapnout/vypnout (toggle) pole aClass
* aClass = pole css trid, ktere se aplikuji na pole aElmForClass
*/
function fToggleElmAndSetClass(elmToggle, sAction, aElmForClass, aClass)
						{
							if(sAction=='show')
							{
								$(elmToggle).slideDown('slow');
							}else if(sAction=='hide'){
								$(elmToggle).slideUp('slow');
							}
							for(i=0; i<aElmForClass.length; i++)
							{
								for(j=0; j<aClass.length; j++)
								{
									$(aElmForClass[i]).toggleClass(aClass[j]);
								}
							}
						}
function manageNewsletterDependence(clicked)
{
  var newsletterRequired = document.getElementById('newsletterRequired');
  var registerMe = document.getElementById('registerMe');

  switch(clicked)
  {
    case 'newsletter':
      if(newsletterRequired.checked)
      {
        registerMe.checked = true;
      }
    break;
    case 'registration':
      if(!registerMe.checked)
      {
        newsletterRequired.checked = false;
      }
    break;
  }
}

function isNotEmpty( checkedVar )
{
	if(checkedVar)
	{
	   return new Array(true, "");
	}
	else
	{
	  return new Array(false, "není vyplněno");
	}
}

function isPostalCode( checkedVar )
{
	if( (parseInt(checkedVar) || parseInt(checkedVar) == 0) && checkedVar.length == 5 )
	{
	   return new Array(true, "");
	}
	else
	{
	  return new Array(false, "není platné PSČ");
	}
}

function isEmail( email )
{
	var regStr = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if( !regStr.test(email)){
		return new Array(false, "nemá platný formát");
	}
	return new Array(true, "");
}

function validateUserData(sFormId, aExceptions)
{
  if(aExceptions == undefined) aExceptions = new Array();
  var minPwdLength = 5;
	var maxResultInfoRows = 4;
	var form = document.getElementById(sFormId);
  var requiredFieldsIds = new Array(
		new Array('firstname', 'jméno', 'isNotEmpty'),
		new Array('surname', 'příjmení', 'isNotEmpty'),
		new Array('street', 'ulice, č.p.', 'isNotEmpty'),
		new Array('city', 'město', 'isNotEmpty'),
		new Array('postalCode', 'PSČ', 'isNotEmpty;isPostalCode'),
		new Array('email', 'e-mail', 'isNotEmpty;isEmail'),
		new Array('phone', 'telefon', 'isNotEmpty')

	);

	// legal form
  var legalFormCompany = document.getElementById('legalFormCompany');
  if(legalFormCompany.checked)
  {
    legalForm = "company";
    requiredFieldsIds.push(
			new Array('company', 'firma', 'isNotEmpty')
//			new Array('ic', 'IČ', 'isNotEmpty')
		);
	}
	else
	{
	  legalForm = "person";
	}
	// delivery enabled
  var deliveryDisabled = document.getElementById('deliveryDisabled');
  if(deliveryDisabled.checked)
  {
    deliveryDiffers = false;
	}
	else
	{
	  deliveryDiffers = true;
	  requiredFieldsIds.push(
			new Array('daFirstname', 'jméno (dodací adresa)', 'isNotEmpty'),
			new Array('daSurname', 'příjmení (dodací adresa)', 'isNotEmpty'),
			new Array('daStreet', 'ulice, č.p. (dodací adresa)', 'isNotEmpty'),
			new Array('daCity', 'město (dodací adresa)', 'isNotEmpty'),
			new Array('daPostalCode', 'PSČ', 'isNotEmpty;isPostalCode')
		);
	}
	var legalAgreement = document.getElementById("legalAgreement").checked;
	if (legalAgreement == false) {
		alert('Před odesláním objednávky musíte souhlasit s obochodními podmínkami.');
		return false;
	}
	// kontrola poli
	var result = true;
	var resultInfo = new Array();
	for(i = 0; i < requiredFieldsIds.length; i ++)
	{
	  var fieldId = requiredFieldsIds[i][0];
	  var fieldName = requiredFieldsIds[i][1];
	  var fieldRef = document.getElementById(fieldId);
	  var fieldValue = fieldRef.value;
	  var fieldChecks = (requiredFieldsIds[i][2].indexOf(";") != -1) ? requiredFieldsIds[i][2].split(";") : new Array(requiredFieldsIds[i][2]);

    fieldRef.className = 'rqd'; // reset border color na default

	  for(j = 0; j < fieldChecks.length; j ++) // projede vsechny typy kontrol pro kazde pole
	  {
			aCheckResults = eval(fieldChecks[j] + "(fieldValue);");
			checkResult = aCheckResults[0];
			checkInfo = aCheckResults[1];
	    if( !checkResult )// nalezena chyba pri jedne z def. kontrol pole
			{
				result = false;
				resultInfo.push('Pole <strong>' + fieldName + '</strong> ' + checkInfo + '.');
				fieldRef.className = 'rqd incorrectlyFilled';
				fieldRef.value = "";
				break;
			}
		}
	}
	// EXCEPTIONS
	for(i = 0; i < aExceptions.length; i ++)
	{
    sException = aExceptions[i];

    switch(sException)
    {
      case 'regPwd':
        var pwd = document.getElementById('regPwd');
        var pwdConfirmation = document.getElementById('regPwdConfirmation');
        pwd.className = 'rqd';
        pwdConfirmation.className = 'rqd';
        // equal pwds
        if( pwd.value != pwdConfirmation.value )
        {
          result = false;
          resultInfo.push( "<strong>Hesla</strong> nejsou shodná." );
          pwdConfirmation.className = 'rqd incorrectlyFilled';
          pwdConfirmation.value = "";
        }
        // min length
        if( pwd.value.length < minPwdLength )
        {
          result = false;
          pwd.className = 'rqd incorrectlyFilled';
          pwdConfirmation.className = 'rqd incorrectlyFilled';
          resultInfo.push( "<strong>Heslo</strong> musí být minimálně " + minPwdLength + " znaků dlouhé." );
          pwd.value = "";
          pwdConfirmation.value = "";
        }
      break;
      case 'legalAgreement':
        var legalAgreement = document.getElementById('legalAgreement');
        if( !legalAgreement.checked )
        {
          result = false;
          resultInfo.push( "<strong>Souhlas s obchodními podmínkami</strong> je vyžadován." );
        }
      break;
    }
  }


	// RESULT
	if(!result)
	{
	  if(resultInfo.length > 4)// oseknuti na max 4 prvky pole
	  {
	    resultInfo = resultInfo.slice(0, maxResultInfoRows);
	    resultInfo.push("<em>... počet chyb je větší než dovoluje zobrazení ...</em>");
		}
		resultInfo.push("<strong>Nesprávně vyplněná pole byla pro přehlednost zvýrazněna.</strong>");
	  changeErrContent('warning', 'Zkontrolujte prosím své údaje', resultInfo);
	  switchErr("show");
	}
	else
	{

	  form.submit();
	}
}

function switchDeliveryAddressBox(action)
{
	// legal form
  var legalFormCompany = document.getElementById('legalFormCompany');
  if(legalFormCompany.checked)
  {
    legalForm = "company";
	}
	else
	{
	  legalForm = "person";
	}
	// delivery enabled
  var deliveryDisabled = document.getElementById('deliveryDisabled');
  if(deliveryDisabled.checked)
  {
    deliveryDiffers = 0;
	}
	else
	{
	  deliveryDiffers = 1;
	}

	// fields, rows, boxes
	var deliveryAddressBox = document.getElementById('deliveryAddressBox');
	var daCompany = document.getElementById('daCompany');
	var daCompanyRow = document.getElementById('daCompanyRow');
  var daFirstname = document.getElementById('daFirstname');
  var daSurname = document.getElementById('daSurname');
  var daStreet = document.getElementById('daStreet');
  var daCity = document.getElementById('daCity');
  var daPostalCode = document.getElementById('daPostalCode');

  // actions
	switch(action)
	{
	  case 'disable':
	    // hide box
	    deliveryAddressBox.style.display = "none";
	    // reset fields
	    daCompany.value = "";
  		daFirstname.value = "";
  		daSurname.value = "";
  		daStreet.value = "";
  		daCity.value = "";
  		daPostalCode.value = "";
	  break;
	  case 'enable':
	    // show box
	    deliveryAddressBox.style.display = "block";
	    // conditional COMPANY DISPLAY
	    daCompanyRow.style.display = (legalForm == "company" ? 'block' : 'none');
	  break;
	}
}

function switchLegalForm()
{
	// legal form
  var legalFormCompany = document.getElementById('legalFormCompany');
  if(legalFormCompany.checked)
  {
    legalForm = "company";
	}
	else
	{
	  legalForm = "person";
	}
	// fields adn divs to manage
  var company = document.getElementById('company');
  var companyRow = document.getElementById('companyRow');
  var daCompany = document.getElementById('daCompany');
  var daCompanyRow = document.getElementById('daCompanyRow');
  var ic = document.getElementById('ic');
  var icRow = document.getElementById('icRow');
  var dic = document.getElementById('dic');
  var dicRow = document.getElementById('dicRow');

  // actions
	switch(legalForm)
	{
	  case 'person':
	    // hide rows
	    companyRow.style.display = "none";
	    daCompanyRow.style.display = "none";
	    icRow.style.display = "none";
	    dicRow.style.display = "none";
	    // reset fields
	    company.value = "";
	    daCompany.value = "";
  		ic.value = "";
  		dic.value = "";
	  break;
	  case 'company':
	    // show rows
	    companyRow.style.display = "block";
	    daCompanyRow.style.display = "block";
	    icRow.style.display = "block";
	    dicRow.style.display = "block";
	  break;
	}
}

function checkIntegerOnly(inputToCheckId, defaultValue)
{
	var inputToCheck = document.getElementById(inputToCheckId);

	if(!isNaN(parseInt(inputToCheck.value)) && inputToCheck.value.length > 0) {

    		inputToCheck.value = parseInt(inputToCheck.value);

  	} else {
  		if (inputToCheck.value.length > 0) {
    		inputToCheck.value = defaultValue;
    		}

  	}
}

function showInformation(str)
{
  window.alert(str);
}

function helpAvailabilityIcon(str)
{
  window.alert(str);
}

function setCatalogueView(view)
{
	var frmView = document.getElementById('frm_catalogueView');
	var inputView = document.getElementById('catalogueView');

	inputView.value = view;
	frmView.submit();
}

function setCatalogueOrderByDirection(orderByDirection)
{
	var frmOrderBy = document.getElementById('frm_orderBy');
	var direction = document.getElementById('catalogueOrderByDirection');

	direction.value = orderByDirection;
	frmOrderBy.submit();
}

function setArchivOrderByDirection(orderByDirection)
{
	var frmOrderBy = document.getElementById('frm_orderBy');
	var direction = document.getElementById('archivOrderByDirection');

	direction.value = orderByDirection;

	frmOrderBy.submit();
}

function pd_checkVariant(variantStamp)
{
	var selectedVariant = document.getElementById('pd_variant_' + variantStamp);
	var selectedRow = document.getElementById('pd_variant_row_' + variantStamp);
	var variantTable = document.getElementById('pd_tbl_variants');
	//variantTable.rows[0].style.border = "10px solid #000000";
	var variantRows = variantTable.getElementsByTagName('tr');
	var numVariantRows = variantRows.length;

	for(i = 1; i < numVariantRows; i ++)
	{
		var variantRow = variantRows[i];
		var rowClass = variantRow.className;
		if(rowClass.indexOf("odd") == -1)
		{
			variantRow.className = "noClass";
		}
		else
		{
			variantRow.className = "odd";
		}
	}

	selectedVariant.checked = "checked";
	var selectedRowClass = selectedRow.className;
	if(selectedRowClass.indexOf("odd") == -1)
	{
		selectedRow.className = "checked";
	}
	else
	{
		selectedRow.className = "odd checked";
	}
}

function loading(){

	var data = this.req.responseXML.documentElement;
	var iCount = data.getElementsByTagName('ITEM')[0].firstChild.nodeValue;
	var btnDisplayResults = document.getElementById('btn_displayCatalogueFilterResults');
	var numFilterResults = document.getElementById('numFilterResults');
	var numCatalogueTotal = document.getElementById('numCatalogueTotal').value;

	// CSS reaction
	if(iCount != numCatalogueTotal)
	{
		numFilterResults.style.background = "#122B85";
		numFilterResults.style.color = "#C2E7FF";
		if(iCount == 0)
		{
		  btnDisplayResults.style.textDecoration = "line-through";
		}
		else
		{
			btnDisplayResults.style.textDecoration = "none";
		}
	}
	else
	{
		numFilterResults.style.background = "#C2E7FF";
		numFilterResults.style.color = "#122B85";
		btnDisplayResults.style.textDecoration = "none";
	}


	numFilterResults.innerHTML = iCount;
}

function checkFilterSetup()
{
  var categoryId = document.getElementById('categoryId').value;
  var manufacturerId = document.getElementById('manufacturerId').value;
  var userType = document.getElementById('userType').value;

  var numFilterResults = document.getElementById('numFilterResults');
  var btnDisplayResults = document.getElementById('btn_displayCatalogueFilterResults');
  var enableAjaxQuestion = true;
  var filterManufacturerCollection = document.getElementsByName('filterManufacturer[]');
  var filterAvailabilityCollection = document.getElementsByName('filterAvailability[]');
  var priceFrom = document.getElementById('filterPriceFrom');
  var priceTo = document.getElementById('filterPriceTo');
  var filters = document.getElementById('frm_filters');

  // filter manufacturers
  var filterManufacturerValues = new Array();
  for(var i = 0; i < filterManufacturerCollection.length; i ++)
  {
    eval("var manufacturerChecked = document.getElementById('manufacturer_" + filterManufacturerCollection[i].value + "').checked;");
    if(manufacturerChecked) filterManufacturerValues.push(filterManufacturerCollection[i].value);
  }
  if(!filterManufacturerValues.length) enableAjaxQuestion = false;

  // filter availability
  var filterAvailabilityValues = new Array();
  for(var i = 0; i < filterAvailabilityCollection.length; i ++)
  {
    eval("var availabilityChecked = document.getElementById('availability_" + filterAvailabilityCollection[i].value + "').checked;");
    if(availabilityChecked) filterAvailabilityValues.push(filterAvailabilityCollection[i].value);
  }
  if(!filterAvailabilityValues.length) enableAjaxQuestion = 0;

  // filter prices
  if(!isNaN(parseInt(priceFrom.value)))
  {
    priceFrom.value = parseInt(priceFrom.value);
  }
  else
  {
    priceFrom.value = "";
  }
  if(!isNaN(parseInt(priceTo.value)))
  {
    priceTo.value = parseInt(priceTo.value);
  }
  else
  {
    priceTo.value = "";
  }

  if(!enableAjaxQuestion) {
  	btnDisplayResults.style.textDecoration = "line-through";
		numFilterResults.style.background = "#122B85";
		numFilterResults.style.color = "#C2E7FF";
  	numFilterResults.innerHTML = "0";
  }

  else{
      //document.getElementById('test').innerHTML = "/ajax/catalogueFiltr.php?iManufacturers="+filterManufacturerValues+"&iAvailability="+filterAvailabilityValues+"&iPriceFrom="+priceFrom.value+"&iPriceTo="+priceTo.value+"&categoryId="+categoryId+"&manufacturerId="+manufacturerId+"&userType="+userType;
    	var ajax = new net.ContentLoader("/ajax/catalogueFiltr.php?iManufacturers="+filterManufacturerValues+"&iAvailability="+filterAvailabilityValues+"&iPriceFrom="+priceFrom.value+"&iPriceTo="+priceTo.value+"&categoryId="+categoryId+"&manufacturerId="+manufacturerId+"&userType="+userType, loading);

  }

  return enableAjaxQuestion;

}

function submitFilters()
{

  var passed = checkFilterSetup();
  if(passed)
  {

    if (document.getElementById('numFilterResults').innerHTML == 0) {

    	window.alert("Vámi nastavený filtr vrací nulový počet výsledků.");
     	return false;
	} else return true;
  }
  else
  {
  	window.alert("Vámi nastavený filtr vrací nulový počet výsledků. Zkuste snížit omezení filtrů.");
    return false;
  }
}

function manageProductCompare(productId, action)
{
	var productCompareForm = document.getElementById('productCompareRequest');
	var productCompareId = document.getElementById('productCompareId');
	var productCompareAction = document.getElementById('productCompareAction');

	productCompareId.value = productId;
	productCompareAction.value = action;
	productCompareForm.submit();
}

function compareDisabledNotice()
{
	window.alert(" V jednu chvíli je možné srovnávat pouze 4 produkty. chcete-li některý z již vybraných vyměnit za jiný, odstraňte nejdříve tento vybraný produkt ze seznamu k porovnání.");
}

function switchCssIconCompare(id, cssClass)
{
	var element = document.getElementById(id);
	element.className = "cssClass";
}

function changeAction() {

	var input = document.getElementById("do");
	var formik = document.getElementById("frm_payment");
	input.value = 'refresh';
	formik.submit();

}

function changeDeliveryOption() {

	var rInput = document.getElementById("doAction"); // jde o klasicke "do", ale kvuli ... IE se to musi jmenovat jinak (konfrontace nekolika name="do" a jednoho id="do")
	rInput.value = 'changeDeliveryOption';

	var rForm = document.getElementById("platba");
	rForm.submit();

}

function manageQtyWidth(id, action)
{
	var widthExtended = 30;
	var widthContracted = 16;
	var elementQty = document.getElementById(id);
	switch(action)
	{
	  case 'extend':
	    elementQty.style.width = widthExtended + 'px';
	  break;
	  case 'contract':
	  	elementQty.style.width = widthContracted + 'px';
	  break
	  default:
	  break;
	}
}

function switchElementLoading()
{
	var data = this.req.responseXML.documentElement;
	var elementAlert = data.getElementsByTagName('ALERT')[0].firstChild.nodeValue;
	var action = data.getElementsByTagName('ACTION')[0].firstChild.nodeValue;
	var viewAlert = Number(data.getElementsByTagName('VIEW_ALERT')[0].firstChild.nodeValue);

	if(viewAlert == "1" && action == "hide")
	{
		window.alert(elementAlert + " jsou skryté. Chcete-li je opět zobrazit, klepněte na stejné tlačitko.");
	}
}

function switchElement(id)
{
  var element = document.getElementById(id);
  var elementBtmHsep = document.getElementById(id + "Hsep");
  var elementDisplayStatus = element.style.display;

  if(elementDisplayStatus == "none" || elementDisplayStatus == undefined)
  {
    var action = "unhide";
    element.style.display = "block";
    elementBtmHsep.style.background = "none";
  }
  else
  {
  	var action = "hide";
    element.style.display = "none";
    elementBtmHsep.style.background = "url('/bg/hsep_line_lightocher.gif') repeat-x";
  }
  var url = "../ajax/switch_element.php?element="+ id + "&action=" + action;
  //window.alert(url);
	var ajax = new net.ContentLoader(url, switchElementLoading);
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function setPayment(choice){
	var element = document.getElementById('payment');
	if(choice == 4 && element.value == 1){
	  element.value = 2;
	  window.alert("Pro tento způsob dopravy je možnost platby pouze hotově. Způsob platby byl automaticky nastaven.");
	}else if (choice != 4 && element.value == 2){
	  element.value = 1;
	  window.alert("Pro tento způsob dopravy je možnost platby pouze dobírkou. Způsob platby byl automaticky nastaven.");
	}
}


function cartadd(frm, session_id, currency, user_type){

	if(user_type == '') user_type = '1';
	var url = "../ajax/cart_add.php?currency="+currency+"&user_type="+user_type+"&session_id="+session_id+"&productStamp="+frm.productStamp.value+"&qty="+frm.qty.value;
	//window.location=url;
	var ajax = new net.ContentLoader(url, cartloading);

}

function zmenaHledani() {

	var element = document.getElementById('hledani');

	if (element.value == 'hledat...') {
		element.value = '';
	}

}

function cartloading(){
	var elmnt = document.getElementById('cart-ajax');
	var data = this.req.responseXML.documentElement;
	var ks = Number(data.lastChild.firstChild.nodeValue);
	var cena = data.firstChild.firstChild.nodeValue;
	if(!isNaN(ks)){
		elmnt.innerHTML = ks + "<br />"+cena;
		alert("Vybrané zboží bylo přidáno do košíku. Děkujeme.");
	}
}


function watchDog(e, productId){
	var posx = 0;
	var posy = 0;
	if (!e) var e = window.event;
	if (e.pageX || e.pageY)
	{
		posx = e.pageX;
		posy = e.pageY;
	}
	else if (e.clientX || e.clientY)
	{
		posx = e.clientX + document.documentElement.scrollLeft;
		posy = e.clientY + document.documentElement.scrollTop;
	}


	var frm = document.getElementById('frm_watchDog');
	frm.wdProductId.value = productId;
	var wdBox = document.getElementById('watchDog');

	wdBox.style.top = (posy + 5) + "px";
	wdBox.style.left = (posx +5) + "px";
	wdBox.style.display = 'block';
}

function addItem(box, id) {
   var sel = document.getElementById(box);
   var opt = document.createElement("OPTION");
   opt.value = id;

	var txt = document.createTextNode(id);
	opt.appendChild(txt);
   sel.appendChild(opt);
}


function ValidateEmail( email){
	var regStr = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if( !regStr.test(email)){
		alert("Vámi zadaná e-mailová adresa nemá platný formát.");
		return false;
	}
	return true;
}

function ValidateEmailNotStrict( email){
	if(email == '') return true;
	var regStr = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if( !regStr.test(email)){
		alert("Vámi zadaná e-mailová adresa nemá platný formát.");
		return false;
	}
	return true;
}

function notSpaces (checkedVar )
{
	var i = 0;
	for (j=0; j < checkedVar.length; j++)
	{
		if (checkedVar.charCodeAt(j) == 32) i++;
	}

	if (i >= 3)
	{
		return false;
	}
	else
	{
		return true;
	}

}

function ValidateNotEmpty(values)
{
	for(var i=0; i<values.length; i++){

		if(values[i] == '')
		{
			alert("Vyplňte prosím požadované údaje.");
			return false;
		}
	}
	return true;
}


function ValidateLength (values, minLength)
{
	for(var i=0; i<values.length; i++){

		if(values[i].length < minLength)
		{
			alert("Minimální počet znaků je "+minLength+".");
			return false;
		}
	}
	return true;
}

function ValidateAreNumbers( values  ){
	var regStr = /^(\d)+$/;
	for(var i=0; i<values.length; i++){
		if(!regStr.test(values[i])){
			alert("Do číselných polí prosím vložte nezáporné celé číslo.");
			return false;
		}
	}
	return true;
}

function ShowTooltip(e, tip)
{
	var posx = 0;
	var posy = 0;
	if (!e) var e = window.event;
	if (e.pageX || e.pageY)
	{
		posx = e.pageX;
		posy = e.pageY;
	}
	else if (e.clientX || e.clientY)
	{
		posx = e.clientX + document.documentElement.scrollLeft;
		posy = e.clientY + document.documentElement.scrollTop;
	}

	var tooltipBox = document.getElementById('tooltip');
	tooltipBox.innerHTML = tip;

	tooltipBox.style.top = (posy + 5) + "px";
	tooltipBox.style.left = (posx +5) + "px";
	tooltipBox.style.display = 'block';

}

function HideTooltip(){

	var tooltipBox = document.getElementById('tooltip');

	tooltipBox.style.display = 'none';
}


function validateMe(frm){


			return ValidateNotEmpty(new Array(frm.billing_entry_firstname.value, frm.billing_entry_lastname, frm.billing_entry_street_address.value, frm.billing_entry_city.value, frm.billing_entry_postcode.value, frm.customer_customers_telephone.value))
			//if(!ValidateNotEmpty(new Array(frm.billing_entry_firstname.value, frm.billing_entry_lastname, frm.billing_entry_street_address.value, frm.billing_entry_city.value, frm.billing_entry_postcode.value, frm.customer_customers_telephone.value))) return false;
			if(!ValidateEmail(frm.customer_customers_email_address.value)) return false;
		}



// pomocna funkce pro overeni polozky v poli
function inArray(inputArray, needle)
{
	for (j=0; j < inputArray.length; j++)
	{
		if (inputArray[j] == needle) return true;
	}

	return false;
}

// Pomocna funkce,
// resetuje polozky inputu a textarey pri odeslani, to je aby se napriklad neposilalo u nepovineho pole jeho vychozi value
function resetDefaultField (frm)
{
	// elementy formulare
	formElements = frm.elements;
	// postupne projdu elementy formulare
	for(i=0; i<formElements.length; i++)
	{
		// relevantni jsou pouze elementy input a textarea
		if (formElements[i].type == 'text' || formElements[i].type == 'textarea')
		{
			var classArray = formElements[i].className.split(" ");

			if (formElements[i].value == formElements[i].title && !inArray(classArray, 'required'))
			{
				formElements[i].value = '';
			}
		}
	}
}

// Pomocna funkce validace, kontroluje udaje title a value a kontroluje zda se lisi
function validateCorrectValue (frm)
{
	// elementy formulare
	formElements = frm.elements;
	// vychozi predpoklad ze je vse dobre
	var success = false;
	// postupne projdu elementy formulare

	for(i=0; i<formElements.length; i++)
	{
		// relevantni jsou pouze elementy input a textarea
		if (formElements[i].type == 'text' || formElements[i].type == 'textarea' || formElements[i].type == 'hidden')
		{
			var classArray = formElements[i].className.split(" ");

			if (formElements[i].value == formElements[i].title && inArray(classArray, 'required'))
			{
				success = true;
			}
			else if (formElements[i].value == formElements[i].title && !inArray(classArray, 'required'))
			{
				//formElements[i].value = '';
				//success = false;
			}
		}
	}
	return success;

}

function validateRecomend (frm)
{
	if(!ValidateEmail(frm.smail.value)) return false;
	if(!ValidateEmail(frm.rmail.value)) return false;
	return ValidateNotEmpty(new Array(frm.sname.value, frm.smail.value, frm.rname.value, frm.rmail.value))
}

function validateDemand (frm)
{
	if(!ValidateEmail(frm.dmail.value)) return false;
	return ValidateNotEmpty(new Array(frm.dmail.value,frm.dnote.value));
}

function changeStars(star, numero) {

	var ul = document.getElementById("ratings");
	var rattingsDB = document.getElementById("rating");

	if (ul.className == star+" rating") {

		ul.className = "star-rating";
		rattingsDB.value = 0;

	} else {
		ul.className = "rating-"+star+" star-rating";
		rattingsDB.value = numero;
	}
}

/*	Value switcher	*/
function valueSwitcher(element, eventE)
{

	titleE = element.title;
	valueE = element.value;
	idE	   = element.id;

	if (eventE == 'focus')
	{
		if (titleE == valueE)
		{
			document.getElementById(idE).value = '';
		}

	}
	else if (eventE == 'change')
	{
		if (valueE == '') document.getElementById(idE).value = titleE;
	}
	//console.debug(element);
	//console.info(element);
	//console.dir(element);
}

function formatNumber(num,dec,thou,pnt,curr1,curr2,n1,n2) {var x = Math.round(num * Math.pow(10,dec));if (x >= 0) n1=n2='';var y = (''+Math.abs(x)).split('');var z = y.length - dec; if (z<0) z--; for(var i = z; i < 0; i++) y.unshift('0'); if (z<0) z = 1; y.splice(z, 0, pnt); if(y[0] == pnt) y.unshift('0'); while (z > 3) {z-=3; y.splice(z,0,thou);}var r = curr1+n1+y.join('')+n2+curr2;return r;}


$(document).ready(function(){

	// externi linky
	$("#main-hlavni a").filter(function() {
	    return this.hostname && this.hostname !== location.hostname;
	}).addClass('external-link');


	$.ui.autocomplete.prototype._renderItem = function (ul, item) {
            item.label = item.label.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)(" + $.ui.autocomplete.escapeRegex(this.term) + ")(?![^<>]*>)(?![^&;]+;)", "gi"), "<strong>$1</strong>");
            return $("<li></li>")
                    .data("item.autocomplete", item)
                    .append("<span class='ui-autocomplete-category-not-root'>"+item.category+"</span>"+"<a href='"+item.url+"'>" + item.label + "</a>")
                    .appendTo(ul);
        };

	$.ui.autocomplete.prototype._renderMenu = function (ul, items) {

			var self = this,
			currentCategory = "";
			$.each( items, function( index, item ) {

				if ( item.category_root != currentCategory ) {

					ul.append( "<li class='ui-autocomplete-category'>" + item.category_root + "</li>" );
					currentCategory = item.category_root;
				}

				self._renderItem( ul, item );
			});

	};

	// hledani
	$("input#qsearch").autocomplete({

		source: function(req, add){

			$.getJSON("/ajax/fullTextSearch.php?customerType=1&callback=?", req, function(data) {

				var suggestions = [];
				$.each(data, function(i, val){
					suggestions.push(eval(val));
				});

				add(suggestions);
			});
		},
		minLength: 3,
		delay: 200,
		position: { my: "right top", at: "right bottom"},
		select: function(event, ui) {
			event.preventDefault();
			window.open(ui.item.url,"_self");
			return false;

		}

	});

	$("table#my_orders tr td div").hide();
	$("table#my_orders a").click(function () {

		var className = $(this).attr("rel");
		if ($("div."+className).css("display") == "none") {

			$("div."+className).slideDown("slow");

		} else {

			$("div."+className).slideUp("slow");

		}

	});

	// mena v kosiku
	$("#state").change(function() {

		$("#doAction").val("setCurrency");
		$("#frm_payment").submit();
		alert("Měna nákupního košíku byla změněna.");

	});

	$("#daState").change(function() {

		$("#doAction").val("setCurrencyDa");
		$("#frm_payment").submit();
		alert("Měna nákupního košíku byla změněna.");

	});

	// doprava pro kosik
	$("#payment").change(function(){

		if ($("input[name=currency]").val() == "CZK") {
			var finalPrice = formatNumber(parseInt($("input[name='iTotalPrice']").val()) + parseInt($(this+":selected").attr("class")),0," ","","","");
		} else {
			var finalPrice = formatNumber(parseFloat($("input[name='iTotalPrice']").val(),2) + parseFloat($(this+":selected").attr("class"),2),2," ",",","","");
		}
		$("tr.summaryBtm td.price").remove();
		$("tr.summaryBtm").append($("<td>").attr({'class': "price"}).html(finalPrice+" <span class='currency'>"+$("input[name='currency2']").val()+"</span>"));

	});

	$("#payment").change(function() {

		$("input[name=shipping]").val($(this).val());

	});

	$(".states").change(function() {

		//meni se stat na fakturacni adrese, overeni jestli je zvolena jina dodaci
		if ($("#deliveryAddressBox").css("display")=="block") {
			selectedCountry = $("#daState").val();

		} else selectedCountry = $(this).val();

		var payment = $("#payment");
		$("#payment option").remove();

		var idCustomersType = $("input[name='idCustomersType']").val();

		var largeProductInCart = $("input[name='largeProductInCart']").val();
		var iTotalPrice = $("input[name='iTotalPrice']").val();
		var currency = $("input[name='currency']").val();
		var currency2 = $("input[name='currency2']").val();

		$.get('./ajax/getShipping.php',{ idCustomersType: idCustomersType, selectedCountry: selectedCountry, largeProductInCart: largeProductInCart, iTotalPrice: iTotalPrice, currency: currency }, function(data){

			$(data).find('ITEM').each(function(){

				var id = $(this).attr('id');
				var title = $(this).text();
				var price = $(this).attr('price');
				payment.append($("<option>").attr({"class": price, value: id}).text(title));

			});
			var priceShipping = $(data).find('PRICE').text();
			var finalPrice = formatNumber(parseInt(iTotalPrice) + parseInt(priceShipping),0," ","","","");

			$("tr.summaryBtm td.price").remove();
			$("tr.summaryBtm").append($("<td>").attr({'class': "price"}).html(finalPrice+" <span class='currency'>"+currency2+"</span>"));
			$("input[name=shipping]").val($("#payment option:first").val());
		});
	});

	// karta produktu
	$(".tabWrapper:last").hide();
	$("#tabs li a").click(function () {

		$(".tabWrapper").stop();
		$(".tabWrapper").hide();
		$("#tabs li.active").removeClass("active");
		$(this).parent("li").addClass("active");
		$("#"+$(this).attr("rel")+"Wrapper").fadeIn();

	});

	$("#dmail").focus(function(){ if ($(this).val() == "povinný údaj") $(this).val("");});
	$("#dmail").blur(function(){ if ($(this).val() == "") $(this).val("povinný údaj");});

	$(".galleryImage").colorbox({
		width : '67%',
		height : '75%'

	});
	$("#frm_reenter_pwd").hide();
	$("#obchodni-podminky-box").hide();
	$("#zobraz-obchodni-podminky").toggle(
		function () {
			$('#obchodni-podminky-box').slideDown("slow");
		},
		function () {
			$('#obchodni-podminky-box').slideUp("slow");
		});
              $(".cetelem").css("display","none");

                if ($("#payment option:selected").text().search("Cetelem")>0) {
                    $(".cetelem").css("display","block");
                    $("#notice").css("dislay","block");
                    $(".wide_main_bg").css("display","none");
                    $("#cetel").val(1);

                } else {

                    $(".cetelem").css("display","none");
                    $("#notice").css("display","none");
                    $(".wide_main_bg").css("display","block");
                    $("#cetel").val(0);
                }


          });


	// leva nabidka aut
	$(function () {
		$('#anythingSlider').anythingSlider({
			easing: "swing",
			autoPlay: true,
			startStopped: false,
			delay: 4000,
			animationTime: 1000,
			hashTags: false,
			buildNavigation: false,
			pauseOnHover: true,
			startText: "",
			stopText: "",
			buildArrows: false,
			navigationFormatter: null

		});
	});


