//functions for top menu 
runNaviLeft = false;
runNaviRight = false;
function menuNavi(dir)
{
	var gallery = document.getElementById('menuContent');
	var galleryContainer = gallery.parentNode;
	var marginL = gallery.style.marginLeft.substring(0,gallery.style.marginLeft.length-2)*1;
	/*
	alert(gallery.offsetWidth);
	alert(galleryContainer.offsetWidth);
	*/
	if(dir == 'right' && runNaviRight)
	{	
		if(Math.abs(marginL) < (gallery.offsetWidth - galleryContainer.offsetWidth))
		{
			gallery.style.marginLeft = (marginL -2)+'px';
			setTimeout("menuNavi('right')",10);
		}
		else 
			runNaviRight = false;
	}
	else if(dir == 'left' && runNaviLeft)
	{
		if(marginL < 0)
		{
			gallery.style.marginLeft = (marginL +2)+'px';
			setTimeout("menuNavi('left')",10);
		}
		else 
			runNaviLeft = false;
	}
}

function startNavi(dir)
{
	switch(dir)
	{
		case 'left':
			runNaviLeft = true;
			menuNavi('left');
			break;
		case 'right':
			runNaviRight = true;
			menuNavi('right');
			break;
	}
}

function stopNavi(dir)
{
	switch(dir)
	{
		case 'left':
			runNaviLeft = false;
			break;
		case 'right':
			runNaviRight = false;
			break;
	}
}

var intervalID;
function switchRow(menuNum){
   
  intervalID = setTimeout(
    function()
    {
    doSwitch(menuNum);
    },
    250
    );  
        
}

function doSwitch(menuNum){
  currentMenuHighlight = menuNum;
  document.getElementById('menuContent').style.marginLeft = '0px';
  
  rowNmb = "row"+menuNum;  
  for( i = 1 ; i < 9 ; i++){
    document.getElementById('row'+i).style.display = 'none';
  }
    
  document.getElementById(rowNmb).style.display = '';
  
  for(k=1;k < 9; k++) document.getElementById('menuButton'+k).style.backgroundImage="";    
  
  if ( readCookie('layout') == "pink_style" )
    document.getElementById('menuButton'+menuNum).style.backgroundImage="url(./views/templates/emaluszki/img/menuButton_on_p.gif)";
  else 
    document.getElementById('menuButton'+menuNum).style.backgroundImage="url(./views/templates/emaluszki/img/menuButton_on.gif)";
}



//functions for other links in article
var otherLinksCurrentPair = 0;
function checkOtherLinks(){
  otherLinks = document.getElementById('other_links_container').childNodes;
  if ( otherLinks.length > 0 ) otherLinks.item(0).style.display = "block";
  if ( otherLinks.length > 1 ) otherLinks.item(1).style.display = "block";  
}

function nextOtherLinks(){  
  otherLinksCurrentPair += 2;
  if ( otherLinks.length > otherLinksCurrentPair ){
    otherLinks.item(otherLinksCurrentPair-1).style.display = "none";
    otherLinks.item(otherLinksCurrentPair-2).style.display = "none";
    otherLinks.item(otherLinksCurrentPair).style.display = "block";
    if ( otherLinks.length > otherLinksCurrentPair+1 )  otherLinks.item(otherLinksCurrentPair+1).style.display = "block";
  }
  else otherLinksCurrentPair -= 2; 
}

function previousOtherLinks(){  
  otherLinksCurrentPair -= 2;
  if ( otherLinksCurrentPair >= 0){
    otherLinks.item(otherLinksCurrentPair+2).style.display = "none";
    if ( otherLinks.length > otherLinksCurrentPair+3 )  otherLinks.item(otherLinksCurrentPair+3).style.display = "none";
    otherLinks.item(otherLinksCurrentPair).style.display = "block";
    otherLinks.item(otherLinksCurrentPair+1).style.display = "block";
  }
  else otherLinksCurrentPair = 0;
}

//functions for changing font size

