/* --------------------------------------------------------------------------------------------*/
/* ---------------------------------->>> MSO FRAMEWORK V 1.1 <<<-------------------------------*/
/* --------------------------------------------------------------------------------------------*/
/*---------------------------------->>>Gary Evans & Travis Beck<<<------------------------------*/

var MSOFRAMEWORK = {};
/* -----------------------------------*/
/* ------------>>> LOAD <<<-----------*/
/* -----------------------------------*/
MSOFRAMEWORK.baseLoad = {
	swfu: null,
	post_params: null,
    msoDoc: null,
	 cDir: null,
	 cLoc: null,
    afterLoad: false,
    afterLoadTrigger: function() {},
    transparentImage: "/images/transparent.gif",
    initTabs: function() {
        //start url parse	
        var tabTest = document.getElementById('tab1Btn');
        if (tabTest) {
            var sURL = new String;
            var bits = new Object;
            var x = 0;
            var stop = 0;
            sURL = location.href;
            sURL = sURL.slice(8, sURL.length);
            chunkStart = sURL.indexOf("/");
            sURL = sURL.slice(chunkStart + 1, sURL.length);
            while (!stop) {
                chunkStart = sURL.indexOf("/");
                if (chunkStart != -1) {
                    bits[x] = sURL.slice(0, chunkStart);
                    sURL = sURL.slice(chunkStart + 1, sURL.length);
                } else {
                    stop = 1;
                }
                x++;
            };
				var tab;
				var tabinit;
				if(bits[0] == 'masonry-systems'){
					tabinit = bits[1];
				}else{
					tabinit = bits[0];
				};
				switch(tabinit){
					case 'inspiration':
						tab = $('tab1Btn');
						if(!tab.hasClassName('active')){
							tab.addClassName('active');
						}
						break;
					case 'information':
						tab = $('tab2Btn');
						if(!tab.hasClassName('active')){
							tab.addClassName('active');
						}
						break;
					case 'interaction':
						tab = $('tab3Btn');
						if(!tab.hasClassName('active')){
							tab.addClassName('active');
						}
						break;
					default:
						tab = $('tab1Btn');
						if(!tab.hasClassName('active')){
							tab.addClassName('active');
						}
						break;
					}
        };
        //end url parse
        var sets = document.getElementsByTagName("div");
        if (sets.length > 0) {;
            for (var i = 0; i < sets.length; i++){
                if (sets[i].className.indexOf("tabset") != -1){
                    var tabs = [];
                    var links = sets[i].getElementsByTagName("a");
                    for (var j = 0; j < links.length; j++){
                        if (links[j].className.indexOf("tab") != -1){
                            tabs.push(links[j]);
                            links[j].tabs = tabs;
                            var c = document.getElementById(links[j].href.substr(links[j].href.indexOf("#") + 1));
                            //reset all tabs on start
                            if (c) if (links[j].className.indexOf("active") != -1) {
                                c.style.position = "static";
                                c.style.top = "auto";
                            } else {
                                c.style.position = "absolute";
                                c.style.top = "-9999px";
                            }
                            links[j].onclick = function(){
                                var c = document.getElementById(this.href.substr(this.href.indexOf("#") + 1));
                                if (c){
                                    //reset all tabs
                                    for (var i = 0; i < this.tabs.length; i++){
                                        document.getElementById(this.tabs[i].href.substr(this.tabs[i].href.indexOf("#") + 1)).style.position = "absolute";
                                        document.getElementById(this.tabs[i].href.substr(this.tabs[i].href.indexOf("#") + 1)).style.top = "-9999px";
                                        this.tabs[i].className = this.tabs[i].className.replace("active", "");
                                    }
                                    this.className += " active";
                                    c.style.position = "static";
                                    c.style.top = "auto";
                                    return false;
                                }
                            };
                        }
                    }
                }
            }
        } else {
            escape;
        }
       // MSOFRAMEWORK.baseLoad.setContent()
        if ($('autocomplete')) {
            new Ajax.Autocompleter("autocomplete", "autocomplete_choices", '/get-tags/', {
                paramName: "q",
                minChars: 2,
                indicator: 'indicator1'
            });
        }
        if ($('autocomplete2')) {
            new Ajax.Autocompleter("autocomplete2", "autocomplete2_choices", '/get-tags/', {
                paramName: "q",
                minChars: 2,
                indicator: 'indicator2'
            });
        }
		
		//SWFUPLOAD
			
		
			
    },
    
    setContent: function() {
        var tab = document.getElementById('tab1Btn');
        if (tab) {
            sURL = new String;
            bits = new Object;
            var x = 0;
            var stop = 0;
            sURL = location.href;
            sURL = sURL.slice(8, sURL.length);
            chunkStart = sURL.indexOf("/");
            sURL = sURL.slice(chunkStart + 1, sURL.length);
            while (!stop) {
                chunkStart = sURL.indexOf("/");
                if (chunkStart != -1) {
                    bits[x] = sURL.slice(0, chunkStart);
                    sURL = sURL.slice(chunkStart + 1, sURL.length);
                } else {
                    stop = 1;
                }
                x++;
            }
			//TODO: Replace this with a hidden element.
			MSOFRAMEWORK.baseLoad.cDir = bits[3];
			MSOFRAMEWORK.baseLoad.cLoc = bits[2];
            switch (bits[2]) {
            case 'inspiration':
                if (bits[2]) {
                    if (bits[3]) {
                        document.title += 'Inspiration - Masonry Showcase - Project #' + bits[2] + ' - ' + bits[3];
                        MSOFRAMEWORK.XMLHTTP.loadContent(true, false, bits[3], 'Inspiration - Project: ' + bits[2], 'Project: ' + bits[3], 'app', 1);
                    } else {
                        document.title += 'Inspiration - Masonry Showcase - Project #' + bits[2];
                        MSOFRAMEWORK.XMLHTTP.loadContent(true, false, bits[2], 'Project: ' + bits[2], 'Project: ' + bits[2], 'app', 1);
                    };
                } else {
                    document.title += 'Inspiration - Masonry Showcase';
                    MSOFRAMEWORK.XMLHTTP.loadContent(true, false, 0, 'Masonry-Showcase', 'Masonry-Showcase', 'app', 1);
                };
                  MSOFRAMEWORK.XMLHTTP.loadContent(true, true, 0, 'Resource-Center', 'default', 'html', 2);
				      MSOFRAMEWORK.XMLHTTP.loadContent(true, true, 0, 'Communication-Center', 'default', 'html', 3);
                break;
            case 'information':
                //TODO Change to for loop with bits
                if (bits[2]) {
                    if (bits[3]) {
                        MSOFRAMEWORK.XMLHTTP.loadContent(true, false, 0, bits[2], bits[3], 'html', 2);
                        document.title += 'Information - ' + bits[2] + ' - ' + bits[3];
                    } else {
                        if (bits[2] == 'knowledgebase') {
                            MSOFRAMEWORK.XMLHTTP.loadContent(true, true, 0, 'Knowledge-Base', 'Knowledge-Base', 'app', 2);
                        } else {
                            MSOFRAMEWORK.XMLHTTP.loadContent(true, false, 0, bits[2], 'default', 'html', 2);
                        }
                        document.title += 'Information - ' + bits[2];
                    };
                } else {
                    MSOFRAMEWORK.XMLHTTP.loadContent(true, false, 0, 'Resource-Center', 'default', 'html', 2);
                    //sec2.innerHTML = 'Resource Center';
                    document.title += 'Information - ' + 'Resource Center';
                };
                  MSOFRAMEWORK.XMLHTTP.loadContent(true, true, 0, 'Masonry-Showcase', 'Masonry-Showcase', 'app', 1);
				      MSOFRAMEWORK.XMLHTTP.loadContent(true, true, 0, 'Communication-Center', 'default', 'html', 3);
                break;
            case 'interaction':
                if (bits[2]) {
                    if (bits[3]) {
                       document.title += 'Interaction - Design - Fourm Communication Center - Your Place to connect with masonry professionals';
                    	switch(bits[2]){
							case'masonry-resource-directory':
								$('intSearchPrams').style.display = 'block';
								$('search3').style.display = 'none';
								 MSOFRAMEWORK.XMLHTTP.loadContent(true, true, 0, bits[2], bits[3], 'app',3);
								 break;
							case'communication-center':
								if (bits[4]) {
									 MSOFRAMEWORK.XMLHTTP.loadContent(true, true, bits[4], bits[2], bits[3], 'forum',3);
								}else{
									 MSOFRAMEWORK.XMLHTTP.loadContent(true, true, bits[3], bits[2], bits[3], 'app',3);
								}
							break;
							default:
								 MSOFRAMEWORK.XMLHTTP.loadContent(true, false, 0, bits[2], bits[3], 'html', 3); 
							 break;
						};
					} else {
                  switch(bits[2]){
                     case'masonry-resource-directory':
                        $('intSearchPrams').style.display = 'block';
                        $('search3').style.display = 'none';
                        MSOFRAMEWORK.XMLHTTP.loadContent(true, true, 0, 'Masonry Resource Directory', bits[2], 'app', 3);
                        break;
                     default:
                        MSOFRAMEWORK.XMLHTTP.loadContent(true, false, 0, bits[2], 'default', 'html', 3); 
                        break;
                     };
                     document.title += 'Interaction - Communication Center - Your Place to connect with masonry professionals';
                  }
                } else {
				  MSOFRAMEWORK.XMLHTTP.loadContent(true, false, 0, 'Communication-Center', 'default', 'html', 3);
                  document.title += 'Interaction - Communication Center - Your Place to connect with masonry professionals';
                };
                document.title += 'Interaction - Communication Center - Your Place to connect with masonry professionals';
                MSOFRAMEWORK.XMLHTTP.loadContent(true, true, 0, 'Resource-Center', 'default', 'html', 2);
                MSOFRAMEWORK.XMLHTTP.loadContent(true, true, 0, 'Masonry-Showcase', 'Masonry-Showcase', 'app', 1);
                break;
            default:
                document.title += 'Inspiration - Masonry Showcase';
                MSOFRAMEWORK.XMLHTTP.loadContent(true, true, 0, 'Resource-Center', 'default', 'html', 2);
                MSOFRAMEWORK.XMLHTTP.loadContent(true, true, 0, 'Masonry-Showcase', 'Masonry-Showcase', 'app', 1);
				MSOFRAMEWORK.XMLHTTP.loadContent(true, true, 0, 'Communication-Center', 'default', 'html', 3);
                break;
            }
        }
    },
    
    ieHover: function() {
        var _list = document.getElementById('list');
        if (_list) {
            var _lis = _list.getElementsByTagName('li');
            for (var i = 0; i < _lis.length; i++) {
                _lis[i].onmouseover = function() {
                    $(this).addClassName('hover');
                };
                _lis[i].onmouseout = function() {
                    $(this).removeClassName('hover');
                };
            }
        }
        var _pList = document.getElementById('pic-list');
        if (_pList) {
            var _pLisA = _pList.getElementsByTagName('a');
            for (var i = 0; i < _pLisA.length; i++) {
                _pLisA[i].onmouseover = function() {
                    $(this).addClassName('hover');
                };
                _pLisA[i].onmouseout = function() {
                    $(this).removeClassName('hover');
                };
            }
        }
        

         var _pLisA = $$('#inpageTabs ul li');
         _pLisA.each(function(_list){
             _list.onmouseover = function() {
                 $(this).addClassName('hover');
             };
             _list.onmouseout = function() {
                 $(this).removeClassName('hover');
              };
         });

        
        if (typeof document.body.style.maxHeight == 'undefined') {
            var imgs = document.getElementsByTagName("img");
            for (i = 0; i < imgs.length; i++) {
                if (imgs[i].src.indexOf(this.transparentImage) != -1) {
                    return;
                }
                if (imgs[i].src.indexOf(".png") != -1) {
                    var src = imgs[i].src;
                    imgs[i].src = this.transparentImage;
                    imgs[i].runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "',sizingMethod='scale')";
                }
            }
        }
    },
    
    toolTipSetup: function() {
      var links = $$('a.ttip');
      links.each(function(link){
         var _link = new CoolTip(link, 'toolTip');
      });
    },
    
   setupInpageTabs:function(){
      var _lis = $$('#inpageTabs ul li');
      var z;
      var l;
      _lis.each(function(_li, i){
         l = -(18 * i) + "px";
         z = _lis.length-i;
         _li.zi = z;
         _li.setStyle({
            left: l,
            zIndex: (_li.hasClassName('active'))? _li.getStyle('z-index'): z
         });
         _li.observe('mouseover', function(){
            if(!this.hasClassName('active')){
               this.oldZ = this.getStyle('z-index');
               this.setStyle({zIndex: 20});
            }
         });
         _li.observe('mouseout', function(){
            if(!this.hasClassName('active')){
               this.setStyle({zIndex: this.oldZ});
            }
         });
         _li.observe('click', function(){
            var oldActive = $$('#inpageTabs ul li.active');
            if(oldActive[0]){
               oldActive[0].removeClassName('active');
               oldActive[0].setStyle({zIndex: oldActive[0].zi});
            }
            this.addClassName('active');
            this.setStyle({zIndex: 19});
            return false;
         });
      });
   },
    
    dockSetup: function() {
        if (document.getElementById('dockholder')) {
            if (typeof Dock != 'undefined') {
				$('dock').style.display = 'block';
                MSOFRAMEWORK.baseLoad.msoDoc = new Dock('dock-btn', 'dock', 'dockholder');
				MSOFRAMEWORK.events.attachDockAddClickEvent();
            }
        }
    },
    
    definitionListSetup: function() {
        var definitionList = $$('dl.collapsibledl');
        definitionList.each(
        function(dlist) {
            var _dlist = new CollapsibleList(dlist, 'defListBG');
         });
    },
    
    submitLinks: function() {
        var sublinks = $$('a.submitLink');
        var parForm;
        sublinks.each(function(_link) {
            Event.observe(_link, 'click', MSOFRAMEWORK.events.submitForm);
        });
    },
    
    setActiveLinks: function() {
        sURL = new String;
        bits = new Object;
        var x = 0;
        var stop = 0;
        sURL = location.href;
        sURL = sURL.slice(8, sURL.length);
        chunkStart = sURL.indexOf("/");
        sURL = sURL.slice(chunkStart + 1, sURL.length);
        while (!stop) {
            chunkStart = sURL.indexOf("/");
            if (chunkStart != -1) {
                bits[x] = sURL.slice(0, chunkStart);
                sURL = sURL.slice(chunkStart + 1, sURL.length);
            } else {
                stop = 1;
            }
            x++;
        }
        for (var i in bits) {
            if (document.getElementById(bits[i] + '-tab')) {
                document.getElementById(bits[i] + '-tab').className = 'active';
            }
        }
    },
    
    squeezeBoxSetup:function(){
       mySqueezeBox = new SqueezeBox();
    }

};


