var minMax = new Array(); //do przechowywania minimalnej i maksymalnej ilości
//punktów, jakie można uzyskać za wszystkie odpowiedzi dla danej partii
var DISPLACE = 1; //przesunięcie punktacji, aby nie było ujemnych wartości

function loadXMLDoc(xmlFile) {
  /* Ładuje treść pliku xml. */
  try { //Internet Explorer
    var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
  } catch(e) {
    try { //Firefox, Mozilla, Opera, Safari, Google Chrome, etc.
      var xmlhttp = new window.XMLHttpRequest();
      xmlhttp.open("GET", xmlFile, false);
      xmlhttp.send(null);
      var xmlDoc = xmlhttp.responseXML.documentElement;
      return xmlDoc;
    } catch(e) {alert(e.message)}
  }
  try {
    xmlDoc.async = false;
    xmlDoc.load(xmlFile);
    return(xmlDoc);
  } catch(e) {alert(e.message)}
  return(null);
}

function loadXMLQuestionPoll() {
  xmlDoc = loadXMLDoc("xml/question_poll.xml");
  x = xmlDoc.getElementsByTagName("question_poll");
  var question_poll = new Array();
  for (var i = 0; i < x.length; i++) {
	var question_poll_id = x[i].getElementsByTagName("question_poll_id");
	var question = x[i].getElementsByTagName("question");
	/* Indeks tabeli to id pytania, któremu odpowiada treść pytania w zawartości tabeli. */
	question_poll[question_poll_id[0].childNodes[0].nodeValue] = question[0].childNodes[0].nodeValue;
  }
  return question_poll;
}

function loadXMLAnswerQuestionPoll() {
  xmlDoc = loadXMLDoc("xml/answer_question_poll.xml");
  x = xmlDoc.getElementsByTagName("answer_question_poll");
  var answer_question_poll = new Array();
  for (var i = 0; i < x.length; i++) {
	var question_poll_id = x[i].getElementsByTagName("question_poll_id");
	var answer_id = x[i].getElementsByTagName("answer_id");
	var position = x[i].getElementsByTagName("position");
	if (!answer_question_poll[question_poll_id[0].childNodes[0].nodeValue]) {
	  answer_question_poll[question_poll_id[0].childNodes[0].nodeValue] = new Array();
	}
	/* Indeks tabeli to id pytania i kolejność odpowiedzi, któremu odpowiada id odpowiedzi w zawartości tabeli. */
	answer_question_poll[question_poll_id[0].childNodes[0].nodeValue][position[0].childNodes[0].nodeValue] = answer_id[0].childNodes[0].nodeValue;
  }
  return answer_question_poll;
}

function loadXMLAnswers() {
  xmlDoc = loadXMLDoc("xml/answers.xml");
  x = xmlDoc.getElementsByTagName("answers");
  var answers = new Array();
  for (var i = 0; i < x.length; i++) {
	var answer_id = x[i].getElementsByTagName("answer_id");
	var answer_option = x[i].getElementsByTagName("answer_option");
	/* Indeks tabeli to id odpowiedzi, któremu odpowiada treść odpowiedzi w zawartości tabeli. */
	answers[answer_id[0].childNodes[0].nodeValue] = answer_option[0].childNodes[0].nodeValue;
  }
  return answers;
}

function Party(party_id, party_code, party_name) {
  /* Klasa zawierajaca dane partii (komitetu): id, nazwę i kod partii (komitetu). */
  this.party_id = party_id;
  this.party_code = party_code;
  this.party_name = party_name;
}

function loadXMLParties() {
  xmlDoc = loadXMLDoc("xml/parties.xml");
  x = xmlDoc.getElementsByTagName("parties");
  var parties = new Array();
  for (var i = 0; i < x.length; i++) {
	var party_id = x[i].getElementsByTagName("party_id");
	var party_code = x[i].getElementsByTagName("party_code");
	var party_name = x[i].getElementsByTagName("party_name");
	var party = new Party(party_id[0].childNodes[0].nodeValue, party_code[0].childNodes[0].nodeValue, party_name[0].childNodes[0].nodeValue);
	/* Indeks tabeli to id partii (komitetu), któremu odpowiada klasa Party w zawartości tabeli. */
	parties[party.party_id] = party;
  }
  return parties;
}

