var MSSPage = {
    Init:function() {
       MSSPage.Autoclick();
       FavProps.Init();
       MSSPage.ScriptStringUn();
       MSSPage.AddOnResizeEvent();
       MSSPage.MakeMaxHeight();
    },
    AddOnResizeEvent:function() {
        window.addEvent('resize', function() {
            MainMenu.Init();
            MainSel.onWinResize();
            NPDrop.Init();
        });
    },
    MakeMaxHeight:function() {
        var maxh = 0;
        $$('.jsameheight').each(function(item) {
            var c = item.getCoordinates();
            if(maxh < c.height) maxh = c.height;
        });
        $$('.jsameheight').each(function(item) {
            item.setStyle('height', maxh);
        });
    },
    Autoclick:function() {
        $$('a.autoclick').each(function(item) {
            var ac = item.get('href');
            if(ac) {
                item.set('href','javascript:void(0);');
                var foo = new Function(''+ac);
                foo();
            }
        });
    },
    AjaxCall:function (post_url, post_vars, funcOnResponse)
    {
        // try {Page.xfpajax.cancel(); } catch(e) {}
        var ajax = new Request({method:'post', url: post_url, link: 'cancel', onSuccess: function(responseText, responseXML) { funcOnResponse(responseText); }});
        ajax.send(post_vars);
    },
    Redirect:function(newurl) {
        location.href = newurl;
        return true;
    },
    GetAjaxUrl:function(act) {
        var ajaxurl = $('ajaxurl');
        if(ajaxurl) {
            ajaxurl = ajaxurl.get('value');
            return ajaxurl.replace('[act]', act);
        } else {
            return "";
        }
    },
    ScriptStringUn:function() {
        $$('a.scriptstringm').each(function(item) {
            var val = item.get('html');
            val = val.replace('[scriptstringa]', '@');
            val = val.replace('[scriptstringd]', '.');
            var t = item.get('title');
            if(t) {
                item.set('html', t);
            } else {
                item.set('html', val);
            }
            item.set('href', 'mailto:'+val);
        });
    },
    end:true
};

var MainMenu = {
    sheight:10,
    Init:function() {
        $$('#mainmenu a.parent').each(function(item) {
            var par = item.getParent('.ddli');
            if(!par) return;
            var dd = par.getElement('div.child');
            if(!dd) return;
            
            if(!dd.hasClass('jsdone')) {
                dd.setStyle('display','block');
                var ddc = dd.getCoordinates();
                dd.store('ih',ddc.height);
                dd.addClass('jsdone');
            }
            dd.setStyle('height',MainMenu.sheight);
            var c = item.getCoordinates();
            dd.setStyle('left',c.left);
            dd.setStyle('top',c.top+c.height-MainMenu.sheight-2);
            dd.setStyle('width',c.width);
            
            if(item.hasClass('jsdone')) {
                return;
            } else {
                item.addClass('jsdone');
               
                par.addEvent('mouseenter', function() {
                    dd.tween('height', dd.retrieve('ih'));
                });
                par.addEvent('mouseleave', function() {
                    dd.tween('height',MainMenu.sheight);
                });
            }
        });
    },
    end:true
};

