﻿// JScript File
function DoAnalyze()
{
     var UserName = document.getElementById("txtSearch").value;
     if(UserName != null && UserName !="")
     {
        var GetUrl="ms.aspx?userId=" + UserName;
        window.location = GetUrl;
     }
}

function ShowFeedBack()
{
    GSFN.show();
}

function doSearch()
{
    var UserName = document.getElementById("txtSearch").value;
     if(UserName != null && UserName !="")
     {
        document.getElementById('htmlUserId').setAttribute('value',UserName);
        GetUser(UserName);
        
        getButtons('A');
        IconClicked('userTimeLine','A_1');
     }
}

function IconClicked(chartType,captionHtmlId)
{
    var userId = document.getElementById('htmlUserId').getAttribute('value'); 
    var start = document.getElementById('htmlStartDate').getAttribute('value');
    var end = document.getElementById('htmlEndDate').getAttribute('value');   
    
    SetChartType(chartType);    
    SetGraphTitleName(captionHtmlId);
    HighlightIconCaption(captionHtmlId);    
    if(chartType=="followersWorldDensity")
        ret = GetMap(chartType,"flashcontent");
    else
        ret = GetChart(chartType,userId,start,end);
    
    var ret1 = GetChartMessages(chartType,'-1',userId,start,end);
    var ret2 = GetMatchingAds();
    
    //var ret2 = GetChartSummery(chartType,'0',userId,start,end);
    return(true);
}


function GetUser(userId)
{
    ret = ChartService.GetUser(userId, OnCompleteGetUser, OnErrorGetUser);
    return(true);
}

function OnCompleteGetUser(args)
{    
    document.getElementById('userPic').setAttribute('src',args[0]);
    document.getElementById('userName').innerHTML = " " + args[1];
    document.getElementById('userFollowing').innerHTML = " " + args[2];
    document.getElementById('userFollowers').innerHTML = " " + args[3];
    document.getElementById('userLocation').innerHTML = " " + args[4];
    document.getElementById('userBio').innerHTML = " " + args[5];  
    
}
function OnErrorGetUser(args)
{    
    document.getElementById('flashcontent').innerHTML = document.getElementById('ErrorMessageTwitter').innerHTML;
}

function setLoader(contentID)
{
var loaderTable = document.getElementById('ajax-loader').innerHTML;
loaderTable = loaderTable.replace("display: none","display: block") 
document.getElementById(contentID).innerHTML=loaderTable;
    //document.getElementById(contentID).innerHTML="<img src='images/ajax-loader.gif' />";
}

function GetPicture(contentID,userIdToFind) 
{        
    //alert(userId);
    var userId = document.getElementById('htmlUserId').getAttribute('value'); 
    ret = ChartService.GetPicture(contentID,userId,userIdToFind, OnCompletePictures, OnTimeOut, OnError);
    return(true);
}
function OnCompletePictures(args)
{
    //alert(args);
    document.getElementById(args[0]).setAttribute('src',args[1]);
}

function GetAllFriends() 
{        
    setLoader('flashcontent');
    var sortBy="";
    var chartType = document.getElementById('currentChartType').getAttribute('value');    
    var userId = document.getElementById('htmlUserId').getAttribute('value');    
    ret = ChartService.GetAllFriends(chartType,sortBy,userId,document.getElementById('htmlStartDate').getAttribute('value'),document.getElementById('htmlEndDate').getAttribute('value'), OnCompleteAllFriends, OnErrorGetAllFriends);
    return(true);
}
function OnErrorGetAllFriends(args)
{
    document.getElementById('flashcontent').innerHTML = args; //document.getElementById('ErrorMessageGeneral').innerHTML;
}

