﻿/// <reference path="../../js/base.js" >

var RclDefault={};
RclDefault.Methods={};
RclDefault.newItems=null;
RclDefault.featuredItems=null;
RclDefault.outOfPrintItems=null;
RclDefault.webItems=null;
RclDefault.newItemStart=null;
RclDefault.maxStart=null;
RclDefault.imagePath=null;
RclDefault.arrowImages={left:"left-green-arrow.gif",leftGray:"left-gray-arrow.gif",right:"right-green-arrow.gif",rightGray:"right-gray-arrow.gif"};
RclDefault.imgUrl="http://www.syndetics.com/index.aspx?isbn=*/mc.gif&client=bipsite&type=nocover";//"http://beta.syndetics.com/index.aspx?isbn=*/mc.gif";
RclDefault.Templates={subject:null,author:null};
RclDefault.defaultUrl="../default.ashx";
RclDefault.beforeLogin=null;
RclDefault.lastClickTime=null;
RclDefault.speed=450;

RclDefault.titleLink=function(item){
    var str="|"+item.TitleUid+"|"+item.ItemUid;
    if (RclDefault.beforeLogin){
        return function(){
            window.location.href=RclDefault.defaultUrl+"?hreciid="+str;
        }
    }
    else{
        return function(){
            ABLFrame.Content.UpdateDetail(str, 'cs=resultlist');
        }
    }
}
RclDefault.moreLink=function(strIds){
    if (RclDefault.beforeLogin)
        window.location.href=RclDefault.defaultUrl+"?hreciid="+strIds;
    else
       ABLFrame.Content.UpdateDetail(strIds, 'cs=resultlist');
}
RclDefault.authorLink=function(item){
    //var str="author:"+item.ContributorName;
    //Mantis ID-9442: No results found page is displayed unexpectedly when clicking author link on the home page.
    var str="author=["+item.ContributorName +"]";
    if (RclDefault.beforeLogin){
        return function(){
            window.location.href=RclDefault.defaultUrl+"?q="+str;
        }
    }
    else{
        return function(){
            parent.ABLFrame.Search(str, "user", "", "user");
        }
    }
}

RclDefault.rclSubjectLink=function(subject){
    var str="rclsubjuidforall=["+subject.Value +"]";
    if (RclDefault.beforeLogin){
        return function(){
            window.location.href=RclDefault.defaultUrl+"?q="+str;
        }
    }
    else{
        return function(){
            parent.ABLFrame.Search(str, "user", "", "user");
        }
    }
}

RclDefault.Methods.setNewItem=function(obj,item){
    obj.find("img").attr("src",RclDefault.imgUrl.replace("*",item.Isbn)).click(RclDefault.titleLink(item));
    obj.find("span").text(item.Title).click(RclDefault.titleLink(item));
}

RclDefault.Methods.setNewItemGroup=function(group,index){
    var obj,item;
    for (var i=0;i<4;i++){
        obj=group.find("td[prop='item"+(i+1)+"']");
        item=RclDefault.newItems[index];
        RclDefault.Methods.setNewItem(obj,item);
        index++;
    }
    return index;
}

RclDefault.Methods.prev=function(){
    $("#btnRight").removeAttr("disabled").attr("src",RclDefault.imagePath+RclDefault.arrowImages.right);
    var left=$("div[prop='divLeft']");
    var mid=$("div[prop='divMiddle']");
    var right=$("div[prop='divRight']");
    left.attr("prop","divMiddle");
    mid.attr("prop","divRight");
    right.attr("prop","divLeft").css("margin-left","-555");
    RclDefault.newItemStart-=4;   
   
    if (RclDefault.newItemStart<=0){
        $("#btnLeft").attr("disabled","disabled").attr("src",RclDefault.imagePath+RclDefault.arrowImages.leftGray);
        return;
    }
    else{
        $("#btnLeft").removeAttr("disabled").attr("src",RclDefault.imagePath+RclDefault.arrowImages.left);
    }
    var index=RclDefault.newItemStart-4;
    if (index<0) index=0;
    
    left=$("div[prop='divLeft']"); 
    RclDefault.Methods.setNewItemGroup(left,index);
}

RclDefault.Methods.next=function(){
    $("#btnLeft").removeAttr("disabled").attr("src",RclDefault.imagePath+RclDefault.arrowImages.left);
    var left=$("div[prop='divLeft']");
    var mid=$("div[prop='divMiddle']");
    var right=$("div[prop='divRight']");
    left.attr("prop","divRight").css("margin-left","555");
    mid.attr("prop","divLeft");
    right.attr("prop","divMiddle");
    RclDefault.newItemStart+=4;
       
    var index=RclDefault.newItemStart+4;
    if (index>RclDefault.newItems.length-1){
        $("#btnRight").attr("disabled","disabled").attr("src",RclDefault.imagePath+RclDefault.arrowImages.rightGray);
        return;
    }
    else{
        $("#btnRight").removeAttr("disabled").attr("src",RclDefault.imagePath+RclDefault.arrowImages.right);
    }

    if (index>=RclDefault.maxStart) index=RclDefault.maxStart;
    
    right=$("div[prop='divRight']");
    RclDefault.Methods.setNewItemGroup(right,index);
}

