/// <Reference path="jquery-1.3.2-vsdoc.js" />

var errorLog = "";
var siteRelativeUrl = "";
var blogPostId = "";

function getRoomId()
{
    if(blogPostId == ""){
        blogPostId = $("#BlogPostNodeID").text();
    }
    return blogPostId;
}
function getRoomData()
{
    var id = $("#BlogPostNodeID").text();
    if(id != "")
        getData(id);
}

function getRoomTenant()
{
    return $("#UserHeaderBox h1").text();
}

function setRoomData(xml)
{
    if(getAdditionalInfo() == "viewCreateBegin")
    {
        setSessionData(xml);
    }
    else
    {
        setData($("#BlogPostNodeID").text(), xml);
    }
}

function getAdditionalInfo()
{    
    /*
       viewCreateBegin , viewCreateAccount, viewXXXX, viewMyRoom, viewFollowEmailLinkFirst, viewFollowEmailLinkLate
       viewRules, viewHelp 
    */

    if($("#doInviteStatus").text() == "writing") // Kutsu kaverisi mukaan kisaamaan 10000e. silloin kun käyttäjän tulee kutsua pari
        return "viewRoomInvite";

    if($("#doInviteStatus").text() == "sent") // Tässä on huoneesi, hanki äänestäjiä... silloin kun käyttäjä kutsunut parin 
        return "viewMyRoom";

    if($("#inviteStatus").text() == "accepted") // kaverin huoneessa, jos eka kutsuun vastaaja
        return "viewFollowEmailLinkFirst";
        
    if($("#inviteStatus").text() == "declined") // kaverin huoneessa, jos myohassa kutsuun vastaaja
        return "viewFollowEmailLinkLate";
        
    if($("#viewCreateAccount").text() == "true") // vain luohuonesivulla, kun huone valmis
        return "viewCreateAccount";
        
    if($("#flashPopup").text() == "viewCreateBegin") // vain luohuone sivulla;
        return "viewCreateBegin"; 
        
    return "none"; // huonetta katseltaessa, jos ei muuta tietoa
}

function FlashHtmlBridge(name){
    this.movieName = name;
    this.loadMovie();
}
FlashHtmlBridge.prototype = {
    movie: null,
    movieName: null,
    ensureFlash: function(){
        if(this.movie == null)
            this.loadMovie();
        if(this.movie != null){
            var tryCount = 0;
            while (this.movie.ReadyState < 4 && tryCount < 10){
                setTimeout(function(){},100);
                tryCount++;
            }
        }
    },
    showInfo : function(messageType){
        this.ensureFlash();
        return this.movie.showInfo(messageType);
    },
    loadRoomData: function(xml){
        this.ensureFlash();
        if(this.movie.roomDataToFlash != null)
            return this.movie.roomDataToFlash(xml);
        else
            this.showInfo("tried to call roomDataToFlash()");Pr
    },
    loadMovie: function() {
        if(document[this.movieName] != null)
            this.movie = document[this.movieName];
        else    
            this.movie = window[this.movieName];
    }
}

function getRandomRoom()
{
    $.ajax({
        url: siteRelativeUrl + "/Expert/Endero/Services/RoomService.asmx/GetRandomRoomUrl",
        data: "{}",
        success: function(msg) {
             window.location = msg.d;
        }
    });
}

function helpLink_OnClick(){
    flash.showInfo("viewHelp");
    return false;
}
function rulesLink_OnClick(){
    flash.showInfo("viewRules");
    return false;
}

$(function(){
    $(".topRight a#help").live('click', helpLink_OnClick);
    $(".topRight a#rules").live('click', rulesLink_OnClick);

    $("#JSConsole").css({
        'display': 'none',
        'visibility': 'hidden',
        'position': 'fixed',
        'top': '10px',
        'right': '10px',
        'width': '230px',
        'height': '700px',
        'overflow-y': 'auto',
        'background': 'white',
        'padding': '5px',
        '-moz-border-radius': '7px',
        'border': '1px solid black'
    });
    $("#JSConsole h4 a").click(function (){ $("#JSConsole").hide(); });
    $("#JSConsole").append("<p class='lataahuone'>[Lataa]</p>");
    $("#JSConsole .lataahuone").click(getRoomData);
    $.ajaxSetup({
        type: "POST",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        error: onError
    });
});

