var isBackend = false;
var error = false;

if (!IE6) document.write('<script type="text/javascript" src="' + (isBackend?'../':'') + 'lib/js/frontend/prototype.js"></script>');

document.write('<script type="text/javascript" src="' + (isBackend?'../':'') + 'lib/js/frontend/effects.js"></script>');
document.write('<script type="text/javascript" src="' + (isBackend?'../':'') + 'lib/js/frontend/dragdrop.js"></script>');
document.write('<script type="text/javascript" src="' + (isBackend?'../':'') + 'lib/js/frontend/proto.menu.js"></script>');
document.write('<script type="text/javascript" src="' + (isBackend?'../':'') + 'lib/js/frontend/window.js"></script>');
document.write('<script type="text/javascript" src="' + (isBackend?'../':'') + 'lib/js/frontend/window_ext.js"></script>');
document.write('<script type="text/javascript" src="' + (isBackend?'../':'') + 'lib/js/frontend/window_effects.js"></script>');
document.write('<script type="text/javascript" src="' + (isBackend?'../':'') + 'lib/js/frontend/debug.js"></script>');
document.write('<script type="text/javascript" src="' + (isBackend?'../':'') + 'lib/js/frontend/event.simulate.js"></script>');

document.write('<script type="text/javascript" src="' + (isBackend?'../':'') + 'lib/js/frontend/editinplace.js"></script>');
document.write('<script type="text/javascript" src="' + (isBackend?'../':'') + 'lib/js/frontend/icon_ui.js"></script>');
document.write('<script type="text/javascript" src="' + (isBackend?'../':'') + 'lib/js/frontend/iframes_func.js"></script>');

document.write('<script type="text/javascript" src="' + (isBackend?'../':'') + 'lib/js/frontend/pwc-os.js"></script>');

var isNotProccessAjax=true;
var mouseMoveX;
var mouseMoveY;

function setMouseCoords(e){
 	//var mouseX = Event.pointerX(e),mouseY = Event.pointerY(e);
    
    var offset = document.viewport.getScrollOffsets();
    		
    var posx=0, posy=0;
	var ev=(!e)?window.event:e;//IE:Moz
	if (ev.pageX){//Moz
		posx=ev.pageX+window.pageXOffset-offset['left'];
		posy=ev.pageY+window.pageYOffset-offset['top'];
	}
	else if(ev.clientX){//IE
		posx=ev.clientX+document.body.scrollLeft+offset['left'];
		posy=ev.clientY+document.body.scrollTop+offset['top'];
	}
	else{return false}//old browsers
    		
    mouseMoveX = posx;
    mouseMoveY = posy;    
}

var IE = document.all?true:false;

document.onmousemove = setMouseCoords;
document.onmousedown = setMouseCoords;

/**
 * Javascript functionality to show that ajax request is being processed
 */

/**
 * Shows loading gif when an ajax is being processed
 */
function displayLoading(e){
 	//var mouseX = Event.pointerX(e),	mouseY = Event.pointerY(e);  	
 	
 	var offset = document.viewport.getScrollOffsets();
 	//alert(offset);
 	
 	var posx=0, posy=0;
	var ev=(!e)?window.event:e;//IE:Moz
	if (ev.pageX){//Moz
		posx=ev.pageX+window.pageXOffset-offset['left'];
		posy=ev.pageY+window.pageYOffset-offset['top'];
	}
	else if(ev.clientX){//IE
		posx=ev.clientX+document.body.scrollLeft+offset['left'];
		posy=ev.clientY+document.body.scrollTop+offset['top'];
	}
	else{return false}//old browsers 	
 	
    mouseMoveX = posx; 
    mouseMoveY = posy;    
    $("loading2").setStyle({left: mouseMoveX + 10 + 'px', top: mouseMoveY + 16 + 'px', visibility: 'visible'})    
}

/**
 * Sets the onload event of a starting ajax execution
 */
function setLoadEvent() {
	isNotProccessAjax=false;	
	document.onmousemove = displayLoading;
	$("loading2").setStyle({left: mouseMoveX + 10 + 'px', top: mouseMoveY + 16 + 'px', visibility: 'visible'});
}

/**
 * Sets the end event of an ajax request
 */
function setCompleteEvent() {
	document.onmousemove = setMouseCoords;
	$("loading2").setStyle({visibility: 'hidden'});
	isNotProccessAjax=true;
}
/**
 * End of js functionality for the ajax requests
 */

