function FLink()
{
	var currentHash	= "";
	
	var validUrl = function(u)
	{
		return (u != null) && (u.length > 0) && (u != '/') && (u != '#');
	};
	
	var getHash = function()
	{
		var e = decodeURI(location.href).split('#');
		return e.length > 1 ? e[1] : "";
	};
	
	this.init = function()
	{
		currentHash = getHash();
	};
	
	this.setHash = function(hash, append)
	{
		if (!validUrl(hash) || hash == currentHash)
			return;
		
		if (append)
			currentHash += hash;
		else
			currentHash = hash;
		
		location.replace('#' + currentHash);
	};
	
	this.getHash = function()
	{
		return currentHash;
	}
};

var flink = new FLink();
flink.init();

// iframe embed
var getTransformProperty = function(element) {
    var properties = ['transform', 'WebkitTransform', 'MozTransform'];
    var p;
    while (p = properties.shift()) {
        if (typeof element.style[p] != 'undefined') {
            return p;
        }
    }
    return false;
}

var show_frame = function(url, x1, y1, x2, y2, scale) {
    try { console.log('js show_frame',url,x1,y1,x2,y2,scale) } catch(x){ }
    
    var ifr = document.getElementById('i_container');
    if (!ifr) return false;

    
    if (url.substr(0,7) != 'http://') url = 'http://' + url;
    var style = 'position:absolute;left:' + x1 + 'px; top:'+ y1 + 'px;',
        w = x2-x1, h=y2-y1;
    
    ifr.innerHTML = '<iframe style="'+style+'" src="'+ url +'" scrolling="auto" marginwidth="0" marginheight="0" frameborder="0" height="'+ h +'" width="'+w+'"></iframe>';

    // try to scale the iframe
    var prop = getTransformProperty(ifr); 
    if (prop){
        var virtual_x = 1024,
            scale = w/virtual_x,
            virtual_y = h/scale,
            tx = virtual_x/2 - scale*virtual_x/2,
            ty = virtual_y/2 - scale*virtual_y/2;

        try { console.log('Setting CSS3 vx,vy='+virtual_x+',' + virtual_y + ' '+prop+' scale='+scale+' tx='+tx+' ty='+ty); } catch(x){}

        ifr.childNodes[0].style[prop] = 'translate('+(-tx)+'px,'+(-ty)+'px) scale('+scale+')';
        ifr.childNodes[0].style['width'] = virtual_x + 'px';
        ifr.childNodes[0].style['height'] = virtual_y + 'px';
        
    }
    

}

var hide_frame = function() {
    var ifr = document.getElementById('i_container');
    if (!ifr) return false;

    ifr.innerHTML = '';
};


