/*
===============================
DotControl copyright 2010
===============================
*/


$(function () {

    // For Recent News Module: Cut first N symbols from Short Description
    $(".recent-list .description").each(function () {
        var N = 150;
        var text = $(this).text();
        if (text.length > N) {
            text = text.substring(0, N);
            var cut = text.substring(0, text.lastIndexOf(" "));
            $(this).text($(this).text(cut));
            $(this).text($(this).text() + '...');
        }
    });

    // Process Clients block
    /*if ($(".Clients").length) {

        // Slice clients block into rows
        var $liArr = $('.Clients li');
        var liArrLen = $liArr.length;
        var liPerDiv = 5;
        for (var i = 0; i < liArrLen; i += liPerDiv) {
            $liArr.filter(':eq(' + i + '),:lt(' + (i + liPerDiv) + '):gt(' + i + ')').wrapAll('<div class="TableRow" />');
        }

        // Add service blocks
        $(".Clients .TableRow").wrapAll('<div class="ClientsTable" />');
        $('<div class="ClientsTop"><div class="ArrowTop"></div></div>').insertBefore('.Clients');
        $('<div class="ClientsBottom"><div class="ArrowBottom"></div></div>').insertAfter('.Clients');

        // Init Clients Slider pane
        InitClientsSlider();
    }*/
});


function DOMStructureFix() {
	// Apply fixes for DOM layout
	DCArticleRotator(4);
	FixBreadcrumb();

	InitPrint();

    RemoveIfEmpty('.BottomContent .column');
    RemoveIfEmpty('.PanoramaWide .column');
    RemoveIfEmpty('.PanoramaNarrow .column');
    RemoveIfEmpty('.two-col .column');
    RemoveIfEmpty('.one-col .column');
    RemoveIfEmpty('.four-col .column');

    // Make tabs
    if ($('ul.tabs').length > 0) {
        $("ul.tabs").tabs();
        $('.TabFirst a', '.TabsWrapper').text($('.TabsContainer:first h2').text());
        $('.TabSecond a', '.TabsWrapper').text($('.TabsContainer:last h2').text());
        $('.TabsContainer h2').remove();
        $('.TabsWrapper').css('display', 'block');
    }

    // initialize scrollable
    $(".scrollable").scrollable();

    // Start image rotators
    if ($('.ContactRotator').length) {
        $('.ContactRotator').jshowoff({ changeSpeed: 1000, controlText: { play: 'Play', pause: 'Pause', previous: '', next: '' }, speed: 5000, controls: false, links: false });
    }
    if ($('.PanoramaHome').length) {
        $('.PanoramaHome').jshowoff({ changeSpeed: 1000, controlText: { play: 'Play', pause: 'Pause', previous: '', next: '' }, speed: 5000, controls: false, links: false });
    }
    if ($('.ProjectRotator div').length > 1) {
        $('.ProjectRotator').jshowoff({ changeSpeed: 1000, controlText: { play: 'Play', pause: 'Pause', previous: '', next: '' }, speed: 5000, controls: false, links: false });
    }
    if ($('.TVRotator .Normal div').length > 1) {
        $('.TVRotator .Normal').jshowoff({ changeSpeed: 1000, controlText: { play: 'Play', pause: 'Pause', previous: '', next: '' }, speed: 5000, controls: false, links: false, linksControls: false });
    }

    // Set Selected MenuItemID for Header to Make an Arrow
	if ($(".MainMenu .RadTabStrip .rtsLI .rtsLink.rtsSelected").length)
	{
    	$(".MainMenu .RadTabStrip .rtsLI .rtsLink").each(function (index) {
	        if ($(this).hasClass('rtsSelected')) {
	            $('.Header').addClass('MenuItem' + (index + 1));
	        }
	    });
	} else {
		$('.Header').addClass('MenuItem0');
	}
}

function DCArticleRotator(itemsInSet) {
	var $rotators = $('.dcarticle.rotator');
	var $items;
	var $itemsSet;
	var setsCount;
	var setStart;
	var i;
	$rotators.each(function () {
	    $(this).prepend('<div class="prev browse left" />');
	    $(this).append('<div class="next browse right" />');
	    $items = $('.item', $(this));
	    $items.wrapAll('<div class="scrollable" />').wrapAll('<div class="items" />');
	    setsCount = $('.item', $(this)).length / itemsInSet;
	    if (setsCount <= 1) {
	       $(this).find('.next.browse.right').addClass('disabled');
	       $(this).find('.prev.browse.left').addClass('disabled');
	    }
	    setStart = 0;
	    setEnd = itemsInSet;
	    i = 0;
	    for (i = 0; i <= setsCount; i++) {
	        $itemsSet = $items.slice(setStart, setEnd);
	        $itemsSet.wrapAll('<div class="items-set" />');
	        $itemsSet.first().addClass('first');
	        $itemsSet.last().addClass('last');
	        setStart += itemsInSet;
	        setEnd += itemsInSet;
	    }
	});
	
}



