﻿try {
  document.execCommand('BackgroundImageCache', false, true);
} catch(e) {}

if (!Array.prototype.indexOf)
{
  Array.prototype.indexOf = function(elt /*, from*/)
  {
    var len = this.length;

    var from = Number(arguments[1]) || 0;
    from = (from < 0)
         ? Math.ceil(from)
         : Math.floor(from);
    if (from < 0)
      from += len;

    for (; from < len; from++)
    {
      if (from in this &&
          this[from] === elt)
        return from;
    }
    return -1;
  };
}



var YUE = YAHOO.util.Event;
var YUD = YAHOO.util.Dom;
var YUC = YAHOO.util.Connect;
var pozycje = Array();

YAHOO.namespace ("c3in"); 

YAHOO.c3in.DDApp = function() {   
	
    function initPointMode() {
        YAHOO.util.DDM.mode = YAHOO.util.DDM.POINT;

        var slot_tmp = ''
        var ids = Array();
        for( i=0;i<18; i++ ) {
            var zm = "dd"+i;
            ids[i] = "e_"+i;
            zm = new YAHOO.c3in.DDSwap("dr"+i);
            zm.setHandleElId("h_"+i);
            // pozycje startowe slotow
            pozycje[i]="dr"+i;
            //zm.addInvalidHandleType("input");
        }
        YUE.addListener(ids, "click",  YAHOO.c3in.DDApp.edytuj_slot);
        
        var menu_a = YUD.getElementsByClassName("f mica","li","m");
        var href_elems = menu_a[0].getElementsByTagName("a");
        if( href_elems[1] !== undefined ) {
            YUE.addListener(href_elems[1], "click",  YAHOO.c3in.DDApp.dodaj_zakladke);        
            YUE.addListener(href_elems[2], "click",  YAHOO.c3in.DDApp.zmien_zakladke);
            YUE.addListener(href_elems[3], "click",  YAHOO.c3in.DDApp.usun_zakladke);
        }
        
        YUE.addListener(href_elems[0], "mouseover",  YAHOO.c3in.DDApp.menu_zakladek);
    }

    return {
        init: function() {
            initPointMode();
            YUE.addListener("f225", "click",  YAHOO.c3in.DDApp.zamknij_slot );
        },
        zamknij_slot: function(){
            YUD.setStyle('dr_edit','display','none');
        },
        get_link: function(e){
        	return e+'ajx:1';
        },
        usun: function(o){
        	
        	YUE.preventDefault(o);
        	
            var usunId = this.slotId;
            var usunPos = this.position;
            var oldUsunPos = usunId.split("dr")[1];
		    var sprawdz = window.confirm("Na pewno usunąć?");
		    
            if (sprawdz == true) {
                YAHOO.c3in.DDApp.progressbar(this,'on');
                var responseSuccess = function(o) {
                    var objResponse = eval('(' + o.responseText + ')');
                    switch(objResponse.ret){
                        case "true":
                            YAHOO.c3in.DDApp.zamknij_slot();
                            
                            document.getElementById(usunId).innerHTML = "";
                           
                            var empty_slot = YUD.get('dr_empty');
                            var aelem = empty_slot.getElementsByTagName("a"); 
                            	aelem[0].id = 'e_'+usunPos;
                            
                            YUD.addClass(usunId,'add');
                            document.getElementById(usunId).innerHTML = empty_slot.innerHTML;
                            
                            YUE.addListener('e_'+usunPos, "click", YAHOO.c3in.DDApp.edytuj_slot);
                            
                            YAHOO.c3in.DDApp.progressbar(this,'off');
                        break;
                    }
                };

                var responseFailure = function(o){
                    YAHOO.c3in.DDApp.progressbar(this,'off');
                };

                var callback = {
                    success:responseSuccess,
                    failure:responseFailure,
                    timeout:0
                };

                YUC.asyncRequest( 'GET', '/linki/usun/ajx:1/pos:'+this.position, callback );
                
            }
            else if (sprawdz == false) {
                

            }
        },

        progressbar: function(e,p){
           
            //var slotId = 'dr'+e.slotId;
  
            var prlay = YUD.get('dr_zapis');
            var prslot = YUD.get(e.slotId);
            YUD.setStyle(prlay,'z-index','888');
            YUD.setStyle(prlay,'margin','0px 0px');
           
			var edit_pos = pozycje.indexOf(e.slotId,0);
			
			// ostatnie sloty w kolumnach
		    if(edit_pos == 5 || edit_pos == 11 || edit_pos == 17){
		        YUD.addClass(prlay,'l');
		    }
		    else {
		        YUD.removeClass(prlay,'l');
		    }
           
		    
            if(p=='on'){
                //YUD.setStyle('dr_edit','display','');
                YUD.addClass('body','off');
                YUD.setStyle('w','display','');
                YUD.setStyle(prlay,'display','');
            }
            else {
                //YUD.setStyle('dr_edit','display','none');
                YUD.removeClass('body','off');
                YUD.setStyle('w','display','none');
                YUD.setStyle(prlay,'display','none');
            }
           	
			 // nowa pozycja    
			YUD.setXY(prlay, YUD.getXY(e.slotId));
			
            return 1;
        },
        
        edytuj_slot: function(e){
           
            YUE.preventDefault(e);
		   
            
			var strId = this.id;
			var slotId = 'dr'+strId.split("_")[1];
			var edit_el = document.getElementById(slotId);
            var script = YAHOO.c3in.DDApp.get_link(this.href);
            
            
           	var aName = edit_el.getElementsByTagName("strong"); 
           	
           	// pokazanie slotu edycjnego
           	YUD.setStyle('dr_edit','display','');
           	// IE fix
           	YUD.setStyle('dr_edit','margin','0px 0px');
           	
           	
           	// pobranie wartosc z htmla i wpisanie ich do formularza
           	if( aName[0] !== undefined ) {
           		var akcja = 'edytuj';
           	    var form_name = aName[0].innerHTML;
           	    var aLink = edit_el.getElementsByTagName("a"); 
           	    var form_link = aLink[0];
	           	var aDesc = edit_el.getElementsByTagName("em"); 
	           	var form_desc = aDesc[0].innerHTML;
	           	
				YUD.get('f221').value = form_name;
				YUD.get('f222').value = form_desc;
				YUD.get('f223').value = form_link;
				
				YUD.setStyle('f226','display','');
				
           	}
           	// dla nowego slotu
           	else {
           		var akcja = 'dodaj';
           		
           		YUD.get('f221').value = '';
				YUD.get('f222').value = '';
				YUD.get('f223').value = '';
				YUD.get('f226').value = '';
				
				YUD.setStyle('f226','display','none');
           	}

           	// pobranie i ustawienie XY slotu edycyjnego na wskazany
           	var pos = YUD.getXY(slotId);
           	// nowa pozycja
			YUD.setXY('dr_edit', pos);

			// aktualny index (kolejnosc) edytowanego slotu
			var edit_pos = pozycje.indexOf(slotId,0);

			// ostatnie sloty w kolumnach
		    if(edit_pos == 5 || edit_pos == 11 || edit_pos == 17){
		        YUD.addClass('dr_edit','l');
		    }
		    else {
		        YUD.removeClass('dr_edit','l');
		    }
		    // hidden z pozycja slotu
		    document.getElementById('f227').value = edit_pos;

		   
			var ob=Object();
				ob.slotId = slotId;
				ob.new_name = aName;
				ob.new_desc = aDesc;
				ob.new_link = aLink;
				ob.script = script;
				ob.position = edit_pos;
				ob.akcja = akcja;
		
			var obc = document.getElementById('f224');
			
			// lista nasluchow dla zapisu
			var list_zapisz = YAHOO.util.Event.getListeners(obc, "click");
			
			if( list_zapisz != null ) {
			    YAHOO.util.Event.removeListener("f224", "click"); 
			}
            YUE.addListener("f224", "click", YAHOO.c3in.DDApp.zapisz_slot, ob, true);
            
            var obu = document.getElementById('f226');
            var list_usun = YAHOO.util.Event.getListeners(obu, "click");
            
            if( list_usun != null ) {
			    YAHOO.util.Event.removeListener("f226", "click"); 
			}
            YUE.addListener("f226", "click", YAHOO.c3in.DDApp.usun, ob, true );
        },
        zapisz_slot: function(e){

            YAHOO.c3in.DDApp.progressbar(this,'on');
            
            var formObject = document.getElementById('fff');
			YUC.setForm(formObject); 

			if( this.new_name[0] !== undefined ) {
				var new_name = this.new_name[0];
				var new_desc = this.new_desc[0];
				var new_link = this.new_link[0];
				var new_link_title = this.new_name[0];
			}
			else {
				var form_name = formObject['dane[Links][name]'].value;
				var form_descr = formObject['dane[Links][descr]'].value;
				var form_link = formObject['dane[Links][link]'].value;
			}
			
			var slotId = this.slotId;
			var position = this.position;
			var akcja = this.akcja;
			
			
            var responseSuccess = function(o) {
                var objResponse = eval('(' + o.responseText + ')');
                this.slotId = slotId;
                YAHOO.c3in.DDApp.progressbar(this,'off');
			    switch(objResponse.ret){
			        case 'true':

			            switch(akcja){
			                 case 'dodaj':
			                        
                                    var new_slot = YUD.get('dr_new');
                                    YUD.removeClass(slotId,'add');
                                   
                                    var aHandler = new_slot.getElementsByTagName("i"); 
                                    	aHandler[0].id = "h_"+position
                                    	
                                    var aLink = new_slot.getElementsByTagName("a"); 
	                               	    aLink[0].href = objResponse.link;
	                               	    aLink[0].title = objResponse.name;
	                               	    aLink[0].target = objResponse.target;
	                               	    aLink[1].href = baseUrl+'/links/zapisz/';
	                               	    aLink[1].id = 'e_'+position;
	                               	    
	                               	                       	    
                               	    var aStrong = new_slot.getElementsByTagName("strong");
                               	    	aStrong[0].innerHTML = objResponse.name;
                               	    
                               	    var aEm = new_slot.getElementsByTagName("em");
                               	    	aEm[0].innerHTML = objResponse.descr;

                                    document.getElementById(slotId).innerHTML = new_slot.innerHTML;
                                     
                                    YUE.addListener('e_'+position, "click", YAHOO.c3in.DDApp.edytuj_slot);

                                    var zm = new YAHOO.c3in.DDSwap("dr"+position);
                                    	zm.setHandleElId("h_"+position);
			                     break;
			                 case 'edytuj':
							        new_name.innerHTML = objResponse.name;
							        new_desc.innerHTML = objResponse.descr;
							        new_link.href = objResponse.link;
							        new_link_title.title = objResponse.name;
			                     break;
			            }
			           
			            
			            
			            var edit_el = document.getElementById(slotId);
			            var aImg = edit_el.getElementsByTagName("img"); 
			                 		
			            aImg[0].src = objResponse.imgsrc;
			           
						YAHOO.c3in.DDApp.zamknij_slot();
						
			        break;
			        case 'false':
			             //YAHOO.c3in.DDApp.progressbar(this,'off');
			             YAHOO.c3in.DDApp.alerty(objResponse.alerts);
			        break;
			    }
			    
			    
			    //
			    
			};

			var responseFailure = function(o){
			};

			var callback = {
				success:responseSuccess,
				failure:responseFailure,
				timeout:0
			};

			YUC.asyncRequest( 'POST', this.script, callback );
			YUE.preventDefault(e);
        },
        
        alerty: function(alerts){
            if( alerts !== undefined ) {
                var alertTxt = '';
                for(i=0;i<alerts.length;i++){
                    alertTxt +=alerts[i]+'\n';
                }
                
                if(alertTxt != ''){
                    alert(alertTxt);
                }
			}
        },
        menu_zakladek: function(e){

        	var options = YUD.getElementsByClassName("f mica"); 
        	var ul = options[0].getElementsByTagName("ul");
        	var option = options[0].getElementsByTagName("li");
        	
        	YUD.setStyle(ul,'display','block');
        	
        	var ob = Object();
        		ob.ul = ul;
        	
        	YUE.addListener('c', "mouseover",  YAHOO.c3in.DDApp.menu_zakladek_chowaj,ob,true);
        	YUE.addListener('t', "mouseover",  YAHOO.c3in.DDApp.menu_zakladek_chowaj,ob,true);
        },
        
        menu_zakladek_chowaj: function(e){
        	YUD.setStyle(this.ul,'display','none');
        },
        
       	wybrana_zakladka: function(e){
       		if( YAHOO.c3in.DDApp.openedTab.name != '' ){
       		//	return YAHOO.c3in.DDApp.openedTab;
       		}
       		
       		var menu_a = YUD.getElementsByClassName("f micc","li","m");
       		
        	var prev_elem = YUD.getPreviousSibling(menu_a[0]);
        	var selTab = '';
        	while( selTab == '' ) {
        		if( YUD.hasClass(prev_elem,'s') ){
        			selTab = YUD.get(prev_elem);
        			break;
        		}
        		else {
        			prev_elem = YUD.getPreviousSibling(prev_elem);
        		}
        		if( YUD.hasClass(prev_elem,'f mica') ){
        			break;
        		}
        	}
        	var tabObj = selTab.getElementsByTagName("a"); 
			YAHOO.c3in.DDApp.openedTab.name = tabObj[0].innerHTML;
			YAHOO.c3in.DDApp.openedTab.obj = tabObj[0];
			
        	return YAHOO.c3in.DDApp.openedTab;
       	},
       	openedTab : { name: '', obj: null },
        zmien_zakladke: function(e){

        	var responseSuccess = function(o) {
        	    var objResponse = eval('(' + o.responseText + ')');
        	   
        	    switch(objResponse.ret){
        	        case 'true':
						selTab.obj.innerHTML = tabname;
						
						var elTabName = YUD.getElementsByClassName('ct');
						var tab = elTabName[0].getElementsByTagName("h2");
							tab[0].innerHTML = tabname;
        	        break;
        	    }
        	    YAHOO.c3in.DDApp.alerty(objResponse.alerts);
        	};
        
        	var responseFailure = function(o){
        	};
        
        	var callback = {
        	    success:responseSuccess,
        	    failure:responseFailure,
        	    timeout:0
        	};
        	
        	var selTab = YAHOO.c3in.DDApp.wybrana_zakladka();
			var tabname = prompt('Poniżej wpisz nazwę Twojej zakładki (do 14 znaków):', selTab.name);
			
            if( tabname != null ) {
                YUC.asyncRequest( 'POST', '/zakladki/zapisz/ajx:1', callback,'dane[name]='+tabname );
        	}
            
			YUE.preventDefault(e);
        },
        dodaj_zakladke: function(e){
           
            var responseSuccess = function(o) {
        	    var objResponse = eval('(' + o.responseText + ')');
        	   
        	    switch(objResponse.ret){
        	        case 'true':
        	        
                            document.location.href = '/zakladki/pokaz/'+objResponse.pozycja;
                            /*
                	        var menu_a = YUD.getElementsByClassName("f micc","li","m");
                            var prev_elem = YUD.getPreviousSibling(menu_a[0]);
                            var li = document.createElement("li");
                           
                            li.innerHTML = objResponse.html;
                
                            YUD.insertBefore(li, menu_a[0]);
                            */
        	        break;
        	    }
        	    YAHOO.c3in.DDApp.alerty(objResponse.alerts);
        	};
        
        	var responseFailure = function(o){
        	};
        
        	var callback =
        	{
        	    success:responseSuccess,
        	    failure:responseFailure,
        	    timeout:0
        	};
            
        	var tabname = prompt('Poniżej wpisz nazwę Twojej zakładki (do 14 znaków):', '');
        	
        	if( tabname != null ) {
                YUC.asyncRequest( 'POST', '/zakladki/dodaj/ajx:1', callback,'dane[name]='+tabname );
        	}
           
            YUE.preventDefault(e);
        },
        usun_zakladke: function(e){
        
        	var selTab = YAHOO.c3in.DDApp.wybrana_zakladka();
        	var sprawdz = window.confirm("Na pewno usunąć zakładkę \""+selTab.name+"\" oraz wszystkie jej linki?");

        	if( sprawdz !== false ) {
        	    
        	    var responseSuccess = function(o) {
        	       var objResponse = eval('(' + o.responseText + ')');
        	   
        	       switch(objResponse.ret){
            	        case 'true':
                            document.location.href = '/zakladki/pokaz/1';
            	        break;
            	    }
            	    YAHOO.c3in.DDApp.alerty(objResponse.alerts);
            	};
            
            	var responseFailure = function(o){
            	};
            
            	var callback =
            	{
            	    success:responseSuccess,
            	    failure:responseFailure,
            	    timeout:0
            	};
        	    
        	    YUC.asyncRequest( 'GET', '/zakladki/usun/ajx:1', callback );
        	}
        	
        	YUE.preventDefault(e);
        }
    };
}();


