function kontrolaMail(text)
{
  var reg=/^[^.]+(\.[^.]+)*@([^.]+[.])+[a-z]{2,3}$/;
  if(!reg.test(text)) return false;
  return true;
}
function kontrolaText(text)
{
  var reg=/.+/;
  if(!reg.test(text)) return false;
  return true;
}
function kontrolaTel(text)
{
  var reg=/^\+420\.[0-9]{9}$/;
  if(!reg.test(text)) return false;
  return true;  
}
function kontrolaCislo(text)
{
  var reg=/^[0-9]+$/;
  if(!reg.test(text)) return false;
  return true;  
}
function kontrolaUliceCp(text)
{
  var reg=/^.+[0-9]+$/;
  if(!reg.test(text)) return false;
  return true;  
}
function kontrolaPsc(text)
{
  var reg=/^[0-9]{5}$/;
  if(!reg.test(text)) return false;
  return true;  
}
function kontrolaDatum(text)
{
  var reg=new RegExp("^[0-9]{2}-[0-9]{2}-[0-9]{4}$");
  if(!reg.test(text)) return false;
  return true;  
}
function kontrolaDatumNepovinny(text)
{
  var reg1=new RegExp("^[0-9]{2}-[0-9]{2}-[0-9]{4}$");
  var reg2=new RegExp("^dd-mm-yyyy$");
  var reg3=new RegExp("^$");
  if(!reg1.test(text) && !reg2.test(text) && !reg3.test(text)) return false;
  return true;  
}
function kontrolaYTube(text)
{
  var reg=new RegExp("^http://www\.youtube\.com/watch\\?v=.*$");
  if(!reg.test(text)) return false;
  return true;
}
function kontrola(form)
{
  if(form=="prihlaska")
  {
    var hlaska="";
    var jmeno=kontrolaText(document.forms[form].jmeno.value);
    var prijmeni=kontrolaText(document.forms[form].prijmeni.value);
    var ulice=kontrolaUliceCp(document.forms[form].ulice.value);
    var posta=kontrolaText(document.forms[form].posta.value);
    var psc=kontrolaPsc(document.forms[form].psc.value);
    var tel=kontrolaTel(document.forms[form].telefon.value);
    var email=kontrolaMail(document.forms[form].email.value);
    var ocekavani=kontrolaText(document.forms[form].ocekavani.value);
    var prispeni=kontrolaText(document.forms[form].prispeni.value);
    
    if(!jmeno) hlaska+="· zadejte jméno\n";
    if(!prijmeni) hlaska+="· zadejte příjmení\n";
    if(!ulice) hlaska+="· ulice a č.p. má neplatný tvar\n";
    if(!posta) hlaska+="· pošta má neplatný tvar\n";
    if(!psc) hlaska+="· PSČ má neplatný tvar\n";
    if(!tel) hlaska+="· telefon má neplatný tvar\n";
    if(!email) hlaska+="· e-mail má neplatný tvar\n";
    if(!ocekavani) hlaska+="· pole Co očekáváte od svého vstupu… je prázdné\n";
    if(!prispeni) hlaska+="· pole Jak můžete přispět… je prázdné\n";
    if(hlaska!="") 
    {
      alert(hlaska);
      return false;
    }
    return true;
  }
  else if(form=="objednavka")
  {
    var hlaska="";
    var jmeno=kontrolaText(document.forms[form].jmeno.value);
    var ulice=kontrolaUliceCp(document.forms[form].ulice.value);
    var posta=kontrolaText(document.forms[form].posta.value);
    var psc=kontrolaPsc(document.forms[form].psc.value);
    var tel=kontrolaTel(document.forms[form].telefon.value);
    var email=kontrolaMail(document.forms[form].email.value);

    if(!jmeno) hlaska+="· zadejte jméno a příjmení\n";
    if(!ulice) hlaska+="· ulice a č.p. má neplatný tvar\n";
    if(!posta) hlaska+="· pošta má neplatný tvar\n";
    if(!psc) hlaska+="· PSČ má neplatný tvar\n";
    if(!tel) hlaska+="· telefon má neplatný tvar\n";
    if(!email) hlaska+="· e-mail má neplatný tvar\n";
    if(hlaska!="") 
    {
      alert(hlaska);
      return false;
    }
    else return confirm("Stisknutím OK bude Vaše objednávka odeslána");
  }
  else if(form=="texty")
  {
    var hlaska="";
    var nazev=kontrolaText(document.forms[form].nazev.value);
    var terminOd=kontrolaDatumNepovinny(document.forms[form].terminod.value);
    var terminDo=kontrolaDatumNepovinny(document.forms[form].termindo.value);
    var clanek=kontrolaText(document.forms[form].clanek.value);

    if(!nazev) hlaska+="· zadejte titulek článku / odkazu\n";
    if(!terminOd) hlaska+="· termín od má neplatný tvar\n";
    if(!terminDo) hlaska+="· termín do má neplatný tvar\n";
    if(!clanek) hlaska+="· zadejte text článku / odkaz\n";
    if(hlaska!="") 
    {
      alert(hlaska);
      return false;
    }
    else return;
  }
  else if(form=="video")
  {
    var hlaska="";
    var videoodkaz=kontrolaYTube(document.forms[form].videoodkaz.value);
    
    if(!videoodkaz) hlaska+="· URL videa má neplatný tvar\n";
    if(hlaska!="") 
    {
      alert(hlaska);
      return false;
    }
    else return;
  }
  else if(form=="fotky")
  {
    var hlaska="";
    var albumnazev=kontrolaText(document.forms[form].albumnazev.value);
    var albumdatum=kontrolaDatumNepovinny(document.forms[form].albumdatum.value);
    
    if(!albumdatum) hlaska+="· termín má neplatný tvar\n";
    if(!albumnazev) hlaska+="· zadejte název alba\n";
    if(hlaska!="") 
    {
      alert(hlaska);
      return false;
    }
    else return;
  }
  else if(form=="prispevek")
  {
    var hlaska="";
    var jmeno=kontrolaText(document.forms[form].jmeno.value);
    var email=kontrolaMail(document.forms[form].email.value);
    var tel=kontrolaTel(document.forms[form].telefon.value);
    var inzerat=kontrolaText(document.forms[form].inzerat.value);
    
    if(!jmeno) hlaska+="· vyplňte jméno a příjmení\n";
    if((document.forms[form].email.value=="" && document.forms[form].telefon.value=="") || (document.forms[form].email.value=="@" && document.forms[form].telefon.value=="+420.") || (document.forms[form].email.value=="" && document.forms[form].telefon.value=="+420.") || (document.forms[form].email.value=="@" && document.forms[form].telefon.value=="")) hlaska+="· vyplňte alespoň jeden kontakt\n";
    else
    {
      if(document.forms[form].email.value!="" && document.forms[form].email.value!="@" && !email) hlaska+="· e-mail má neplatný tvar\n";
      if(document.forms[form].telefon.value!="" && document.forms[form].telefon.value!="+420." && !tel) hlaska+="· telefon má neplatný tvar\n";
    }
    if(hlaska!="") 
    {
      alert(hlaska);
      return false;
    }
    else return;
  }
}