function GetChartTop10() 
{    
    var chartType = document.getElementById('currentChartType').getAttribute('value');    
    setLoader('flashcontent');
    var userId = document.getElementById('htmlUserId').getAttribute('value'); 
    
    if(chartType=="followersWorldDensity")
        ret = GetMap(chartType,"flashcontent");
    else   
        ret = GetChart(chartType,userId,document.getElementById('htmlStartDate').getAttribute('value'),document.getElementById('htmlEndDate').getAttribute('value'));
    return(true);
}


function GetChartMessages(chartType,massegeType,userId,startDate,endDate)
{
    setLoader("MessagesContent");
    //ret = ChartService.GetMessages(chartType,massegeType,userId,startDate,endDate, OnCompleteAllMesages, OnTimeOut, OnError);
    ret = ChartService.GetMessages(chartType,massegeType,userId,startDate,endDate, OnCompleteAllMesages,OnErrorAllMesages);
    
    ret2 = GetChartSummery(chartType,massegeType,userId,startDate,endDate);
    
    if(massegeType!='-1')
        var ret3 = GetMatchingAds();
    //return(true);
}

function GetChartSummery(chartType,massegeType,userId,startDate,endDate)
{
    setLoader("summeryContent");
    //ret = ChartService.GetChartSummery(chartType,massegeType,userId,startDate,endDate, OnCompleteSummery, OnTimeOut, OnError);
    ret = ChartService.GetChartSummery(chartType,massegeType,userId,startDate,endDate, OnCompleteSummery,OnErrorSummery);
    //return(true);
}
function OnCompleteSummery(args)
{
    //alert(args);
    document.getElementById('summeryContent').innerHTML = args;
}

function OnErrorSummery(args)
{
    //alert(args);
    document.getElementById('summeryContent').innerHTML = args; //document.getElementById('ErrorMessageGeneral').innerHTML;
}

function SetChartType(chartType)
{
    document.getElementById('currentChartType').setAttribute('value',chartType);
}

function GetChart(chartType, userId, start, end) 
{    
    
    setLoader("flashcontent");
    
    ret = ChartService.GetChart(chartType, userId, start, end, OnComplete, OnErrorGetChart);
    
    return(true);
}

function OnComplete(args) 
{
    var gen = args[0];
    //var so = new SWFObject("flashObjs/ampie.swf", "ampie", "520", "400", "8", "#FFFFFF");
    var so = new SWFObject(gen[0], gen[1], gen[2], gen[3], gen[4], gen[5]);
    //so.addVariable("chart_settings", encodeURIComponent("<settings><data_type>csv</data_type><pie><radius>130</radius><inner_radius>0</inner_radius><height>20</height><angle>45</angle></pie><animation><start_time>2</start_time><start_effect>strong</start_effect><pull_out_time>1.5</pull_out_time></animation><data_labels><radius>-50</radius><text_color>#FFFFFF</text_color><show><![CDATA[{title}: {percents}%]]></show></data_labels><legend><enabled>false</enabled></legend><labels><label><x>0</x><y>30</y><align>center</align><text_size>15</text_size><text><![CDATA[<b>Data and settings directly from html example</b>]]></text></label></labels></settings>"));
    so.addVariable("chart_settings", encodeURIComponent(args[1]));
    //so.addVariable("chart_data", encodeURIComponent("Yes;45;false;CC33FF\nSeldom;35;false;6666FF\nNo;20;false;FFCC00"));
    so.addVariable("chart_data", encodeURIComponent(args[2]));
    //so.write("flashcontent");
    so.write(args[3]);
}

function OnCompleteMessages(args)
{
    //alert(args);
    document.getElementById('MessagesContent').innerHTML = args;
}


function doAllMessagesPaging(direction)
{    
    if(direction>0)
        paginationMessagesPosition++; 
    else
        paginationMessagesPosition--; 
    //alert(paginationPosition);

    if(pagesMessages!=null && paginationMessagesPosition>-1 && paginationMessagesPosition<pagesMessages.length)
        document.getElementById('MessagesContent').innerHTML = pagesMessages[paginationMessagesPosition];
   else
   {
    // restore prev position
    if(direction>0)
        paginationMessagesPosition--; 
    else
        paginationMessagesPosition++;
   }
}

