﻿// COMMON
// MADE IT
var rootUrl = 'http://lslclients.djlmgdigital.com';
var staticUrl = 'http://lslstatic.djlmgdigital.com';
var jsTag = document.createElement("script");
jsTag.type = 'text/javascript';
jsTag.src = staticUrl + '/scripts/common/lswidgets.js';
jsTag.language = 'javascript';
document.getElementsByTagName("head")[0].appendChild(jsTag);    
// ###
var BASE_OBJECT_ID = 'oOniLsLBiz_';
var REGION_LINK_CONTAINER = '#oOniLsLBiz_lnkRegionCom';
var oniLslDebug = false;
var oniLslReviews_Arr = null;
var oniLslReview_Curr = 0;
// ###
function CreateRatingImage(skinid,img,bizname,rating,styling)
{
    return '<img width=\"90\" height=\"14\" src=\"' + staticUrl + '/skins/' + skinid + '/' + img + '\" alt=\"' + bizname + ' was given a ' + rating + ' star rating.\" style=\"' + styling + '\"/>';
} 
// --
function CreateProcessingImage(id)
{
  var obj;
  if ( document.getElementById )
    obj = document.getElementById(id);
  else if (document.all)
    obj = document.all.item(id);
  else
    obj = null;
  
  if(null!=obj)
  {
       var src = staticUrl + '/skins/' + obiz.skin + '/processing.gif';
       var alt = 'Processing request....';
       var img = "<img src=\"" + src + "\" alt=\"" + alt+ "\" width=\"70\" height=\"10\"><\/img>";
       obj.innerHTML = img;                     
   }
}
// --
function CreateCss()
{
    var cssNode = document.createElement("link");
    cssNode.type = 'text/css';
    cssNode.rel = 'stylesheet';
    cssNode.href = staticUrl + '/skins/' + obiz.skin + '/' + obiz.skin + '.css';
    cssNode.media = 'screen';
    document.getElementsByTagName("head")[0].appendChild(cssNode);                        
}
// --
function GetOniBusinessReviews(obiz) {
    var JSON_DATA_ONLY = 'json';
    var oHolder = GetObject(obiz.container); 
    
    if(null!=oHolder)
    {   
        var oData = 
        {        
            GetData: function()
            {
                // CONTAINER HAS TO EXIST TO PROCEED   
                oHolder.innerHTML = '';
                
                // IE ONLY  -- $%^&*#(## ME
                if(document.createStyleSheet)
                    oHolder.className = BASE_OBJECT_ID;
                else 
                    oHolder.setAttribute('class', BASE_OBJECT_ID);
                                                                                                                                                                                                                        
                if(JSON_DATA_ONLY == obiz.datatype)
                {
                    // USE DEFAULT CSS FILE
                    if(obiz.usecss)                                                                      
                        CreateCss();
                }                 
            }
        };
        oData.GetData();
        return true;
    }
    return false;
}
// --
function CreateReviews(revcount, reviews, bizname, url) {
    reviewId   = BASE_OBJECT_ID + "review";
    dateId     = BASE_OBJECT_ID + "date";
    commentsId = BASE_OBJECT_ID + "comments";
    prosId     = BASE_OBJECT_ID + "pros";
    consId     = BASE_OBJECT_ID + "cons";
    ratingId   = BASE_OBJECT_ID + "rating";
    
    var html = [];
    var rating, title, dateapproved, pros, cons, comments, newId;
    oniLslReviews_Arr = new Array();                                                   
    
    for (i = 0; i<revcount; i++)
    {
        newId = reviewId + '_' + i;             
        oniLslReviews_Arr[i] = newId;

        if (i != 0)
            html.push('<li id=\"' + newId + '\" class=\"' + reviewId + '\" style=\"display:none;\">');
        else
            html.push('<li id=\"' + newId + '\" class=\"' + reviewId + '\">');                              
        
        rating       = reviews[i].rating;
        title        = reviews[i].title;
        dateapproved = reviews[i].dateapproved;
        pros         = reviews[i].pros;
        cons         = reviews[i].cons;
        comments     = reviews[i].comments;               
                       
        html.push(CreateListItem(ratingId,ratingId,'',CreateRatingImage(1,rating + '.gif',bizname,rating,'')));   
           
        if(!IsEmpty(title))
            html.push(CreateListItem(titleId,titleId,'',title));
            
        html.push(CreateListItem(dateId,dateId,'','<span>Date</span>: ' + dateapproved));
        
        if(!IsEmpty(pros))        
            html.push(CreateListItem(prosId,prosId,'','<span>Pros</span>: ' + pros));               
                      
        if(!IsEmpty(cons))        
            html.push(CreateListItem(consId,consId,'','<span>Cons</span>: ' + cons));
                                                
        if(!IsEmpty(comments))        
            html.push(CreateListItem(commentsId,commentsId,'',comments + ' <a href=\"' + url + '\" target=\"_blank\" title=\"\">more</a>'));
            
        html.push('</li>');                                  
    }        
    return html;
}
// --
function ChooseNewReview() {
    var oldId, newId;
    var oldCt = oniLslReview_Curr;
    var newCt = 0;
    var maxCt = oniLslReviews_Arr.length - 1;

    if (oldCt == 0) {
        newCt = 1;
        oniLslReview_Curr = newCt;
    }
    else if (oldCt == maxCt) {
        newCt = 0;
        oniLslReview_Curr = newCt;
    }
    else if ((oldCt > 0) && (oldCt < maxCt)) {
        newCt = oniLslReview_Curr + 1;
        oniLslReview_Curr = newCt;
    }
    oldId = oniLslReviews_Arr[oldCt];
    newId = oniLslReviews_Arr[newCt];

    // CALL EFFECT
    if (null != newId) {
        $('#' + oldId).hide();
        $('#' + newId).show();
    }
    return false;
}
// --
function ClearElements(resultcontainter) {
    $(document).ready(function() {
        $(resultcontainter).html("<!-- There are no reviews available for this request. --> ");
        $(resultcontainter).show();
        $(REGION_LINK_CONTAINER).hide();
    });
    return 0;
}