function fontResizeSmall(elementId){
  document.getElementById(elementId).style.fontSize = '11px';
}

function fontResizeMedium(elementId){
  document.getElementById(elementId).style.fontSize = '13px';
}

function fontResizeLarge(elementId){
  document.getElementById(elementId).style.fontSize = '15px';
}

//functions for pregnant_calendar

var months = new Array();
months[0] = 31;
months[1] = 28;
months[2] = 31;
months[3] = 30;
months[4] = 31;
months[5] = 30;
months[6] = 31;
months[7] = 31;
months[8] = 30;
months[9] = 31;
months[10] = 30;
months[11] = 31;

function supplementCalendarsYear(){  
  select = document.getElementById('calendar_year');
  if ( select != null ){
    select.options[0]=new Option(currentDate.getFullYear(),currentDate.getFullYear(),true,false );
    select.options[1]=new Option(currentDate.getFullYear()+1,currentDate.getFullYear()+1,false,false );   
  }
  //setting year for fertilityCalendar
  select2 = document.getElementById('fertility_year');
  if ( select2 != null ){
    select2.options[0]=new Option(currentDate.getFullYear(),currentDate.getFullYear(),true,false );
    select2.options[1]=new Option(currentDate.getFullYear()+1,currentDate.getFullYear()+1,false,false );  
  }
  
  if ( select2 != null && select != null )  setDateFromCookie(); 
  
}

function setDateFromCookie(){
  
  cookieYear = readCookie('childbirth_year');
  cookieMonth = readCookie('childbirth_month');
  cookieDay = readCookie('childbirth_day');
  
  if ( cookieYear ){
    select_year = document.getElementById('calendar_year');
    for(var i = 0; i < select_year.options.length ; i++)
    {        
      if ( select_year.options[i].value == cookieYear ) select_year.options[i].selected = true; 
    }
  }
  if ( cookieMonth ){
    select_month = document.getElementById('calendar_month');
    for(var i = 0; i < select_month.options.length ; i++)
    {        
      if ( select_month.options[i].value == cookieMonth ) select_month.options[i].selected = true; 
    }  
  }
  if ( cookieDay ){
    select_day = document.getElementById('calendar_day');
    for(var i = 0; i < select_day.options.length ; i++)
    {        
      if ( select_day.options[i].value == cookieDay ) select_day.options[i].selected = true; 
    }  
  }
  
}

function validateDays(year, month, day){
  
  var selected_year = document.getElementById(year).selectedIndex;
  if ( selected_year == 0 && leap_year ) months[1] = 29;
  else if ( selected_year == 1 && next_leap_year ) months[1] = 29;
  else months[1] = 28;
  
  select_day = document.getElementById(day);
  selected_day = select_day.options[select_day.selectedIndex].value;   
  select = document.getElementById(month);  
  month = select.options[select.selectedIndex].value - 1;
  
  select_day_length = select_day.options.length;
  
  for(var i = 0; i < select_day_length ; i++)
  {        
    select_day.remove(0);           
  }
  
  for(var i = 0; i < months[month]; i++)
  {         
    if ( selected_day <= months[month] && i+1 == selected_day ) select_day.options[i] = new Option(i+1,i+1,false,true);
    else if ( selected_day > months[month] && i == 0 ) select_day.options[i] = new Option(i+1,i+1,false,true);
    else select_day.options[i] = new Option(i+1,i+1,false,false);
  }
  
}

function checkForError(){    
  
  pregnant_time = 24192000000;
  day = document.getElementById('calendar_day').value;
  month = document.getElementById('calendar_month').value;
  year = document.getElementById('calendar_year').value;

  enteredDate = new Date();
  enteredDate.setFullYear(year,month-1,day);
  enteredDate.setHours(0);
  enteredDate.setMinutes(0);
  enteredDate.setSeconds(0);
  enteredDate.setMilliseconds(0);
    
  if ( enteredDate.valueOf() < currentDate.valueOf() ){
    document.getElementById('validation_message').innerHTML = "Podana data już minęła!";
    return false;
  }   
  else if ( enteredDate.valueOf() > currentDate.valueOf() + pregnant_time ){
    document.getElementById('validation_message').innerHTML = "Podana data jest odległa więcej niż 40 tygodni";
    return false;
  }
  else{    
    document.getElementById('calendar').submit(); 
    return true;
  } 
}