function stripTags(input)
{
    if(typeof(input) == "string")
    {
        var output = input.replace(/</g,"&lt;");
        output = output.replace(/>/g,"&gt;");
        return output;
    }
    else
    {
        return input;
    }
}
function singleQuotes(input)
{
    return input.replace(/\"/g,"\'");
}

function flashLog(message){
    $("#JSConsole").append("<p>" + stripTags(message) + "</p>");
    errorLog += "\n" + message;
    return "Logged message: '" + message + "'";
}

function showProductDetails(url)
{
    var params = { width:800, height:500, KeepThis:'true', TB_iframe:'true' };
    var params_str = "?" + jQuery.param(params);
    flashLog("Showing details for: " + url);
    $("#productDetailsLink").attr('href', url + params_str);
    $("#productDetailsLink").click();
}
//function GetSessionID(){
//    $.ajax({
//        url: siteRelativeUrl + "/Expert/Endero/Services/RoomService.asmx/GetSessionID",
//        data: "{}",
//        success: function(msg) {
//            flashLog(msg.d); 
//        }
//    });
//}

//function invite(id, email, fname, lname){
//    $.ajax({
//        url: siteRelativeUrl + "/Expert/Endero/Services/RoomService.asmx/Invite",
//        data: "{ 'id':"+id+", 'email':'"+email+"', 'firstName':'"+fname+"', 'lastName':'"+lname+"' }",
//        success: function(msg) {
//            flashLog(msg.d); 
//        }
//    });
//}

function getSessionData(){
    $.ajax({
        url: siteRelativeUrl + "/Expert/Endero/Services/RoomService.asmx/GetSessionData",
        data: "{}",
        success: function(msg) {
            flashLog(msg.d);
        }
    });
}

function setSessionData(items){
    $.ajax({
        url: siteRelativeUrl + "/Expert/Endero/Services/RoomService.asmx/SetSessionData",
        data: "{ 'items': '"+items+"' }",
        success: function(msg) {
            flashLog(msg.d);
            window.location = "?huonevalmis=1";
        }
    });
}

//function setFriend(name){
//    $.ajax({
//        url: siteRelativeUrl + "/Expert/Endero/Services/RoomService.asmx/SetFriend",
//        data: "{ 'id':"+getRoomId()+", 'name':'"+name+"' }",
//        success: function(msg) {
//            flashLog(msg.d); 
//        }
//    });
//}

//function GetCustomData(id, key){
//    $.ajax({
//        url: siteRelativeUrl + "/Expert/Endero/Services/RoomService.asmx/GetCustomData",
//        data: "{ 'id':'"+id+"', 'key':'"+key+"' }",
//        success: function(msg) {
//            flashLog(msg.d); 
//        }
//    });
//}
//function SetCustomData(id, items){
//    $.ajax({
//        url: siteRelativeUrl + "/Expert/Endero/Services/RoomService.asmx/SetCustomData",
//        data: "{ 'id':'"+id+"', 'items':'"+items+"' }",
//        success: function(msg) {
//            flashLog(msg.d); 
//        }
//    });
//}

//function AddRoomComment(id, nickname, comment){
//    $.ajax({
//        url: siteRelativeUrl + "/Expert/Endero/Services/RoomService.asmx/AddRoomComment",
//        data: "{ 'id':'"+id+"', 'nickname':'"+nickname+"', 'comment':'"+comment+"' }",
//        success: function(msg) {
//            flashLog(msg.d); 
//        }
//    });
//}

function getData(id){
    $.ajax({
        url: siteRelativeUrl + "/Expert/Endero/Services/RoomService.asmx/GetItems",
        data: "{ 'id':'"+id+"' }",
        success: function(msg) {
            flashLog("trying to load room data");
            flashLog(msg.d); 
            flash.loadRoomData(msg.d);
        }
    });
}

function setData(id, items){
    $.ajax({
        url: siteRelativeUrl + "/Expert/Endero/Services/RoomService.asmx/SetItems",
        data: "{ 'id':'"+id+"', 'items':'"+items+"' }",
        success: function(msg){ 
            flashLog("trying to save room data");
            flashLog(msg.d);
        }
    });
}

function onSuccess(msg){
    flashLog(msg.d);
}
function onError(xhr, desc, e){
    flashLog("Failed to submit: " + xhr.responseText);
}
function onTimeout(data){
    alert(data);
}
