function init()
{
  var cookieFontSize = Cookie.get('font-size');
  if(cookieFontSize > 7)
  {
    $('body').setStyle({ fontSize: cookieFontSize+'px'});
  }
  // font size changing
  Event.observe($('enlarge-font-button'),'click',enlargeFont);
  Event.observe($('minimize-font-button'),'click',minimizeFont);
}

function initHomePage()
{
	init();
  // header sliding
  Event.observe($('slide-down-button'),'click', function(e) { slideDownHeader(); Event.stop(e); });
  Event.observe($('slide-up-button'),'click',function(e) { slideUpHeader(); Event.stop(e); });

}

function initHomePageTabs()
{
	init();
	
  // header sliding
  Event.observe($('slide-down-button'),'click', function(e) { slideDownHeader(); Event.stop(e); });
  Event.observe($('slide-up-button'),'click',function(e) { slideUpHeader(); Event.stop(e); });
  
	// tabbed forms
  Event.observe($('find-score-form'),'submit', function(e) { getSeoScore(showSeoScoreHp); Event.stop(e); });
  Event.observe($('check-whos-better-form'),'submit', function(e) { getWhosBetter(); Event.stop(e); });
  Event.observe($('check-competition-form'),'submit', function(e) { getPowerCompetition(); Event.stop(e); });
  
  Event.observe($('check-competition-keywords-mode'),'change', function(e) 
  { 
    if($('check-competition-keywords-mode').selectedIndex == 0) 
    {
      $('check-competition-keywords').hide();
      $('check-competition-keywords').value = '';
    }
    else if($('check-competition-keywords-mode').selectedIndex == 1)
    {
      $('check-competition-keywords').value = 'Maksymalnie 3 słowa kluczowe rozdzielone średnikiem.';
      $('check-competition-keywords').show();
    }
  
  });
   
  Event.observe($('check-competition-keywords'),'focus', function(e) 
  { 
    if($('check-competition-keywords').value == 'Maksymalnie 3 słowa kluczowe rozdzielone średnikiem.')
      $('check-competition-keywords').value = ''; 
  });

  $('check-competition-account').hide();
  $('check-whos-better-account').hide();
  $('check-seoscore-account').hide();
  $('check-competition-keywords').hide();
  
  Event.observe($('check-competition-account-chck'),'click', 
		function(e)
		{
			if($('check-competition-account-chck').checked == true)
				$('check-competition-account').show()
			else
				$('check-competition-account').hide()
		});

  Event.observe($('check-seoscore-account-chck'),'click', 
		function(e)
		{
			if($('check-seoscore-account-chck').checked == true)
				$('check-seoscore-account').show()
			else
				$('check-seoscore-account').hide()
		});

  Event.observe($('check-whos-better-account-chck'),'click', 
		function(e)
		{
			if($('check-whos-better-account-chck').checked == true)
				$('check-whos-better-account').show()
			else
				$('check-whos-better-account').hide()
		});    
}

function initLoginForm()
{
  $('login-passwd').hide();
  
  Event.observe($('login-email'),'focus', function()
  {
    if($('login-email').value == 'e-mail lub login')
    {
      $('login-email').value = '';
    }
  })

  Event.observe($('login-email'),'blur', function()
  {
    if($('login-email').value == '')
    {
      $('login-email').value = 'e-mail lub login';
    }
  })

  Event.observe($('login-passwd-help'),'focus', function() 
  { 
    $('login-passwd-help').hide();
    $('login-passwd').show();
    $('login-passwd').value = '';
    $('login-passwd').focus();
  })

  Event.observe($('login-passwd'),'blur', function() 
  { 
    if($('login-passwd').value == '')
    {
      $('login-passwd').hide();
      $('login-passwd-help').show();
    }
  })
    
  //Event.observe($('login-button'),'click', function(e) { loginFormSubmit(1); Event.stop(e); });
  //Event.observe($('register-button'),'click', function(e) { loginFormSubmit(2); Event.stop(e); });
 
}