function submitForm(){
  document.getElementById('fertilityForm').submit();
}

function submitContactForm(){
  document.contactForm.submit();
}

function submitSearch(){
  document.getElementById('searchForm').submit();
}

function submitLogin(){
  document.getElementById('login_form').submit();
}

//function for setting styles
function setStyle(){
  cookie = readCookie('layout');
  var classNames = document.body.className;  
  if ( cookie )          
  {                      
    if ( (cookie == "pink_style") && (classNames.search(/pink/) < 0) )
    {                    
       document.body.className = classNames + " " + "pink";       
    }                    
    else if ( (cookie == "style") && (classNames.search(/pink/) >= 0) )
    {                    
       var newClassName = classNames.replace(/pink/, "");
       document.body.className = newClassName;
    }                    
  }                      
  else if ( classNames.search(/pink/) >= 0 )
  {                      
      var newClassName = classNames.replace(/pink/, "");
      document.body.className = newClassName;
  }                      
  doSwitch(currentMenuHighlight);  
}

//function for voting in poll

function vote(pollId,pollAnswer){  
  
  if ( pollAnswer == 0) doVote(pollId,0);
  var inputy = document.getElementsByName("answer");    
  for ( i = 0 ; i < inputy.length ; i++ )
  {
    if (inputy[i].checked) doVote(pollId,inputy[i].value);
  }

}

function doVote(pollId,pollAnswer){
  var req = mint.Request();
  names = new Array();
  values = new Array();
  
  var sondaBox = getElementsByClass("div","boxMedium poll")[0];  
  var sonda = document.getElementById("poll");
  var loading = document.getElementById("loading");
  sondaBox.style.height = sondaBox.clientHeight+"px"; 
  sonda.style.display = "none";  
  loading.style.display = "block";
    
  //request  
  
  req.getJSON = true;
  req.AddParam("pollId", pollId);
  req.AddParam("answerId", pollAnswer);  
  req.OnSuccess = function() 
  {    
      for(var i = 0; i < this.responseJSON.length; ++i) 
      {
          names[i] = this.responseJSON[i].name; 
          values[i] = this.responseJSON[i].value;            
      }     
      generateChart(names, values);
  }
  req.Send("/webservices/poll.php");
     
  if ( pollAnswer != 0 )
  {    
    rookie = readCookie("polls");        
    if ( rookie ){
      con = rookie;      
      eraseCookie("polls");      
      new_con = con+"|"+pollId;      
      createCookie("polls",new_con,180);
    }
    else{
      createCookie("polls",pollId,180);
    }        
  }
  
}

function generateChart(names, values){
    
    var colors = new Array(10);
    
    colors[0] = '#006C8A';
    colors[1] = '#016C62';    
    colors[2] = '#A40000';
    colors[3] = '#FF5029';
    colors[4] = '#732800';
    colors[5] = '#42212A'; 
    colors[6] = '#00325B';
    colors[7] = '#004A40';
    colors[8] = '#7A2894';
    colors[9] = '#9D8384';
    colors[10] = '#006DAD';
    colors[11] = '#00AFEF';
    colors[12] = '#00AD9C';
    colors[13] = '#497331';
    colors[14] = '#F71932';
    colors[15] = '#FF9429';
    colors[16] = '#F76251';
    colors[17] = '#F60090';
  
    var results = document.getElementById("results");
    var loading = document.getElementById("loading");
        
    //oblicz procenty
    percents = new Array();
    var sum = 0;
    for ( var it=0; it < values.length ; it++)
    {
      sum += parseInt(values[it]);
    }
    
    for ( var it=0; it < values.length ; it++)
    {
      percents[it] = parseInt((values[it]/sum)*100);      
    }
    
    //generuj wyniki
    for (var i=0; i < names.length ; i++)
    {
      document.getElementById('chart'+i).style.backgroundPosition = (2*percents[i])+"px";     
      document.getElementById('chart_percent'+i).innerHTML = "<b>"+percents[i]+"%</b>"; // ("+values[i]+")";
      
      if ( i > 18 ) k = i % 19; 
      else k = i;      
      document.getElementById('chart'+i).style.backgroundColor = colors[k];
    }
    
    //usun animowanego gifa i wrzuc wyniki
    loading.style.display = "none";
    results.style.display = "block";
}