var FavProps = {
    tk:null,
    isinit:false,
    Init:function() {
        if(FavProps.isinit) return;
        FavProps.isinit = true;
        FavProps.tk = Cookie.read('favprops');
        if(FavProps.tk == null) {
            FavProps.tk = new Array();
        } else {
            FavProps.tk = JSON.decode(FavProps.tk);
            $$('.propfav').each(function(item) {
                var id = item.get('id');
                id = id.substring(8);
                
                if(FavProps.IsFav(id)) {
                    item.removeClass('fav0');
                    item.addClass('fav1');
                }
            });
        }
        /*
        try {
            var el = $('search-id-dropdown').getElement('.listdrop');
            el.store('noitems', el.get('html'));
        } catch(e) { }
        */
        // FavProps.UpdateFavDrop();
        FavProps.UpdateLeftLink();
    },
    UpdateLeftLink:function() {
        var el = $('proprietati-favorite');
        if(!el) return;
        if(FavProps.tk.length > 0) {
            el.setStyle('display','block');
        } else {
            el.setStyle('display','none');
        }
    },
    Toggle:function(el, rowid) {
        var e = $(el);
       if(FavProps.IsFav(rowid)) {
           // remove
           FavProps.tk.erase(rowid);
           e.removeClass('fav1');
           e.addClass('fav0');
       } else {
           // add
           FavProps.tk.push(rowid);
           e.removeClass('fav0');
           e.addClass('fav1');
       }
       Cookie.write('favprops', JSON.encode(FavProps.tk), {duration: 120});
       // FavProps.UpdateFavDrop();
       FavProps.UpdateLeftLink();
    },
    UpdateFavDrop:function() {
        /*
        var el = $('search-id-dropdown');
        if(!el) return;
        el = el.getElement('.listdrop');
        if(!el) return;
        var iel = $('isearch-id-dropdown');
        if(!iel) return;
        iel = iel.getElement('.listdrop');
        if(!el) return;
        if(FavProps.tk.length == 0) {
            el.set('html', el.retrieve('noitems'));
            iel.set('html', el.retrieve('noitems'));
        } else {
            var htm = '';
            for(var i=0;i<FavProps.tk.length;i++) {
                var item = FavProps.tk[i];
                htm += '<a class=\"dropfav fav1\" href="/favorit/proprietate-'+item+'.htm">&nbsp;&nbsp;&nbsp;&nbsp;ID: ' + item + '</a>';
            }
            el.set('html', htm);
            iel.set('html', htm);
        }
        */
    },
    IsFav:function(elid) {
        for(var i=0;i<FavProps.tk.length;i++) {
            if(elid == FavProps.tk[i]) return true;
        }
        return false;
    }
};

var PropImage = {
    crn:0,
    nump:0,
    moveoff:0,
    Init:function() {
        var t = $('sng-imgthumb');
        if(!t) {
            PropImage.crn = null;
            return;
        }
        PropImage.crn = 0;
        PropImage.nump = $('imgnav-nump').get('value');
        PropImage.moveoff = $('sng-imgthumb').getSize();
        PropImage.moveoff = PropImage.moveoff.x+5;
        PropImage.updateNav();
        
        if($('fsimg-bg') == null) return;
        $('fsimg-bg').setStyle('display','block');
        $('fsimg-bg').fade('hide');
        $('fsimg-bg').addEvent('click', PropImage.HideFS);
        $('fsimg-show').setStyle('display','block');
        $('fsimg-show').fade('hide');
        $('fsimg-show').addEvent('click', PropImage.HideFS);
        
        $('bigimage').addEvents({'click': PropImage.ShowFS, 'mouseenter': PropImage.onMouseEnter,'mouseleave': PropImage.onMouseLeave});
        // $('sng-img').addEvents({'mouseleave': PropImage.onMouseLeave});
    },
    tMouseLeave:0,
    onMouseEnter:function() {
        var z = $('sng-zoom');
        if(!z) return;
        if(!z.hasClass('jsdone')) {
            var c = $('bigimage').getCoordinates();
            z.setStyle('left', c.left);
            z.setStyle('top', (c.top+c.height-28));
            z.setStyle('display','block');
            z.fade('hide');
            z.addEvents({'click': PropImage.ShowFS, 'mouseenter': PropImage.onMouseEnter, 'mouseleave':PropImage.onMouseLeave});
            z.addClass('jsdone');
        }
        if($('sng-img').hasClass('no-zoom')) return;
        PropImage.tMouseLeave++;
        z.fade('in');
    },
    onMouseLeave:function() {
        if($('sng-img').hasClass('no-zoom')) return;
        PropImage.tMouseLeave--;
        if(PropImage.tMouseLeave <= 0) {
            $('sng-zoom').fade('out');
        }
    },
    ShowFS:function() {
        $('fsimg-bg').fade(0.7);
        var el = $('bigimage');
        var fs = $('fsimg-show');
        var pat = $('fsimg-pat').value.split('|');
        var newsrc = el.get('src');
        newsrc = newsrc.replace(pat[0],pat[1]);
        fs.setStyle('background-image', 'url('+newsrc+')');
        // var c = el.getCoordinates();
        // var myEffect = new Fx.Morph(fs, { transition: Fx.Transitions.Sine.easeOut });
        var mimg = Asset.image(newsrc, {
            onLoad: function() {
                fs.fade('in');
                // myEffect.start({ 'left': [c.left, 0], 'top': [c.top, 0], 'width': [cwidth, '100%'], 'height': [c.height, '100%']});
            }
        });
    },
    HideFS:function() {
        $('fsimg-show').fade('out');
        $('fsimg-bg').fade('out');
    },
    ReplaceBig:function(el) {
        if(PropImage.crn == null) return;
        var e = $(el).getElement('img');
        var bi = $('bigimage');
        bi.fade('out');
        var pat = $('bigimg-pat').value.split('|');
        var newsrc = e.get('src');
        newsrc = newsrc.replace(pat[0],pat[1]);
        bi.set('src', newsrc);
        bi.set('alt', e.get('alt'));
        bi.set('title', e.get('title'));
        $('sng-zoom-tit').set('html', e.get('title'));
        var mimg = Asset.image(newsrc, {
            onLoad: function() {
                bi.fade('in');
            }
        });
    },
    NextPage:function() {
        if(PropImage.crn < (PropImage.nump-1)) {
            PropImage.crn++;
            PropImage.updateImages();
            PropImage.updateNav();
        }
    },
    PrevPage:function() {
        if(PropImage.crn > 0) {
            PropImage.crn--;
            PropImage.updateImages();
            PropImage.updateNav();
        }
    },
    updateImages:function() {
        // calculate the new offset
        var e = $('sng-thumbmask');
        var noff = PropImage.crn * (-1) * PropImage.moveoff;
        e.tween('left', noff);
    },
    updateNav:function() {
        var p = $('navimg-prev');
        var n = $('navimg-next');
        if(!p || !n) return;
        if(PropImage.crn == 0) {
            p.addClass('dis');
        } else {
            p.removeClass('dis');
        }
        
        if(PropImage.crn < (PropImage.nump-1)) {
            n.removeClass('dis');
        } else {
            n.addClass('dis');
        }
    }
};