function initFreeSEO()
{
	init();
	
  // tabbed forms
  Event.observe($('check-keyword-form'),'submit', function(e) { getKeyword(); Event.stop(e); });
  Event.observe($('find-score-form'),'submit', function(e) { getSeoScore(showSeoScore); Event.stop(e); });
  Event.observe($('check-pr-form'),'submit', function(e) { getPagerank(); Event.stop(e); });
  Event.observe($('check-partners-form'),'submit', function(e) { getPartners(); Event.stop(e); });
  Event.observe($('check-engines-know-form'),'submit', function(e) { getEnginesKnow(); Event.stop(e); });
  Event.observe($('check-engines-see-form'),'submit', function(e) { getEnginesSee(); Event.stop(e); });
  Event.observe($('check-whos-better-form'),'submit', function(e) { getWhosBetter(); Event.stop(e); });  
  Event.observe($('check-competition-form'),'submit', function(e) { getPowerCompetition(); Event.stop(e); });
  
  Event.observe($('check-competition-keywords-mode'),'change', function(e) 
  { 
    if($('check-competition-keywords-mode').selectedIndex == 0) 
    {
      $('check-competition-keywords').hide();
      $('check-competition-keywords').value = '';
    }
    else if($('check-competition-keywords-mode').selectedIndex == 1)
    {
      $('check-competition-keywords').value = 'Maksymalnie 3 słowa kluczowe rozdzielone średnikiem.';
      $('check-competition-keywords').show();
    }
  });

  Event.observe($('check-competition-keywords'),'focus', function(e) 
  { 
    if($('check-competition-keywords').value == 'Maksymalnie 3 słowa kluczowe rozdzielone średnikiem.')
      $('check-competition-keywords').value = ''; 
  });

  $('check-competition-account').hide();
  $('check-competition-keywords').hide();
  
	$('check-seoscore-account').hide();
	$('check-pr-account').hide();
	$('check-partners-account').hide();
	$('check-engines-know-account').hide();
	$('check-engines-see-account').hide();
	$('check-whos-better-account').hide();
	$('check-keyword-account').hide();
	
  Event.observe($('check-competition-account-chck'),'click', 
  function(e)
  {
    if($('check-competition-account-chck').checked == true)
      $('check-competition-account').show()
    else
      $('check-competition-account').hide()
  }); 

  Event.observe($('check-seoscore-account-chck'),'click', 
  function(e)
  {
    if($('check-seoscore-account-chck').checked == true)
      $('check-seoscore-account').show()
    else
      $('check-seoscore-account').hide()
  });  	
	
	Event.observe($('check-pr-account-chck'),'click', 
  function(e)
  {
    if($('check-pr-account-chck').checked == true)
      $('check-pr-account').show()
    else
      $('check-pr-account').hide()
  });  
	
	Event.observe($('check-partners-account-chck'),'click', 
  function(e)
  {
    if($('check-partners-account-chck').checked == true)
      $('check-partners-account').show()
    else
      $('check-partners-account').hide()
  }); 
	
	Event.observe($('check-engines-know-account-chck'),'click', 
  function(e)
  {
    if($('check-engines-know-account-chck').checked == true)
      $('check-engines-know-account').show()
    else
      $('check-engines-know-account').hide()
  }); 
	
	Event.observe($('check-engines-see-account-chck'),'click', 
  function(e)
  {
    if($('check-engines-see-account-chck').checked == true)
      $('check-engines-see-account').show()
    else
      $('check-engines-see-account').hide()
  }); 
	
	Event.observe($('check-whos-better-account-chck'),'click', 
  function(e)
  {
    if($('check-whos-better-account-chck').checked == true)
      $('check-whos-better-account').show()
    else
      $('check-whos-better-account').hide()
  }); 

	Event.observe($('check-keyword-account-chck'),'click', 
  function(e)
  {
    if($('check-keyword-account-chck').checked == true)
      $('check-keyword-account').show()
    else
      $('check-keyword-account').hide()
  }); 
	
	Event.observe($('check-keyword-keywords-mode'),'change', function(e) 
  { 
    if($('check-keyword-keywords-mode').selectedIndex == 0) 
    {
      $('check-keyword-keywords').hide();
      $('check-keyword-keywords').value = '';
    }
    else if($('check-keyword-keywords-mode').selectedIndex == 1)
    {
      $('check-keyword-keywords').value = 'Maksymalnie 3 słowa kluczowe rozdzielone średnikiem.';
      $('check-keyword-keywords').show();
    }
  
  });
	
	Event.observe($('check-keyword-keywords'),'focus', function(e) 
  { 
    if($('check-keyword-keywords').value == 'Maksymalnie 3 słowa kluczowe rozdzielone średnikiem.')
      $('check-keyword-keywords').value = ''; 
  });
	
	$('check-keyword-keywords').hide();
	
}

function initSeoServices()
{
	init();
	
	$('other_text_wrapper').hide();
	
	Event.observe($('other_chck'),'click', 
  function(e)
  {
    if($('other_chck').checked == true)
      $('other_text_wrapper').show()
    else
      $('other_text_wrapper').hide()
  }); 
	
	Event.observe($('seo_services_form'),'submit', function(e) { if(!validateSeoServicesForm()) Event.stop(e); });
	
}

function initTellFriend()
{
	init();
	
	Event.observe($('tell-friend-form'),'submit', function(e) { if(!validateTellFriendForm()) Event.stop(e); });
}

function initContactForm()
{
	init();
	
	Event.observe($('contact-form'),'submit', function(e) { if(!validateContactForm()) Event.stop(e); });
}

function initProfile()
{
	init();
}

function initProfileSites()
{
	init();
	
  Event.observe($('add-site-form'),'submit', function(e) { if(!validateAddSiteForm()) Event.stop(e); });
  
	var elementsToShow = document.getElementsByClassName("to-show");
	for(var i=0; i<elementsToShow.length; i++)
	{
		elementsToShow[i].show();
	}
  
  var elements = document.getElementsByClassName("to-empty-on-focus");
  for(var i=0; i<elements.length; i++)
  {
    Event.observe(elements[i],'focus', function(e)
    {
      if(Event.element(e).value == "Podaj słowo kluczowe")
      {
        Event.element(e).value = '';
        //e.target.value = '';
      }
    })

    Event.observe(elements[i],'blur', function(e)
    {
      if(Event.element(e).value == '')
      {
        Event.element(e).value = "Podaj słowo kluczowe";
        //e.target.value = "Podaj słowo kluczowe";
      }
    })
  }
}

function initProfileBeInformed()
{
	init();
	
  var elements = document.getElementsByClassName("to-empty-on-focus");
  for(var i=0; i<elements.length; i++)
  {
    Event.observe(elements[i],'focus', function(e)
    {
      if(Event.element(e).value == "Podaj adres e-mail")
      {
        Event.element(e).value = '';
      }
    })

    Event.observe(elements[i],'blur', function(e)
    {
      if(Event.element(e).value == '')
      {
        Event.element(e).value = "Podaj adres e-mail";
      }
    })
  }
}

