var stControlTimeout = 200;
var stIsIE = (navigator.appVersion.indexOf("MSIE") != -1)
if(stIsIE)
{
  stControlTimeout = 500;
}
var stControlClosetimer = 0;
var stControlDDMenuItem = null;
var stControlDDImg = null;

var stSelIconImg = null;
var stDeselIconImg = null;

var SCROLLBAR_WIDTH = 17;        

var ST_MEDIA_TYPE_IMAGE = 1;
var ST_MEDIA_TYPE_VIDEO = 2;

var ST_ENTRY_STATS_PARAM_ENTRYID = "entrystats_entryid";
var ST_ENTRY_STATS_PARAM_AVGRATING = "entrystats_avgrating";
var ST_ENTRY_STATS_PARAM_VIEWS = "entrystats_views";
var ST_ENTRY_STATS_PARAM_SKAVGRATING = "entrystats_skavgrating";
var ST_ENTRY_STATS_PARAM_SKNUMRATERS = "entrystats_sknumraters";
var ST_ENTRY_STATS_PARAM_YTAVGRATING = "entrystats_ytavgrating";
var ST_ENTRY_STATS_PARAM_YTNUMRATERS = "entrystats_ytnumraters";
var ST_ENTRY_STATS_PARAM_TOTREVIEWS = "entrystats_totalReviews";
var ST_ENTRY_STATS_PARAM_RATINGID = "rating_id";
var ST_ENTRY_STATS_PARAM_USERID = "rating_userid";
var ST_ENTRY_STATS_PARAM_USERNAME = "rating_username";
var ST_ENTRY_STATS_PARAM_REVIEW = "rating_review";
var ST_ENTRY_STATS_PARAM_RATING_RATING = "rating_rating";

// following are the parameters can reset in client
var stNoOfComments = 0;
var stScaleWidth = 0, stScaleHeight = 0;
var stScaleCounter = 0;
var stCheckReviewStr = false;
var ST_SINGLE_LINE_COMMENTS_MAX_LENGTH = 25; // need to reset the value in client
var ST_SINGLE_LINE_DESCRIPTION_MAX_LENGTH = 25;

var stSwfCbkObject = null;
var stDoLoadMenu = true;

var ST_IMAGE_MAX_UPLOAD_SIZE = 5 * 1024 * 1024; //5Mb
var ST_VIDEO_MAX_UPLOAD_SIZE = 20 * 1024 * 1024; //20Mb

var ST_UPLOAD_MEDIA_INVALID = "We're unable to upload the attached file. Please select a supported file type (png, jpg, gif, mov, avi, wmv, mp4) to continue upload.";
var ST_UPLOAD_MENDATORY = "Please enter the valid input and continue.";
var ST_UPLOAD_SUCCESS = "File uploaded successfully.";
var ST_UPLOAD_ERROR = "We encountered an error with your media file. The file is either corrupt or exceeds the file size limit. Please check the file and try again.";
var ST_UPLOAD_ERROR_NETWORK = "Please check your network connection and try again.";
var ST_UPLOAD_ERROR_CAMPAIGN_PRIVATE = "You are not allowed to upload photos.";

var ST_POST_CMT_ERROR_RATING = "Please select a rating and try again.";
var ST_POST_CMT_ERROR_COMMENT = " Please enter a comment and try again.";

/********************
    html        - innerHTML string for the header
    elementId   - Where i want to set innerHTML
********************/
function stShowHeader(html, //String,
    elementId //HTML Dom Id
    )
{
    if(!stSetInnerHTML(elementId, html))
    {
        if(showAlerts)
        {
            alert(elementId +" is not defined");
        }
    }
}


/********************************************
    Following are the params to be pass
    =======================
    elementId       - Where i want to add Menu bar
    tabMenus        - String array of menu names
    tabSubMenus     - String Array(2 D) of Sub Menu
    selIconImgUrl      - selection icon url for the menu
    deselIconImgUrl      - de-selection icon url for the menu
    callBackMthd    - When i press the menu it will return the menuIdx and subMenuIdx (If no submenu, the subMenuIdx is -1)
    menuBgCls       - Menu backgriound Css (If more than one class use space)
    menuCls         - For every Menu Css (If more than one class use space)
    subMenuCls      - For Sub Menu Css (If more than one class use space)
    spreadTheWord - spread the word html dom string

*********************************************/
function stShowHeaderTab(elementId, //HTML Dom Id
    tabMenus, //String Array
    tabSubMenus, //StringArray - two dimensional
    selIconImgUrl, //String
    deselIconImgUrl, //String
    callBackMthd, //String(Function Name)
    menuBgCls, //String
    menuCls, //String
    subMenuCls, //String
    spreadTheWord // Html Dom String
    )
{
    stSelIconImg = selIconImgUrl;
    stDeselIconImg = deselIconImgUrl;
    var innerHtml = ''+
        '<table class="stFullWidth" cellpadding="0" cellspacing="0">'+
            '<tr>'+
                '<td class="stFullWidth '+(menuBgCls? menuBgCls : '')+'" >'+
                    '<div class="stCursorHand" id="stMenuDropDownDiv">';
    for(var idx = 0; idx < tabMenus.length; idx++)
    {
        var strMaxLength = tabMenus[idx].length;
        for(var subMnuIdx = 0; subMnuIdx < tabSubMenus[idx].length; subMnuIdx++)
        {
            var strSubMenuLength = tabSubMenus[idx][subMnuIdx].length;
            if(strSubMenuLength < strMaxLength)
            {
                var strDiff = strMaxLength - strSubMenuLength;
                var addSpace = '';
                for(var i = 0; i < strDiff; i++)
                {
                    addSpace += '&nbsp;';
                }
                tabSubMenus[idx][subMnuIdx] = tabSubMenus[idx][subMnuIdx] + addSpace + (selIconImgUrl ? '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' : '');
            }
        }
        
        innerHtml += ''+
                        '<ul class="stMenuDropDownUL">'+
                            '<li>'+
                                '<a class="stAutoWidth '+(menuCls ? menuCls+'"' : '') +' href="#" onclick="'+(tabSubMenus[idx] && tabSubMenus[idx].length == 0 ? callBackMthd +'('+ idx +', -1); return false;' : ' return false; ' )+ '" '+(tabSubMenus[idx] && tabSubMenus[idx].length != 0 ? 'onmouseover="stMenuControlOpen(\'stControlDiv'+ idx +'\', \'stIconImg_' + idx + '\');" onmouseout="stControlClosetime();"': '')+'> <nobr>'+
                                (tabSubMenus[idx].length > 0 ? '<img id="stIconImg_' + idx + '" src="'+ selIconImgUrl +'" />&nbsp;' : '')+ tabMenus[idx] +
                                '</nobr> </a>';
        if(tabSubMenus[idx].length > 0)
        {
             innerHtml +=       '<div class="stCursorHand" id=\'stControlDiv'+idx+'\' onmouseover="stCancelCloseTime()" onmouseout="stControlClosetime()">';
        }
        for(var subMnuIdx = 0; subMnuIdx < tabSubMenus[idx].length; subMnuIdx++)
        {
            innerHtml += ''+
                                    '<a '+(subMenuCls ? ' class=" '+subMenuCls+' "' : '')+' href="#" onclick="stMenuControlClose(); '+ callBackMthd +'('+ idx +', '+ subMnuIdx +'); return false;">' + tabSubMenus[idx][subMnuIdx] + '</a>';
        }

        if(tabSubMenus[idx].length > 0)
        {
                innerHtml +=    '</div>';
        }
        innerHtml += ''+                            
                            '</li>'+
                        '</ul>';
    }
    innerHtml += '' +
                        spreadTheWord+
                    '</div>'+
                '</td>'+
            '</tr>'+
        '</table>';

    if(!stSetInnerHTML(elementId, innerHtml))
    {
        if(showAlerts)
        {
            alert(elementId + " is not defined");
        }
    }
}

// open hidden layer
function stMenuControlOpen(id, elementId)
{   
        // close old layer
    if(stControlDDMenuItem)
    {
        // cancel close timer
        stCancelCloseTime();
        stControlDDMenuItem.style.visibility = 'hidden';
    }
    
    if(stControlDDImg)
    {
        stControlDDImg.src = stSelIconImg;
    }

    // get new layer and show it
    stControlDDMenuItem = document.getElementById(id);
    stControlDDMenuItem.style.visibility = 'visible';

    stControlDDImg = document.getElementById(elementId);
    stControlDDImg.src = stDeselIconImg;
}

// close showed layer
function stMenuControlClose()
{
    if(stControlDDMenuItem)
    {
        stControlDDMenuItem.style.visibility = 'hidden';
    }

    if(stControlDDImg)
    {
        stControlDDImg.src = stSelIconImg;
    }
}

// go close timer
function stControlClosetime()
{
    stControlClosetimer = window.setTimeout(stMenuControlClose, stControlTimeout);
}

// cancel close timer
function stCancelCloseTime()
{
    if(stControlClosetimer)
    {
        window.clearTimeout(stControlClosetimer);
        stControlClosetimer = null;
    }
}


/**********************************************
    Following are the params to be pass
    =======================
    elementId                 - element to set the inner HTML of type String
    callback            - callback Function Name 
    showPostACmt        - set true to show "Post a Comment"
    width               - width of the Comments table of type Int
    height              - height of the Comments table of type Int
    cmtsTitle           - Title of the table (eg: say "COMMENTS") of type String
    sendImgUrl          - image url for send button of post a comment form
    cancelImgUrl          - image url for cancel button of post a comment form
    cmtsTabCss          - background & border properties of Comments table of type String
    cmtsHeaderBgCss     - bg color, border properties of a Title of type String
    cmtsBgBorderCss     - bg color, border properties of a Title of type String
    cmtsTitleFontCss    - font family, color, font weight of the Title of type String
    cmtsFontCss         - font family, color, font weight for Comments of type String
    cmtsPostACmtFontCss - font family, color, font weight for Post a Comment of type String
    cmtsFooterBgCss     - bg color, border properties of Pagination of type String
************************************************/
function stGetCommentsUI(elementId, //HTML Dom
    callback, //String callback(Function Name)
    showPostACmt, //Boolean
    width, //Int
    height, //Int
    titleH, //Int
    cmtsTitle, //String
    sendImgUrl, //String
    cancelImgUrl, //String
    cmtsTabCss, //String (class names with spaces)
    cmtsHeaderBgCss, //String (class names with spaces)
    cmtsBgBorderCss, //String (class names with spaces)
    cmtsTitleFontCss, //String (class names with spaces)
    cmtsFontCss, //String (class names with spaces)
    cmtsPostACmtFontCss, //String (class names with spaces)
    cmtsFooterBgCss) //String (class names with spaces)
{
    var commentsHtml = ''+
    '<table class="stBorder1 '+(cmtsTabCss ? cmtsTabCss : '')+'" cellpadding="0" cellspacing="0" style="'+(width ? 'width:'+width+'px; ' : '')+(height ? 'height:'+height+'px;' : '')+'">'+
        '<tr>'+
            '<td class="stFullWidth stCmtsTitleTR stBgColorF4F4EC stBorder1 '+(cmtsHeaderBgCss ? cmtsHeaderBgCss : '')+'" style="height:'+titleH+'px;">'+
                '<table class="stFullWidth stFullHeight" cellpadding="0" cellspacing="0">'+
                    '<tr>'+
                        '<td class="stFullWidth stFullHeight">'+
                            '<font class="stTextAlignL stFontSize11 stFontArial stcolorE53542 stTextBold '+(cmtsTitleFontCss ? cmtsTitleFontCss : '')+'">'+(cmtsTitle ? cmtsTitle : 'COMMENTS')+'</font>'+
                        '</td>'+
                    '</tr>'+
                '</table>'+
            '</td>'+
        '</tr>'+
        '<tr>'+
            '<td>'+
                '<table class="stFullWidth stFullHeight '+(cmtsBgBorderCss ? cmtsBgBorderCss : '')+'" cellpadding="0" cellspacing="0">'+
                    '<tr>'+
                        '<td class="stFullWidth stCmtsPageIdTD stCmtsStatusBoxPad">'+
                            '<table class="stFullWidth" cellpadding="0" cellspacing="0">'+
                                '<tr>'+
                                    '<td id="stCommentPageIdx" class="stWidth75p stTextAlignL stFontSize13 stFontArial stcolor666666 stTextBold '+(cmtsFontCss ? cmtsFontCss : '')+'" align="left"/>'+
                                    '<td class="stWidth25p" align="right">'+
                                        (showPostACmt ? '<a href="#" class="stTextAlignR stFontSize11 stFontArial stcolorE53542 stTextBold stDecorationUnderline '+(cmtsPostACmtFontCss ? cmtsPostACmtFontCss : '')+'" onclick="stShowCommentsForm(\''+sendImgUrl+'\', \''+ cancelImgUrl +'\'); return false;">Post a Comment</a>' : '')+
                                    '</td>'+
                                '</tr>'+
                            '</table>'+
                        '</td>'+
                    '</tr>'+
                    '<tr>'+
                        '<td class="stFullWidth" valign="top">'+
                            '<div id="stComments" class="stFullWidth stCmtsDivH" style="'+(height ? 'height:'+(height - 60 - titleH)+'px;' : '')+'"/>'+
                        '</td>'+
                    '</tr>'+
                    '<tr>'+
                        '<td id="stCommentsPagination" class="stFullWidth stCmtsPaginationH stValignMiddle stBgColorF4F4EC stBorderCmtsTop '+(cmtsFooterBgCss ? cmtsFooterBgCss : '')+'"/>'+
                    '</tr>'+
                '</table>'+
            '</td>'+
        '</tr>'+
    '</table>';

    if(stSetInnerHTML(elementId, commentsHtml))
    {
        if(callback)
        {
            callback();
        }
    }
    else
    {
        if(showAlerts)
        {
            alert(elementId + " is not defined");
        }
    }
}

