﻿var cft = 1;
function Pager_Load(PageNumber, top) {
    CurrentPage = PageNumber;

    if (top == 0)
        cft = 0;

    LoadCurrentPage();
}

function Pager_Back(top) {
    if (CurrentPage == 1)
        return;

    if (top == 0)
        cft = 0;

    CurrentPage--;
    LoadCurrentPage();
}

function Pager_Forward(top) {
    if (CurrentPage == PageCount)
        return;

    if (top == 0)
        cft = 0;

    CurrentPage++;
    LoadCurrentPage();
}

var reviewXMLHttp = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("MSXML2.XMLHTTP.3.0");
function LoadCurrentPage() {
    var PageSize = 10;
    var StartIndex = 1 + (CurrentPage - 1) * PageSize;

    try {
        reviewXMLHttp.abort();
        var URL = "Async_PlaceReviews.aspx?StartIndex=" + StartIndex + "&nocache=" + Date();
        reviewXMLHttp.open("GET", URL, true);
        reviewXMLHttp.onreadystatechange = function() {
            if (reviewXMLHttp.readyState == 4 && reviewXMLHttp.status == 200) {
                var arrReviews = reviewXMLHttp.responseXML.documentElement.getElementsByTagName("Review");
                LoadReviewList(arrReviews);
                Pager_RefreshButtons();
                if (cft == 0)
                    window.location = '#reviewtitle';

                cft = 1;
            }
        }
        reviewXMLHttp.send(null);
    }
    catch (e) {
        alert("Lütfen internet bağlantınızı kontrol ediniz: " + e);
        return;
    }
}

function deleteReview(ReviewId) {
    if (!confirm("Bu yorumunuzu silmek istediğinizden emin misiniz?"))
        return;

    var deleteXMLHttp = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("MSXML2.XMLHTTP.3.0");
    try {
        deleteXMLHttp.abort();
        var URL = "Async_PlaceReviews_Delete.aspx?id=" + ReviewId + "&nocache=" + Date();
        deleteXMLHttp.open("GET", URL, true);
        deleteXMLHttp.onreadystatechange = function() {
            if (deleteXMLHttp.readyState == 4 && deleteXMLHttp.status == 200) {

                window.location.reload(true);

            }
        }
        deleteXMLHttp.send(null);
    }
    catch (e) {
        alert("Lütfen internet bağlantınızı kontrol ediniz: " + e);
        return;
    }
}

function LoadReviewList(arr) {
    var sb = new StringBuilder();
    for (var i = 0; i < arr.length; i++) {
        sb.append(CreateReviewItem(arr[i]));
    }
    var placereviews = document.getElementById("placereviews");
    placereviews.innerHTML = sb.toString();
}

function GetMonthName(index) {
    if (index == 1)
        return "Ocak";
    else if (index == 2)
        return "Şubat";
    else if (index == 3)
        return "Mart";
    else if (index == 4)
        return "Nisan";
    else if (index == 5)
        return "Mayıs";
    else if (index == 6)
        return "Haziran";
    else if (index == 7)
        return "Temmuz";
    else if (index == 8)
        return "Ağustos";
    else if (index == 9)
        return "Eylül";
    else if (index == 10)
        return "Ekim";
    else if (index == 11)
        return "Kasım";
    else if (index == 12)
        return "Aralık";
}

