(function()
{
	var ie = !!(window.attachEvent && !window.opera);
	var wk = /webkit\/(\d+)/i.test(navigator.userAgent) && (RegExp.$1 < 525);
	var fn = [];
	var run = function(){for(var i = 0; i < fn.length; i++)fn[i]();};
	var d = document;

	d.ready = function(f)
	{
		if(!ie && !wk && d.addEventListener) return d.addEventListener('DOMContentLoaded', f, false);
		if(fn.push(f) > 1) return;

		if(ie)
			(function()
			{
				try {d.documentElement.doScroll('left'); run();}
	      		catch(err){setTimeout(arguments.callee, 0);}
			})();
		else if(wk)
			var t = setInterval(function()
			{
      			if (/^(loaded|complete)$/.test(d.readyState))
      				clearInterval(t), run();
			}, 0);
	};
})();

//popup

function showPopupDiv(what) {
    ie7 = (!window.opera  && document.all && window.XMLHttpRequest);
    
    var popup_height = document.body.offsetHeight + 'px';
    var popup_width = document.body.offsetWidth + 'px';
    
    if (ie7)
    {
        var popup_height = '100%';
        var popup_width = '100%';
    }
    
    var popup_css = {
        'height' : popup_height,
        'width' : popup_width
    }
    
    var popupform_css ={
        'width' : '100%',
        'float' : 'left'
    }

    $("#popup"+what).css(popup_css);
    $("#popupform"+what).css(popupform_css);
    
    $("#popup"+what).show();
    $("#popupform"+what).show();
    
    return false;
}

function hidePopupDiv(what) {
    $("#popup"+what).hide();
    $("#popupform"+what).hide();
    $('#jabber_contact_list').html('');
    $('#jabber_contact_list').append('<div class="innerbox c"><img src="/images/ajaxloader.gif" title="loading" alt="loading" width="66" height="66" /><p>Загрузка списка контактов<br class="cb" /></p><br class="cb" /></div>');
    return false;
}

//tests
function confirmDel() {
   if (confirm("Вы действительно хотите полностью удалить этот объект из базы данных?")) {
      return true;
   } else {
      return false;
   }
}

var ro = null;
var matid = 0;

function callUpdateRat(id, val, dim) {
    if (ro == null) {
        var browser = navigator.appName;
        if(browser == 'Microsoft Internet Explorer'){
            ro = new ActiveXObject('Microsoft.XMLHTTP');
        } else {
            ro = new XMLHttpRequest();
        }
    }
   
    matid = id;
    ro.open('get', 'ratetestajax.php?dim=' + dim + '&id=' + id + '&val=' + val);
    ro.onreadystatechange = handleResponse;
    ro.send(null);
}

function handleResponse() {
    if (ro.readyState == 4) {
        var rt = /\|(.*)\|/.exec(ro.responseText)[1];

        if (rt == 'avoted') {
            alert('Вы уже голосовали за этот материал');
        } else if (rt == 'noauth') {
            alert('Для того, чтобы голосовать авторизуйтесь на сайте');
        } else {
            el = document.getElementById("s" + matid);
            el.innerHTML = rt;
            alert('Ваш голос принят!');
        }
    }
}
//tests

//test_info

function MyGetElementByID(e) {
   if(document.getElementById) { e=document.getElementById(e); }
   else if(document.all) { e=document.all[e]; }
   else { e=null; }
   return e;
}

function Encode(str) {
    var trans = [];
    for (var i = 0x410; i <= 0x44F; i++) {
        trans[i] = i - 0x350; // translate all russian symbols from unicode to win-1251
    }
    trans[0x402] = 0x80;
    trans[0x403] = 0x81;
    trans[0x201A] = 0x82;
    trans[0x453] = 0x83;
    trans[0x201E] = 0x84;
    trans[0x2026] = 0x85;
    trans[0x2020] = 0x86;
    trans[0x2021] = 0x87;
    trans[0x20AC] = 0x88;
    trans[0x2030] = 0x89;
    trans[0x409] = 0x8A;
    trans[0x2039] = 0x8B;
    trans[0x40A] = 0x8C;
    trans[0x40C] = 0x8D;
    trans[0x40B] = 0x8E;
    trans[0x40F] = 0x8F;
    trans[0x452] = 0x90;
    trans[0x2018] = 0x91;
    trans[0x2019] = 0x92;
    trans[0x201C] = 0x93;
    trans[0x201D] = 0x94;
    trans[0x2022] = 0x95;
    trans[0x2013] = 0x96;
    trans[0x2014] = 0x97;
    trans[0x2122] = 0x99;
    trans[0x459] = 0x9A;
    trans[0x203A] = 0x9B;
    trans[0x45A] = 0x9C;
    trans[0x45C] = 0x9D;
    trans[0x45B] = 0x9E;
    trans[0x45F] = 0x9F;
    trans[0x40E] = 0xA1;
    trans[0x45E] = 0xA2;
    trans[0x408] = 0xA3;
    trans[0x490] = 0xA5;
    trans[0x401] = 0xA8;
    trans[0x404] = 0xAA;
    trans[0x407] = 0xAF;
    trans[0x406] = 0xB2;
    trans[0x456] = 0xB3;
    trans[0x491] = 0xB4;
    trans[0x451] = 0xB8;
    trans[0x2116] = 0xB9;
    trans[0x454] = 0xBA;
    trans[0x458] = 0xBC;
    trans[0x405] = 0xBD;
    trans[0x455] = 0xBE;
    trans[0x457] = 0xBF;

    var encoded_str = '';
    for (var i = 0; i < str.length; i++) {
        var n = str.charCodeAt(i);
        if (n > 255) {
            n = trans[n];
        }
        hexcode = n.toString(16);
        encoded_str += ('%' + hexcode);
    }
    return encoded_str.toUpperCase();
}

