/**
 * MATESIONE library 
 * version: 1.2 
 **/
function id(name){return document.getElementById(name);}
function tag(name,element){return(element||document).getElementsByTagName(name);}
function className(name,element){var classRegular=new RegExp("(^|\\s)"+name+"(\\s|$)");var allTags=tag("*",element);var classField=[];var y=0;for(var x=0;x<allTags.length;x++){if(classRegular.test(allTags[x].className)){classField.push(allTags[x]);}}
return classField;}
function hasClass(element,className){var classRegular=new RegExp("(^|\\s)"+className+"(\\s|$)");if(classRegular.test(element.className))
return true;else
return false;}
function addClass(element,className){var classRegular=new RegExp("(^|\\s)"+className+"(\\s|$)");if(!classRegular.test(element.className)){if(element.className=="")
element.className=className;else
element.className+=" "+className;}}
function removeClass(element,className){var classRegular=new RegExp("(^|\\s)"+className+"(\\s|$)");if(element.className==className){element.className="";}else{var tempClass=element.className;var newClass=tempClass.replace(classRegular,"");element.className=newClass;}}
function addEvent(obj,type,fn){if(obj.attachEvent){obj['e'+type+fn]=fn;obj[type+fn]=function(){obj['e'+type+fn](window.event);}
obj.attachEvent('on'+type,obj[type+fn]);}else
obj.addEventListener(type,fn,false);}
function removeEvent(obj,type,fn){if(obj.detachEvent){obj.detachEvent('on'+type,obj[type+fn]);obj[type+fn]=null;}else
obj.removeEventListener(type,fn,false);}
function domReady(f){if(domReady.done)return f();if(domReady.timer){domReady.ready.push(f);}else{addEvent(window,"load",isDomReady);domReady.ready=[f];domReady.timer=setInterval(isDomReady,13);}}
function isDomReady(){if(domReady.done)return false;if(document&&document.getElementsByTagName&&document.getElementById&&document.body){clearInterval(domReady.timer);domReady.timer=null;for(var i=0;i<domReady.ready.length;i++){domReady.ready[i]();}
domReady.ready=null;domReady.done=true;}}
function prev(element){do{element=element.previousSibling;}while(element&&element.nodeType!=1)
return element;}
function next(element){do{element=element.nextSibling;}while(element&&element.nodeType!=1)
return element;}
function first(element){element=element.firstChild;return element&&element.nodeType!=1?next(element):element;}
function last(element){element=element.lastChild;return element&&element.nodeType!=1?prev(element):element;}
function parent(element,number){number=number||1;for(var i=0;i<number;i++){if(element!=null)element=element.parentNode;}
return element;}
function add(element){return document.createElementNS?document.createElementNS('http://www.w3.org/1999/xhtml',element):document.createElement(element);}
function remove(element){if(element)element.parentNode.removeChild(element);}
function truncate(element){while(element.firstChild)
remove(element.firstChild)}
function overElement(element){var r=[];if(element.constructor!=Array)element=[element];for(var i=0;i<element.length;i++){if(element[i].constructor==String){var div=add("div");div.innerHTML=element[i];for(var j=0;j<div.childNodes.length;j++)
r[r.length]=div.childNodes[j];}else if(element[i].length){for(var j=0;j<element[i].length;j++)
r[r.length]=element[i][j];}else{r[r.length]=element[i];}}
return r;}
function before(parent,prev,element){if(element==null){element=prev;prev=parent;parent=prev.parentNode;}
var elements=overElement(element);for(var i=elements.length-1;i>=0;i--){parent.insertBefore(elements[i],prev);}}
function append(parent,element){var elements=overElement(element);for(var i=0;i<elements.length;i++){parent.appendChild(elements[i]);}}
function readCss(element,name){if(element.style[name])
return element.style[name];else if(element.currentStyle)
return element.currentStyle[name];else if(document.defaultView&&document.defaultView.getComputedStyle){name=name.replace(/([A-Z])/g,"-$1");name=name.toLowerCase();var s=document.defaultView.getComputedStyle(element,"");return s&&s.getPropertyValue(name);}else
return null;}
function posX(element){return parseInt(readCss(element,"left"));}
function posY(element){return parseInt(readCss(element,"top"));}
function setX(element,position){element.style.left=position+"px";}
function setY(element,position){element.style.top=position+"px";}
function addX(element,position){setX(element,posX(element)+position);}
function addY(element,position){setY(element,posY(element)+position);}
function setOpacity(element,level){if(window.ActiveXObject)
element.style.filter='alpha(opacity='+level+')';else
element.style.opacity=level/100;}
function show(element){element.style.display="block";}
function hide(element){element.style.display="none";}
function fadeIn(element){setOpacity(element,0);show(element);for(var i=0;i<=100;i+=5){(function(){var position=i;setTimeout(function(){setOpacity(element,position);},(position+1)*8);})();}}
function fadeOut(element){setOpacity(element,100);show(element);for(var i=100;i>=0;i-=5){(function(){var position=i;setTimeout(function(){setOpacity(element,position);if(position==0)hide(element);},(100-position+1)*8);})();}}
function ajax(options){options={type:options.type||"",url:options.url||"",method:options.method||"GET",timeout:options.timeout||5000,onComplete:options.onComplete||function(){},onError:options.onError||function(){},onSuccess:options.onSuccess||function(){},data:options.data||null};if(typeof XMLHttpRequest=="undefined"){XMLHttpRequest=function(){return new ActiveXObject(navigator.userAgent.indexOf("MSIE 5")>=0?"Microsoft.XMLHTTP":"Msxml2.XMLHTTP");};}
var xml=new XMLHttpRequest();if(options.method=="GET"){if(options.data==null){var connection=options.url;}else{var connection=options.url+"?"+options.data;}
xml.open(options.method,connection,true);}else{xml.open(options.method,options.url,true);}
var requestDone=false;setTimeout(function(){requestDone=true;},options.timeout);xml.onreadystatechange=function(){if(xml.readyState==4&&!requestDone){if(httpSuccess(xml)){options.onSuccess(httpData(xml,options.type));}else{options.onError();}
options.onComplete();xml=null;}};if(options.method!="GET"){xml.setRequestHeader("Content-Type","application/x-www-form-urlencoded");if(xml.overrideMimeType)
xml.setRequestHeader("Connection","close");xml.send(options.data);}else{xml.send(null);}
function httpSuccess(r){try{return!r.status&&location.protocol=="file:"||(r.status>=200&&r.status<300)||r.status==304||navigator.userAgent.indexOf("Safari")>=0&&typeof r.status=="undefined";}catch(e){}
return false;}
function httpData(r,type){var ct=r.getResponseHeader("Content-Type");var data=!type&&ct&&ct.indexOf("xml")>=0;data=type=="xml"||data?r.responseXML:r.responseText;if(type=="script")
eval.call(window,data);return data;}}
function isMail(mail){var pattern_mail=/\S+@\S+\.\w{2,3}$/;if(pattern_mail.test(mail))
return true;else
return false;}
function isPhone(phone){var pattern_phone=/^(\+420\s*)?[1-7](\s*\d\s*){8}$/;if(pattern_phone.test(phone))
return true;else
return false;}
function isZipcode(zipcode){var pattern_zipcode=/^[0-9]{3} ?[0-9]{2}$/;if(pattern_zipcode.test(zipcode))
return true;else
return false;}
domReady(function(){var targetblanks=className("targetblank");for(var i=0;i<targetblanks.length;i++){targetblanks[i].onclick=function(){if(typeof(window.open(this.href))=="object")return false;}}
var default_border="1px solid #fff";var check_val=function()
{var go_thru=true;var go_thru_mail=true;var go_thru_phone=true;var go_thru_zipcode=true;var go_thru_mail_or=true;var go_thru_phone_or=true;var inputs=this.getElementsByTagName("input");for(var z=0;z<inputs.length;z++)
{var classRegular=new RegExp("(^|\\s)"+"check-is-blank"+"(\\s|$)");if(classRegular.test(inputs[z].className))
{inputs[z].style.border=default_border;if(inputs[z].value=="")
{go_thru=false;inputs[z].style.border="1px solid red";}}
var classRegular=new RegExp("(^|\\s)"+"check-is-checked"+"(\\s|$)");if(classRegular.test(inputs[z].className))
{inputs[z].style.border="none";if(inputs[z].checked!=true)
{go_thru=false;inputs[z].style.border="1px solid red";}}
var classRegular=new RegExp("(^|\\s)"+"check-is-mail"+"(\\s|$)");if(classRegular.test(inputs[z].className))
{inputs[z].style.border=default_border;if(!(isMail(inputs[z].value)))
{go_thru_mail=false;inputs[z].style.border="1px solid red";}}
var classRegular=new RegExp("(^|\\s)"+"check-is-phone"+"(\\s|$)");if(classRegular.test(inputs[z].className))
{inputs[z].style.border=default_border;if(!(isPhone(inputs[z].value)))
{go_thru_phone=false;inputs[z].style.border="1px solid red";}}
var classRegular=new RegExp("(^|\\s)"+"try-is-mail-or"+"(\\s|$)");if(classRegular.test(inputs[z].className))
{inputs[z].style.border=default_border;if(!(isMail(inputs[z].value)))
{go_thru_mail_or=false;inputs[z].style.border="1px solid red";}
for(var q=0;q<inputs.length;q++)
{var classRegular=new RegExp("(^|\\s)"+"try-is-phone-or"+"(\\s|$)");if(classRegular.test(inputs[q].className))
{inputs[q].style.border=default_border;if(!((go_thru_mail_or==true)&&(inputs[q].value=='')))
{if(!(isPhone(inputs[q].value)))
{go_thru_phone_or=false;inputs[q].style.border="1px solid red";}}
if((go_thru_mail_or==false)&&(inputs[z].value==''))
{if(!(isPhone(inputs[q].value)))
{go_thru_phone_or=false;inputs[q].style.border="1px solid red";}
else
{inputs[z].style.border=default_border;go_thru_mail_or=true;}}}}}
var classRegular=new RegExp("(^|\\s)"+"check-is-zipcode"+"(\\s|$)");if(classRegular.test(inputs[z].className))
{inputs[z].style.border=default_border;if(!(isZipcode(inputs[z].value)))
{go_thru_zipcode=false;inputs[z].style.border="1px solid red";}}}
var select=this.getElementsByTagName("select");for(var z=0;z<select.length;z++)
{var classRegular=new RegExp("(^|\\s)"+"check-is-selected-first"+"(\\s|$)");if(classRegular.test(select[z].className))
{select[z].style.background="#ffffff";if(select[z].options[0].selected==true)
{go_thru=false;select[z].style.background="red";}}}
var textareas=this.getElementsByTagName("textarea");for(var z=0;z<textareas.length;z++)
{var classRegular=new RegExp("(^|\\s)"+"check-is-blank"+"(\\s|$)");if(classRegular.test(textareas[z].className))
{textareas[z].style.border=default_border;if(textareas[z].value=="")
{go_thru=false;textareas[z].style.border="1px solid red";}}}
var message="";if(go_thru_phone_or==false&&go_thru_mail_or==false)message+="Zadejte E-mail nebo Telefoní číslo!! \n";else if(go_thru_phone_or==true&&go_thru_mail_or==false)message+="Zadejte E-mail ve správném tvaru!! \n";else if(go_thru_phone_or==false&&go_thru_mail_or==true)message+="Zadejte Telefoní číslo ve správném tvaru!! \n";if(go_thru_mail==false)message+="Zadejte E-mail ve správném tvaru!! \n";if(go_thru_phone==false)message+="Zadejte Telefoní číslo ve správném tvaru!! \n";if(go_thru_zipcode==false)message+="Zadejte PSČ ve správném tvaru!! \n";if(go_thru==false)message+="Musíte vyplnit všechny povinné údaje označené hvězdičkou!! \n";if(message=="")
{return true;}
else
{alert(message);return false;}};var forms=document.getElementsByTagName("form");for(var x=0;x<forms.length;x++)
{var classRegular=new RegExp("(^|\\s)"+"form-validation"+"(\\s|$)");if(classRegular.test(forms[x].className))
{forms[x].onsubmit=check_val;}}});