function AnswerParty(question_poll_id, party_id, answer_id, explanation) {
  /* Klasa zawierająca odpowiedzi partii (komitetu) i ewentualne komentarze do pytania. */
  this.question_poll_id = question_poll_id;
  this.party_id = party_id;
  this.answer_id = answer_id;
  this.explanation = explanation;
}

function loadXMLAnswersParties() {
  xmlDoc = loadXMLDoc("xml/answers_parties.xml");
  x = xmlDoc.getElementsByTagName("answers_parties");
  var answers_parties = new Array();
  for (var i = 0; i < x.length; i++) {
    var question_poll_id = x[i].getElementsByTagName("question_poll_id");
	var party_id = x[i].getElementsByTagName("party_id");
	var answer_id = x[i].getElementsByTagName("answer_id");
	var explanation = x[i].getElementsByTagName("explanation");
	var answer_party;
	if (explanation[0].childNodes[0]) {
	  var answer_party = new AnswerParty(question_poll_id[0].childNodes[0].nodeValue, party_id[0].childNodes[0].nodeValue,
		  answer_id[0].childNodes[0].nodeValue, explanation[0].childNodes[0].nodeValue);
	} else {
	  var answer_party = new AnswerParty(question_poll_id[0].childNodes[0].nodeValue, party_id[0].childNodes[0].nodeValue,
		  answer_id[0].childNodes[0].nodeValue, "");
	}
	if (!answers_parties[answer_party.question_poll_id]) {
	  answers_parties[answer_party.question_poll_id] = new Array();
	}
	/* Indeks tabeli to id pytania i id partii (komitetu), któremu odpowiada klasa AnswerParty w zawartości tabeli. */
	answers_parties[answer_party.question_poll_id][answer_party.party_id] = answer_party;
  }
  return answers_parties;
}

function loadXMLAnswersPoints() {
  xmlDoc = loadXMLDoc("xml/answers_points.xml");
  x = xmlDoc.getElementsByTagName("answers_points");
  var answers_points = new Array();
  for (var i = 0; i < x.length; i++) {
	var voter_answer = x[i].getElementsByTagName("voter_answer");
	var party_answer = x[i].getElementsByTagName("party_answer");
	var points = x[i].getElementsByTagName("points");
	if (!answers_points[voter_answer[0].childNodes[0].nodeValue]) {
	  answers_points[voter_answer[0].childNodes[0].nodeValue] = new Array();
	}
	/* Indeks tabeli to id odpowiedzi wyborcy i id odpowiedzi partii (komitetu), któremu w zawartości tabeli odpowiada ilość punktów za taki zestaw odpowiedzi. */
	answers_points[voter_answer[0].childNodes[0].nodeValue][party_answer[0].childNodes[0].nodeValue] = points[0].childNodes[0].nodeValue;
  }
  return answers_points;
}

function displayQuestionPoll() {
  /* Wyświetla pytania i opcje odpowiedzi. */
  var question_poll = loadXMLQuestionPoll();
  var answer_question_poll = loadXMLAnswerQuestionPoll();
  var answers = loadXMLAnswers();
  var k = 1;
  for (var j in question_poll) {
	document.write("<div id=\"question" + j + "\" class=\"question\">");
	document.write("<h3><span>" + k + ".&nbsp; </span>" + question_poll[j] + "</h3>");
	document.write("<ul>");
	var tabTemp = new Array();
	var r = 0;
	for (var m in answer_question_poll[j]) {
	  tabTemp[r] = m;
	  r++;
	}
	tabTemp.sort();
	for (var n in tabTemp) {
  	  if (answers[answer_question_poll[j][tabTemp[n]]]) {
  	    if (answer_question_poll[j][tabTemp[n]] == 6) {
		      document.write("<li class=\"li_right\">");
		    }else{
		      document.write("<li>");
        } 
        document.write("<input id=\"answerId_" + j + "_" + tabTemp[n] + "\" name=\"answerId" + j + "\" value=\"" + answer_question_poll[j][tabTemp[n]] + "\" type=\"radio\" />");
        document.write("<span class=\"cb\">" + answers[answer_question_poll[j][tabTemp[n]]] + "</span>");
        document.write("</li>");
      }
	}
  	document.write("</ul>");
  	document.write("</div>");
  	k++;
  }
}

