//values és texts tömbök kell legyenek, azonos darabszámmal
//array('1','20')
//array('kat vagy hír cím 1','cím2')
//a myname-nek ugyanannak kell lennie mint a létrehozott objektumnak

var values1,texts,prices,myname;

var dinamiclist=Class.create({
    initialize:function (myname,targethidden,targetdiv,values1,texts,mode)
    {
        this.tgthidden=$(targethidden);
        this.tgtdiv=$(targetdiv);
        this.myname=myname;
        this.mode=mode;  //text , price , pricemulti

        if(!values1)values1=new Array();
        this.values1=values1;
        if(!texts)texts=new Array();
        this.texts=texts;
        //ha kell az ár mező és annak lehetnek értékei, felbontjuk
        this.prices=new Array();
        if(this.mode=='price' || this.mode=='pricemulti')
            {
            var temp;
            for(var i=0;i<this.values1.length;i++)
                {
                temp=this.values1[i].split('-_-');
                this.values1[i]=temp[0];
                this.prices[i]=(temp[1])?temp[1]:'';
                }
            }

        this.appendInput();
        this.refreshList();
    },
        refreshList :function()
            {
            this.tgtdiv.update('');
            var listname=this.myname+'listitem_';
            var ulname=this.myname+'ul';
            var htmlkod='<ul class="dinlist" id="'+ulname+'">';
            var i=0;

            for(i=0;i<this.values1.length;i++)
                if(this.values1[i]!='')htmlkod+='<li id="'+listname+i+'" '+((!document.all)?'style="cursor:move;"':'')+'><a href="javascript:try{hidetitle();}catch(e){};'+this.myname+'.delItem(\''+this.values1[i]+'\');" title="Törlés a listából" class="module_button"> - </a>'+this.texts[i]+((this.prices[i])?' '+this.prices[i]:'')+'</li>';
            htmlkod+='</ul>';
            //this.tgtdiv.innerHTML=htmlkod;
            this.tgtdiv.update(htmlkod);

              try{Sortable.destroy(ulname)}catch(e){}
              if(!document.all)Sortable.create(ulname,{
                onUpdate: function()
                    {
                    posli=Sortable.sequence(ulname).join(',');
                    var ename=ulname.slice(0,ulname.lastIndexOf('ul'));
                    eval('document.getElementById(\''+ename+'order\').value=\''+posli+'\';');
                    eval(ename+'.orderList()');
                    //eval('alert('+ename+'order.value)');
                    }
            });
            if(this.mode=='price' || this.mode=='pricemulti')
                {
                var temp=new Array(),sor,tomb=new Array();
                for(var i=0;i<this.values1.length;i++)
                    {
                    if(this.values1[i]!='')
                        {
                        temp[0]=this.values1[i];
                        temp[1]=(this.prices[i])?this.prices[i]:'';
                        sor=temp.join('-_-');
                        tomb[i]=sor;
                        }
                    }
                this.tgthidden.value=tomb.join(',');
                }else this.tgthidden.value=this.values1.join(',');
            try{this.tgthidden.fire('dinamiclist:change')}catch(e){}
            },

        addItem :function(item1)
            {
            if(item1.search(';')>0)
                {
                var temp_tomb=item1.split(/[;]/);
                var a=temp_tomb[0]; //id
                var b=temp_tomb[1]; //szoveg
                if(this.mode=='price' || this.mode=='pricemulti')//ár
                    {
                    var temp;
                    temp=b.split('-_-');
                    b=temp[0];
                    var c=(temp[1])?temp[1]:'';
                    if($(this.myname+'price').value!='')c=$(this.myname+'price').value;
                    }
                var bennevan=false;
                var i=0;
                for(i=0;i< this.values1.length;i++)if(this.values1[i]==a)bennevan=true;

                if(!bennevan && a!='-1')
                    {
                    this.values1=this.values1.concat(a);
                    this.texts=this.texts.concat(b);
                    if(this.mode=='price' || this.mode=='pricemulti')this.prices=this.prices.concat(c);
                    }
                this.refreshList();
                }
            },

        delItem :function(id)
            {
            var torl=-1;
            for(i=0; i< this.values1.length;i++)
                {
                if(this.values1[i]==id)
                    {
                    torl=i;
                    }
                }
            if(torl>-1)
                {
                this.values1.splice(torl,1);
                this.texts.splice(torl,1);
                if(this.mode=='price' || this.mode=='pricemulti')this.prices.splice(torl,1);
                }

            this.refreshList();
            },

        appendInput :function()
            {
            var selectitem=this.myname.slice(0,this.myname.lastIndexOf('o'))+'select';
            
            $(selectitem).insert({'before':'<input type="hidden" name="'+this.myname+'order" id="'+this.myname+'order">'});
            if(this.mode=='price' || this.mode=='pricemulti')
                {
                $(selectitem).insert({'after':'<input type="text" name="'+this.myname+'price" id="'+this.myname+'price" class="smallselect" value="" title="<b>Ármódosító mező</b><br>Árkülönbözet megadása. Csak + - * . karakterek és számok legyenek benne!<br><b>pl: +1200</b><br><b>vagy pl: *2</b><br>Szorzás esetén ez a mező az árat ennyi szeresére fogja felszorozni." onkeyup="this.value=this.value.replace(/[^\\d\\.\\+\\-\\*]\\=/,\'\')">'});
                if(this.mode=='pricemulti')
                    {
                    $(selectitem).insert({'before':'Automatikus árkülönbözet számítása<br><span style="float:left">Tól: </span>'});
                    var newselect='<span style="float:left">Ig: </span><select name="'+this.myname+'toselect" id="'+this.myname+'toselect" class="selectinput">';
                    for(var i=0;i<$(selectitem).options.length;i++)
                        newselect+='<option value="'+$(selectitem).options[i].value+'"'+((i==$(selectitem).options.length-1)?' selected':'')+'>'+$(selectitem).options[i].text+'</option>';
                    newselect+='</select><img src="/admin/php/moduls/webshop/images/multiplier.gif" border="0" title="Ármódosító mezőben megadott értékkel növelt/csökkentett/beszorzott lineáris sorozat létrehozása Tól - Ig tartományban!" onclick="'+this.myname+'.calculatePrices();">';
                    $(selectitem).insert({'after':newselect});
                    }
                }
            },
            
        calculatePrices :function()
            {
            var plusprice=$(this.myname+'price').value;
            var jel=plusprice.charAt(0);
            switch(jel){
                case '+':jel='+';break;
                case '-':jel='';break;
                case '*':jel='*';break;
                default:jel='+';break;
            }
            if(plusprice!='' && this.mode=='pricemulti')
                {
                this.values1=new Array();
                this.texts=new Array();
                this.prices=new Array();
                //this.refreshList();
                
                var selectitem=this.myname.slice(0,this.myname.lastIndexOf('o'))+'select';
                var newselect=this.myname+'toselect';
                
                var startindex=$(selectitem).selectedIndex;
                var stopindex=$(newselect).selectedIndex;
                
                var temp=new Array();
                for(var i=0;i<$(selectitem).options.length;i++)
                    {
                    var sor=$(selectitem).options[i].value;
                    sor=sor.split(/[;]/);
                    temp[i]=sor;
                    }
                var j=1; var x=0;
                for(var i=startindex;i<=stopindex;i++)
                    {
                    this.values1[x]=temp[i][0];
                    this.texts[x]=temp[i][1];
                    switch(jel)
                        {
                        case '*':
                            var newprice=eval(j+'*('+plusprice.substr(1)+')');
                            this.prices[x]=jel+newprice;
                            break;
                        case '+':
                        default:
                            var newprice=eval(j+'*('+plusprice+')');
                            this.prices[x]=jel+newprice;
                            break;
                        }
                    j++; x++;
                    }
                this.refreshList();
                }
            },
            
            orderList:function(){
                var pt=$(this.myname+'order').value;
                pt=pt.split(/[,]/);
                var temptomb=new Array();
                temptomb[0]=new Array();
                temptomb[1]=new Array();
                if(this.mode=='price' || this.mode=='pricemulti')temptomb[2]=new Array();
                for(var i=0;i<pt.length;i++)
                    {
                    temptomb[0][i]=this.values1[pt[i]];
                    temptomb[1][i]=this.texts[pt[i]];
                    if(this.mode=='price' || this.mode=='pricemulti')temptomb[2][i]=this.prices[pt[i]];
                    }
                this.values1=temptomb[0];
                this.texts=temptomb[1];
                if(this.mode=='price' || this.mode=='pricemulti')this.prices=temptomb[2];
                this.refreshList();
                //alert(this.tgthidden.value)
            }

});
//dinamiclist másképp, input elemmel, id nélkül(kulcsszóhoz)
var dinamicinput=Class.create({
    initialize:function(myname,targethidden,targetdiv,texts,mode)
    {
        this.tgthidden=$(targethidden);
        this.tgtdiv=$(targetdiv);
        this.myname=myname;
        this.inputfield=this.myname.slice(0,this.myname.lastIndexOf('o'))+'input';
        this.mode=mode; //text , price

        if(!texts)texts=new Array();
        this.texts=texts;
        //ha kell az ár mező és annak lehetnek értékei, felbontjuk
        this.prices=new Array();
        if(this.mode=='price')
            {
            var temp;
            for(var i=0;i<this.texts.length;i++)
                {
                temp=this.texts[i].split('-_-');
                this.texts[i]=temp[0];
                this.prices[i]=(temp[1])?temp[1]:'';
                }
            }

        this.appendInput();
        this.refreshList();

        //$(this.inputfield).writeAttribute('onkeyup','this.value.replace(/[,]/,\'#130;\')')

    },
        refreshList :function()
            {
            this.tgtdiv.innerHTML="";
            var listname=this.myname+'listitem_';
            var ulname=this.myname+'ul';
            var htmlkod='<ul class="dinlist" id="'+ulname+'">';
            var i=0;

            if(this.texts.length>0)for(i=0;i<this.texts.length;i++)
                {
                this.texts[i]=this.texts[i].replace(/\'/g,'');
                htmlkod+='<li id="'+listname+i+'" style="cursor:move"><a href="javascript:try{hidetitle();}catch(e){};'+this.myname+'.delItem(\''+i+'\');" title="Törlés a listából" class="module_button"> - </a>'+this.texts[i]+((this.prices[i])?' '+this.prices[i]:'')+'</li>'; //this.texts[i]
                }
            htmlkod+='</ul>';
            this.tgtdiv.innerHTML=htmlkod;
            

              try{Sortable.destroy(ulname)}catch(e){}
              Sortable.create(ulname,{
                onUpdate: function()
                    {
                    var posli=Sortable.serialize(ulname);
                    var pt=posli.split('&');
                    for(var i=0;i<pt.length;i++)pt[i]=pt[i].replace(ulname+'[]=','');
                    posli=pt.join(',');
                    var ename=ulname.slice(0,ulname.lastIndexOf('ul'));
                    eval(ename+'order.value=\''+posli+'\';');
                    eval(ename+'.orderList()');
                    //eval('alert('+ename+'order.value)');
                    }
            });

            if(this.mode=='price')
                {
                var temp=new Array(),sor,tomb=new Array();
                for(var i=0;i<this.texts.length;i++)
                    {
                    if(this.texts[i]!='')
                        {
                        temp[0]=this.texts[i];
                        temp[1]=(this.prices[i])?this.prices[i]:'';
                        sor=temp.join('-_-');
                        tomb[i]=sor;
                        }
                    }
                (tomb.length>0)?this.tgthidden.value='['+tomb.join('],[')+']':this.tgthidden.value='';
                }
            else
                (this.texts.length>0)?this.tgthidden.value='['+this.texts.join('],[')+']':this.tgthidden.value='';

            try{this.tgthidden.fire('dinamicinput:change')}catch(e){}
            },

        addItem :function(item1)
            {
            var bennevan=false;
            var i=0;
            
                if(this.mode=='price')//ár
                    {
                    var temp;
                    temp=item1.split('-_-');
                    b=temp[0];
                    var c=(temp[1])?temp[1]:'';
                    if($(this.myname+'price').value!='')c=$(this.myname+'price').value;
                    }
            
            for(i=0;i< this.texts.length;i++)if(this.texts[i]==item1)bennevan=true;

            if(!bennevan)
                {
                this.texts=this.texts.concat(item1);
                if(this.mode=='price')this.prices=this.prices.concat(c);
                }
            this.refreshList();
            },

        delItem :function(id)
            {
            var torl=-1;
/*            for(i=0; i< this.texts.length;i++)
                {
                if(this.texts[i]==id)
                    {
                    torl=i;
                    }
                }*/
            torl=id;
            if(torl>-1)
                {
                this.texts.splice(torl,1);
                if(this.mode=='price')this.prices.splice(torl,1);
                }

            this.refreshList();
            },
            
        appendInput :function()
            {
            var selectitem=this.myname.slice(0,this.myname.lastIndexOf('o'))+'input';

            $(selectitem).insert({'before':'<input type="hidden" name="'+this.myname+'order" id="'+this.myname+'order">'});
            if(this.mode=='price')
                {
                $(selectitem).insert({'after':'<input type="text" name="'+this.myname+'price" id="'+this.myname+'price" class="smallselect" value="" title="Árkülönbözet megadása. Csak + - . karakterek és számok legyenek benne!<br><b>pl: +1200</b>" onkeyup="this.value=this.value.replace(/[^\\d\\.\\+\\-\\*\\=]/,\'\')">'});
                }
            },

            orderList:function(){
                var pt=$(this.myname+'order').value;
                pt=pt.split(/[,]/);
                var temptomb=new Array(3);
                temptomb[0]=new Array();
                temptomb[1]=new Array();
                for(var i=0;i<pt.length;i++)
                    {
                    temptomb[0][i]=this.texts[pt[i]];
                    temptomb[1][i]=this.prices[pt[i]];
                    }
                this.texts=temptomb[0];
                this.prices=temptomb[1];
                this.refreshList();
                //alert(this.tgthidden.value)
            }

});


//a tabs és divs tömbök, melyek a füleket és a hozzájuk tartozó divek neveinek listáját tartalmazzák
var tabber=Class.create({
    initialize:function(tabs,divs)
    {
    this.tabs=tabs;
    this.divs=divs;
    this.index1=0;
    this.deftab=this.tabs[0];
    this.defdiv=this.divs[0];
    this.changeTab(this.index1);
    },
    
    changeTab:function(id)
    {
    for(var i=0;i<this.tabs.length;i++)
        {
        if(i==id)
            {
            $(this.divs[i]).style.display='block';
            new Effect.Opacity(this.divs[i], { from: 0.3, to: 1 , duration: 0.5});
//            $(this.tabs[i]).toggleClassName('displaytab');
            $(this.tabs[i]).className='displaytab';
            }
        else
            {
            $(this.divs[i]).style.display='none';
//            $(this.tabs[i]).toggleClassName('hiddentab');
            $(this.tabs[i]).className='hiddentab';
            }
        }
    }

});

// az simages divek neveinek tömbje, az svalues értékeket adja váltáskor a targethidden mezőnek
var imageSelector=Class.create({
    initialize:function(simages,svalues,targethidden)
    {
    this.simages=simages;
    this.svalues=svalues;
    this.tgt=$(targethidden);
    },

    changeSelected:function(id)
    {
    for(var i=0;i<this.simages.length;i++)
        {
        if(i==id)
            {
            $(this.simages[i]).className='selectedsimage';
            this.tgt.value=this.svalues[i];
            }
        else
            {
            $(this.simages[i]).className='deselectedsimage';
            }
        }
    }

});



function esemeny(objektum, esemeny_tipus, fuggveny)
    {
        if (objektum.addEventListener)
            {
               objektum.addEventListener(esemeny_tipus, fuggveny, true);
               return true;
            }
        else if (objektum.attachEvent)
            {
               var ki1 = objektum.attachEvent("on"+esemeny_tipus, fuggveny);
                return ki1;
            }
        else
            {
               return false;
            }
    }


//titler class globális cuccai
var currenttitle='';
var mouseX,mouseY,ttler,tmout,tX,tY,tC=false;
var csstd;

function viewtitle()
        {
            Event.observe(document, 'mousemove', getcords);
//            csstd='display:block;position:absolute;left:'+tX+'px;top:'+tY+'px;z-index:1';
            title1=this.getAttribute('title');
            currenttitle=title1;
            this.setAttribute('title','');
            ttler.firstChild.innerHTML=title1;
//            $('TitlerDiv').style.cssText=csstd;
            tmout=setTimeout(' ttler.style.display=\'block\'; ttler.style.cssText=\'display:block;position:absolute;left:'+tX+'px;top:'+tY+'px;z-index:1\'; ttler.style.visiblity=\'visible\'; calculatePosition(); (tC==true)? ttler.className=\'titlerright\' : ttler.className=\'titler\';',200);
        };


function hidetitle()
        {
        try {
            Event.stopObserving(document, 'mousemove', getcords);
            clearTimeout(tmout);
            var cssth='display:none;';
    //        ttler.style.cssText=cssth;
            ttler.style.display='none';
            ttler.style.visiblity='hidden';
            this.setAttribute('title',currenttitle);
            }catch(e){}
        };

function calculatePosition()
        {
        oX=20; oY=10;
        w=(ttler.style.pixelWidth || ((ttler.offsetWidth)?ttler.offsetWidth+oX:ttler.offsetWidth)|| 200);
        ww=(window.innerWidth || document.body.clientWidth ||0);
        temp=mouseX+oX;
        if((temp+w)>(ww))
            {
            tX=(ww-w);
            tC=true;
            }
        else
            {
            tX=(mouseX+oX);
            tC=false;
            }
        tY=(mouseY+oY);
        if(ttler.style)ttler.style.left=tX+'px';
        if(ttler.style)ttler.style.top=tY+'px';
        }

function getcords(e)
        {
        mouseX = Event.pointerX(e);
        mouseY = Event.pointerY(e);
        if(ttler)if(ttler.style.display=='block')calculatePosition();
        };



//title helyettesítő divvel
var titler=Class.create({
    initialize:function()
        {
        var imgatitles=$$('[title!=""]');

        this.createtitlediv();

        imgatitles.each(function(e){e.observe('mouseover',viewtitle); e.observe('mouseout',hidetitle)});
        },


    createtitlediv:function()
        {
        $('TitlerAppend').insert({'after':'<div id="TitlerDiv" style="display:none;top:0px;left:0px" class="titler"><div class="titlerinner"> </div><div class="titlerbottom"></div></div>'});
        ttler=$('TitlerDiv');
        ttler.style.display='none';
        }
});

/*Cookie functions*/
function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