/***********************************************************
    Following are the params to be pass
    =======================
    bundleEntryPath     - entry stats to get (eg: rating_review, rating_rating, etc) of type String
    entry_ids           - entry_id or array of entry_id of type Int or IntArray
    startIdx            - idx of a comment get from of type Int
    cbk                 - call back function to call after this function execution of type Function
    reportImgUrl    - image url 
    cmtsHeadingFontCss  - font family, color, font weight for Comment headings (like username) of type String
    cmtsFontCss         - font family, color, font weight for Comments of type String
********************************************************************/
function stGetEntryStatsAndComments(bundleEntryPath, //String
    entry_ids, //String / String Array
    startIdx, //Int
    cbk, //Function
    reportImgUrl, //String
    cmtsHeadingFontCss, //String (class names with spaces)
    cmtsFontCss) //String (class names with spaces)
{
    var isSingleEntry = (('' + entry_ids).indexOf(',') == -1);
    var errCbk = function(message)
    {
        if(showAlerts)
        {
            alert("err message :"+message);
        }
    }
    
    var afterUpload = function(result)
    {
        if(cbk)
        {
            var response = parseResult(result);
            var ratingAndReview = new Array(0);

            if(showAlerts)
            {
                alert("getRatingsByUser Response: " + response["X-Skava-ResponseCode"] + " " + urldecode(response["X-Skava-ResponseMessage"]));
            }
            
            if(response["X-Skava-ResponseCode"] == 0 || response["X-Skava-ResponseCode"] == "0")
            {
                if(isSingleEntry)
                {
                    var ratingArray = new Array(0);
                    var reviewArray = new Array(0);
                    var keyValuePair = new Array(0);

                    var length = parseInt(response["X-Skava-RateMaxLength_" + entry_ids] ? response["X-Skava-RateMaxLength_" + entry_ids] : 0);
                    var totalLength = parseInt(response["X-Skava-RateTotalLength_" + entry_ids] ? response["X-Skava-RateTotalLength_" + entry_ids] : 0);

                    for(var idx = 0; idx < length; idx++)
                    {
                        keyValuePair = new Array(0);
                        keyValuePair["rating_id"] = response["X-Skava-UserId_" + entry_ids + "_" + idx];
                        keyValuePair["rating_userid"] = response["X-Skava-UserId_" + entry_ids + "_" + idx];
                        keyValuePair["rating_username"] = response["X-Skava-UserName_" + entry_ids + "_" + idx];
                        keyValuePair["rating_rating"] = response["X-Skava-Rating_" + entry_ids + "_" + idx];
                        keyValuePair["rating_review"] = response["X-Skava-Review_" + entry_ids + "_" + idx];

                        reviewArray.push(keyValuePair);
                    }
                    ratingArray["entrystats_avgrating"] = response["X-Skava-AvgRate_" + entry_ids];
                    ratingArray["entrystats_skavgrating"] = response["X-Skava-SkAvgRate_" + entry_ids];                    
                    ratingArray["entrystats_sknumraters"] = response["X-Skava-SkNumRate_" + entry_ids];
                    ratingArray["entrystats_views"] = response["X-Skava-Views_" + entry_ids];
                    ratingArray["entrystats_ytavgrating"] = response["X-Skava-YtAvgRate_" + entry_ids];
                    ratingArray["entrystats_ytnumraters"] = response["X-Skava-YtNumRate_" + entry_ids];
                    ratingArray["entrystats_totalReviews"] = totalLength; 
                    
                    ratingAndReview["rating_details"] = ratingArray;
                    ratingAndReview["review_details"] = reviewArray;
                    ratingAndReview["review_max_length"] = response["X-Skava-RateMaxLength_" + entry_ids];
                    ratingAndReview["review_total_length"] = response["X-Skava-RateTotalLength_" + entry_ids];
                }
                else
                {
                    entry_ids = ('' + entry_ids).split(',');
                    for(var idx = 0; idx < entry_ids.length; idx++)
                    {
                        ratingAndReview.push(response["X-Skava-SkAvgRate_" + entry_ids[idx]]);
                    }                    
                }
            }
            
            if(isSingleEntry)
            {
                cbk(ratingAndReview, bundleEntryPath, entry_ids, startIdx, reportImgUrl, cmtsHeadingFontCss, cmtsFontCss);
            }
            else
            {
                cbk(ratingAndReview);
            }
        }
    }
    
    var url = "/mc/social?campaign_id=" + campaignidSA +
        "&channel_id=1" +
        "&X-Skava-Authorization=" + escape(auth[campaignidSA]) + 
        "&variableresponse=1" +         
        "&entryproperties_name=" + bundleEntryPath +
        "&op=getentrystats";
    if(isSingleEntry)
    {
        url += "&getuserratings=true" +
            "&ratestartidx="+startIdx +
            "&ratemaxentries="+ stNoOfComments;
    }
    var bodyForGetRatings = escape("bundle_entryPath") + "=" + escape(entry_ids); 
                    
    jx.load(url, afterUpload, "application/x-www-form-urlencoded", "POST", errCbk, bodyForGetRatings);
}

/***********************************************************
    Following are the params to be pass
    =======================
    result    - String Array key pair value
    bundleEntryPath     - entry stats to get (eg: rating_review, rating_rating, etc) of type String
    entry_id           - entry_id or array of entry_id of type Int or IntArray
    reportImgUrl    - image url 
    cmtsHeadingFontCss  - font family, color, font weight for Comment headings (like username) of type String
    cmtsFontCss         - font family, color, font weight for Comments of type String
********************************************************************/
function stLoadComments(result, //String Array key pair value,
    bundleEntryPath, //String
    entry_id, //Int / String Array
    startIdx, //Int
    reportImgUrl, //String
    cmtsHeadingFontCss, //String (class names with spaces)
    cmtsFontCss) //String (class names with spaces)
{

    currentEntryId = entry_id;
    var numItems = result.review_total_length;
    var stComments = result.review_details;
    var rating_det = result.rating_details;       
    var skAvgRate = rating_det.entrystats_skavgrating;
    var noOfRater = rating_det.entrystats_sknumraters;
    var flr = Math.floor(skAvgRate);
    var rnd = Math.round(skAvgRate);

    var commentPageIdx = (numItems > 0 ? ''+(startIdx+1) +' - '+((startIdx+stNoOfComments) > numItems ? numItems : startIdx+stNoOfComments)+' of '+numItems+' Comments' : '');
    var commentDet = '<table class="stFullWidth" border="0" cellpadding="0" cellspacing="0">';
    if(stComments)
    {
        for(var idx = 0; idx < stComments.length; idx++)
        {
            var reviewStr = stComments[idx].rating_review;
            commentDet += ''+                        
                        '<tr>'+
                            '<td class="stFullWidth stSingleCmtH stBorderCmtsTop stValignTop">'+
                                '<table class="stFullWidth stSingleCmtPad" cellpadding="0" cellspacing="0">'+
                                    '<tr>'+
                                        '<td class="stWidth75p stFontSize11 stFontArial stTextBold stcolorE21E2D stTextAlignL '+(cmtsHeadingFontCss ? cmtsHeadingFontCss: '')+'" align="left">'+
                                            stComments[idx].rating_username+
                                        '</td>'+
                                        '<td align="right">'+
                                            '<a href="#" onclick="emailAbuseReport('+entry_id+', \''+escape(htmlEncode(reviewStr))+'\'); return false;">'+
                                                '<img src="'+ reportImgUrl +'reportalert_icon.png"/>'+
                                            '</a>'+
                                        '</td>'+
                                    '</tr>'+
                                    '<tr>'+
                                        '<td colspan="2" class="stFontSize11 stFontArial stTextBold stcolor898898 stValignTop '+(cmtsFontCss ? cmtsFontCss : '')+'">'+
                                            platformDoWhiteSpaceEncode(reviewStr, null, ST_SINGLE_LINE_COMMENTS_MAX_LENGTH)+
                                        '</td>'+
                                    '</tr>'+
                                '</table>'+                                
                            '</td>'+
                        '</tr>';                            
        }
    }
    commentDet += '</table>';

    var statusHtml = '<table class="stFullWidth stCmtsPaginationPad" cellspacing="0" cellpadding="0"><tr><td class="stWidth75p stTextAlignL"><font class="stFontSize11 stFontArial stcolor666666 stTextBold '+(cmtsFontCss ? cmtsFontCss : '')+'">Page: </font>';

    var statusstartIdx = 0;
    var totalItems = 10 * stNoOfComments;
    
    for(var i = 0; i <= startIdx; i += totalItems)
    {
        statusstartIdx = i / totalItems;
    }
    
    statusstartIdx = statusstartIdx * 10;
    
    var totalstatusIdx = numItems / stNoOfComments;

    if(statusstartIdx > 0)
    {
        statusHtml += '<a class="stFontSize11 stFontArial stcolor666666 '+(cmtsFontCss ? cmtsFontCss : '')+' stDecorationUnderline" href="#" onclick="stGetEntryStatsAndComments(\''+bundleEntryPath+'\','+entry_id+','+((statusstartIdx-10)*stNoOfComments)+',stLoadComments, \''+ reportImgUrl +'\', \''+cmtsHeadingFontCss+'\',\''+cmtsFontCss+'\'); return false;">&lt;&lt;</a>&nbsp;';
    }
    var selectedidx = 0;
    for(i = statusstartIdx; i < totalstatusIdx && i < statusstartIdx + 10; i++)
    {
        if(i == (startIdx / stNoOfComments))
        {
            selectedidx = i;
            statusHtml += '<font class="stFontSize11 stFontArial stcolor666666 '+(cmtsFontCss ? cmtsFontCss : '')+' stTextBold stDecorationNone">'+(i+1)+'</font>&nbsp;';
        }
        else
        {
            statusHtml += '<a class="stFontSize11 stFontArial stcolor666666 '+(cmtsFontCss ? cmtsFontCss : '')+' stDecorationUnderline" href="#" onclick="stGetEntryStatsAndComments(\''+bundleEntryPath+'\','+entry_id+','+(i*stNoOfComments)+',stLoadComments, \''+ reportImgUrl +'\',\''+cmtsHeadingFontCss+'\',\''+cmtsFontCss+'\'); return false;">'+(i+1)+'</a>&nbsp;';
        }
    }

    if((statusstartIdx + 10) < totalstatusIdx)
    {
        statusHtml += '<a class="stFontSize11 stFontArial stcolor666666 '+(cmtsFontCss ? cmtsFontCss : '')+' stDecorationUnderline" href="#" onclick="stGetEntryStatsAndComments(\''+bundleEntryPath+'\','+entry_id+','+((statusstartIdx+10)*stNoOfComments)+',stLoadComments, \''+ reportImgUrl +'\',\''+cmtsHeadingFontCss+'\',\''+cmtsFontCss+'\'); return false;">&gt;&gt;</a>&nbsp;';
    }
    
    statusHtml += '</td><td class="stWidth25p">'+
                            '<table class="stFullWidth" cellspacing="0" cellpadding="0">'+
                            '<tr><td class="stWidth70p stTextAlignR">';
    if(selectedidx > 0)
    {
        statusHtml += '<a class="stFontSize11 stFontArial stcolor666666 '+(cmtsFontCss ? cmtsFontCss : '')+' stDecorationUnderline" href="#" onclick="stGetEntryStatsAndComments(\''+bundleEntryPath+'\','+entry_id+','+((selectedidx-1)*stNoOfComments)+',stLoadComments, \''+ reportImgUrl +'\',\''+cmtsHeadingFontCss+'\',\''+cmtsFontCss+'\'); return false;">previous</a>';
    }            

    statusHtml += '</td><td class="stWidth5p"></td> <td class="stWidth25p stTextAlignR">';

    if(selectedidx + 1 < totalstatusIdx)
    {
        statusHtml += '<a class="stFontSize11 stFontArial stcolor666666 '+(cmtsFontCss ? cmtsFontCss : '')+' stDecorationUnderline" href="#" onclick="stGetEntryStatsAndComments(\''+bundleEntryPath+'\','+entry_id+','+((selectedidx+1)*stNoOfComments)+',stLoadComments, \''+ reportImgUrl +'\',\''+cmtsHeadingFontCss+'\',\''+cmtsFontCss+'\'); return false;">next</a>';
    }
    statusHtml +='</td></tr></table></td></tr></table>';

    stSetInnerHTML("stCommentPageIdx", commentPageIdx);
    stSetInnerHTML("stComments", commentDet);
    stSetInnerHTML("stCommentsPagination", statusHtml);
    stSetInnerHTML("stNumRater", '&nbsp;('+ noOfRater +')');
    var node = document.getElementById("stavgRating_"+entry_id);
    if(node)
    {
        node.src = reportImgUrl+'star'+(flr + (flr == rnd ? "0" : "5"))+'.jpg';
    }
    var node1 = document.getElementById("stavgRating1_"+entry_id);
    if(node1)
    {
        node1.src = reportImgUrl+'star'+(flr + (flr == rnd ? "0" : "5"))+'.jpg';
    }
}