function insertImg(input)
{
  var href=prompt("Adresa obrázku","http://");
  if(href) 
  { 
    href=href.split(".");
    var posl=(href.length-1);
    var predp=(posl-1);
    
    var pred=href[0];
    for(i=1;i<posl;i++) pred+="."+href[i];
    
    var reg=new RegExp("_t");
    if(reg.test(href[predp])) 
    {
      hrefA=pred+"."+href[posl];
      hrefB=pred.substring(0,(pred.length-2))+"."+href[posl];
    }
    else
    {
      hrefA=pred+"_t."+href[posl];
      hrefB=pred+"."+href[posl];
    }
    document.forms["texty"].elements[input].value+="[img href="+hrefB+"][/href]"+hrefA+"[/img]";
  }
}
//začátek převzatého

/**
 * Vloží do textarea pořado 
 *  
 * @param   string    Jméno elementu
 * @param   string    Jméno tagu 
 * @param   bool      Je tag párový? Výchozi true
 * @param   string    Obsah tagu, výchozí hodnotou je vybraný text
 * @param   string    Text vkládaný před tag. Výchozí null
 * @param   string    Text vkládaný za tag. Výchozí null
 */
function insertTag(area, tag, parovy, text, prependText, appendText)
{
	//inicializace proměných
	var textarea = document.forms["texty"].elements[area];

	var startTag = '[' + tag + ']';
	var endTag = '[/' + tag + ']';

	if (typeof text == 'undefined') {
		var tagText = getTextareaSelection(area);
	} else {
		var tagText = text;
	}
	
	if (typeof parovy == 'undefined') {
		var parovy = true;
	}

	if (typeof prependText == 'undefined') {
		var prependText = '';
	}
	
	if (typeof appendText == 'undefined') {
		var appendText = '';
	}
	
	
	//přepsání výchozích hodnot pro specifické tagy
	if (tag == 'url') {
		if (tagText == '') {
			tagText = 'Odkaz';
		}
		var regexp = new RegExp("^((http|https|ftp)\\://)([a-zA-Z0-9\\.\\-]+(\\:[a-zA-Z0-9\\.&%\\$\\-]+)*@)?((25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])|([a-zA-Z0-9\\-]+\\.)*[a-zA-Z0-9\\-]+\\.[a-zA-Z]{2,4})(\\:[0-9]+)?(/[^/][a-zA-Z0-9\\.\\,\\?\\'\\\\/\\+&%\\$#\\=~_\\-@]*)*$");
		var regexp2 = new RegExp("^([a-zA-Z0-9\\.\\-]+(\\:[a-zA-Z0-9\\.&%\\$\\-]+)*@)?((25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])|www\\.([a-zA-Z0-9\\-]+\\.)*[a-zA-Z0-9\\-]+\\.[a-zA-Z]{2,4})(\\:[0-9]+)?(/[^/][a-zA-Z0-9\\.\\,\\?\\'\\\\/\\+&%\\$#\\=~_\\-@]*)*$");
		
		if (regexp.test(tagText)) {
			startTag = '[a=' + tagText + ']';
		} else if (regexp2.test(tagText)) {
			startTag = '[a=http://' + tagText + '/url]';
		} else {
			startTag = '[a=http://domena.tld][/url]';
			selectionStart = prependText.length + 3;
			selectionEnd = prependText.length + 20;
		}
	}
		
	//vytvoření textu pro vložení
	if (!parovy) {
		endTag = '';
	}
		
	var text2insert = prependText + startTag + tagText + endTag + appendText;
	
	//vložení:
	textarea.focus();
	
	if (typeof textarea.selectionStart != 'undefined') {
		var start = textarea.selectionStart;
		var end = textarea.selectionEnd;
		
		textarea.value = textarea.value.substr(0, start) + text2insert + textarea.value.substr(end);
		
		//nastaveni kurzoru na spravné misto / vybrani pozadovaneho textu
		if (typeof selectionStart != 'undefined' && typeof selectionEnd != 'undefined') {
			textarea.selectionStart = start + selectionStart;
			textarea.selectionEnd = start + selectionEnd;
		} else {
			if (tagText == '') {
				//skoceni mezi tagy
				textarea.selectionStart = start + prependText.length + startTag.length;
				textarea.selectionEnd = start + prependText.length + startTag.length;
			} else {
				//skoceni za posledni tag
				textarea.selectionStart = start + text2insert.length;
				textarea.selectionEnd = start + text2insert.length;
			}
		}
	}
	else if (typeof document.selection != 'undefined') {
		var range = document.selection.createRange();
		range.text = text2insert;
		
		//nastaveni kurzoru na spravné misto / vybrani pozadovaneho textu
		if (typeof selectionStart != 'undefined' && typeof selectionEnd != 'undefined') {
			range.moveStart('character', -text2insert.length + selectionStart);
			range.moveEnd('character', -text2insert.length + selectionEnd);
		} else {
			if (tagText == '') {
				//skoceni mezi tagy
				range.move('character', -(endTag.length + appendText.length));
			} else {
				//skoceni za posledni tag
				//protoze prohlizec v tomto pripade skoci za posledni tag automaticky, neni treba nic posouvat	
			}
		}
		range.select();
	}

	//unset promenych
	delete selectionStart;
	delete selectionEnd;
}


