
function sendMail(obj) {
	dojo.byId('name').disabled = true;
	dojo.byId('name').style.backgroundColor = '#C8C8C8';
	dojo.byId('email').disabled = true;
	dojo.byId('email').style.backgroundColor = '#C8C8C8';
	dojo.byId('text').disabled = true;
	dojo.byId('text').style.backgroundColor = '#C8C8C8';
	dojo.byId('security_code').disabled = true;
	dojo.byId('security_code').style.backgroundColor = '#C8C8C8';
	dojo.byId('send_mail_submit').disabled = true;
  
	dojo.xhrPost({
    url: 'rada/send.php',
    content: { 
      name:   dojo.byId('name').value,
      email:  dojo.byId('email').value,
      text:   dojo.byId('text').value,
      security_code:  dojo.byId('security_code').value 
    },
    load: function(data,args){
      var answer = eval(data);
      // fade out the node we're modifying
      dojo.byId('answer').innerHTML = '';
      dojo.fadeOut({
        node: dojo.byId('answer'),
        onEnd: function(){
          // set the data, fade it back in
					if (!answer) {
						dojo.byId('answer').appendChild(document.createTextNode(_MESSAGES['pripomienka_nok']));
					} else {
						dojo.byId('answer').appendChild(document.createTextNode(_MESSAGES['pripomienka_ok']));
					}
          dojo.fadeIn({node: dojo.byId('answer')}).play();
					setTimeout(function() {openPage('rada');}, 5000);
        }
      }).play();
    },
    // if any error occurs, it goes here:
    error: function(error,args){
      console.warn("error!",error);
    }
  });
}

function createResultTable(data) {
  var sortiment = dojo.fromJson(data);
  
	if (sortiment.message) {
		var p = document.createElement('p');
		p.appendChild(document.createTextNode(_MESSAGES[sortiment.message]));
		return p;
	} else {
		var resultTable = document.createElement('table');
		resultTable.className = 'search_result';
		dojo.attr(resultTable, 'cellspacing', '0');
		
		var resultTableHeader = document.createElement('thead');
		var resultTableHeaderRow = document.createElement('tr');
		for (var i = 0; i < sortiment.headers.length; i++) {
			var resultTableHeaderCell = document.createElement('th');
			resultTableHeaderCell.appendChild(document.createTextNode(_MESSAGES[sortiment.headers[i]]));
			if (i == (sortiment.headers.length - 1)) {
				resultTableHeaderCell.style.borderRight = '3px solid #FFFFFF';
				//dojo.style(resultTableHeaderCell, 'border-right-width', '3px');
				//dojo.style(resultTableHeaderCell, 'border-right-style', 'solid');
				//dojo.style(resultTableHeaderCell, 'border-right-color', '#FFFFFF');
			}
			resultTableHeaderRow.appendChild(resultTableHeaderCell);
		}
		resultTableHeader.appendChild(resultTableHeaderRow);
		resultTable.appendChild(resultTableHeader);
		
		var resultTableBody = document.createElement('tbody');
		var rowStyle = 'odd';
		dojo.forEach(sortiment.rows, function(row) {
			var resultTableBodyRow = document.createElement('tr');
			resultTableBodyRow.className = rowStyle;
			var resultTableBodyCell1 = document.createElement('td');
			resultTableBodyCell1.appendChild(document.createTextNode(row.sukl));
			resultTableBodyRow.appendChild(resultTableBodyCell1);
			var resultTableBodyCell2 = document.createElement('td');
			resultTableBodyCell2.appendChild(document.createTextNode(row.nazov));
			resultTableBodyRow.appendChild(resultTableBodyCell2);
			var resultTableBodyCell3 = document.createElement('td');
			resultTableBodyCell3.appendChild(document.createTextNode(row.vyrobca));
			resultTableBodyRow.appendChild(resultTableBodyCell3);
			resultTableBody.appendChild(resultTableBodyRow);
			rowStyle = rowStyle == 'odd' ? 'even' : 'odd';
		}, true);
		
		resultTableBody.appendChild(createTableNavigation(sortiment.pageNumber, sortiment.count));
		resultTable.appendChild(resultTableBody);
		
		return resultTable;
	}
}

function createTableNavigation(pageNumber, count) {
  var pageSize = 40;
  var maxPageLinks = 5;
  var offset = pageSize * (pageNumber - 1);
  var first   = 1 + offset;
  var last    = Math.min(first + pageSize - 1, count);
  var total   = count;
  var totalPages  = parseInt(Math.ceil(count / pageSize));
  
  var navigationRow = document.createElement('tr');
  
  var navigationCell = document.createElement('td');
  navigationCell.colSpan = 3;
  navigationCell.align = 'center';
  
  var navigationSpan = document.createElement('span');
  navigationSpan.className = 'search_navigation';

  if (totalPages > 1) {
    var currentPage = parseInt(Math.ceil(first / pageSize));
    var middlePage  = parseInt(maxPageLinks / 2);
    var firstPage   = Math.max(1, currentPage - maxPageLinks);
    var lastPage    = Math.min(totalPages, currentPage + maxPageLinks - 1);

    if (currentPage > 1 && totalPages > 1) {
      navigationSpan.appendChild(createNavigationLink(1, '<< '));
      navigationSpan.appendChild(createNavigationLink(currentPage - 1, '< '));
    }
    for (var i = firstPage; i <= lastPage; i++) {
      var a = document.createElement('a');
      a.innerHTML = i;
      if (i == currentPage) {
        dojo.addClass(a, 'active');
      } else {
        dojo.style(a, 'cursor', 'pointer');
        a.onclick = function() {
          doSearch(this.innerHTML);
        }
      }
      navigationSpan.appendChild(a);
      if (i != lastPage) {
        navigationSpan.appendChild(document.createTextNode(' | '));
      }
    }
    if (currentPage < totalPages && totalPages > 1) {
      navigationSpan.appendChild(createNavigationLink(currentPage + 1, ' >'));
      navigationSpan.appendChild(createNavigationLink(totalPages, ' >>'));
    }
  }
  
  navigationCell.appendChild(navigationSpan);
  navigationRow.appendChild(navigationCell);
  
  return navigationRow;
}

function createNavigationLink(linkPageNumber, linkContent) {
  var a = document.createElement('a');
  a.href = '#';
  a.innerHTML = linkContent;
  a.onclick = function() {
    doSearch(linkPageNumber);
  }
  return a;
}

function doSearch(pageNumber) {
  dojo.xhrPost({
    url: 'sortiment/sortiment.php',
    content: { 
      name:dojo.byId('name').value,
      page_number:pageNumber 
    },
    load: function(data,args){
      // fade out the node we're modifying
      dojo.byId('search_result_container').innerHTML = '';
      dojo.fadeOut({
        node: dojo.byId('search_result_container'),
        onEnd: function(){
          // set the data, fade it back in
          dojo.byId('search_result_container').appendChild(createResultTable(data)); 
          dojo.fadeIn({node: dojo.byId('search_result_container')}).play();    
        }
      }).play();
    },
    // if any error occurs, it goes here:
    error: function(error,args){
      console.warn("error!",error);
    }
  });  
}

function decode_utf8(s) {
  return decodeURIComponent(escape(s));
}

function encode_utf8(s) {
  return unescape(encodeURIComponent(s));
}

var _MESSAGES = new Array(); 

function addMessage(key, value) {
  _MESSAGES[key] = value;
}