function checkPollAndContinue() {
  /* Sprawdza, czy na wszystkie pytania są zaznaczone odpowiedzi.
  Jeśli tak, pobiera i zapisuje wyniki do cookies oraz przechodzi na kolejną stronę.
  Jeśli nie, wyświetla błąd na stronie. */
  var question_poll = loadXMLQuestionPoll();
  var answer_question_poll = loadXMLAnswerQuestionPoll();
  var errorArr = new Array();
  var arr = 0;
  var voter_answers = new Array();
  var k = 1;
  for (var i in question_poll) {
  	var flag = false;
	for (var j in answer_question_poll[i]) {
	  var radioId = "answerId_" + i + "_" + j;
	  if (document.getElementById(radioId) && document.getElementById(radioId).checked == true) {
		flag = true;
		voter_answers[i] = document.getElementById(radioId).value;
	  }
	}
	if (!flag) {
	  errorArr[i] = k;
	  arr++;
	}
	k++;
  }
  /* Jeśli wcześniej były błędy, usuwa ostrzeżenia. */
  if (document.getElementById("error_box")) {
	document.getElementById("error_box").parentNode.removeChild(document.getElementById("error_box"));
	for (var i in question_poll) {
	  var quest = "question" + i;
	  removeClass(document.getElementById(quest), "error");
	}
  }
  var al = "";
  if (errorArr.length != 0) {
    /* Tworzenie ostrzeżeń na stronę, jeśli nie są zaznaczone wszystkie odpowiedzi. */
    var k = 0;
  	for (var i in errorArr) {
  	  if (k == 0) {
  	    al += "&nbsp;Uzupełnij pytanie: &nbsp;" + errorArr[i];
  	  } else {
  	    al += " &nbsp;" + errorArr[i];
  	  }
  	  var quest = "question" + i;
  	  addClass(document.getElementById(quest), "error");
  	  k++;
  	}
  	var div = document.createElement("div");
  	div.setAttribute("id", "error_box");
  	div.className = "error_box";
  	div.innerHTML = al;
  	document.getElementById("errors").appendChild(div);
  	window.scrollTo(0,0);
  } else {
    /* Zapisanie zaznaczonych odpowiedzi do cookies. */
  	var url = document.location;
  	var urlPart = url.toString().split("//");
  	var urlPartTwo = urlPart[1].split("/");
  	for (var i in voter_answers) {
      document.cookie = "question" + i + "=" + escape(voter_answers[i]) + "; domain=" + urlPartTwo[0] +"; path=/; ";
    }
    document.location.href = "poll_result.html";
  }
}

function deleteAllCookies() {
  /* Usuwa wszystkie cookies. */
  if (document.cookie.length > 0) {
    var toCookie = document.cookie.split("; ");
    var dateExpire = new Date();
    dateExpire.setDate(dateExpire.getDate()-1);
    var url = document.location;
    var urlPart = url.toString().split("//");
    var urlPartTwo = urlPart[1].split("/");
    for (var i = 0; i < toCookie.length; i++) {
      var nameCookie = toCookie[i].split("=")[0];
      document.cookie = nameCookie + "=;expires=" + dateExpire.toGMTString()+ "; domain=" + urlPartTwo[0] + "; path=/; ";
    }
    
  }
}

function showValueCookie(name) {
  /* Wyświetla wartość podanej nazwy z cookies. */
  if (document.cookie.length > 0) {
  var toCookie = document.cookie.split("; ");
    for (var i = 0; i < toCookie.length; i++) {
      var nameCookie = toCookie[i].split("=")[0];
      var valueCookie = toCookie[i].split("=")[1];
      if (nameCookie == name) {
        return unescape(valueCookie);
      }
    }
  }
}

function checkQuestionPollCookies() {
  /* Sprawdza, czy wszystkie odpowiedzi na pytania są zapisane w cookies.
  Zwraca true lub false. */
  if (document.cookie.length > 0) {
    var question_poll = loadXMLQuestionPoll();
    var toCookie = document.cookie.split("; ");
      var count = 0;
      for (var i = 0; i < toCookie.length; i++) {
        var nameCookie = toCookie[i].split("=")[0];
        for (var j in question_poll) {
          var quest = "question" + j;
          if (nameCookie == quest) {
            count++;
          }
        }
      }
      if (count == question_poll.length) {
        return true;
      } else {
        return false;
      }
  } else {
    return false;
  }
}


