var W3CDOM = (document.createElement && document.getElementsByTagName);


/*
function displayWindow(url, width, height)
{ 
	width += 20;
	height += 20;
	noweOkno = window.open(url,"displayWindow",'width='+width+',height='+height+',toolbar=no,menubar=no,scrollbars=no,resizable=yes' );
	if (noweOkno.open)
   {
      noweOkno.close();
		noweOkno = window.open(url,"displayWindow",'width='+width+',height='+height+',toolbar=no,menubar=no,scrollbars=no,resizable=yes' );
	}
}
*/

function displayWindow(url, width, height){
    Popup.openImg(url);
}


var Popup = {
    isOpen: false,
    isCreate: false,
    isAnim: false,
    create: function(){
        if (!this.isCreate) {
            this.isCreate = true;
            this.dom = new Element('div', {
                'id': 'popup',
                'styles':{
                    'background':'#D7D4CB',
                    'border':'6px solid #DDDAD1',
                    'display':'none',
                    'left':'50%',
                    'position':'absolute',
                    'top':'50%',
                    'width':'100px',
                    'z-index':'200'
                }
            });
            document.body.appendChild(this.dom);
            var _s = this;
            this.tween = new Fx.Tween(this.dom, {
                duration: 300,
                //transition: Fx.Transitions.Quad.easeOut,
                onComplete: function(){

                    _s.isAnim = false;
                    if (!_s.isOpen) {
                        _s.dom.setStyle('display', 'none');

                    }
                }
            });

        }
        return this.dom;
    },
    open: function(width, height){
        if (!this.isOpen) {
            this.create();
            this.isOpen = true;
            Popup.Mask.show();
            this.width = width;
            this.height = height;
            this.dom.setStyles({
                'width': this.width,
                'height': this.height,
                'top': -this.height,
                'margin-top': -this.height / 2,
                'margin-left': -this.width / 2
            });
            this.dom.setStyle('display', 'block');
            this.isAnim = true;
            this.openPos = window.getSize().y / 2+window.getScroll().y;
            this.tween.start('top', -this.height, this.openPos);
        }
    },
    openFlash: function(url, width, height, param, variable){
        this.open(width, height);
        var swf = new SWFObject(url, 'popupflash', width, height, '8');
        if (param) {
            for (var i in param) {
                swf.addParam(i, param[i]);
            }
        }
        if (variable) {
            for (var i in variable) {
                swf.addVariable(i, variable[i]);
            }
        }
        swf.write('popup');

    },
    openImg:function(img){
        var i = new Image();
        var _s = this;
        i.onload = function(){
            Popup.open(this.width, this.height);
            _s.dom.innerHTML = '';
            _s.dom.appendChild(this);
            this.style.cursor = 'pointer';
            this.onclick = function(){
                _s.close();
            }
        }
        //i.src = img.src.replace(/\/upload\/image\/mini\//,'/upload/image/max/');
        i.src = img;

    },
    close: function(){
        if (this.isOpen && !this.isAnim) {
            this.isOpen = false;
            this.isAnim = true;
            Popup.Mask.hide();
            this.tween.start('top',window.getSize().y / 2+window.getScroll().y, -this.height);
        }
    }

};

Popup.Mask = {
    isOpen: false,
    isCreate: false,
    create: function(){
        if (!this.isCreate) {
            this.isCreate = true;
            this.dom = new Element('div', {
                'id': 'popup_mask',
                'styles':{
                    'background':'#000000 none repeat scroll 0 0',
                    'display':'none',
                    'height':'100%',
                    'left':'0',
                    'position':'absolute',
                    'top':0,
                    'width':'100%',
                    'z-index':100
                }
            });



            document.body.appendChild(this.dom);
        }
    },
    show: function(){
        if (!this.isOpen) {
            this.isOpen = true;
            this.create();
            var wHeight = window.getSize().y;
            var wWidth = window.getSize().x;

            this.dom.setStyles({
                'height': window.getScrollSize().y,
                'opacity': 0
            });
            this.dom.setStyle('display', 'block');
            this.dom.fade(0.7);

        }
    },
    hide: function(){
        if (this.isOpen) {
            this.isOpen = false;
            this.dom.fade(0);
        }
    }
}