function stShowCommentsForm(sendImgUrl, //String,
    cancelImgUrl) //String
{
    var html='<table cellpadding="0" cellspacing="0" align="center" class="stBorder1 stFormPodcastDimension stTopPadding10 stBgColorWhite">'
                        +'<tr>'
                            +'<td class="stLeftPadding10">' 
                                +'<font class="stFontSize12 stFontMyraidPro stcolorBlack">'
                                    +'Select your rating here:&nbsp;&nbsp;'
                                 +'</font>'
                                +'<select id="stRateDropDownComments" class="stFontSize11 stFontArial stcolorBlack">'
                                    +'<option value="-1">&nbsp;Select</option>'
                                    +'<option value="5">&nbsp;Excellent</option>'
                                    +'<option value="4">&nbsp;Very good</option>'
                                    +'<option value="3">&nbsp;Good</option>'
                                    +'<option value="2">&nbsp;Satisfactory</option>'
                                    +'<option value="1">&nbsp;Poor</option>'
                                +'</select>'
                                +'<br>'
                            +'</td>'
                        +'</tr>'
                        +'<tr>'
                            +'<td class="stLeftPadding10">'
                                +'<font class="stFontSize12 stFontMyraidPro stcolorBlack">'
                                   +'Write Your Comment Below:'
                               +'</font>'
                            +'</td>'
                        +'</tr>'
                        +'<tr>'
                            +'<td class="stTopPadding10" align="center">'
                                   +'<textarea id="stTextareaComment"  rows="4" class="stCommentAreaDimstyle stSetScrollY"></textarea>'
                            +'</td>'
                        +'</tr>'
                        +'<tr>'
                            +'<td class="stFullWidth">'
                                +'<table class="stFullWidth">'
                                    +'<tr>'
                                        +'<td id="stUploadErrTxt" class="stLeftPadding10 stHalfWidth stFontSize11 stFontArial stTextBold stcolorE21E2D stTextAlignL ">'
                                        +'</td>'                                       
                                        +'<td class="stHalfWidth stTextAlignR stRightPadding30">'
                                           +'<a href="javascript:false" onclick="hidePopWin();return false;"><img src="'+ cancelImgUrl +'" alt="cancel"/></a>&nbsp;&nbsp;&nbsp;'
                                           +'<a href="#" onclick="stPostAComment();return false;"><img src="'+ sendImgUrl +'" alt="send"/></a>'                                            
                                        +'</td>'
                                    +'</tr>'                                       
                               +'</table>'
                           +'</td>'
                        +'</tr>'
                    +'</table>';
    showPopWin(html, 500, 250, null, true);
}

function stPostAComment()
{
    var userRating = -1;
    var dropdown = document.getElementById('stRateDropDownComments');

    if(dropdown)
    {
        userRating = dropdown.options[dropdown.selectedIndex].value;
    }

    var textArea = document.getElementById('stTextareaComment');
    var review = "";
    if(textArea)
    {
        review = textArea.value
        textArea.value = "";
    }

    if(userRating == -1)
    {
        stSetInnerHTML("stUploadErrTxt", ST_POST_CMT_ERROR_RATING);
        return ;
    }
    else if(stCheckReviewStr)
    {
        stSetInnerHTML("stUploadErrTxt", ST_POST_CMT_ERROR_COMMENT);
        return ;
    }

    // function call to socialactions.js
    doSkRateAndReview(stSwfCbkObject, currentEntryId, 0, userRating, escape(sanitizeStr(escape(review))));
}

/**********************************************************
    Following are the params to be pass
    =======================
    elementId     - element to set the inner HTML of type String
    entries         - Product entries.
    width           - Table Width
    height          - table Height
    headingHeight   - Table Header Height
    isSharingVisible- boolean for showing the sharing option
    isNotPopupMenu - pass it as true to show the share list as drop down
    leftTitle       - left title string
    rightTitle      - right title string
    entryObjString  - Entry object name (Pass as the string)
    noOfColumns     - No of products wants to show in single row
    doSetEntryPath  - boolean for Sharing
    callback        - Callback function (called this fun after finish all operations)
    pdtMaileridEmail- (Optional)It is seperate mail id for produts
    pdtMaileridSms  - (Optional)It is seperate mail id for produts
    paddingArray - array of padding values to align the products 
    cssParams       - pass the Array for Css [imageCSS,singleProductPanelCSS,titleCSS, leftTitleCSS, rightTitleCSS,
                        labelPanelCSS, labelFontCSS, regPriceCSS, salePriceCSS]
    blogItCallbak - Callback function for blog it
**********************************************************/
function stShowPrdtEntries(elementId, //Array
    entries,
    width,
    height,
    headingHeight,
    isSharingVisible,
    isNotPopupMenu,
    leftTitle,
    rightTitle,
    entryObjString,
    noOfColumns,
    doSetEntryPath,
    callback,
    pdtMaileridEmail,
    pdtMaileridSms,
    paddingArray, // Left, Right, Top, Bottom
    cssParams,
    blogItCallbak)
{
        var imageCSS = 0;
        var singleProductPanelCSS = 1;
        var titleCSS = 2;
        var leftTitleCSS = 3;
        var rightTitleCSS = 4;
        var labelPanelCSS = 5;
        var labelFontCSS = 6;
        var regPriceCSS = 7;
        var salePriceCSS = 8;

        var paddingTop = 0;
        var paddingRight = 1;
        var paddingBottom = 2;
        var paddingLeft = 3;
        var productBwGap = 4;

        var innerContent = ''+
                '<table class="" cellpadding="0" cellspacing="0">'+
                    '<tr>'+
                        '<td class="stHeight25px stBgColorOrange stBorderBottomNone stBorder1pxSolidCCCCCCLRB   '+(cssParams[titleCSS] ? cssParams[titleCSS] : "")+'">'+
                            '<table cellpadding="0" cellspacing="0" style="width:' + width + 'px;height:' + headingHeight + 'px;">'+
                                '<tr>'+
                                    '<td class=" stPaddingLeft14px stHalfWidth  stcolorFFFFFF stFontVerdana stFontSize stTextBold  '+(cssParams[leftTitleCSS] ? cssParams[leftTitleCSS] : "")+'">'+
                                        leftTitle+
                                    '</td>'+
                                    '<td class="stValignRight stHalfWidth stPaddingRight9px stTextAlignRight '+(cssParams[rightTitleCSS] ? cssParams[rightTitleCSS] : "")+'">'+
                                          (rightTitle ? rightTitle : "")+
                                    '</td>'+
                                '</tr>'+
                            '</table>'+
                        '</td>'+
                    '</tr>'+
                    '<tr>'+
                        '<td class="stBorder1pxSolidCCCCCCLRB stBorderTopNone ">'+
                            '<div id="stPdtDiv_'+elementId+'" style="overflow-y: scroll; overflow-x: hidden; width:'+width+'px; height: '+(height - headingHeight)+'px;">'+
                                '<table cellpadding="0" cellspacing="0" style="width:'+(width - SCROLLBAR_WIDTH)+'px;">'+
                                    '<tr>'+
                                        '<td valign="top" style="padding-top:'+paddingArray[paddingTop]+'px;padding-right:'+paddingArray[paddingRight]+'px;padding-bottom:'+paddingArray[paddingBottom]+'px;padding-left:'+paddingArray[paddingLeft]+'px;">'+
                                            '<table cellpadding="0" cellspacing="0" align="left">';

        var productsTotalGap = paddingArray[paddingLeft] + paddingArray[paddingRight] + (paddingArray[productBwGap] * (noOfColumns - 1));
        var singlePanelWidth = (width - SCROLLBAR_WIDTH - productsTotalGap) / noOfColumns;
        var j = 0;
        for(var i = 0; entries && i < entries.length; i++)
        {            
            if(entries[i].entry_mediatype == ST_MEDIA_TYPE_IMAGE)
            {
                var doGivePadding = true;
                if((j % noOfColumns) == 0)
                {
                    innerContent += '<tr>';
                    doGivePadding = false;
                }
                                
                innerContent += ''+
                                (doGivePadding ? '<td style="width:'+paddingArray[productBwGap]+'px;"/>' : '')+
                                '<td class="stSingleProductPanel '+(cssParams[singleProductPanelCSS] ? cssParams[singleProductPanelCSS] : '')+'" style="width:'+singlePanelWidth+'px;" valign="top">'+
                                    '<table cellpadding="0" cellspacing="0" style="width:'+singlePanelWidth+'px;">'+
                                        '<tr>'+
                                            '<td>'+
                                                '<a href="'+entries[i].entry_itemurl1+'" target="_blank">'+
                                                    '<img src="'+(entries[i].entry_entryprops["vc.halficonurl"] ? entries[i].entry_entryprops["vc.halficonurl"] : entries[i].entry_fileurl)+'" class="stProductImagePanel '+(cssParams[imageCSS] ? cssParams[imageCSS] : "")+'"/>'+ // style="width:'+singlePanelWidth+'px;"
                                                '</a>'+
                                            '</td>'+
                                        '</tr>'+
                                        '<tr>'+
                                            '<td class="stLineHeight11 stBgColorWhite '+(cssParams[labelPanelCSS] ? cssParams[labelPanelCSS] : '')+'" >'+
                                                '<a href="'+entries[i].entry_itemurl1+'" class="stFeaturedProdLabelFont'+(cssParams[labelFontCSS] ? cssParams[labelFontCSS] : '')+'" target="_blank">'+
                                                    entries[i].entry_label1+
                                                '</a>'+
                                            '</td>'+
                                        '</tr>'+
                                        ((entries[i].entry_entryprops["pfeed_retailprice"]) ?
                                        ('<tr>'+
                                            '<td class=" stBgColorWhite stRegPriceFont '+ (cssParams[regPriceCSS] ? cssParams[regPriceCSS] : '')+'" >'+
                                                'Reg $'+entries[i].entry_entryprops["pfeed_retailprice"]+
                                            '</td>'+
                                        '</tr>') : "")+
                                        ((entries[i].entry_entryprops["pfeed_saleprice"]) ?
                                        ('<tr>'+
                                            '<td class=" stBgColorWhite stSalePriceFont '+ (cssParams[salePriceCSS] ? cssParams[salePriceCSS] : '')+'" >'+
                                                'Sale $' + entries[i].entry_entryprops["pfeed_saleprice"]+
                                            '</td>') : '')+
                                        '</tr>';
                if(isSharingVisible)
                {
                    innerContent += ''+
                                        '<tr>'+
                                            '<td class="stSharingPanel">'+
                                                '<table cellpadding="0" cellspacing="0">'+
                                                    '<tr>'+
                                                        '<td id="stSharItId_'+entries[i].entry_id+'">'+
                                                        '</td>'+
                                                        '<td id="stSendToPhone_'+entries[i].entry_id+'">'+
                                                            '<img class="stSharingEmailIcon" src="'+VERSION_DIR+'img/email_icon.png"  onclick="sendMessage(stSwfCbkObject, \''+sanitizeStr(entries[i].entry_label1)+'\', \''+sanitizeStr(entries[i].entry_comment)+'\', \''+sanitizeStr(entries[i].entry_fileurl)+'\', \''+entries[i].entry_itemurl1+'\', \''+entries[i].entry_id+'\', false, \''+ ((pdtMaileridEmail && pdtMaileridEmail[campaignidSA]) ? pdtMaileridEmail[campaignidSA] : maileridEmail[campaignidSA]) +'\');" />'+
                                                        '</td>'+
                                                        '<td id="stSendEmail_'+entries[i].entry_id+'">'+
                                                            '<img class="stSharingPhoneIcon" src="'+VERSION_DIR+'img/mobile_icon.png"  onclick="sendMessage(stSwfCbkObject, \''+sanitizeStr(entries[i].entry_label1)+'\', \''+sanitizeStr(entries[i].entry_comment)+'\', \''+sanitizeStr(entries[i].entry_fileurl)+'\', \''+entries[i].entry_itemurl1+'\', \''+entries[i].entry_id+'\', true, \''+ ((pdtMaileridSms && pdtMaileridSms[campaignidSA]) ? pdtMaileridSms[campaignidSA] : maileridSms[campaignidSA])+'\');" />'+
                                                        '</td>'+
                                                    '</tr>'+
                                                '</table>'+
                                            '</td>'+
                                        '</tr>';
                }
                innerContent += ''+
                                    '</table>'+
                                '</td>';                                 

                if(((j + 1) % noOfColumns) == 0)
                {
                    innerContent += '</tr>';
                }

                j++;
            }
        }        
        innerContent += ''+
                                            '</table>'+
                                        '</td>'+
                                    '</tr>'+
                                '</table>'+
                            '</div>'+
                        '</td>'+
                    '</tr>'+
                '</table>';

    if(!stSetInnerHTML(elementId, innerContent))
    {
        if(showAlerts)
        {
            alert(elementId + " is not defined.");
        }
    }

    var errcbk =  function(message)
    {
        if(showAlerts)
        {
            alert("message :"+message);
        }
    }
    
    var localCbk = function()
    {
        var aftercallback = function(result)
        {
            if(result)
            {
                for(var i = 0; entries && i < entries.length; i++)
                {
                    var webUrl = (entries[i].entry_itemurl1 ? entries[i].entry_itemurl1 : siteUrl[campaignidSA]);
                    var shareEl = document.getElementById("stSharItId_"+entries[i].entry_id);
                    if(shareEl)
                    {
                        var shareContent = ssShareItControlElmts(result,
                            '<img id="stSharItId'+entries[i].entry_id+'" class="stShareItImgWH" border="none" align="middle" src="'+VERSION_DIR+'img/shareit.png">',
                            ''+entryObjString+'['+ i + ']',
                            entries[i].entry_id,
                            hostUrl[campaignidSA] + '/mc/templates/common/res/blogging/',                            
                            webUrl,
                            doSetEntryPath,
                            isNotPopupMenu,
                            'stPdtDiv_'+elementId,
                            blogItCallbak ? blogItCallbak :'stShowBlogItPopup'
                            );
                        shareEl.innerHTML = shareContent;
                    }
                }            
            }
            if(callback)
            {
                callback();
            }
        };
        

        var url = '/mc/social?campaign_id=' + campaignidSA +
            '&channel_id=' + channelId + 
            '&X-Skava-Authorization='+auth[campaignidSA]+
            '&op=getshareprops';
        
        jx.load(url, aftercallback, "application/x-www-form-urlencoded", "POST", errcbk);
    }

    if(!ssbloggingURLs && !ssbookmarksURLs)
    {
        ssSkavaShareInit(campaignidSA, channelId, localCbk);
    }
    else
    {
        localCbk();
    }
}