function CreateReviewItem(obj) {

    var ReviewId = 0;
    if (obj.getElementsByTagName("Id")[0].firstChild != null)
        ReviewId = obj.getElementsByTagName("Id")[0].firstChild.nodeValue;

    var ReviewTitle = "";
    if (obj.getElementsByTagName("ReviewTitle")[0].firstChild != null)
        ReviewTitle = obj.getElementsByTagName("ReviewTitle")[0].firstChild.nodeValue;

    var ReviewBody = "";
    if (obj.getElementsByTagName("ReviewBody")[0].firstChild != null)
        ReviewBody = obj.getElementsByTagName("ReviewBody")[0].firstChild.nodeValue;

    var RowNumber = 0;
    if (obj.getElementsByTagName("RowNumber")[0].firstChild != null)
        RowNumber = obj.getElementsByTagName("RowNumber")[0].firstChild.nodeValue;

    var ReviewDate = '';
    if (obj.getElementsByTagName("ReviewDate")[0].firstChild != null)
        ReviewDate = obj.getElementsByTagName("ReviewDate")[0].firstChild.nodeValue;

    var UserId = 0;
    if (obj.getElementsByTagName("UserId")[0].firstChild != null)
        UserId = obj.getElementsByTagName("UserId")[0].firstChild.nodeValue;

    var PlaceId = 0;
    if (obj.getElementsByTagName("PlaceId")[0].firstChild != null)
        PlaceId = obj.getElementsByTagName("PlaceId")[0].firstChild.nodeValue;

    var Rating = 0;
    if (obj.getElementsByTagName("Rating")[0].firstChild != null)
        Rating = obj.getElementsByTagName("Rating")[0].firstChild.nodeValue;

    var PlaceName = "";
    if (obj.getElementsByTagName("PlaceName")[0].firstChild != null)
        PlaceName = obj.getElementsByTagName("PlaceName")[0].firstChild.nodeValue;

    var ReviewsCount = 0;
    if (obj.getElementsByTagName("ReviewsCount")[0].firstChild != null)
        ReviewsCount = obj.getElementsByTagName("ReviewsCount")[0].firstChild.nodeValue;

    var ProvinceName = "";
    if (obj.getElementsByTagName("ProvinceName")[0].firstChild != null)
        ProvinceName = obj.getElementsByTagName("ProvinceName")[0].firstChild.nodeValue;

    var CityName = "";
    if (obj.getElementsByTagName("CityName")[0].firstChild != null)
        CityName = obj.getElementsByTagName("CityName")[0].firstChild.nodeValue;

    var LogoFileName = "";
    if (obj.getElementsByTagName("LogoFileName")[0].firstChild != null)
        LogoFileName = obj.getElementsByTagName("LogoFileName")[0].firstChild.nodeValue;

    var ReviewYear = 0;
    if (obj.getElementsByTagName("ReviewYear")[0].firstChild != null)
        ReviewYear = obj.getElementsByTagName("ReviewYear")[0].firstChild.nodeValue;

    var ReviewMonth = 0;
    if (obj.getElementsByTagName("ReviewMonth")[0].firstChild != null)
        ReviewMonth = obj.getElementsByTagName("ReviewMonth")[0].firstChild.nodeValue;

    var ReviewDay = 0;
    if (obj.getElementsByTagName("ReviewDay")[0].firstChild != null)
        ReviewDay = obj.getElementsByTagName("ReviewDay")[0].firstChild.nodeValue;

    var ReviewHour = 0;
    if (obj.getElementsByTagName("ReviewHour")[0].firstChild != null)
        ReviewHour = obj.getElementsByTagName("ReviewHour")[0].firstChild.nodeValue;

    var ReviewMinute = 0;
    if (obj.getElementsByTagName("ReviewMinute")[0].firstChild != null)
        ReviewMinute = obj.getElementsByTagName("ReviewMinute")[0].firstChild.nodeValue;

    var ReviewSecond = 0;
    if (obj.getElementsByTagName("ReviewSecond")[0].firstChild != null)
        ReviewSecond = obj.getElementsByTagName("ReviewSecond")[0].firstChild.nodeValue;

    var IsVoted = 0;
    if (obj.getElementsByTagName("IsVoted")[0].firstChild != null)
        IsVoted = obj.getElementsByTagName("IsVoted")[0].firstChild.nodeValue;

    var CountVotesUp = 0;
    if (obj.getElementsByTagName("CountVotesUp")[0].firstChild != null)
        CountVotesUp = obj.getElementsByTagName("CountVotesUp")[0].firstChild.nodeValue;
    /************************************************************************************************/

    var sb = new StringBuilder();
    sb.append("<li style='width: 576px'>");


    /*HEAD OF USER DIV*/
    sb.append("<div class='udiv'>");
    sb.append("<a href='showplace.aspx?id=" + PlaceId + "' class='ul'>");
    sb.append("<img class='avatar' src='http://www.mekanist.net/img/logos/96/" + LogoFileName + "' alt=" + PlaceName + " />");
    sb.append("<span class='un'>" + PlaceName + "</span>");
    sb.append("</a>");
    sb.append("<span class='pn'>" + ProvinceName + "</span>");
    sb.append("<span class='cn'>" + CityName + "</span>");
    sb.append("<span class='rev'>Yorumlar: <a href='showplace.aspx?id=" + PlaceId + "'>" + ReviewsCount + "</a></span>");
    sb.append("</div>");
    /*END OF USER DIV*/

    /*HEAD OF REVIEW DIV*/
    sb.append("<div class='pdiv'>");


    /*Top Row*/
    sb.append("<div class='rev_top'>");

    
    sb.append("<div class='stars'><img src='img/stars" + Rating + ".gif' /></div>");

    var _currentDate = new Date();
    var _reviewDate = parseDate(ReviewYear, ReviewMonth - 1, ReviewDay, ReviewHour, ReviewMinute, ReviewSecond);

    if (getDateOnly(_currentDate).getTime() - getDateOnly(_reviewDate).getTime() == 0) {
        sb.append("<div class='date'>Bugün, " + ReviewHour + ":" + ReviewMinute + "</div>");
    }
    else if (getDateOnly(_currentDate).getTime() - getDateOnly(_reviewDate).getTime() == 1000 * 60 * 60 * 24) {
        sb.append("<div class='date'>Dün, " + ReviewHour + ":" + ReviewMinute + "</div>");
    }
    else {
        sb.append("<div class='date'>" + ReviewDay + " " + GetMonthName(ReviewMonth) + " " + ReviewYear + "</div>");
    }

    //        alert(_currentDate.getTime() - _reviewDate.getTime());
    

    sb.append("</div>");


    /*Review Title & Body*/
    sb.append("<span class='reviewtitle'>" + ReviewTitle + "</span>");
    sb.append("<span class='reviewbody'>" + ReviewBody + "</span>");

    /*Bottom Row*/
    sb.append("<div class='rev_bottom'>");

    sb.append("<div class='l'>");


    var vlStyle = "";
    var vlHref = "";
    var vlText = "";
    var vlStat = "";

    if (IsVoted == 1) {
        vlStyle = "style='font-weight: bold;'";
        vlText = "Faydalı değil mi?";

        if (CountVotesUp > 1) {
            vlStat = "<b>" + CountVotesUp + "</b> kişi faydalı bulmuş.<br/><i>Siz de faydalı bulmuştunuz.</i>";
        }
        else {
            vlStat = "Yorumu faydalı bulmuştunuz.";
        }
    }
    else {
        vlStyle = "";
        vlText = "Bu yorum faydalı mı?";

        if (CountVotesUp > 0) {
            vlStat = "<b>" + CountVotesUp + "</b> kişi faydalı bulmuş.";
        }
    }

    if (cui == 0) {
        vlHref = "javascript:OpenLogin();";
    }
    else {
        vlHref = "javascript:vote(" + ReviewId + ");";
    }

    if (cui != UserId)
        sb.append("<a id='votelink" + ReviewId + "' class='vote' " + vlStyle + " href=\"" + vlHref + "\" >" + vlText + "</a>");
    
    sb.append("<span id='votestat" + ReviewId + "' class='votestat'>" + vlStat + "</span>");

    sb.append("</div>");

    sb.append("<div class='r'>");
    if (UserId == cui) sb.append("<a href='javascript:deleteReview(" + ReviewId + ")' class='delete'>Sil</a>");
    sb.append("<a href='javascript:shareReview(" + ReviewId + ");' class='share'>Paylaş</a>");
    sb.append("</div>");

    sb.append("</div>");


    sb.append("</div>");
    /*END OF REVIEW DIV*/

    sb.append("<div class='cl'></div>");
    sb.append("</div>");

    sb.append("</li>");
    return sb.toString();
}