function str_replace(search, replace, subject, count)
{
    var i = 0, j = 0, temp = '', repl = '', sl = 0, fl = 0,
            f = [].concat(search),
            r = [].concat(replace),
            s = subject,
            ra = r instanceof Array, sa = s instanceof Array;
    s = [].concat(s);
    if (count) {
        this.window[count] = 0;
    }
 
    for (i=0, sl=s.length; i < sl; i++) {
        if (s[i] === '') {
            continue;
        }
        for (j=0, fl=f.length; j < fl; j++) {
            temp = s[i]+'';
            repl = ra ? (r[j] !== undefined ? r[j] : '') : r[0];
            s[i] = (temp).split(f[j]).join(repl);
            if (count && s[i] !== temp) {
                this.window[count] += (temp.length-s[i].length)/f[j].length;}
        }
    }
    
    return sa ? s : s[0];
}

function initHomePage()
{
	document.onclick=hideLangList;
}

function toggleLangList() 
{
	if(typeof isFolder != 'undefined' && isFolder) return;
	
	if ($('lang-list').getStyle('display') == 'none')
	{
		$('lang-list').setStyle({display: ''});
	}
	else
	{
		$('lang-list').setStyle({display: 'none'});
	}
}

function hideLangList(e)
{
	if(typeof isFolder != 'undefined' && isFolder) return;
	
	var targ;
	if (!e) var e = window.event;
	if (e.target) targ = e.target;
	else if (e.srcElement) targ = e.srcElement;
	if (targ.nodeType == 3) // defeat Safari bug
		targ = targ.parentNode;

	if (targ.id != 'lang-btn')
	{
		if ($('lang-list').getStyle('display') != 'none')
		{
			$('lang-list').setStyle({display: 'none'});
		}
	}
}

function hideSearchList(e)
{
	if(typeof isFolder != 'undefined' && isFolder) return;
	
	var targ;
	if (!e) var e = window.event;
	if (e.target) targ = e.target;
	else if (e.srcElement) targ = e.srcElement;
	if (targ.nodeType == 3) // defeat Safari bug
		targ = targ.parentNode;

	if (targ.id != 'searchTypeBtn')
	{
		if ($('searchMenu').getStyle('display') != 'none')
		{
			$('searchMenu').setStyle({display: 'none'});
		}
	}
}

function searchFromTab()
{
	if(typeof isFolder != 'undefined' && isFolder) return;
	
	var googleUrl = 'http://www.google.com/search?q=';
	var yahooUrl = 'http://search.yahoo.com/search?p=';
	var msnUrl = 'http://www.bing.com/search?q=';
	var askUrl = 'http://www.ask.com/web?qsrc=0&o=0&l=dir&q=';
	
	var currentUrl = '';
	switch(currentSearchTab)
	{	
		case 0:
			currentUrl = googleUrl;
			break;
		case 1:
			currentUrl = yahooUrl;
			break;
		case 2:
			currentUrl = msnUrl;
			break;
		case 3:
			currentUrl = askUrl;
			break;
	}
	
	var query = encodeURIComponent(String.interpret($('search-input-tab').getValue()));
	
	currentUrl += query;
	
	showBrowser(currentUrl, 1);
}

function toggleMenu() 
{
	if ($('menu').getStyle('display') == 'none')
	{
		$('menu').setStyle({display: ''});
	}
	else
	{
		$('menu').setStyle({display: 'none'});
	}
}

function hideMenu(e)
{
	if(typeof isFolder != 'undefined' && isFolder) return;
	
	var targ;
	if (!e) var e = window.event;
	if (e.target) targ = e.target;
	else if (e.srcElement) targ = e.srcElement;
	if (targ.nodeType == 3) // defeat Safari bug
		targ = targ.parentNode;

	if (targ.id != 'menu-btn')
	{
		if ($('menu').getStyle('display') != 'none')
		{
			$('menu').setStyle({display: 'none'});
		}
	}
	
	$$('.submenu').each(function(el){ el.hide(); });
	
	if(
		(e.target && e.target.id!='langChanger')
		||
		(e.srcElement && e.srcElement.id!='langChanger')
		||
		(!e.target && !e.srcElement)
	)
	{
		$('langMenu').hide();
	}
}

function showSubMenu(id) 
{
	if(typeof isFolder != 'undefined' && isFolder) return;
	
	$(id).show();
}

function hideSubMenu(id) 
{
	if(typeof isFolder != 'undefined' && isFolder) return;
	
	setTimeout("$('"+id+"').setStyle({display: 'none'})",500);
}