var pagesMessages = null;
var paginationMessagesPosition=0;
function OnCompleteAllMesages(args)
{    
    //alert("1");
    pagesMessages = args;
    //alert("2");
    paginationMessagesPosition=0;
    //alert("3");
    document.getElementById('MessagesContent').innerHTML = args[0];
    //alert("4");
}
function OnErrorAllMesages(args)
{
    document.getElementById('MessagesContent').innerHTML = args; // document.getElementById('ErrorMessageGeneral').innerHTML;    
}
function OnErrorGetChart(args)
{
    document.getElementById('flashcontent').innerHTML = args; // document.getElementById('ErrorMessageGeneral').innerHTML;    
}

function doAllFriendsPaging(direction)
{    
    //alert(paginationPosition);
    //alert(direction);
    //var val = eval(paginationPosition + direction);
    if(direction>0)
        paginationFriendsPosition++; 
    else
        paginationFriendsPosition--; 
    //alert(paginationPosition);

    if(pagesFriends!=null && paginationFriendsPosition>-1 && paginationFriendsPosition<pagesFriends.length)
        document.getElementById('flashcontent').innerHTML = pagesFriends[paginationFriendsPosition];
       
}

var pagesFriends = null;
var paginationFriendsPosition=0;
function OnCompleteAllFriends(args)
{    
    //alert("1");
    pagesFriends = args;
    //alert("2");
    paginationFriendsPosition=0;
    //alert("3");
    document.getElementById('flashcontent').innerHTML = args[0];
    //alert("4");
}


function GetMap(chartType,contentID) 
{    
    SetChartType(chartType);
    setLoader(contentID);
    var userId = document.getElementById('htmlUserId').getAttribute('value');    
    ret = ChartService.GetMap(chartType,userId, OnCompleteMaps, OnErrorGetChart);
    return(true);
}

function OnCompleteMaps(args) 
{
    var gen = args[0];
    //var so = new SWFObject("flashObjs/ampie.swf", "ampie", "520", "400", "8", "#FFFFFF");
    var so = new SWFObject(gen[0], gen[1], gen[2], gen[3], gen[4], gen[5]);
    //so.addVariable("chart_settings", encodeURIComponent("<settings><data_type>csv</data_type><pie><radius>130</radius><inner_radius>0</inner_radius><height>20</height><angle>45</angle></pie><animation><start_time>2</start_time><start_effect>strong</start_effect><pull_out_time>1.5</pull_out_time></animation><data_labels><radius>-50</radius><text_color>#FFFFFF</text_color><show><![CDATA[{title}: {percents}%]]></show></data_labels><legend><enabled>false</enabled></legend><labels><label><x>0</x><y>30</y><align>center</align><text_size>15</text_size><text><![CDATA[<b>Data and settings directly from html example</b>]]></text></label></labels></settings>"));
    so.addVariable("map_settings",encodeURIComponent(args[1]));
    //so.addVariable("chart_data", encodeURIComponent("Yes;45;false;CC33FF\nSeldom;35;false;6666FF\nNo;20;false;FFCC00"));
    so.addVariable("map_data",encodeURIComponent(args[2]));
    //so.write("flashcontent");
    so.write(args[3]);
}

function GetMessageRtInfo(contentID,tweetID,tweetDate)
{
    var userId = document.getElementById('htmlUserId').getAttribute('value');    
    ret = ChartService.GetMessageRtInfo(contentID,userId,document.getElementById('htmlStartDate').getAttribute('value'),document.getElementById('htmlEndDate').getAttribute('value'),tweetDate,tweetID, OnCompleteRtInfo, OnErrorRtInfo);
    return(true);
}