function Pager_RefreshButtons() {
    var PagerLink_back = document.getElementById("PagerLink_back");
    var PagerLink_forward = document.getElementById("PagerLink_forward");
    var _PagerLink_back = document.getElementById("_PagerLink_back");
    var _PagerLink_forward = document.getElementById("_PagerLink_forward");

    if (CurrentPage == 1) {
        PagerLink_back.className = 'disabled';
        _PagerLink_back.className = 'disabled';
    }
    else {
        PagerLink_back.className = '';
        _PagerLink_back.className = '';
    }

    if (CurrentPage == PageCount) {
        PagerLink_forward.className = 'disabled';
        _PagerLink_forward.className = 'disabled';
    }
    else {
        PagerLink_forward.className = '';
        _PagerLink_forward.className = '';
    }

    for (var i = 1; i < PageCount + 1; i++) {
        var thisButton = document.getElementById("PagerLink_" + i);
        var _thisButton = document.getElementById("_PagerLink_" + i);
        thisButton.className = '';
        _thisButton.className = '';
    }

    var selectedButton = document.getElementById("PagerLink_" + CurrentPage);
    var _selectedButton = document.getElementById("_PagerLink_" + CurrentPage);
    selectedButton.className = 'selected';
    _selectedButton.className = 'selected';
}