/* -----------------------------------*/
/* ----------->>> EVENTS <<<----------*/
/* -----------------------------------*/
MSOFRAMEWORK.events = {
    submitForm: function(event) {
        // Event.stop(event);
        //var obj = event.element();
        //console.info(obj.parentNode);
        //$(obj).up().submit();
        MSOFRAMEWORK.XMLHTTP.loadContent(false, false, 0, 'wall-systems', 'wall-system-results', 'html', 2);
    },
    
    attachImageClickEvent: function() {
        var openInputs = $$('a.wsLink');
        if (openInputs) {
            openInputs.each(function(adi) {
                Event.observe(adi, 'click', MSOFRAMEWORK.listeners.wsLinkClickHandler.bindAsEventListener(MSOFRAMEWORK.listeners, {
                    path: adi.href
                }));
            });
        }
    },
    
    attachDockAddClickEvent: function() {
        var openInputs = $$('a.addToDock');
        if (openInputs) {
            openInputs.each(function(adi) {
                Event.observe(adi, 'click', MSOFRAMEWORK.listeners.dockAddClickHandler.bindAsEventListener(MSOFRAMEWORK.listeners, {
                    href: adi.href,
                    title: adi.title
                }));
            });
        }
    },
    
    attachSearchClickEvent: function() {
        var openInputs = $$('input.submit');
        if (openInputs) {
            openInputs.each(function(adi) {
                Event.observe(adi, 'click', MSOFRAMEWORK.listeners.searchClickHandler.bindAsEventListener(MSOFRAMEWORK.listeners, {
                    id: adi.id
                }));
            });
        }
        var mediaInputs = $$('input.chb');
        if (mediaInputs) {
            mediaInputs.each(function(cdi) {
                Event.observe(cdi, 'click', MSOFRAMEWORK.listeners.searchClickHandler.bindAsEventListener(MSOFRAMEWORK.listeners, {
                    id: cdi.id,
                    value: cdi.value
                }));
            });
        }
    },
    
    attachDockClickEvent: function() {
        var openInputs = $$('input.submit');
        if (openInputs) {
            openInputs.each(function(adi) {
                Event.observe(adi, 'click', MSOFRAMEWORK.listeners.searchClickHandler.bindAsEventListener(MSOFRAMEWORK.listeners, {
                    id: adi.id
                }));
            });
        }
    },
	
    attachWSSearchEvent: function() {
        var openInputs = $$('a.wsSubmit');
        if (openInputs) {
            openInputs.each(function(adi) {
                Event.observe(adi, 'click', MSOFRAMEWORK.listeners.wsSearchClickHandler.bindAsEventListener(MSOFRAMEWORK.listeners, {
                    id: adi.id
                }));
            });
        }
    },
     attachCCTabEvent: function() {
        var openInputs = $$('li.ccTab');
        if (openInputs) {
            openInputs.each(function(adi) {
                Event.observe(adi, 'click', MSOFRAMEWORK.listeners.ccTabHandler.bindAsEventListener(adi));
            });
        }
    },
	 attachRDSearchEvent: function() {
        var openInputs = $$('input.rdSubmit');
        if (openInputs) {
            openInputs.each(function(adi) {
                Event.observe(adi, 'click', MSOFRAMEWORK.listeners.rdSearchClickHandler.bindAsEventListener(MSOFRAMEWORK.listeners, {
                    id: adi.id
                }));
            });
        }
    },
    
    attachInpPageClickEvent: function() {
        var inpInputs = $$('a.inpPaging');
        if (inpInputs) {
            inpInputs.each(function(adi) {
                Event.observe(adi, 'click', MSOFRAMEWORK.listeners.inpPageClickHandler.bindAsEventListener(MSOFRAMEWORK.listeners, {
                    id: adi.id,
                    action: adi.rel,
                    tab: adi.name
                }));
            });
        }
    },
    
    attachInoPageClickEvent: function() {
        var inoInputs = $$('a.inoPaging');
        if (inoInputs) {
            inoInputs.each(function(adi) {
                Event.observe(adi, 'click', MSOFRAMEWORK.listeners.inoPageClickHandler.bindAsEventListener(MSOFRAMEWORK.listeners, {
                    id: adi.id,
                    action: adi.rel,
                    tab: adi.name
                }));
            });
        }
    },
    
    attachIntPageClickEvent: function() {
        var intInputs = $$('a.intPaging');
        if (intInputs) {
            intInputs.each(function(adi) {
                Event.observe(adi, 'click', MSOFRAMEWORK.listeners.intPageClickHandler.bindAsEventListener(MSOFRAMEWORK.listeners, {
                    id: adi.id,
                    action: adi.rel,
                    tab: adi.name
                }));
            });
        }
    },
	
	 attachCalculateClickEvent: function() {
        var openInputs = $$('input.itemCost');
        if (openInputs) {
            openInputs.each(function(adi) {
                Event.observe(adi, 'click', MSOFRAMEWORK.listeners.calculateClickHandler.bindAsEventListener(MSOFRAMEWORK.listeners, {
                    id: adi.id,
                    cost: adi.value,
					opt: adi.title,
					type: adi.type
                }));
            });
        }
    },
    
    attachInpImgClickEvent: function() {
        var inpInputs = $$('a.inpImg');
        if (inpInputs) {
            inpInputs.each(function(adi) {
                Event.observe(adi, 'click', MSOFRAMEWORK.listeners.inpImgClickHandler.bindAsEventListener(MSOFRAMEWORK.listeners, {
                    id: adi.id,
                    href: adi.href
                }));
            });
        }
    },
    
    attachAZScrollEvent: function() {
        var inpInputs = $$('div.azList a');
        var topInputs = $$('a.tLink');
        if (inpInputs) {
            inpInputs.each(function(adi) {
                Event.observe(adi, 'click', MSOFRAMEWORK.listeners.azListClickHandler.bindAsEventListener(MSOFRAMEWORK.listeners, {
                    id: adi.id,
                    href: adi.href,
                    tab: adi.name
                }));
            });
            topInputs.each(function(adi) {
                Event.observe(adi, 'click', MSOFRAMEWORK.listeners.azListClickHandler.bindAsEventListener(MSOFRAMEWORK.listeners, {
                    id: adi.id,
                    href: adi.href,
                    tab: adi.name
                }));
            });
        }
    },
    
   attachSearchFilter:function(){
      var filters = $$('ul.filters li');
      filters.each(function(filter){
         Event.observe(filter, 'click', MSOFRAMEWORK.listeners.searchFilterHandler.bindAsEventListener(filter));
      });
      var input = $('autocomplete2');
      var filterHolder = $('infoFilters');
      var periodical;
      if(input){
         input.observe('click', function(){
            //periodical = setTimeout(mouseIsOverFilter, 1000);
            filterHolder.style.display = "block";
         });
         input.observe('focus', function(){
            //periodical = setTimeout(mouseIsOverFilter, 1000);
            filterHolder.style.display = "block";
         });
      }
      
      Event.observe(filterHolder, 'mouseout', function(e) {
         if(!Position.within(filterHolder,Event.pointerX(e),Event.pointerY(e) ) ){
            filterHolder.style.display = "none";
         }
      });
   },
   
   attachQuickLook:function(){
      var links = $$('a.quickLook');
      links.each(function(link){
         link.observe('click', MSOFRAMEWORK.listeners.quickLookHandler.bindAsEventListener(link));
      });
   },
   
   commentFromSubmitEvent: function() {
        var commentForm = document.getElementById('commentform');
        if (commentForm) {
            Event.observe(commentForm, 'submit', MSOFRAMEWORK.listeners.commentHandler.bindAsEventListener(MSOFRAMEWORK.listeners, {
            }));
        }
    },
	
    
    attachStateDropdownEvent: function(){
      var ddn = $('stateFilter');
      var opts;
      var query;
      var s;
      if(ddn){
         if(document.location.href.split('?')[1]){
            query = document.location.href.split('?')[1].toQueryParams();
            s = query.s;
         }
         ddn.observe('change', MSOFRAMEWORK.listeners.stateChangeHandler.bindAsEventListener(ddn));
         opts = ddn.childElements();
         opts.each(function(opt){
            if(opt.value == s){
               opt.selected = true;
               return;
            }
         });
      }
   }
   

   


};
/* -----------------------------------*/
/* --------->>> LISTENERS <<<---------*/
/* -----------------------------------*/
MSOFRAMEWORK.listeners = {
    scaleToNew: null,
    wsLinkClickHandler: function(e, args) {
        //Handles adding items to quote page
        //e = Event.element(e);	
        Event.stop(e);
        var img = args.path;
        MSOFRAMEWORK.utils.setImage(img);
    },
    commentHandler:function(e, args) {
        //Handles adding items to dock
        Event.stop(e);
       	MSOFRAMEWORK.XMLHTTP.addComment();
    },
    dockAddClickHandler: function(e, args) {
        //Handles adding items to dock
        Event.stop(e);
        e = Event.element(e);
        var href = args.href;
        var title = args.title;
        var tab = e.getAttribute('rel');
        MSOFRAMEWORK.baseLoad.msoDoc.addPage(href, title, tab);
    },
    ccTabHandler: function(e){
		var elms = this.getAttribute('rel');
		var elm = elms.split(',');
		var hide = elm[0];
		var show = elm[1];
		if(elm[2]){
			show = elm[2];
			$(elm[0]).style.display = 'none';
			$(elm[1]).style.display = 'none';
			$(show).style.display = 'block';
		}else{
			$(hide).style.display = 'none';
			$(show).style.display = 'block';
		}
		Event.stop(e);

	},
    inpPageClickHandler: function(e, args) {
        //Handles adding items to quote page
        //e = Event.element(e);	
        Event.stop(e);
        var action = args.action;
        MSOFRAMEWORK.XMLHTTP.loadContent(true, false, 0, 'Search Results', 'Search Results', 'app', 1, action);
    },
    
    inoPageClickHandler: function(e, args) {
        //Handles adding items to quote page
        //e = Event.element(e);	
        Event.stop(e);
        var action = args.action;
        MSOFRAMEWORK.XMLHTTP.loadContent(true, false, 0, 'Search Results', 'Search Results', 'app', 2, action);
    },
    
	 intPageClickHandler: function(e, args) {
        //Handles adding items to quote page
        //e = Event.element(e);	
        Event.stop(e);
        var action = args.action;
        MSOFRAMEWORK.XMLHTTP.loadContent(true, false, 0, 'Communication Center', MSOFRAMEWORK.baseLoad.cLoc, 'app', 3, action);
    },
	
	 calculateClickHandler: function(e, args) {
        //Handles cost calculator calculations
        //e = Event.element(e);	
        //Event.stop(e);
        MSOFRAMEWORK.CALCULATOR.calculate(args);
    },
    
    wsSearchClickHandler: function(e, args) {
        Event.stop(e);
        var s1 = document.getElementById('mySelect8');
        var dd1 = (s1.options[s1.options.selectedIndex].value).toLowerCase();
        var s2 = document.getElementById('mySelect9');
        var dd2 = (s2.options[s2.options.selectedIndex].value).toLowerCase();
        var s3 = document.getElementById('mySelect10');
        var dd3 = (s3.options[s3.options.selectedIndex].value).toLowerCase();
        document.location.href = '/masonry-systems/information/wall-systems-profiles/recommended-wall-systems/?dd1='+dd1+'&dd2='+dd2+'&dd3='+dd3;
		//MSOFRAMEWORK.XMLHTTP.loadResults(dd3, dd1, dd2);
    },
    
    rdSearchClickHandler: function(e, args) {
        Event.stop(e);
        var s1 = document.getElementById('mySelect11');
        var dd1 = (s1.options[s1.options.selectedIndex].value).toLowerCase();
        var s2 = document.getElementById('mySelect12');
        var dd2 = (s2.options[s2.options.selectedIndex].value).toLowerCase();
        MSOFRAMEWORK.XMLHTTP.loadContent(true, false, 0, 'Communication Center', 'masonry-resource-directory', 'app', 3, '', '', dd1, dd2);
    },
    
    azListClickHandler: function(e, args) {
        Event.stop(e);
        var href = args.href;
        href = href.substring(href.length - 1);
        if (this.scaleToNew) {
            //if the effect is already running cancel it.
            this.scaleToNew.cancel();
        };
        var OffSet = $('container').getHeight();
        this.scaleToNew = new Effect.ScrollTo('anc' + href, {
            afterFinish: function() {
                MSOFRAMEWORK.listeners.scaleToNew = null;
            }
        });
    },
    
    selectHandler: function(id) {
        var s;
        var action;
        if (id == 'mySelect1') {
            s = document.getElementById('mySelect1');
            action = 'default';
        } else {
            s = document.getElementById('mySelect2');
            action = 'inpmt';
        };
        var dd1 = (s.options[s.options.selectedIndex].value).toLowerCase();
        var q;
        document.location.href = "/masonry-systems/inspiration/masonry-showcase/?s="+dd1+"&gcat=58";
		//MSOFRAMEWORK.XMLHTTP.loadContent(false, false, 0, 'Masonry-Showcase', 'Masonry-Showcase', 'app', 1, action, q, '', dd1);
    },
    
    searchClickHandler: function(e, args) {
        //Handles adding items to quote page
        //e = Event.element(e);	
        var searchFilters = $$('searchFilters');
        searchFilters.each(function(obj){
           obj.style.display = none;
        });
        var id = args.id;
        var m = args.value;
        var q = '';
        var st;
        var s;
        var c;
        if (id == 'ser1') {
            st = $('autocomplete').value;
        } else {
            st = $('autocomplete2').value;
        }
        if (st != 'enter a search term') {
            q += st + ' ';
        }
        if (!m) {
            Event.stop(e);
        };
        if (id == 'ser1') {
            MSOFRAMEWORK.XMLHTTP.loadContent(false, false, 0, 'Masonry-Showcase', 'Masonry-Showcase', 'app', 1, 'default', q, '', '');
        } else {
            MSOFRAMEWORK.XMLHTTP.loadContent(false, false, 0, 'Search-Results', 'Search-Results', 'app', 2, 'default', q, m);
        }
    },
    
    inpImgClickHandler: function(e, args) {
        //Handles adding items to quote page
        //e = Event.element(e);	
        Event.stop(e);
        var href = args.href;
        var lImage = $('inpLPic');
        lImage.src = href;
    },
    
    searchFilterHandler: function(e, args){
       Event.stop(e);
       this.toggleClassName('checked');
    },
    
    quickLookHandler: function(e){
      Event.stop(e);
      var expandable = this.up(1).next('div');
      var height = expandable.down('p').getHeight();
      var _scaleFrom = 0;
      var _scaleTo = 100;
      if(!expandable.animating){
         expandable.animating = true;
         if(expandable.getHeight() > 1){
            _scaleFrom = 100;
            _scaleTo = 0;
            $(this).removeClassName('active');
         }else{
            $(this).addClassName('active');
         }
         new Effect.Scale(expandable, _scaleTo, {
            scaleX: false,
            scaleMode: {originalHeight: height, originalWidth: 200},
            scaleFrom: _scaleFrom,
            scaleContent: false,
            afterFinish: function(){expandable.animating = false;},
            duration: 0.3
         });
      }
    },
    stateChangeHandler: function(e){
       Event.stop(e);
       var pre;
       var loc;
       $(this).up().submit();
    }

};
/* -----------------------------------*/
/* -------->>> CALCULATOR <<<---------*/
/* -----------------------------------*/
MSOFRAMEWORK.CALCULATOR = {
	
	 calculate: function(args) {
      var url;
      var date = new Date();
      var d = date.getSeconds();
	  var opt = args.opt;
	  var cost = args.cost;
	  var type = args.type;
	  var str = args.id.split("_");
	  var id = str[1];
      var group = str[0];	  	  
	  
	  url = '/controls/calculate.php?group=' + group + '&id=' + id + '&cost=' + cost + '&opt=' + opt + '&type=' + type + '&nocache=' + d;
    
	new Ajax.Request(url, {
         method: 'get',
         onSuccess: function(t) {
             var response = t.responseText;
                 $('configuredCost').innerHTML = "$" + response + " sqft.";
         },
         onFailure: function(t) {
         
		 }
      });
        //loading animation
    }

};
/* -----------------------------------*/
/* ---------->>> XMLHTTP <<<----------*/
/* -----------------------------------*/
MSOFRAMEWORK.XMLHTTP = {

   loadingSection: true,
   scaleToNew: null,
   setPageId: function(id) {
     document.getElementById('pageid').value = id;
     document.getElementById('tags').value = '';
     $('message').innerHTML = "<strong>add tags for this page, separate each with a comma.</strong>";
   },
    
	addComment: function() {

            var statusBtn = $('formBtn');
            var serializedForm = Form.serialize('commentform');
            var url = '/wp-comments-post.php';
			new Ajax.Updater('comment_list', url, {
  				 parameters: serializedForm,
               	 method: 'post',
 				 insertion: Insertion.Bottom
 			 });
         	   //loading animation
   	 },	
	
	
   addTags: function(id, tags) {
      var url;
      var date = new Date();
      var d = date.getSeconds();
      if (!id) {
         id = document.getElementById('pageid').value;
      };
      if (!tags) {
         tags = document.getElementById('tags').value;
      };
      url = '/app/interface/tags/add/?id=' + id + '&tags=' + tags + '&nocache=' + d;
      new Ajax.Request(url, {
         method: 'get',
         onSuccess: function(t) {
             var response = t.responseText;
             if (response == true || response == 'true') {
                 $('message').innerHTML = "<strong>Tags have been added!</strong>";
             } else {
                 $('message').innerHTML = "<strong>There has been an error! Try Again.</strong>";
             }
         },
         onFailure: function(t) {
          }
      });
        //loading animation
    },
    
	addTopic: function(id, tags) {
      var url = '/app/interface/forum/add/';
      var date = new Date();
      var d = date.getSeconds();
      var serializedForm = Form.serialize('askAQuestionForm');
		var ed = tinyMCE.get('item_desc');
	   new Ajax.Request(url, {
         method: 'post',
			parameters: serializedForm,
         onSuccess: function(t) {
			ed.setProgressState(0); // Hide progress
             var response = t.responseText;
             if (response == true || response == 'true') {
                 $('message3').innerHTML = "<strong>Your Post Has Been Added</strong>";
             } else {
                 $('message3').innerHTML = "<strong>There has been an error! Try Again.</strong>";
             }
         },
         onFailure: function(t) {
				ed.setProgressState(0); // Hide progress
				$('message').innerHTML = "<strong>There has been an error! Try Again.</strong>";
         }
      });
		ed.setProgressState(1); // Show progress
	},
	
   initLoader: function(paging, id, dir, page, type, tab, action) {
      if (this.scaleToNew) {
         //if the effect is already running cancel it.
         this.scaleToNew.cancel();
      }
      this.scaleToNew = new Effect.ScrollTo('main-container', {
         afterFinish: function() {
             var cr = document.getElementById('cr' + tab);
             //TODO get this out of the code
             cr.innerHTML = '<img src="/images/loaders/activity.gif" style="position:absolute; top:100px; left:50px;" alt="loading" />';
             MSOFRAMEWORK.XMLHTTP.scaleToNew = null;
             MSOFRAMEWORK.XMLHTTP.loadingSection = false;
             MSOFRAMEWORK.XMLHTTP.loadContent(paging, false, id, dir, page, type, tab, action);
         }
      });
    },
    //TODO: Redo with options object	
    loadContent: function(paging, sim, id, dir, page, type, tab, action, q, m, dd) {
        if (MSOFRAMEWORK.XMLHTTP.loadingSection == false || sim == true) {
            var cmd = 0;
            var act;
            var url;
            var date = new Date();
            var d = date.getSeconds();
            if (id == "undefined" || id == undefined) {
                id = '';
            }
            if (dd == "undefined" || dd == undefined) {
                dd = 0;
            }
            if (id == 0 || id == '0') {
                id = '';
            };
            if (q == "undefined" || q == undefined) {
                q = '';
            }
            if (q == 0 || q == '0') {
                q = '';
            };
            switch (action) {
            case 'next':
                act = 'next';
                break;
            case 'prev':
                act = 'prev';
                break;
            case 'first':
                act = 'first';
                break;
            case 'last':
                act = 'last';
                break;
            case 'inpws':
                act = 'inpws';
                break;
            case 'inpmt':
                act = 'inpmt';
                break;
            default:
                act = 'none';
            };
            switch (type) {
            case 'html':
                url = '/inc/' + dir + '/' + page + '.' + type + '?id=' + id + '&nocache=' + d;
                break;
            case 'app':
                if (!m) {
                    var mediaInputs = $$('input.chb');
                    if (mediaInputs) {
                        mediaInputs.each(function(cdi) {
                            if (cdi.checked) {
                                m = cdi.value;
                            };
                        });
                    };
                };
                if (m == "undefined" || m == undefined) {
                    m = 'All';
                };
                url = '/app/interface/?id=' + id + '&q=' + q + '&a=' + act + '&t=' + tab + '&m=' + m + '&paging=' + paging + '&dd=' + dd + '&nocache=' + d +'&l=' + page;
                break;
			case 'forum':
				url = '/app/interface/forum/retrieve/?id=' + id + '&q=' + q + '&a=' + act + '&t=' + tab + '&m=' + m + '&paging=' + paging + '&dd=' + dd + '&nocache=' + d +'&l=' + page;
			break;
            default:
                url = '/inc/' + dir + '/' + page + '.' + type + '?id=' + id + '&nocache=' + d;
            };
            var container = document.getElementById('container');
            var dock = document.getElementById('dock');
            var cr = document.getElementById('cr' + tab);
            var mediacode;
            if (tab == 1 || tab == '1') {
                mediacode = 'INP';
            } else {
                mediacode = 'INO';
            }
            if (cr) {
                new Ajax.Request(url, {
                    method: 'get',
                    evalJS: 'force',
                    onSuccess: function(t) {
                        document.getElementById('pageid').value = mediacode + id;
                        var response = t.responseText;
                        cr.innerHTML = response;
                        var sec = $('sec' + tab);
                        switch (dir) {
								case 'wall-systems':
									dir = 'Wall System Profiles';
									break;
								case 'masonry-basics':
									dir = 'Masonry Basics';
									break;
                        };
                        sec.innerHTML = dir.replace('-', '&nbsp;');
                        dock.style.display = 'block';
                        
                    switch (type) {
                        case 'html':
								   switch (tab) {
									case 1:
										break;
									case 2:
										MSOFRAMEWORK.baseLoad.definitionListSetup();
										MSOFRAMEWORK.events.attachAZScrollEvent();
										MSOFRAMEWORK.events.attachWSSearchEvent();
										break;
									case 3:
												tinyMCE.init({
													mode : "textareas",
													theme : "advanced",
													plugins : "safari,spellchecker,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,print,contextmenu,paste,directionality,fullscreen",
													theme_advanced_buttons1 : "bold,italic,underline,separator,strikethrough,justifyleft,justifycenter,justifyright,justifyfull,bullist,numlist,undo,redo,link,unlink,|,forecolor,backcolor,|,preview,fullscreen",
													theme_advanced_buttons2 : "",
													theme_advanced_buttons3 : "",
													theme_advanced_toolbar_location : "top",
													theme_advanced_toolbar_align : "left",
													theme_advanced_statusbar_location : "bottom"
											});
										break;
									};
                            break;
                       		 case 'app':
										switch (tab) {
										case 1:
											MSOFRAMEWORK.events.attachInpImgClickEvent();
											MSOFRAMEWORK.events.attachInpPageClickEvent();
											MSOFRAMEWORK.baseLoad.toolTipSetup();
											break;
										case 2:
											MSOFRAMEWORK.events.attachInoPageClickEvent();
											break;
										case 3:
											MSOFRAMEWORK.events.attachIntPageClickEvent();
											break;
										};			
										break;
									};
						      mySqueezeBox = new SqueezeBox();//NOTE: only for the wallcostcalculator might wanna make a special case for this.
                        MSOFRAMEWORK.events.attachDockAddClickEvent();
							
                    },
                    onFailure: function(t) {
                        cr.innerHTML = '<div class="gradientBG"><h2>There has been a network error</h2></div>';
                    }
                });
                //loading animation
                cr.innerHTML = '<div class="gradientBG"><p class="loader">loading</p><img src="/images/loaders/activity.gif" alt="loading..." class="loader" /></div>';
            }
        } else {
            this.initLoader(paging, id, dir, page, type, tab, action);
        }
    },
    
    loadResults: function(m, t, y) {
        var date = new Date();
        var d = date.getSeconds();
        url = '/app/interface/wall-system-search/?m=' + m + '&t=' + t + '&y=' + y + '&nocache=' + d;
        var cr = $('cr2');
        if (cr) {
            new Ajax.Request(url, {
                method: 'get',
                onSuccess: function(t) {
                    var response = t.responseText;
                    cr.innerHTML = response;
                    var sec = $('sec1');
                    sec.innerHTML = 'Recommended Wall System';
                },
                onFailure: function(t) {
                    cr.innerHTML = '<div class="gradientBG"><h2>There has been a network error</h2></div>';
                }
            });
            //loading animation
            cr.innerHTML = '<div class="gradientBG"><p class="loader">loading</p><img src="/images/loaders/activity.gif" alt="loading..." class="loader" /></div>';
        }
    }
};
/* -----------------------------------*/
/* ------------>>> UTILS <<<----------*/
/* -----------------------------------*/
MSOFRAMEWORK.utils = {
    scalePage: false,
    openAdminPanel: function(method, args) {
        new Effect.toggle('edit-panel', 'slide');
    },
    
    getQueryVariable: function(variable) {
        var query = window.location.search.substring(1);
        var vars = query.split("&");
        var pair;
     //append qs to bypass link
        for (var i = 0; i < vars.length; i++) {
            pair = vars[i].split("=");
            if (pair[0] == variable) {
                return pair[1];
            }
        }
        return;
    },
	
	
	displayAdUnits: function(){
		var adArray = ['/advertisers/mso/020209/mso-v1.gif', '/advertisers/mso/020209/mso-v1.gif'];
		var pagesArray = ['industry-events'];
		var skyscraper = $('skyscraper');
		if(skyscraper){
		    var sURL = new String;
            var bits = new Object;
			var chunkStart;
            var x = 0;
            var stop = 0;
            sURL = location.href;
            sURL = sURL.slice(8, sURL.length);
            chunkStart = sURL.indexOf("/");
            sURL = sURL.slice(chunkStart + 1, sURL.length);
            while (!stop) {
                chunkStart = sURL.indexOf("/");
                if (chunkStart != -1) {
                    bits[x] = sURL.slice(0, chunkStart);
                    sURL = sURL.slice(chunkStart + 1, sURL.length);
                } else {
                    stop = 1;
                }
                x++;
            };
				var imgPos1 = pagesArray.indexOf(bits[1]) 
				var imgPos2 = pagesArray.indexOf(bits[2]);
				var imgPos;
				if(imgPos1 > -1){
						imgPos = imgPos1;
					}else{
						imgPos = imgPos2;
				};
				
				//console.info(imgPos);
				if(imgPos > -1){
					var imgHolder = $('skp1');
						//imgHolder.src = adArray[imgPos];
							skyscraper.style.display = 'block';							
							var container = $('container');
							var offset = container.viewportOffset();
							if(offset.left <= 150){
								container.style.margin = '0 auto 0 140px'
								skyscraper.style.left = 5 + 'px';
							}else{
							
								skyscraper.style.left = (offset.left - 140) + 'px';
							}
							
							
							
				}else{
						skyscraper.style.display = 'none';		
				};
		};
		
	},
    
    setContentHeight: function(theHeight, response) {
        var content = $("container");
        // get current height and width
        var hCur = Element.getHeight(content);
        var newHeight = theHeight;
        // scalars based on change from old to new
        var yScale = (newHeight / hCur) * 100;
        if (MSOFRAMEWORK.utils.scalePage == true) {
            MSOFRAMEWORK.utils.scalePage = false;
            new Effect.Scale(flashVid, yScale, {
                scaleX: false,
                duration: 0.7,
                delay: 0,
                scaleContent: false,
                afterFinish: MSOFRAMEWORK.utils.updateRegion()
            });
        } else {
            new Effect.Scale(flashVid, yScale, {
                scaleX: false,
                duration: 0.7,
                delay: .5,
                scaleContent: false
            });
        }
        MSOFRAMEWORK.utils.collapsed = true;
        //objBody.className = "viddivstylenh"
    },
    
    handleError: function(type, method) {
        var errStr;
        switch (type) {
        case 'request':
            //TODO: rewrite this crap
            errStr = 'There has been an error requesting the information you requested - CODE:';
            break;
        case 'response':
            errStr = 'There has been an error retriving the information you requested - CODE:';
        default:
            errStr = 'There has been an error on this page - CODE:';
        }
        return errStr;
    },
    
    setImage: function(img) {
        var wsImage = document.getElementById('wsImage');
        wsImage.innerHTML = '<img src="' + img + '" alt="wall system"  />';
    },
    
    setTab: function(tab) {
        var theTab = document.getElementById('tab' + tab);
        var tabBtn = document.getElementById('tab' + tab + 'Btn');
        var tab1 = document.getElementById('tab' + 1);
        var tab1Btn = document.getElementById('tab' + 1 + 'Btn');
        var tab2 = document.getElementById('tab' + 2);
        var tab2Btn = document.getElementById('tab' + 2 + 'Btn');
        var tab3 = document.getElementById('tab' + 3);
        var tab3Btn = document.getElementById('tab' + 3 + 'Btn');
        tab1.style.position = "absolute";
        tab1.style.top = "-9999px";
        tab1Btn.className = tab1Btn.className.replace("active", "");
        tab2.style.position = "absolute";
        tab2.style.top = "-9999px";
        tab2Btn.className = tab2Btn.className.replace("active", "");
        tab3.style.position = "absolute";
        tab3.style.top = "-9999px";
        tab3Btn.className = tab3Btn.className.replace("active", "");
        tabBtn.className += " active";
        theTab.style.position = "static";
        theTab.style.top = "auto";
    },
    
    setActiveLinks: function() {
        sURL = new String;
        bits = new Object;
        var x = 0;
        var stop = 0;
        sURL = location.href;
        sURL = sURL.slice(8, sURL.length);
        chunkStart = sURL.indexOf("/");
        sURL = sURL.slice(chunkStart + 1, sURL.length);
        while (!stop) {
            chunkStart = sURL.indexOf("/");
            if (chunkStart != -1) {
                bits[x] = sURL.slice(0, chunkStart);
                sURL = sURL.slice(chunkStart + 1, sURL.length);
            } else {
                stop = 1;
            }
            x++;
        }
        for (var i in bits) {
            if (document.getElementById(bits[i])) {
                document.getElementById(bits[i]).className = 'active';
            }
        }
        if (document.getElementById(bits[0])) {
            document.getElementById(bits[0]).className = 'active';
        };
    }

};
	