//fuction for recommending article

function recommend(){
  
  if ( document.getElementById('recommend').style.display == 'block' ){
    document.getElementById('recommend').style.display = '';
    document.getElementById('article').style.marginBottom = '30px';
  }
  else{
    document.getElementById('recommend').style.display = 'block';
    document.getElementById('article').style.marginBottom = '0px';
    document.getElementById('recommend_info').style.display = '';
  }
  
}

function sendRecommendation(articleId){
  var req = mint.Request();

  document.getElementById('recommend').style.display = '';  
  
  mail = document.getElementById('r_mail').value;
  name = document.getElementById('r_name').value;  
    
  req.AddParam("name", name);
  req.AddParam("mail", mail);
  req.AddParam("articleId", articleId);  
  req.OnSuccess = function() 
  {      
      if ( this.responseText == 'err' ){
        document.getElementById('r_info').innerHTML = 'Błędne dane!';        
      }   
      else if ( this.responseText == 'err2' ){
        document.getElementById('r_info').innerHTML = 'Już polecano ten artykuł!';
      }   
      else{
        document.getElementById('r_info').innerHTML = 'Link został wysłany';        
      }              
      document.getElementById('recommend_info').style.display = 'block'; 
  }
  req.Send("/webservices/recommend.php");
}



//function for switching articles of the week
function switchWeekArticle(nmbr){
  
  art = document.getElementById('art'+nmbr);  
  for( i = 0 ; i < weekArticlesCnt ; i++){
    document.getElementById('art'+i).style.display = 'none';
  }  
  
  art.style.display = "block";
  
}

// common use functions
function getElementsByClass(tag,className){
  
  var classElements = new Array();
  var els = document.getElementsByTagName(tag);
  
  for (i = 0, j = 0; i < els.length; i++)
  {
    if ( els[i].className == className ){
      classElements[j] = els[i];
      j++;
    }
  }
  
  return classElements;
}

function runOnLoad( function_to_run )
    {
    if( document.addEventListener )
        {
        document.addEventListener( "DOMContentLoaded", function_to_run, false);
        document.addEventListener( "load", function_to_run, false );
        }
    else if( window.addEventListener )
        {
        window.addEventListener( "load", function_to_run, false );
        }
    else if( window.attachEvent )
        {
        window.attachEvent( "onload", function_to_run );
        }
    }
    
function validateEmail(email) {
   var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;   
   if( reg.test(email) == false ) return false;
   else return true;
}

function setFields(){
  if ( document.getElementById('speciality') != null )
  {
    form = document.getElementById('cards_form');
    len = form.card_type.length;
  
    for (i = 0; i < len; i++) {
      if (form.card_type[i].checked) {
        chosen = form.card_type[i].value;
      }
    }
    
    switch(chosen)
    {
    case '1':    
      document.getElementById('speciality').disabled = false;    
      break;
    default:
      document.getElementById('speciality').disabled = true;
    }
  } 
}

