var web_dir = "";
var history_int = 0;
var check_ready_int = 0;
var browser = jQuery.browser;
var iframe;
var index = "/";
var page;
var frame_ready = false;
var frame_loading = true;

function initNavigation(){
	
	iframe = document.getElementById("website");
	$(iframe).load(function(){
		if(!frame_ready){
			//frame_ready = true;
			//onFrameLoad();
		}
	});
	setFrameUrl(getUrlMask());
	
	//Set history interval
	setInterval(checkHistory, 200);
}
	
function onFrameUnLoad(){	
	frame_ready = false;
	frame_loading = true
	
	clearInterval(check_ready_int);
	check_ready_int = setInterval(checkIfReady, 100);
}

function onFrameLoad(){
	
	//Set the title	
	document.title = iframe.contentWindow.document.title;
	
	page = iframe.contentWindow.location.href
	var info = getUrlInfo(iframe.contentWindow.location.href);
	if(browser.msie){
		window.location.replace("#" + info.relative);		
	}else {		
		window.location.href = ("#" + info.relative);
	}
	
	frame_ready = true;
}

//Check if iframe is loaded
function checkIfReady() {	
	if (frame_loading) {
		var reg = /wp-admin/;
		var url = getFrameUrl();
		if(reg.test(url)){
			var info = getUrlInfo(url);
			window.top.location.href = info.relative;
			clearInterval(check_ready_int);
		}
		return;
	}
	clearInterval(check_ready_int);
	onFrameLoad();
}

//Get link details
function getLinkInfo(obj){
	var info = this.getUrlInfo(obj.toString());
		
	//First check where this window should be opened
	var link = $(obj);
	var target = link.attr("target");
	info.target = target.replace("_", "");

	//Now check if this is internal link		
	if(link.attr("href").charAt(0) == "#"){
		info.internal = true;
	}else {
		info.internal = false;
	}
		
	return info;
}

//Current iframe url
 function getFrameUrl(){
	return (iframe.contentWindow.location.href + "").split("#")[0];
}
	
//Get location which is showed in location bar
function getUrlMask(){
	var tmp = (window.location.href + "").split("#");			
	if(!tmp[1]){
		tmp = getUrlInfo(index);				
	}else {
		tmp = getUrlInfo(tmp[1]);
	}
	return tmp.relative;		
}
	
//This method checks if user clicked on back button
function checkHistory(){
	if(!frame_ready){
		return;
	}
	
	var url = getFrameUrl();
	var info = getUrlInfo(url);			
	var mask_url = getUrlMask();
			
	if(info.relative != mask_url){							
		if(browser.msie){
			window.location.replace("#" + url);
		}else {
			iframe.contentWindow.location.replace(mask_url);			
		}
	}
}

function setFrameUrl(page){
	if(!page){
		page = index;
	}
	var info = getUrlInfo(page);
	if(browser.msie){
		window.location.replace("#" + info.relative);
		iframe.src = page;
	}else {
		iframe.contentWindow.location.replace(page);
		window.location.href = ("#" + info.relative);
	}			
}

//Get link details
function getUrlInfo(url){
	var info = {url: url};
		
	//Now check if this link from our domain
	var tmp = /^((http|https|ftp):\/\/(www\.)?([^\/]*))?(.*)$/i.exec(url);
	info.protocol 	= tmp[2];
	info.domain 	= tmp[4];
	info.relative 	= tmp[5];
	
	//Return final result
	return info;
}
	
//Convert a link to the relative depending on this page
function toRelativeUrl(url){
	var info;
	if(typeof(url) == "string"){
		info = getUrlInfo(url);			
	}else {
		info = url;
	}
	if(new RegExp(web_dir).test(info.relative)){				
		return info.relative.substring(web_dir.length);
	}else {
		return info.relative;	
	}			
}