function insertQuote(el)
{
	var text = getDocumentSelection(textarea);
	if (text == '') {
		text = el.parentNode.nextSibling.nextSibling.innerText || el.parentNode.nextSibling.nextSibling.textContent;
		text = text.split("\n");
		
		for (var i = 0; i < text.length; i++) {
			text[i] = text[i].trim();	// kvůli IE
			if (text[i] == '') {
				continue;
			}
			insertTag('i', true, text[i], '„', "“\r\n");			
		}
	} else {
		insertTag('i', true, text, '„', "“\r\n");
	}
}

function getTextareaSelection(area)
{
	var textarea = document.forms["texty"].elements[area];
	
	if (typeof textarea.selectionStart != 'undefined') {
		var selection = textarea.value.substring(textarea.selectionStart, textarea.selectionEnd);
	} else if (typeof document.selection != 'undefined') {
		var selection = document.selection.createRange().text;
	} else {
		//alert('Bug!');
	}
	return selection;
}

function getDocumentSelection(area)
{
	var textarea = document.forms["texty"].elements[area];
	
	if (document.getSelection) selection = document.getSelection();
	else if(document.selection) selection = document.selection.createRange().text;
	else if(window.getSelection) selection = window.getSelection();
	else selection = '';
	return selection;
}

function getQuotation()
{
	document.writeln('<a href="#" onclick="insertQuote(this); return false;">Citovat</a>');
}

String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}