function changeBullet(bullet,image,side){
	
    bull = document.getElementById(bullet);
    //str2 = prompt( bull.src, "" );
    var tab=bull.src.split("/");
    var name = tab.pop();
    if (side == 'L'){
        document.groupImage.src = image;
		
    }else if (side=='P'){
        document.groupImageP.src = image;
	
    }

	 
    if (name == 'bullet_lewe_jasny.jpg'){
        bull.src =  './imagesK/menu_prawe/bullet_prawo.jpg';
    }
    if (name == 'bullet_lewo.jpg'){
        bull.src =  './imagesK/menu_prawe/bullet_lewe_ciemny.jpg';
    }
	
}
function restoreBullet(bullet){
    bull = document.getElementById(bullet);
    //str2 = prompt( bull.src, "" );
    var tab=bull.src.split("/");
    var name = tab.pop();

    if (name == 'bullet_prawo.jpg'){
        bull.src =  './imagesK/menu_lewe/bullet_lewe_jasny.jpg';
    }
    if (name == 'bullet_lewe_ciemny.jpg'){
        bull.src =  './imagesK/menu_lewe/bullet_lewo.jpg';
    }
}
function askData(formName) {
    //var inputedData =  prompt ("type something!", "" );
    if (confirm("Czy napewno chcesz wysłać zamówienie ?")) {
        document.zamow.submit();
        return true;
    }
    else {
        return false;
    }
}

function enableDisable(){
    var wartosc = document.register.firma.value;
    if (wartosc == "" ){
	        
        document.register.nip.disabled = true;
        document.register.nip.value= "";
        document.register.nip.style.background = "Grey";
		
    }else {
        document.register.nip.disabled = false;
        document.register.nip.style.background = "White";
		
    }
	



}
function changeAmount(id, nazwa, ilosc){
	
    window.prompt("Proszę wprowadzić nową ilość dla produktu: "+nazwa,ilosc);
	
}
function initFileUploads()
{
    if (!W3CDOM) return;
    var fakeFileUpload = document.createElement('div');
    fakeFileUpload.className = 'fakefile';
    var text = document.createElement('input');
    text.className = 'text';
    fakeFileUpload.appendChild(text);
    var image = document.createElement('input');
    image.className = 'submit';
    fakeFileUpload.appendChild(image);
    var x = document.getElementsByTagName('input');
    for (var i=0;i<x.length;i++)
    {
        if (x[i].type != 'file') continue;
        if (x[i].parentNode.className != 'fileinputs') continue;
        x[i].className = 'file hidden';
        var clone = fakeFileUpload.cloneNode(true);
        x[i].parentNode.appendChild(clone);
        x[i].relatedElement = clone.getElementsByTagName('input')[0];
        x[i].onchange = x[i].onmouseout = function () {
            this.relatedElement.value = this.value;
        }
    }
}

function resetForm(form){

    str = "";
    for (i=0;i<document.forms[form].length; i++)
    {
        switch(document.forms[form].elements[i].type){
            case "text" :
                document.forms[form].elements[i].value="";
                break;
            case "radio" :
            //document.forms[form].elements[i].checked=false;
            //break;
            case "checkbox":
                document.forms[form].elements[i].checked=false;
                break;
        }
		
	
    //str += document.forms[form].elements[i].value +"\n";
		
    }
//alert(document.forms[form].length);
//	alert(str);
//alert(document.forms[form].elements[0].type);

}

function infoTip(addr)
{
    wndOp = window.open('hint.php?show='+addr,'hintWnd',
        'top=' + eval((screen.availHeight-250))
        +' ,left=' + eval((screen.availWidth-250))
        +',alwaysRaised=yes,width=160,height=160,toolbar=no,menubar=no,location=no,personalbar=no,scrollbars=no,directories=no,status=no,resizable=no');
    wndOp.focus();
}

function reloadPage(path){

    var str = null;
    str = "index.php?show=" + path;
    location=str;
}

//do podswietlania wierszy tabeli
function podswKomorke(E,sh){
    // E - element komórki
    // sh - zmienna typu Boolean, od której zależy,
    // czy komórka zostanie podświetlona, czy przywrócony
    // zostanie normalny stan.
    // zmiana klasy
    E.className=(sh==1)?'podswietlona':'normalna';
}

function a(t) {
    t.style.color = '#ff0000';
    t.style.background='#ffffff';
}

