function trim(x){return x.replace(/^\s+|\s+$/g,'');}
function _aEv(obj, type, fn) { try { if (obj.addEventListener) { obj.addEventListener(type, fn, false); } else 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]); }} catch (e) {}}
function _gOb(n) { return document.getElementById(n); }
function _gBTC(obj, tag, clName) { var objs = obj.getElementsByTagName(tag); var robj = new Array(); var j = 0; for (var i = 0; i < objs.length; i++) { if (_hCl(objs[i], clName)) robj[j++] = objs[i]; }; return robj; }
function _hCl(obj, clName) { var clN = ' ' + obj.className + ' '; return (clN.match(' ' + clName + ' ') != null); }
function _aCl(obj, clName) { if (_hCl(obj, clName)) return; obj.className = trim(obj.className + ' ' + clName); }
function _rCl(obj, clName) { if (!_hCl(obj, clName)) return; var clN = ' ' + obj.className + ' '; eval("obj.className = trim(clN.replace(/ " + clName + " /g,''));"); }

function quizInitialize() {
  _aEv(_gOb('quizForm'), 'submit', quizCheck);
  var _quizBody = _gOb('quizBody');
  if(_quizBody){
    var questions = _quizBody.getElementsByTagName('ul');
    for (var j = 0; j < questions.length; j++) {
      var answers = questions[j].getElementsByTagName('li');
      for (var i = 0; i < answers.length; i++) {
        _aEv(answers[i], 'click', quizCheckOption);
        var spans = answers[i].getElementsByTagName('span');
        var inputs = answers[i].getElementsByTagName('input');
        var divs = answers[i].getElementsByTagName('div');
        var imgs = answers[i].getElementsByTagName('img');
        spans[0].index = -1;
        inputs[0].index = -1;
        if (divs.length > 0) divs[0].index = -1;
        if (imgs.length > 0) imgs[0].index = -1;
        inputs[0].checked = false;
        answers[i].index = i;
        answers[i].style.cursor = 'pointer';
        answers[i].ntype = 'li';
        answers[i].myParent = questions[j];
        if(_hCl(questions[j], 'wide')){
    	    inputs[0].style.marginTop = Math.round(((divs[0].offsetHeight-6)/2)-(inputs[0].offsetHeight/2)) + "px";
    	    if(spans[0].offsetHeight < (answers[i].offsetHeight-6)/2) spans[0].style.marginTop = Math.round((divs[0].offsetHeight-6)/2)-6 + "px";
        }
      }
      questions[j].index = -1;
    }
  }
  var _quizLogin = _gBTC(_gOb('quiz'), 'div', 'quizLogin')[0];
  if(_quizLogin){
    var _loginForm = _quizLogin.getElementsByTagName('form')[0];
    if(_loginForm) {
      var _input_email = _gBTC(_loginForm, 'input', 'iTxt')[0];
      _aEv(_input_email, 'focus', hideDefaultEmailText);
      _aEv(_input_email, 'blur', showDefaultEmailText);
      _aEv(_loginForm, 'submit', emailCheck);
    }
  }
}

function quizCheckOption(e) {
  var el;
  if (window.event && window.event.srcElement) { el = window.event.srcElement; }
  if (e && e.target) { el = e.target; }
  if (!el) { return; }

  while (el.index == -1) el = el.parentNode;
  if (!_hCl(el, 'sel')) {
    var inputs = el.getElementsByTagName('input');
    _aCl(el, 'sel');

    if (el.myParent.index > -1) {
      var lis = el.myParent.getElementsByTagName(el.ntype);
      var k = 0;
      for (var i = 0; i < lis.length; i++) {
        if (_hCl(lis[i], 'ans')) {
          if (k == el.myParent.index) {
            _rCl(lis[i], 'sel');
            break;
          }
          k++;
        }
      }
    }

    el.myParent.index = el.index;
    inputs[0].checked = true;
  }

}

function quizCheck(e) {
 var el; if (window.event && window.event.srcElement) { el = window.event.srcElement; }; if (e && e.target) { el = e.target; }; if (!el) { return; };   (e.preventDefault) ? e.preventDefault() : (e.returnValue = false);
 var questions = _gOb('quizBody').getElementsByTagName('ul');
 var msg = '';
 var _err = 0;
 for (var j = 0; j < questions.length; j++) {
  var answers = questions[j].getElementsByTagName('li');
  var isSelected = 0;
  for (var i = 0; i < answers.length; i++){
   var inputs = answers[i].getElementsByTagName('input');
   if(questions.length == 1){
    if(inputs[0].checked) {el.submit(); isSelected = 1;}
    if(i == answers.length-1 && !isSelected) alert('Proszę odpowiedzieć na pytanie!');      	
   }
   if(questions.length > 1){
   	if(inputs[0].checked) break;
   	if(i == answers.length-1) { msg += (j+1) + " "; _err++; }
   }
  }
  if(questions.length > 1 && j == questions.length-1){
   if (_err == 0) el.submit();
   if(j == questions.length-1 && _err > 0) {
    if(_err == 1) alert('Proszę odpowiedzieć na pytanie: ' + msg + '!');
    if(_err > 1) alert('Proszę odpowiedzieć na pytania: ' + msg + '!');
   }
  }
 }
}

function emailCheck(e) {
 var el; if (window.event && window.event.srcElement) { el = window.event.srcElement; }; if (e && e.target) { el = e.target; }; if (!el) { return; }; 
 var _input_email = _gBTC(el, 'input', 'iTxt')[0];
 if((trim(_input_email.value) == 'wpisz swój e-mail') || (trim(_input_email.value) == '')) return;
 if(!validate_email(trim(_input_email.value))) (e.preventDefault) ? e.preventDefault() : (e.returnValue = false);
}

function hideDefaultEmailText(e) {
 var el; if (window.event && window.event.srcElement) { el = window.event.srcElement; }; if (e && e.target) { el = e.target; }; if (!el) { return; };   
 if(trim(el.value) == 'wpisz swój e-mail') el.value='';
}

function showDefaultEmailText(e) {
 var el; if (window.event && window.event.srcElement) { el = window.event.srcElement; }; if (e && e.target) { el = e.target; }; if (!el) { return; };   
 if(trim(el.value) == '') el.value='wpisz swój e-mail';
}

function validate_email(email) {
   var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
   if(reg.test(email) == false) {
      alert('Nieprawidłowy adres e-mail');
      return false;
   }else{
    return true;
   }
}

_aEv(window, 'load', quizInitialize);
