var HAP = {};
					
HAP.functions = {

	animationspeed: 500,
	themeDir: "get set by PHP in the head",

	init: function () {
		$('body').supersleight();
		//$.preLoadImages(this.themeDir+'/images/btn_left_over.png', this.themeDir+'/images/btn_right_over.png', this.themeDir+'/images/btn_back_over.png');
		this.doCustomBindings();
		this.goForms();
		$("#tabs").tabs();
		
		if(BrowserDetect.browser=='Firefox') {
			$('nav ul li a').attr('style', 'top:-9px;');
		} else if ( (BrowserDetect.browser=='Explorer')  && (BrowserDetect.version=='7') ) {
			$('nav ul li a').attr('style', 'top:0px;');
		}
		
		if(BrowserDetect.OS=='iPad') {
			$('footer').css({'display':'none'});
		} else if(BrowserDetect.OS=='iPhone/iPod') {
			$('footer').css({'display':'none'});
		}
		
		HAP.functions.searchTweets();
		setInterval("HAP.functions.searchTweets()", 1200000);
	},
	
	searchTweets: function() {
		$("#twitter").html('');
		$("#twitter").tweet({
			avatar_size: 32,
			count: 6,
			query: "hapdedag",
			loading_text: "zoeken naar tweets..."
		});		
	},

	doCustomBindings: function() {
		$("article[class!='intro']").find('h1.toggle').bind('click', HAP.functions.toggleInfo);
	},
	
	toggleInfo: function() {
		var elem = $(this).parent().find('.extra_info');
		
		if($(elem).is(':hidden')) {
			$(elem).show(HAP.functions.animationspeed);
		} else {
			$(elem).hide(HAP.functions.animationspeed);
		}	
	},
	
	goForms: function() {
		if($('#contactform')) {
			$('#contactform').validate({
				rules : {
					email		: "required email",
					onderwerp	: "required",
					bericht		: "required"
				},
				submitHandler: function(form) {
					$(form).ajaxSubmit({
		                url		: HAP.functions.themeDir + '/scripts/formhandler.php',
		                type	: 'post',
		                success	: function() {
							$('.form').html('Uw bericht is verzonden.');                
		                }		                						
					});
				}
			});
		}
	},
	
	trace: function (trace){
		if(typeof console =='object') {
			if(typeof trace =='string' || typeof console.dir !='function'){
				console.info("Trace: "+trace);
			}else{
				console.dir(trace);
			}
		}
	}

};

var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{
			string: navigator.userAgent,
			subString: "Chrome",
			identity: "Chrome"
		},
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari",
			versionSearch: "Version"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			   string: navigator.userAgent,
			   subString: "iPhone",
			   identity: "iPhone/iPod"
	    },
		{
			   string: navigator.userAgent,
			   subString: "iPad",
			   identity: "iPad"
	    },	    
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();