/**********************************************************
    Following are the params to be pass
    =======================
    elementId     - element to set the inner HTML of type String
    entries         - Product entries.
    width           - Table Width
    height          - table Height
    titleH          - title Height
    numCharsPerLine- number of characters to be displayed in a single line
    title           - title of the product
    paddingInfoArr - array of padding values to align the products 
    isSubmittedByVisible    - boolean to show submitted by 
    ratingImagePath      - image path for rating star images
    onClickCallbck        - Callback function (called this fun after finish all operations)
    tableCSS     - CSS properties to be set for the table
    divCSS     - CSS properties to be set for scrollable div to list the products
    titleCSS     - CSS properties to be set for the title
    imgTitleCss     - CSS properties for image title
    CommentCSS     - CSS properties for comments description
    submittedByCSS     - CSS properties for submitted by
    imgDivLine     - CSS properties to draw the bottom line after an entry
**********************************************************/
function stShowListOfImageOrVideo(elementId, //String
    callback,
    entries,//Object Array
    width,//Int
    height,//Int
    titleH,//Int
    numCharsPerLine, //Int
    title,//String
    paddingInfoArr,
    isSubmittedByVisible,
    ratingImagePath,//
    onClickCallbck,//String Function Name
    tableCSS,
    divCSS,
    titleCSS,
    imgTitleCss,
    CommentCSS,
    submittedByCSS,
    imgDivLine
    )
{
    var PADDING_LEFT = (paddingInfoArr && paddingInfoArr[0]) ? paddingInfoArr[0] : 7;
    var PADDING_RIGHT = (paddingInfoArr && paddingInfoArr[1]) ? paddingInfoArr[1] : 7;
    var PADDING_TOP = (paddingInfoArr && paddingInfoArr[2]) ? paddingInfoArr[2] : 0;
    var PADDING_BOTTOM = (paddingInfoArr && paddingInfoArr[3]) ? paddingInfoArr[3] : 7;
    
    var entryIds = new Array();
    var innerContent = ''+
            '<table cellpadding="0" cellspacing="0">'+
                '<tr>'+
                    '<td class="stimageOrVideoListPanel '+(tableCSS ? tableCSS : '')+'" style="width:'+width+'px; height:'+height+'px;">'+
                        '<table class="stFullWidth stFullHeight" cellpadding="0" cellspacing="0">'+
                            '<tr>'+
                                '<td class="stimageOrVideoListPanelHeading '+(titleCSS ? titleCSS : "")+'" style="width:'+width+'px; height:'+titleH+'px;">'+
                                    title+
                                '</td>'+
                            '</tr>'+
                            '<tr>'+
                                '<td class="" align="center" valign="top">'+
                                    '<div class="stimageOrVideoListScroll '+(divCSS ? divCSS : '')+'" style="width:'+(width - (PADDING_LEFT + PADDING_RIGHT) - (divCSS ? 2 : 0))+'px; height: '+(height - titleH - (PADDING_TOP+PADDING_BOTTOM) - (divCSS ? 2 : 0))+'px;">'+
                                    '<table cellpadding="0" cellspacing="0" style="width:'+(width - (SCROLLBAR_WIDTH + (PADDING_LEFT + PADDING_RIGHT)) - (divCSS ? 2 : 0))+'px;">';
    for(var i = 0; entries && i < entries.length; i++)
    {
        entryIds[i] = entries[i].entry_id;
        var isImage = (entries[i].entry_mediatype == ST_MEDIA_TYPE_IMAGE) ? true : false;
        var imgURL = (isImage ? (entries[i].entry_entryprops["vc.halficonurl"] ? entries[i].entry_entryprops["vc.halficonurl"] : entries[i].entry_fileurl) : (entries[i].entry_entryprops["vc.iconurl"] && entries[i].entry_entryprops["vc.iconurl"].indexOf(".png") == -1 ? '/mc/static/common/processvideo.png' : entries[i].entry_entryprops["vc.iconurl"]) );
        innerContent += ''+
                                    '<tr>'+
                                        '<td class="stFullWidth stPadding10 stImageVideoListDivider '+(imgDivLine ? imgDivLine : '')+'">'+
                                            '<table class="stFullWidth" cellpadding="0" cellspacing="0">'+
                                                '<tr>'+
                                                    '<td class="stWidth25p stValignTop">'+
                                                        '<table class="stFullWidth stFullHeight" cellpadding="0" cellspacing="0">'+
                                                            '<tr>'+
                                                                '<td class="stImageOrVideo">'+
                                                                    '<a onclick="'+(onClickCallbck ? onClickCallbck+'('+i+');' : '')+(entries[i].entry_itemurl1 ? "return true;" : "return false;")+'" href="'+(entries[i].entry_itemurl1 ? entries[i].entry_itemurl1 : '#')+'">'+
                                                                        '<img src="'+imgURL+'" class="stImageOrVideo stBorder1" />'+
                                                                    '</a>'+
                                                                '</td>'+
                                                            '</tr>'+
                                                        '</table>'+
                                                    '</td>'+
                                                    '<td class="stWidth75p stTextAlignL stLeftPadding10 stValignTop">'+
                                                        '<table class="stFullWidth" cellpadding="0" cellspacing="0">'+
                                                            '<tr>'+
                                                                '<td class="'+(imgTitleCss ? imgTitleCss : '')+'">'+
                                                                    '<a class="'+(imgTitleCss ? imgTitleCss : '')+'" onclick="'+(onClickCallbck ? onClickCallbck+'('+i+');' : '')+(entries[i].entry_itemurl1 ? "return true;" : "return false;")+'" href="'+(entries[i].entry_itemurl1 ? entries[i].entry_itemurl1 : '#')+'">'+
                                                                        platformGetDisplayText(entries[i].entry_label1, numCharsPerLine)+
                                                                    '</a>'+
                                                                '</td>'+
                                                            '</tr>'+
                                                            '<tr>'+
                                                                '<td class="stTextAlignL'+(CommentCSS ? " "+CommentCSS : "")+'">'+
                                                                    platformDoWhiteSpaceEncode(entries[i].entry_comment, 100, numCharsPerLine)+
                                                                '</td>'+
                                                            '</tr>';
                    if(isSubmittedByVisible)
                    {
                        innerContent += ''+                        
                                                            '<tr>'+
                                                                '<td class="stTextAlignL'+(submittedByCSS ? " "+submittedByCSS : "")+'">'+
                                                                        // TODO: for submited by username
                                                                '</td>'+
                                                            '</tr>';
                    }
                    innerContent += ''+
                                                            '<tr>'+
                                                                '<td class="stTextAlignL">'+
                                                                    '<img id="stavgRating_'+entries[i].entry_id+'"/>'+
                                                                '</td>'+
                                                            '</tr>'+
                                                        '</table>'+
                                                    '</td>'+
                                                '</tr>'+
                                            '</table>'+
                                        '</td>'+
                                    '</tr>';
    }
            innerContent +=     '</table>'+
                            '</div>'+
                        '</td>'+
                    '</tr>'+
                '</table>'+
            '</td>'+
        '</tr>'+
    '</table>';

    if(!stSetInnerHTML(elementId, innerContent))
    {
        if(showAlerts)
        {
            alert(elementId + " is not defined.");
        }
    }

    var stShowRatings = function(avgRatingArray)
    {        
        for(var idx = 0; idx < entryIds.length; idx++)
        {
            var flr = Math.floor(avgRatingArray[idx]);
            var rnd = Math.round(avgRatingArray[idx]);
            var imgEl = document.getElementById("stavgRating_"+entryIds[idx]);
            if(imgEl)
            {
                imgEl.src = ratingImagePath+(flr + (flr == rnd ? "0" : "5"))+'.jpg';
            }
        }

        if(callback)
        {
            callback();
        }
    }
    
    stGetEntryStatsAndComments(ST_ENTRY_STATS_PARAM_SKAVGRATING, entryIds, 0, stShowRatings);
}