function compareNumbers(a, b) {
  if (a < b) {return -1;}
  if (a > b) {return 1;}
  return 0; // if a == b
}

function calculateMinAndMaxForParties() {
  /* Najmniejsze i największe możliwe wyniki dla poszczególnych partii (komitetów) z uwzględnieniem pominiętych pytań przez wyborcę*/
  var question_poll = loadXMLQuestionPoll();
  var parties = loadXMLParties();
  var answers_parties = loadXMLAnswersParties();
  var minMaxArr =  new Array();
  for (i in parties) {
	var answer1 = 0; //tak
	var answer2 = 0; //raczej tak
	var answer3 = 0; //brak opinii
	var answer4 = 0; //raczej nie
	var answer5 = 0; //nie
	for (var j in question_poll) {
	  var quest = "question" + j;
  	  var voter_answer_id = showValueCookie(quest);
	  if (voter_answer_id != 6) { //pomiń
	    var party_answer_id = answers_parties[j][i].answer_id;
	    if (party_answer_id == 1) {
		  answer1++;
	    } else if (party_answer_id == 2) {
		  answer2++;
	    } else if (party_answer_id == 3) {
		  answer3++;
	    } else if (party_answer_id == 4) {
		  answer4++;
	    } else if (party_answer_id == 5) {
		  answer5++;
	    }
	  }
	}

	var min = answer1*(DISPLACE+(-1)) + answer2*(DISPLACE+(-1)) + answer3*(DISPLACE+0) + answer4*(DISPLACE+(-1)) + answer5*(DISPLACE+(-1));
	var max = answer1*(DISPLACE+1) + answer2*(DISPLACE+1) + answer3*(DISPLACE+0) + answer4*(DISPLACE+1) + answer5*(DISPLACE+1);
  minMax[i] = new Array(min, max);
  }
}