document.observe("dom:loaded",function() {
   MSOFRAMEWORK.baseLoad.ieHover();
   Shadowbox.init();
  
});

Application.utils.addLoadEvent(MSOFRAMEWORK.baseLoad.initTabs);
Application.utils.addLoadEvent(MSOFRAMEWORK.baseLoad.squeezeBoxSetup);
Application.utils.addLoadEvent(MSOFRAMEWORK.baseLoad.dockSetup);
Application.utils.addLoadEvent(MSOFRAMEWORK.events.attachAZScrollEvent);
Application.utils.addLoadEvent(MSOFRAMEWORK.baseLoad.toolTipSetup);
Application.utils.addLoadEvent(MSOFRAMEWORK.baseLoad.submitLinks);
Application.utils.addLoadEvent(MSOFRAMEWORK.baseLoad.definitionListSetup);
Application.utils.addLoadEvent(MSOFRAMEWORK.events.commentFromSubmitEvent);
Application.utils.addLoadEvent(MSOFRAMEWORK.events.attachInpImgClickEvent);
Application.utils.addLoadEvent(MSOFRAMEWORK.events.attachSearchClickEvent);
Application.utils.addLoadEvent(MSOFRAMEWORK.events.attachWSSearchEvent);
Application.utils.addLoadEvent(MSOFRAMEWORK.events.attachRDSearchEvent);
Application.utils.addLoadEvent(MSOFRAMEWORK.events.attachQuickLook);
Application.utils.addLoadEvent(MSOFRAMEWORK.baseLoad.setupInpageTabs);
Application.utils.addLoadEvent(MSOFRAMEWORK.events.attachStateDropdownEvent);
Application.utils.addLoadEvent(MSOFRAMEWORK.events.attachCalculateClickEvent);
Application.utils.addLoadEvent(MSOFRAMEWORK.events.attachCCTabEvent);
Application.utils.addLoadEvent(MSOFRAMEWORK.utils.displayAdUnits);


