﻿/* HELP - napovedy */
function displayHelp(element) {
	document.getElementById(element.id + '_help').innerHTML = element.title;
	//element.title = '';
	document.getElementById(element.id + '_help').style.display = 'inline';
	document.getElementById(element.id + '_help_arrow').style.display = 'inline';
}
function hideHelp(element) {
	//element.title = document.getElementById(element.id + '_help').innerHTML;
	//document.getElementById(element.id + '_help').innerHTML = '&nbsp;';
	document.getElementById(element.id + '_help').style.display = 'none';
	document.getElementById(element.id + '_help_arrow').style.display = 'none';
}

function changeDisplay(element_id, element) {
	if (document.getElementById(element_id).style.display == 'none' || document.getElementById(element_id).style.display == '') {
		if (element != null) {
			element.style.background = 'url("/img/help.gif") no-repeat right bottom';
		}
		document.getElementById(element_id).style.display = 'block';
	} else {
		if (element != null) {
			element.style.background = 'url("/img/help_unactive.gif") no-repeat right bottom';
		}
		document.getElementById(element_id).style.display = 'none';
	}
}

/* AJAX - odeslani formu */
var progress_text;
var progress_changer;
var progress_state;
progress_state = 0;
// kontrola formu
function validateForm() {
	var f_alert;
	f_alert = '';
	//if (null == document.getElementById('domain').value.match(/(^(((http|https):\/\/)?[[:alnum:]]+([-_\.]?[[:alnum:]])*\.[[:alpha:]]{2,4}(\/{1}[-_~&=\?\.a-z0-9]*)*$)|((^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})(\/{1}[-_~&=\?\.a-z0-9]*)*$)/gi)) {
	if (document.getElementById('domain').value == '') {
		f_alert += 'Doména je povinnou položkou (napr. www.webkomplex.sk).' + "\n";
	} else if (null == document.getElementById('domain').value.match(/^((http|https):\/\/)?[a-zA-Z0-9]+([-.]?[a-zA-Z0-9])*\.[a-zA-Z]{2,4}[\/]?$/gi)) {
		f_alert += 'Doména nieje zadaná v správnom tvare (napr. www.webkomplex.sk).' + "\n";
	}
	if (trim(document.getElementById('query').value).length == 0) {
		f_alert += 'Slovné spojenie je povinnou položkou - zadajte jedno slovo, slovné spojenie alebo viacero slov alebo slovných spojení oddelených čiarkami (napr. webkopmlex, systém, modulárny systém).';
	}
	if (f_alert.length == 0) {
		return true;
	} else {
		return f_alert;
	}
}
// trim js
function trim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g, '');
}
// ajax odeslani formu
function analyzeWeb() {
	// skryjeme vsechny napovedy
	document.getElementById('domain_help').style.display = 'none';
	document.getElementById('domain_help_arrow').style.display = 'none';
	document.getElementById('query_help').style.display = 'none';
	document.getElementById('query_help_arrow').style.display = 'none';
	document.getElementById('lang_help').style.display = 'none';
	document.getElementById('lang_help_arrow').style.display = 'none';
	validate = validateForm();
	if (validate == true) {
		// zabranime dalsimu odeslani
		document.getElementById('submit_button').disabled = true;
		// sestav ajax request
		var post_request = getFormAjaxRequest('seo_form') + '&ajax=true';
		// ajax request do bufferu
		ajax.addRequest('/', 'POST', post_request, null, checkResult);
		// progress
		domain_name = document.getElementById('domain').value;
		progress_text = 'Analyzuji web:<br>' + domain_name;
		ajax.displayProgress(progress_text);
		// budeme menit progress text
		progress_changer = window.setInterval('changeProgress()', 200);
		return true;
	} else {
		alert(validate);
		return false;
	}
}
// kontrola vysledku
function checkResult(ajax_state) {
	if (ajax_state == 'COMPLETE') {
		// vypneme zmenu progressu
		window.clearInterval(progress_changer);
		progress_changer = null;
		progress_text = '';
		progress_state = 0;
		// povolime dalsi odeslani
		document.getElementById('submit_button').disabled = false;
		// skryjeme progress
		ajax.hideProgress();
		if (ajax.getStatusCode() == 200) {
			var result = ajax.getResponse();
			// doslo k uspechu?
			if (result.indexOf('success') != -1) {
				// prejdeme na vysledek
				location.href = result.substring(8);
				return true;
			} else {
				// zustaneme, neco je v neporadku a vypiseme chybu
				// v podstate muze nastat pouze to, ze neni dostupna domena
				if (result == '') {
					result = 'Neznáma chyba - daný web nieje možné otestovať (nieje dostupný, vypršal časový limit).';
				}
				document.getElementById('domain_label').className = 'redfont';
				alert(result);
				return false;
			}
		} else {
			alert('Chyba pri načítaní stránky - ' + ajax.getStatusCode() + ': ' + ajax.getStatusText() + '.');
			return false;
		}
	}
	return false;
}