function EvalScript(AText) 
{
    var xBlocks=AText.split('%SCRIPT');
    var yBlocks=xBlocks[1].split('%ENDSCRIPT');
    var xLines=yBlocks[0].split('\n');
    for (var xi=0; xi<xLines.length; xi++) {
        if (xLines[xi]!='') { eval(xLines[xi]); }
    }
    return xBlocks[0] + yBlocks[1];
    //return AText;
}

function sndForm(AAction, AParams, ACtrlID, AFrm) 
{
    if (AFrm!=null) {
        for(var xi=0; xi<AFrm.elements.length; xi++) {
            if ((AFrm.elements[xi].type=='hidden') && (AFrm.elements[xi].name.indexOf('from')<0)) {
                AParams=AParams + AFrm.elements[xi].name + '=' + AFrm.elements[xi].value + '&';
            }
        }
        sndReq(AAction, AParams, ACtrlID);
    } else {
        alert('Ошибка: форма не найдена');
    }
}

function createRequestObject() 
{
    var ro;
    var browser = navigator.appName;
    if(browser == 'Microsoft Internet Explorer'){
        ro = new ActiveXObject('Microsoft.XMLHTTP');
    } else {
        ro = new XMLHttpRequest();
    }
    return ro;
}

function sndReq(action, params, ctrlid) 
{
    //   alert(action+'.php?ctrlid='+ctrlid+'&'+params);
    http.open('get', action+'.php?ctrlid='+ctrlid+'&'+params);
    http.onreadystatechange = handleResponse;
    http.send(null);
    return false;
}

function sndPostReq(action, params) 
{
    http.open('POST', action+'.php');
    http.onreadystatechange = handleResponse;
    //alert (action+'.php');
    http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    http.setRequestHeader("Content-length", params.length);
    http.setRequestHeader("Connection", "close");
    http.send(params);
    //alert(params);
    return false;
}

function handleResponse() 
{
    if (http.readyState == 4) {
        var response = http.responseText;
        var update = new Array();

        if(response.indexOf('|' != -1)) {
            update = response.split('|');
            var Container=MyGetElementByID(update[0]);
            if (Container!=null) {
                if (update[1].indexOf('%SCRIPT')>=0) {
                    update[1]=EvalScript(update[1]);
                }
                Container.innerHTML = update[1];
            }
        }
    }
}

//test_info

//new test

function OpenPopup(URL, AWidth, AHeight, PopWin) 
{
    window.name='daamain';
    var PopWin=PopWin;
    var PopWinWidth=AWidth;
    var PopWinHeight=AHeight;
    var WinOptions='width='+PopWinWidth+', height='+PopWinHeight;
    if (PopWin!='clean') {
        WinOptions=WinOptions+',menubar=yes,toolbar=yes,resizable=yes,scrollbars=yes,titlebar=yes,location=yes,status=yes';
    } else {
        WinOptions=WinOptions+',scrollbars=yes,resizable=yes';
    }
    popWnd=window.open(URL, 'popup', WinOptions);
    popWnd.focus();
    return false;
}

function showCodeAction()
{
    PutToCode();
    document.getElementById('TestCodeID').style.display='block';
    document.getElementById('showWizButton').style.display='inline';
    document.getElementById('TestVisualID').style.display='none';
    document.getElementById('showCodeButton').style.display='none';
    return false;
}
function showWizAction()
{
    ClearEditor();
    LoadFromCode(document.getElementById('teTestCode').value);
    WriteTest();
    document.getElementById('TestCodeID').style.display='none';
    document.getElementById('showWizButton').style.display='none';
    document.getElementById('TestVisualID').style.display='block';
    document.getElementById('showCodeButton').style.display='inline';
    return false;
}

//new test

function validate(frm) 
{
    for(i=0; i<frm.elements.length; i++) {
        if ((frm.elements[i].type=="text") || (frm.elements[i].type=="textarea")) {
            s=frm.elements[i].name+", ";
            if (requirefld.indexOf(s)>=0) {
                if (frm.elements[i].value=="") {
                    alert ("Заполните, пожалуйста, необходимые поля");
                    frm.elements[i].focus();
                    return false;
                }
            }
        }
    }
    return true;
}

function isNewTestVisible()
{
    if(($('#qipcontest_status').attr('checked')==true) && ($('#allowshow').attr('value')==0)) {
        alert('Тесты с уровнем доступа "Для меня" не могут участвовать в конкурсе. Измените уровень доступа или отмените участие теста в конкурсе.');
        return false;
    }
    return true;
}