var Captcha = {
    Init:function() {
        $$('img.captcha').each(function(item) {
            if(item.hasClass('jsdone')) return;
            item.addClass('jsdone');
            item.addEvent('click', function() {
                var src = item.get('src');
                var rnd = Math.random() * 100000;
                rnd = parseInt(rnd);
                src = src.replace(/turl[0-9a-f]/, 'turl'+rnd);
                item.set('src', src);
            });
        });
    }
};

var FormYourRequest = {
    tk:null,
    Validate:function(el) {
        $('formsubmit').setStyle('display','none');
        $('formwait').setStyle('display','block');
        FormYourRequest.tk = setTimeout("FormYourRequest.SendForm('"+$(el).get('id')+"');", 500);
        return false;
    },
    HideTip:function(tip) {
        var t = $('fieldtip_'+tip);
        if(t) t.fade('out');
    },
    ShowTip:function(tip) {
        $$('.fieldtip').each(function(item) {
            if(!item.hasClass('jsdone')) {
                item.setStyle('display','block');
                item.fade('hide');
                item.addClass('jsdone');
            }
            item.fade('hide');
        });
        
        var t = $('fieldtip_'+tip);
        var inp = $(''+tip);
        if(!t || !inp) {
            alert(tip);
            return false;
        }
        
        if(!inp.hasClass('jsdone')) {
            inp.addEvent('keyup', function() {
                FormYourRequest.HideTip(tip);
            });
            inp.addClass('jsdone');
        }
        
        t.fade('in');
        var c = inp.getCoordinates();
        t.setStyle('left', (c.left + c.width + 2));
        t.setStyle('top', c.top);
        if(c.width > 150) {
            t.setStyle('width', c.width);
        } else {
            t.setStyle('width', 150);
        }
        inp.focus();
    },
    SendForm:function(elem) {
        clearTimeout(FormYourRequest.tk);
        var ajurl = $(elem).get('action');
        var pv = "";
        $(elem).getElements('input').each(function(item) {
            if(!item.get('name')) return;
            if(pv.length > 0) pv += "&";
            if(item.get('type') == 'text') {
                pv += item.get('name')+"="+item.get('value');
            } else if(item.get('type') == 'checkbox' && item.get('checked')) {
                pv += item.get('name')+"="+item.get('value');
            }   
        });
        $(elem).getElements('textarea').each(function(item) {
            if(pv.length > 0) pv += "&";
            pv += item.get('name')+'='+item.get('value');
        });
        
        MSSPage.AjaxCall(ajurl, pv, function(txt) {
            if(txt == 'ok') {
                MSSPage.Redirect($('formok').get('value'));
            } else {
                $('formsubmit').setStyle('display','block');
                $('formwait').setStyle('display','none');
                FormYourRequest.ShowTip(txt);
            }
        });
    }
};