var Gonzo = {};
Gonzo.Comments = new Class({
    initialize: function(){
        this.toy = [];
        this.sid = [];
        this.find();
        this.init();
    },
    init:function(){
        if(this.sid.length > 0){
            var jsonRequest = new Request.JSON({
                url: "ajax.php?act=comments.load",
                data:{
                    sid:JSON.encode(this.sid)
                },
                onComplete: function(data){
                    this.load(data);
                }.bind(this)
            }).post();
        }
    },
    load:function(data){
        for(var i = 0;i < this.toy.length;i++){
            var tid = this.toy[i].tid;
            var d = data ? data[tid] : null
            new Gonzo.Comment(this,this.toy[i],tid,d || null);
        }
    },
    find:function(){
        //not work $$ :/
        var tds = document.getElementsByTagName('input');
        for(var i= 0;i < tds.length;i++){
            if (tds[i].className == 'toyitem'){
                var p = $(tds[i]);
                var td = p.getParent();
                var c = td.getElement('div');
                if(!c || c.className != 'comments'){
                    c = null;
                }
                this.sid.push(p.value);
                this.toy.push({
                    ditem:td,
                    tid:p.value,
                    dcom:c
                });
            }
        }
    },

    showAddForm:function(comments){
        if(comments){
            if(this.actualComments) this.actualComments.addFormResponse(false);
            this.actualComments = comments;
            this.createAddForm();
            this.addForm.injectTop(comments.dom);
            this.addForm.setStyle('display','block');

        }
    },
    hideAddForm:function(data){
        if(this.addForm){
            this.addForm.setStyle('display','none');
        }
        if(this.actualComments){
            this.actualComments.addFormResponse(data);
            
        }
    },
    createAddForm:function(){
        if(!this.isCreate){
            this.isCreate = true;
            var f = new Element('div',{
                'class':'addform'
            });
            var l = new Element('div',{'class':'fline'});
            var la = new Element('label',{'html':'Nick:'});
            this.tnick = new Element('input',{'type':'text','class':'text'});
            l.appendChild(la);
            l.appendChild(this.tnick);
            f.appendChild(l);
            l = new Element('div',{'class':'fline'});
            la = new Element('label',{'html':'Treść:'});
            this.tdescr = new Element('textarea',{'class':'text'});
            l.appendChild(la);
            l.appendChild(this.tdescr);
            f.appendChild(l);

            var b = new Element('div',{'class':'buttons'});
            this.bsave = new Element('a',{
                'class':'save',
                'html':'Zapisz',
                events:{
                    'click':this.saveNew.bindWithEvent(this)
                }
            });
            this.bcancel = new Element('a',{
                'class':'cancel',
                'html':'Anuluj',
                events:{
                    'click':this.hideAddForm.bind(this,'nodata')
                }
            });
            b.appendChild(this.bsave);
            b.appendChild(this.bcancel);
            f.appendChild(b);
            this.addForm = f;
        }
    },
    saveNew:function(){
        var n = this.tnick.get('value');
        this.tnick.set('value','');
        var d = this.tdescr.get('value');
        this.tdescr.set('value','');
        if(n && d && n.length > 0 && d.length > 0){
           new Request.JSON({
                url: "ajax.php?act=comments.save",
                data:{
                    nick:n,
                    descr:d,
                    tid:this.actualComments.tid
                },
                onComplete: function(data){
                    this.hideAddForm(data);
                        
                }.bind(this)
            }).post();
        }
    }
});
Gonzo.Comment = new Class({
    initialize: function(parent,dom,tid,data){
        this.parent = parent;
        this.dom = dom.dcom;
        this.ditems = {};
        this.tid = tid;
        this.data = data;
        this.create(data);
    },
    create:function(data){
        var t = new Element('div',{
            'class':'title',
            html:'Komentarze'
        });
        //if(config.islogin){
            var add = new Element('a',{
                'class':'add',
                'href':'#add',
                html:'dodaj'
            });
            add.addEvent('click',this.addForm.bind(this));
            this.dom.appendChild(add);
            this.badd = add;
        //}
        this.dom.appendChild(t);
        if(data){
            for(var i = data.length-1;i >= 0 ;i--){
                this.addItem(data[i]);
            }
        }
    },
    addItem:function(data){
        var sid = data[0];
        var item = new Element('div',{
            'class':'item'
        });
        if(config.islogin && data[4] == 1){
            var b = new Element('a',{
                'class':'remove',
                'href':'#remove',
                html:'usuń'
            });
            b.addEvent('click',this.remove.bind(this,sid));
            item.appendChild(b);
        }

        var auth = new Element('span',{
            'class':'auth',
            html:data[1]
        });

        var date = new Element('span',{
            'class':'date',
            html:data[3]
        });
        var comment = new Element('div',{
            'class':'comment',
            html:data[2]
        });

        item.appendChild(auth);
        item.appendChild(date);
        item.appendChild(comment);

        if(!this.first){
            
            this.dom.appendChild(item);
        }else{
            this.dom.insertBefore(item,this.first);
        }
        this.first = item;
        this.ditems[sid] = item;
    },
    remove:function(sid){
      var jsonRequest = new Request.JSON({
                url: "ajax.php?act=comments.remove",
                data:{
                    sid:sid
                },
                onComplete: function(data){
                    this.removeResponse(sid);
                }.bind(this)
      }).post();
      if(this.ditems[sid]){
            this.ditems[sid].dispose();
            var tmp = this.ditems[sid];
            delete this.ditems[sid];
            if(tmp == this.first){
                
                this.first = null;
                var f = this.dom.getElement('div.item');
                if(f) this.first = f;
            }

      }
    },
    removeResponse:function(sid){
        
    },
    addForm:function(){
        this.parent.showAddForm(this);
        this.badd.setStyle('visibility','hidden');
    },
    addFormResponse:function(data){
        if(data && data != 'nodata'){
            this.addItem(data);
        }
        this.badd.setStyle('visibility','visible');
    }
});

if(typeof config == 'undefined'){
    var config = {islogin:true};
}

window.addEvent('domready', function(){
    new Gonzo.Comments();
});