function parseDate(year, month, day, hour, minute, second) {
    var date = new Date();
    date.setFullYear(year, month, day);
    date.setHours = hour;
    date.setMinutes = minute;
    date.setSeconds = second;
    date.setMilliseconds = 0;
    return date;
}

function getDateOnly(pDate) {
    return parseDate(pDate.getFullYear(), pDate.getMonth(), pDate.getDate(), 0, 0, 0);
}

function vote(reviewId) {
    try {
        var xmlHttp_FOR_VOTE = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("MSXML2.XMLHTTP.3.0");
        var URL = "XML_VoteReview.aspx?ReviewId=" + reviewId + "&nocache=" + Date();
        xmlHttp_FOR_VOTE.open("GET", URL, true);
        xmlHttp_FOR_VOTE.onreadystatechange = function() {
            if (xmlHttp_FOR_VOTE.readyState == 4 && xmlHttp_FOR_VOTE.status == 200) {
                var results = xmlHttp_FOR_VOTE.responseText.split(',');

                var votestat = document.getElementById("votestat" + reviewId);



                if (results[1] == 1) { // Yorumu faydalı buldum.
                    document.getElementById("votelink" + reviewId).style.fontWeight = 'bold';
                    document.getElementById("votelink" + reviewId).innerHTML = 'Faydalı değil mi?';

                    if (results[0] > 1) { // Başka faydalı bulanlar da var.
                        votestat.innerHTML = "<b>" + results[0] + "</b> kişi faydalı bulmuş.<br/><i>Siz de faydalı buldunuz.</i>";
                    }
                    else {  // Benden başka kimse faydalı bulmamış.
                        votestat.innerHTML = "Yorumu faydalı buldunuz.";
                    }
                }
                else { // Faydalı bulmadım!
                    document.getElementById("votelink" + reviewId).style.fontWeight = 'normal';
                    document.getElementById("votelink" + reviewId).innerHTML = 'Bu yorum faydalı mı?';

                    if (results[0] > 0) {
                        votestat.innerHTML = "<b>" + results[0] + "</b> kişi faydalı bulmuş.";
                    }
                    else {  // Benden başka kimse faydalı bulmamış.
                        votestat.innerHTML = "";
                    }
                }
            }
        };

        xmlHttp_FOR_VOTE.send(null);
    }
    catch (e) {
        alert("Lütfen internet bağlantınızı kontrol ediniz: " + e);
        return;
    }
}

//function KeyCheck(e) {
//    if (KeyEventHandler_Lock == 1)
//        return;
//        
//    var KeyID = (window.event) ? event.keyCode : e.keyCode;

//    switch (KeyID) {
//        case 37:
//            Pager_Back();
//            break;
//        case 39:
//            Pager_Forward();
//            break;
//    }
//}

//function PrepareKeyEventHandler()
//{
//    var g1 = document.getElementsByTagName("textarea");
//    var g2 = document.getElementsByTagName("input");

//    alert(g2.length);
//    
//    for (var i = 0; i < g1.length; i++)
//    {
//        g1[i].onfocus += KeyEventHandler_Off;
//        g1[i].onblur += KeyEventHandler_On;
//    }

//    for (var i = 0; i < g2.length; i++) {
//        g2[i].onfocus += KeyEventHandler_Off;
//        g2[i].onblur += KeyEventHandler_On;
//    }
//}

//var KeyEventHandler_Lock = 0;

//function KeyEventHandler_Off()
//{
//    KeyEventHandler_Lock = 0;
//}

//function KeyEventHandler_On()
//{
//    KeyEventHandler_Lock = 1;
//    alert("ON");
//}

//PrepareKeyEventHandler();
//document.onkeyup = KeyCheck;