function initSeotistics()
{
	init();
	
	Calendar.setup(
	{
        inputField     :    "dateTo1", 
        ifFormat       :    "%Y-%m-%d",      
        showsTime      :    false,
        singleClick    :    false,
        step           :    1
  });

	Calendar.setup(
	{
        inputField     :    "dateFrom1", 
        ifFormat       :    "%Y-%m-%d",      
        showsTime      :    false,
        singleClick    :    true,
        step           :    1
  });

}

function enlargeFont()
{
  var actFontSize = $('body').getStyle('fontSize');
  var newFontSize = Number(actFontSize.sub('px', '')) + 1;
  if(newFontSize  < 17)
  {
    Cookie.set('font-size',newFontSize,3600*24*355);
    $('body').setStyle({ fontSize: newFontSize+'px'});
  }
}

function minimizeFont()
{
  var actFontSize = $('body').getStyle('fontSize');
  var newFontSize = Number(actFontSize.sub('px', '')) - 1;
  if(newFontSize > 8)
  {
    Cookie.set('font-size',newFontSize,3600*24*355);
    $('body').setStyle({ fontSize: newFontSize+'px'});
  }
}

/* ******************** */
/* FIND-SCORE-FORM */
/* ******************* */

function showLoading(spinnerId)
{
  if(spinnerId == 'loading-score')
  {
		var scoreStateList = document.createElement('ul');
		scoreStateList.name = "score-state-details";
		if($('score-state'))
		{
			scoreStateList.id = "score-state-list";
			$('score-state').appendChild(scoreStateList);
		}
		else if($('hp-score-state'))
		{
			scoreStateList.id = "hp-score-state-list";
			$('hp-score-state').appendChild(scoreStateList);
		}
  }
  $(spinnerId).show();
}

function showError(message)
{
  var message = (message == null) ? 'Wystapil blad' : message;
  //$('score-spinner').hide();
  //$('score-results-box').hide();
  alert(message);
}

/* SEO SCORE */
function showSeoScore(originalRequest)
{
  var resultHtml = '';
  var json = originalRequest.responseText.evalJSON();
  
  if(json.seoscore == -1 || json.error == true)
  {
    scoreUpdater.stop();
  	$('score-state').innerHTML = "";
  
    $('loading-score').hide(); 
    $('score-results-box').show();
		resultHtml = '<div class="result">Brak wyników - przyczyną może być niedostępność strony lub wystąpienie przekierowania</div>';
  }

  //tablica eventstab nie zainicjowana
	if(eventsTab == null)
	{
		eventsTab = new Object();
		for(var event in json)
		{
			if (event != "seoscore") 
			{
				eventsTab[event] = "pending";
			}
		}
	}

	for (var event in json) 
	{
		if(event != "seoscore" && event != "positions")
		{
			//jezeli stan zdarzenia "event" sie zmienil
			if (eventsTab[event] != json[event]) 
			{
				eventsTab[event] = json[event];
				var listEl = document.createElement('li');
				if (scoreStateLabels[event] != undefined) 
				{
					if (user == true) 
					{
						if (json[event] != -1) 
						{
		  				listEl.update(scoreStateLabels[event] + ": <em>" + json[event] + "</em>");
		  			}	
					}
					else if (user == false )
					{
						listEl.update(scoreStateLabels[event]);
					}
					$('score-state-list').appendChild(listEl);
				}
			}
		}
	}

  if(json.seoscore != "pending")
  {
  	eventsTab = null;
    scoreUpdater.stop();
    $('score-state').hide();
  
    $('loading-score').hide(); 
    $('score-results-box').show();

		if (user == false) 
		{
			resultHtml = '<div class="results-box">SEOScore twojej strony wynosi: <em>' + json.seoscore.toFixed(2) + '%</em> <a href="register.html">zobfacz szczegóły</a></div>';
  		$('score-request-result').innerHTML = resultHtml;
		}
		else if(user == true)
		{
			resultHtml = '<div class="results-box">SEOScore twojej strony wynosi: <em>' + json.seoscore.toFixed(2) + '%</em> <a href="#score-state-details" id="seoscore-show-more-button">zobacz szczegóły</a></div>';
  		$('score-request-result').innerHTML = resultHtml;
			Event.observe($('seoscore-show-more-button'),'click', function(e) 
			{ 
				if(scoreStateDetails == false)
				{
					$('score-state').show();
					$('seoscore-show-more-button').innerHTML = 'ukryj szczegóły'; 
					scoreStateDetails = true;
				}
				else if(scoreStateDetails == true)
				{
					$('score-state').hide();
					$('seoscore-show-more-button').innerHTML = 'zobacz szczegóły'; 
					scoreStateDetails = false;
				}
			});
		}
	}
}

