var replaceAreas = ['ajankohtaistaReplace'];

function clickLink(url) {
	openDynaLink(url); 
}
function initDynaLink() {

	if(navigator.userAgent.toLowerCase().indexOf("msie") > -1) {
		document.iframeHack = true;
	}
	jQuery('[rel=dynalink]').unbind('click').click(function(ev) {
		ev.preventDefault(); 
		try {
			ajankohtaistaOtsikko(jQuery(this).text());
		} catch(err) {}

		clickLink(jQuery(this).attr('href'));
	}); 
}
function openDynaLink(url, skipHistory) {
	jQuery('body').css('cursor', 'progress');
	jQuery('a').each(function(linkTag) { jQuery(linkTag).css('cursor', 'progress'); });
	setTimeout('doOpenDynaLink("'+url+'", '+skipHistory+')', 1);
	try {
		pageTracker._trackPageview(url);
	} catch(err) {}

}

function doOpenDynaLink(url, skipHistory) {
	jQuery.get('http://'+window.location.hostname + url, function(html) {
		html = new String(html).replace(/\n/g, "").replace(/\r/g, ""); 

		replaceContentAreas(replaceAreas, html);
	}); 
}

function replaceContentAreas(areas, html) {
	var content = []
	var totalContent = 0; 
	var readyContent = 0; 
	for(var i = 0; i < areas.length; i++) {
		var area = areas[i];
		var re = new RegExp("<!--"+area+"Begin-->.*<!--"+area+"End-->", "g");
		var results = html.match(re);
		if(results && results[0]) {
			content[area] = results[0];
			totalContent++; 
		}
	}
	for(var area in content) {
		if(typeof content[area] != 'function' && area != '$family') {
	   	var ca = jQuery('#'+area)[0];
	   	if(ca) {
				if(++readyContent == totalContent) { 
					doReplaceContent(content); 
				}
	   	}
		}
	}
}

function replaceDynamicObject(area, n, s) {
	var ca = jQuery('#'+area)
	var jsre = new RegExp("<\!--dynamicObject-"+n+"-->", "g") 
	ca.html(ca.html().replace(jsre, s))
}

function doReplaceContent(content) {
	var jsre = new RegExp("<script[^>]*>(.*?)<\/script>", "gi") 
	onLoadFunctions = []; 
	for(var area in content) {
		if(typeof content[area] != 'function' && area != '$family') {
			var ca = jQuery('#'+area);
			if(ca) {
				var scriptCounter = 0; 
				if(document.getElementById) {
					document.getElementById(area).innerHTML = content[area].replace(jsre, function(fullMatch) { if(fullMatch.match("insertObject", "g")) return '<!--dynamicObject-' + (scriptCounter++)+"-->"; else { ++scriptCounter; return fullMatch; } } );
				} else {
					jQuery('#'+area).html(content[area].replace(jsre, function(fullMatch) { if(fullMatch.match("insertObject", "g")) return '<!--dynamicObject-' + (scriptCounter++)+"-->"; else { ++scriptCounter; return fullMatch; } } ));
				}
				var scripts = content[area].match(jsre); 
				if(scripts) {
		  		for(var j = 0; j < scripts.length; j++) {
		  			var parsedScript = scripts[j].replace(new RegExp("(<\/?script[^>]*>|<!--|\/\/-->)", "ig"), "")
		  			if(parsedScript) {
		  				parsedScript = parsedScript.replace(new RegExp("insertObject.", "g"), "replaceDynamicObject('"+area+"', "+j+", "); 
		  				try {
			    			if(window.ActiveXObject) {
				    			window.execScript(parsedScript)
			    			} else {
			    				window.eval(parsedScript)
			    			}
		  				} catch(e) {
		  					// something went wrong, let's forget about it
		  				}
		  			}
		  		}
				}
			}
		}
	}
	for(j = 0; j < onLoadFunctions.length; j++) {
		onLoadFunctions[j](); 
	}
	initDynaLink();
	jQuery('body').css('cursor', '');
	jQuery('a').each(function() { jQuery(this).css('cursor', ''); });
	jQuery('a > img').parent().css('border-bottom-width', '0px');  
	jQuery('a.hovertrigger').overlay();
}

var transitionRunning = false; 
var links = false;

function Start() {
	if(document.iframeHack) { // this is so that IE enables the back button after the first click
		var an = document.getElementById('ajaxnavi')
		if(an) {
			an.src = '/layout/mediamodo/include/php/url.php?go=' + getPath(window.location.href)
		}
	}
	initDynaLink(); 
	jQuery('a > img').parent().css('border-bottom-width', '0px');  
}

/**
 * jQuery Callback
 * @author Alberto Bottarini <alberto.bottarini@gmail.com
 * @version 1.1
 * @homepage http://code.google.com/p/jquerycallback
 *
 * jQuery-callback permits jQuery developer to have a real control to their callback functions. 
 * With this plugin you can set custom parameters and custom scope to each callback defined in your script. 
 */
 
(function(jq) {
	var asArray = function(a) {
		return Array.prototype.slice.call(a,0);
	}
	jq.delegate = function(func, scope, params, overwriteDefault) {
		if(!jQuery.isArray(params)) params = [params];
		return function() {
			if(!overwriteDefault) func.apply(scope, asArray(arguments).concat(params));
			else func.apply(scope, args);
		}
	}	
	jq.callback = function(func, params, overwriteDefault) {
		return jq.delegate(func, this, params, overwriteDefault);
	}
})(jQuery);

jQuery(document).ready(function() {
	Start(); 
});