function submitCardsForm()
{
  if ( document.getElementById('province').value == '' || 
       document.getElementById('city').value == '' )
  {
    document.getElementById('form_error_box').innerHTML = 'Nie wybrano lokacji.'; 
    return;
  } 
  
  if ( document.getElementById('cards_form').card_type[0].checked == true &&
       document.getElementById('speciality').value == '0' )
  {    
    document.getElementById('form_error_box').innerHTML = 'Brak lekarzy w tym regionie.'; 
    return;
  } 
  if ( document.getElementById('cards_form').card_type[0].checked == true &&
       document.getElementById('speciality').value == '' )
  {    
    document.getElementById('form_error_box').innerHTML = 'Nie wybrano specjalizacji lekarza.'; 
    return;
  } 
  
  if ( document.getElementById('cards_form').card_type[0].checked == false &&
       document.getElementById('cards_form').card_type[1].checked == false &&
       document.getElementById('cards_form').card_type[2].checked == false &&
       document.getElementById('cards_form').card_type[3].checked == false &&
       document.getElementById('cards_form').card_type[4].checked == false &&
       document.getElementById('cards_form').card_type[5].checked == false )
  {
    document.getElementById('form_error_box').innerHTML = 'Nie wybrano szukanego obiektu.'; 
    return;
  } 
  
  //creating link to submit form with GET method
  province = document.getElementById('province').value;
  city = document.getElementById('city').value;
  card_types = document.getElementById('cards_form').card_type;  
  for( i = 0; i < card_types.length ; i++)
  {
    if ( card_types[i].checked == true )
    {
      card_type = card_types[i].value;
      break;
    }
  }
  
  if ( card_type == 1 )
  {
    speciality = document.getElementById('speciality').value;
    var form_url = 'province='+province+';city='+city+';type='+card_type+';spec='+speciality;
  }
  else
  {
    var form_url = 'province='+province+';city='+city+';type='+card_type;
  }
  form_url = encodeURIComponent(form_url);
    
  if ( (strcasecmp(province,'małopolskie') == 0 ) && (strcasecmp(city,'kraków') == 0 ) && card_type==3)
  {
    window.location = './prywatne-przedszkole-krakow.html';
  }
  else
  {
    window.location = './cards/search/page/'+form_url;
  }
  
}

function strcasecmp (f_string1, f_string2){
    // Binary safe case-insensitive string comparison  
    // 
    // version: 909.322
    // discuss at: http://phpjs.org/functions/strcasecmp
    // +     original by: Martijn Wieringa
    // +     bugfixed by: Onno Marsman
    // *         example 1: strcasecmp('Hello', 'hello');
    // *         returns 1: 0
    var string1 = (f_string1+'').toLowerCase();
    var string2 = (f_string2+'').toLowerCase();
 
    if (string1 > string2) {
      return 1;
    }
    else if (string1 == string2) {
      return 0;
    }
 
    return -1;
}

function getCities()
{
  var req = mint.Request();
  names = new Array();
  values = new Array();
  
  v = document.getElementById('province').value; 
  
  if ( v == '') return false;
  //createCookie('province',v,10);
  
  frm = document.getElementById('cards_form');  
  radio_length = frm.card_type.length;
  for(var i = 0; i < radio_length ; i++)
  {
    if ( frm.card_type[i].checked == true )
    {
      var card_type = frm.card_type[i].value;
    }
  }
  var speciality;
  if ( card_type == 1 )
  {
    speciality = document.getElementById('speciality').value;     
  }
  if ( speciality == null ) speciality = '';  
  if ( card_type == '' ) return false;
  
  req.AddParam("province", v);  
  req.AddParam("card_type", card_type);
  if ( card_type == 1 )  req.AddParam("speciality", speciality);    
  req.getJSON = true;
  req.Send("/webservices/cities.php");
  req.OnSuccess = function() 
  {                 
      select = document.getElementById('city');
      select_length = select.options.length;
      for(var i = 0; i < select_length ; i++)
      {        
        select.remove(0);           
      }
      
      for(var i = 0; i < this.responseJSON.length; ++i)
      {
          names[i] = this.responseJSON[i].name;
          values[i] = this.responseJSON[i].value;          
          if ( i == 0) selected = true;
          else selected = false;
          select.options[i] = new Option(names[i],values[i],selected, selected );
      }
      document.getElementById("city").disabled = false;
  }
  
}