function showSeoScoreHp(originalRequest)
{
  var resultHtml = '';
  var json = originalRequest.responseText.evalJSON();
  
	//w przypadku bledu
  if(json.seoscore == -1 || json.error == true)
  {
    scoreUpdater.stop();
  	$('hp-score-state').innerHTML = "";
  
    $('loading-score').hide(); 
    $('score-results-box').show();
		resultHtml = '<div class="result">Brak wyników - przyczyną może być niedostępność strony lub wystąpienie przekierowania</div>';
  }
	
  //tablica eventstab nie zainicjowana
	if(eventsTab == null)
	{
		eventsTab = new Object();
		for(var event in json)
		{
			if (event != "seoscore") 
			{
				eventsTab[event] = "pending";
			}
		}
	}

	for (var event in json) 
	{
		if(event != "seoscore" && event != "positions")
		{
			//jezeli stan zdarzenia "event" sie zmienil
			if (eventsTab[event] != json[event]) 
			{
				eventsTab[event] = json[event];
				var listEl = document.createElement('li');
				if (scoreStateLabels[event] != undefined) 
				{
					if (user == true) 
					{
						if (json[event] != -1) 
						{
		  				listEl.update(scoreStateLabels[event] + ": <em>" + json[event] + "</em>");
		  			}	
					}
					else if (user == false )
					{
						listEl.update(scoreStateLabels[event]);
					}
					$('hp-score-state-list').appendChild(listEl);
				}
			}
		}
	}
	
  if(json.seoscore != "pending")
  {
  	eventsTab = null;
    scoreUpdater.stop();
    $('hp-score-state').hide();
  
    $('loading-score').hide(); 
    $('score-results-box').show();
		
		if (user == false) 
		{
			resultHtml = '<div class="hp-results-box"><div id="score-value">SEOScore twojej strony wynosi: <em>' + json.seoscore.toFixed(2) + '%</em> <a href="register.html">zobacz szczegóły</a></div></div>';
		  $('score-request-result').innerHTML = resultHtml;
		}
		else if(user == true)
		{
			resultHtml = '<div class="hp-results-box"><div id="score-value">SEOScore twojej strony wynosi: <em>' + json.seoscore.toFixed(2) + '%</em> <a href="#score-state-details" id="seoscore-show-more-button">zobacz szczegóły</a></div></div>';	
		  $('score-request-result').innerHTML = resultHtml;
			Event.observe($('seoscore-show-more-button'),'click', function(e) 
			{ 
				if(scoreStateDetails == false)
				{
					$('hp-score-state').show();
					$('seoscore-show-more-button').innerHTML = 'ukryj szczegóły'; 
					scoreStateDetails = true;
				}
				else if(scoreStateDetails == true)
				{
					$('hp-score-state').hide();
					$('seoscore-show-more-button').innerHTML = 'zobacz szczegóły'; 
					scoreStateDetails = false;
				}
			});
		}
	}
}

function getSeoScore(onCompleteFunc)
{     
		scoreStateDetails = false;
  	if($('check-seoscore-account-chck').checked)
  	{
    	if(!validateEmail($('check-seoscore-email').value))
    	{
      		alert("Podaj poprawny adres e-mail");
      		return;
    	}
  	}
  
  	$('score-results-box').hide();
  	$('score-request-result').innerHTML = '';
  
  	if(validateUrl($F('find-seo-score-url')))
  	{
			if (onCompleteFunc == showSeoScoreHp) 
			{
				$('hp-score-state').innerHTML = '';
				$('hp-score-state').show();
				showLoading('loading-score');
				scoreUpdater = new PeriodicalExecuter(checkScoreStateHp, 5);
			}
			else
			{
				$('score-state').innerHTML = '';
				$('score-state').show();
				showLoading('loading-score');
				scoreUpdater = new PeriodicalExecuter(checkScoreState, 5);
			}
		}
  	else
  	{
    	showError('Podaj poprawny adres url');
  	}
}

function checkScoreStateHp()
{
	var onCompleteFunc = (onCompleteFunc == null) ? showSeoScore : onCompleteFunc;
	var url = 'service';
	var pars = 'action=sc&url=' + $F('find-seo-score-url');
	if($('check-seoscore-account-chck').checked)
      pars += '&register=true&email=' + $('check-seoscore-email').value;
    
	// na potrzeby logowania stanu zapytania
    var ajaxEl = new Ajax.Request(
      url, 
      {
        method: 'post', 
        parameters: pars, 
        asynchronous: true,
        onFailure:  showError,
        onComplete: showSeoScoreHp
      });
}

function checkScoreState()
{
	var onCompleteFunc = (onCompleteFunc == null) ? showSeoScore : onCompleteFunc;
	var url = 'service';
	var pars = 'action=sc&url=' + $F('find-seo-score-url');
	if($('check-seoscore-account-chck').checked)
      pars += '&register=true&email=' + $('check-seoscore-email').value;
    
	// na potrzeby logowania stanu zapytania
    var ajaxEl = new Ajax.Request(
      url, 
      {
        method: 'post', 
        parameters: pars, 
        asynchronous: true,
        onFailure:  showError,
        onComplete: showSeoScore
      });
}

/* PAGE-RANK */

function showPagerank(originalRequest)
{
  $('loading-pr').hide();  
	$('pr-results-box').show();
  var json = originalRequest.responseText.evalJSON();
  var resultHtml = '';
  
  if(json.pagerank == '-')
  {
    resultHtml = '<div class="result">Brak wyników - przyczyną może być niedostępność strony lub wystąpienie przekierowania</div>';
  }
  else
  {
    resultHtml = '<div class="result">Pagerank podanego adresu jest równy: <em>' + json.pagerank + '</em></div>';
  }
  $('pr-request-result').innerHTML = resultHtml;
}


function getPagerank()
{ 
  if($('check-pr-account-chck').checked)
  {
    if(!validateEmail($('check-pr-email').value))
    {
      alert("Podaj poprawny adres e-mail");
      return;
    }
  }
  
  $('pr-results-box').hide();
  $('pr-request-result').innerHTML = '';
  
  if(validateUrl($F('check-pr-url')))
  {
    var url = 'service';
    //url = 'test.php';
    var pars = 'action=pr&url=' + $F('check-pr-url');
    if($('check-pr-account-chck').checked)
      pars += '&register=true&email=' + $('check-pr-email').value;
    var ajaxEl = new Ajax.Request(
      url, 
      {
        method: 'post', 
        parameters: pars, 
        asynchronous: true,
        onCreate:   showLoading('loading-pr'),
        onFailure:  showError,
        onComplete: showPagerank
      });
  }
  else
  {
    showError('Podaj poprawny adres url');
  }
}

