function saveCookie(name,value,days) {
	if (days) {
		var date=new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000))
		var expires="; expires="+date.toGMTString()
	} else expires=""
	document.cookie=name+"="+value+expires+"; path=/"
}
function readCookie(name) {
	var nameEQ=name+"="
	var ca=document.cookie.split(';')
	for(var i=0;i<ca.length;i++) {
		var c=ca[i];
		while (c.charAt(0)==' ') c=c.substring(1,c.length)
		if (c.indexOf(nameEQ)==0) return c.substring(nameEQ.length,c.length)
	}
	return null
}
function deleteCookie(name) {
	saveCookie(name,"",-1)
}
 //zc z url vytvori pole, tak sa da pristupovat k jednotlivym premenam s url (GET)
        var pole = window.location.search.substr(1).split("&"); 
        var httpGetVars = new Array(); 
        for(i = 0; i < pole.length; i++){
        	httpGetVars[pole[i].split("=")[0]] = unescape(pole[i].split("=")[1]);  
        }
      //ak existuje tak ju ulozi 
if(httpGetVars["locale"]=='cs' || httpGetVars["locale"]=='en' || httpGetVars["locale"]=='de' || httpGetVars["locale"]=='fr' || httpGetVars["locale"]=='es' || httpGetVars["locale"]=='ru' || httpGetVars["locale"]=='it') saveCookie("locale",httpGetVars["locale"],2);
//
// najde první textový nereadonly ani nedisabled input a focusne ho
//
function focusRelevantInput() {
 if ( document.forms[0] ) {
  for ( var j = 0; j < document.forms[0].elements.length; j++) {
   if (document.forms[0].elements[j].name
   && !document.forms[0].elements[j].getAttribute('readonly')
   && document.forms[0].elements[j].type == 'text' ) {
    document.forms[0].elements[j].focus();
    break
   }
  }
 }
}
//
// myfalidate([formulář=objekt],[class povinných inputů=string])
// předpokládá, že všechny testované inputy mají vlastního parenta (např <p>)
// testované inputy musí mít jako první class [reqInputClassName]
// v druhém classu může být konkrétní typ (number|date|email|string)
// přidané je testování vypnlěnosti "jedné z" (pouze pro jedinou skupinu)
// warning se vypíše do (prvního) tagu ([warningTagName]) v daném kontejneru
//
function myfalidate(thisForm,reqInputClassName) {
 if ( !thisForm ) { return }
 reqInputClassName = reqInputClassName || 'required';
 var warningTagName = 'strong';
 var result = true;
 var oneOfCnt = 0;
 var oneOfCntValue = 0;
 var oneOfTxtBuffer = [];
 var allUsedClassesRX = new RegExp('(' + reqInputClassName + '|email|date|number|oneOf|mustBeChecked)');
 for( var i = 0; i < thisForm.elements.length; i++) {
  curr = thisForm.elements[i];
  if ( !allUsedClassesRX.test(curr.className) ) {
   continue
  }
  currClassNames = curr.className.split(/\s+/);
  // přidáme prázdný / vymažeme warning
  clearWarning(curr);
  for ( var j = 0; j < currClassNames.length; j++) {
   currClassName = currClassNames[j];
   if ( currClassName == 'oneOf' ) {
    oneOfTxtBuffer.push(
     curr.parentNode.getElementsByTagName('label')[0].innerHTML.replace(/\W+$/,'')
    )
    oneOfCnt++;
   }
   if ( curr.value.length > 0 ) {
    if ( currClassName == 'email' ) {
     if ( !jcv_checkEmail(curr.value) ) {
      setWarning(curr,'Nevalidní email.');
     }
    } else if ( currClassName == 'number' ) {
     if ( curr.value.search(/^\d+$/) == -1 ) {
      setWarning(curr,'Nesprávný formát čísla.');
     }
    } else if ( currClassName == 'date' ) {
     if ( curr.value.search(/^\d\d\.\d\d\.\d\d\d\d$/) == -1 ) {
      setWarning(curr,'Nesprávný formát datumu. (dd.mm.yyyy)');
     }
    } else if ( currClassName == 'oneOf' ) {
     oneOfCntValue++;
    }
   } else {
    if ( currClassName == reqInputClassName
    // +BASTL:
       && !/(^|\s+)oneOf(\s+|$)/.test(curr.className)
    // /+bastl
       ) {
     setWarning(curr,'Musí být vyplněn.');
    }
   }
   if ( currClassName == 'mustBeChecked' ) {
    if ( curr.checked == false ) {
     setWarning(curr,'Musí být odškrtnut. ');
    }
   }
  }
 }
 if ( oneOfCnt > 0 && oneOfCntValue == 0 ) {
  for( var i = 0; i < thisForm.elements.length; i++) {
   curr = thisForm.elements[i];
   currClassNames = curr.className.split(/\s+/);
   for ( var j = 0; j < currClassNames.length; j++) {
    currClassName = currClassNames[j];
    if ( currClassName == 'oneOf' ) {
     setWarning(curr,'Vyplňte alespoň jeden.' + oneOfTxtBuffer.join(', ') + '.' );
    }
   }
  }
 }
 // přidá text [str] za [obj]ekt do tagu [warningTagName] (viz začátek)
 function setWarning(obj,str) {
  obj.parentNode.getElementsByTagName(warningTagName)[0].innerHTML = str;
  result = false;
 }
 function clearWarning(obj) {
  if ( obj.parentNode.getElementsByTagName(warningTagName).length == 0 ) {
   var novyObj = document.createElement(warningTagName);
   obj.parentNode.appendChild(novyObj);
  }
  obj.parentNode.getElementsByTagName(warningTagName)[0].innerHTML = '';
 }
 return result
}
//
// Reference: Sandeep V. Tamhankar (stamhankar@hotmail.com),
// http://javascript.internet.com
//
function jcv_checkEmail(emailStr) {
    if (emailStr.length == 0) {
        return true;
    }
    // TLD checking turned off by default
    var checkTLD=0;
    var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
    var emailPat=/^(.+)@(.+)$/;
    var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
    var validChars="\[^\\s" + specialChars + "\]";
    var quotedUser="(\"[^\"]*\")";
    var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
    var atom=validChars + '+';
    var word="(" + atom + "|" + quotedUser + ")";
    var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
    var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
    var matchArray=emailStr.match(emailPat);
    if (matchArray==null) {
        return false;
    }
    var user=matchArray[1];
    var domain=matchArray[2];
    for (i=0; i<user.length; i++) {
        if (user.charCodeAt(i)>127) {
            return false;
        }
    }
    for (i=0; i<domain.length; i++) {
        if (domain.charCodeAt(i)>127) {
            return false;
        }
    }
    if (user.match(userPat)==null) {
        return false;
    }
    var IPArray=domain.match(ipDomainPat);
    if (IPArray!=null) {
        for (var i=1;i<=4;i++) {
            if (IPArray[i]>255) {
                return false;
            }
        }
        return true;
    }
    var atomPat=new RegExp("^" + atom + "$");
    var domArr=domain.split(".");
    var len=domArr.length;
    for (i=0;i<len;i++) {
        if (domArr[i].search(atomPat)==-1) {
            return false;
        }
    }
    if (checkTLD && domArr[domArr.length-1].length!=2 &&
        domArr[domArr.length-1].search(knownDomsPat)==-1) {
        return false;
    }
    if (len<2) {
        return false;
    }
    return true;
}