function GetMessageRtMessages(tweetID,tweetDate)
{
    var userId = document.getElementById('htmlUserId').getAttribute('value');    
    ret = ChartService.GetMessageRtMessages(userId,document.getElementById('htmlStartDate').getAttribute('value'),document.getElementById('htmlEndDate').getAttribute('value'),tweetDate,tweetID, OnCompleteAllFriends, OnErrorGetAllFriends);
    return(true);
}


function OnCompleteRtInfo(args)
{
    //alert(args[1] + " " + args[2]);
    
    var id = args[0] + "_RT";
    document.getElementById(id).innerHTML = args[1];
    
    id = args[0] + "_RE";
    if(args.length > 3)
    {
        document.getElementById(id).innerHTML = args[2] + " | " + args[3] + " | " + args[4];        
    }
    else
    {        
        document.getElementById(id).innerHTML = args[2];
    }
}
function OnErrorRtInfo(args)
{
    
}


function GetConversation(converID)
{
    var userId = document.getElementById('htmlUserId').getAttribute('value');    
    ret = ChartService.GetConversation(converID,userId, OnCompleteAllFriends,OnErrorGetAllFriends);
    return(true);
}

function OnCompleteConversation(args)
{
    document.getElementById('flashcontent').innerHTML=args;
}

function ShowHelp(helpPanelId, helpId)
{
    document.getElementById(helpPanelId).innerHTML = document.getElementById(helpId).innerHTML; 
}

 function ShowData(ButtonToShow) 
 {
     var IconBt = ButtonToShow; 
     alert(IconBt);
 }
 
 
 
//change the submenu buttons
 function getButtons(MenuNumber) 
 {    
    var MainButtonsString = "A:B:C:D:E:F";
    var arMainButtons = MainButtonsString.split(":");


    var i = 0;
    for (i = 0; i < arMainButtons.length; i++) {
        var Div = "buttonsHolder" + arMainButtons[i];
        var MainBt = "BT" + arMainButtons[i]; // change main button text color
        
        
        if (arMainButtons[i]== MenuNumber) {
            document.getElementById(Div).style.display = "block";
            document.getElementById(Div).style.width = "993px";

            document.getElementById(MainBt).style.color = "#FFCC00"; //main button

        } else {
            document.getElementById(MainBt).style.color = "white"; //main button
            document.getElementById(Div).style.display = "none";
        }
    }

 }

function SetGraphTitleName(htmlCaptionId)
{
    var GraphNameTitleHtmlID = htmlCaptionId + "_Name";
    document.getElementById('GraphNameTitle').innerHTML = document.getElementById(GraphNameTitleHtmlID).innerHTML;

}

function HighlightIconCaption(htmlCaptionId)
{
    var tmpAr = htmlCaptionId.split("_");
    
    for (i = 1; i < 10; i++) 
    {
        var id = tmpAr[0] + "_" + i;
        
        var element = document.getElementById(id);
        
        if(element != null)
            element.style.color = "white";
        else
            break;
    }
        
    document.getElementById(htmlCaptionId).style.color = "#FFCC00"; 
}

// advetisments
function GetMatchingAds()
{
    var userId = document.getElementById('htmlUserId').getAttribute('value');
    var ip = document.getElementById('UserIpAddr').getAttribute('value');
    
    //working    
    //ret = AdsService.GetAds(4,userId,ip, OnCompleteGetMatchingAds);
//    var time = new Date().getTime();
//    alert(time);
    // new ads with slider
    ret = AdsService.GetAdsSlider(4,userId,ip, OnCompleteGetMatchingAdsSlider);
    return(true);
}