function minimizeDesktop()
{
	var oldVerticalDeskHolderOffset = verticalDeskHolderOffset;
	if($('tabs').getStyle('display')=='none')
	{
		verticalDeskHolderOffset = 138;
		$('toolbar').setStyle({height: '138px'});
		$('desktopMinimizer').removeClassName('btn-maximize').addClassName('btn-minimize').writeAttribute('title', localizedStrings.MINIMIZE_TOOLBAR);
	}
	else
	{
		verticalDeskHolderOffset = 60;
		$('toolbar').setStyle({height: '60px'});
		$('desktopMinimizer').removeClassName('btn-minimize').addClassName('btn-maximize').writeAttribute('title', localizedStrings.MAXIMIZE_TOOLBAR);
	}
	$('tabs').toggle();
	$('searchbar').toggle();
	$('links').toggle();
	
	Windows.windows.each(function(win) {
		var loc = win.getLocation();
		if(parseInt(loc.top) < verticalDeskHolderOffset)
		{
			win.setLocation(verticalDeskHolderOffset, parseInt(loc.left));
		}
		
		if(win.isMaximized())
		{
			win.setLocation(verticalDeskHolderOffset, parseInt(loc.left));
			win.setSize(win.width, win.height - verticalDeskHolderOffset + oldVerticalDeskHolderOffset);
		}
	});
	
	setUpDeskHolder();
}

dialogVisible = false;
function showDialog(dlgID)
{
	if (!dialogVisible)
	{
		dialogVisible = true;		
		$(dlgID).show();	
		$('dlg_overlay').show();
		centerElement(dlgID);
	}
}

function hideDialog(dlgID)
{
	if (dialogVisible)
	{
		$(dlgID).hide();
		$('dlg_overlay').hide();
		dialogVisible = false;
	}
}

function centerElement(elementID)
{
	var element = $(elementID);
	
	var top = Math.round((document.viewport.getHeight() - element.getHeight())/2);
	var left = Math.round((document.viewport.getWidth() - element.getWidth())/2);
	
	element.setStyle({left: left+'px', top: top+'px'});
}

tooltipVisible = false;
function showFS()
{
	if (!tooltipVisible)
	{
		tooltipVisible = true;
		$('fullScreen').show();		
	
		var t=setTimeout("new Effect.Fade($('fullScreen'), {afterFinish: function() {$('fullScreen').hide(); tooltipVisible=false;}})",3000);
	}
}

function setSearchType(typeID, field)
{
	if (Number(typeID) == 1)
	{
		$('searchTypeBtn').removeClassName('btn-search-user').addClassName('btn-search-file');
		$('stbtn1').addClassName('checked');
		$('stbtn2').removeClassName('checked');
		$(field).value = 'files';
	}
	else if (Number(typeID) == 2)
	{
		$('searchTypeBtn').removeClassName('btn-search-file').addClassName('btn-search-user');
		$('stbtn1').removeClassName('checked');
		$('stbtn2').addClassName('checked');
		$(field).value = 'users';
	}
}

function displayIE6Alert()
{
	$('alert_overlay').style.display = '';

	arrayPageSize = getPageSize();
	$('alert_overlay').style.width = arrayPageSize[0] + 'px';
	$('alert_overlay').style.height = arrayPageSize[1] + 'px';
	
	$('ie6').style.display = '';
	$('ie6').style.left = Number((document.viewport.getWidth() - $('ie6').getWidth()) / 2) + 'px';
	$('ie6').style.top = Number((document.viewport.getHeight() - $('ie6').getHeight()) / 2) + 'px';
}

function hideIE6Alert()
{
	$('alert_overlay').style.display = 'none';
	$('ie6').style.display = 'none';
}

function getPageSize() 
{	        
     var xScroll, yScroll;
	
	if (window.innerHeight && window.scrollMaxY) {	
		xScroll = window.innerWidth + window.scrollMaxX;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	
	var windowWidth, windowHeight;
	
	if (self.innerHeight) {	// all except Explorer
		if(document.documentElement.clientWidth){
			windowWidth = document.documentElement.clientWidth; 
		} else {
			windowWidth = self.innerWidth;
		}
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}	
	
	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else { 
		pageHeight = yScroll;
	}

	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){	
		pageWidth = xScroll;		
	} else {
		pageWidth = windowWidth;
	}

	return [pageWidth,pageHeight];
}