/* PARTNERS */

function showPartners(originalRequest)
{
  $('loading-partners').hide();  
	$('partners-results-box').show();
  var json = originalRequest.responseText.evalJSON();
  var resultHtml = '';
  
  resultHtml += '<div class="result">Liczba odnośników do podanego adresu: <em>' + json.backlinks + '</em></div>';

  $('partners-request-result').innerHTML = resultHtml;
}

function getPartners()
{
  if($('check-partners-account-chck').checked)
  {
    if(!validateEmail($('check-partners-email').value))
    {
      alert("Podaj poprawny adres e-mail");
      return;
    }
  }
  
  $('partners-results-box').hide();
  $('partners-request-result').innerHTML = '';
  
  if(validateUrl($F('check-partners-url')))
  {
    var url = 'service';
    //url = 'test.php';
    var pars = 'action=backlinks&engine=' + $F('check-partners-engine') + '&url=' + $F('check-partners-url');
    if($('check-partners-account-chck').checked)
      pars += '&register=true&email=' + $('check-partners-email').value;
    var ajaxEl = new Ajax.Request(
      url, 
      {
        method: 'post', 
        parameters: pars, 
        asynchronous: true,
        onCreate:   showLoading('loading-partners'),
        onFailure:  showError,
        onComplete: showPartners
      });
  }
  else
  {
    showError('Podaj poprawny adres url');
  }
}

/* ENGINES-KNOW-YOU */

function showEnginesKnow(originalRequest)
{
  $('loading-engines-know').hide(); 
	$('engines-know-results-box').show();
  var json = originalRequest.responseText.evalJSON();
  var resultHtml = '';
  
  resultHtml += '<div class="result">Liczba zaindeksowanych stron dla podanego adresu: <em>' + json.sites + '</em></div>';
  
  $('engines-know-request-result').innerHTML = resultHtml;
}

function getEnginesKnow()
{
  if($('check-engines-know-account-chck').checked)
  {
    if(!validateEmail($('check-engines-know-email').value))
    {
      alert("Podaj poprawny adres e-mail");
      return;
    }
  }
  
  $('engines-know-results-box').hide();
  $('engines-know-request-result').innerHTML = '';
  
  if(validateUrl($F('check-engines-know-url')))
  {
    var url = 'service';
    //url = 'test.php';
    var pars = 'action=indexed&engine=' + $F('check-engines-know-engine') + '&url=' + $F('check-engines-know-url');
    if($('check-engines-know-account-chck').checked)
      pars += '&register=true&email=' + $('check-engines-know-email').value;
    var ajaxEl = new Ajax.Request(
      url, 
      {
        method: 'post', 
        parameters: pars, 
        asynchronous: true,
        onCreate:   showLoading('loading-engines-know'),
        onFailure:  showError,
        onComplete: showEnginesKnow
      });
  }
  else
  {
    showError('Podaj poprawny adres url');
  }
}

/* ENGINES-SEE-YOU */

function showEnginesSee(originalRequest)
{
  $('loading-engines-see').hide();  
	$('engines-see-results-box').show();
  var json = originalRequest.responseText.evalJSON();
  var resultHtml = '';
  
  if(json.page == '')
  {
    resultHtml = '<div class="result">Brak wyników - przyczyną może być niedostępność strony lub wystąpienie przekierowania</div>';
  }
  else
  {
    resultHtml += '<div class="result">' + json.page + '</em></div>';
  }
  $('engines-see-request-result').innerHTML = resultHtml;
}

function getEnginesSee()
{
  if($('check-engines-see-account-chck').checked)
  {
    if(!validateEmail($('check-engines-see-email').value))
    {
      alert("Podaj poprawny adres e-mail");
      return;
    }
  }
  
  $('engines-see-results-box').hide();
  $('engines-see-request-result').innerHTML = '';
  
  if(validateUrl($F('check-engines-see-url')))
  {
    var url = 'service';
    //url = 'test.php';
    var pars = 'action=crawler&url=' + $F('check-engines-see-url');
    if($('check-engines-see-account-chck').checked)
      pars += '&register=true&email=' + $('check-engines-see-email').value;
    var ajaxEl = new Ajax.Request(
      url, 
      {
        method: 'post', 
        parameters: pars, 
        asynchronous: true,
        onCreate:   showLoading('loading-engines-see'),
        onFailure:  showError,
        onComplete: showEnginesSee
      });
  }
  else
  {
    showError('Podaj poprawny adres url');
  }
}

/* WHOS-BETTER */