function calculate() {
  calculateMinAndMaxForParties();
  /* Oblicza i wyświetla wyniki malejąco, wg której partii (komitetu) program jest najbliższy wyborcy. */
  var question_poll = loadXMLQuestionPoll();
  var parties = loadXMLParties();
  var answers_parties = loadXMLAnswersParties();
  var answers_points = loadXMLAnswersPoints();
  var results = new Array();
  var mojeResults = new Array();
  
  for (var i in question_poll) {
    var quest = "question" + i;
    var voter_answer_id = showValueCookie(quest);
	  if (voter_answer_id != 6) { //pomiń 
      /* obliczanie wyników */
      for (j in parties) {
        var party_answer_id = answers_parties[i][j].answer_id;
        if (results[j] == null) {
      	  results[j] = parseFloat("0");
        }
        var points = parseFloat(answers_points[voter_answer_id][party_answer_id]);
        results[j] = eval(results[j] + points + DISPLACE);
        mojeResults[j] = results[j];
      }
	  }
  }

  for (j in parties) {
    var minResult = parseFloat(minMax[j][0]); //minimalny dopuszczalny wynik partii (komitetu)
    var maxResult = parseFloat(minMax[j][1]); //maksymalny dopuszczalny wynik partii (komitetu)
    results[j] = eval(100 * (results[j]-minResult) / (maxResult-minResult)); //oblicza procent zgodności odpowiedzi wyborcy z odpowiedziamy partii (komitetu)
  }

  var tabTemp = new Array();
  var r = 0;
  for (var i in parties) {
	 tabTemp[r] = results[i];
	 r++;
  }
  /* sortowanie wyników malejąco */
  tabTemp.sort(compareNumbers);
  tabTemp.reverse();
  var resultsTemp = new Array();
  var flag = true;
  for (var i = 0; i < tabTemp.length; i++) {
    var flag = true;
    for (var j in parties) {
      if (flag && tabTemp[i] == results[j]) {
        var flagTab = true;
        for (var k = 0; k < resultsTemp.length; k++) {
          if (resultsTemp[k] == j) {
            flagTab = false;
          }
        }
        if (flagTab) {
          resultsTemp.push(j);
          flag = false;
        }
      }
      if (!flag) {
        break;
      }
    }
  }

  for (var i = 0; i < resultsTemp.length; i++) {
    var j = resultsTemp[i];
    var wid = results[j];
    if (i == 0) {
      /* wynik najbardziej zgodny */
      document.write("<h2>Twoje poglądy są najbardziej zbliżone do programu wyborczego komitetu:</h2>");
      document.write("<div class=\"result_best wrap\">");
      document.write("<div class=\"head\"><table><tr>");
      /* tutaj obrazek zawsze ma prefiks big_ i skrót nazwy partii (komitetu) */
      document.write("<td><img src=\"../images/2011/big_" + parties[j].party_code + ".png\" alt=\"" + parties[j].party_name + "\"/></td>");
    } else {
      /* pozostałe wyniki */
      if (i == 1) {
    	document.write("<h2>Porównanie Twoich poglądów z programami wyborczymi pozostałych komitetów:</h2>");
      }
      document.write("<div class=\"result wrap\">");
      document.write("<div class=\"head\"><table><tr>");
      /* tutaj obrazek zawsze ma prefiks small_ i skrót nazwy partii (komitetu) */
      document.write("<td><img src=\"../images/2011/small_" + parties[j].party_code + ".png\" alt=\"" + parties[j].party_name + "\"/></td>");
    }
      document.write("<td>" + parties[j].party_name + "</td>");
      document.write("</tr></table></div>");
      document.write("<div class=\"graph\">");
      /* stopień zgodności */
      document.write("<div class=\"graph0\" style=\"width:" + Math.round(wid) + "%\"> </div>");
      document.write("<div class=\"wrap\">");
      document.write("<div class=\"c0\">Min</div>");
      document.write("<div class=\"c1\">Zgodność poglądów: "+ Math.round(wid) +" %</div>");
      document.write("<div class=\"c2\">Max</div>");
      document.write("</div>");
      document.write("</div>");
      
      document.write("</div>");
  }
    document.write("<div>Komitet Wyborczy Polska Jest Najważniejsza i Komitet Wyborczy Polska Partia Pracy - Sierpień 80, pomimo zaproszenia, nie wypełniły formularza \"Latarnika wyborczego 2011\", dlatego nie figurują na liście komitetów.</div>");
   /* Wyświetla stwierdzenia i button'y. */
  document.write("<h2 class=\"two\">Porównaj odpowiedzi i przeczytaj komentarze komitetów na dane stwierdzenie:</h2>");
  var k = 1;
  for (var j in question_poll) {
    document.write("<div id=\"question" + j + "\" class=\"question\">");
    document.write("<h3><span>" + k + ".&nbsp; </span>" + question_poll[j] + "</h3>");
    document.write("<div class=\"btn_compare_bott\">");
    document.write("<a class=\"btn_compare\" href=\"party_poll_review.html?questionId=" + k + "\">zobacz&nbsp;&nbsp;&nbsp;>></a>");
    document.write("</div>");
    document.write("</div>");
    k++;
  }
}

function getQuestionIdFromURLAndDisplayReview() {
  /* Pobranie nr pytania z URL.
  Jeśli parametr jest źle wpisany w URL, to cofa na poprzednia stronę.
  Jeśli parametr jest podany prawidłowo, to wywołuje funkcję wyświetlania
  porównań odpowiedzi z wszystkimi partiami (komitetami) na dane pytanie. */
  var url = document.location.href;
  var urlTemp = url.split("?");
  if (urlTemp[1]) {
    var parameters = urlTemp[1].split("=");
		if (parameters[0] == "questionId" && parseInt(parameters[1])) {
		  displayQuestionPollReview(parameters[1]);
		} else {
		  document.location.href = "poll_result.html";
		}
	} else {
		document.location.href = "poll_result.html";
	}
}

