////////////////////////////////////////////
// COOKIES
////////////////////////////////////////////

var Cookie = {

    set: function(name, value, days) {
		
		if (days) {
			var date = new Date();
			date.setTime(date.getTime()+(days*24*60*60*1000));
			var expires = "; expires="+date.toGMTString();
		} else var expires = "";		
        
        document.cookie = name + "=" +value+expires+"; path=/";
        
    },

    get: function(name) {
        
        var start = document.cookie.indexOf(name+"=");
        var len = start + name.length + 1;
        
        if ((!start) && (name != document.cookie.substring(0, name.length))) {
            return null;
        }
        
        if (start == -1) return null;
        
        var end = document.cookie.indexOf(";", len);
        
        if (end == -1) end = document.cookie.length;
        
        return unescape(document.cookie.substring(len, end));
    },
	
	remove: function(name) {
		Cookie.set(name, ' ', -1);
	}
}

var photobar = {};

photobar.intransition = false;

function moveBar(offset) {
    
    var bar = $('photolist');
    if (!bar) return false;
    
    if (photobar.intransition == true) return false;
    
    photobar.intransition = true;
    
    new Effect.Move(bar, { 
        x: offset, 
        duration: 0.5,
        afterFinish: function() {
            
            var newoffset = parseInt(bar.style.left);
            
            if (newoffset < 0) {
                Element.show('moveleft');
                var positiveOffset = newoffset-(newoffset*2);
                var numitems = $F('numitems');
                var totalwidth = numitems*80;
	            var current = (newoffset < 0) ? (positiveOffset/880) + 1 : 1;				
				
                var previouslyShown = positiveOffset / 80;
                
                if (previouslyShown >= (numitems-10)) {

                    if ($('moveright')) Element.hide('moveright');
                    
                } else {
                    
                    if ($('moveright')) Element.show('moveright');
                    
                }
                
            } else {
                
                if ($('moveleft')) Element.hide('moveleft');
                if ($('moveright')) Element.show('moveright');
				
				var current = 1;
				
            }
            
            photobar.intransition = false;            
			
			currentPhotobarID = current;
			updatePhotoBarNav(current);
			
            
        }
    });
}

var currentPhotobarID = 1;
function movePhotobarItemById(id, element) {
	
    var bar = $('photolist');
    if (!bar) return false;
    
    var currentoffset = currentPhotobarID*880;
    var targetoffset = (id*880);
    var difference = currentoffset-targetoffset;    
    
    currentPhotobarID = id;
    
    moveBar(difference);
    
}

var portfolio = {};

function moveItems(offset) {
    
    var bar = $('newslist');
    if (!bar) {
        bar = $('portfoliolist');
        if (!bar) {
	        bar = $('sublist');
	        if (!bar) return false;
	    }
    }
	
	// Mac: titels verbergen
	
	if (Browser.platform == 'Macintosh' && Browser.platform == 'Firefox') {
		
		var titles = $A(bar.getElementsByClassName('sIFR-replaced'));
		
		titles.each(function(header) {
			header.style.visibility = 'hidden';
			header.getElementsByTagName('embed')[0].style.visibility = 'hidden';
		});
		
	}
    
    new Effect.Move(bar, { 
        x: offset, 
        duration: 0.5,
        afterFinish: function() {
            
            portfolio.intransition = false;
            
            var newoffset = parseInt(bar.style.left);
            
            if (newoffset < 0) {
                var positiveOffset = newoffset-(newoffset*2);
                var numitems = $F('numNewsitems');
                var totalwidth = numitems*225;
                var previouslyShown = positiveOffset / 225;
            } 
			
			if (Browser.platform == 'Macintosh' && Browser.platform == 'Firefox') {			
			
				titles.each(function(header) {
					header.style.visibility = 'visible';
					header.getElementsByTagName('embed')[0].style.visibility = 'visible';				
				});			
				
			}
	            
        }
    });    
}

portfolio.intransition = false;