function showWhosBetter(originalRequest)
{
  $('loading-whos-better').hide();
	$('whos-better-results-box').show();
  var json = originalRequest.responseText.evalJSON(true);
	var resultHtml = '';

  if(json.concurrence == undefined || json.error == true || json.concurrence.length == 0)
  {
    resultHtml = '<div class="result">Brak wyników - przyczyną może być niedostępność strony lub wystąpienie przekierowania</div>';
  }
  else
  {
  	for(var i=0; i<json.concurrence.length; i++)
		{
     	var lastPosition;
		  for (var keyword in json.concurrence[i]) 
	  	{
				lastPosition = 0;
	  		resultHtml += '<ul class="result"><li class="header">Słowo kluczowe: <em>' + keyword + '</em></li>';
	  		for (var j=0; j<json.concurrence[i][keyword].length; j++) 
				{
					if(json.concurrence[i][keyword][j].position > lastPosition+1)
					{
						for(var k = lastPosition+1; k<json.concurrence[i][keyword][j].position; k++)
						{
							resultHtml += '<li> Pozycja: <em>' + k + '</em> - Twoja strona</li>';
						}
					}
					lastPosition = json.concurrence[i][keyword][j].position;
					resultHtml += '<li> Pozycja: <em>' + json.concurrence[i][keyword][j].position + '</em> - <a href="' + json.concurrence[i][keyword][j].url + '" target="_blank">' + json.concurrence[i][keyword][j].title + '</a></li>';
	  		}
	  		resultHtml += '</ul>';
	  	}	
		}
  }
  
  $('whos-better-request-result').innerHTML = resultHtml;
  
}

function getWhosBetter()
{
  if($('check-whos-better-account-chck').checked)
  {
    if(!validateEmail($('check-whos-better-email').value))
    {
      alert("Podaj poprawny adres e-mail");
      return;
    }
  }
  
  $('whos-better-results-box').hide();
  $('whos-better-request-result').innerHTML = '';
  
  if(validateUrl($F('check-whos-better-url')))
  {
    var url = 'service';
    //url = 'whosBetter.txt';
    var pars = 'action=concurrence&engine=' + $F('check-whos-better-engine') + '&url=' + $F('check-whos-better-url');
    if($('check-whos-better-account-chck').checked)
      pars += '&register=true&email=' + $('check-whos-better-email').value;
    var ajaxEl = new Ajax.Request(
      url, 
      {
        method: 'post', 
        parameters: pars, 
        asynchronous: true,
        onCreate:   showLoading('loading-whos-better'),
        onFailure:  showError,
        onComplete: showWhosBetter
      });
  }
  else
  {
    showError('Podaj poprawny adres url');
  }
}

/* POWER-COMPETITION */

function showPowerCompetition(originalRequest)
{
  var resultHtml = '';
  $('loading-competition').hide();
	$('competition-results-box').show();
 
  var json = originalRequest.responseText.evalJSON(true);
 
  if(json.error == true)
  {
    resultHtml = '<div class="result">Brak wyników - przyczyną może być niedostępność strony lub wystąpienie przekierowania</div>';
  }
  else
  {  
    // wyswietlenie wykresu
    //var so = new SWFObject("./open-flash-chart.swf?data=chart", "", "600", "240", "9", "#ffffff");
    //so.write("competition-chart-wrapper");
    //$('competition-chart-wrapper').show();
		
    for(var i=0; i<json.competitors.length; i++)
    {	
			resultHtml += '<div class="result">';
      resultHtml += '<h2>Adres url: <em><a href="http://' + json.competitors[i].name + '" target="_blank">' + json.competitors[i].name + '</a></em></h2>';
      
      resultHtml += '<h3>1. Ogólne</h3>';
      resultHtml += '<div class="box"><ul><li class="label">Walidacja html:</li>';
      if(json.competitors[i].tests.htmlvalid == true)
      {
        resultHtml +='<li class="longest"><img src="img/icon_ok.gif" alt="tak"/></li>';
      }
      else
      {
        resultHtml +='<li class="longest"><img src="img/icon_failed.gif" alt="nie"/></li>';
      }
      resultHtml += '<li class="label">Pagerank:</li><li class="longest"><img src="img/pr' + json.competitors[i].tests.pagerank + '.gif" alt="pagerank"/>&nbsp;' + json.competitors[i].tests.pagerank + '</li>';
      resultHtml += '<li class="label">Alexa (ranking):</li><li class="longest">' + json.competitors[i].tests.alexa + '</li><div class="cl-both">&nbsp;</div></div>';
      
      resultHtml += '<h3>2. Słowa kluczowe</h3><div class="box"><ul>';
      for(var j=0; j<json.competitors[i].tests.engines.length; j++)
      {
        var keywordsCount = json.competitors[i].tests.engines[j].position.length;         
        if(j == 0)
        {
          resultHtml += '<li class="blank">&nbsp;</li>';
          for(var k=0; k<json.competitors[i].tests.engines[j].position.length; k++)
          {
            resultHtml += '<li class="header ';
            if(keywordsCount == 2)
            {
              resultHtml += 'longer';
            }
            else if(keywordsCount == 1)
            {
              resultHtml += 'longest';
            }
            resultHtml += '">' + json.competitors[i].tests.engines[j].position[k].keyword + '</li>';
          }             
        }
        resultHtml += '<li class="label">' + json.competitors[i].tests.engines[j].name + '</li>';
        for(var k=0; k<json.competitors[i].tests.engines[j].position.length; k++)
        {
          if(json.competitors[i].tests.engines[j].position[k].value == -1)
          {
            resultHtml += '<li ';
            if(keywordsCount == 2)
            {
              resultHtml += 'class="longer"';
            }
            else if(keywordsCount == 1)
            {
              resultHtml += 'class="longest"';
            }
            resultHtml += '>-</li>';
          }
          else
          {
            resultHtml += '<li ';
            if(keywordsCount == 2)
            {
              resultHtml += 'class="longer"';
            }
            else if(keywordsCount == 1)
            {
              resultHtml += 'class="longest"';
            }
            resultHtml += '>' + json.competitors[i].tests.engines[j].position[k].value + '</li>';
          }
        }
      }
      resultHtml += '</ul><div class="cl-both">&nbsp;</div></div>';
      
      resultHtml += '<h3>3. Wyszukiwarki - podsumowanie</h3><div class="box"><ul>';
      for(var j=0; j<json.competitors[i].tests.engines.length; j++)
      {
        if(j == 0)
        {
          resultHtml += '<li class="blank">&nbsp;</li>';
          resultHtml += '<li class="header longer">Odnośniki zewnętrzne</li>';
          resultHtml += '<li class="header longer">Zaindeksowane podstrony</li>';
        }
        resultHtml += '<li class="label">' + json.competitors[i].tests.engines[j].name + '</li>';
        if(json.competitors[i].tests.engines[j].backlinks == -1)
        {
          resultHtml += '<li class="longer">-</li>';
        }
        else
        {
          resultHtml += '<li class="longer">' + json.competitors[i].tests.engines[j].backlinks + '</li>';
        }
        if(json.competitors[i].tests.engines[j].indexed == -1)
        {
          resultHtml += '<li class="longer">-</li>';
        }
        else
        {
          resultHtml += '<li class="longer">' + json.competitors[i].tests.engines[j].indexed + '</li>';
        }
      }
      resultHtml += '</ul>';      
      
      
      resultHtml += '</ul><div class="cl-both">&nbsp;</div></div>';
      resultHtml += '</div>';
    }
  }

  $('competition-request-result').innerHTML = resultHtml;
  
}