RclDefault.Methods.initFeaturedItems=function(){
     
    var divTitles=$("#featuredTitles");
    var div=null;
    var item=null;
    
    for (var m=0;m<RclDefault.featuredItems.length;m++){
        div=divTitles.find("#featuredTitle"+(m+1));
        item=RclDefault.featuredItems[m];
        div.find("img").attr("src",RclDefault.imgUrl.replace("*",item.Isbn)).click(RclDefault.titleLink(item));
        div.find("a[prop='title']").text(item.Title).click(RclDefault.titleLink(item));
        
        if (item.ContributorName)
        {
            var authorLink=RclDefault.Templates.author.clone();
            authorLink.text(item.ContributorName).click(RclDefault.authorLink(item));
            div.find("span[prop='author']").append("by ").append(authorLink);
        }
//        div.find("a[prop='author']").text(item.ContributorName).click(RclDefault.authorLink(item));
        var count=0;
        for (var i=0;i<item.RclSubjects.length;i++){
            if (i>2) break;
            var rclSubject=item.RclSubjects[i];
            if (!rclSubject.Key) continue;
            if (count==0) div.find("span[prop='subject']").append("in: ");
            var subject=RclDefault.Templates.subject.clone().text(rclSubject.Key).click(RclDefault.rclSubjectLink(rclSubject));
            if (i>0){
                div.find("span[prop='subject']").append(", ").append(subject);
            }
            else{
                div.find("span[prop='subject']").append(subject);
            }
            count++;
        }
        var strTemp = "'|"+item.TitleUid+"|"+item.ItemUid + "'";
        var morelink='<a style="color:green;" href="#" onclick="RclDefault.moreLink(' + strTemp + ')">....More</a>';
        if (item.Summary != null && item.Summary.length > 30 )
        {
            div.find("span[prop='summary']").text(item.Summary).append(morelink);
        }
        else 
        {
             div.find("span[prop='summary']").text(item.Summary);
        }
    }
}



RclDefault.Methods.initNewItems=function(){
    var num=Math.floor(Math.random()*(RclDefault.newItems.length+1));
    var maxStart=RclDefault.newItems.length-4;
    if (num>maxStart) num=maxStart;
    RclDefault.newItemStart=num;
    RclDefault.maxStart=maxStart;
    
    if (num==0){
        $("#btnLeft").attr("disabled","disabled").attr("src",RclDefault.imagePath+RclDefault.arrowImages.leftGray);
    }
    else if(num==maxStart){
        $("#btnRight").attr("disabled","disabled").attr("src",RclDefault.imagePath+RclDefault.arrowImages.rightGray);
    }
    
    var index;
    var item;
    var obj;
    if (RclDefault.newItemStart>0){        
        index=RclDefault.newItemStart-4;
        if (index<0){
            index=0;
            RclDefault.newItemStart=index;
        }
        
        var left=$("div[prop='divLeft']");
        RclDefault.Methods.setNewItemGroup(left,index);
    }
    
    var mid=$("div[prop='divMiddle']");
    index=RclDefault.newItemStart;
    index=RclDefault.Methods.setNewItemGroup(mid,index);
    
    var right=$("div[prop='divRight']");    
    if (index<=RclDefault.newItems.length-1){
        if(index>RclDefault.maxStart){
            index=RclDefault.maxStart;
            RclDefault.newItemStart=index;
        }
        RclDefault.Methods.setNewItemGroup(right,index);
    }
}

RclDefault.Methods.initOutOfPrintItems=function(){
    var divTitles=$("#outofPrintTitles");
    var div=null;
    var item=null;
    for (var m=0;m<RclDefault.outOfPrintItems.length;m++){
        div=divTitles.find("#outOfPrint"+(m+1));
        item=RclDefault.outOfPrintItems[m];
        div.find("img").attr("src",RclDefault.imgUrl.replace("*",item.Isbn)).click(RclDefault.titleLink(item));
        div.find("a[prop='title']").text(item.Title).click(RclDefault.titleLink(item));
        if (item.ContributorName)
        {
            var authorLink=RclDefault.Templates.author.clone();
            authorLink.text(item.ContributorName).click(RclDefault.authorLink(item));
            div.find("span[prop='author']").append("by ").append(authorLink);
        }
        //div.find("a[prop='author']").text(item.ContributorName).click(RclDefault.authorLink(item));
        var count=0;
        if (item.RclSubjects)
        for (var i=0;i<item.RclSubjects.length;i++){
            if (i>2) break;
            var rclSubject=item.RclSubjects[i];
            if (!rclSubject.Key) continue;
            if (count==0) div.find("span[prop='subject']").append("in: ");
            var subject=RclDefault.Templates.subject.clone().text(rclSubject.Key).click(RclDefault.rclSubjectLink(rclSubject));
            if (i>0){
                div.find("span[prop='subject']").append(", ").append(subject);
            }
            else{
                div.find("span[prop='subject']").append(subject);
            }
            count++;
        }
        div.find("span[prop='isbn']").text(item.Isbn13);
        div.find("span[prop='publisher']").text(item.PublisherName);
        div.find("span[prop='pubDate']").text(item.PubDate);
    }
}

