link.prototype.template = '<div class="OnAirElement"><a href=":link:">:anchor:</a></div>';
function link(link, anchor)
{
    if (!link || !anchor)
    {
        return null;
    }
    this.link = link;
    this.anchor = anchor;
    this.element = '';
    this.subLinks = Array();
    this.getItem = function () 
                     {
                        this.element = this.template;
                        this.element = this.element.replace(':link:', this.link);
                        this.element  = this.element.replace(':anchor:', this.anchor);
                        return this.element;
                     };
    this.addSubLink = function (element)
                            {
                                //element.template = element.template.replace('class="OnAirElement"', 'class="OnAirSubElement"');
                                this.subLinks.push(element);
                            }
    return 0;
}

function arrayPushWithShift(array , element) 
{
    var i=0, cnt=0, tmp_arr = {};
 
    if( !array || (array.constructor !== Array && array.constructor !== Object) || !array.length )
    {
        return null;
    }
 
    if( array.constructor === Array )
    {
        for( i = 0; i < array.length; i++ )
        {
            array[i] = array[i+1];
        }
        array.length--;
    } 
    else if( array.constructor === Object )
    {
        for(var key in array)
        {
            if( cnt > 0 )
            {
                tmp_arr[key] = array[key];
            }
            cnt ++;
        }
        array = tmp_arr;
    }
 
    array.push(element);
    return 0;
}

function createLinksArray()
{
var links =  [new link('http://balakovomedia.ru/pages.php?id=3602', 'Органы власти'),                           //0
              new link('http://balakovomedia.ru/pages.php?id=4201', 'Предприятия'),                             //1
              new link('http://balakovomedia.ru/pages.php?id=5716', 'Ремонт'),           //2
              new link('http://balakovomedia.ru/pages.php?id=6779', 'Юристы'), //3
              new link('http://balakovomedia.ru/pages.php?id=6724', 'Строительство'),                   //4
              new link('http://balakovomedia.ru/pages.php?id=4130', 'Коммуналка'),                     //5
              new link('http://balakovomedia.ru/pages.php?id=4245', 'Образование'),                             //6
              new link('http://balakovomedia.ru/pages.php?id=6505', 'Провайдеры'),    //7
              new link('http://balakovomedia.ru/pages.php?id=4327', 'Медицина'),                                //8
              new link('http://balakovomedia.ru/pages.php?id=6615', 'Кафе, рестораны'),                         //9
              new link('http://balakovomedia.ru/pages.php?id=4368', 'Места для отдыха'),                        //10
              new link('http://balakovomedia.ru/pages.php?id=4174', 'СМИ')];           //11

links[2].addSubLink(new link('http://balakovomedia.ru/pages.php?id=5717', 'Все для ремонта'));
links[2].addSubLink(new link('http://balakovomedia.ru/pages.php?id=6180', 'Бытовая техника'));
links[2].addSubLink(new link('http://balakovomedia.ru/pages.php?id=6159', 'Компьютеры'));


links[3].addSubLink(new link('http://balakovomedia.ru/pages.php?id=6815', 'Адвокаты'));
links[3].addSubLink(new link('http://balakovomedia.ru/pages.php?id=6781', 'Банки'));


links[4].addSubLink(new link('http://balakovomedia.ru/pages.php?id=6744', 'Ремонт'));

links[6].addSubLink(new link('http://balakovomedia.ru/pages.php?id=4255', 'Школы'));
links[6].addSubLink(new link('http://balakovomedia.ru/pages.php?id=4257', 'Профобразование'));
links[6].addSubLink(new link('http://balakovomedia.ru/pages.php?id=4256', 'ВУЗы'));


links[7].addSubLink(new link('http://balakovomedia.ru/pages.php?id=6562', 'Сотовые операторы'));
links[7].addSubLink(new link('http://balakovomedia.ru/pages.php?id=6564', 'Телефония'));

links[8].addSubLink(new link('http://balakovomedia.ru/pages.php?id=4328', 'Госучреждения'));
links[8].addSubLink(new link('http://balakovomedia.ru/pages.php?id=4346', 'Частные клиники'));
links[8].addSubLink(new link('http://balakovomedia.ru/pages.php?id=4359', 'Стоматология'));

links[9].addSubLink(new link('http://balakovomedia.ru/pages.php?id=6616', 'Пиццерии'));
links[9].addSubLink(new link('http://balakovomedia.ru/pages.php?id=6632', 'Кафе'));
links[9].addSubLink(new link('http://balakovomedia.ru/pages.php?id=6621', 'Рестораны'));


links[10].addSubLink(new link('http://balakovomedia.ru/pages.php?id=4369', 'Театр им.Лебедева'));
links[10].addSubLink(new link('http://balakovomedia.ru/pages.php?id=4370', 'Кинотеатры'));
links[10].addSubLink(new link('http://balakovomedia.ru/pages.php?id=4377', 'Дома культуры'));
links[10].addSubLink(new link('http://balakovomedia.ru/pages.php?id=4372', 'Базы отдыха'));
links[10].addSubLink(new link('http://balakovomedia.ru/pages.php?id=4373', 'Спортивные центры'));

links[11].addSubLink(new link('http://balakovomedia.ru/pages.php?id=4176', 'Газеты'));
links[11].addSubLink(new link('http://balakovomedia.ru/pages.php?id=4185', 'Телевидение'));
links[11].addSubLink(new link('http://balakovomedia.ru/pages.php?id=4181', 'Радио'));
links[11].addSubLink(new link('http://balakovomedia.ru/pages.php?id=4268', 'Интернет-сайты'));

return links;
}

function arraySlice(array, length)
{
	var tmp_arr = [], i=0;
	
	if( !array || (array.constructor !== Array && array.constructor !== Object) || !array.length )
    {
		return null;
    }
	
	while (i<array.length && i<length)
	{
		tmp_arr.push(array[i]);
		i++;
	}
	
	return tmp_arr;
}

function createListFromLinks(list, links)
{
	var currentLink=0, currentSubLink = 0;

	do
	{
		list.push(links[currentLink]);
		currentSubLink = 0;
		while (links[currentLink].subLinks[currentSubLink])
		{
			list.push(links[currentLink].subLinks[currentSubLink]);
			currentSubLink++;
		}
		currentLink++;
	} while (currentLink<links.length)
}

function createRoller(length, timeout, id)
{
    var current=length;
    var html='';
	
	var links = createLinksArray();
	var list = [], roller = [];
	
	createListFromLinks(list, links);
	roller = arraySlice(list, length);
	
	for ( i = 0; i < roller.length; i++ )
	{  
		html += (roller[i].getItem()+'\n');
	}
	
	document.getElementById(id).innerHTML = html;
	
	return setInterval( function() {
		document.getElementById(id).innerHTML = '';
		html = '';
		arrayPushWithShift(roller, list[current])
		for ( i = 0; i < roller.length; i++ )
		{  
			html += (roller[i].getItem()+'\n');
		}
		document.getElementById(id).innerHTML = html;
		current++;
		if (current >= list.length) current = 0;
	}, timeout );
}