YUE.addListener(window, "load", YAHOO.c3in.DDApp.init);



/* Copyright (c) 2006 Yahoo! Inc. All rights reserved. */
YAHOO.c3in.DDSwap = function(id, sGroup, config) {
    this.swapInit(id, sGroup, config);
};

YAHOO.extend(YAHOO.c3in.DDSwap, YAHOO.util.DDProxy);

YAHOO.c3in.DDSwap.prototype.swapInit = function(id, sGroup, config) {

    if (!id) { return; }

    this.init(id, sGroup, config);

    this.initFrame();

    this.els = [];
};

YAHOO.c3in.DDSwap.prototype.onDragDrop = function(e, id) {

    var dd = YAHOO.util.DDM.getDDById(id);

    this.swap( this.getEl(), dd.getEl() );
    
    this.resetConstraints();

    dd.resetConstraints();
};

YAHOO.c3in.DDSwap.prototype.swap = function(el1, el2) {

    this.slotId = el2.id;
    YAHOO.c3in.DDApp.progressbar(this,'on');
    
	var pos1 = YAHOO.util.Dom.getXY(el1.id);
	var pos2 = YAHOO.util.Dom.getXY(el2.id);

	/**
     * przechowywane ustawienia slotow np. [0]=>dr10, [2]=>dr5 itd.
     * potrzebne do prawidlowego nadawania klasy elementom ostatnim i "nie ostatnim"
     *
     */
	for(i=0;i<pozycje.length;i++){
	   if( pozycje[i] == el1.id ){
	       var new_pos1 = i;
	       var new_elem1 = el2.id;
	   }
	   if( pozycje[i] == el2.id ){
	       var new_pos2 = i;
	       var new_elem2 = el1.id;
	   }
	}
	// przypisanie nowych pozycji
	pozycje[new_pos1] = new_elem1;
	pozycje[new_pos2] = new_elem2;
	
	// na potrzeby IE
	YUD.setStyle(el1.id,'margin-left','0px');
	YUD.setStyle(el2.id,'margin-left','0px');

	// ustawienie nowych wspolrzednych slotu
	YAHOO.util.Dom.setXY(el1, pos2); 
	YAHOO.util.Dom.setXY(el2, pos1);
	
	var responseSuccess = function(o) {
	    var objResponse = eval('(' + o.responseText + ')');

	    YUD.setStyle('dr_new','display','none');
	    YUD.setStyle('dr_edit','display','none');
	    
	    switch(objResponse.ret){
	        case 'true':
	           YAHOO.c3in.DDApp.progressbar(this,'off');
	        break;
	    }
	    YAHOO.c3in.DDApp.alerty(objResponse.alerts);
	};

	var responseFailure = function(o){
	};

	var callback =
	{
	    success:responseSuccess,
	    failure:responseFailure,
	    timeout:0
	};

	var new_position = pozycje.indexOf(this.id,0);
	YUC.asyncRequest( 'GET', '/linki/przenies/pos:'+new_pos1+','+new_pos2, callback );
};

YAHOO.c3in.DDSwap.prototype.onDragEnter = function(e, id) {
    this.els[id] = true;
};

YAHOO.c3in.DDSwap.prototype.onDragOut = function(e, id) {
    this.resetStyles();
};

YAHOO.c3in.DDSwap.prototype.endDrag = function(e) {
	YAHOO.util.Dom.setStyle(this.id, "opacity", 1);

	
	
    this.resetStyles();
};

YAHOO.c3in.DDSwap.prototype.resetStyles = function() {
    
    for (var i in this.els) {
        var el = YAHOO.util.DDM.getElement(i);

        if (el) { 
        }
        
        YAHOO.util.Dom.setStyle(el, "opacity", 1);
    }

};

YAHOO.c3in.DDSwap.prototype.onDrag = function(e) {

};

YAHOO.c3in.DDSwap.prototype.store = function(e) {

};

YAHOO.c3in.DDSwap.prototype.onDragOver = function(e, id) {
	YAHOO.util.Dom.setStyle(id, "opacity", 0.3);
};