// -- SKIN 1
function ProcessJsonData(JSONData, obiz) {
    // HTML ELEMENT PROVIDED BY CLIENT
    var oHolder = GetObject(obiz.container);
    
    if (typeof (JSONData) == "undefined") {
        ClearElements(oHolder);
        return;
    }
    
    if(GetOniBusinessReviews(obiz))
    {
        var rawJSON = JSONData;
                 
        // IDS FOR HTML OBJECTS
        bizId      = BASE_OBJECT_ID + "biz";
        titleId    = BASE_OBJECT_ID + "title";
        reviewsId  = BASE_OBJECT_ID + "reviews";
        numberId   = BASE_OBJECT_ID + "number";
        siteId     = BASE_OBJECT_ID + "site";
        scrollId   = BASE_OBJECT_ID + "scroll";
        
        // CHECK IF JSON HAS DATA
        if(rawJSON)
        {                        
            if (null == rawJSON.bizinfo.reviews) {
                ClearElements(oHolder);
                
                return;
            }

            // MAIN DATA
            var sBiz     = rawJSON.bizinfo.business;
            var sSite    = rawJSON.bizinfo.site;
            var iReviews = rawJSON.bizinfo.reviews.length;        
            var sUrl     = rawJSON.bizinfo.url;        
           
            var aLink = 
            {
                innertext: sBiz,      
                textcontent: sBiz,          
                url: sUrl,        
                cssclass: bizId, 
                urltarget: '_blank',      
                objid: bizId,
                urltitle: sBiz
            };                                                               
            oHolder.appendChild(CreateLinkElement(aLink));
                                  
            if(iReviews>0)
            {   
                var oUl = CreateElement("ul",reviewsId,reviewsId,null); 
                oUl.innerHTML = CreateReviews(iReviews,rawJSON.bizinfo.reviews,sBiz,sUrl).join('');
                oHolder.appendChild(oUl);

                var siteTxt = sSite;
                if (siteTxt.search("/") >= 0) {
                    siteTxt = siteTxt.substring(0, siteTxt.indexOf("/", 0));
                }

                // ADD EVENT HANDLERS                
                $(document).ready(function() {
                    $('#' + bizId).focus(function() {
                        $(this).blur();
                    });
                });                                                        

                if (iReviews > 1) 
                {
                    var LINK_TEXT = 'Next >>';
                    aLink =
                    {
                        innertext: LINK_TEXT,
                        textcontent: LINK_TEXT,
                        url: 'javascript://',
                        cssclass: scrollId,
                        urltarget: '_self',
                        objid: scrollId,
                        urltitle: LINK_TEXT
                    };
                    oHolder.appendChild(CreateLinkElement(aLink));

                    $(document).ready(function() {
                        $('#' + scrollId).click(function() {
                            ChooseNewReview();
                        });
                        
                        $('#' + scrollId).focus(function() {
                            $(this).blur();
                        });
                    });                                        
                }
                var sBeacon = rawJSON.bizinfo.beacon;
                sBeacon = sBeacon.replace("#SERVER#", window.location.host);
                sBeacon = sBeacon.replace("#LOCAL#", window.location);
                sBeacon = sBeacon.replace("#REF#", document.referrer);

                var imgNode = document.createElement("img");
                imgNode.src = sBeacon;
                imgNode.alt = '';
                imgNode.width = '1';
                imgNode.height = '1';
                oHolder.appendChild(imgNode);     
            }
            else {
                ClearElements(oHolder);
                return;
            }                                                                               
        }
    }
}
// --
function GetBizData(obiz) {
   CreateProcessingImage(obiz.container);
   var myUrl = rootUrl + "/reviews/user/bur.aspx?"
              + "bizid=" + obiz.bizid
              + "&site=" + obiz.sitecode.toUpperCase()
              + "&data=" + obiz.datatype.toLowerCase()
              + "&pros=" + obiz.pros.toLowerCase()
              + "&cons=" + obiz.cons.toLowerCase()
              + "&stars=";
              
    if (typeof (obiz.stars) != "undefined")
       myUrl = myUrl + obiz.stars;
   
    myUrl = myUrl + "&callback=GetBizReviews"; 
   
	var jsTag = document.createElement("script");
	jsTag.type = 'text/javascript';
	jsTag.src = myUrl;
	jsTag.language ='javascript';
	document.getElementsByTagName("head")[0].appendChild(jsTag);
}
 