function OnCompleteGetMatchingAdsSlider(args)
{
    for (i = 0; i < 3; i++) 
    {
        var adValue = args[i];
        var sliderNum = i+1;
        var id = "fu";
        
        var tmpID = id + "_pic_" + sliderNum;
        document.getElementById(tmpID).setAttribute('src',adValue[1]);
        
        tmpID = id + "_lt_" + sliderNum;
        document.getElementById(tmpID).innerHTML=adValue[4];
        
        tmpID = id + "_loc_" + sliderNum;
        document.getElementById(tmpID).innerHTML=adValue[3];
        
        tmpID = id + "_link_" + sliderNum;
        document.getElementById(tmpID).innerHTML=adValue[5];
        document.getElementById(tmpID).setAttribute('href',adValue[5]);
        
        tmpID = id + "_bio_" + sliderNum;
        document.getElementById(tmpID).innerHTML=adValue[6];
        
        tmpID = id + "_fol_" + sliderNum;
        document.getElementById(tmpID).innerHTML=adValue[7];
        
        tmpID = id + "_up_" + sliderNum;
        document.getElementById(tmpID).innerHTML=adValue[8];
        
        tmpID = id + "_folToday_" + sliderNum;
        document.getElementById(tmpID).innerHTML=adValue[9];
        
        tmpID = id + "_folGained_" + sliderNum;
        document.getElementById(tmpID).innerHTML=adValue[9];
        
        tmpID = id + "_twun_" + sliderNum;
        document.getElementById(tmpID).innerHTML = "@" + adValue[0];
        document.getElementById(tmpID).setAttribute('href',adValue[2]);
        
        tmpID = "slider" + sliderNum;
        featuredcontentslider.init({
            id: tmpID,  //id of main slider DIV
            contentsource: ["inline", ""],  //Valid values: ["inline", ""] or ["ajax", "path_to_file"]
            toc: "#increment",  //Valid values: "#increment", "markup", ["label1", "label2", etc]
            nextprev: ["", ""],  //labels for "prev" and "next" links. Set to "" to hide.
            revealtype: "click", //Behavior of pagination links to reveal the slides: "click" or "mouseover"
            enablefade: [true, 0.2],  //[true/false, fadedegree]
            autorotate: [true, 6000],  //[true/false, pausetime]
            onChange: function(previndex, curindex){  //event handler fired whenever script changes slide
                //previndex holds index of last slide viewed b4 current (1=1st slide, 2nd=2nd etc)
                //curindex holds index of currently shown slide (1=1st slide, 2nd=2nd etc)
            }
        })
        
        featuredcontentslider.jumpTo(tmpID, 1)
    }
    
    previndex=3;
    curindex=1;
    
    if(args.length==4)
    {        
        var adValue = args[3]
        
        tmpID = "fu_fu_pic";
        document.getElementById(tmpID).setAttribute('src',adValue[0]);
        
        tmpID = "fu_fu_name";
        document.getElementById(tmpID).innerHTML = adValue[1];
        
        tmpID = "fu_fu_tn";
        document.getElementById(tmpID).innerHTML = adValue[2];
        
        
        featuredcontentslider.init({
                id: "slider4",  //id of main slider DIV
                contentsource: ["inline", ""],  //Valid values: ["inline", ""] or ["ajax", "path_to_file"]
                toc: "#increment",  //Valid values: "#increment", "markup", ["label1", "label2", etc]
                nextprev: ["", ""],  //labels for "prev" and "next" links. Set to "" to hide.
                revealtype: "click", //Behavior of pagination links to reveal the slides: "click" or "mouseover"
                enablefade: [true, 0.2],  //[true/false, fadedegree]
                autorotate: [true, 6000],  //[true/false, pausetime]
                onChange: function(previndex, curindex){  //event handler fired whenever script changes slide
                    //previndex holds index of last slide viewed b4 current (1=1st slide, 2nd=2nd etc)
                    //curindex holds index of currently shown slide (1=1st slide, 2nd=2nd etc)
                }
            })
     }
     
     //document.getElementById('AdsContent').innerHTML = document.getElementById('AdsContent1').innerHTML;
     document.getElementById('AdsContent').style.display = "block";
     
    //document.getElementById('AdsContent').innerHTML=args;    
}

