// функция подгрузки исполняемого js кода с адреса addr в объект obj
// obj очищается перед подгрузкой
function LoadScript(addr,obj) {
    obj.innerHTML="Msie...<script></"+"script>";
    var scr=obj.getElementsByTagName("script")[0];
    scr.language="javascript";
    if (scr.setAttribute) scr.setAttribute("src",addr);
    else scr.src=addr;
}

function setWait(wId) {
    document.getElementById(wId+'content').innerHTML = '<img src="web2/load.gif"> Загрузка...';
}

var ua = navigator.userAgent.toLowerCase();
var isOpera = (ua.indexOf('opera')  > -1);
var isIE = (!isOpera && ua.indexOf('msie') > -1);
 
function getDocumentHeight() {
  return Math.max(document.compatMode != 'CSS1Compat' ? document.body.scrollHeight : document.documentElement.scrollHeight, getViewportHeight());
}
 
function getViewportHeight() {
  return ((document.compatMode || isIE) && !isOpera) ? (document.compatMode == 'CSS1Compat') ? document.documentElement.clientHeight : document.body.clientHeight : (document.parentWindow || document.defaultView).innerHeight;
}

// подгружает в определенное окно контент по ссылке url
function getWndContent(wId,url) {
    url = url+'&wndId='+wId;
    if (document.getElementById(wId+'Ex')==null) {
        document.getElementById(wId).innerHTML+='<div id="'+wId+'Ex" style="position:absolute;left:0;top:0;visibility:hidden"></div>';
    }
    setWait(wId);
    //alert(url);
    LoadScript(url,document.getElementById(wId+'Ex'));    
}

// функция отображения окна
function displayWnd(wId) {
    var wnd = document.getElementById(wId);
	if(wnd.op < 1) {
		wnd.op += 0.1;
		setOpacity(wnd,wnd.op);
		var t = setTimeout('displayWnd(\''+wId+'\')', 0.3);
	}
}

function getLeft(obj) {
    var curleft = 0;
    if (obj.offsetParent) {
        curleft = obj.offsetLeft
        while (obj = obj.offsetParent) {
            curleft += obj.offsetLeft
        }
    }
    return curleft;
}

function getTop(obj) {
    var curTop = 0;
    if (obj.offsetParent) {
        curTop = obj.offsetTop
        while (obj = obj.offsetParent) {
            curTop += obj.offsetTop
        }
    }
    return curTop;
}

function createWnd(opener) {
    var r = (new Date().getTime());
    var wId = '_wnd' + r;
    
    var _top  = getTop(opener);
    var _left = getLeft(opener);
    
    if (document.getElementById('MwndBuf')==null) {
        document.body.innerHTML +='<div id="MwndBuf"></div>';
    }
    
    document.getElementById('MwndBuf').innerHTML +=
    '<div id="shadow'+wId+'" class="Mwndshadow" style="z-index:999;height:'+getDocumentHeight()+'px"></div>'+ 
    '<div id="'+wId+'" class="Mwnd" style="top:0px;left:0px;position:absolute;z-index:999;">'+
    ' <div class="Mclosebtn" onclick="javascript:hideWnd(\''+wId+'\');">X</div>'+
    ' <div id="'+wId+'content"></div>'+
    '</div>';
    var wnd = document.getElementById(wId);

    wnd.style.display='block';
    wnd.style.top=  _top+5+'px';
    wnd.style.left= _left+5+'px';
    wnd.op=0;
    wnd.style.opacity = 0;

    return wId;
}

function setShadow(wId,shadow) {
    if (shadow == null   && document.getElementById('shadow'+wId)) document.getElementById('shadow'+wId).style.display = 'none';
    if (shadow == 'true' && document.getElementById('shadow'+wId)) document.getElementById('shadow'+wId).style.display = '';
}

// функция скрывания окна
function hideWnd(wId) {
    var wnd    = document.getElementById(wId);
    var shadow = document.getElementById('shadow'+wId);
    if(wnd.op > 0) {
        wnd.op -= 0.1;
        setOpacity(wnd,wnd.op);
        var t = setTimeout('hideWnd(\''+wId+'\')', 0.3);
    } else {
        wnd.style.display = 'none';
        shadow.style.display = 'none';
        wnd.outerHTML = '';
    }
}

// открывает окно в месте opener'а
function openWindow(opener,url,shadow) {
    var wId = createWnd(opener);
    setShadow(wId,shadow);
    displayWnd(wId);
    getWndContent(wId,url);
    setTimeout("wndMove('"+wId+"')",500); //document.getElementById(wId+'content').innerHTML = content;
    return false;
}

function jopenWindow(opener,url,params) {
    var wId = createWnd(opener);
    displayWnd(wId);
    setWait(wId);
    $.ajax({
        url:url,
        cache:false,
        type:'POST',
        data:params,
        error:function(jqXHR, textStatus, errorThrown){
            alert('Ошибка! Не удалось получить данные. Обновите страницу. Если ошибка повторяется обратитесь к администратору.');
        },
        success:function(data, textStatus, jqXHR) {
            setInner(document.getElementById(wId+'content'),data);
        }
    });
    setTimeout("wndMove('"+wId+"')",500);
    return false;
}