function displayQuestionPollReview(questionId) {
  /* Wyświetlanie porównań odpowiedzi na dane pytanie z wszytskimi partiami (komitetami). */
  var parties = loadXMLParties();
  var question_poll = loadXMLQuestionPoll();
  var answers_parties = loadXMLAnswersParties();
  var answers = loadXMLAnswers();
  var k = questionId - 1;
  if (question_poll[k]) {
		document.write("<div class=\"head2\">");
		/* stwierdzenie */
		document.write(questionId + ". " + question_poll[k]);
		document.write("</div>");
		var quest = "question" + k;
		var voter_answer_id = showValueCookie(quest);
		document.write("<div class=\"your_answer\">Twoja odpowiedź: <span><strong>");
		document.write(answers[voter_answer_id]);
		document.write("</strong></span></div>");

		document.write("<div class=\"entry2 wrap\">");
		document.write("<div class=\"cL1\"><span class=\"title\">Komitet</span></div>");
		document.write("<div class=\"cL2\"><span class=\"title\">Odpowiedź komitetu</span></div>");
		document.write("<div class=\"cL3\"><span class=\"title\">Komentarz komitetu</span></div>");
		document.write("</div>");
		for (var i in parties) {
		  var party_answer_id = answers_parties[k][i].answer_id;
		  if (party_answer_id == 3){
		    if (party_answer_id == voter_answer_id) {
		      document.write("<div class=\"entry2 wrap right\">");
        } else {
			    document.write("<div class=\"entry2 wrap\">");
			  }
		  } else {
		    if (party_answer_id == voter_answer_id) {
		      document.write("<div class=\"entry2 wrap right\">");
		    } else{
		      if(voter_answer_id == 3 || voter_answer_id == 6){
		        document.write("<div class=\"entry2 wrap\">");
          } else if((voter_answer_id == 1 && party_answer_id == 2)
                 || (voter_answer_id == 2 && party_answer_id == 1)
                 || (voter_answer_id == 4 && party_answer_id == 5)
                 || (voter_answer_id == 5 && party_answer_id == 4)){
		        document.write("<div class=\"entry2 wrap half_point\">");
          } else {
		        document.write("<div class=\"entry2 wrap\">");
		      }
		    }
		    
		  }
		  document.write("<div class=\"cL1\"><img src=\"../images/2011/small_" + parties[i].party_code + ".png\" alt=\"" + parties[i].party_name + "\"/><span class=\"party_name\">");
		  document.write(parties[i].party_name);
		  document.write("</span></div>");
		  document.write("<div class=\"cL2\"><span>");
		  document.write(answers[party_answer_id]);
		  document.write("</span></div>");
		  document.write("<div class=\"cL3\">");
		  if (answers_parties[k][i].explanation != "") {
		    document.write("<span>");
		    document.write(answers_parties[k][i].explanation);
		    document.write("</span>");
		  }

		  document.write("</div>");
		  document.write("</div>");
	  }
  } else {
    document.location.href = "poll_result.html";
  }
}

function doAgain() {
  /* Przechodzi na początek ankiety i usuwa wszystkie dane w cookies. */
  //deleteAllCookies();
  document.location.href = "poll.html";
}

//index.html
function run() {
  fixIEpng();
  timer_init();
  cbox_init();
  question_init();
}

function O(n) { return document.getElementById(n); }

//do cbox_init()
function addEvent(obj, type, fn) {
  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]);
  }
}

function trim(x){return x.replace(/^\s+|\s+$/g,'');}

//do cbox_init()
function hasClass(obj, clName) {
  var clN = ' ' + obj.className + ' ';
  return (clN.match(' ' + clName + ' ') != null);
}

function addClass(obj, clName) {
  if (hasClass(obj, clName)) return;
  obj.className = trim(obj.className + ' ' + clName);
}

function removeClass(obj, clName) {
  if (!hasClass(obj, clName)) return;
  var clN = ' ' + obj.className + ' ';
  eval("obj.className = trim(clN.replace(/ " + clName + " /g,' '));");
}

function swapClass(obj, oldName, newName) {
  removeClass(obj, oldName);
  addClass(obj, newName);
}

function question_hover(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);

  while (!hasClass(el, 'question')) {
    el = el.parentNode;
    if (el.id == 'md_questionnaire') return;
  }

  addClass(el, 'hover');
}

function question_leave(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);

  while (!hasClass(el, 'question')) {
    el = el.parentNode;
    if (el.id == 'md_questionnaire') return;
  }

  removeClass(el, 'hover');
}

function question_mark_sum() {
  var inputs = O('md_questionnaire_ans').getElementsByTagName('input');
  var sum = 0;
  for (var i = 0; i < inputs.length; i++) {
    if (hasClass(inputs[i], 'icb')) {
      if (inputs[i].checked) sum++;
    }
  }
  return sum;
}

