var site = brand;  
 
site.init = function() {  
      /** testing **/
     //generic.flash.abort = true;  
     //site.view.colorNav.abort = true; 
      //site.globalnav.abort = true;
      //site.checkout.abort = true;  
      //site.product.abort = true;
      //site.customerService.abort = true;
       
      /** temporary changes **/
      //turn off features not ready for launch
       
      generic.init(); 
      generic.templates.factory.templateHash = "jsTemplates";   
      generic.forms.init();  
      
      try {
      	var id = page_data.panel_nav["default"].id;
      } catch(e) {
      	console.log("page_data missing");
      	return;
      }
      
      site.view.init();          
      site.globalnav.init(); 
      site.account.init();  
      site.checkout.init();
      site.product.init();
      site.customerService.init();
       
      //site.livechat.init(); //doesn't exist on intl sites
}     

document.observe("dom:loaded", site.init );     
  
  
 
//-----------------------------------------------------hacks
//cms-output html panel_navs sometimes have this ancient js
//eg. Artists panel or Customer Service panel
var el = function() { return legacy};
var legacy = { addBehavior:function() {}} 
var BehaviorRollover = false;  


//-----------------------------------------------------legacy    
generic.flash.Api = {};
generic.flash.Api.jsCall = function(method, args) { 
    if (generic.flash.ApiMethods[method]) {
        var resp = generic.flash.ApiMethods[method](args);
        return resp;
    } else {}  
};

generic.flash.ApiMethods = { 
    cuePoint: function() {  
        var args = arguments[0];
        generic.events.fire({event:"videoPlayer:cuePoint", msg:args}); 
    //  var inc = Object.toJson(args);
    //  return {"results": args} 
    },

    cuePointProduct: function(args) {
        var passthru = args[0].actions[0];
        this.cuePoint(passthru);
    },

    alterCart: function(args) {   
        console.log("generic.flash.apiMethods.alterCart "+Object.toJSON(args));
        site.checkout.alterCart.alter(args); 
    },

    pageData: function(nargs) { alert("generic.flash.ApiMethods.pageData");
        var args = nargs[0];
        var result;
        var pd = parent.page_data;
        if (!pd) return;
        if (args && args.query) {
            //console.log("retrieving page_data with query: " + args.query);
            var path = args.query.split(".");
            var length = path.length;
            var value = pd;
            for (var i = 0; i < length; i++) {
                var key = path.shift();
                value = value[key];
            }
            result = value;
        } else {
            result = pd;
        }
        return { "results": result } 
    }, 
    
    notifyEvent: function(nargs) {    
        site.view.colorNav.setWidth(nargs.event);
    },
    
    setElementSize: function(nargs) {  
        //brand.view.setElementSize(nargs[0]);
        site.view.productBrowser.resizeEmbedContainer(nargs[0]);
    }
}


// cms inline functions
//-----------------------------------------------------

function openFullWindow(url, name, w, h) {
    var w = window.open(url, name, "menubar=1, toolbar=1, resizable=1, scrollbars=1, width=" + w + ", height=" + h);
}