var menuembeded = false;
var pagesDefinitions = new Array("home", "about","news","applications","careers","contact","terms","meta","reportabuse");

var Anchor = '';

var ajaxManager = $.manageAjax.create('cacheQueue', {
    queue: true,  
    cacheResponse: false,
    maxRequests: 1
});

var pageId = 0;

function queryString() {
	var qs = window.location.search.split("?");
	if (typeof qs[1] != 'undefined') return qs[1];
	return '';
}


function callback(hash)
{
    $('#contentBox').hide();
    $('#loading').show();

	if(hash == '') hash = "home";
	ajaxManager.add({
            success: pageLoaded, 
		  url: 'tb_'+ hash + '.php?'+queryString()
	});

	pageId = 0;
	for(i=0; i < pagesDefinitions.length; i++) {
		if(hash == pagesDefinitions[i]) {
			pageId = i;
			break;
		}
	}
	
	if(!menuembeded) {
		/* 
		 * Embeding top menu only once, after hash was defined by jquery_history
		 */
		menuembeded = true;

		var flashvars = {
			selected: pageId
		};
		
		var params = {
			wmode: "transparent"
		};
		
		var attributes = {
				id: "menu",
				name: "menu"
			};

		swfobject.embedSWF("tb_swf/menu.swf", "topMenuBox", "1100", "155", "10.0.0", "tb_js/swfobject/expressInstall.swf", flashvars, params, attributes);
	} else {
		var menu = document.getElementById("menu");
		menu.selectItem(pageId);
	}
}

function getFlashObject(aName)
{
  if (navigator.appName.indexOf("Microsoft Internet")==-1)
  {
    if (document.embeds && document.embeds[aName])
      return document.embeds[aName]; 
  }
  if (window.document[aName]) 
  {
      return window.document[aName];
  }
  else // if (navigator.appName.indexOf("Microsoft Internet")!=-1)
  {
    return document.getElementById(aName);
  }
}

function changeStripe(sWidth)
{
    return;
    //todo: fix getting flash object and calling changeStripe on it
    var menu = getFlashObject("menu");
    var result;
    result = menu.changeStripe(sWidth);
    return result;
}

function setPageData(title, desc, keywords) {
	document.title = title;

	metatags = document.getElementsByTagName("meta");
    for (i = 0; i < metatags.length; i++)
    {
        var name = metatags[i].getAttribute("name");
        var content = metatags[i].getAttribute("content");
        if( name == "description") {
        	metatags[i].setAttribute("content", desc);
        }

        if (name == "keywords") {
            metatags[i].setAttribute("content", keywords);
        }
    }
}

function pageLoaded(pageContent) {
    pageTracker._trackPageview('/"+ pagesDefinitions[pageId] +"');

    $('#loading').hide();
    $('#contentBox').show();
	$("#contentBox").html(pageContent);
    setPageData(pages_titles[pageId],pages_desc[pageId],pages_keywords[pageId]);

    if($('#appRightBox').css('width')){
        var regexp = new RegExp("\\d{1,3}", "g");
        var width = regexp.exec($('#appRightBox').css('width'));
        changeStripe(width);
    }
    else
        changeStripe(0);

    setAnchor();
    if(AdminMode){
        
        tinyMCE.init({
                mode : "textareas",
                    theme : "advanced",
                    mode: "specific_textareas",
                    editor_selector: "wysiwyg",
                    theme_advanced_buttons1: "mylistbox,mysplitbutton,bold,italic,underline,formatselect,separator,strikethrough,justifyleft,justifycenter,justifyright,justifyfull,bullist,numlist,undo,redo,link,unlink,separator,code,",
                    theme_advanced_buttons2: "",
                    theme_advanced_buttons3: ""
                    });
    }
}

function loadPageAndGoTo(pageId, anchor)
{
    Anchor = anchor;
    getPage(pageId);
}

function loadPage(pageId) {

    if(AdminMode){
        var editors = tinymce.EditorManager.editors;
        for (var key in editors)
            {
            tinyMCE.execCommand('mceRemoveControl', false, editors[key].id);
            }
    }

    Anchor = '';
	getPage(pageId);
}

function getPage(pageId)
{
    /* 
	 * called from SWF top menu onClick buttons action
	 */
    $('#contentBox').hide();
    $('#loading').show();

	pageStr = pagesDefinitions[pageId];
	ajaxManager.clear('cacheQuest',true);
    
    ajaxManager.add({ 
            success: pageLoaded, 
		  url: 'tb_' + pageStr + '.php'
	  });

    $.history.load(pageStr);
}

$(document).ready(function() {
   if(location.href.indexOf("?") != -1) {
	   params = location.href.split("?");
	   
	   for(i=0; i < pagesDefinitions.length; i++) {
		   if(params[1] == pagesDefinitions[i]) {
		   	    location.href = location.href.replace("?","#");
	   	   }
	   }
   }
   $.history.init(callback);
   
   $(".ajaxLink").click(function() {
	  /* Clear queue before adding next request (for fast clicking on links) */
	  ajaxManager.clear('cacheQuest',true);

      $('#contentBox').hide();
      $('#loading').show();

	  ajaxManager.add({ 
		  success: pageLoaded, 
		  url: $(this).attr('href') + '.php'
	  });

      $.history.load($(this).attr('href'));

      return false;
   });
});

function setAnchor()
{
    if(Anchor != ''){
        $(document).scrollTo( $(Anchor), 1000 );
    }
}