/////////////////////
var imgW = 550;
var defaultLeft = -550;
var curentLeft = -550;
var targetLeft = 0;
var curentItem = 0;
var nextItem = 1;
var lastLoadedImg = 0;
var onTheFly = false;
var isLeft = false;
var topNewsItems;
var imgListStyle;
var leftImg;
var sceneImg;
var rightImg;
var loaderImage;
var loadingImg;
var curentDirection = "r";
var imageBorder;
var topNewsInterval = 0;
function initialTopNews()
{
    topNewsItems = $("topNewsItems").getElementsByTagName("div");
    if (topNewsItems.length > 0)
    {
        imgListStyle = $("topNewsImageList").style;
        imgListStyle.left = defaultLeft + "px";
        leftImg = document.images["topNewsImageLeft"];
        sceneImg = document.images["topNewsImageScene"];
        rightImg = document.images["topNewsImageRight"];
        loaderImage = document.images["tpimgldr"];
        loadingImg = document.images["tploadingimg"];
        imageBorder = $("topNewsImageBox");
        sceneImg.src = topNewsItems[0].getElementsByTagName("p")[0].innerHTML;
    }
}
function getNextItem(setItem)
{
    nextItem = curentItem + setItem;
    if (nextItem >= topNewsItems.length)
        nextItem = 0;
    else if (nextItem < 0)
        nextItem = topNewsItems.length - 1;
    return topNewsItems[nextItem];
}
//////////NEXT ITEM --> RIGHT MOVE//////
function nextTopNews()
{
    if (!onTheFly && !Typist.isOnTheFly())
    {
        var item = getNextItem(1);
        rightImg.src = item.getElementsByTagName("p")[0].innerHTML;
        targetLeft = curentLeft - imgW;
        
        loadingImg.style.display = "";
        curentDirection = "r";
        loaderImage.src = item.getElementsByTagName("p")[0].innerHTML;
    }
}
function moveRight()
{
    if (curentLeft > targetLeft)
    {
        var curentAngle = Math.round(((545 + curentLeft) * -1) / 2);
        var moveSpeed = Math.abs(Math.round(Math.sin((curentAngle / 2) * Math.PI/180)*35)) + 1;
        curentLeft -= moveSpeed;
        imgListStyle.left = curentLeft + "px";
        setTimeout(moveRight, 15);
    }else{
        sceneImg.src = rightImg.src;
        imgListStyle.left = defaultLeft;
        curentLeft = defaultLeft;
        curentItem = nextItem;
        onTheFly = false;
        Typist.nextItem();
    }
}
//////////PREV ITEM --> LEFT MOVE//////
function prevTopNews()
{
    if (!onTheFly && !Typist.isOnTheFly())
    {
        var item = getNextItem(-1);
        leftImg.src = item.getElementsByTagName("p")[0].innerHTML;
        targetLeft = curentLeft + imgW;
        
        loadingImg.style.display = "";
        curentDirection = "l";
        loaderImage.src = item.getElementsByTagName("p")[0].innerHTML;
    }
}
function moveLeft()
{
    if (curentLeft < targetLeft)
    {
        var curentAngle = Math.round((550 + curentLeft) / 2);
        var moveSpeed = Math.abs(Math.round(Math.sin((curentAngle / 2) * Math.PI/180)*35)) + 1;
        curentLeft += moveSpeed;
        imgListStyle.left = curentLeft + "px";
        setTimeout(moveLeft, 15);
    }else{

        sceneImg.src = leftImg.src;
        imgListStyle.left = defaultLeft;
        curentLeft = defaultLeft;
        curentItem = nextItem;
        onTheFly = false;
        Typist.prevItem();
    }
}

function startTopNewsAutoChange()
{
    topNewsInterval = window.setInterval(nextTopNews, 15000);
}
function stopTopNewsAutoChange()
{
    window.clearInterval(topNewsInterval);
}
function changeTopNews() {
    loadingImg.style.display = "none";
    $("topNewsTitle").innerHTML = "";
    switch (curentDirection) {
        case "r":
            onTheFly = true;
            moveRight();
            break;
        case "l":
            onTheFly = true;
            moveLeft();
            break;
    }
}

/*--- TYPE EFECT ---*/
function typist(displayItem, changeInterval, typeSpeed)
{
    //-private variables
    var _items = new Array();
    var _dispalayItem;
    var _curentItem = -1;
    var _curentChar = 0;
    var _interval = 0;
    var _onTheFly = false;
    //-_User defined Data Type: titleItem
    function titleItem(itemTitle, itemLink)
    {
        this.title = itemTitle;
        this.link = itemLink;
    }
    //-Inotialize
    if (typeof(displayItem) == "string")
        _dispalayItem = document.getElementById(displayItem);
    else
        _dispalayItem = displayItem;
     //-private methods
    //-_type curent item
    function type()
    {
	    if(_dispalayItem.innerHTML.length >= 2)//hide cursor
		    _dispalayItem.innerHTML = _dispalayItem.innerHTML.substring(0, _dispalayItem.innerHTML.length - 1);
	    _dispalayItem.innerHTML += _items[_curentItem].title.charAt(_curentChar);
	    _curentChar++;
	    if (_curentChar < _items[_curentItem].title.length)
	    {
		    window.setTimeout(showCursor, 20);
		    window.setTimeout(type, typeSpeed);
	    }else{
		    _curentChar = 0;
		    _onTheFly = false;
	    }
    }
    //-_Show cursore at the end of typed string
    function showCursor()
    {
	    _dispalayItem.innerHTML += "_";
    }
    ////////////////////////////////////////////////
    //-public methods
    //-_register a title and it's related link
    this.registerItem = function(title, link)
    {
        var item = new titleItem(title, link);
        _items.push(item);
    }
    //-_set information of next item and start to type it.
    function _nextItem()
    {
        if (!_onTheFly)
        {
	        _curentItem++;
	        if (_curentItem == _items.length)
	            _curentItem = 0;
	        if (_items[_curentItem].link.indexOf("http:") < 0)
	            _items[_curentItem].link = "http://" + _items[_curentItem].link;
	        if (_dispalayItem.href) {
	            _dispalayItem.href = _items[_curentItem].link;
	            imageBorder.href = _items[_curentItem].link;
	        }
	        _dispalayItem.innerHTML = "";
	        _onTheFly = true;
	        type();
	    }
    }
    this.nextItem = _nextItem;
    //-_set information of previos item and start to type it.
    function _prevItem()
    {
        if (!_onTheFly)
        {
	        _curentItem--;
	        if (_curentItem < 0)
	            _curentItem = _items.length - 1;
	        if (_items[_curentItem].link.indexOf("http:") < 0)
	            _items[_curentItem].link = "http://" + _items[_curentItem].link;
	        if (_dispalayItem.href) 
	        {
	            _dispalayItem.href = _items[_curentItem].link;
	            imageBorder.href = _items[_curentItem].link;
	        }
	        _dispalayItem.innerHTML = "";
	        _onTheFly = true;
	        type();
	    }
    }
    this.prevItem = _prevItem;
    //-_Start to type register items.
    this.start = function()
    {
        if (_items.length > 0)
        {
            _nextItem();
            _interval = window.setInterval(_nextItem, changeInterval);
        }
    }
    //-_Stop typing
    this.stop = function()
    {
        if (_interval != 0)
            window.clearInterval(_interval);
    }
    //-_Returns If the typing is onthefly!
    this.isOnTheFly = function()
    {
        return _onTheFly;
    }
}
