﻿var _clients = null;
// use this array to reduce the number of ajax calls by storing the result locally
var newsArray = new Array();

function SetHTML(id, value) {
    $(id).set("html", value);    
}
function SetWorkDetails(id, value)
{
    if (value != "") {
        SetHTML($$(id + " a")[0], value);
        $$(id)[0].setStyle("display", "block");
    }
    else
        $$(id)[0].setStyle("display", "none");
}

function DisplayClient(client, discipline) {

    if (client.UseFlash) {
        LoadFlash('/userfiles/clients/' + client.FlashFile, discipline + '_flash', 500, 265, null);
        $(discipline + '_flash').setStyle("display", "block");
        $(discipline + '_image').setStyle("display", "none");
    }
    else {
        $$("#" + discipline + "_image img")[0].set("src", "/userfiles/clients/" + client.LargeImageUrl);
        $(discipline + '_flash').setStyle("display", "none");
        $(discipline + '_image').setStyle("display", "block");
    }

    SetHTML($$("#" + discipline + "_details h2")[0], client.Title);
    SetHTML($$("#" + discipline + "_details .summary")[0], client.Summary);
}

function OpenShadowbox(height, width, location, box_title) {
    Shadowbox.open({
        player: 'iframe',
        title: box_title,
        content: location,
        width: height,
        height: width
    });
}

var _campaign = null;
var currentClient = null;
function ShowClient(clientId, discipline, obj) {

    var uri = "/common/handlers/get-client.ashx?id=" + clientId.replace("client_", "");
    currentClient = clientId;
    
    var slide = GetSlide(clientId);
    slide.currentPosition = 56;
    
    $$("#" + discipline + "_image img")[0].set("src", "/images/loading.gif");

    $$("#" + discipline + "_work_items div").each(function(div) {
        div.setStyle("background-position", "bottom");
    });

    obj.setStyle("background-position", "top");

    var request = new Request.JSON({ url: uri, onComplete: function(client) {
        DisplayClient(client, discipline);
    }
    }).send();    
}

function ShowNews(url) {

    var uri = "/common/handlers/get-news.ashx?url=" + url;
    var request = new Request.JSON({ url: uri, onComplete: function(news) {

        $("news-date").set("html", news.DateOfStr);
        $("news-title").set("html", news.Title);
        $("news-body").set("html", news.Article);        
        if (news.Image != "" && news.Image != null) {
            $("news-image").set("html", "<img src=\"/userfiles/images/news/" + news.Image + "\" alt=\"" + news.Title + "\" title=\"" + news.Title + "\" />");
            $("news-image").setStyle("display", "block");
        }
        else
            $("news-image").setStyle("display", "none");
    }
    }).send();

}

function GetNewsPage(pageId) {

    if (newsArray[pageId - 1] == undefined) {
        var uri = "/common/handlers/get-news-page.ashx?pageId=" + pageId;
        var request = new Request.JSON({ url: uri, onComplete: function(result) {
            DisplayNews(result);
            newsArray[pageId - 1] = result;            
        }
        }).send();
    }
    else
        DisplayNews(newsArray[pageId - 1]);
}

function DisplayNews(result) {
    SetHTML("pages", result.PagerHtml);
    // SetHTML("pagesOf", result.PageCountHtml);
    SetHTML("news-items", result.Items);

    $$("#news-items .read_more").each(function(anch) {
        AddClick(anch);
    });

    $$("#news-items-home .read_more").each(function(anch) {
        AddClick(anch);
    });
}

// how fast the timeout should happen
var speed = 0;

// how many steps when moving the background image
var steps = 5;

var SlideIt = new Class({
        Implements: [Options, Events],
        options: {
    },
    initialize: function(timeoutId, direction, divId) {
        this.timeoutId = timeoutId;
        this.direction = direction;
        this.divId = divId;
    },
    timeoutId: -1,
    direction: 0,
    divId: "",
    currentPosition: 56
});

var slides = new Array();
function GetSlide(div) {
    for (ii = 0; ii < slides.length; ii++) {
        if (slides[ii].divId == div) {
            return slides[ii];
        }
    }

    return null;
}

function SlideUp(div) {
    
    var slide = GetSlide(div);
    var ii = 56;
    
    if (slide == null) {
        slide = new SlideIt();
        slide.divId = div;
        slide.direction = 1; // 1 means up :-)        
        slides[slides.length] = slide;
    }

    if(slide.currentDirection != 1) // its not a new one
    {
        clearTimeout(slide.timeoutId);
        ii = slide.currentPosition;
    }

    // if current at the top, can't slide up
    if (!IsCenterTop(div) && div != currentClient) {
        slide.timeoutId = setTimeout("SlideItUp(" + ii + ",'" + div + "')", speed);
        slide.currentPosition = ii;
    }
}

function IsCenterTop(div) {
    
//    if ($(div).getStyle("background-position") == "50% 100%") {
//        steps = 1;
//        speed = 10;
//    }
    
    if ($(div).getStyle("background-position") != "center top" && $(div).getStyle("background-position") != "50% 0%")
        return false;
    else
        return true;
    
}

function SlideItUp(ii, div) {

    if (ii <= 112) {                
        var slide = GetSlide(div);
        slide.timeoutId = setTimeout("SlideItUp(" + (eval(ii) + steps) + ",'" + div + "')", speed);
        slide.currentPosition = (eval(ii) + steps);

        $(div).setStyle("background-position", "center " + ii + "px");
    }
    else
        $(div).setStyle("background-position", "center 112px");
}

function SlideItDown(ii, div) {

    if (ii >= 52) {                
        var slide = GetSlide(div);
        slide.timeoutId = setTimeout("SlideItDown(" + (eval(ii) - steps) + ",'" + div + "')", speed);
        slide.currentPosition = (eval(ii) - steps);
        $(div).setStyle("background-position", "center " + ii + "px");
    }
    else
        $(div).setStyle("background-position", "center 56px");
}

function SlideDown(div) {

    var slide = GetSlide(div);
    var ii = 112;
    if (slide == null) {
        slide = new SlideIt();
        slide.divId = div;
        slide.direction = -1; // -1 means down :-(        
        slides[slides.length] = slide;
    }
    
    if(slide.currentDirection != -1) // its not a new one
    {
        clearTimeout(slide.timeoutId);
        ii = slide.currentPosition;
    }
    
    // if current at the top, shouldn't slide down
    if (!IsCenterTop(div) && div != currentClient) {
        slide.timeoutId = setTimeout("SlideItDown(" + ii + ",'" + div + "')", speed);
        slide.currentPosition = ii;
    }
}

function LoadFlash(path, flash_div, movie_width, movie_height, movie_params) {

    if (movie_params != null) {
        var flash_obj = new Swiff(path, {
            id: flash_div,
            container: flash_div,
            width: movie_width,
            height: movie_height,
            params: movie_params
        });
    }
    else {
        var flash_obj = new Swiff(path, {
            id: flash_div,
            container: flash_div,
            width: movie_width,
            height: movie_height
        });
    }
}

function Expand(obj) {
    $(obj).removeClass("photo");
    $(obj).addClass("photo-over");
    ShowMessage(obj)
}

function Contract(obj) {
    $(obj).removeClass("photo-over");
    $(obj).addClass("photo");
}

function ShowMessage(obj) {
    $("message_holder").setStyle("display", "block");
    $("message_holder").getElement("span").set("html", $(obj).getElement("span").get("html"));
}