var currentID = 1;
function moveItemsById(id, element) {
    if (portfolio.intransition == true) {
        return false;
    }
    
    portfolio.intransition = true;
    
    var bar = $('newslist');
    if (!bar) {
        bar = $('portfoliolist');
        if (!bar) {
	        bar = $('sublist');
	        if (!bar) return false;
	    }
    }
	
	if (parseInt(bar.style.left) < 0) {
		var negativeOffset = parseInt(bar.style.left);
		var positiveOffset = negativeOffset-(negativeOffset*2);           
		currentID = (positiveOffset / 872)+1;
	} 
	
	var numPages = Math.ceil(parseInt(bar.getElementsByTagName('li').length) / 4);
    var currentoffset = currentID*872;
    var targetoffset = (id*872);
    var difference = currentoffset-targetoffset;    
    
    currentID = id;
	
	if (id > 1) {
		Element.show('itemmoveleft');
	} else {
		Element.hide('itemmoveleft');
	}
	
	if (id == numPages) {
		Element.hide('itemmoveright');
	} else {
		Element.show('itemmoveright');
	}
	
	Cookie.set(bar.id.toString().replace('list', '')+'PageID', currentID);
    
    moveItems(difference);
    
}

function movePortFolioItem(offset) {
    
    var bar = $('portfolioItemPhotos');
    if (!bar) return false;
    
    if (portfolio.intransition == true) {
        return false;
    }
    
    portfolio.intransition = true;
    
    new Effect.Move(bar, { 
        x: offset, 
        duration: 0.5,
        afterFinish: function() {
            
            portfolio.intransition = false;
            
            var newoffset = parseInt(bar.style.left);
            var positiveOffset = newoffset-(newoffset*2);            
            var current = (newoffset < 0) ? (positiveOffset/410) + 1 : 1;
            
            if (newoffset < 0) {
                
                if ($('itemmoveleft')) Element.show('itemmoveleft');

                var numitems = $F('numitemsPortfolio');
                var totalwidth = numitems*410;
                
                if (current == numitems) {
                    
                    if ($('itemmoveright')) Element.hide('itemmoveright');
                    
                } else {
                    
                    if ($('itemmoveright')) Element.show('itemmoveright');
                    
                }
                
            } else {
                
                if ($('itemmoveleft')) Element.hide('itemmoveleft');
                if ($('itemmoveright')) Element.show('itemmoveright');
                
            }
            
            
            $('currentphoto').innerHTML = current;
            
            updatePortfolioNav(current);
            
        }
    });
}

function movePortfolioItemById(id) {
    
    if (portfolio.intransition == true) {
        return false;
    }
    
    var bar = $('portfolioItemPhotos');
    
    if (!bar) return false;
    
    var current = parseInt($('currentphoto').innerHTML);
    var currentoffset = current*410;
    var targetoffset = id*410;
    var difference = currentoffset-targetoffset;
    
    if (id == current) {
        return false;
    }
    
    portfolio.intransition = true;
    
    new Effect.Move(bar, { 
        x: difference, 
        duration: 0.5,
        afterFinish: function() {
            
            portfolio.intransition = false;
            
            var newoffset = parseInt(bar.style.left);
            var positiveOffset = newoffset-(newoffset*2);            
            var current = (newoffset < 0) ? (positiveOffset/410) + 1 : 1;
            
            if (newoffset < 0) {
                
                if ($('itemmoveleft')) Element.show('itemmoveleft');

                var numitems = $F('numitemsPortfolio');
                var totalwidth = numitems*410;
                
                if (current == numitems) {
                    if ($('itemmoveright')) Element.hide('itemmoveright');
                } else {
                    if ($('itemmoveright')) Element.show('itemmoveright');
                }
                
            } else {
                if ($('itemmoveleft')) Element.hide('itemmoveleft');
                if ($('itemmoveright')) Element.show('itemmoveright');
            }
            
            
            $('currentphoto').innerHTML = current;
            
            updatePortfolioNav(current);
        }
    });    
    
}

function updatePortfolioNav(current) {
	
    var n = parseInt($F('numitemsPortfolio'));
    var s = $('counter');
    var links = $A(s.getElementsByTagName('a'));
	var counts = [];
	
	links.each(function(link, key) { 
		counts.push(parseInt(link.innerHTML.replace('|', '')));
	});
	
	function createLinks(start) {
	
		s.innerHTML = '';
		
		for (var i = start; i <= start+2; i++) {
			
			if (i <= n) {
			
				var a = document.createElement('a');
				a.href = 'javascript:;';
				a.onclick = function() { movePortfolioItemById(parseInt(this.innerHTML));}
				a.appendChild(document.createTextNode(i));
				s.appendChild(a);
				
				if (i != (start+2)) {
					s.appendChild(document.createTextNode(' | '));
				} else {
					s.appendChild(document.createTextNode(' '));
				}
				
			}
		}	
		
	}
	
	if (current > counts.max()) {
		
		createLinks(current-2);
		
	} else if (current < counts.min()) {
		
		createLinks(current);
		
	}
	
}