RclDefault.Methods.initWebItems=function(){
    var divTitles=$("#webTitles");
    var div=null;
    var item=null;
    for (var m=0;m<RclDefault.webItems.length;m++){
        div=divTitles.find("#webTitle"+(m+1));
        item=RclDefault.webItems[m];
        //div.find("a[prop='title']").attr("href",item.RclUrl).text(item.Title);
        div.find("a[prop='title']").text(item.Title).click(RclDefault.titleLink(item));
        
        var count=0;
        if (item.RclSubjects)
        for (var i=0;i<item.RclSubjects.length;i++){
            if (i>2) break;
            var rclSubject=item.RclSubjects[i];
            if (!rclSubject.Key) continue;
            if (count==0) div.find("span[prop='subject']").append("in: ");
            var subject=RclDefault.Templates.subject.clone().text(rclSubject.Key).click(RclDefault.rclSubjectLink(rclSubject));
            if (i>0){
                div.find("span[prop='subject']").append(", ").append(subject);
            }
            else{
                div.find("span[prop='subject']").append(subject);
            }
            count++;
        }
    }
}

RclDefault.Methods.getRclFeaturedItemsComplete=function(result){
    RclDefault.featuredItems=result.d;
    RclDefault.Methods.initFeaturedItems();
}
RclDefault.Methods.getRclNewItemsComplete=function(result){
    RclDefault.newItems=result.d;
    RclDefault.Methods.initNewItems();
}
RclDefault.Methods.getRclOutOfPrintItemsComplete=function(result){
    RclDefault.outOfPrintItems=result.d;
    RclDefault.Methods.initOutOfPrintItems();
}
RclDefault.Methods.getRclWebItemsComplete=function(result){
    RclDefault.webItems=result.d;
    RclDefault.Methods.initWebItems();
}

RclDefault.Methods.init=function(){
    var divTemplates=$("#divTemplate");
    RclDefault.Templates.subject=divTemplates.find("a[prop='subject']");
    RclDefault.Templates.author=divTemplates.find("a[prop='author']");
    
    if (window.location.href.indexOf("result.ashx")>0){
        RclDefault.imagePath="rcl/images/";
        RclDefault.beforeLogin=false;
        Base.Methods.getData({},"rcl/default.aspx/GetRclFeaturedItems",RclDefault.Methods.getRclFeaturedItemsComplete,Base.EventHandlers.errorHandler); 
        Base.Methods.getData({},"rcl/default.aspx/GetRclNewItems",RclDefault.Methods.getRclNewItemsComplete,Base.EventHandlers.errorHandler); 
        Base.Methods.getData({},"rcl/default.aspx/GetRclOutOfPrintItems",RclDefault.Methods.getRclOutOfPrintItemsComplete,Base.EventHandlers.errorHandler); 
        Base.Methods.getData({},"rcl/default.aspx/GetRclWebItems",RclDefault.Methods.getRclWebItemsComplete,Base.EventHandlers.errorHandler); 
    }
    else{
        RclDefault.imagePath="images/";
        RclDefault.beforeLogin=true;
        Base.Methods.getData({},"default.aspx/GetRclFeaturedItems",RclDefault.Methods.getRclFeaturedItemsComplete,Base.EventHandlers.errorHandler); 
        Base.Methods.getData({},"default.aspx/GetRclNewItems",RclDefault.Methods.getRclNewItemsComplete,Base.EventHandlers.errorHandler); 
        Base.Methods.getData({},"default.aspx/GetRclOutOfPrintItems",RclDefault.Methods.getRclOutOfPrintItemsComplete,Base.EventHandlers.errorHandler); 
        Base.Methods.getData({},"default.aspx/GetRclWebItems",RclDefault.Methods.getRclWebItemsComplete,Base.EventHandlers.errorHandler); 
    }
    
    RclDefault.Methods.isClickOk=function(){
        return (!RclDefault.lastClickTime || (new Date()).getTime()-RclDefault.lastClickTime.getTime()>(RclDefault.speed+50));
    }
    
    $("#btnLeft").click(function(){
        if (RclDefault.Methods.isClickOk()){
        var mid=$("div[prop='divMiddle']");
        var left=$("div[prop='divLeft']");
        mid.animate({marginLeft:555},RclDefault.speed);
        left.animate({marginLeft:0},RclDefault.speed,RclDefault.Methods.prev);
        RclDefault.lastClickTime=new Date();
        }
    }); 

    $("#btnRight").click(function(){
        if (RclDefault.Methods.isClickOk()){
        var mid=$("div[prop='divMiddle']");
        var right=$("div[prop='divRight']");
        mid.animate({marginLeft:-555},RclDefault.speed);
        right.animate({marginLeft:0},RclDefault.speed,RclDefault.Methods.next);
        RclDefault.lastClickTime=new Date();
        }
    });   
}
    
$(document).ready(function() {
    RclDefault.Methods.init();    
});