/****************************************************************************
    elementId               - element/tag Id to set static Image Panel
    width                   - Full Panel width
    height                  - Full Panel Height
    imagePath               - Image Path 
    textContentHTML         - Text Content to be displayed
    textContentWidthPerc    - Text Content Width in Percentage(%)
    paddingInfoArr           - Padding(left, right, top, bottom) Info for the Text Content
    isBorderVisible         - Border Visibility(true/false)    
    isShowLoading       - set true to show the loading gauge
*****************************************************************************/
function stDisplayStaticImage(elementId, 
    width,
    height,
    imagePath,
    textContentHTML,
    textContentWidthPerc,
    paddingInfoArr,
    textContentCSS,
    isBorderVisible,
    isShowLoading)
{
    var PADDING_LEFT = (paddingInfoArr && paddingInfoArr[0]) ? paddingInfoArr[0] : 0;
    var PADDING_RIGHT = (paddingInfoArr && paddingInfoArr[1]) ? paddingInfoArr[1] : 0;
    var PADDING_TOP = (paddingInfoArr && paddingInfoArr[2]) ? paddingInfoArr[2] : 0;
    var PADDING_BOTTOM = (paddingInfoArr && paddingInfoArr[3]) ? paddingInfoArr[3] : 0;

    var el = document.getElementById(elementId);
    if(el)
    {
        el.style.width = width-(PADDING_LEFT+PADDING_RIGHT);
    }
    
    var innerContentLocal = '';
    var innerContent = ''+
        '<table class="stFullWidth stFullHeight" cellpadding="0" cellspacing="0" style="background: url('+(isShowLoading ? 'stImagePathToBeChanged' : imagePath)+'); background-repeat: no-repeat;">'+
            '<tr>'+
                '<td style=" width:'+(width-(PADDING_LEFT+PADDING_RIGHT))+'px; height:'+(height-(PADDING_TOP+PADDING_BOTTOM))+'px; padding-left:'+PADDING_LEFT+'px; padding-right:'+PADDING_RIGHT+'px; padding-top:'+PADDING_TOP+'px; padding-bottom:'+PADDING_BOTTOM+'px; " class="stStaicImage'+(isBorderVisible ? " stStaicImageBorder" : "")+'">'+
                    (textContentHTML ? 
                        ('<div class="stSetScrollY" style="width:'+(width-(PADDING_LEFT+PADDING_RIGHT))+'px; height:'+(height-(PADDING_TOP+PADDING_BOTTOM))+'px;">'+
                            '<table cellpadding="0" cellspacing="0" style="width:'+(textContentWidthPerc ? textContentWidthPerc + '%;' : (width-(SCROLLBAR_WIDTH + PADDING_LEFT + PADDING_RIGHT)) + 'px;')+'">'+
                                '<tr>'+
                                    '<td class="stFullWidth stPaddingRight9px">'+
                                        textContentHTML+
                                    '</td>'+
                                '</tr>'+
                            '</table>'+
                        '</div>') : 
                    "")+
                '</td>'+
            '</tr>'+
        '</table>';

    if(isShowLoading)
    {
        innerContentLocal = ''+
            '<table class="stFullWidth stFullHeight" cellpadding="0" cellspacing="0" >'+
                '<tr>'+
                    '<td style="vertical-align: middle; text-align: center; width:'+(width-(PADDING_LEFT+PADDING_RIGHT))+'px; height:'+(height-(PADDING_TOP+PADDING_BOTTOM))+'px; padding-left:'+PADDING_LEFT+'px; padding-right:'+PADDING_RIGHT+'px; padding-top:'+PADDING_TOP+'px; padding-bottom:'+PADDING_BOTTOM+'px; " class="stStaicImage'+(isBorderVisible ? " stStaicImageBorder" : "")+'" >'+
                        '<img src="'+VERSION_DIR +'img/loading_anim.gif" />'+
                    '</td>'+
                '</tr>'+
            '</table>';

        var divEl = document.getElementById("stImg2Scale");    
        if(divEl)
        {
            divEl.style.display = "block";
            divEl.innerHTML = '<img src="'+imagePath+'" onload="stSetImage(this, \''+elementId+'\', \'stImg2Scale\', \''+escape(innerContent)+'\', '+stScaleCounter+');" ></img>';
        }
    }

    innerContent = isShowLoading ? innerContentLocal : innerContent;
    if(!stSetInnerHTML(elementId, innerContent))
    {
        if(showAlerts)
        {
            alert(elementId + " is not defined.");
        }
    }
}

/**********************************************************************************************
    imgEl               - Temporary DOM Image Element for Scaling
    elementId           - DOM element Id to set scalled Image
    elementId1          - Container Id for 'imgEl'
    textContent         - text will be displayed on Image (Optional)
    thisScaleCounter    - ScaleCounter value for current Image(It will be updated/incremented) in Client code)
***********************************************************************************************/
function stSetImage(imgEl, elementId, elementId1, textContent, thisScaleCounter)
{
    var el1 = document.getElementById(elementId);
    var el2 = document.getElementById(elementId1);
    if(el1 && thisScaleCounter == stScaleCounter)
    {
        var innerHtml = unescape(textContent).replace(/stImagePathToBeChanged/, imgEl.src);
        el1.innerHTML = innerHtml;
    }
    if(el2)
    {
        el2.style.display = "none";
    }
}

function stSetInnerHTML(elementId, innerContent)
{
    var el = document.getElementById(elementId);
    if(el)
    {
        el.innerHTML = innerContent;
        return true;
    }
    else
    {
        return false;
    }
}

/**********************************************************************
    Following are the params to be pass
    =======================
    elementId - element to set the inner HTML of type String
    width - width of the Upload table of type Int
    height - height of the Upload table of type Int
    tableStyle - background & border properties of Upload table of type String
    tableInnerPadding - padding properties of Upload inner table of type String
    uploadTitleStyle - font, background & border properties of Upload table of type String
    uploadTitleImg - Title image for upload snippet
    uploadTitle - Title of the table (eg: say "PHOTO UPLOAD") of type String
    uploadInfoCss - style properties for upload description, of type String
    uploadInfo - Description about the upload, of type String
    textboxPadding - padding properties of Upload form of type String
    widthTDL - width of left TD of a form of type String
    widthTDR - width of right TD of a form of type String
    fontTDL - font family, color, font weight for left TD of a form of type String
    fontTDR - font family, color, font weight for right TD of a form of type String
    entryLabel - label name for title field
    entryCmt - label name for comment field
    entryItemUrl - label name for item url field
    entryFile - label name for file field
    textAreaSize - text area size
    txtAreaNoCols - no of columns for comment textarea
    terms - string to be placed under terms and conditions, should be of full description
    uploadImgUrl - upload button image url
    callbak - callbak function to be called onclicking upload button
    isLeftAlign - set true to align the upload button in left, and false to align right
    errFont - font family, color, font weight to show the error text of type String
*****************************************************************************************/
function stUploadForm(elementId, width, height, tableStyle, tableInnerPadding, uploadTitleStyle, uploadTitleImg, uploadTitle, uploadInfoCss, uploadInfo, textboxPadding, widthTDL, widthTDR, fontTDL, fontTDR, entryLabel, entryCmt, entryItemUrl, entryFile, textAreaSize, txtAreaNoCols, terms, uploadImgUrl, callbak, isLeftAlign, errFont)
{
    var commentsHtml = ''+
    '<table class="stBorder1 '+(tableStyle ? tableStyle : '')+'" cellpadding="0" cellspacing="0" style="'+(width ? 'width:'+width+'px; ' : '')+(height ? 'height:'+height+'px;' : '')+'">'+
        '<tr>'+
            '<td class="stFullWidth stValignTop stPadding5 '+(tableInnerPadding ? tableInnerPadding : '')+'">'+
                '<table class="stFullWidth" cellpadding="0" cellspacing="0">'+
                    '<tr>'+
                        '<td class="stFullWidth stCmtsPageIdTD '+(uploadTitleStyle ? uploadTitleStyle : '')+'">'+
                            (uploadTitleImg ? '<img src="'+uploadTitleImg+'"/>' : (uploadTitle ? uploadTitle : ''))+
                        '</td>'+
                    '</tr>';
                    if(uploadInfoCss && uploadInfo)
                    {
                        commentsHtml +='<tr><td class="stFullWidth '+uploadInfoCss+'">'+uploadInfo+'</td></tr>';
                    }
                    commentsHtml +=
                    '<tr>' +
                        '<td class="stFullWidth '+(textboxPadding ? textboxPadding : '')+'">' +
                            '<form id="_idformcreateentry">' +
                                '<table class="stFullWidth" cellpadding="0" cellspacing="0" align="left">';
                                if(entryLabel)
                                {
                                    commentsHtml +=
                                    '<tr>' +
                                        '<td class="'+(widthTDL ? widthTDL : '')+' '+(fontTDL ? fontTDL : '')+'" align="left">'+entryLabel+'</td>' +
                                        '<td class="'+(widthTDR ? widthTDR : '')+'" align="left"><input class="'+(fontTDR ? fontTDR : '')+'" type="text" name="entry_label1" id="stentry_label1" onclick="stclearErrorText(); return false;" maxlength="50" value="" onclick=""/></td>' +
                                    '</tr>';
                                }
                                if(entryItemUrl)
                                {
                                    commentsHtml +=
                                    '<tr>' +
                                        '<td class="'+(widthTDL ? widthTDL : '')+' '+(fontTDL ? fontTDL : '')+'" align="left">'+entryItemUrl+'</td>' +
                                        '<td class="'+(widthTDR ? widthTDR : '')+' '+(textboxPadding ? textboxPadding : '')+'" align="left"><input class="'+(fontTDR ? fontTDR : '')+'" type="text" name="entry_itemurl1" id="stentry_itemurl1" maxlength="50" value="" onclick=""/></td>' +
                                    '</tr>';
                                }
                                if(entryCmt)
                                {
                                    commentsHtml +=
                                    '<tr>' +
                                        '<td class="'+(widthTDL ? widthTDL : '')+' '+(fontTDL ? fontTDL : '')+'" align="left">'+entryCmt+'</td>' +
                                        '<td class="'+(widthTDR ? widthTDR : '')+' '+(textboxPadding ? textboxPadding : '')+'" align="left"><textarea class="'+(textAreaSize ? textAreaSize : '')+'" cols="'+(txtAreaNoCols ? txtAreaNoCols : '25')+'" rows="4" name="entry_comment" id="stentry_comment" onclick=""></textarea></td>'+
                                    '</tr>';
                                }
                                commentsHtml +=
                                '</table>' +
                            '</form>' +
                        '</td>'+
                    '</tr>'+
                    '<tr>' +
                        '<td class="stFullWidth '+(textboxPadding ? textboxPadding : '')+'">' +
                            '<form id="_idformuploadentry" method="POST" enctype="multipart/form-data" target="upload_target">' +
                                '<table class="stFullWidth" cellpadding="0" cellspacing="0" align="left">' +
                                    '<tr>' +
                                        '<td colspan="2">' + 
                                            '<input type=\'hidden\' name=\'key\'></input>' + 
                                            '<input type=\'hidden\' name=\'AWSAccessKeyId\'></input>' +
                                            '<input type=\'hidden\' name=\'acl\'></input>' +
                                            '<input type=\'hidden\' name=\'success_action_redirect\'></input>' +
                                            '<input type=\'hidden\' name=\'policy\'></input>' +
                                            '<input type=\'hidden\' name=\'signature\'></input>' +
                                            '<input type=\'hidden\' name=\'Content-Type\'></input>' +
                                        '</td>' +
                                    '</tr>' +
                                    // the file input has to be at the end as per http://developer.amazonwebservices.com/connect/entry.jspa?externalID=1434
                                    '<tr>';
                                    if(entryFile)
                                    {
                                        commentsHtml +=
                                        '<td class="'+(widthTDL ? widthTDL : '')+' '+(fontTDL ? fontTDL : '')+'" align="left">'+entryFile+'</td>' +
                                        '<td id="stFileTD" class="'+(widthTDR ? widthTDR : '')+'" align="left"><input class="'+(fontTDR ? fontTDR : '')+'" type="file" id="stentry_file" name="file" value=""/></td>';
                                    }
                                        commentsHtml +=
                                        '<iframe id="upload_target" name="upload_target" src="" class="stUploadTarget" onload="stCheckUploadError()"></iframe>'+                                                        
                                    '</tr>' +
                                    '<tr>' +
                                        '<td class="stFullWidth" colspan="2">'+
                                            '<table class="stFullWidth" cellpadding="0" cellspacing="0">';
                                            if(terms)
                                            {
                                                commentsHtml +=
                                                '<tr><td id="stTerms" class="'+(fontTDL ? fontTDL : '')+'" align="left">'+terms+'</td></tr>';
                                            }
                                                commentsHtml +=
                                                '<tr>' +
                                                    '<td class="'+(textboxPadding ? textboxPadding : '')+'" align="'+(isLeftAlign ? 'left' : 'right')+'">'+
                                                        '<input type="image" value = "submit" src="'+(uploadImgUrl ? uploadImgUrl : '')+'" onclick="'+(callbak ? callbak+'(\'_idformcreateentry\', \'_idformuploadentry\'); return false;' : '')+'" />' +
                                                    '</td>' +
                                                '</tr>' +
                                            '</table>' +
                                        '</td>' +
                                    '</tr>' +
                                '</table>' +
                            '</form>' +
                        '</td>'+
                    '</tr>'+
                    '<tr>' +
                        '<td id="stErrMsg" class="'+(errFont ? errFont : '')+'" align="left"/>' +
                    '</tr>' +
                '</table>'+
            '</td>'+
        '</tr>'+
    '</table>';

    if(!stSetInnerHTML(elementId, commentsHtml))
    {
        if(showAlerts)
        {
            alert(elementId + " is not defined.");
        }
    }
}