var Opor = {
    kt:null,
    qt:3,
    kp:null,
    crn:null,
    mo:null,
    Init:function() {
        Opor.kp = $('opor');
        if(!Opor.kp) return;
        
        Opor.kp.addEvent('mouseenter', function() {
            clearTimeout(Opor.kt);
            Opor.mo = true;
        });
        Opor.kp.addEvent('mouseleave', function() {
            Opor.mo = false;
            Opor.kt = setTimeout('Opor.Tick()', Opor.qt * 1000);
        });
        
        Opor.kp.getElements('.opor-pane').each(function(item) {
            if(item.hasClass('jsdone')) return;
            item.addClass('jsdone');
            item.set('tween', {duration:'long'});
            item.get('tween').addEvent('complete', Opor.onHideComplete);
            var c = item.getCoordinates();
            item.store('iw', c.height);
        });
        Opor.kt = setTimeout('Opor.Tick()', Opor.qt * 1000);
    },
    Tick:function() {
        clearTimeout(Opor.kt);
        if(Opor.mo) return;
        var elem = Opor.kp.getElement('.opor-pane');
        var rm = elem.clone();
        rm.erase('tween');
        rm.set('tween', {duration:'long'});
        rm.get('tween').addEvent('complete', Opor.onHideComplete);
        Opor.kp.adopt(rm);
        Opor.crn = elem;
        try { elem.tween('height', 1); } catch(e) { }
    },
    onHideComplete:function() {
        
        if(Opor.crn != null) {
            // kinPartners.crn.setStyle('width', kinPartners.crn.retrieve('iw'));
            var removed = Opor.crn.dispose();
            // removed.setStyle('width', removed.retrieve('iw'));
            Opor.crn = null;
            // alert('complete');
        } 
        Opor.kt = setTimeout('Opor.Tick()', Opor.qt * 1000);
    }
};

var NPDrop = {
    runonce:false,
    Init:function() {
        if(!NPDrop.runonce) {
            window.addEvent('click', NPDrop.HideDrops);
        }
        NPDrop.runonce = true;
        $$('.navpg-sel').each(function(item) {
            if(item.hasClass('jsdone')) return;
            var drop = item.getParent('.sort_nav');
            if(!drop) return;
            drop = drop.getElement('.navpg-drop');
            if(!drop) return;
            drop.setStyle('display','block');
            var c = drop.getCoordinates();
            drop.store('ih', c.width);
            drop.setStyle('display', 'none');
            item.store('iw', 1);
            var tt = item.get('title');
            if(tt == 'down') item.store('ih', 'down');
            else item.store('ih', 'up');
            item.set('title', '');
            item.addEvent('click', function() {
                if(item.retrieve('iw') == 0) {
                    // we must hide
                    NPDrop.HideDrops();
                } else {
                    // we must show
                    drop.setStyle('display','block');
                    var cx = item.getCoordinates();
                    var cxx = drop.getCoordinates();
                    drop.setStyle('left', cx.left+cx.width-cxx.width);
                    if(item.retrieve('ih') == 'down') {
                        drop.setStyle('top', (cx.top+cx.height-1));
                    } else {
                        drop.setStyle('top', (cx.top-cxx.height));
                    }
                    
                    drop.fade('hide');
                    drop.fade('in');
                    item.store('iw', 0);
                }
            });
        });
    },
    HideDrops:function() {
        $$('.navpg-sel').each(function(item) {
            var drop = item.getParent('.sort_nav');
            if(!drop) return;
            drop = drop.getElement('.navpg-drop');
            if(!drop) return;
            drop.fade('hide');
            item.store('iw', 1);
        });
    }
};
