﻿/**
 * @author Mirosław Bogacz
 * @version 0.2 beta
 */
function mFoto(){
    /**
     * 1 Dodaje właściwość dla obiektu mFoto.
     * 2 przypisuje dla this.element = element html który będzie szukany.
     * 3,4 Dodaje właściwość dla obiektu mFoto.
     * 5 Sprawdza czy podany rel w znaczniku szukanym jest poprawny.
     * 6 Zwraca true dla postępu wyszukiwania(nie wiem po co mi to ale niech już będzie może się przydać).
     * 7 Zwraca wartosc metody jaka będzie wykonywana podczas prezentacji.
     * 10 Zwraca false dla postępu wyszukiwania(nie wiem po co mi to ale niech już będzie może się przydać).
     */
    mFoto.prototype.szukaj = function(znacznik, licznik){
        this.element = document.getElementsByTagName(znacznik)[licznik];
        mFoto.szukaj.prototype.wynik = '';
        mFoto.szukaj.prototype.metoda = '';
        if (this.element.getAttribute('rel')) {
            if (this.element.getAttribute('rel').match(/^mFoto[+[a-z]+]/)) {
                mFoto.szukaj.wynik = true;
                mFoto.szukaj.metoda = this.element.getAttribute('rel').substring(6, this.element.getAttribute('rel').length - 1);
            }
            else {
                mFoto.szukaj.wynik = false;
                mFoto.szukaj.metoda = '';
            }
        }
    };
    
    mFoto.prototype.pokaz = function(metoda, src){
        var Maska = document.createElement('div');
        ContentWhite = document.createElement('div');
        var ContentWhiteZawartosc = document.createElement('div');
        var ContentWhiteMenu = document.createElement('div');
        var Zamknij = document.createElement('div');
        
        Zamknij.id = 'Zamknij';
        Zamknij.innerHTML = 'Zamknij x';
        Zamknij.onmouseover = function(){
            this.style.border = '1px solid #cccbc0';
            this.style.background = '#e6e4d8'
        }
        Zamknij.onmouseout = function(){
            this.style.border = '1px solid #fff';
            this.style.background = '#fff'
        }
        Zamknij.onclick = function(){
            document.body.removeChild(ContentWhite);
            document.body.removeChild(Maska);
        }
        Maska.id = 'Maska';
        ContentWhiteZawartosc.id = 'ContentWhiteZawartosc';
        ContentWhiteMenu.id = 'ContentWhiteMenu';
        ContentWhite.id = 'ContentWhite';
        document.body.appendChild(ContentWhite);
        if (metoda == 'img') {
            IMAGES = document.createElement('img');
            IMAGES = new Image();
            IMAGES.src = src;
            
            ContentWhiteZawartosc.appendChild(IMAGES);
            
        }
        else 
            if (metoda == 'doc') {
                var DIV = document.createElement('div');
                ContentWhiteZawartosc.appendChild(DIV);
            }
            else 
                if (metoda == 'swf') {
                
                    var iframe = document.createElement('iframe');
                    iframe.src = 'd_swf.html';
                    iframe.style.border = 'none';
                    iframe.width = '736px';
                    iframe.height = '410px';
                    ContentWhiteZawartosc.appendChild(iframe);
                }
                else 
                    if (metoda == 'www') {
                        var IFRAME = document.createElement('iframe');
                        ContentWhiteZawartosc.appendChild(IFRAME);
                    }
        
        ContentWhite.appendChild(ContentWhiteZawartosc);
        ContentWhiteMenu.appendChild(Zamknij)
        ContentWhite.appendChild(ContentWhiteMenu);
        
        
        
        if (metoda == 'img') {
            ContentWhite.style.width = IMAGES.offsetWidth + 20 + 'px';
            document.body.appendChild(Maska);
            if (window.navigator.appName != 'Opera') {
				
                IMAGES.onload = function(){
                    ContentWhite.style.width = IMAGES.offsetWidth + 20 + 'px';
                    if (window.innerHeight) {
                        ContentWhite.style.top = ((window.innerHeight / 2) - (ContentWhite.offsetHeight / 2)) + (document.body.scrollTop) + 'px';
                        ContentWhite.style.left = ((window.innerWidth / 2) - (ContentWhite.offsetWidth / 2)) + (document.body.scrollLeft) + 'px';
                        
                    }
                    else {
                        ContentWhite.style.top = ((document.body.scrollTop) + (document.body.clientHeight / 2)) - (ContentWhite.offsetHeight / 2) + 'px';
                        ContentWhite.style.left = Math.ceil(((document.body.scrollLeft) + (document.body.clientWidth / 2)) - (ContentWhite.offsetWidth / 2)) + 'px';
						
                    }
                    if (window.innerWidth || window.innerHeight) {
                        if (!document.documentElement.scrollHeight < document.body.offsetHeight) { 
                            document.getElementById('Maska').style.width = document.body.offsetWidth + 'px';
                            document.getElementById('Maska').style.height = (document.body.scrollHeight - document.body.offsetHeight) + document.body.offsetHeight + 'px';
                        }
                        else {
                            document.getElementById('Maska').style.width = document.body.offsetWidth + 'px';
                            document.getElementById('Maska').style.height = document.body.offsetHeight + 'px';
                        }
                    }
                };
				ContentWhite.style.width = IMAGES.offsetWidth + 20 + 'px';
                    if (window.innerHeight) {
                        ContentWhite.style.top = ((window.innerHeight / 2) - (ContentWhite.offsetHeight / 2)) + (document.body.scrollTop) + 'px';
                        ContentWhite.style.left = ((window.innerWidth / 2) - (ContentWhite.offsetWidth / 2)) + (document.documentElement.scrollLeft) + 'px';
                        
                    }
                    else {
                        ContentWhite.style.top = ((document.body.scrollTop) + (document.documentElement.clientHeight / 2)) - (ContentWhite.offsetHeight / 2) + 'px';
                        ContentWhite.style.left = Math.ceil(((document.body.scrollLeft) + (document.documentElement.clientWidth / 2)) - (ContentWhite.offsetWidth / 2)) + 'px';
						
                    }
                    if (window.innerWidth || window.innerHeight) {
                        if (!document.documentElement.scrollHeight < document.body.offsetHeight) {
                            document.getElementById('Maska').style.width = document.body.offsetWidth + 'px';
                            document.getElementById('Maska').style.height = (document.documentElement.scrollHeight - document.body.offsetHeight) + document.body.offsetHeight + 'px';
                        }
                        else {
                            document.getElementById('Maska').style.width = document.body.offsetWidth + 'px';
                            document.getElementById('Maska').style.height = document.body.offsetHeight + 'px';
                        }
                    }
            }
            else {
                ContentWhite.style.width = IMAGES.offsetWidth + 20 + 'px';
                if (window.innerHeight) {
                    ContentWhite.style.top = (((window.innerHeight / 2) - (ContentWhite.offsetHeight / 2)) + (document.body.scrollTop)) + 'px';
                    ContentWhite.style.left = ((window.innerWidth / 2) - (ContentWhite.offsetWidth / 2)) + (document.documentElement.scrollLeft) + 'px';
                    
                }
                else {
					
                    ContentWhite.style.top = ((document.body.scrollTop) + (document.documentElement.clientHeight / 2)) - (ContentWhite.offsetHeight / 2) + 'px';
                    ContentWhite.style.left = ((document.body.scrollLeft) + (document.documentElement.clientWidth / 2)) - (ContentWhite.offsetWidth / 2) + 'px';
                }
                if (window.innerWidth || window.innerHeight) {
                    if (!document.documentElement.scrollHeight < document.body.offsetHeight) {
                        document.getElementById('Maska').style.width = document.body.offsetWidth + 'px';
                        document.getElementById('Maska').style.height = (document.documentElement.scrollHeight - document.body.offsetHeight) + document.body.offsetHeight + 'px';
                    }
                    else {
                        document.getElementById('Maska').style.width = document.body.offsetWidth + 'px';
                        document.getElementById('Maska').style.height = document.body.offsetHeight + 'px';
                    }
                }
                else {
                    if (document.documentElement.clientHeight < document.documentElement.scrollHeight) {
                        document.getElementById('Maska').style.width = document.body.clientWidth + 'px';
                        document.getElementById('Maska').style.height = (document.documentElement.scrollHeight - document.documentElement.clientHeight) + document.body.clientHeight + 'px';
                        
                    }
                    else {
                        document.getElementById('Maska').style.width = document.body.clientWidth + 'px';
                        document.getElementById('Maska').style.height = document.body.clientHeight + 'px';
                    }
                }
            }
        }
        else 
            if (metoda == 'swf') {
                ContentWhite.style.width = iframe.offsetWidth + 20 + 'px';
                document.body.appendChild(Maska);
                ContentWhite.style.width = iframe.offsetWidth + 20 + 'px';
                if (window.innerHeight) {
                    ContentWhite.style.top = ((window.innerHeight / 2) - (ContentWhite.offsetHeight / 2)) + (document.documentElement.scrollTop) + 'px';
                    ContentWhite.style.left = ((window.innerWidth / 2) - (ContentWhite.offsetWidth / 2)) + (document.documentElement.scrollLeft) + 'px';
                    
                }
                else {
                    ContentWhite.style.top = ((document.documentElement.scrollTop) + (document.documentElement.clientHeight / 2)) - (ContentWhite.offsetHeight / 2) + 'px';
                    ContentWhite.style.left = ((document.documentElement.scrollLeft) + (document.documentElement.clientWidth / 2)) - (ContentWhite.offsetWidth / 2) + 'px';
                }
                if (window.innerWidth || window.innerHeight) {
                    if (!document.documentElement.scrollHeight < document.body.offsetHeight) {
                        ContentWhite.style.top = '0px';
                        document.getElementById('Maska').style.width = document.body.offsetWidth + 'px';
                        document.getElementById('Maska').style.height = (document.documentElement.scrollHeight - document.body.offsetHeight) + document.body.offsetHeight + 'px';
                        
                    }
                    else {
                        document.getElementById('Maska').style.width = document.body.offsetWidth + 'px';
                        document.getElementById('Maska').style.height = document.body.offsetHeight + 'px';
                    }
                }
                else {
                    if (document.documentElement.clientHeight < document.documentElement.scrollHeight) {
                        ContentWhite.style.top = '0px';
                        document.getElementById('Maska').style.width = document.body.clientWidth + 'px';
                        document.getElementById('Maska').style.height = (document.documentElement.scrollHeight - document.documentElement.clientHeight) + document.body.clientHeight + 'px';
                        
                    }
                    else {
                        document.getElementById('Maska').style.width = document.body.clientWidth + 'px';
                        document.getElementById('Maska').style.height = document.body.clientHeight + 'px';
                    }
                    
                }
            }
        if (window.innerWidth || window.innerHeight) {
            if (!document.documentElement.scrollHeight < document.body.offsetHeight) {
                document.getElementById('Maska').style.width = document.body.offsetWidth + 'px';
                document.getElementById('Maska').style.height = (document.body.scrollHeight - document.body.offsetHeight) + document.body.offsetHeight + 'px';
                
            }
            else {
                document.getElementById('Maska').style.width = document.body.offsetWidth + 'px';
                document.getElementById('Maska').style.height = document.body.offsetHeight + 'px';
            }
        }
        else {
            if (document.documentElement.clientHeight < document.documentElement.scrollHeight) {
                document.getElementById('Maska').style.width = document.body.clientWidth + 'px';
                document.getElementById('Maska').style.height = (document.body.scrollHeight - document.documentElement.clientHeight) + document.body.clientHeight + 'px';
                
            }
            else {
                document.getElementById('Maska').style.width = document.body.clientWidth + 'px';
                document.getElementById('Maska').style.height = document.body.clientHeight + 'px';
            }
        }
    };
    
    
    
    
    /**
     * 1 Przypisanie właściwości dla mFoto
     * 2 Wyszukiwanie wszystkich elementów
     * 3 Sprawdzanie elementów własciwością mFoto.szukaj.
     * 4 Przypisanie adresu znalezionego elementu.
     * 5 Wywołanie Funkcji na elemencie.
     */
    mFoto.prototype.zmien = function(){
        for (var i = 0; i < document.getElementsByTagName('a').length; i++) {
            mFoto.szukaj('a', i);
            if (mFoto.element.getAttribute('rel')) {
                mFoto.element.href = '#SRC:' + mFoto.szukaj.metoda + ':' + mFoto.element.href;
                mFoto.element.onclick = function(){
                    mFoto.pokaz(this.href.substring(this.href.indexOf('#SRC:') + 5, this.href.indexOf('#SRC:') + 8), this.href.substring(this.href.indexOf('#SRC:') + 9, this.href.length));
                }
            }
        }
    }
}

var mFoto = new mFoto();