function stDoCreate(idFormCreateEntry, idForm)
{  
    var uploadForm1 = document.getElementById(idForm);
    var imgName = (uploadForm1 ? platformTrim(uploadForm1.file.value) : '').toLowerCase();

    if(imgName.length > 0)
    {
        var stUploadingAnim = document.getElementById('stUploadingAnim');
        var isImage = (imgName.lastIndexOf(".png") != -1 || imgName.lastIndexOf(".gif") != -1 ||imgName.lastIndexOf(".jpeg") != -1 || imgName.lastIndexOf(".jpg") != -1);        
        var isVideo = (imgName.lastIndexOf(".avi") != -1 ||imgName.lastIndexOf(".wmv") != -1 || imgName.lastIndexOf(".mov") != -1 || imgName.lastIndexOf(".mp4") != -1);
        
        if(!(isImage || isVideo))
        {
            stSetInnerHTML("stErrMsg", ST_UPLOAD_MEDIA_INVALID);
        }
        else if(!stUploadingAnim)
        {
            stSetInnerHTML("stErrMsg", '<img id="stUploadingAnim" align="center" alt="Uploading..." src="' + VERSION_DIR +'img/uploadGauge.gif" />');

            var url = "/mcadmin/campaign/upload"; 
            
             // set this in mcadmin, settings -> properties -> Allow Guest Upload to true
             // pass isguest is true to allow anonymous user
            var suffix = "?campaign_id="+campaignidSA+"&resptype=inline"+
                        "&skipentryid=true&retentryid=true"+
                        "&retentryidcallbckfn=stimgVideoAfterUpload"+
                        "&maxsize=" + ((isImage) ? ST_IMAGE_MAX_UPLOAD_SIZE : ST_VIDEO_MAX_UPLOAD_SIZE)+
                        "&isguest=true";
            
            var uploadForm = document.getElementById(idFormCreateEntry);
     
            if(uploadForm)
            {
                suffix += "&" + urlEncode({"entry_itemurl1": (uploadForm.entry_itemurl1 ? uploadForm.entry_itemurl1.value : ''), 
                    "entry_label1": (uploadForm.entry_label1 ? uploadForm.entry_label1.value : ''),
                    "entry_comment": (uploadForm.entry_comment ? uploadForm.entry_comment.value : '')});
            }
            // function call to http.js
            doAWSUpload(idForm, url + suffix, sterrImgVideoAfterUpload);
        }
    }
    else
    {
        stSetInnerHTML("stErrMsg", ST_UPLOAD_MENDATORY);
    }
}

function stCheckUploadError()
{
    var isUploadError = false;
    
    try
    {
        var iframeContent = document.getElementById("upload_target").contentWindow.document.body.innerHTML;
    }
    catch(e)
    {
        isUploadError = true;
    }
    
    if(isUploadError)
    {
        stClearFormData();
        stSetInnerHTML("stErrMsg", ST_UPLOAD_ERROR)
    }
}

function stimgVideoAfterUpload(entryId, mediaType)
{  
    try
    {
        stSetInnerHTML("stErrMsg", (entryId ? ST_UPLOAD_SUCCESS : ST_UPLOAD_ERROR));
        stClearFormData();
        stRefreshEntriesAfterUpload(); // definition is in client
    }
    catch(e)
    {   
        stSetInnerHTML("stErrMsg", ST_UPLOAD_ERROR_NETWORK);
    }
}    

function sterrImgVideoAfterUpload(responseCode, responseMsg)
{
    var errorMsg = document.getElementById("stErrMsg");        
    if(responseMsg.indexOf("partner") != -1)
        responseMsg = ST_UPLOAD_ERROR_CAMPAIGN_PRIVATE;
    stSetInnerHTML("stErrMsg", responseMsg);
}    

function stClearFormData()
{
    var stupload_label = document.getElementById("stentry_label1");
    var stupload_itemurl = document.getElementById("stentry_itemurl1");
    var stupload_comment = document.getElementById("stentry_comment");

    if(stupload_label)
    {
        stupload_label.value = '';
    }
    
    if(stupload_itemurl)
    {
        stupload_itemurl.value = '';
    }
    
    if(stupload_comment)
    {
        stupload_comment.value = '';
    }
    
    stSetInnerHTML("stFileTD", '<input type="file" id="stentry_file" name="file" value=""/>');
}

function stclearErrorText()
{
    stSetInnerHTML("stErrMsg", '');
}

function stSetEntryDescription(eltId, isScroll, description, descW, descH, numChars)
{
    var html = "";
    if(description || description == '')
    {
        if(isScroll)
        {
            html = '<div class="stSetScrollY" style="width:'+descW+'px; height:'+descH+'px;">' +
                        platformDoWhiteSpaceEncode(unescape(description), null, ST_SINGLE_LINE_DESCRIPTION_MAX_LENGTH) +
                    '<div>';
        }
        else
        {
            html = platformDoWhiteSpaceEncode(description, numChars, ST_SINGLE_LINE_DESCRIPTION_MAX_LENGTH)+'&nbsp;';

            if(description.length > numChars)
            {
               html +=  '<a href="#" onclick="stSetEntryDescription(\''+eltId+'\','+true+', \'' + escape(description) +'\','+descW+','+descH+','+numChars+'); return false;"><font class="stFontSize11 stFontArial stTextBold stcolorE21E2D stDecorationUnderline">more</font></a>';
            }
        }
        stSetInnerHTML(eltId, html);
    }
}

