/**
 * @author ccompton
 */
function Items(){
    return {
        itemData: null,
        rowOpen:false,
        filterType: "",
        filter: "",
        rows: '20',
        page: '1',
        sidx: 'title',
        sord: 'asc',
        catid: '1',
        lastcatid: '',
        groupid: '0',
        lastgroupid: '',
        currentEditRowId: null,
        isSearch:false,
        init: function(){
            if($app.admin == true){
                $items.getItemsFromServerADMIN('getAll', 'false');
            }else{

                $items.getItemsFromServer('getAll', 'false');
                

            }

            //            var catLink = $("#mainNavDiv"+ $items.catid+" h3 a").text();
            //            $("#cookie").html(catLink);
            // cookie trail
            var catLink="";
            var groupName="";
            var sep="";
            if($items.groupid!=0){
                catLink = "<a href=\"javascript:#\" onclick=\"$('#mainNavDiv"+ $items.catid+" h3 a').click()\">"+$("#mainNavDiv"+ $items.catid+" h3 a").text()+"</a>";
                sep = " >> ";
            }else{
                catLink = $("#mainNavDiv"+ $items.catid+" h3 a").text();
            }
            groupName = $("#mainNavLi"+ $items.groupid+" a").text();
            $("#cookie").html(catLink +sep+groupName);
            // end cookie trail
            //desc text
            
            $items.setDescText();
        //
        },
        selectItems: function (sender, thisCookieTrail, call, _search, thisrows, thispage, thissidx, thissord, thiscatid, thisgroupid){
            if(thisgroupid != 0 && thisgroupid != ""){
                $("#mainNavLi"+thisgroupid).addClass("mainNavGroupOpen"); 
            }
            if ($items.lastgroupid != thisgroupid){
                $("#mainNavLi"+$items.lastgroupid).removeClass("mainNavGroupOpen");
                $items.lastgroupid = thisgroupid;
            }
            if($items.lastcatid != thiscatid && (thisgroupid == "" || thisgroupid == 0)){
    
                $("#mainNavCat"+$items.lastcatid).slideToggle("fast");
                $("#mainNavCat"+$items.lastcatid+"_new").hide();
                $("#mainNavDiv"+$items.lastcatid).removeClass("mainNavOpen");

                $("#mainNavCat"+thiscatid).slideToggle("fast");
                $("#mainNavCat"+thiscatid+"_new").show(600);
                $("#mainNavDiv"+thiscatid).addClass("mainNavOpen");

                $items.lastcatid = thiscatid;
                
            }
            //set global vars
            if($app.admin != true){
                $("#mainContent").html("<img id='ajaxLoader' style='display: none;' src='images/icons/ajax-loader.gif' />");
                $("#ajaxLoader").fadeIn(500);
            }
            if(thisrows!=""){ 
                $items.rows = thisrows;
            }
           
            if(thispage!=""){ 
                $items.page = thispage;
            }
            if(thissidx!=""){ 
                $items.sidx = thissidx;
            }
            if(thissord!=""){ 
                $items.sord = thissord;
            }
            if(thiscatid!=""){ 
                $items.catid = thiscatid;
            }
            if(thisgroupid!=""){  
                $items.groupid = thisgroupid;
            }
            // cookie trail
            $app.cookieTrail = thisCookieTrail;
            var catLink="";
            var groupName="";
            var sep="";
            if(thisgroupid!=0){
                catLink = "<a href=\"javascript:#\" onclick=\"$('#mainNavDiv"+ thiscatid+" h3 a').click()\">"+$("#mainNavDiv"+ thiscatid+" h3 a").text()+"</a>";
                sep = " >> ";
            }else{
                catLink = $("#mainNavDiv"+ thiscatid+" h3 a").text();
            }
            groupName = $("#mainNavLi"+ thisgroupid+" a").text();
            $("#cookie").html(catLink +sep+groupName);
            // end cookie trail
            if($app.admin == true){
                $items.getItemsFromServerADMIN(call, _search);
                $admin.AdminSelectItems(sender);
               
            }else{
                //desc text
                $items.setDescText();
                //
                $items.getItemsFromServer(call, _search);
            }
        },
        selectFilteredItems: function (_searchString){
            //set global vars
            if($app.admin != true){
                $("#mainContent").html("<img id='ajaxLoader' style='display: none;' src='images/icons/ajax-loader.gif' />");
                $("#ajaxLoader").fadeIn(500);
            }
            //set nav to 0
            $mainNav.init("search", true);
            $items.rows = '50';
            $items.page = '1';
            $items.sidx = 'id';
            $items.sord = 'desc';
            $items.catid = '0';
            $items.groupid = '0';
            $app.cookieTrail = 'Search';
            $("#cookie").html($app.cookieTrail);
            if($app.admin == true){
                $items.getItemsFromServerADMIN('getAll', false);
            }else{
                $items.getFilteredItemsFromServer(_searchString)
            }
        },

        getItemsFromServer: function (call, _search){
            $.ajaxSetup({ 
                cache: false
            });
            $.getJSON("model/Items.php?call="+call+"&search="+_search+"&rows="+$items.rows+"&page="+$items.page+"&sidx="+$items.sidx+"&sord="+$items.sord+"&catid="+$items.catid+"&groupid="+$items.groupid,
                function(data){
                    $items.itemData = data;
                    $("#mainContent").html("");
                    $items.isSearch = false;
                    $items.BindItems(data);  
                });
        },
        getFilteredItemsFromServer: function (_searchString){
            $.ajaxSetup({ 
                cache: false
            });
            $.getJSON("model/Items.php?call=getAll&_search=true&searchString="+_searchString+"&rows="+$items.rows+"&page="+$items.page+"&sidx="+$items.sidx+"&sord="+$items.sord+"&catid="+$items.catid+"&groupid="+$items.groupid,
                function(data){
                    $items.itemData = data;
                    $("#mainContent").html("");
                    $items.isSearch = true;
                    $items.BindItems(data);
                });
        },
        getItemsFromServerADMIN: function (call, _search){
            $("#adminFilePanel").show();
            $("#adminUserPanel").hide();
            $("#mainContent").html("");
            $("#jqPager").html("");
            $("#mainContent").append("<div id='mainContentAdmin'></div>");
            $("#mainContentAdmin").html("<table id='itemList' class='scroll'></table><table id='itemListTools' class='scroll'></table><div id='itemsAdminPager' class='scroll' style='text-align:center;'></div>");
            $("#itemList").jqGrid({
                url: "model/Items.php?call="+call+"&catid="+$items.catid+"&groupid="+$items.groupid+"&isAdmin=true",
                datatype: 'json',
                mtype: 'GET',
                colNames:['Actions', 'id', 'filetype', 'filename','title', 'date modified', 'Test Link'],
                colModel:[
                {
                    name:'act',
                    index:'act',
                    width:75,
                    sortable:false
                },

                {
                    name:'id',
                    index:'id',
                    width:25,
                    editable:false
                },
  
                {
                    name:'filetype',
                    index:'filetype',
                    width:55,
                    editable:true,
                    edittype:"select",
                    editoptions:{
                        value:"vid:vid;pod:pod;doc:doc"
                    }
                },
                {
                    name:'filename',
                    index:'filename',
                    width:190,
                    editable:true,
                    editrules:{
                        required:true
                    }
                },
                {
                    name:'title',
                    index:'title',
                    width:190,
                    editable:true,
                    editrules:{
                        required:true
                    }
                },
                {
                    name:'dateModified',
                    index:'dateModified',
                    width:80,
                    align:"right",
                    editable:true,
                    sorttype:"date",
                    editrules:{
                        required:true
                    }
                },
                {
                    name:'link',
                    index:'link',
                    width:70,
                    align:"right",
                    editable:false,
                    sortable:false
                }],
                height:'auto',
                rowList:[10,20,30],
                sortname: 'id',
                sortorder: "desc",
                viewrecords: true,
                imgpath: 'css/themes/steel/images',
                caption: 'Resource Library Editor',
                pager : '#jqPager',
                jsonReader: {
                    repeatitems : false,
                    id: "1"
                },
                onSelectRow: function(id){
                    $items.pickdates(id);
                    $items.pickPath(id);
                },
                editurl: "model/itemsCRUD.php?call=update&table=files",
                loadComplete: function(data){
                    var ids = jQuery("#itemList").getDataIDs();

                    for(var i=0;i<ids.length;i++){
                        var cl = ids[i];
                        be = "<input style='height:22px;width:60px;' type='button' id='"+cl+"_editBtn' value='edit' onclick='$items.editthisrow("+cl+");' ></ids>";
                        se = "<input style='height:22px;width:60px;display:none;' id='"+cl+"_saveBtn' type='button' value='save' onclick='$items.savethisrow("+cl+");' />";
                        ce = "<input style='height:22px;width:60px;display:none;' id='"+cl+"_cancelBtn' type='button' value='cancel' onclick='$items.canceleditthisrow("+cl+");' />";
                        de = "<input style='height:22px;width:60px;display:none;' id='"+cl+"_deleteBtn' type='button' value='delete' onclick='$items.deletethisrow("+cl+");' />";
                        //                        ue = "<input style='height:22px;width:20px;' type='button' value='U' onclick=$admin.AdminUploadNewImage("+cl+"); />";
                        URLlink = "<a href='#' onclick=\"$items.downloadDoc('"+jQuery("#itemList").getRowData(cl).filename+"')\" >Test Link</a>";
                        $("#itemList").setRowData(ids[i],{
                            act:be+ce+se+de, 
                            link:URLlink
                        })
                    }

                }
            });
        },
        savethisrow: function (id){
            $items.rowOpen = false;
            jQuery('#itemList').saveRow(id, null , null , null ,
                function(id){
                    $("#"+id+"_saveBtn").css('display', 'none');
                    $("#"+id+"_cancelBtn").css('display', 'none');
                    $("#"+id+"_editBtn").css('display', 'block');
                    $("#"+id+"_deleteBtn").css('display', 'none');
                    $('#itemList'+" #"+id).remove(".editNote");
                });
        },
        editthisrow: function (id){
            if($items.rowOpen == true){
                alert("Sorry! You can only edit one row at a time");
                return;
            }
            $items.rowOpen = true;
            $("#"+id+"_saveBtn").css('display', 'block');
            $("#"+id+"_cancelBtn").css('display', 'block');
            $("#"+id+"_editBtn").css('display', 'none');
            $("#"+id+"_deleteBtn").css('display', 'block');

            jQuery('#itemList').editRow(id);
            if($('#itemList'+" #"+id+" td:eq(3) .editNote").length==0){
                $('#itemList'+" #"+id+" td:eq(3)").prepend("<div class='editNote'> &nbsp;</div>");
                $('#itemList'+" #"+id+" td:eq(4)").prepend("<div class='editNote'> &nbsp;</div>");
                $('#itemList'+" #"+id+" td:eq(3)").append("<div class='editNote'>Click field to replace file.</div>");
                $('#itemList'+" #"+id+" td:eq(4)").append("<div class='editNote'>Click field to rename file or change date.</div>");
            }
        },
        canceleditthisrow: function (id){
            $items.rowOpen = false;
            jQuery('#itemList').restoreRow(id);
            $("#"+id+"_saveBtn").css('display', 'none'); 
            $("#"+id+"_cancelBtn").css('display', 'none');
            $("#"+id+"_editBtn").css('display', 'block');
            $("#"+id+"_deleteBtn").css('display', 'none');
            $('#itemList'+" #"+id).remove(".editNote");
        },
        deletethisrow: function (id){
            $items.rowOpen = false;
            var sr = jQuery("#itemList").getGridParam('selrow');
            jQuery("#itemList").delGridRow(id,{
                delData:{
                    thisid:"myvalue"
                }
            });
            $("#"+id+"_saveBtn").css('display', 'none');
            $("#"+id+"_cancelBtn").css('display', 'none');
            $("#"+id+"_editBtn").css('display', 'block');
            $("#"+id+"_deleteBtn").css('display', 'none');
            $('#itemList'+" #"+id).remove(".editNote");
            return true;
        },
        
        pickdates: function (id){
            jQuery("#"+id+"_dateModified","#itemList").datepicker({
                dateFormat:"mm-dd-y"
            });
        },
        pickPath: function (id){
            $("#"+id+"_filename","#itemList").click(function() {
                $admin.AdminUploadNewImage(id);
            });
        },
        BindItems: function (data){
            if($items.isSearch==true){
                //$("#filterCtrl").attr("disabled",true);
                $("#sortCtrl").attr("disabled",true);
            }else{
                //$("#filterCtrl").attr("disabled",false);
                $("#sortCtrl").attr("disabled",false);
            }
            if($app.admin == true){
                $items.getItemsFromServerADMIN('getAll', true);
                return true;
            }else{
                if(data['files'].length == 0){
                    if($items.isSearch==true){
                        $("#mainContent").html("<div id='noResults'>Your search term(s) produced no matches. Please enter a new keyword(s). </div>");
                    }else{
                        $("#mainContent").html("<div id='noResults'>Your filter selection produced no matches. Please select a new category or sub-category to search in or re-set your filter selection.</div>");
                    }
                    $(".pager").html("");
                }else{
                    $("#mainContent").html("");
                    $(".pager").html("page");
                }
                
            }
            var bgclass = 'mainContentDivOdd';
            var lastPageNum = 0;
            var itemCount = 1;
            var filePageNum = 1;
            
            $.each(data['files'], function(i,item){
            	
                if (i==0){
                    bgclass+= ' mainContentDivFirst'
                }
                var docfilter = item['filetype'];
                // var filePageNum = item['filePageNum'];
                

                if(docfilter!="pod" && docfilter!="vid" && docfilter!=""){
                    docfilter="doc";
                }
                //pager

                if(lastPageNum<filePageNum && $items.page!=filePageNum){
                    lastPageNum=filePageNum;
                    $(".pager").append("<a href=\"javascript:$filterNav.setPageNum('"+filePageNum+"')\")> "+filePageNum+"</a>");
                }else if($items.page==filePageNum && $("#CurrentPagerPage").length<=0){
                    $(".pager").append(" <span id='CurrentPagerPage'> ["+filePageNum+"]</span>");
                }
        
                // end pager
                // check filter
                if ((docfilter == $items.filter ||$items.filter == "" || $items.filter==null || $items.filter == "all")) {
                    
                    //page filter
                    if(filePageNum == $items.page){
                        var itemHtml = "<div id='" + item['id'] + "' class='"+bgclass+"' onclick=\"$items.downloadDoc('"+item['filename']+"')\" style='display:none;' > ";
                        itemHtml += "<img class='docTypeThumbnail' id='thumb" + item['id'] + "' src='images/thumbs/thumb_" + item['filetype'] + ".png' />";
						//MATT: This line writes the link for each item onto the page:
                        itemHtml += "<span class='fileTitle'>" + item['title'] + "</span>";
                        if(item['filesize']!="0 Bytes"&&item['filesize']!="0"){
                            itemHtml += "<span class='timeStamp'>updated: " + item['dateModified'] +" | " + item['filesize'] + "</span>";
                        }else{
                            itemHtml += "<span class='timeStamp'>updated: " + item['dateModified'] + "</span>";
                        }
                        itemHtml += "<img class='goBtn' src='images/go.png' />";
                        itemHtml += "</div>";

                        $("#mainContent").append(itemHtml);
                    }
                	// pager count
                    if((itemCount % 20) == 0){
                        filePageNum++;
                        // alert(itemCount + ':' + filePageNum + ':' + $items.page);
                    }
                    itemCount++;
                    //

                }
                // end page filter

                if(bgclass == "mainContentDivEven"){
                    bgclass = "mainContentDivOdd";
                }else{
                    bgclass = "mainContentDivEven";
                }
                // fadein
                $("#"+item['id']).fadeIn(200);
            });
            $("#mainContent .mainContentDivEven, #mainContent .mainContentDivOdd").hover(
                function () {
                    $(this).addClass('mainContentDivOver');
                    $("#"+this.id + ' .goBtn').attr("src", "images/goOver.png");
                },
                function () {
                    $(this).removeClass('mainContentDivOver');
                    $("#"+this.id + ' .goBtn').attr("src", "images/go.png");
                }
                );
        },
        BindPager: function (data){

        },
        downloadDoc: function (link){
            if(link.indexOf("http://")==-1){
				//MATT:handle Omniture code here:
				var s=s_gi('emdeonproduction');
				
				s.linkTrackVars='eVar11,events,prop12,prop13';
				
				s.linkTrackEvents='event4';
				
				s.events='event4';
				
				s.eVar11=link;//'FILENAME.PDF'
				
				s.prop12=s.pageName;
				
				s.prop13=s.eVar11;
				
				s.tl(this,'d',link);//'FILENAME.PDF'
				//end MATT
				
                link = $app.repositoryWebPath+link;
            }
            window.open(''+link,'mywin', '');

        },
        setDescText:function(){
            var currentCatName = $("#mainNavDiv"+ $items.catid+" h3 a").text();
            $('#currentCatDesc').removeClass("descSpacer");
            if($app.admin != true){
                $('#currentCatDesc').html("");
            }else{
                $('#currentCatDescAdmin').val("");
            }
            for(var iii=0; iii<$mainNav.catList.length; iii++){
                if(currentCatName==$mainNav.catList[iii]['name']){
                    if($items.groupid!=0){
                        var groupName = $("#mainNavLi"+ $items.groupid+" a").text();
                        for(var iiii=0; iiii<$mainNav.catList[iii]['groupdata'].length; iiii++){
                            if(groupName==$mainNav.catList[iii]['groupdata'][iiii]['name']){
                                var descText = $mainNav.catList[iii]['groupdata'][iiii]['desc'].replace("\\","");
                                if($app.admin != true){
                                    $('#currentCatDesc').html(descText);
                                    if(descText.length>0){
                                        $('#currentCatDesc').addClass("descSpacer");
                                    }
                                }else{
                                    $('#currentCatDescAdmin').val(descText);
                                    $("#currentCatName").val($mainNav.catList[iii]['groupdata'][iiii]['name']);
                                }
                            }
                        }
                    }else{
                        var descCatText = $mainNav.catList[iii]['desc'].replace("\\","");
                        if($app.admin != true){
                            $('#currentCatDesc').html(descCatText);
                            if(descCatText.length>0){
                                $('#currentCatDesc').addClass("descSpacer");
                            }
                        }else{
                            $('#currentCatDescAdmin').val(descCatText);
                            $("#currentCatName").val($mainNav.catList[iii]['name']);
                        }
                    }
                }
            }

        }
    };
}