function getProvinces()
{
  var req = mint.Request();
  names = new Array();
  values = new Array();
  
  frm = document.getElementById('cards_form');  
  radio_length = frm.card_type.length;
  for(var i = 0; i < radio_length ; i++)
  {
    if ( frm.card_type[i].checked == true )
    {
      var card_type = frm.card_type[i].value;
    }
  }
  var speciality;
  if ( card_type == 1 )
  {
    speciality = document.getElementById('speciality');     
  }
  if ( speciality == null ) speciality = '';
  else speciality = speciality.value;
  
  if ( card_type == '' ) return false;
  
  req.getJSON = true;
  req.AddParam("card_type", card_type);
  if ( card_type == 1 )
  {
    req.AddParam("speciality", speciality);
  }  
  req.Send("/webservices/provinces.php");
  req.OnSuccess = function()
  {
      select = document.getElementById('city');
      select_length = select.options.length;
      for(var i = 0; i < select_length ; i++)
      {        
        select.remove(0);           
      }
      
      select = document.getElementById('province');
      select_length = select.options.length;
      for(var i = 0; i < select_length ; i++)
      {        
        select.remove(0);           
      }
      for(var i = 0; i < this.responseJSON.length; ++i)
      {
          names[i] = this.responseJSON[i].name;
          values[i] = this.responseJSON[i].value;
          select = document.getElementById('province');
          if ( i == 0) selected = true;
          else selected = false;
          select.options[i] = new Option(names[i],values[i],selected, selected );
      }
  }
}

/*
function fillCities()
{
  var req = mint.Request();
  names = new Array();
  values = new Array();
  
  v = document.getElementById('province').value; 
  
  if ( v == '') return false;  
  
  req.getJSON = true;
  req.AddParam("curvalue", v);
  req.Send("/webservices/cities.php");
  req.OnSuccess = function() 
  {      
      select = document.getElementById('speciality');
      select_length = select.options.length;
      for(var i = 0; i < select_length ; i++)
      {        
        select.remove(0);           
      }
      
      select = document.getElementById('city');
      select_length = select.options.length;
      for(var i = 0; i < select_length ; i++)
      {
        select.remove(0);           
      }
      
      for(var i = 0; i < this.responseJSON.length; ++i)
      {
          names[i] = this.responseJSON[i].name;
          values[i] = this.responseJSON[i].value;          
          if ( i == 0) selected = true;
          else selected = false;
          select.options[i] = new Option(names[i],values[i],selected, selected );
      }
      document.getElementById("city").disabled = false;
      
      ciasteczko = readCookie('city');
      if ( ciasteczko != null ){
        selectedP = document.getElementById('city');
        for (var i = 0; i < selectedP.length; i++) {
           if ( selectedP.options[i].value == ciasteczko) selectedP.options[i].selected = true;
        }
        
        fillSpeciality();    
      }
  }
  
}

function fillSpeciality()
{
  var req = mint.Request();
  names = new Array();
  values = new Array();
  
  p = document.getElementById('province').value;
  c = document.getElementById('city').value;
  if ( p == '' || c == '' ) return false;

  req.getJSON = true;
  req.AddParam("city", c);
  req.AddParam("province", p);
  req.Send("/webservices/speciality.php");
  req.OnSuccess = function()
  {
      select = document.getElementById('speciality');
      select_length = select.options.length;
      for(var i = 0; i < select_length ; i++)
      {        
        select.remove(0);           
      }
      for(var i = 0; i < this.responseJSON.length; ++i)
      {
          names[i] = this.responseJSON[i].name;
          values[i] = this.responseJSON[i].value;
          select = document.getElementById('speciality');
          if ( i == 0) selected = true;
          else selected = false;
          select.options[i] = new Option(names[i],values[i],selected, selected );
      }
  }
}
*/