/* Misc useful functions */

 var asset_host = "http://assets.prevention.com.ua";

 var xW = 830;
 var xH = 420;
 
 var ajax_root = window.location.protocol+"//"+window.location.hostname+(window.location.port ? ":" + window.location.port : '')+"/ajax/";
 
 var ajax_spinner = new Image();
 ajax_spinner.src = asset_host + '/images/ajax-spinner.gif';
 
/* function $(id)
 {
 	return document.getElementById(id);
 }*/
 
document.getElementsByClassName = function(cl) {
	var retnode = false;
	var myclass = new RegExp('\\b'+cl+'\\b');
	var elem = this.getElementsByTagName('*');
	for (var i = 0; i < elem.length; i++) {
		var classes = elem[i].className;
			if (myclass.test(classes)) {
				if (!retnode)
				{
					retnode = [];
				}
				retnode.push(elem[i]);	
			}
		}
	return retnode;
};

 function ow(url, name) {
        win = window.open(url, name, "fullscreen=no,resizable=no,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,width="+xW+",height="+xH+",left="+(screen.availWidth-xW)/2+",top="+(screen.availHeight-xH)/2);
        win.focus();
        return false;
 }
 
 function nodecheck(nodes)
 {
 	
 	for (var i = 0; i < nodes.length; i++)
 	{
 		if (nodes[i].checked)
 		{
 			return true;
 		}
 	}
 	return false;
 }

 function radiocheck() {
 	var s = 1;
	var name = 'quiz_';
 	
	while (quizzes = document.getElementsByClassName(name+s))
	{
		if (!nodecheck(quizzes))
 		{
 			alert("Выберите по одному ответу из каждого варианта.");		
 			return false;
 		}
 		s++;
	}
 	return true;
 }
 
 function validatecalc(varray)
 {
 	for(var i=0; i<varray.length; i++)
	{
		sval = $('calc_'+varray[i]).value;
		val = parseInt(sval);
		if (isNaN(val))
		{
			alert("Введите числа.");
			return false;
		}
		if (val <= 0)
		{
			alert("Заполните поля правильно.");
			return false;
		}
	}
 	return true;
 }
 

 function comments_show(p) {
 	var commroll = document.getElementById('comments');
	var spinner = document.getElementById('spinner');
	var commtext = commroll.innerHTML;
	
	spinner.innerHTML = '<img src="' + asset_host + '/images/ajax-spinner.gif" />';
	
	new Ajax.Request(ajax_root + 'comments',
    {
	    method: 'get',
        parameters: {
                page: p
        },
        onSuccess:function(tp) {
				spinner.innerHTML = '';
                var resp = tp.responseText || commtext;
                commroll.innerHTML = resp;
        },
        onFailure:function() {
                alert('Нет соединения с сервером');
				spinner.innerHTML = '';
        }
    });
	return false;
 }
 
 function checkcomments(msg) {
 	if ($('comment_name').value != '' && $('comment_email').value != '' && $('comment_text') != '')
	{
		return true;
	} else {
if (msg != null) {
alert(msg);
}else{
		alert('Введите свое имя, e-mail и текст сообщения.');
}
		return false;
	}
 }
 
 function smile(smtxt) {
 	txt = $('comment_text');
	
	txt.focus();
	if (document.selection) { /* Welcome to IE'll... */
		var sel = document.selection.createRange();
		sel.text = smtxt;
		sel.select();
		return true;
	} else if (typeof txt.selectionStart == "number") { /* Welcome to FF land... */
		var start = txt.selectionStart;
		var end = txt.selectionEnd;
		var rs = smtxt;
		txt.value = txt.value.substr(0, start) + rs + txt.value.substr(end);
		txt.setSelectionRange(end + rs.length, end + rs.length);
		return true;
	}
	return false;
 }

function poll_select(obj) {
  $(obj).hide();
  var wrapper = document.createElement('div');
  wrapper.className = 'poll_select_wrapper'
  // create list for styling
  var ul = document.createElement('ul');
  ul.className = 'poll_select';
  var opts = obj.options;
  for (var i=0; i<opts.length; i++) {
    var selectedOpt;
    if (opts[i].selected) {
      selectedOpt = i;
      break;
    } else {
      selectedOpt = 0;
    }
  }
  for (var i=0; i<opts.length; i++) {
    var li = document.createElement('li');
    var txt = document.createTextNode(opts[i].text);
    li.appendChild(txt);
    li.selIndex = opts[i].index;
    li.selectID = obj.id;
    li.onclick = function() {
      selectMe(this);
    }
    if (i == selectedOpt) {
      li.className = 'selected';
      li.onclick = function() {
        this.parentNode.className += ' selectOpen';
        this.onclick = function() {
          selectMe(this);
        }
      }
    }
    if (window.attachEvent) {
      li.onmouseover = function() {
        this.className += ' hover';
      }
      li.onmouseout = function() {
        this.className = 
          this.className.replace(new RegExp(" hover\\b"), '');
      }
    }
    ul.appendChild(li);
  }
  wrapper.appendChild(ul);
  // add the input and the ul
  obj.parentNode.appendChild(wrapper);
}

function selectMe(obj) {
  var lis = obj.parentNode.getElementsByTagName('li');
  for (var i=0; i<lis.length; i++) {
    if (lis[i] != obj) { // not the selected list item
      lis[i].className='';
      lis[i].onclick = function() {
        selectMe(this);
      }
   } else {
      setVal(obj.selectID, obj.selIndex);
      obj.className='selected';
      obj.parentNode.className = 
        obj.parentNode.className.replace(new RegExp(" selectOpen\\b"), '');
      obj.onclick = function() {
        obj.parentNode.className += ' selectOpen';
        this.onclick = function() {
          selectMe(this);
        }
      }
    }
  }
}
function setVal(objID, selIndex) {
  var obj = document.getElementById(objID);
  obj.selectedIndex = selIndex;
}