/**********************************************************
    Following are the params to be pass
    =======================
    prdtEntry         - Product entry.
    elementId     - element to set the inner HTML of type String
    tableSize           - width & height of the table
    imgOrPlayerArea           - width & height of the image or player area
    imgOrPlayerSize           - width & height of the image or player 
    titleH   - entry title height
    titleNumChars - number of characters to display
    descH   - entry description height
    descNumChars - number of characters to display
    imgUrl - image url
    prdtEntryObjString  - Entry object name (Pass as the string)
    swfCallback - swf callback function name
    callback        - Callback function (called this fun after finish all operations)
    showLoading  - set true to show loading gauge
    showTitleAndDesc - set true to show the title and description under the entry image or video
    pdtParams  - video object params //NOTE: should Pass the flv url.   eg. entryObj.entry_entryprops["vc.videourl.flv"]
    shareThisLabel - label of sharing icons (eg: share it, share this)
    shareThisLabelW   - share this label width
    pdtDisplayCss - CSS properties for product list
    blogItCallbak - Callback function for blog it
**********************************************************/
function stVideoOrImageDisplay(prdtEntry, //Object,
    elementId, //String
    tableSize, // Int Array
    imgOrPlayerArea, // Int Array
    imgOrPlayerSize, // Int Array
    titleH, // title height
    titleNumChars, // num characters to display in title section
    descH, // description height
    descNumChars, // num characters to display in description section
    imgUrl, //String
    prdtEntryObjString, // string
    swfCallback, //String
    callback, //string
    showLoading, //Boolean
    showTitleAndDesc, //Boolean
    pdtParams, //Array
    shareThisLabel, //String
    shareThisLabelW, //Int
    pdtDisplayCss, //Strin
    blogItCallbak
    )
{
    currentEntryId = prdtEntry.entry_id;
    var tabWidth = (tableSize && tableSize[0] ? tableSize[0] : 0);
    var tabHeight = (tableSize && tableSize[1] ? tableSize[1] : 0);
    var width = (imgOrPlayerArea && imgOrPlayerArea[0] ? imgOrPlayerArea[0] : 0);
    var height = (imgOrPlayerArea && imgOrPlayerArea[1] ? imgOrPlayerArea[1] : 0);
    var isImage = (prdtEntry.entry_mediatype == ST_MEDIA_TYPE_IMAGE) ? true : false;
    var innerHtml = ''+
        '<table width="'+tabWidth+'px" height="'+tabHeight+'px" cellspacing="0" cellpadding="0">'+
            '<tr>'+
                '<td id="stEntryPanel" class="'+(isImage ? 'stBorder1 ' : 'stBgColorBlack ')+'stFullWidth stLineHeight0 '+(pdtDisplayCss ? pdtDisplayCss : '')+'" align="center" valign="middle" style="width:'+ width +'px; height:'+ height +'px;" />';
    if(isImage)
    {
        if(showLoading)
        {
            innerHtml += '<img id="stLoadingAnim" src="'+imgUrl+'loading_anim.gif"/>';
        }
        else
        {
            innerHtml += '<img src="'+ prdtEntry.entry_fileurl +'" style="width:'+ width +'px; height:'+ height +'px;" />';
        }
    }
    else
    {
        if(!swfobject.getFlashPlayerVersion().major ||swfobject.getFlashPlayerVersion().major < 9)
        { 
            innerHtml += "<font class='stcolorFFFFFF'>Flash Player version 9 or greater is required. <a class='rwFlashClickHere stcolorFFFFFF' target='_blank' href='http://get.adobe.com/flashplayer'>Click here</a> to install it.</font>";
        }
        else
        {
            if(pdtParams[3] && pdtParams[3].indexOf(".flv") == -1)
            {
                var flashVar = "videourl=" + hostUrl[campaignidSA] + '/mc/static/common/processvideo.flv';
                var appendFileUrl = flashVar ;

                if(showAlerts)
                {
                    alert("Old flashVar : " + pdtParams[3] + "\t New flashVar : "+flashVar);
                }
                pdtParams[3] = flashVar;
                pdtParams[4] = appendFileUrl;
            }
            innerHtml += getPlayerHtml("_idMediaPlayer0",
                        (imgOrPlayerSize && imgOrPlayerSize[0] ? imgOrPlayerSize[0] : 0),
                        (imgOrPlayerSize && imgOrPlayerSize[1] ? imgOrPlayerSize[1] : 0),
                        pdtParams[0], // player url
                        pdtParams[1], // fileParam
                        pdtParams[2], // isIcon
                        pdtParams[3], // flashvars
                        pdtParams[4], // appendFileUrl
                        pdtParams[5], // updateprogress
                        pdtParams[6] // allowFullScreen
                        );   
        }
    }
    
    innerHtml += ''+                    
                '</td>'+
            '</tr>'+
            '<tr>'+
                '<td class="stFullWidth" valign="top" style="height:'+(tabHeight - height)+'px;">'+
                    '<table class="stFullWidth" cellspacing="0" cellpadding="0" border="0" align="left">';
    if(showTitleAndDesc & isImage)                        
    {
        innerHtml += ''+
                        '<tr>'+
                            '<td class="stFullWidth" style="height:'+(titleH + descH)+'px;">'+
                                '<table class="stFullWidth stFullHeight" cellspacing="0" cellpadding="0">'+
                                    '<tr>'+
                                        '<td class="stFullWidth stFontFamilyArialHelverticaSansSerif stFontSize12 stcolorBlack stTextBold" style="height:'+titleH+'px" valign="top">'+
                                            platformGetDisplayText(prdtEntry.entry_label1, titleNumChars) +
                                        '</td>'+                                        
                                    '</tr>'+
                                    '<tr>'+
                                        '<td id="stentryDesc" class="stFullWidth stFontFamilyArialHelverticaSansSerif stFontSize11 stcolorBlack" style="height:'+descH+'px" valign="top">'+
                                        '</td>'+
                                    '</tr>'+
                                '</table>'+
                            '</td>'+
                        '</tr>';
    }

    var remH = tabHeight - height - titleH - descH;
    if(isImage)
    {
        innerHtml += ''+
                        '<tr>'+
                            '<td height="'+(remH * 40 / 100)+'px">'+
                                '<table class="stFullWidth stFullHeight" cellspacing="0" cellpadding="0">'+
                                    '<tr>'+
                                        '<td id="stEntryAvgRate" class="stHalfWidth stFullHeight"/>'+
                                        '<td id="reportAbuse" class="stHalfWidth stFullHeight">'+
                                            '<a href="#" onclick="emailAbuseReport('+prdtEntry.entry_id+', \''+escape(htmlEncode(prdtEntry.entry_comment))+'\'); return false;">'+
                                                '<img src="'+ imgUrl +'reportalert_icon.png"/>'+
                                            '</a>'+
                                        '</td>'+
                                    '</tr>'+
                                '</table>'+
                            '</td>'+
                        '</tr>';
    }

    innerHtml += ''+
                        '<tr>'+
                            '<td height="'+(isImage ? (remH * 60 / 100) : remH)+'px">'+
                                '<table class="stFullWidth stFullHeight" cellspacing="0" cellpadding="0">'+
                                    '<tr>'+
                                        '<td width="'+shareThisLabelW+'px" class="stFullHeight stFontFamilyArialHelverticaSansSerif stFontSize12 stcolorBlack stTextBold">'+
                                            shareThisLabel+
                                        '</td>'+
                                        '<td width="'+(tabWidth - shareThisLabelW)+'px" class="stFullHeight" id="stShareThisId">'+
                                        '</td>'+
                                    '</tr>'+
                                '</table>'+
                            '</td>'+
                        '</tr>'+
                    '</table>'+
                '</td>'+
            '</tr>'+
        '</table>';

    var el = document.getElementById(elementId);
    if(el)
    {
        el.innerHTML = innerHtml;
        if(document.getElementById("stentryDesc"))
        {
            stSetEntryDescription('stentryDesc', false, prdtEntry.entry_comment, tabWidth, descH, descNumChars);
        }
    }

    var divEl = document.getElementById("stImg2Scale");    
    if(isImage && showLoading && divEl)
    {
        divEl.style.display = "block";
        divEl.innerHTML = '<img src="'+prdtEntry.entry_fileurl+'" onload="stCallSetScaledImg(this, \'stEntryPanel\');" ></img>';
    }

    if(isImage)
    {
        var stShowRatings = function(result)
        { 
            var rating_det = result.rating_details;       
            var skAvgRate = rating_det.entrystats_skavgrating;
            var noOfRater = rating_det.entrystats_sknumraters;
            
            var flr = Math.floor(skAvgRate);
            var rnd = Math.round(skAvgRate);
            var stEntryAvgRateEl = document.getElementById("stEntryAvgRate");

            if(stEntryAvgRateEl)
            {
                stEntryAvgRateEl.innerHTML = ''+
                                        '<table class="stFullWidth stFullHeight" cellspacing="0" cellpadding="0">'+
                                            '<tr>'+
                                                '<td class="stFontFamilyArialHelverticaSansSerif stFontSize11 stcolor666666 stTextBold" width="80px">Overall Rating&nbsp;</td>'+
                                                '<td width="56px">'+
                                                    '<img id="stavgRating1_'+prdtEntry.entry_id+'" class="stBorderNone" src="'+ imgUrl +'star' + (flr + (flr == rnd ? '0' : '5'))+'.jpg"/>'+
                                                '</td>'+
                                                '<td id="stNumRater" class="stFontFamilyArialHelverticaSansSerif stFontSize11 stcolor666666 stTextBold">&nbsp;('+ noOfRater +')</td>'+
                                            '</tr>'+
                                        '</table>';
            }

            // function call to skavasharing.js
            ssSkavaShareInit(campaignidSA, channelId, stShowShareInfo, [prdtEntry, prdtEntryObjString, swfCallback, callback, (blogItCallbak ? blogItCallbak : 'stShowBlogItPopup') ]);
        }
        
        var entryStasKeys =  ST_ENTRY_STATS_PARAM_SKAVGRATING
            + "," + ST_ENTRY_STATS_PARAM_SKNUMRATERS;
        stGetEntryStatsAndComments(entryStasKeys,
            prdtEntry.entry_id,
            0,
            stShowRatings);
    }
    else
    {
        // function call to skavasharing.js
        ssSkavaShareInit(campaignidSA, channelId, stShowShareInfo, [prdtEntry, prdtEntryObjString, swfCallback, callback, (blogItCallbak ? blogItCallbak : 'stShowBlogItPopup') ]);
    }
}

function stShowShareInfo(params)
{
    ssloadSkavaShare(campaignidSA,
        channelId, 
        null,
        '',
        ' stDecorationNone stFontFamilyArialHelverticaSansSerif stFontSize11 stcolorBlack ',
        ' stValignMiddle ',
        document.getElementById('stShareThisId'),
        '',
        '',
        hostUrl[campaignidSA] + '/mc/templates/common/res/blogging/',
        hostUrl[campaignidSA] + '/mc/templates/common/res/bookmark/',
        true,
        params[3], // callback function
        params[0].entry_id, // entry id
        parantPath,
        params[1], // entry object string
        '',
        '',
        false,
        hostUrl[campaignidSA] + '/mc/templates/common/res/',
        params[0], // entry object
        params[2], // swf name
        true,
        'stShareIconLabelFont',
        params[4] // blog it callback
        );
}

function stCallSetScaledImg(element, imgId)
{
    stSetScaledImg(element, imgId, element.width, element.height) ;
}

function stSetScaledImg(element, imgId, width, height) 
{    
    var imageWidth = width;
    var imageHeight = height;
    
    var imageRatio = imageWidth / imageHeight;
    var scaleRatio = stScaleWidth / stScaleHeight;
    
    var dispHeight = 0; 
    var dispWidth = 0;
    if (scaleRatio < imageRatio)
    {
       dispHeight = Math.round(stScaleWidth / imageRatio);
       dispWidth = stScaleWidth;
    } 
    else 
    {
       dispWidth = Math.round(stScaleHeight * imageRatio);
       dispHeight = stScaleHeight;
    }

    var imgEl = document.getElementById(imgId);
    if(imgId && imgEl)
    {
        imgEl.innerHTML = '<img width="'+dispWidth+'px" height="'+dispHeight+'px" src="'+element.src+'"/>';
        element.style.display = "none";
    }

    return true;
}

function stShowBlogItPopup(textAreaContent)
{
    var html='<table cellpadding="0" cellspacing="0" align="center" class="stBorder1 stFormPodcastDimension stTopPadding10 stBgColorWhite">'
                        +'<tr>'
                            +'<td class="stLeftPadding20 stFontSize14 stFontVerdana stTextBold stcolorBlack">'
                                   +'Cut and paste this in your Blog'
                            +'</td>'
                        +'</tr>'
                        +'<tr>'
                            +'<td class="stTopPadding10" align="center">'
                                   +'<textarea id="blogContents"  rows="4" class="stBlogitTextArea stBorder1pxColor6b6b6b stSetScrollY">'+textAreaContent+'</textarea>'
                            +'</td>'
                        +'</tr>'
                        +'<tr>'
                            +'<td class="stFullWidth stTextAlignR stHeight25px stTopPading3 stPaddingRight20 stLineHeight0" valign="top">'
                               +'<a href="javascript:false" onclick="hidePopWin(); return false;"><img src="'+VERSION_DIR+'img/button_close.png"/></a>'
                            +'</td>'
                        +'</tr>'
                    +'</table>';
    showPopWin(html, 461, 190, null, false);
}