function Squirrel() {
    (function () {
        // Squirrel fix: hide content till load (or 3 seconds) to prevent FOUT
        var d = document, e = d.documentElement, s = d.createElement('style');
       /* if ((e.style.MozTransform === '') || (window.opera)) { // gecko 1.9.1 inference*/
            s.textContent = 'body{visibility:hidden}';
            e.firstChild.appendChild(s);
            function f() { s.parentNode && s.parentNode.removeChild(s); }
            addEventListener('load', f, false);
            setTimeout(f, 3000);
        /*}*/
    })();
}

function FixBreadcrumb () {
    // Remove link from the last item in breadcrumb
	var $breadcrumb = $('.Breadcrumb');
    $breadcrumb.find('a').last().removeAttr('href').addClass('current');
    // Hide breadcrumb on a root level pages
    if ($('.Breadcrumb a').length < 2) {
        $('.Breadcrumb').hide();
    }
}

function RemoveIfEmpty(panes) {
    // Remove panes without modules from a page to avoid unnecessary paddings
    var $panes = $(panes);
    var $emptyPanes = $(panes + '.DNNEmptyPane');
    if ($emptyPanes.length == $panes.length) {
        $panes.parent().remove();
    }
}


/* ======================== Google Map ======================= */

var map;
var infowindow; 

function InitGmap() {
	
	var latlng = new google.maps.LatLng(51.923308, 4.433323);
	
    var myOptions = {
      zoom: 14,
      center: latlng,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    };
	
    map = new google.maps.Map(document.getElementById("map_canvas"),
        myOptions);
	
	var request = {
		location: latlng,
		radius: 100,
		keyword: 'DotControl Van Nelleweg 2127'
	}
	
	infowindow = new google.maps.InfoWindow();
	var service = new google.maps.places.PlacesService(map);
	service.search(request, callback);
	
	GmapAnimate();
}

function callback(results, status) {
	if (status == google.maps.places.PlacesServiceStatus.OK) {
		for (var i = 0; i < results.length; i++) {
			createMarker(results[i]);
		}
	}
}

function createMarker(place) {
	var placeLoc = place.geometry.location;
		var marker = new google.maps.Marker({
			map: map,
			position: place.geometry.location
		});
	google.maps.event.addListener(marker, 'click', function() {
	infowindow.setContent(place.vicinity);
	infowindow.open(map, this);
	});
} 

function GmapAnimate()
{
	$('.mapWrapper').mouseenter(GmapExpand);
	$('.mapWrapper').mouseleave(GmapCollapse);
}

function GmapExpand()
{
	/*$('.mapWrapper').css('position','absolute');
	$('.mapWrapper').parents('.Normal').css({position: 'relative', height: '155px'});*/
	$('.mapWrapper').queue(function () {
									 $(this).animate({height: '252px'});
									 $(this).dequeue();
									 $(this).clearQueue();
									 });
}

function GmapCollapse()
{
	/*$('.mapWrapper').css('position','static');*/
	$('.mapWrapper').animate({height: '142px'});
}

/* ===================== END Google Map ======================= */

// Clients Slider pane
function InitClientsSlider() {
    var RowHeight = $('.Clients .TableRow').height();
    var Table = $('.Clients .ClientsTable');
    if (Table.height() > RowHeight * 4) {
        var ArrowBottom = $('.ClientsBottom .ArrowBottom');
        var ArrowTop = $('.ClientsTop .ArrowTop');
        ArrowBottom.css('cursor', 'pointer');
        var Top = $('.Clients .ClientsTable').css('top');
        Top = Top.substring(0, Top.lastIndexOf("p"));
        ArrowBottom.css('display', 'block');
        ArrowBottom.click(function () {
            if ($(this).css('visibility') == 'visible') {
                Top = Top - RowHeight * 4;
                Table.animate({ top: Top + "px" }, { duration: 1000, queue: false });
                if (-(Top - RowHeight * 4) >= Table.height()) {
                    $(this).css('visibility', 'hidden');
                    $(this).css('cursor', 'none');
                }
                else {
                    $(this).css('visibility', 'visible');
                    $(this).css('cursor', 'pointer');
                }
                if (Top == 0) {
                    ArrowTop.css('visibility', 'hidden');
                    ArrowTop.css('cursor', 'none');
                }
                else {
                    ArrowTop.css('visibility', 'visible');
                    ArrowTop.css('cursor', 'pointer');
                }
            }
        });
        ArrowTop.click(function () {
            if ($(this).css('visibility') == 'visible') {
                Top = Top + RowHeight * 4;
                Table.animate({ top: Top + "px" }, { duration: 1000, queue: false });
                if (Top == 0) {
                    $(this).css('visibility', 'hidden');
                    $(this).css('cursor', 'none');
                }
                else {
                    $(this).css('visibility', 'visible');
                    $(this).css('cursor', 'pointer');
                }
                if (-(Top - RowHeight * 4) >= Table.height()) {
                    ArrowBottom.css('visibility', 'hidden');
                    ArrowBottom.css('cursor', 'none');
                }
                else {
                    ArrowBottom.css('visibility', 'visible');
                    ArrowBottom.css('cursor', 'pointer');
                }
            }
        });
    }
}

function InitPrint() {
    $(".PrintButton").click(function () {
        $(".NewsDetails").printElement({ printMode: 'popup',
            printBodyOptions:
            {
                classNameToAdd: 'print'
            }
        });
    });

}