function jopenAlbumWindow(opener,url) {
    var wId = createWnd(opener);
    displayWnd(wId);
    setWait(wId);
    $.ajax({
        url:url,
        cache:false,
        error:function(jqXHR, textStatus, errorThrown){
            alert('Ошибка! Не удалось получить данные. Обновите страницу. Если ошибка повторяется обратитесь к администратору.');
        },
        success:function(data, textStatus, jqXHR) {
            setInner(document.getElementById(wId+'content'),data);
            setAlign(wId,'center');
            setWndPos(wId,40);
        }
    });
    setTimeout("wndMove('"+wId+"')",500);
    return false;
}

// передвигает окно, если оно не помещается в размеры окна
function wndMove(wId) {
    var rightPad = 25;
    var wnd = document.getElementById(wId);
    if ( (wnd.offsetLeft + wnd.offsetWidth) > document.body.offsetWidth - rightPad ) {
        if ( (document.body.offsetWidth - wnd.offsetWidth) < 10 ) {
            wnd.style.left = 10+'px';
        } else {
            wnd.style.left = (document.body.offsetWidth - wnd.offsetWidth - rightPad) + 'px';
        }
    }
}

function setWndPos(wId,top,left) {
    var rightPad = 25;
    var wnd = document.getElementById(wId);
    if ( wnd ) {
        if (left) wnd.style.left = left+'px';
        if (top) wnd.style.top = top+'px';
    }
}

function setAlign(wId,align) {
    //alert('align');
    var wnd = document.getElementById(wId);
    switch (align) {
        case 'center':
        wnd.style.left = (document.body.offsetWidth - wnd.offsetWidth) /2 +'px';
        //wnd.style.top = (document.body.offsetWidth - wnd.offsetWidth) /2 +'px';
    }
}

// починка outerHTML в firefox
if (typeof(HTMLElement) != "undefined" && jQuery.browser.mozilla==true) {
    var _emptyTags = {"IMG": true,"BR": true,"INPUT": true,"META": true,"LINK": true,"PARAM": true,"HR": true};

    HTMLElement.prototype.__defineGetter__("outerHTML", function () {
        var attrs = this.attributes;
        var str = "<" + this.tagName;
        for (var i = 0; i < attrs.length; i++)
        str += " " + attrs[ i ].name + "=\"" + attrs[ i ].value + "\"";

        if (_emptyTags[this.tagName])
        return str + ">";

        return str + ">" + this.innerHTML + "</" + this.tagName + ">";
    });

    HTMLElement.prototype.__defineSetter__("outerHTML", function (sHTML) {
        var r = this.ownerDocument.createRange();
        r.setStartBefore(this);
        var df = r.createContextualFragment(sHTML);
        this.parentNode.replaceChild(df, this);
    });
}

function setInner(obj,data) {
    obj.innerHTML = data;
    var scripts = obj.getElementsByTagName("script");
    var script;
    for (var i = 0; script = scripts[i]; i++) {
        eval(script.innerHTML);
    }
}

var pics = new Array();
var firstPic = 0;
var curPic = 0;
function PicsReDraw(firstPic) {
    if (firstPic == 0) document.getElementById('picPre').style.display='none';
    else document.getElementById('picPre').style.display='';

    for (var i=0; i<5; i++) {
        if (pics[i+firstPic]) {
            document.getElementById('apic_'+i).innerHTML = '<img onmouseover="KrossBrows(this,1);" onmouseout="KrossBrows(this,0);" style="cursor:pointer; FILTER: alpha(opacity=30);opacity:0.3;" src="pics/'+pics[i+firstPic].id+'.jpg" height="121" class="photo_frame" />';
            document.getElementById('apic_'+i).picId = i+firstPic;
        } else {
            document.getElementById('apic_'+i).innerHTML = '';
            document.getElementById('apic_'+i).picId = null;
        }
    }

    if (pics[firstPic+5]) document.getElementById('picEnd').style.display='';
    else document.getElementById('picEnd').style.display='none';
}

function setCur(num) {
    PicsReDraw(firstPic);
    curPic = num;
    if (pics[curPic-1]) document.getElementById('preCPic').style.display='';
    else document.getElementById('preCPic').style.display='none';
    document.getElementById("picPreview").innerHTML = '<img src="pics/'+pics[curPic].id+'.jpg" style="max-width:591px; max-height:392px">';
    document.getElementById("sigPic").innerHTML = pics[curPic].title;
    for (var i=0; i<5; i++) {
        if (document.getElementById('apic_'+i).picId == curPic) {
            document.getElementById('apic_'+i).innerHTML = '<img style="" src="pics/'+pics[i+firstPic].id+'.jpg" height="121" class="photo_frame" />';
        }
    }
    if (pics[curPic+1]) document.getElementById('nextCPic').style.display='';
    else document.getElementById('nextCPic').style.display='none';
}
function nextPic() {
    if (pics[firstPic+5]) {
        firstPic++;
        PicsReDraw(firstPic);
        setCur(curPic);
    }
}

function prePic() {
    if (pics[firstPic-1]) {
        firstPic--;
        PicsReDraw(firstPic);
        setCur(curPic);
    }
}

function preCurPic() {
    if (pics[curPic-1]) setCur(curPic-1);
}

function nextCurPic() {
    if (pics[curPic+1]) setCur(curPic+1);
}