function getPowerCompetition()
{
  if($('check-competition-account-chck').checked)
  {
    if(!validateEmail($('check-competition-email').value))
    {
      alert("Podaj poprawny adres e-mail");
      return;
    }
  }
  
  $('competition-results-box').hide();
  $('competition-request-result').innerHTML = '';
  
  if(validateCompetitionForm())
  {
    var url = 'service';
    //url = 'test.txt';
		var pars = 'action=competition&url=' +$F('check-competition-url');

    if($F('check-competition-concurent1').length > 0)
      pars += '&site1=' + $F('check-competition-concurent1');
    if($F('check-competition-concurent2').length > 0)
      pars += '&site2=' + $F('check-competition-concurent2');
    if($F('check-competition-concurent3').length > 0)
      pars += '&site3=' + $F('check-competition-concurent3');
    if($F('check-competition-concurent4').length > 0)
      pars += '&site4=' + $F('check-competition-concurent4');
			
    if($F('check-competition-keywords-mode').selectedIndex == 0)
      pars += '&mode=auto';
		else if($F('check-competition-keywords-mode').selectedIndex == 1)
      pars += '&mode=manual&keywords=' + $F('check-competition-keywords');
			
    if($('check-competition-account-chck').checked)
      pars += '&register=true&email=' + $('check-competition-email').value;
      
    var ajaxEl = new Ajax.Request(
      url, 
      {
        method: 'post', 
        parameters: pars, 
        asynchronous: true,
        onCreate:   showLoading('loading-competition'),
        onFailure:  showError,
        onComplete: showPowerCompetition
      });
  }
}


/* KEYWORD */

function showKeyword(originalRequest)
{
  $('loading-keyword').hide();  
	$('keyword-results-box').show();
  var json = originalRequest.responseText.evalJSON();
  var resultHtml = '';
  
	if(json.error == true)
	{
		resultHtml += '<div class="result">Brak wyników -  przyczyną może być niedostępność strony lub wystąpienie przekierowania</div>';
	}
	else
	{
    for(var keyword in json.position)
    {
      resultHtml += '<div class="result">Podany adres jest na <em>' +  json.position[keyword] + '</em> pozycji dla słowa kluczowego <em>' + keyword + '</em></div>';
    }
	}
  $('keyword-request-result').innerHTML = resultHtml;
}

function getKeyword()
{
  if($('check-keyword-account-chck').checked)
  {
    if(!validateEmail($('check-keyword-email').value))
    {
      alert("Podaj poprawny adres e-mail");
      return;
    }
  }
  
  $('keyword-results-box').hide();
  $('keyword-request-result').innerHTML = '';
  
  if(validateUrl($F('check-keyword-url')))
  {
    var url = 'service';
		var pars
    //url = 'test.php';
		
		if($('check-keyword-keywords-mode').selectedIndex == 0)
    	pars = 'action=position&url=' + $F('check-keyword-url') + '&engine=' + $F('check-keyword-engine') + '&mode=auto';
    else
			pars = 'action=position&url=' + $F('check-keyword-url') + '&engine=' + $F('check-keyword-engine') + '&mode=manual&keywords=' + $F('check-keyword-keywords');

		if($('check-keyword-account-chck').checked)
      pars += '&register=true&email=' + $('check-keyword-email').value;
    $('keyword-request-result')
    
    var ajaxEl = new Ajax.Request(
      url, 
      {
        method: 'post', 
        parameters: pars, 
        asynchronous: true,
        onCreate:   showLoading('loading-keyword'),
        onFailure:  showError,
        onComplete: showKeyword
      });
  }
  else
  {
    showError('Podaj poprawny adres url');
  }
}

/* HEADER SLIDING */

function slideUpHeader()
{
  $('slide-up-button').hide();
  Effect.SlideUp('slide-box',{duration: 1});  
  Cookie.set('slide-box-shown',1,3600*24*355);
  $('slide-down-button').show();
}

function slideDownHeader()
{
  $('slide-down-button').hide();
  Effect.SlideDown('slide-box',{duration: 1});  
  Cookie.erase('slide-box-shown');
  $('slide-up-button').show();
}

/* LOGIN FORM */

/*
function loginFormSubmit(param)
{
  if (param==1) $('login-form').action = "login";
  if (param==2) $('login-form').action = "register.html";

  $('login-form').submit();
  return false;
}
*/
/* HELPERS */

