dojo.require('dojo.hash');
dojo.require('dijit.dijit');
dojo.require('dojo.parser');
dojo.require('dijit.Dialog');
dojo.require("dojo.window");
dojo.require('dojox.image.Lightbox');
dojo.require('dojox.image.LightboxNano');
dojo.require('dijit.MenuBar');
dojo.require('dijit.MenuBarItem');
dojo.require('dijit.PopupMenuBarItem');
dojo.require('dijit.Menu');
dojo.require('dijit.MenuItem');
dojo.require('dijit.PopupMenuItem');

function spinner(target) {
  if (dojo.byId('spinner')) dojo.destroy('spinner'); 
  else if (target) { var newdiv = dojo.create('div'); newdiv.id = 'spinner'; dojo.place(newdiv,target,0); }
}

var chassis=false;
var doc=false;

function pick() {
  if (dojo.byId('dialog')) 
    dijit.byId('dialog').show();
  else 
    load('chassis-'+chassis,'dialog');
}

function dialog(c,w) {
  if (dojo.byId('dialog')) dijit.byId('dialog').destroyRecursive();
  var d = new dijit.Dialog({id:'dialog',content:c});
  if (w) d.set('style',{width:w});
  d.show();
}

function back(fn) {
  load(fn,false,true);
}

function load(fn,target,save) {
  if (doc==fn) return;
  if (!target) {
	if (fn&&(fn.indexOf('SPL')!=0)) {
	  window.location=fn+'.html';
	  return;
    }
    target='ctr';
    if (dojo.byId('dialog')) dijit.byId('dialog').destroyRecursive();
    if (!save) dojo.hash(fn);
    if (!fn) fn='chassis-'+chassis;
    doc=fn;
  }
  spinner('page');
  dojo.xhrGet({
    url:fn+'.html',
    handleAs:"text",
    load: function(data){
      spinner();
      data=data.split('<div'+' id="ctr"'); data=data[1].split('>'); data.splice(0,1); data=data.join('>');
      data=data.split('<div'+' id="ftr"'); data=data[0].split('</div>'); data.pop(); data=data.join('</div>');
      if (target=='ctr') {
      	dojo.byId(target).innerHTML=data;
      	if (dojo.byId('main')) dojo.style('main','width','400px');
      	dojo.parser.parse(target);
      	if (dojo.byId('back')&&chassis) dojo.byId('back').innerHTML='< '+chassis+' products<br/>';
      	social();
      } else {
        dialog(data);
        dijit.byId(target).show();
      }
    },
    error: function() {spinner(); alert('Sorry, this page is not available');}
  });
}

function resize() {
  if ((!dojo.window)||(!dojo.window.getBox)) { 
    setTimeout('resize();',1000);  
    return;	
  } else if (dojo.byId('main')) {
    var s=dojo.style('pics','width');
    if (s>0) {
      var vs=dojo.window.getBox();
      var x=vs.w-s-80;
      if (x<300)
    	dojo.style('main','width','auto');
      else
        dojo.style('main','width',x+'px');
    }
  }
}

function social() {
  var gp=document.createElement('script'); 
  gp.id='googleplus';
  gp.type='text/javascript'; 
  gp.async=true; 
  gp.src='https://apis.google.com/js/plusone.js';
  var tw=document.createElement('script');
  tw.id='twitter';
  tw.type='text/javascript'; 
  tw.async=true; 
  tw.src='http://platform.twitter.com/widgets.js';
  var s=document.getElementsByTagName('script')[0];
  dojo.place(gp,'googleplus','replace');
  dojo.place(tw,'twitter','replace');
  FB.XFBML.parse();
}

function init() {
  chassis=document.location.href.split('chassis-');
  if (chassis[1]) chassis=chassis[1].split('.html')[0]; else chassis=false;
  dojo.xhrGet({
    url:'menu2.html',
	handleAs:'text',
	load: function(data){ dojo.place(data,'menu','replace'); dojo.parser.parse('hdr'); dojo.connect(window,'onresize',resize); }
  });
  if (chassis) {
    dojo.subscribe("/dojo/hashchange",false,back);
    if (document.location.href.indexOf('#')>0) {
      var fn=dojo.hash();
      load(fn,false,true);
    }
  }
  social();
}

dojo.ready(init);

var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-25502105-1']);
_gaq.push(['_trackPageview']);

(function() {
  var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
  ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
  var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();

