/**
 * js Scripts for AzCongress
 * @author Vitaliy Dryukov
 *
 */

function showSendLink(artid)
{
    var path = 'returnRensponse.php';
    var params = '';
    params += 'action='+'showSendLink'+'&';
    params += 'artid='+artid;
    var loader =  new net.ContentLoader(path, parseResponse, null, 'POST', params);
}

function showAddComment(artid)
{
    var path = 'returnRensponse.php';
    var params = '';
    params += 'action='+'showAddComment'+'&';
    params += 'artid='+artid;
    var loader =  new net.ContentLoader(path, parseResponse, null, 'POST', params);
}

function parseResponse()
{
    var respXML     = this.req.responseXML;
    var resp        = respXML.getElementsByTagName("resp")[0];
    var respStatus  = resp.attributes.getNamedItem("status");
    var mainRes     = resp.getElementsByTagName(respStatus.value)[0];
    var textJS      = mainRes.getElementsByTagName('javascript')[0];
    var textHTML    = mainRes.getElementsByTagName('html')[0];
    
    javascript = ''; jlen = textJS.childNodes.length;
    for (var i=0; i<jlen; i++) { javascript += textJS.childNodes[i].data; }
    
    html = ''; hlen = textHTML.childNodes.length;
    for (var i=0; i<hlen; i++) { html += textHTML.childNodes[i].data; }
    
    if (respStatus.value == 'error' && javascript == '')
    {
        showError(html);
    }
    else
    {
        var mainContainer =  document.getElementById("mainContainer");
        mainContainer.innerHTML += html;
        
        try { eval(javascript); } catch(err) {alert('Inline script error '+err.name+ ' : '+err.message);}
    }
    
}

function showError(errorMsg)
{
    errorMsg = errorMsg.replace('<li>','\n');
    alert('Ошибка:'+errorMsg);
}

// Получить положение объекта на странице (БЕЗ скроллинга)
function getOffset(obj)
{
	var pX = obj.offsetLeft;
	var pY = obj.offsetTop;
	var pE = obj.offsetParent;
	var tPe = pE.tagName;
	while (tPe.toLowerCase() != "body" || !pE)
	{
		pX += pE.offsetLeft;
		pY += pE.offsetTop;
		if (pE.offsetParent == null)
		{
		    break;
		}
		pE = pE.offsetParent;
		tPe = pE.tagName;
	}

	return new Array(pX,pY);
}

function sendForm(formObj, path)
{
    if (!path)
    {
        var path = 'returnRensponse.php';
    }
    var params = ''
    var inputs = formObj.elements;
    var ilen = inputs.length;
    for (var i=0; i<ilen-1; i++)
    {
        params += inputs[i].name+"="+inputs[i].value+"&";
    }
    var loader =  new net.ContentLoader(path, parseResponse, null, 'POST', params);
}

function errorsInfo(preName, errors)
{
    var erlen = errors.length;

    var divErrors = document.getElementById(preName+"Errors");
    divErrors.innerHTML = '';
    
    for (var i=0; i<erlen; i++)
    {
       // M®  
       // Pulsate {duration: 1.5}
       // Highlight {endcolor:'#ff7777', restorecolor:'#ffffff', startcolor:'#ffffff'}
       new Effect.Highlight(errors[i].inputName,{endcolor:'#ff7777', restorecolor:'#ffffff', startcolor:'#ffffff'});
       
       var erText = document.createTextNode(errors[i].label + ":" + errors[i].message);
       var erLi = document.createElement("li");
       erLi.appendChild(erText);
       divErrors.appendChild(erLi);
    }
}

function validateForm(formObj)
{
    var inputs = formObj.elements;
    var ilen = inputs.length;
    var vfErrors = new Array();
    for (var i=0; i<ilen-1; i++)
    {
        var input = inputs[i];
        var inputName = inputs[i].name;
        var inputValue = inputs[i].value;
        var rules = input.getAttribute("rules");
        var label = input.getAttribute("title");
        if (!rules) { continue; }
        eval("rules= ("+rules+")");
        for (var prop in rules)
        {
            switch (prop)
            {
                case 'required':
                    if (inputValue.length < 1)
                    {
                        vfErrors[vfErrors.length] = {label:label, inputName:inputName, message:'Поле обязательно для заполнения'};
                    }
                    break;
                case 'maxlenght':
                    if (inputValue.length > rules[prop])
                    {
                        vfErrors[vfErrors.length] = {label:label, inputName:inputName, message:'Длина поля не должна быть более '+rules[prop]+' символов'};
                    }
                    break;
                case 'regexp':
                    if (!inputValue.match(/^\b[a-zA-Z0-9._%-]+@[a-zA-Z0-9._%-]+\.[a-zA-Z]{2,4}\b$/))
                    {
                        vfErrors[vfErrors.length] = {label:label, inputName:inputName, message:'Введен некорректный email адрес'};
                    }
                    break;
                case 'text':
                    // пока не обрабатывается
                    break;
                default:  
                    // пока не обрабатывается
            }
        }
    }
    if (vfErrors.length > 0)
    {
        errorsInfo(formObj.id, vfErrors);
        return false;
    }
    // return false; // M® Оставлено для проверки
    return true;

}

function openSublevel(obj_id, pic)
{
    var archtable = document.getElementById('archtable');
    var trs = archtable.getElementsByTagName('tr');
    var trs_len = trs.length;
    var myregexp = new RegExp("^"+obj_id+"\\d+_$");
    var myregexp2 = new RegExp("^"+obj_id+"\\d+_");
    for (var i=0; i<trs_len; i++)
    {
            if (pic.src.match(/_open./)) {
                if (myregexp2.exec(trs[i].id) != null && trs[i].id != obj_id)
                {
                    trs[i].style.display = 'none';
                    var imgs = trs[i].getElementsByTagName("img");
                    for (var j=0; j<imgs.length;j++)
                    {
                        if (imgs[j].src.match(/ico_folder_open./))
                        {
                            imgs[j].src='/img/ico_folder.gif';
                        }
                    }
                    
                }
            } else {
                if (myregexp.exec(trs[i].id) != null && trs[i].id != obj_id)
                {
                        trs[i].style.display = '';
                }
            }
        
    }
    if (pic.src.match(/_open./)) {
        pic.src = '/img/ico_folder.gif';
    } else {
        pic.src = '/img/ico_folder_open.gif';
    }
}