function question_mark(e) {
  var el; if (window.event && window.event.srcElement) { el = window.event.srcElement; }; if (e && e.target) { el = e.target; }; if (!el) { return; };

  var marked = true;
  var inputobj = null;

  if (hasClass(el, 'icb')) {
    marked = el.checked;
    inputobj = el;
    while (!hasClass(el, 'question')) {
      el = el.parentNode;
      if (el.id == 'md_questionnaire_ans') return;
    }
  } else {
    while (!hasClass(el, 'question')) {
      el = el.parentNode;
      if (el.id == 'md_questionnaire_ans') return;
    }
    var inputs = el.getElementsByTagName('input');
    for (var i = 0; i < inputs.length; i++) {
      if (hasClass(inputs[i], 'icb')) {
        inputs[i].checked = !inputs[i].checked;
        marked = inputs[i].checked;
        inputobj = inputs[i];
        break;
      }
    }
  }

  if (marked) {
    if (question_mark_sum() > 5) {
      inputobj.checked = false;
    } else {
      addClass(el, 'checked');
    }
  } else {
    removeClass(el, 'checked');
  }
}

//run()
function question_init() {
  if (!O('md_questionnaire')) return;
  var ansCheck = O('md_questionnaire_ans') ? true : false;
  var divs = O('md_questionnaire').getElementsByTagName('div');
  for (var i = 0; i < divs.length; i++) {
    if (hasClass(divs[i], 'question')) {
      addEvent(divs[i], 'mouseover', question_hover);
      addEvent(divs[i], 'mouseout', question_leave);
      if (ansCheck) {
        addEvent(divs[i], 'click', question_mark);
        var inputs = divs[i].getElementsByTagName('input');
        for (var j = 0; j < inputs.length; j++) {
          if (hasClass(inputs[j], 'icb')) {
            if (inputs[j].checked) {
              if (question_mark_sum() < 5) {
                addClass(divs[i], 'checked');
              } else {
                inputs[j].checked = false;
              }
            }
          }
        }
      }
    }
  }
}

function cbox_click(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 inputObjs = el.parentNode.getElementsByTagName('input');
  if (inputObjs.length > 0) {
    inputObjs[0].checked = !inputObjs[0].checked;
  }
}

//run()
function cbox_init() {
  var spans = O('page_wrap').getElementsByTagName('span');
  for (var i = 0; i < spans.length; i++) {
    if (hasClass(spans[i], 'cb')) {
      addEvent(spans[i], 'click', cbox_click);
    }
  }
}

var _timer_targetDate;

//run()
function timer_init() {
  if (!O('md_timer')) return;
  var tmp = new Array(2011, 10, 9);
  _timer_targetDate = new Date();
  _timer_targetDate.setFullYear(tmp[0], tmp[1]-1, tmp[2]);
  timer_run();
}

//timer_init()
function timer_run() {
  var tmp = new Date();
  var diff = timer_diff(tmp, _timer_targetDate);
  O('md_timer_days').innerHTML = diff + ((diff == 1) ? ' dzień' : ' dni');
  window.setTimeout(timer_run, 60000);
}


//timer_run()
function timer_diff(date1, date2) {
  var one_day = 1000 * 60 * 60 * 24
  var date1_ms = date1.getTime()
  var date2_ms = date2.getTime()
  var difference_ms = Math.abs(date1_ms - date2_ms)
  return Math.round(difference_ms/one_day)
}

//run()
function fixIEpng() {
  var arVersion = navigator.appVersion.split("MSIE")
  var version = parseFloat(arVersion[1])

  if ((version >= 5.5) && (document.body.filters))
  {
     for (var i=0; i<document.images.length; i++)
     {
        var img = document.images[i]
        var imgName = img.src.toUpperCase()
        if (imgName.substring(imgName.length-3, imgName.length) == "PNG")
        {
           var imgID = (img.id) ? "id='" + img.id + "' " : ""
           var imgClass = (img.className) ? "class='" + img.className + "' " : ""
           var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "
           var imgStyle = "display:inline-block;" + img.style.cssText
           if (img.align == "left") imgStyle = "float:left;" + imgStyle
           if (img.align == "right") imgStyle = "float:right;" + imgStyle
           if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle
           var strNewHTML = "<span " + imgID + imgClass + imgTitle
           + " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
           + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
           + "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>"
           img.outerHTML = strNewHTML
           i = i-1
        }
     }
  }
}