/***********************************************************
    Following are the params to be passed
    =========================
    elementId    - pass element id in which to display the snippet of type String
    title1 - pass title 1 of the snippet of type String
    title2 - pass title 2 of the snippet of type String
    textUserPrompt1 - pass textUserPrompt1 to prompt user input of type String
    emailToTextPrompt - pass emailToTextPrompt label for the email to text area of type String
    emailFromTextPrompt - pass emailFromTextPrompt label for the email from text area of type String
    emailMsgTextPrompt - pass emailMsgTextPrompt label for the email message text areaof type String
    emailMsgText -  pass the default string for message.
    toTextAreaID - pass toTextAreaID for the email to Textarea Id of type String
    fromTextAreaID - pass fromTextAreaID for the email from Textarea Id of type String
    msgTextAreaID - pass msgTextAreaID for the email message Textarea Id of type String
    facebookId - pass facebookId to show the facebook ids of type String
    errorTextId - pass the error text area of type String
    actionSendTo - pass actionSendTo perform send action of type String
    cssParams - pass the Array for 
    Css [titleImagePadding, titleImage, title2Font, title3Font, importContactsLinksWidth, yahooLinkCSS
            aolLinkCSS, gmailLinkCSS, msnLinkCSS, fbLinkCSS, textUserPrompt1, labelTextfont, 
            emailToTextAreaDimensions, textAreaFont, emailFromTextAreaDimensions, 
            emailMessageTextAreaDimensions, sendImageCSS, facebookIdfont]
********************************************************************/
function stGetAddFriends(
    elementId,//String
    title1, //String
    title2, //String   
    textUserPrompt1, //String
    emailToTextPrompt, //String
    emailFromTextPrompt, //String
    emailMsgTextPrompt, //String
    emailMsgText, //String
    toTextAreaID, //String
    fromTextAreaID, //String
    msgTextAreaID, //String 
    facebookId, //String
    errorTextId, //String
    actionSendTo, //String
    actionBackTo, //String
    cssParams,//String (class names with spaces)
    clearMsgWhileFocus //boolean
    )
{
    var titleImagePadding = 0;
    var titleImage = 1;
    var title2Font = 2;
    var title3Font = 3;
    var importContactsLinksWidth = 4;
    var yahooLinkCSS = 5;
    var aolLinkCSS = 6;
    var gmailLinkCSS = 7;
    var msnLinkCSS = 8;
    var fbLinkCSS = 9;
    var textUserPrompt1css = 10;
    var labelTextfont = 11;
    var emailToTextAreaDimensions = 12;
    var textAreaFont = 13;
    var emailFromTextAreaDimensions = 14;
    var emailMessageTextAreaDimensions = 15;
    var sendImageCSS = 16;
    var facebookIdfont = 17;
    var titleImageH = 18;
    var errorAlertCSS = 19;
    var backImageCSS = 20;
    var imgSrcSend = 21;
    var imgSrcBack = 22;
    
    
    var innerHtml = 
                '<table cellpadding="0" cellspacing="0">'+                    
                    '<tr>'+
                        '<td class="'+stGetValue(cssParams, titleImagePadding, '')+'">'+
                             '<table cellpadding="0" cellspacing="0">'+
                                '<tr>'+
                                    '<td class="'+stGetValue(cssParams, titleImageH, '')+'">'+
                                        '<img src="'+stGetValue(cssParams, titleImage, '')+'"/>'+
                                    '</td>'+
                                '</tr>'+
                                '<tr>'+
                                    '<td class="stHeight2px">'+
                                    '</td>'+
                                '</tr>'+    
                                '<tr>'+
                                    '<td class="'+stGetValue(cssParams, title2Font, '')+'">'+
                                        title1 +
                                    '</td>'+
                                '</tr>'+
                                '<tr>'+
                                    '<td class="stHeight2px">'+
                                    '</td>'+
                                '</tr>'+    
                                '<tr>'+
                                    '<td class="'+stGetValue(cssParams, title3Font, '') +'">'+
                                        title2 +
                                    '</td>'+
                                '</tr>'+
                                '<tr>'+
                                    '<td class="stHeight2px">'+
                                    '</td>'+
                                '</tr>'+    
                                
                                '<tr>'+
                                    '<td>'+
                                        '<table cellpadding="0" cellspacing="0" class="'+stGetValue(cssParams, importContactsLinksWidth, '')+'">'+
                                            '<tr>'+
                                                '<td class="stTextAlignL">'+
                                                    '<input type="button" onclick="ymailClick(); return false;" class="'+stGetValue(cssParams, yahooLinkCSS, '') +' stCursorHand"></input>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'+                                    
                                                    '<input type="button" onclick="aolClick(); return false;" class="'+stGetValue(cssParams, aolLinkCSS, '')+' stCursorHand"></input>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'+
                                                    '<input type="button" onclick="gmailClick(); return false;" class="'+stGetValue(cssParams, gmailLinkCSS, '')+' stCursorHand"></input>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'+
                                                    '<input type="button" onclick="msnClick(); return false;" class="'+stGetValue(cssParams, msnLinkCSS, '')+' stCursorHand"></input>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'+
                                                    '<input type="button" onclick="fbClick(); return false;" class="'+stGetValue(cssParams, fbLinkCSS, '')+' stCursorHand"></input>'+
                                                '</td>'+
                                            '</tr>'+
                                        '</table>'+
                                    '</td>'+
                                '</tr>'+
                                '<tr>'+
                                    '<td class="stHeight2px">'+
                                    '</td>'+
                                '</tr>'+    
                                
                                '<tr>'+
                                    '<td class="'+stGetValue(cssParams, textUserPrompt1css, '') +'">'+
                                        textUserPrompt1 +
                                    '</td>'+
                                '</tr>'+  
                                '<tr>'+
                                    '<td class="stHeight2px">'+
                                    '</td>'+
                                '</tr>'+    
                                
                            '</table>'+
                        '</td>'+ 
                    '</tr>'+                    
                    '<tr>'+
                        '<td class="stPaddingLeft5">'+
                            '<table cellpadding="0" cellspacing="0">'+
                                '<tr>'+
                                    '<td class="stTextAlignRight stValignTop">'+
                                        '<font class="'+stGetValue(cssParams, labelTextfont, '') +'">'+emailToTextPrompt+'</font>'+
                                    '</td>'+
                                    '<td>&nbsp;</td>'+
                                    '<td>'+
                                        '<textarea name="emailids" id="'+toTextAreaID+'" rows="5" class="'+stGetValue(cssParams, emailToTextAreaDimensions, '')+' stBorderNone '+stGetValue(cssParams, textAreaFont, '')+'"></textarea>'+
                                    '</td>'+
                                '<tr>'+
                                '<tr>'+
                                    '<td class="stHeight5px"></td>'+
                                '</tr>'+ 
                                '<tr>'+
                                    '<td class="stTextAlignRight stValignTop">'+
                                        '<font class="'+ stGetValue(cssParams, labelTextfont, '') +'">'+emailFromTextPrompt+'</font>'+
                                    '</td>'+
                                    '<td>&nbsp;</td>'+
                                    '<td>'+
                                        '<input type="text" id="'+fromTextAreaID+'" class="'+stGetValue(cssParams, emailFromTextAreaDimensions, '')+' stBorderNone '+stGetValue(cssParams, textAreaFont, '')+'">'+
                                    '</td>'+
                                '<tr>'+
                                '<tr>'+
                                    '<td class="stHeight5px"></td>'+
                                '</tr>'+                                 
                                '<tr>'+
                                    '<td class="stTextAlignRight stValignTop">'+
                                        '<font class="'+ stGetValue(cssParams, labelTextfont, '') +'">'+emailMsgTextPrompt+'</font>'+
                                    '</td>'+
                                    '<td>&nbsp;</td>'+
                                    '<td>'+
                                        '<textarea name="message" '+( clearMsgWhileFocus ? 'onfocus="stOnMsgFocus(this,\''+escape(emailMsgText)+'\' )" onblur="stOnMsgBlur(this,\''+escape(emailMsgText)+'\' )"' : '')+' id="'+msgTextAreaID+'" rows="5" class="'+stGetValue(cssParams, emailMessageTextAreaDimensions, '')+' stBorderNone '+stGetValue(cssParams, textAreaFont, '')+'"></textarea>'+
                                    '</td>'+
                                '</tr>'+                                
                            '</table>'+
                        '</td>'+
                    '</tr>'+
                    '<tr>'+
                        '<td class="stHeight5px"></td>'+
                    '</tr>'+
                    '<tr>'+
                        '<td>'+
                            '<div id="'+facebookId+'" class="'+ stGetValue(cssParams, facebookIdfont, '') +'"></div>'+
                        '</td>'+
                    '</tr>'+
                    '<tr>'+
                        '<td class="stHeight5px"></td>'+
                    '</tr>'+                    
                    '<tr>'+
                        '<td align="center">'+
                            '<table cellpadding="0" cellspacing="0">'+ 
                                '<tr>'+
                                    '<td>'+
                                        '<input type="image" value="" src="'+stGetValue(cssParams, imgSrcBack, '')+'" class="'+stGetValue(cssParams, backImageCSS, '')+'" onclick="'+actionBackTo+'">'+
                                    '</td>'+
                                    
                                    '<td class="stWidth10px"></td>'+
                                
                                    '<td>'+
                                        '<input type="image" value="" src="'+stGetValue(cssParams, imgSrcSend, '')+'" class="'+stGetValue(cssParams, sendImageCSS, '')+'" onclick="'+actionSendTo+'">'+
                                    '</td>'+
                                '</tr>'+
                            '</table>'+
                        '</td>'+
                    '</tr>'+
                    '<tr>'+
                        '<td class="stHeight5px"></td>'+
                    '</tr>'+ 
                    '<tr>'+
                        '<td id="'+errorTextId+'" class="'+stGetValue(cssParams, errorAlertCSS, '')+'"/>'+
                    '</tr>'+
                    '</table>';

    var el = document.getElementById(elementId);
    
    if(el)
    {
        el.innerHTML = innerHtml;
    }      

    var stGetAddFriendsMsgId = document.getElementById(msgTextAreaID);
    if(emailMsgText && stGetAddFriendsMsgId)
    {
        stGetAddFriendsMsgId.value = emailMsgText;
    }
    
}

function stOnMsgFocus(element, msgStr)
{
    var msgValue = platformTrim(element.value);
    msgStr = unescape(msgStr);
    msgValue = escape(msgValue)
    msgValue = msgValue.replace(/%0D/g, '');
    msgValue = unescape(msgValue).replace(/\n/g, ' ');
    msgStr = msgStr.replace(/\n/g, ' ');
    
    if(msgValue == msgStr)
    {
        element.value = "";
    }
}


function stOnMsgBlur(element, msgStr)
{
    if(element && platformTrim(element.value).length == 0)
    {
        element.value = unescape(msgStr);
    }
}

/***********************************************************
    Following are the params to be passed
    =========================
    elementId    - pass element id in which to display the snippet of type String
    names - pass email names of type String
    contacts - pass emaiil ids of type String
    title1 - pass title1 for user input of type String
    selectAllText - pass select all label of type String
    errorTextId - error text id
    contactsNamesMaxLength - pass contacts maxlength type int
    contactsEmailMaxLength - pass contactsEmail MaxLength of type int
    actionAddContacts - pass the add button action of type string.
    cssParams - pass the Array for 
    Css [snippetDimensions, title1Font, selectAllFont, contactsTableAreaWidth, contactsTableDimensions,
            contactsTableDimensions, contactsSelctionWidth, contactsTextFont, addContactsButtonDim, addContactsButton, addContactsError]
********************************************************************/
function stGetAddFriendsList(
    elementId,//String
    names, //cs String
    contacts, //cs String
    title1, //String
    selectAllText, //String   
    errorTextId, //String
    contactsNamesMaxLength, //int
    contactsEmailMaxLength, //int    
    actionAddContacts, //String
    cssParams//String (class names with spaces)
    )
{
    var snippetDimensions = 0;
    var titleTdCSS = 1;
    var title1Font = 2;   
    var selectAllCSS = 3;
    var selectAllFont = 4;
    var contactsTableAreaWidth = 5;
    var contactsTableDimensions = 6;
    var contactsSelctionDimensions = 7;
    var contactsSelctionWidth = 8;
    var contactsTextFont = 9;
    var addContactsButtonDim = 10;
    var addContactsButton = 11;
    var addContactsError = 12;
    
    var innerHtml = 
                 '<table border="0" cellpadding="0" cellspacing="0" class="'+ stGetValue(cssParams, snippetDimensions, '') +'">'+    
                    '<tr>'+
                        '<td class="'+ stGetValue(cssParams, titleTdCSS, '') +'">'+
                            '<table border="0" cellpadding="0" cellspacing="0">'+
                                '<tr>'+
                                    '<td class="'+ stGetValue(cssParams, title1Font, '') +'">'+title1+'</td>'+
                                '</tr>'+
                            '</table>'+
                        '</td>'+
                    '</tr>'+
                    '<tr>'+
                        '<td class="'+ stGetValue(cssParams, selectAllCSS, '') +'">'+
                            '<table border="0" cellpadding="0" cellspacing="0">'+
                                '<tr>'+
                                    '<td><input type="checkbox" id="Selectall" onclick="stSelectAll(\''+contacts+'\')" value="" /></td>'+
                                    '<td class="'+ stGetValue(cssParams, selectAllFont, '') +'">'+selectAllText+'</td>'+
                                '</tr>'+
                            '</table>'+
                        '</td>'+
                    '</tr>'+
                    '<tr>'+
                        '<td class="'+ stGetValue(cssParams, contactsTableAreaWidth, '') +'">'+                
                                '<table border="0" cellpadding="0" cellspacing="0" class="'+ stGetValue(cssParams, contactsTableDimensions, '') +'"  align="center">'+
                                    '<tr>'+
                                        '<td>'+
                                            '<div class="'+ stGetValue(cssParams, contactsSelctionDimensions, '') +'">'+    
                                                '<table class="'+ stGetValue(cssParams, contactsSelctionWidth, '') +'">';
                                                
                                                    for(var i = 0; i < contacts.length; i++)
                                                    {
                                                            innerHtml += '<tr>'+
                                                                '<td align="left" valign="middle"><input type="checkbox" name="contactsSelectionList" id="contacts'+i+'" /></td>'+
                                                                '<td class="'+ stGetValue(cssParams, contactsTextFont, '') +'" align="left" valign="middle">'+unescape(names[i]).substring(0, contactsNamesMaxLength)+'</td>'+
                                                                '<td class="'+ stGetValue(cssParams, contactsTextFont, '') +'" align="left" valign="middle">'+unescape(contacts[i]).substring(0, contactsEmailMaxLength)+'</td>'+
                                                            '</tr>';
                                                    }

                                                  innerHtml+= '</table>'+
                                                '</div>'+  
                                            '</td>'+
                                        '</tr>'+
                                    '</table>'+                    
                            '</td>'+
                        '</tr>'+
                        '<tr>'+
                            '<td class="'+ stGetValue(cssParams, addContactsButtonDim, '') +'"><input type="button" onclick="'+actionAddContacts+'" class="'+ stGetValue(cssParams, addContactsButton, '') +'"></input></td>'+
                        '</tr>'+
                        '<tr>'+
                            '<td id="'+errorTextId+'" class="'+stGetValue(cssParams, addContactsError, '')+'"></td>' +
                        '</tr>'+
                '</table>';

    var el = document.getElementById(elementId);
    
    if(el)
    {
        el.innerHTML = innerHtml;
    }                  
}

function stSelectAll(contacts)
{
    var contactsArray = contacts.split(",");
    var selectAllRadio = document.getElementById("Selectall");

    if(selectAllRadio)
    {
        for(var i = 0; i < contactsArray.length; i++)
        {
            var contactsRadio = document.getElementById("contacts"+i);
            
            if(contactsRadio)
            {
                contactsRadio.checked= selectAllRadio.checked;
            }
        }
    }
}

function stGetValue(params, index, defaultValue)
{
    if(params && params[index] && platformTrim(params[index]).length > 0)
    {
        return params[index];
    }
    else
    {
        return defaultValue;
    }
}