function linkTo(href,anchor)
{
  var anchor = (anchor == null) ? href : anchor;
  var result = '<a href="http://' + href + '" target="_blank">' + anchor + '</a>';
  return result;
}

/* VALIDATION */

function validateUrl(url)
{
  var urlRegExp =  /^(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)?@)?([\d\w][-\d\w]{0,253}[\d\w]\.)+[\w]{2,4}(:[\d]+)?(\/([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&?([-+_~.\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)?$/;
  if (urlRegExp.test(url))
  {
     return true;
  }
  else
  {
     return false; 
  }
}

function validateEmail(email)
{
	var emailRegExp  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if(emailRegExp.test(email))
	{
		return true;
	}
	else
	{
		return false;
	}
}

function validateCompetitionForm()
{
  var errorMessage = '';
  
  if($F('check-competition-url').length == 0)
  {
    errorMessage += 'Adres url - wpisz wartość\n';
  }
  else if(!validateUrl($F('check-competition-url')))
  {
    errorMessage += 'Adres url - wpisz poprawny url\n';
  }

  
  var counter = 0;
  for(var i=1; i<=4; i++)
  {
    if($F('check-competition-concurent' + i).length == 0)
    {
      counter++;
    }
  }
  if(counter == 4)
  {
    errorMessage += 'Musisz podać przynajmniej jednego konkurenta\n';
  }
  
  for(var i=1; i<=4; i++)
  {
    if($F('check-competition-concurent' + i).length > 0 && !validateUrl($F('check-competition-concurent' + i)))
    {
      errorMessage += 'Concurent #' + i + ' - wpisz poprawny url\n';
    }
  }
  

  if(($('check-competition-keywords-mode').selectedIndex == 1) && (($F('check-competition-keywords').length == 0) || ($F('check-competition-keywords') == 'Maksymalnie 3 słowa kluczowe rozdzielone średnikiem.')))
  {
    errorMessage += 'Słowa kluczowe - wypełnij pole';
  }
  
  if(errorMessage.length > 0)
  {
    alert(errorMessage);
    return false;
  }
  
  return true;
}

function validateTellFriendForm()
{
  var errorMessage = '';
  
  if($F('author-email').length == 0)
  {
    errorMessage += 'Twój e-mail - wpisz wartość\n';
  }
	else if(!validateEmail($F('author-email')))
	{
		errorMessage += 'Twój e-mail - wpisz poprawny adres e-mail\n';
	}
	
  if($F('recipient-email').length == 0)
  {
    errorMessage += 'E-mail odbiorcy - wpisz wartość\n';
  }
	else if(!validateEmail($F('recipient-email')))
	{
		errorMessage += 'E-mail odbiorcy - wpisz poprawny adres e-mail\n';
	}
    
  if(errorMessage.length > 0)
  {
    alert(errorMessage);
    return false;
  }
  
  return true;
}

function validateContactForm()
{
  var errorMessage = '';
  
  if($F('name').length == 0)
  {
    errorMessage += 'Imię i nazwisko - wpisz wartość\n';
  }
	
	if($F('email').length == 0)
	{
		errorMessage += 'Adres e-mail - wpisz wartość\n';
	}
	else if(!validateEmail($F('email')))
	{
		errorMessage += 'Twój e-mail - wpisz poprawny adres e-mail\n';
	}

  if(errorMessage.length > 0)
  {
    alert(errorMessage);
    return false;
  }
  
  return true;
}

function validateAddSiteForm()
{
  var errorMessage = '';
  
  if($F('url').length == 0)
  {
    errorMessage += 'Url - wpisz wartość\n';
  }
	else if(!validateUrl($F('url')))
	{
		errorMessage += 'Url - wpisz poprawny adres url\n';
	}

  if(errorMessage.length > 0)
  {
    alert(errorMessage);
    return false;
  }
  
  return true;
}

function validateSeoServicesForm()
{
  var errorMessage = '';
  
  if($F('name').length == 0)
  {
    errorMessage += 'Imię i nazwisko - wpisz wartość\n';
  }
	
  if($F('email').length == 0)
  {
    errorMessage += 'Adres e-mail - wpisz wartość\n';
  }
	else if(!validateEmail($F('email')))
	{
		errorMessage += 'Adres e-mail - wpisz poprawny adres e-mail\n';
	}
	
	if($F('url').length > 0)
	{
		if(!validateUrl($F('url')))
		{
			errorMessage += 'Strona internetowa - wpisz poprawny adres url\n';
		}
	}
		
  if(errorMessage.length > 0)
  {
    alert(errorMessage);
    return false;
  }
  
  return true;
}

function showChart()
{
  // wyswietlenie wykresu
  var so = new SWFObject("./open-flash-chart.swf?data=chart", "", "600", "240", "9", "#ffffff");
  so.write("competition-chart-wrapper");
}

function hideById(id)
{
	$(id).hide();
	$('hide_'+id).hide();
	$('show_'+id).show();
}

function showById(id)
{
	$(id).show();
	$('show_'+id).hide();
	$('hide_'+id).show();
}

function selectAll(checkBoxName)
{
	var checkboxes = document.getElementsByName(checkBoxName);
	for(var i=0; i<checkboxes.length; i++)
	{
		checkboxes[i].checked = true;
	}
}

function deselectAll(checkBoxName)
{
	var checkboxes = document.getElementsByName(checkBoxName);
	for(var i=0; i<checkboxes.length; i++)
	{
		checkboxes[i].checked = false;
	}
}