 /*********************

var DED = window.DED || {};
DED.Class = function() {
  var fn = function(e, id, param, o) {
    // process arguments here
  };
  return {
    init : function() {
      var o = DED.Class.get('el');
      fn.apply(o, arguments);
    },
    get : function(id) {
      return document.getElementById(id);
    }
  };
}();

***********************/

var ui = {
    baseUrl: null,
    currentSection: null,
    sectionChecker: null,

    init: function(){

        $("#main_navigation a").hover(
        function(){

            clearTimeout(ui.sectionChecker);
            
            var rel = $(this).attr('rel');
            
            $("#sub_navigation ul").removeClass('selected');
            if(rel){
                $("#sub_navigation ul." + rel).addClass('selected');
            }
        },
        function(){
            ui.sectionChecker = setTimeout(ui.sectionCheck, 2000);
        });


        $("#sub_navigation ul").hover(
        function(){            
            clearTimeout(ui.sectionChecker);            
        },
        function(){
            ui.sectionChecker = setTimeout(ui.sectionCheck, 2000);            
        });

        $("#sub_navigation").css('display','block');
        
    },
    sectionCheck: function(){


        if(ui.currentSection != '' ){
            
            var value;

            $("#sub_navigation ul").removeClass('selected');
            
            /* if($("#sub_navigation ul." + ui.currentSection).hasClass('pager')){
                value = '38';
            }else{
                value = '35';
            } */

            /* $("#sub_navigation ul." + ui.currentSection).animate({top: value},500,function(){
                
            }); */

            $("#sub_navigation ul." + ui.currentSection).addClass('selected',500);
            
        }else if(ui.currentSection == ''){
            $("#sub_navigation ul").removeClass('selected');
        }
        
    },
    toSQLDate: function(aDate,aTime){

        if(aDate != '' && aTime != ''){
            var aT;
            
            if(aTime.indexOf("AM",0) != -1){
                aTime = aTime.substr(0,aTime.indexOf("AM",0));
                aT = aTime.split(":");
                aT[0] = (aT[0].length == 1 ? '0' + aT[0]:aT[0]);
                aTime = aT[0] + ":" + aT[1];
            }else if(aTime.indexOf("PM",0) != -1){
                aTime = aTime.substr(0,aTime.indexOf("PM",0));
                aT = aTime.split(":");
                aT[0] = parseInt(aT[0]) + 12;
                aT[0] = (aT[0] == 24 ? '00':aT[0]);
                aTime = aT[0] + ":" + aT[1];
            }

            aTime = jQuery.trim(aTime);
            aDate = aDate.split("/");
            aDate = aDate[2] + "-" + aDate[1] + "-" + aDate[0];

        return {'day':aDate, 'time':aTime};
        }else{return false;}
    },
    scrollLock: function(e){
        alert(e.data.msq);
        return false;
    },
    home: {
        countEvent: 0,
        currentEvent: 0,
        eventExchanger: null,

        init: function(){        

            var thiz = ui.home;
            
            thiz.countEvent = $(".simple.event").length;            

            thiz.toggleEvent();

            if(thiz.countEvent > 1){
                thiz.eventExchanger = setInterval(thiz.toggleEvent,4000);

                $("#wrapper_event, a#next_event, a#prev_event").hover(
                    function(){
                        clearInterval(thiz.eventExchanger);
                    },function(){
                        thiz.eventExchanger = setInterval(thiz.toggleEvent,4000);
                });

                $("a#next_event").click(function(){
                    thiz.toggleEvent();
                });

                $("a#prev_event").click(function(){
                    thiz.toggleEvent('prev');
                });
            }
        },
        toggleEvent: function(dir){

            if(dir == undefined){
                dir = 'next';
            }

            var thiz = ui.home;           

            $("#event_" + thiz.currentEvent).fadeOut(300,function(){
                if(dir == 'next'){
                    if((thiz.currentEvent + 1) >= thiz.countEvent){
                        thiz.currentEvent = 0;
                    }else{
                        thiz.currentEvent++;
                    }
                }else if(dir == 'prev'){
                    if((thiz.currentEvent - 1) < 0){
                        thiz.currentEvent = thiz.countEvent - 1;
                    }else{
                        thiz.currentEvent--;
                    }
                }                    

                $("#event_" + thiz.currentEvent).fadeIn(300);
            });
        }
    },
    media: {
        browseFolderCallback: undefined,
        currentFolder: '',
        folders: undefined,
        files: undefined,
        busy: false,
        fileUrl: undefined,
        callBack: undefined,

        reset: function(){
            ui.media.init(ui.media.fileUrl);
        },
        
        init: function(filesUrl){

            ui.media.fileUrl = filesUrl;
            
            if(ui.media.busy){
                setTimeout(ui.media.init,1000,filesUrl);
                return;
            }

            ui.media.busy = true;
            
            ui.media.folders = new Array();
            ui.media.files = new Array();
            
            $("#media_browser").html('<table class="account"><thead><tr><td>nombre</td><td>opciones</td></tr></thead><tbody></tbody</table>');

            
           $.get(ui.baseUrl + filesUrl,'',function(data){

                    for(var i =0;i < data.length ; i++){
                        ui.media.files.push(data[i]);
                    }

                    ui.media.browseFolder(ui.media.currentFolder);
                    ui.media.busy = false;
                    
                    
                },"json");

                
            
            
        },
        browseFolder: function(folder){

            if(!folder){
                
                folder = '';
            }

            folder = jQuery.trim(folder);
        
            if(ui.media.busy){
                window.setTimeout(ui.media.browseFolder,1000,folder);
                return;
            }

            ui.media.currentFolder = folder;

            if(ui.media.busy){
                $("#media_image_preview").empty();
            }

            $("#media_browser tbody").empty();

            if(folder != ''){
                
                var prev = folder;
                prev = prev.split('/');
                prev.pop();

                $("#media_browser tbody").append('<tr><td ondblclick="ui.media.browseFolder('+"'" + prev.join('/') + "'"+')" style="cursor:pointer;"><b>..</b></td><td></td></tr>');
            }

            for(var i =0;i < ui.media.files.length; i++){

                if(ui.media.files[i].file_folder == folder && ui.media.files[i].file_type == 'image'){
                    $("#media_browser tbody").append('<tr><td ondblclick="ui.media.previewImage('+
                        "'upload/" +
                        ui.media.files[i].file_id + ui.media.files[i].file_extention +
                        "'"+
                        ')" style="cursor:pointer;">' +
                        ui.media.files[i].file_name +
                        '</td><td><a style="cursor:pointer;" ondblclick="ui.media.deleteFile(' + ui.media.files[i].file_id + ')">eliminar</a></td></tr>');

                }else if(ui.media.files[i].file_folder == folder && ui.media.files[i].file_type == 'dir'){
                    var f = ui.media.files[i].file_name;
                    f = f.split('/').pop();
                    var p = ui.media.files[i].file_folder + (ui.media.files[i].file_folder != '' ? '/':'') + ui.media.files[i].file_name;
                    $("#media_browser tbody").append('<tr><td ondblclick="ui.media.browseFolder('+"'"+ p +"'"+')" style="cursor:pointer;"><b>' + f + '</b></td><td></td></tr>');
                }
            }
           
            if(ui.media.browseFolderCallback instanceof Function){
                ui.media.browseFolderCallback();
            }      
        },
        createFolder: function(){
            
            $("#media_browser tbody").append('<tr id="temp_folder"><td><input name="temp_name" type="text" /></td><td></td></tr>');
             $("input[name='temp_name']").focus();
             $("input[name='temp_name']").focusout(function(){

                 var temp = $("input[name='temp_name']").val();

                 if(temp != ''){
                     $.post(ui.baseUrl + 'file/createFolder',{'file_folder': ui.media.currentFolder,'file_name':temp},function(data){                        
                        ui.media.files.push(data);
                        ui.media.browseFolder(ui.media.currentFolder);
                     },'json');
                 }
             });
        },
        deleteFile: function(id){

            if(confirm('¿realmente desea borrar este archivo?')){
                $.post( ui.baseUrl + 'file/delete',{'id': id},function(data){                    
                    ui.media.reset();
                },'json');
            }

        },
        previewImage: function(url){      
            
            $("#media_image_preview").empty();
            if(jQuery.trim(url) != ''){
                $("#media_image_preview").append('<img src="' + ui.baseUrl +  url + '" />');
            }else{
                $("#media_image_preview").append('<img src="' + ui.baseUrl + 'includes/images/image_not_available.jpg" />');
            }
            $("input[name='event_image_url']").val(url);
        }
    },
    postForm: {
            postTags: [],
            postTagsId: [],
            init: function(postTagsId,postTags){
                if(postTagsId){
                    this.postTagsId = postTagsId.split(',');
                    this.postTags = postTags.split(',');
                }


                for(var i = 0; i < this.postTagsId.length;i++){
                    $("#post_tags").append('<span onclick="ui.postForm.removeTag(this.id)" id="post_tag_' + this.postTagsId[i] + '" style="border:#000 1px solid; margin:2px; padding:2px; cursor:pointer;">' + this.postTags[i] + '</span>');
                }


                $("input[name='post_tags_id']").val(this.postTagsId);

            },
            addTag: function(){

                var tagId = jQuery.trim($('#post_tags_id option:selected').val());

                if(this.postTagsId.indexOf(tagId) == -1){
                    this.postTagsId.push(tagId);
                    var tagValue = jQuery.trim($('#post_tags_id option:selected').html());
                    $("#post_tags").append('<span onclick="ui.postForm.removeTag(this.id)" id="post_tag_' + tagId + '" style="border:#000 1px solid; margin:2px; padding:2px; cursor:pointer;">' + tagValue + '</span>');
                    $("input[name='post_tags_id']").val(this.postTagsId);
                }

            },
            removeTag: function(htmlTagId){
                var id = htmlTagId.split('_');
                id = id.pop();
                this.postTagsId.splice(this.postTagsId.indexOf(id),1);
                $("input[name='post_tags_id']").val(this.postTagsId);
                $("#" + htmlTagId).remove();

            }
        },

        eventForm: {
            eventDates: [],

            init: function(eventDates){
                if(eventDates){
                    this.eventDates = eventDates.split(',');
                

                    for(var i = 0; i < this.eventDates.length;i++){
                        $("#event_dates").append('<p onclick="ui.eventForm.removeDate(this.id)" id="post_tag_' + i + '" style="border:#000 1px solid; margin:2px; padding:2px; cursor:pointer;">' + this.eventDates[i] + '</p>');
                    }

                    $("input[name='event_dates']").val(this.eventDates.join(','));
                }

            },
            addDate: function(){

                var d = $("#event_day_picker").val();
                var t = $("#event_time_picker").val();

                var date = ui.toSQLDate(d,t);

                if(this.eventDates.indexOf(date.day + ' ' + date.time) == -1){

                this.eventDates.push(date.day + ' ' + date.time);
                    $("#event_dates").append('<p onclick="ui.eventForm.removeDate(this.id)" id="post_tag_' + (this.eventDates.length - 1) + '" style="border:#000 1px solid; margin:2px; padding:2px; cursor:pointer;">' + this.eventDates[this.eventDates.length-1] + '<p>');
                    $("input[name='event_dates']").val(this.eventDates.join(','));
                }

            },
            removeDate: function(id){
                $("#" + id).remove();
                id = id.split("_").pop();
                this.eventDates.splice(id, 1);
                $("input[name='event_dates']").val(this.eventDates.join(','));

            }
        }
}


