(function($){

	//Function for Modal, added on January 18, 2010
	$.fn.modal = function(){
	    return this.each(function(){
	        var wpDialogOptions = {
	            width: 655,
	            resizable: false,
	            draggable: false,
	            autoOpen: false
	        };
	        
	        var m = $(this).dialog(wpDialogOptions).dialog("open");
	        m.find(".modalClose").click(function(){
	            m.dialog("close");
	            return false;
	        });
	    
	    
	    });
	
	};

    
    //Function for dashboard mysites page
    $.fn.wpDashboard = function() {
        
        return this.each(function() {
        
            var dashboard = $(this);
            var speed = 500;
            //insert  border blocks
                //these can also just be inserted into the html instead
            dashboard.find(".dashboardBlocks > li").append('<div class="wb_top" ></div> <div class="wb_bottom"></div>');
            //set up click action for "show dashboard" link
            $("#dashboardCompact .dashboardFooter > a").click(function(){ 
                dashboard.css({height:"125px"});
                $("#dashboardCompact").animate({opacity:0},{queue:false, duration:speed}).slideUp(speed, function(){ $(this).css({display:"none"});});
                $("#dashboardFull").css({opacity:0}).animate({opacity:1},{queue:false, duration:speed}).slideDown(speed);
                return false; 
            });
            //set up click action for "hide dashboard" link
            $("#dashboardFull .dashboardFooter > a").click(function(){ 
                dashboard.css({height:"125px"});
                $("#dashboardFull").animate({opacity:0},{queue:false, duration:speed}).slideUp(speed, function(){$(this).css({display:"none"});});
                $("#dashboardCompact")
                    .css({opacity:0})
                    .animate({opacity:1},{queue:false, duration:speed})
                    .slideDown(speed, function(){ 
                        $("#dashboard").height("45px");  
                });
                
                return false; 
                
            });
        
        
        
         });
     };
     
     /* Set up and functions for mySites */
     
     $.fn.wpMySites = function() {
        
        return this.each(function() {
            
            mySitesContainer = $(this);
            //action when clicking a checkbox
            $("#mysiteListing tr td input:checkbox").click(function(){ this.checked==false?deactivateRow(this):activateRow(this); }); 
            //start with messages div hidden, include border boxes
            $("#messages").css({display:"none"}).append('<div class="wb_top" ></div> <div class="wb_bottom"></div>');
            //select all, select none
            $("#mysiteListing .selectAll").click(function(e){ $("#mySiteList input:checkbox").each(function(){ this.checked="checked"; activateRow(this); }); return false;});
            $("#mysiteListing .selectNone").click(function(e){ $("#mySiteList input:checkbox").each(function(){ this.checked=false; deactivateRow(this); }); return false;});

            $("#mysiteListing .selectAll").click(function(e){ $("#textAdTable input:checkbox").each(function(){ this.checked="checked"; activateRow(this); }); return false;});
            $("#mysiteListing .selectNone").click(function(e){ $("#textAdTable input:checkbox").each(function(){ this.checked=false; deactivateRow(this); }); return false;});

            //set up the draggable rows
            $("#mySiteList > tbody > tr").draggable({
                appendTo:"body",
                cursor:"pointer",
                cursorAt:{top:20,left:100},
                helper:function(){
                    //if it's an active row, grab all the rows
                    if($(this).hasClass("active")){
                        var inLength = $("#mySiteList input:checkbox:checked").length;
                        //this is the drag box that you see when you drag
                        return $('<div class="dragBox"><div class="back"></div><div class="front"><p><strong>'+inLength+' Domain'+(inLength!=1?'s':'')+'</strong></p><p>Drag to a Group</p></div></div>');
                    }
                    //otherwise just grab the dragged row
                    else{
                        //this is the drag box that you see when you drag
                        return $('<div class="dragBox"><div class="back"></div><div class="front"><p><strong>1 Domain</strong></p><p>Drag to a Group</p></div></div>');
                    }
                }
            });
            

        
            var activateRow = function(input){

                var row = $(input).parents("tr");
                
                $(row).addClass("active");
                
                
                
            
            };
            
            var deactivateRow = function(input){
                
                var row = $(input).parents("tr");
                $(row).removeClass("active");
            
            };
            
            //set up the droppable list elements
            $("#myGroupsList li.dropTarget").droppable({
                accept: "#mySiteList > tbody > tr",
                activeClass: 'droppable-active',
                hoverClass: 'droppable-hover',
                tolerance: 'pointer',
                drop: function(ev, ui) {
                    var dropEl = this;
                    
                    var dragEl = $(ui.draggable);
                    
                    if($(dragEl).hasClass("active")){
                        var data = $("#mysiteForm input:checkbox:checked[name='ID']").serialize();
                    }
                    else{

                        var data = "ID="+$(dragEl).find("input:checkbox[name='ID']").attr("value");
                    }
                    
                    
                    var group_id = $(this).find("a").attr("id");
                    group_id = group_id.substr(6);
                    data = data + "&group_id="+escape(group_id);
                    
                    //any additional data can be added to the end of this query string
                    
                    
                    var url = "/ajaxResponse/mysitesAjax.cfm?"+data;
                    $.getJSON(url, function(json){
                        //callback function uses the json data from the ajax to update
                        //the group count and insert the message.
                        //any element on the page can be updated this way, as needed. 
                        $(dropEl).find("span.count").text("("+json.curGroupCount+")");
                        $("#messages").html("<p>"+json.message+"</p>").show();
                        
                    });

                    

                    
                }
            });
            
            //just a line to activate already-checked rows, if there are any
            $("#mySiteList input:checkbox:checked").each( function(){ activateRow(this); });
        
        
        });
     
     
        
     };
     
     
     $.fn.wpBatchAdd = function() {
        
        return this.each(function() {
            
            var container = $(this);
            //drop arrow toggling
            $("#batchList .info .dropArrow").click(function(){ 
                $(this).parent().parent().toggleClass("expanded"); 
                return false; 
            });
            
            //activations for rows
            container.find("#domains a.selectAll").click(function(){ $("#domainList li input:checkbox").each(function(){ this.checked="checked"; activateRow(this); }); return false;});
            $("#domainList li label").click(function(){ 
                var inEl = $(this).find("input:checkbox")[0];
                inEl.checked==false?deactivateRow(inEl):activateRow(inEl);  
            });
            
                    
            
            
            
            var activateRow = function(inputEl){
                var row = $(inputEl).parent().parent();
                $(row).addClass("active");
            };
            var deactivateRow = function(inputEl){
                
                var row = $(inputEl).parent().parent();
                $(row).removeClass("active");
            
            };

        
        
        });
    }
    
    $.fn.wpHelp = function() {
        
        return this.each(function() {
            
            $(this).click(function(){
            
                $.get($(this).attr("href"),{},function(data){
                    $(data).modal();
                },"html");
                    
                
            
            
                return false;
            });

        
        
        });
    }
    
    $.fn.wpSortableTable = function(userOptions){
    
        return this.each(function() {
            var options = {};
            options = $.extend({}, userOptions, options);
            $(this).find("td").each(function(){
                $(this).css({width:$(this).width()+"px"});
            });
            var tbody = $(this);
            $(this).sortable({
                axis:"y",
                forceHelperSize:true,
                forcePlaceholderSize:true,
                placeholder:"placeHolder",
                helper:function(a,b,c){
                    var orig = b;
                    var help = b.clone();
                    help.children().each(function(i){
                        $(this).width(orig.children().eq(i).width());
                    });
                    return help;
                    
                },
                
                update:function(e,ui){
                    
                    $(this).find("tr:even").removeClass("alt");
                    $(this).find("tr:odd").addClass("alt");
                    var data = tbody.sortable("serialize");
                    for(param in options.postParams){
                        data = data + "&"+param+"="+options.postParams[param];
                    }
                    $.ajax({
                        type:"POST",
                        dataType: "json",
                        url: options.location,
                        data: data,
                        success: function(o){
                            $(".message").html(o.message);
                        },
                        error: function(o){
                            $(".message").html("There was an error: "+o.statusText);
                        }
                    });
                    
                    
                }
            
            
            
            });
            
            
            
        
        });
    
    
    };
    

    $.fn.wpSiteInfo = function(){
    
        return this.each(function(){
            var theLink = $(this);
            theLink.click(function(){
                theLink.addClass("loading");
                $(".siteInfoOverlay").remove();
                $.get(theLink.attr("href"), function(data){
                    var t = $('<div class="w"><a href="#" class="close">close</a><span class="nubbin"></span></div>').append(data);
                    $('<div class="siteInfoOverlay"></div>')
                        .append(t).css({top:(theLink.offset().top-200)+"px", left:(theLink.offset().left+19)+"px"})
                        .appendTo("body")
                        .find("a.close").click(function(){
                            $(this).parents(".siteInfoOverlay").remove();
                            theLink.removeClass("infoActive");
                            $(".siteInfoBackdrop").remove();
                            return false;
                        });
                    theLink.removeClass("loading").addClass("infoActive");
                    $('<div class="siteInfoBackdrop"></div>').appendTo("body");
                
                },"html");
                
                
                return false;
            });
        
        
        });
    };


    /*
    START NEW DOMAIN APPS FUNCTIONALITY
    */ 
	
    //list crop function
    $.fn.listCrop=function(c){var d=$(this),e=$("<ul></ul>"),f=d.children(),g=0;if(f.length>c){f.each(function(a,b){if(a>=c){$(b).remove().appendTo(e);g++}});$('<li class="listCrop"><a href="#" class="c">+ '+g+" more</a></li>").click(function(a){if($(a.target).is(".listCrop ul a"))return true;else{$(this).toggleClass("open");var b=$(this);$(this).hasClass("open")?$("body").bind("click.wpListCrop",function(h){if(!$(h.target).is(".listCrop ul a")){b.trigger("click");return false}}):$("body").unbind("click.wpListCrop"); return false}}).append(e).appendTo(d)}};
    
    //picker function
$.fn.wpPicker=function(h){var f=$(this);$.get(h.url,function(l){var b=$(l);b.dialog({width:655,resizable:false,draggable:false,autoOpen:false});var c=b.find(".results ul");if(h.type=="domains"){var g={};b.find(".org .selectedResults");var j=function(){if(!$(this).hasClass("noResults")){$(this).toggleClass("selected");if($(this).hasClass("selected"))g[$(this).attr("data-value")]=$(this).text();else delete g[$(this).attr("data-value")]}},k=function(){c.fadeOut("fast",function(){$(this).empty();$(this).parent().addClass("loading"); $.post(h.resultsUrl,{userInput:$("#filter").val(),group:b.find(".org .selected a").attr("data-value")},function(a){c.parent().removeClass("loading");$(a).find("li").each(function(){$(this).appendTo(c).click(j);g[$(this).attr("data-value")]!==undefined&&$(this).addClass("selected")});c.fadeIn("fast")},"html")})};b.find(".org a").click(function(){var a=$(this);b.find(".org .selected").removeClass("selected");$(this).parent().addClass("selected");a.is(".selectedResults")?c.fadeOut("fast",function(){$(this).empty(); $.each(g,function(d,e){$('<li class="selected" data-value="'+d+'">'+e+"</li>").appendTo(c).click(j)});c.fadeIn("fast")}):k();return false});var i;$("#filter").focus(function(){var a=$(this).val(),d=$(this);i=setInterval(function(){var e=d.val();if(e!=a){a=e;k()}},900)}).blur(function(){clearInterval(i)});b.find(".modalFooter .continue").click(function(){var a=$(this).closest("form");$.each(g,function(d){$('<input type="hidden" value="'+d+'" name="domains[]" />').appendTo(a)});a.submit();return false}); b.find(".inputClear").click(function(){$("#filter").val("").trigger("keyup");return false});f.click(function(){b.dialog("open");return false})}else{f.find(".set, .change").click(function(){b.dialog("open");return false});$("#filter").focus(function(){var a=$(this).val(),d=$(this);i=setInterval(function(){var e=d.val();e!=a&&e.length>2&&c.fadeOut("fast",function(){$(this).empty();$("#pickerContent").addClass("loading");$.post(h.resultsUrl,{userInput:e},function(m){$(m).find("li").appendTo(c);$("#pickerContent").removeClass("loading"); c.children().click(function(){if(!$(this).hasClass("noResults")){c.find(".selected").removeClass("selected");$(this).addClass("selected")}});c.fadeIn("fast");a=e},"html")})},900)}).blur(function(){clearInterval(i)});b.find(".modalFooter .sButton").click(function(){var a=c.find(".selected"),d=a.text();a=a.attr("data-value")!==undefined?a.attr("data-value"):a.text();f.find(".value").text(d);f.removeClass("empty");d=b.find(":hidden").remove().clone();f.find("input").remove().end().append(d.val(a));b.dialog("close"); return false})}$(".ui-dialog #modalInner .modalFooter .modalClose").live("click",function(){b.dialog("close");return false})},"html")};  	
    /*
    END NEW DOMAIN APPS FUNCTIONALITY
    */ 	
    
	
/*
This is the javascript needed for the dataTable and pagination functions
*/


    $.fn.dataTable = function(options){
        var 
            container = $(this),
            table = container.find("table.dataTable"),
            tbody = table.find("tbody"),
            sort = "",
            sortDirection = "",
            sortColumn,
            currentPage = options.currentPage,
            totalPages = options.totalPages,
            resultsPerPage = options.resultsPerPage,
            topPaginationCon = $('<div class="paginationCon"></div>').insertBefore(table),
            bottomPaginationCon = $('<div class="paginationCon"></div>').insertAfter(table),
            loadingDiv = $('<div class="dataTable-loading"></div>').hide().insertAfter(table),
            appliedFilters,
            filtersForm = container.find("form.tableFilters"),
            filtersList = filtersForm.find(".filters"),
            filterToggle = container.find(".filterToggle"),
            filters = $('<select class="selectedFilter"></select>').change(function(){

                var selectedOption = $(this).find("option:selected"),li = $(this).parent().parent().find(".comparisons, .data").remove().end();

                $('<span class="comparisons"></span>').appendTo(li).append(selectedOption.data("comparisons").clone());
                var dataEl = selectedOption.data("filterData").clone();
                $('<span class="data"></span>').appendTo(li).append(dataEl);
                
                
                
                
                if(dataEl.hasClass("date")){
                    dataEl.datepicker();
                    dataEl.change(function(){
                        
                        var dateVal = dataEl.val(),
                            validformat = /^\d{2}\/\d{2}\/\d{4}$/,
                            returnval = false;
                        if (validformat.test(dateVal)){

                            var monthfield = dateVal.split("/")[0],
                                dayfield = dateVal.split("/")[1],
                                yearfield = dateVal.split("/")[2],
                                dayobj = new Date(yearfield, monthfield-1, dayfield);
                                
                            if ((dayobj.getMonth()+1!=monthfield)||(dayobj.getDate()!=dayfield)||(dayobj.getFullYear()!=yearfield)){
                            
                            }
                            else{
                                returnval = true;
                            }
                        }
                        if(returnval === false){
                            
                            dataEl.addClass("error");
                            $('<span class="error">Please use date format mm/dd/yyyy</span>').insertAfter(dataEl);
                            
                        }
                    
                    
                    
                    });
                    
                }
                
                if(dataEl.hasClass("numeric")){
                    
                    dataEl.change(function(){
                        dataEl.removeClass("error").parent().find("span.error").remove();
                        var num = dataEl.val();
                        if(isNaN(parseFloat(num)) || !isFinite(num)){
                            dataEl.addClass("error");
                            $('<span class="error">Please enter a valid number</span>').insertAfter(dataEl);
                        }
                    });

                
                }
                
            }),
            appliedFilterList = $('<ul class="appliedFilters"></ul>').insertAfter(filtersForm.find(".filterHead")),
            removeFilter = function(e,el){
                
                if(typeof(e) !== "undefined"){
                    e.preventDefault();
                }
                el.closest("li").fadeOut(400, function(){
                    $(this).remove()
                    if(appliedFilterList.children().length === 0){
                        filterToggle.click();
                        filtersForm.submit();
                        addFilter();
                    }
                });
                
                
            },
            addFilter = function(e){
                if(typeof(e) !== "undefined"){
                    e.preventDefault();
                }
                var newLi = $('<li></li>')
                    .hide()
                    .appendTo(appliedFilterList)
                    .append(
                        $('<span class="filter"></span>').append(filters.clone(true))
                    );
                newLi.find("select option:first-child").attr("selected",true).parent().trigger("change");
                $('<a href="#" class="delete">&mdash;</a>').click(function(e,el){ e.preventDefault(); removeFilter(e,$(this)); }).appendTo(newLi);
                newLi.fadeIn(400);
            };
            
        
        
        
        filtersForm.find(".removeAll").click(function(e){
            e.preventDefault();
            
            appliedFilterList.children().remove();
            filterToggle.click();
            filtersForm.submit();
        });
            
        filtersList.children().each(function(){
        
            var li = $(this), titleSpan = li.find(".title");
            var newOpt = $('<option value="' + titleSpan.attr("data-wpFilterKey") + '">' + titleSpan.text() + '</option>').appendTo(filters);
            newOpt.data("comparisons",li.find(".comparisons").clone());
            newOpt.data("filterData",li.find(".data").clone());
        });
        
        filtersList.remove();
        addFilter();

        filterToggle.click(function(e){
            e.preventDefault();
            filtersForm.toggle(300);
            if(appliedFilterList.children().length === 0){
                addFilter();
            }
            $(this).toggle();
        });
        
        filtersForm.find(".addFilter").click(addFilter);
        
        filtersForm.submit(function(e){
            e.preventDefault();
            
            var selectedFilters = [];
            appliedFilterList.children().each(function(){
                var li = $(this);
                selectedFilters.push({
                    "k":li.find("select.selectedFilter").val(),
                    "c":li.find("select.comparisons").val(),
                    "v":li.find(":input.data").val()
                });
            });
            
            getData({"filters":selectedFilters});
            
        });
        
        if(options.filters && options.filters.length > 0){
            appliedFilterList.empty();
            $.each(options.filters, function(i,val){
                
                addFilter();
                var newLi = appliedFilterList.children(":last-child");
                newLi.find(".selectedFilter option[value='" + val.k + "']").attr("selected","selected").change();
                newLi.find(".comparisons .comparisons option[value='" + val.c + "']").attr("selected","selected");
                newLi.find(".data:input").val(val.v);
                
            });
            filterToggle.click();
            selectedFilters = options.filters;
            
        }

        filtersForm.find(".flydown")
            .click(function(e){
                e.preventDefault();
                filtersForm.toggleClass("closed");
            });
        
        //.find("select option:firstChild").attr("selected","selected").parent().trigger("change");
        
        
            
        
            

            
            
        

        var getData = function(dataAttr){

            var tbodyOffset = tbody.position();

            loadingDiv.css({
                "left":tbodyOffset.left,
                "top":tbodyOffset.top,
                "width":tbody.width(),
                "height":tbody.height(),
                "display":"block"
            });
            var postData = {};
            if(typeof(dataAttr.page) !== "undefined"){
                currentPage = dataAttr.page;
                postData.page = dataAttr.page;
            }
            else{
                currentPage = 1;
                postData.page = 1;
            }
            
            if(typeof(dataAttr.sort) !== "undefined"){
                sort = dataAttr.sort;
                sortDirection = dataAttr.sortDirection;
                
                postData.sort = dataAttr.sort;
                postData.sortDirection = dataAttr.sortDirection;
                sortColumn = dataAttr.sortColumn;
                
            }
            else if(sort !== ""){
                postData.sort = sort;
                postData.sortDirection = sortDirection;
            }
            
            if(typeof(dataAttr.resultsPerPage) !== "undefined"){
                resultsPerPage = dataAttr.resultsPerPage;
            }
            
            if(typeof(dataAttr.filters) !== "undefined"){
                appliedFilters = dataAttr.filters;
                postData.filters = dataAttr.filters;
            }
            else if(typeof(appliedFilters !== "undefined")){
                postData.filters = appliedFilters;
            }
            

            
            postData.resultsPerPage = resultsPerPage;
            
            $.post(options.dataUrl,postData,function(data){
                
                currentPage = data.currentPage;
                
                var tbody = table.find("tbody").empty();
                altCount = 0;

                $.each(data.tableData,function(i,row){
                    
                    var newRow = $('<tr></tr>');
                    if(altCount == 0){
                        newRow.addClass("alt");
                        altCount = 1;
                    }
                    else{
                        altCount = 0;
                    }
                    $.each(row,function(k,cell){
                        var newCell;
                        if(k==0){
                            newCell = $('<th>' + cell + '</th>');
                        }
                        else{
                           newCell = $('<td>' + cell + '</td>');
                        }
                        if(sortColumn == k){
                            newCell.addClass("sorted");
                        }
                        newCell.appendTo(newRow);


                    });
                    
                    newRow.appendTo(tbody);
                    loadingDiv.hide();
                    
                    
                    
                });
                
                topPaginationCon.empty().append(generatePagination(currentPage,totalPages));
                bottomPaginationCon.empty().append(generatePagination(currentPage,totalPages));
                
                
            },"json");
            
            
            
            
        };
        
        var generatePagination = function(currentPage,totalPages){
            var pagination = $('<div class="pagination"></div>');
            currentPage = parseInt(currentPage,10);
            $('<a href="#" class="prev">Previous</a>')
                .click(function(e){
                    if(currentPage != 1){
                        getData({
                            "page": (currentPage -1)
                        });
                    }
                    e.preventDefault();
                })
                .appendTo(pagination);
                
            var nCon = $('<p></p>').appendTo(pagination);
            var start, end;
            if(currentPage < 3){
                start = 1;
                end = 6;
                
            }
            else if(currentPage > totalPages - 3){
                start = totalPages - 5;
                end = totalPages + 1;
            }
            else{
                start = currentPage - 2;
                end = currentPage + 3;
            }
            if(currentPage > 3){
                 $('<a href="#" data-wppage="1">1</a>')
                        .click(function(e){
                            getData({"page": $(this).attr("data-wppage")});
                            e.preventDefault();
                        }).appendTo(nCon);
                $('<span> &hellip; </span>').appendTo(nCon);
            }
            
            for(i = start; i < end; i++){

                if(i == currentPage){
                    $('<strong>' + i + '</strong>').appendTo(nCon);
                }
                else{
                    $('<a href="#" data-wppage="' + i + '">' + i + '</a>')
                        .click(function(e){
                            getData({"page": $(this).attr("data-wppage")});
                            e.preventDefault();
                        })
                        .appendTo(nCon);
                }
                if(i != end - 1){
                    nCon.append(", ");
                }
                
            }

            if(end < totalPages + 1){
                 $('<span> &hellip; </span>').appendTo(nCon);
                 $('<a href="#" data-wppage="' + totalPages + '">' + totalPages + '</a>')
                        .click(function(e){
                            getData({"page": $(this).attr("data-wppage")});
                            e.preventDefault();
                        }).appendTo(nCon);
                
            }
            
            $('<a href="#" class="next">Next</a>')
                .click(function(e){
                    if(currentPage != totalPages){
                        getData({
                            "page":(currentPage+1)
                        });
                    }
                    
                    
                    e.preventDefault();
                })
                .appendTo(pagination);
            
            return pagination;
                
            
        };
        
        table.find("thead th[data-wpsort],tfoot th[data-wpsort]").each(function(){
            var 
                sortKey = $(this).attr("data-wpsort"),
                sortTitle = $(this).text(),
                sortTh = $(this),
                thead = $(this).parent();
            $(this).empty().append(
                $('<a href="#">' + sortTitle + '</a>')
                    .click(function(e){
                        var el = $(this);
                        el.parent().parent().find(".sorted").removeClass("sorted desc asc");
                        var dir = el.data("sortDirection");

                        if(typeof(dir) === "undefined" || dir == "desc"){
                            dir = "asc";
                        }
                        else{
                            dir = "desc";
                        }
                        el.data("sortDirection",dir);

                        el.parent().addClass(dir + " sorted");
                        
                        getData({
                            "sort":sortKey,
                            "sortDirection":dir,
                            "sortColumn": thead.find("th").index(sortTh)
                        });
                        e.preventDefault();
                    })
                    
            );
        
        });
        
        
    
        $('<select class="resultsPerPage"><option value="10">10 per page</option><option value="25">25 per page</option><option value="50">50 per page</option><option value="100">100 per page</option><option value="200">200 per page</option></select>')
            .insertBefore(table)
            .change(function(){
                getData({
                    "resultsPerPage":$(this).val()
                });
            })
            .find("option[value=" + options.resultsPerPage + "]").attr("selected","selected")
            .end().clone(true).insertAfter(table).find("option[value=" + options.resultsPerPage + "]").attr("selected","selected");

        topPaginationCon.append(generatePagination(currentPage,totalPages));
        bottomPaginationCon.append(generatePagination(currentPage,totalPages));
        
    };
    
// END TABLE SORTER FOR STATS
	

	
    $(function(){
    
		$("#appDetail .uninstall").wpHelp();
		$("#appDetail .editpop").wpHelp();
		$("#domainAppsList .uninstall").wpHelp();
		$("#domainAppsList .editpop").wpHelp();
	
        $("a.checkArticles").live("click",function(e){
            e.preventDefault();
            $.post($(this).attr("href"),{keywords:escape($("#keywords").val())},function(data){
                $(data).modal();
            },"html");
            
        
        });
        
		$("#catList").listCrop(15);
		$("#myGroupsList").listCrop(10);
		
        $(".datefieldinput").datepicker();
    
        $(".gOptions").each(function(){
            var opt = $(this);
            $(this).parent().hover(function(){ opt.show(); },function(){opt.hide();});
            
            $(this).find("a").wpHelp();
                
        });
        
        
        $(".siteInfo").wpSiteInfo();


// show/hide 

$("input.showHide:radio").bind("click.showHide",function(){
    if($(this).is(":checked")){
        var action = $(this).attr("rel").substr(0,4);
        if(action=="show"){
            $("." + $(this).attr("rel").substring(5)).show();
        }
        else{
            $("." + $(this).attr("rel").substring(5)).hide();
        }
    }
    $(this).closest(".formBlock").hide().show();
    
}).filter(":checked").trigger("click.showHide");

// END show/hide 
    
    });


// Category Picker

    $.fn.categoryPicker = function(options){
        var ucwords = function(str){
            return (str+'').replace(/^(.)|\s(.)/g, function ( $1 ) { return $1.toUpperCase( ); } );
        };
        var modalContainer = $('#modalInner').remove().dialog({
            width: 655,
            resizable: false,
            draggable: false,
            autoOpen: false
        });
        var container = $(this);
        var int;
        var selectedCategory = false;
        var cpListing = $("#cpListing").height(0);
        var cpMore = $("#cpMore").hide();
        var cpCategories = $("#cpCategories").hide();
        $(".ui-dialog #modalInner > div.modalContent > div.modalFooter a.modalClose").live("click",function(){
            modalContainer.dialog("close");
            return false;
        });
        modalContainer.find(".saveCategory").click(function(){
            
            if(selectedCategory === false){
                
            }
            else{
                container.find(".i")
                    .find("img,a.choose,div.cat").remove().end()
                    .append('<div class="cat">'+selectedCategory.formattedCat+'</div>')
                    .append($('<img width=201 src="' + selectedCategory.image + '" class="categoryImg" />'))
                    .find("input.cat").val(selectedCategory.category).end()
                    .closest("li").addClass("selected")
                    .closest("ul").hide().show();
                container.find(".h").html('<a href="#" class="change">change</a>');
                modalContainer.dialog("close");
            }
            return false;
        });
        modalContainer.find(".startOver").hide().click(function(){
            
            $("#mSearch").val("");
            cpCategories.empty().add(cpMore.find("img").remove().end().find(".note").show().end()).fadeOut("fast");
            
            cpListing.animate({height:0,padding:0},"normal",function(){ $(this).addClass("empty"); });
            modalContainer.find(".startNote").show();
            $(this).hide();
            return false;
        });
        modalContainer.find("#mSearch").focus(function(){
        
            var value = $(this).val();
            var tInput = $(this);
            int = setInterval(function(){
                
                if(tInput.val() != value && tInput.val().length > 2){
                    cpMore.add(cpCategories).fadeOut("fast");
                    value = tInput.val();
                    modalContainer.find(".startNote").hide().end().find(".startOver").show();
                    cpMore.find("img:visible").fadeOut("fast",function(){ cpMore.find("img").remove().end().find(".note").fadeIn("fast"); });
                    selectedCategory = false;
                    cpListing.removeClass("empty").addClass("loading").animate(
                    { height: "160px",padding: "10px" },
                    "medium",
                    function(){

                        $.post(options.url,{userInput:value},function(data){
                            var catContainer = $("#cpCategories").empty();
                            
                            if(data.length){
                                $.each(data,function(i,key){
                                    var cKey = key;
                                    cKey.formattedCat = ucwords(cKey.category.replace(/_/g," ").replace(">","&raquo;"));
                                    cKey.category = cKey.category.replace(">","&gt;");
                                    var timg = $('<img width=201 src="' + cKey.image + '" />').hide().appendTo($("#cpMore"));
                                    $('<li>'+cKey.formattedCat+'</li>')
                                        .appendTo(catContainer)
                                        .hover(function(){ $(this).addClass("hover"); }, function(){ $(this).removeClass("hover"); })
                                        .click(function(){
                                            catContainer.find(".selected").removeClass("selected");
                                            $(this).addClass("selected");
                                            selectedCategory = cKey;
                                                $("#cpMore img:visible, #cpMore .note:visible").fadeOut("fast", function(){ timg.fadeIn("fast"); });
                                            });
                                });
                            }
                            else{
                                $('<li class="noResults">No results found.</li>').appendTo(catContainer);
                                $("#cpMore img:visible").fadeOut("fast");
                            }
                            cpListing.removeClass("loading empty");
                            cpCategories.add(cpMore).fadeIn("medium");
                        },"json");
                    }
                    );
                }
            },800);
        }).blur(function(){
            clearInterval(int);
        });
        container.find("a.choose,a.change").live("click",function(){
            $("#mSearch").val("");
            cpCategories.empty().hide();
            cpMore.hide().find("img").remove().end().find(".note").show();
            cpListing.addClass("empty").css({height:0,padding:0});
            modalContainer.dialog("open");
            return false;
        
        });
    };
    


// End Category Picker

    
})(jQuery);

