dojo.require("dojox.atom.io.model");
dojo.require("dojox.atom.io.Connection");

dojo.addOnLoad(addBlockLinks);
function addBlockLinks(){
    dojo.query('div.topBlock, div.middleBlock, div.caseBlock[class!=yellow]').forEach(function(block){
		var link = dojo.query('a', block)[0];
		if(link && dojo.hasClass(block, 'yellowBlock') == false) {
			dojo.connect(block, 'onclick', link, function(){
				window.location = this.href;
			});
		}
    });
}

function showTab() {
    var tabs = dojo.query('div.tabs li');
    var tabContent = dojo.query('div.main div.tab');
    dojo.forEach(tabs, function(tab, i){
	if(tab == this) {
	    if(dojo.hasClass(tab, 'active') == false) {
		tabContent.removeClass('active');
		tabs.removeClass('active');
	    }
	    dojo.addClass(tab, 'active');
	    dojo.addClass(tabContent[i], 'active');
	}
    }, this)
}

//add the login actions to the buttons
function addLoginActions() {
    var loginFields = dojo.query('div.login form input[type=text]');
    loginFields.connect("onfocus", onLoginFocus);
    loginFields.connect("onblur", onLoginBlur);
}

//store the passwords
var oldPasswordValue = '';
var oldUsernameValue = '';
//save the initial value, and removes the text if is not different then the initial text
function onLoginFocus(){
    if(dojo.attr(this, 'name') == 'password') {
	if(oldPasswordValue == '')
	    oldPasswordValue = this.value;

	if(this.value == oldPasswordValue)
	    dojo.attr(this, 'value', '');
	//doe dit altijd als er gefocused word
	dojo.attr(this, 'type', 'password');
    } else if(dojo.attr(this, 'name') == 'username') {
	if(oldUsernameValue == '')
	    oldUsernameValue = this.value;

	if(this.value == oldUsernameValue)
	    dojo.attr(this, 'value', '');
    }
}

//if the field is empty place the old text back
function onLoginBlur(){
    if(dojo.attr(this, 'name') == 'password') {
		if(this.value == '') {
			this.value = oldPasswordValue;
			dojo.attr(this, 'type', 'text');
		}
    } else if(dojo.attr(this, 'name') == 'username') {
	if(this.value == '')
	    this.value = oldUsernameValue;
    }

}

dojo.addOnLoad(function(){
    var socialMedia = dojo.query('.socialLinks p');
	socialMedia.forEach(function(node, index, nodeList){
		if(socialMedia.length -1 > index) {
			dojo.connect(node, 'mouseover', [node, nodeList[nodeList.length-1]], addSocialHovers)
			//addSocialHovers(node, nodeList[nodeList.length-1]);
		}
	})
});

function addSocialHovers(){
	var media = this[0];
	var link = dojo.query('a', this[1])[0];
	var href = dojo.attr(dojo.query('a', media)[0], 'href');
	dojo.attr(link, 'href', href);
	var text = dojo.query('span', media)[0];
	link.innerHTML = text.innerHTML;
}

dojo.addOnLoad(function(){
    var tabs = dojo.query('div.tabs li');
    var tabContent = dojo.query('div.main div.tab');
    if(tabs.length == tabContent.length) {
		for(i=0, len=tabs.length;i<len;i++) {
			dojo.connect(tabs[i], 'onclick', tabs[i], showTab);
		}
    }
    addLoginActions();
    loadTwitter();
});

function loadTwitter() {
    //http://twitter.com/statuses/user_timeline/116685805.json?count=2
    if(dojo.query('.right .twitter').length >= 1 ){
	var loadTwitter = dojo.xhrGet({
	    url: "/tweets",
	    handleAs: "json",
	    load: function(responseObject){
		dojo.query('.right .twitter')[0].innerHTML = responseObject;
		return responseObject;
	    },
	    error: function(response){
		console.log(response);
		return response;
	    }
	});
    }
}

function getPortfolioFlash() {
    var isIE = navigator.appName.indexOf("Microsoft") != -1;
    return (isIE) ? window['portfolio'] : document['portfolio'];
}
function changeXML(xml) {
    getPortfolioFlash().sendTextToFlash(xml);
}

/**
 * Search form
 */
dojo.addOnLoad(function(){
    if(dojo.byId('location')) {
	dojo.connect(dojo.byId('location'), "onkeydown", function foo(event) {
	    key = event.keyCode;
	    if(key == dojo.keys.ENTER) {
		calcRoute();
	    }
	})
    }
});

/**
 * subMenu hover
 */


dojo.require("dijit.layout.StackContainer");
dojo.require("dijit.layout.ContentPane");
var sc;
var tabs = [];
dojo.addOnLoad(function() {
    sc = new dijit.layout.StackContainer({
	    style: "height: 30px; width: 930px;",
	    id: "subTabs"
	},
	"subTabs"
    );
    menuItems = dojo.query('div.header>ul li a');
    menuItemLinks = dojo.query('div.header>ul li');
    dojo.query('#subTabs>div').forEach( function(tab, index){
	first = (dojo.hasClass(tab, 'active'));
	tabWidget = new dijit.layout.ContentPane({
	    content: tab
	});
	//haal de hidden class weg, deze is er voor als er geen javascript is
	dojo.query('div', tabWidget.domNode).removeClass('dijitHidden')
	
	tabs[index] = tabWidget;
	dojo.connect(menuItems[index], 'onmouseenter', tabWidget, showTab);
	dojo.connect(menuItems[index], 'onmouseenter', menuItemLinks[index], showSelected);
	if(first){
	    sc.addChild(tabWidget, 0);
	    dojo.connect(dojo.query('.header')[0], 'onmouseleave', tabWidget, showTab);
	    dojo.connect(dojo.query('.header')[0], 'onmouseleave', menuItemLinks[index], showSelected);
	} else {
	    sc.addChild(tabWidget);
	}
    });

    sc.startup();
});

function showTab() {
    sc.selectChild(this)
}

function showSelected() {
    //als het het goede menu is doe niets
    hiddenImage = dojo.query('div.header>ul li img');
    hiddenImage.addClass('hidden');
    image = dojo.query('img', this);
    dojo.removeClass(image[0], 'hidden');
}