function OnCompleteGetMatchingAds(args)
{
    document.getElementById('AdsContent').innerHTML=args;    
}
function OnErrorGetMatchingAds(args)
{
    
}


// reports functions
//function getReport()
// {
//    var userId = document.getElementById('htmlUserId').getAttribute('value'); 
//    var start = document.getElementById('htmlStartDate').getAttribute('value');
//    var end = document.getElementById('htmlEndDate').getAttribute('value');
//     
//    ret = ReportsService.GetDailyReport(userId,start,end, OnCompleteGetReport);
//    return(true);
// }
 
 function GetReportByDate()
 { 
    var userId = document.getElementById('htmlUserId').getAttribute('value'); 
    var date = document.getElementById('htmlDateFromCalender').value ;
    var checkDate = document.getElementById('htmlCheckDate').getAttribute('value');
        
    if(date != checkDate)
    {
        //alert("going to bring " + date);
        document.getElementById('htmlCheckDate').setAttribute('value',date);
        ret = ReportsService.GetReportByDate(userId, date, OnCompleteGetReport);
        
    }
    return(true);
 }
 
 
 function OnCompleteGetReport(args)
 { 
    //alert("length " + args.length);
    
    for (i = 0; i < args.length; i++) 
    {
        var tsMain=i;
        tsMain++;
        for (j = 0; j < args[i].length; j++) 
        {       
            var tsInner=j;
            tsInner++;
            
            var prefix = "TS";
                      
            if(tsMain==1)
                prefix = "TS0";
                               
            var id = prefix + tsMain + tsInner;
            
            //alert(id);
            
            document.getElementById(id).innerHTML = args[i][j];
     
        }    
    }         
 }
 
function showHelp(Id) {
//alert("hi im help")
//activate popup
//with help
}

function getReportsDateRange()
{
    var userId = document.getElementById('htmlUserId').getAttribute('value'); 
    var start = document.getElementById('htmlStartDate').getAttribute('value');
    var end = document.getElementById('htmlEndDate').getAttribute('value');
     
    ret = ReportsService.getReportsDateRange(userId,start,end, OnCompleteGetReportsDateRange);
    return(true);
}

function OnCompleteGetReportsDateRange(args)
{
    DatesHash["start"] = args[0];
    DatesHash["end"] = args[args.length-1];
    
    for (i = 0; i < args.length; i++) 
    {
        DatesHash[args[i]] = true;
    }
    
    CreateCalander();
    GetReportByDate();
}

function getStartDate()
{
    return DatesHash["start"];
}

function getEndDate()
{
    return DatesHash["end"];
}

var DatesHash = new Object();
var LEFT_CAL = null;
function CreateCalander()
{
    LEFT_CAL = Calendar.setup({
        cont: "cont",
        weekNumbers: false,
        selectionType: Calendar.SEL_MULTIPLE,
        showTime: false,
        fdow: 0,
        min: getStartDate(),
        max: getEndDate(),
        disabled : function(date) {
            date = Calendar.dateToInt(date);
            return HasNoStats(date);
        },        
        onSelect: function() {
            var date = Calendar.intToDate(this.selection.get());
            document.getElementById("Date1").value = Calendar.printDate(date, "%B %d, %Y");
            document.getElementById('htmlDateFromCalender').setAttribute('value',Calendar.printDate(date, "%e-%o-20%y"));             
            GetReportByDate();
        }


        // titleFormat: "%B %Y"
    })  
    
    var date = Calendar.parseDate(document.getElementById('htmlCheckDate').getAttribute('value'), false)
    document.getElementById("Date1").value = Calendar.printDate(date, "%B %d, %Y");
    document.getElementById('htmlDateFromCalender').setAttribute('value',Calendar.printDate(date, "%e-%o-20%y"));
}

function HasNoStats(date)
{
    if(DatesHash[date] == true)
        return false;
              
    return true;
}