function updatePhotoBarNav(current) {
	
    var n = parseInt($F('numitems')/10);
    var s = $('barCounter');
    var links = $A(s.getElementsByTagName('a'));
	var counts = [];
	
	links.each(function(link, key) { 
		counts.push(parseInt(link.innerHTML.replace('|', '')));
	});
	
	function createLinks(start) {
	
		s.innerHTML = '';
		
		for (var i = start; i <= start+2; i++) {
			
			if (i <= n) {
			
				var a = document.createElement('a');
				a.href = 'javascript:;';
				a.onclick = function() { movePhotobarItemById(parseInt(this.innerHTML));}
				a.appendChild(document.createTextNode(i));
				s.appendChild(a);
				
				if (i != (start+2)) {
					s.appendChild(document.createTextNode(' | '));
				} else {
					s.appendChild(document.createTextNode(' '));
				}
				
			}
		}	
		
	}
	
	if (current > counts.max()) {
		
		createLinks(current-2);
		
	} else if (current < counts.min()) {
		
		createLinks(current);
		
	}
	
}

function checknumItems() {
    var element = $('numNewsitems');
    if (!element) return false;
    if (parseInt(element.value) > 4) {
        Element.show('itemmoveright');
    }
}

function isIE() {
    if (navigator.appVersion.match(/\bMSIE\b/)) return true;
    return false;
}


function attachMenuHandler() {
    if (!isIE) return false;
    var menu = $('menu').getElementsByTagName('ul')[0];
    var listitems = menu.getElementsByTagName('li');
    
    for (var i = 0; i < listitems.length; i++) {
        
        if (listitems[i].tagName && listitems[i].tagName.toLowerCase() == 'li') {
            listitems[i].onmouseover = function() {
                Element.addClassName(this, 'hover');
            };
            listitems[i].onmouseout = function() {
                Element.removeClassName(this, 'hover');
            };
        }
    }
}

function hasScrollbar(element) {
    element = $(element);
    return (element.clientHeight < element.scrollHeight);
}

function attachScroller() {
    
	if ($('topContent')) {
	    var content = $('topContent');
	    
	    if (!hasScrollbar(content)) return false;
	} else {
		return false;
	}
    
    //content.style.overflow = 'hidden' ;
    
}

/////////////////////////////////////////////////////
// SIFR CONFIGURATIE
/////////////////////////////////////////////////////

function replaceHeaders(onload) {
	
    if(typeof sIFR == "function"){
	
        sIFR.replaceElement("h2", named({sFlashSrc: "/swf/SIFR/cushing.swf", sColor: "#444444", sWmode: 'transparent'}));
        sIFR.replaceElement("h3", named({sFlashSrc: "/swf/SIFR/cushing.swf", sColor: "#444444", sWmode: 'transparent'}));
        sIFR.replaceElement("h4", named({sFlashSrc: "/swf/SIFR/cushing.swf", sColor: "#444444", sWmode: 'transparent'}));
    } 
}

/////////////////////////////////////////////////////
// EVENT HANDLER ATTACHERS
/////////////////////////////////////////////////////

//Event.observe(window, 'load', checknumItems);
Event.observe(window, 'load', function() { replaceHeaders(true) });
Event.observe(window, 'load', attachMenuHandler);
Event.observe(window, 'load', attachScroller);
Event.observe(window, 'load', function() {
    var l = $('logo');
    if (l) {
        
        Event.observe(l, 'click', function() {
            window.location.href = '/';
        });
    }
	
	// menulink thingy
	var menulinks = $A(document.getElementsByClassName('menulink'));
	menulinks.each(function(link, key) { 
		Event.observe(link, 'click', function() { 
			Cookie.remove('portfolioPageID');
			Cookie.remove('newsPageID');		
			Cookie.remove('subPageID');		
		});
	});
    
    if ($('itemmoveleft') && $('itemmoveright')) {
        
        Event.observe('itemmoveleft', 'click', function() {
            return movePortFolioItem(410);
        });
        Event.observe('itemmoveright', 'click', function() {
            return movePortFolioItem(-410);
        });
        
    }
    
});