// zmena textu progressu
function changeProgress() {
	if (progress_state == 0) {
		progress_state = 1;
		ms = 0;
		start = new Date();
	} else {
		now = new Date();
		ms = now.getTime() - start.getTime();
	}
	ajax.changeProgressText(progress_text + ms);
	if (ms < 4000) {
		ajax.changeProgressText(progress_text + '<br>Informácie o stránke');
	} else if (ms < 5500) {
		ajax.changeProgressText(progress_text + '<br>Ranky (hodnotenie stránky)');
	} else if (ms < 7000) {
		ajax.changeProgressText(progress_text + '<br>Validita stránky');
	} else if (ms < 10000) {
		ajax.changeProgressText(progress_text + '<br>Obsah stránky');
	} else if (ms < 13000) {
		ajax.changeProgressText(progress_text + '<br>Klúčové slová');
	} else if (ms < 16000) {
		ajax.changeProgressText(progress_text + '<br>Hľadané slová');
	} else {
		ajax.changeProgressText(progress_text + '<br>Umiestnenie vo vyhľadávačoch');
	}
}

function futurePagerank(url) {
	if (document.getElementById('future_pagerank').style.display == '' || document.getElementById('future_pagerank').style.display == 'none') {
		document.getElementById('future_pagerank').style.display = 'block';
		if (document.getElementById('future_pagerank').innerHTML == '&nbsp;') {
			document.getElementById('future_pagerank').style.paddingTop = '20px';
			document.getElementById('future_pagerank').style.background = '#f6f6f6 url("/wamos/new/img/ajax/loading.gif") no-repeat center 5px';
			document.getElementById('future_pagerank').innerHTML = '<strong>Google data centra</strong><br><br style="line-height: 5px;">';
			for (var i = 0; i < 23; i++) {
				futurePagerankChecker(url + '?serie=' + i + '&ajax=true');
			}
		}
	} else {
		document.getElementById('future_pagerank').style.display = 'none';
	}
}

function futurePagerankChecker(url) {
	//'serie=' + encodeURIComponent(serie) + '&ajax=true'
	ajax.addRequest(url, 'GET', null, null, checkPagerank);
}

function checkPagerank(ajax_state) {
	if (ajax_state == 'COMPLETE') {
		var result = ajax.getResponse();
		// doslo k uspechu?
		if (result.indexOf('success') != -1) {
			// doplnime vysledek
			pagerank = result.substring(8);
			document.getElementById('future_pagerank').innerHTML += pagerank + '<br>';
			// pokud uz neni nic ve fronte
			if (ajax.buffer.length === 0) {
				document.getElementById('future_pagerank').style.paddingTop = '10px';
				document.getElementById('future_pagerank').style.background = '#f6f6f6';
			}
			return true;
		} else {
			// doplnime protrzeni = nebylo nalezeno
			document.getElementById('future_pagerank').innerHTML += '-<br>';
			// pokud uz neni nic ve fronte
			if (ajax.buffer.length === 0) {
				document.getElementById('future_pagerank').style.paddingTop = '10px';
				document.getElementById('future_pagerank').style.background = '#f6f6f6';
			}
			return true;
		}
	} else {
		return false;
	}
}


function validateDomain(domain) {
	if (domain == '') {
		return true;
	} else if (null == domain.match(/^[a-zA-Z0-9]+([-.]?[a-zA-Z0-9])*\.[a-zA-Z]{2,4}[\/]?$/gi)) {
		alert('Doména pre RSS kanál nieje v správnom tvare (zadajte bez http:// a bez lomítka na konci).');
		return false;
	} else {
		return true;
	}
}
