/*
Class: Land Detail Box
Used for displaying the Land Details for My Selection.
Thankyou Slimbox for the inspiraion for this little Diddy - http://www.digitalia.be/software/slimbox
Note:
The Detail Box requires an XHTML doctype.
Arguments:
element 	- the knob container
options 	- see Options below
data		- Contains the content to be displayed in the detail box
Options:
mode 		- either 'browse' or 'detail'. Defaults to "detail"
id			- The Holders ID name. Default is "detailHolder"
width		- Modal Box Width
height		- Modal Box Height
className	- Class name.
dataType	- 'Json'.
*/

var homeDetail = new Class({
    options: {
        mode: 'details',
        id: 'detailHolder',
        width: 250,
        height: 250,
        className: null,
        dataType: Object,
        container: null,
        google: false,
        fixed: false,
        fixTop: 0,
        fixLeft: 0,
        lookedAt: false
    },
    initialize: function(el, options, data) {

		this.lotID = 36;
	
	
        this.eventKeyDown = this.keyboardListener.bindAsEventListener(this);
        this.eventPosition = this.positions.bind(this);

        this.setOptions(options);

        this.options.container = $(el);

        if (!this.options.fixed) marginLeft = -(this.options.width / 2);
        else marginLeft = this.options.fixLeft;

        this.browseStyle = { 'width': this.options.width, 'height': this.options.height, 'marginLeft': marginLeft };

        this.holder = new Element('div', { 'id': this.options.id + '_content' }).setHTML(data).injectInside(this.options.container);

        this.header = new Element('div', { 'id': 'header' }).injectInside(this.holder);
        this.closeButt = new Element('a', { 'class': 'closeButton' }).setHTML('close').injectInside(this.header);
        this.header_ul = new Element('ul').injectInside(this.header);
        this.header_li1 = new Element('li').injectInside(this.header_ul);
        this.lotName = new Element('h4').injectInside(this.header_li1);
        this.price = new Element('li').addClass('price').injectInside(this.header_ul);
        this.header_li3 = new Element('li').addClass('controls').injectInside(this.header_ul);
        this.interest = new Element('a').addClass('interest').setHTML('Register Interest').injectInside(this.header_li3);
        // this.share		= new Element('a', {'title':'Share with a friend'}).addClass('share').setHTML('Share Details').injectInside(this.header_li3);
        this.Save = new Element('a', { 'id': 'actionButton' }).setHTML('Save to MyList').injectInside(this.header_li3);

        this.middle = new Element('div', { 'id': 'middle' }).injectInside(this.holder);
        this.middleHold = new Element('div', { 'id': 'middleHolder' }).injectInside(this.middle);

        this.extras = new Element('p').addClass('extras').injectInside(this.middleHold);
        //Used for the Building Name
        this.Status = new Element('span').setHTML('Built by ').addClass('status').injectInside(this.extras);
      
        // this.statMark	= new Element('img').injectInside(this.Status)
        this.StatusText = new Element('span').injectInside(this.Status);
        this.bedCount = new Element('span').addClass('bed').injectInside(this.extras);
        this.bathCount = new Element('span').addClass('bath').injectInside(this.extras);
        this.levels = new Element('span').addClass('levels').injectInside(this.extras);
        this.carSpace = new Element('span').addClass('car').injectInside(this.extras);
        this.Size = new Element('span').addClass('size').injectInside(this.extras);
        this.envelope = new Element('span').addClass('envelope').injectInside(this.extras);

        this.detailMenu = new Element('div', { 'id': 'detailMenu' }).injectInside(this.middleHold);
        this.menu = new Element('ul').injectInside(this.detailMenu);

        this.overview = new Element('li').addClass('current').injectInside(this.menu);
        this.overview_link = new Element('a').setHTML('Overview').injectInside(this.overview);
        this.overview_link.onclick = this.viewChange.bind(this, [this.overview, 'overview']);

        this.overviewMarker = new Element('img', { 'src': config['baseURI'] + 'SiteAssets/images/content/g-detailMenu_marker.gif' }).injectInside(this.overview_link);

        this.facades = new Element('li').injectInside(this.menu);
        this.facades_link = new Element('a').setHTML('Facades').injectInside(this.facades);
        this.facades_link.onclick = this.viewChange.bind(this, [this.facades, 'facades']);

        this.facadesMarker = this.overviewMarker.clone().injectInside(this.facades_link);

        this.floorplan = new Element('li').injectInside(this.menu);
        this.floorplan_link = new Element('a').setHTML('Floorplan').injectInside(this.floorplan);
        this.floorplan_link.onclick = this.viewChange.bind(this, [this.floorplan, 'floorplan']);

        this.floorplanMarker = this.overviewMarker.clone().injectInside(this.floorplan_link);

        this.inclusions = new Element('li').injectInside(this.menu);
        this.inclusions_link = new Element('a').setHTML('Inclusions').injectInside(this.inclusions);
        this.inclusions_link.onclick = this.viewChange.bind(this, [this.inclusions, 'inclusions']);
        this.inclusionsMarker = this.overviewMarker.clone().injectInside(this.inclusions_link);

        this.specifications = new Element('li').injectInside(this.menu);
        this.specifications_link = new Element('a').setHTML('Specifications').injectInside(this.specifications);
        this.specifications.onclick = this.viewChange.bind(this, [this.specifications, 'specifications']);
        this.specificationsMarker = this.overviewMarker.clone().injectInside(this.specifications_link);

        this.galllery = new Element('li').injectInside(this.menu);
        this.galllery_link = new Element('a').setHTML('Gallery').injectInside(this.galllery);
        this.galllery_link.onclick = this.viewChange.bind(this, [this.galllery, 'gallery']);

        this.gallleryMarker = this.overviewMarker.clone().injectInside(this.galllery_link);

        this.detailCont = new Element('div', { 'id': 'detailContent' }).injectAfter(this.detailMenu);
        this.contentHold = new Element('div').addClass('contentPanel').injectInside(this.detailCont);

        this.homeTitle = new Element('h4').injectInside(this.contentHold);
        // this.pdf		= new Element('span').addClass('downloadPDF').injectInside(this.extras);
        // 
        this.descript = new Element('p', { 'id': 'descript' }).injectInside(this.contentHold);


        this.imgPanel = new Element('div', { 'id': 'imagePanel' }).injectBefore(this.contentHold);

        this.dvImage = new Element('div', { 'id': 'dvImage' }).injectInside(this.imgPanel);
        this.image = new Element('img', { 'id': 'imageFacade' }).injectInside(this.dvImage);

        this.dvFloorPlan = new Element('div', { 'id': 'floorPlan' }).setStyle('display', 'none').injectInside(this.dvImage);
        this.imgFPlan = new Element('img').injectInside(this.dvFloorPlan);

        this.dvInterior = new Element('div', { 'id': 'interior' }).setStyle('display', 'none').injectInside(this.dvImage);
        this.imgInterior = new Element('img').injectInside(this.dvInterior);
        this.showFascade = new Element('p').addClass('designs').setHTML('Facade: ').injectInside(this.imgPanel);
        this.facadeTxt = new Element('strong').injectInside(this.showFascade);
        this.showColor = new Element('p').addClass('designs').setHTML('Colour: ').injectInside(this.imgPanel);
        this.colorTxt = new Element('strong').injectInside(this.showColor);


        //actions Panel
        this.actions = new Element('div').addClass('actionsPanel').injectAfter(this.middleHold);
        this.actPan1 = new Element('div').addClass('actPan1').setHTML('&nbsp;').injectInside(this.actions);
        this.actPan3 = new Element('div').addClass('actPan3').injectInside(this.actions);
        //this.actPan3 	= new Element('div').addClass('').injectBefore(this.imgPanel);
        this.actPan2 = new Element('div').addClass('actPan2').setHTML('&nbsp;').injectInside(this.actions);
        this.pdf_file = new Element('a', { 'href': '#' }).addClass('downloadPDF').setHTML('Download PDF').injectInside(this.actPan2);
        this.control = new Element('span').setHTML('Images:&nbsp;&nbsp;').injectInside(this.actPan3);
        this.viewFacade = new Element('a', { 'href': 'javascript:void(0);' }).addClass('viewFacade').setHTML('Facade').injectInside(this.actPan3);
        this.viewFacade.onclick = this.viewChange.bind(this, [this.overview, 'overview']);

        this.viewFPlan = new Element('a', { 'href': 'javascript:void(0);' }).addClass('viewFPlan').setHTML('FloorPlan').injectInside(this.actPan3);
        this.viewFPlan.onclick = this.viewChange.bind(this, [this.overview, 'overview']);

        // this.viewPic.addEvent('click', function(){ $('map').setStyle('display', 'none');});

        this.viewInterior = new Element('a', { 'href': 'javascript:void(0);' }).addClass('viewInterior').setHTML('Interior').injectInside(this.actPan3);
        this.viewInterior.onclick = this.viewChange.bind(this, [this.overview, 'overview']);

        //Detail Panel Footer
        this.footer = new Element('div', { 'id': 'footer' }).injectAfter(this.middle);
		
		//Hidden for now. Should be re-enstated to show Lots that this home fits on.
        this.fits = new Element('p').addClass('fits').setHTML('&nbsp;').injectInside(this.footer);

        if (this.options.lookedAt) {
            this.looked = new Element('p').addClass('looked').setHTML('People that looked at the this Home also looked at <a href="#">Lot 34</a> and <a href="#">Lot 116</a>').injectInside(this.footer);
        }
        //Overlay used in browse mode
        this.overlay = new Element('div', { 'id': this.options.id + '_overlay' }).injectInside(document.body);


        this.fx = {
            overlay: this.overlay.effect('opacity', { duration: 500 }).hide(),
            holder: this.holder.effect('opacity', { duration: 500 }).hide(),
            // fullMap: this.mapView.effect('height', {duration: 500, transition: Fx.Transitions.quartInOut}).hide(),
            control: this.imgPanel.effect('opacity', { duration: 500 }).set(0)
        };

        if (this.options.mode == 'detail' || this.options.mode == 'browse') {
            // this.map.setStyle('display','block');
            if (this.options.mode == 'detail') $('itemNav').removeClass('none');
            this.fx.control.set(1);
        }
        if (this.options.mode == 'browse') {
            this.holder.setStyles(this.browseStyle);
            // this.fx.holder.hide();
        }
    },
    updateDetail: function(obj, key) {

        //debugger ;
        // $(this.options.id).empty();
        Home.currentItem = key;

        //bind Event to Links
        this.overview_link.removeEvents('click').addEvent('click', function() { this.switchContent('overview', obj) } .bind(this));
        var showfacadelink = false;
        if ($chk(obj.tblFacades.length)) {
            obj.tblFacades.each(function(item, index) {
                if ($chk(item.tblColors)) showfacadelink = true;
            }, this);
        }
        if ($chk(obj.tblFacades.tblColors)) showfacadelink = true;
        if (showfacadelink) {
            this.facades.setStyle('display', 'block');
            this.facades_link.removeEvents('click').addEvent('click', function() { this.switchContent('facades', obj) } .bind(this));
        } else {
            this.facades.setStyle('display', 'none');
        }
        var showfloorplanlink = false;
        if ($chk(obj.tblFacades.length)) {
            obj.tblFacades.each(function(item, index) {
                if ($chk(item.tblFloorPlan)) showfloorplanlink = true;
            }, this);
        }
        if ($chk(obj.tblFacades.tblFloorPlan)) showfloorplanlink = true;
        if (showfloorplanlink) {
            this.floorplan.setStyle('display', 'block');
            this.floorplan_link.removeEvents('click').addEvent('click', function() { this.switchContent('floorplan', obj) } .bind(this));
        } else {
            this.floorplan.setStyle('display', 'none');
        }
        if ($chk(obj.tblInclusion)) {
            this.inclusions.setStyle('display', 'block');
            this.inclusions_link.removeEvents('click').addEvent('click', function() { this.switchContent('inclusions', obj) } .bind(this));
        } else {
            this.inclusions.setStyle('display', 'none');
        }
        this.specifications_link.removeEvents('click').addEvent('click', function() { this.switchContent('specifications', obj) } .bind(this));
        //this.specifications_link.setProperty('href','../PDF/createPDF.aspx?param=2,' + obj.HOM_nId);

        this.galllery_link.setStyle('display', 'none');
        if ($chk(obj.tblPhotos)) {
            if (obj.tblPhotos.length > 1) {
                this.galllery_link.setStyle('display', 'block');
                this.galllery_link.removeEvents('click').addEvent('click', function() { this.switchContent('gallery', obj) } .bind(this));
            }
        }
        //Links under the main images on the Overview page.
        this.viewFacade.removeEvents('click').addEvent('click', function() { this.switchContent('viewFacade', obj) } .bind(this));
        this.viewFPlan.removeEvents('click').addEvent('click', function() { this.switchContent('viewFPlan', obj) } .bind(this));
        this.viewInterior.removeEvents('click').addEvent('click', function() { this.switchContent('viewInterior', obj) } .bind(this));

        if (Site.sUser.uDetails()) {
            if (obj.iRegistered.toInt() == 1) {
                this.interest.addClass('registered').setProperty('title', 'You have registered interest in ' + obj.HOM_strName).onclick = this.actionRegister.bind(this, true);
            } else {
                this.interest.removeClass('registered').setProperty('title', 'Register your interest in ' + obj.HOM_strName).onclick = this.actionRegister.bind(this, false);
            }
            $$('.detailLabel-tip').each(function(el) { el.remove(); });
        } else {
            this.interest.removeClass('registered').setProperty('title', 'Sign In::To in Register Interest');
            //Setting the toolTip for Register Interest.
            $$('.detailLabel-tip').each(function(el) { el.remove(); });
            var Tips1 = new Tips($$(this.interest), {
                offsets: { 'x': -27, 'y': -68 },
                className: 'detailLabel',
                fixed: true
            });
        }


        this.Save.setProperty('title', 'Save ' + obj.HOM_strName);
        this.lotName.setHTML(obj.HOM_strName);
        this.price.setHTML('$' + utils.commaFormat(obj.TotalPrice));

        //Used for the Building Name
        this.StatusText.setProperty('href', obj.BLD_strUrl	);
        this.StatusText.setHTML('<a href="' + obj.BLD_strUrl + '"' + obj.BLD_strName + ' target="_blank">'+ obj.BLD_strName + '<span>');

        this.bedCount.setHTML('Bed: ' + obj.HOM_nNumBedrooms);
        this.bathCount.setHTML('Bath: ' + obj.HOM_nNumBathrooms);
        this.levels.setHTML('Levels: ' + obj.HOM_nNumLevels);
        this.carSpace.setHTML('Car: ' + obj.HOM_nNumGarages);
        this.Size.setHTML('Size: ' + obj.HOM_nArea + 'm&sup2;');

        if (obj.tblFacades.length) {
            COL_txt = obj.tblFacades[0].tblColors.length ? obj.tblFacades[0].tblColors[0].COL_strName : obj.tblFacades[0].tblColors.COL_strName;
            this.facadeTxt.setHTML(obj.tblFacades[0].FAC_strName);
        } else {
            COL_txt = obj.tblFacades.tblColors.length ? obj.tblFacades.tblColors[0].COL_strName : obj.tblFacades.tblColors.COL_strName;
            this.facadeTxt.setHTML(obj.tblFacades.FAC_strName);
        }

        this.colorTxt.setHTML(COL_txt);
        //query = ['"' + obj.HOM_strName + '"', obj.HOM_nId.toInt(), obj.HomeDefaultFacadeId.toInt(), obj.HomeDefaultAssetId.toInt()];
        query = ['"' + obj.HOM_strName + '"', obj.HOM_nId.toInt(), obj.HomeDefaultFacadeId.toInt(), obj.HomeDefaultAssetMapId.toInt()];

        if (obj.iSaved.toInt() == 1) {
            this.Save.setHTML('Saved').addClass('saved'); //.setProperty('onclick', 'mySelection.Delete(\'LotIds\', '+obj.LOT_nId+', \''+obj.LOT_strName+'\')');
        } else {
            //this.query = Json.toString({ 'HomeId': obj.HOM_nId.toInt(), 'FacId': obj.HomeDefaultFacadeId.toInt(), 'AssetFacadeId': obj.HomeDefaultAssetId.toInt() });
            this.query = Json.toString({ 'HomeId': obj.HOM_nId.toInt(), 'FacId': obj.HomeDefaultFacadeId.toInt(), 'AssetFacadeId': obj.HomeDefaultAssetMapId.toInt() });
            this.Save.setHTML('Save').removeClass('saved').onclick = function() {
                //mySelection.saveHome(obj.HOM_strName, obj.HOM_nId.toInt(), obj.HomeDefaultFacadeId.toInt(), obj.HomeDefaultAssetId.toInt());
                mySelection.saveHome(obj.HOM_strName, obj.HOM_nId.toInt(), obj.HomeDefaultFacadeId.toInt(), obj.HomeDefaultAssetMapId.toInt());
            };
        }

        //this.pdf_file.setProperty('href', '../utilities/LauchAsset.aspx?pdf=1&param=2,'+  obj.HOM_nId);
        //this.pdf_file.setProperty('href', '../pdf/CreatePdf.aspx?param=2,' + obj.HOM_nId);
        //this.specifications_link.setProperty('href', '../pdf/createpdf.aspx?param=2,' + obj.HOM_nId);

        //Initialize pdf links
        downloadPDFRecover();
        this.pdf_file.removeEvents('click').addEvent('click', function() {
            if (this.hasClass('downloadPDF')) {
                window.location.href = '../pdf/createpdf.aspx?param=2,' + obj.HOM_nId;
                timeout = setTimeout("downloadPDFRecover()", 30000);
                //window.setTimeout(downloadPDFRecover2, 30000);
                //disable link here:
                this.removeClass('downloadPDF').addClass("downloadPDFdisabled").setText('Downloading PDF ...');
            }
        });

        //this.homeTitle.setHTML(obj.HOM_strOverviewTitle);
        //this.descript.setHTML(obj.HOM_txtOverview);
        this.switchContent('overview', obj);
        this.viewChange.bind(this, [this.overview, 'overview']);
        $$('#detailMenu li').removeClass('current');
        this.overview.addClass('current');

        if (config.AssetVersion == '1') {
            this.image.setProperty('src', config['baseURI'] + 'Utilities/GenerateImage.aspx?path=../' + obj.strHomeImage + '&w=300&h=240&mode=resizefit');
            this.image.removeEvents('click').addEvent('click', function() { Lightbox.show(config['baseURI'] + 'Utilities/GenerateImage.aspx?path=../' + obj.strHomeImage + '&w=300&h=240&mode=resizefit', obj.HOM_strOverviewTitle); })
        } else {
            this.image.setProperty('src', config['baseURI'] + 'Utilities/GenerateImage.aspx?path=' + obj.strHomeImage + '&w=300&h=240&mode=resizefit');
            this.image.removeEvents('click').addEvent('click', function() { Lightbox.show(obj.strHomeImage, obj.HOM_strOverviewTitle); })
        }

        if (config.AssetVersion == '1') {
            pic2File = '';
            if (obj.tblFacades.length) {
                if (obj.tblFacades[0].tblFloorPlan) {
                    pic2File = obj.tblFacades[0].tblFloorPlan.length ? obj.tblFacades[0].tblFloorPlan[0].AHOM_strFilename : obj.tblFacades[0].tblFloorPlan.AHOM_strFilename;
                    pic2File = 'assets/homes/' + obj.HOM_nId + '/' + pic2File;
                    pic2Name = obj.tblFacades[0].FAC_strName;
                    this.imgFPlan.setProperty('src', config['baseURI'] + 'Utilities/GenerateImage.aspx?path=../' + pic2File + '&w=300&h=240&mode=resizefit');
                    this.imgFPlan.removeEvents('click').addEvent('click', function() { Lightbox.show(config['baseURI'] + pic2File, pic2Name); })
                    this.viewFPlan.setStyle("display", "inline");
                } else {
                    this.viewFPlan.setStyle("display", "none");
                }
            }
            else {
                if (obj.tblFacades.tblFloorPlan) {
                    pic2File = obj.tblFacades.tblFloorPlan.length ? obj.tblFacades.tblFloorPlan[0].AHOM_strFilename : obj.tblFacades.tblFloorPlan.AHOM_strFilename;
                    pic2File = 'assets/homes/' + obj.HOM_nId + '/' + pic2File;
                    pic2Name = obj.tblFacades.FAC_strName;
                    this.imgFPlan.setProperty('src', config['baseURI'] + 'Utilities/GenerateImage.aspx?path=../' + pic2File + '&w=300&h=240&mode=resizefit');
                    this.imgFPlan.removeEvents('click').addEvent('click', function() { Lightbox.show(config['baseURI'] + pic2File, pic2Name); });
                    this.viewFPlan.setStyle("display", "inline");
                } else {
                    this.viewFPlan.setStyle("display", "none");
                }
            }
        } else {
            pic2File = '';
            if (obj.tblFacades.length) {
                if (obj.tblFacades[0].tblFloorPlan) {
                    pic2File = obj.tblFacades[0].tblFloorPlan.length ? obj.tblFacades[0].tblFloorPlan[0].AHOM_strFilename : obj.tblFacades[0].tblFloorPlan.AHOM_strFilename;
                    pic2Name = obj.tblFacades[0].FAC_strName;
                    this.imgFPlan.setProperty('src', config['baseURI'] + 'Utilities/GenerateImage.aspx?path=' + pic2File + '&w=300&h=240&mode=resizefit');
                    this.imgFPlan.removeEvents('click').addEvent('click', function() { Lightbox.show(pic2File, pic2Name); });
                    this.viewFPlan.setStyle("display", "inline");
                } else {
                    this.viewFPlan.setStyle("display", "none");
                }
            }
            else {
                if (obj.tblFacades.tblFloorPlan) {
                    pic2File = obj.tblFacades.tblFloorPlan.length ? obj.tblFacades.tblFloorPlan[0].AHOM_strFilename : obj.tblFacades.tblFloorPlan.AHOM_strFilename;
                    pic2Name = obj.tblFacades.FAC_strName;
                    this.imgFPlan.setProperty('src', config['baseURI'] + 'Utilities/GenerateImage.aspx?path=' + pic2File + '&w=300&h=240&mode=resizefit');
                    this.imgFPlan.removeEvents('click').addEvent('click', function() { Lightbox.show(pic2File, pic2Name); });
                    this.viewFPlan.setStyle("display", "inline");
                } else {
                    this.viewFPlan.setStyle("display", "none");
                }
            }
        }


        //pic3File = 'assets/homes/' + obj.HOM_nId + '/'+ 'kitchen.jpg';
        pic3File = '';
        pic3Name = obj.HOM_strOverviewTitle;

        if (config.AssetVersion == '1') {
            if (obj.tblPhotos) {

                if (obj.tblPhotos.length) {
                    pic3File = 'assets/homes/' + obj.HOM_nId + '/' + obj.tblPhotos[0].AHOM_strFilename;
                    pic3Name = obj.tblPhotos[0].AHOM_strTitle;
                } else {
                    pic3File = 'assets/homes/' + obj.HOM_nId + '/' + obj.tblPhotos.AHOM_strFilename;
                    pic3Name = obj.tblPhotos.AHOM_strTitle;
                }
                this.imgInterior.setProperty('src', config['baseURI'] + 'Utilities/GenerateImage.aspx?path=../' + pic3File + '&w=300&h=240&mode=resizefit');
                this.imgInterior.removeEvents('click').addEvent('click', function() { Lightbox.show(config['baseURI'] + pic3File, pic3Name); });
                this.viewInterior.setStyle("display", "inline");
            } else {
                this.viewInterior.setStyle("display", "none");
            }
        } else {
      
            if (obj.tblPhotos) {
       
           
                if (obj.tblPhotos.length ) {
                
            var filename = obj.tblPhotos[0].location;
            var dot = filename.lastIndexOf("."); 
            var extension = filename.substr(dot,filename.length).toLowerCase(); 
         
                    pic3File = obj.tblPhotos[0].location;
                    pic3Name = obj.tblPhotos[0].title;
                } else {
                
            var filename = obj.tblPhotos.location;
            var dot = filename.lastIndexOf("."); 
            var extension = filename.substr(dot,filename.length).toLowerCase(); 
         
                    pic3File = obj.tblPhotos.location;
                    pic3Name = obj.tblPhotos.title;
                }
                
               if(extension !='.pdf')
               {
                this.imgInterior.setProperty('src', config['baseURI'] + 'Utilities/GenerateImage.aspx?path=' + pic3File + '&w=300&h=240&mode=resizefit');
                this.imgInterior.removeEvents('click').addEvent('click', function() { Lightbox.show(pic3File, pic3Name); });
                this.viewInterior.setStyle("display", "inline");
                }
            } else {
                this.viewInterior.setStyle("display", "none");
            }
        }

        //Similar Homes (Related homes)
        if (this.options.lookedAt) {
            this.looked.setHTML('Popular home: <a href="#">' + obj.tblHits[0].HIT_HOM_strName + '</a> and <a href="#">' + obj.tblHits[1].HIT_HOM_strName + '</a>');
        }
        //Commented out refer to bug 167
        this.getExtras(obj.HOM_nId.toInt(), 'fits');


        var registered = (obj.iRegistered.toInt() == 1) ? true : false;
        //sending View Data to the database for Viewed History
        //this.addView(2, obj.HOM_nId.toInt(), obj.HOM_strName, registered, { facID: obj.HomeDefaultFacadeId.toInt(), assetID: obj.HomeDefaultAssetId.toInt() });
        this.addView(2, obj.HOM_nId.toInt(), obj.HOM_strName, registered, { facID: obj.HomeDefaultFacadeId.toInt(), assetID: obj.HomeDefaultAssetMapId.toInt() });

        if (this.options.mode == 'browse') {
            this.setup(true);
            this.positions();
            this.fx.overlay.start(0.15);
            this.closeButt.onclick = this.close.bind(this);
            this.overlay.onclick = this.close.bind(this);
        }
        this.holder.removeClass('none')
        this.fx.holder.start(1);

    },
    viewChange: function(el, view) {
        $$('#detailMenu li').removeClass('current');
        el.addClass('current');
    },
    //TODO later: Going to write a function that can resize the lightbox picture to suit the users window size.
    lightBoxSizes: function() {
        tmpHeight = window.getHeight() * 0.8;
        tmpWidth = window.getWidth() * 1;
    },
    changeMode: function(mode) {
        this.options.mode = mode;
        switch (mode) {
            case 'browse':
                this.holder.setStyles(this.browseStyle)//.addClass('none');
                if (!$('itemNav').hasClass('none')) $('itemNav').addClass('none');
                // this.holder.addClass('none');
                this.fx.holder.hide();
                break;
            case 'detail':
                this.holder.setStyles({ 'width': 'auto', 'marginLeft': 0, 'height': 'auto' });

                if ($('itemNav').hasClass('none')) $('itemNav').removeClass('none');
                break;
        }
    },
    getExtras: function(key, type) {
        switch (type) {
            case 'fits':
                var url = config['baseURI'] + config['GetLotsForHomes'] + '?HomeIds=' + key;
                var toFill = this.fits;
                break;
            case 'looked':
                var url = config['baseURI'] + config['viewedLots'] + '?ObjectId=3&PrimaryKey=' + key;
                var toFill = this.looked;
                break;
        }

        new Ajax(url, {
			 method: 'get',
             update: toFill,
			 onComplete: function() { /* alert('Hello Worlds: ' + key); */ }
        }).request();
    },
    addView: function(object, key, strName, registered, extras) {
        //Sending home information to the SOXC panel
        if (Site.sUser) {
            if (!registered && Site.sUser.regProcess != 2) Site.sUser.updateRegister(object, key, strName, $merge(extras, { estateName: EstateName }));
            Site.sUser.showAgent(object, key);
        }

        var addViewURI = config['baseURI'] + config['addHit'];
        var addViewQuery = 'ObjectId=' + object + '&PrimaryKey=' + key;
        var addViewXHR = new XHR({ method: 'get' }).send(addViewURI, addViewQuery);
    },
    actionRegister: function(stopAction) {
        if (stopAction == true) {
            return;
        } else {
            if (Site.sUser.uDetails() && Site.sUser.regProcess == 1) {
                Site.sUser.actionRegInterest(1);
                if (this.options.mode == 'browse') this.close();
            }
        }
    },
    positions: function() {
        this.overlay.setStyles({ 'top': window.getScrollTop(), 'height': window.getHeight() });
        if (!this.options.fixed || window.getScrollTop() > this.options.fixTop) {
            this.top = (window.getHeight() / 2) - (this.options.height / 2) + window.getScrollTop();
        } else {
            this.top = this.options.fixTop;
        }
        this.holder.setStyles({ top: this.top });
    },
    setup: function(open) {
        var fn = open ? 'addEvent' : 'removeEvent';
        window[fn]('scroll', this.eventPosition)[fn]('resize', this.eventPosition);
        document[fn]('keydown', this.eventKeyDown);
    },
    keyboardListener: function(event) {
        switch (event.keyCode) {
            case 27: this.close(); break;
        }
    },
    close: function(args) {
        this.holder.addClass('none');
        this.fx.holder.start(0);
        this.fx.overlay.start(0);
        this.setup(false);
    },
    closeOverlay: function() {
        this.fx.overlay.start(0);
        return;
    },
    switchContent: function(sec, obj) {

        //Clear
        this.detailCont.firstChild.setStyle("display", "block");
        this.homeTitle.empty();
        this.descript.empty();
		this.contentHold.addClass('noBackground');
        //Dispaly
        switch (sec) {
            case 'overview':
				this.contentHold.removeClass('noBackground');
                this.homeTitle.setHTML(obj.HOM_strOverviewTitle);
                this.descript.setHTML(obj.HOM_strOverviewTrimmed);
                this.actPan3.setStyle("display", "block");
                break;
            case 'facades':
                this.detailCont.firstChild.setStyle("display", "none");
                this.homeTitle.setHTML('Facades');
                if ($chk(obj.tblFacades.length)) {
                    obj.tblFacades.each(function(item, index) {
                        if ($chk(item.tblColors.length)) {
                            //item.tblColors.each(function(itemcolor, index) {
                            this.ImageContaioner = new Element('div').setStyles({ 'width': 160, 'height': 120, 'float': 'left' }).injectInside(this.descript);
                            if (config.AssetVersion == '1') {
                                this.insertImage(
                                        this.ImageContaioner,
                                        '../Utilities/GenerateImage.aspx?path=../Assets/Facades/' + item.tblColors[0].AFAC_FAC_nid + '/' + item.tblColors[0].AFAC_strFilename + '&w=150&h=90&mode=resizefit',
                                        '../Assets/Facades/' + item.tblColors[0].AFAC_FAC_nid + '/' + item.tblColors[0].AFAC_strFilename,
                                        item.FAC_strName,
                                        item.FAC_strName);
                            } else {
                                this.insertImage(
                                        this.ImageContaioner,
                                        '../Utilities/GenerateImage.aspx?path=' + item.tblColors[0].ASS_strLocation + '&w=150&h=90&mode=resizefit',
                                        item.tblColors[0].ASS_strLocation,
                                        item.FAC_strName,
                                        item.FAC_strName);
                            }
                            //}, this);
                        } else {
                            this.ImageContaioner = new Element('div').setStyles({ 'width': 160, 'height': 120, 'float': 'left' }).injectInside(this.descript);
                            if (config.AssetVersion == '1') {
                                this.insertImage(
                                    this.ImageContaioner,
                                    '../Utilities/GenerateImage.aspx?path=../Assets/Facades/' + item.tblColors.AFAC_FAC_nid + '/' + item.tblColors.AFAC_strFilename + '&w=150&h=90&mode=resizefit',
                                    '../Assets/Facades/' + item.tblColors.AFAC_FAC_nid + '/' + item.tblColors.AFAC_strFilename,
                                    item.FAC_strName,
                                    item.FAC_strName);
                            } else {
                                this.insertImage(
                                    this.ImageContaioner,
                                    '../Utilities/GenerateImage.aspx?path=' + item.tblColors.ASS_strLocation + '&w=150&h=90&mode=resizefit',
                                    item.tblColors.ASS_strLocation,
                                    item.FAC_strName,
                                    item.FAC_strName);
                            }
                        }
                    }, this);
                } else {
                    if ($chk(obj.tblFacades.tblColors.length)) {
                        //obj.tblFacades.tblColors.each(function(item, index) {
                        this.ImageContaioner = new Element('div').setStyles({ 'width': 160, 'height': 120, 'float': 'left' }).injectInside(this.descript);
                        if (config.AssetVersion == '1') {
                            this.insertImage(
                                    this.ImageContaioner,
                                    '../Utilities/GenerateImage.aspx?path=../Assets/Facades/' + obj.tblFacades.tblColors[0].AFAC_FAC_nid + '/' + obj.tblFacades.tblColors[0].AFAC_strFilename + '&w=150&h=90&mode=resizefit',
                                    '../Assets/Facades/' + obj.tblFacades.tblColors[0].AFAC_FAC_nid + '/' + obj.tblFacades.tblColors[0].AFAC_strFilename,
                                    obj.tblFacades.FAC_strName,
                                    obj.tblFacades.FAC_strName);
                        } else {
                            this.insertImage(
                                    this.ImageContaioner,
                                    '../Utilities/GenerateImage.aspx?path=' + obj.tblFacades.tblColors[0].ASS_strLocation + '&w=150&h=90&mode=resizefit',
                                    obj.tblFacades.tblColors[0].ASS_strLocation,
                                    obj.tblFacades.FAC_strName,
                                    obj.tblFacades.FAC_strName);
                        }
                        //}, this);
                    } else {
                        this.ImageContaioner = new Element('div').setStyles({ 'width': 160, 'height': 120, 'float': 'left' }).injectInside(this.descript);
                        if (config.AssetVersion == 1) {
                            this.insertImage(
                                    this.ImageContaioner,
                                    '../Utilities/GenerateImage.aspx?path=../Assets/Facades/' + obj.tblFacades.tblColors.AFAC_FAC_nid + '/' + obj.tblFacades.tblColors.AFAC_strFilename + '&w=150&h=90&mode=resizefit',
                                    '../Assets/Facades/' + obj.tblFacades.tblColors.AFAC_FAC_nid + '/' + obj.tblFacades.tblColors.AFAC_strFilename,
                                    obj.tblFacades.FAC_strName,
                                    obj.tblFacades.FAC_strName);
                        } else {
                            this.insertImage(
                                    this.ImageContaioner,
                                    '../Utilities/GenerateImage.aspx?path=' + obj.tblFacades.tblColors.ASS_strLocation + '&w=150&h=90&mode=resizefit',
                                    obj.tblFacades.tblColors.ASS_strLocation,
                                    obj.tblFacades.FAC_strName,
                                    obj.tblFacades.FAC_strName);
                        }
                    }
                }
                this.actPan3.setStyle("display", "none");
                break;
            case 'floorplan':
                var strHomeName = obj.HOM_strName;

                //New Codes Begins Here

                var arrFloorPlan = new Array();
                var arrFloorPlanTitle = new Array();
                if ($chk(obj.tblFacades.length)) {
                    this.detailCont.firstChild.setStyle("display", "none");
                    this.homeTitle.setHTML('Floor Plan');
                    obj.tblFacades.each(function(item, index) {
                        if ($chk(item.tblFloorPlan.length)) {
                            item.tblFloorPlan.each(function(item, index) {
                                if (!this.IsReplicatedFloorPlan(item, arrFloorPlan, arrFloorPlanTitle)) {
                                    arrFloorPlan.push(item.AHOM_strFilename);
                                    arrFloorPlanTitle.push(item.AHOM_strTitle);
                                }
                            }, this);
                        } else {
                            if (!this.IsReplicatedFloorPlan(item.tblFloorPlan, arrFloorPlan, arrFloorPlanTitle)) {
                                arrFloorPlan.push(item.tblFloorPlan.AHOM_strFilename);
                                arrFloorPlanTitle.push(item.tblFloorPlan.AHOM_strTitle);
                            }
                        }
                    }, this);
                } else {
                    if ($chk(obj.tblFacades.tblFloorPlan)) {
                        this.detailCont.firstChild.setStyle("display", "none");
                        this.homeTitle.setHTML('Floor Plan');
                        if ($chk(obj.tblFacades.tblFloorPlan.length)) {
                            obj.tblFacades.tblFloorPlan.each(function(item, index) {
                                // ........
                                if (!this.IsReplicatedFloorPlan(item, arrFloorPlan, arrFloorPlanTitle)) {
                                    arrFloorPlan.push(item.AHOM_strFilename);
                                    arrFloorPlanTitle.push(item.AHOM_strTitle);
                                }
                            }, this);
                        } else {
                            // .........
                            if (!this.IsReplicatedFloorPlan(obj.tblFacades.tblFloorPlan, arrFloorPlan, arrFloorPlanTitle)) {
                                arrFloorPlan.push(obj.tblFacades.tblFloorPlan.AHOM_strFilename);
                                arrFloorPlanTitle.push(obj.tblFacades.tblFloorPlan.AHOM_strTitle);
                            }
                        }
                    }
                }

                this.insertFloorPlan(arrFloorPlan, arrFloorPlanTitle, strHomeName);

                //New Codes Ends Here
                this.actPan3.setStyle("display", "none");
                break;
            case 'specifications':
                this.detailCont.firstChild.setStyle("display", "none");
                this.homeTitle.setHTML('Specifications');
                var SpecificationsHtml ='<p>Homes are sold separately by individual builders. Please contact builder for pricing inclusions and specifications.<br /><!--Please click the link below to download specifications:--></p>';
                //		        SpecificationsHtml += '<a href="../PDF/createPDF.aspx?param=2,' + obj.HOM_nId + '">Download</a>';
                this.specifications = new Element('div').setHTML(SpecificationsHtml).injectInside(this.descript);
               // var specificationLink = new Element('a').setText('Download').injectInside(this.specifications);
               // specificationLink.removeEvents('click').addEvent('click', function() {


                 //   if (this.getText() == "Download") {
                      //  window.location.href = '../pdf/createpdf.aspx?param=2,' + obj.HOM_nId;
                  //  }
                  //  timeout = setTimeout("downloadPDFRecover2()", 30000);

                    //disable link here:
                  //  this.setText('Downloading...').setStyle('color', '#aaa');
               // });
               // this.actPan3.setStyle("display", "none");
               break;
            case 'gallery':
                if ($chk(obj.tblPhotos)) {
                    this.detailCont.firstChild.setStyle("display", "none");
                    this.homeTitle.setHTML('Gallery');
                    if ($chk(obj.tblPhotos.length)) {
                        var strHomeName = obj.HOM_strName;
                        obj.tblPhotos.each(function(item, index) {
                            this.ImageContaioner = new Element('div').setStyles({ 'width': 160, 'height': 120, 'float': 'left' }).injectInside(this.descript);
                            if (config.AssetsVersion == 1) {
                                this.galleryImage = new Element('img').setProperty('src', '../Utilities/GenerateImage.aspx?path=../Assets/Homes/' + item.AHOM_HOM_nId + '/' + item.AHOM_strFilename + '&w=150&h=90&mode=resizefit').injectInside(this.ImageContaioner);
                                this.galleryImage.removeEvents('click').addEvent('click', function() { Lightbox.show('../Assets/Homes/' + item.AHOM_HOM_nId + '/' + item.AHOM_strFilename, strHomeName + ": " + item.AHOM_strTitle); })
                                new Element('br').injectInside(this.ImageContaioner);
                                this.galleryTitle = new Element('a').setProperty('a', 'javascript:void(0);').setText(item.AHOM_strTitle).injectInside(this.ImageContaioner);
                                this.galleryTitle.removeEvents('click').addEvent('click', function() { Lightbox.show('../Assets/Homes/' + item.AHOM_HOM_nId + '/' + item.AHOM_strFilename, strHomeName + ": " + item.AHOM_strTitle); })
                            } else {
                                this.insertImage(
                                    this.ImageContaioner,
                                    '../Utilities/GenerateImage.aspx?path=' + item.location + '&w=150&h=90&mode=resizefit',
                                    item.location,
                                    item.title,
                                    strHomeName + ": " + item.title);
                            }
                        }, this);

                    } else {
                        this.ImageContaioner = new Element('div').setStyles({ 'width': 160, 'height': 120, 'float': 'left' }).injectInside(this.descript);
                        if (config.AssetsVersion == 1) {
                            this.galleryImage = new Element('img').setProperty('src', '../Utilities/GenerateImage.aspx?path=../Assets/Homes/' + obj.tblPhotos.AHOM_HOM_nId + '/' + obj.tblPhotos.AHOM_strFilename + '&w=150&h=90&mode=resizefit').injectInside(this.ImageContaioner);
                            this.galleryImage.removeEvents('click').addEvent('click', function() { Lightbox.show('../Assets/Homes/' + obj.tblPhotos.AHOM_HOM_nId + '/' + obj.tblPhotos.AHOM_strFilename, obj.HOM_strName + ": " + obj.tblPhotos.AHOM_strTitle); })
                            new Element('br').injectInside(this.ImageContaioner);
                            this.galleryTitle = new Element('a').setProperty('a', 'javascript:void(0);').setText(obj.tblPhotos.AHOM_strTitle).injectInside(this.ImageContaioner);
                            this.galleryTitle.removeEvents('click').addEvent('click', function() { Lightbox.show('../Assets/Homes/' + obj.tblPhotos.AHOM_HOM_nId + '/' + obj.tblPhotos.AHOM_strFilename, obj.HOM_strName + ": " + obj.tblPhotos.AHOM_strTitle); })
                        } else {
                            this.insertImage(
                                this.ImageContaioner,
                                '../Utilities/GenerateImage.aspx?path=' + obj.tblPhotos.location + '&w=150&h=90&mode=resizefit',
                                obj.tblPhotos.location,
                                obj.tblPhotos.title,
                                obj.HOM_strName + ": " + obj.tblPhotos.title);
                        }
                    }
                }
                this.actPan3.setStyle("display", "none");
                break;
            case 'viewFacade':
                if ($('imageFacade').getStyle('display') == 'none') $('imageFacade').setStyle('display', 'block');
                $('floorPlan').setStyle('display', 'none');
                $('interior').setStyle('display', 'none');
                this.detailCont.firstChild.setStyle("display", "block");
                this.homeTitle.setHTML(obj.HOM_strOverviewTitle);
                this.descript.setHTML(obj.HOM_strOverviewTrimmed);
                this.overview.addClass('current');
                this.actPan3.setStyle("display", "block");
                break;
            case 'viewFPlan':
                if ($('floorPlan').getStyle('display') == 'none') $('floorPlan').setStyle('display', 'block');
                $('imageFacade').setStyle('display', 'none');
                $('interior').setStyle('display', 'none');
                this.detailCont.firstChild.setStyle("display", "block");
                this.homeTitle.setHTML(obj.HOM_strOverviewTitle);
                this.descript.setHTML(obj.HOM_strOverviewTrimmed);
                this.overview.addClass('current');
                this.actPan3.setStyle("display", "block");
                break;
            case 'viewInterior':
                if ($('interior').getStyle('display') == 'none') $('interior').setStyle('display', 'block');
                $('floorPlan').setStyle('display', 'none');
                $('imageFacade').setStyle('display', 'none');
                this.detailCont.firstChild.setStyle("display", "block");
                this.homeTitle.setHTML(obj.HOM_strOverviewTitle);
                this.descript.setHTML(obj.HOM_strOverviewTrimmed);
                this.overview.addClass('current');
                this.actPan3.setStyle("display", "block");
                break;
            default:
                break;
        }
    },
    insertImage: function(container, imageUrl, imageUrlLightBox, imageTitle, imageTitleLightBox) {
        this.galleryImage = new Element('img').setProperty('src', imageUrl).injectInside(container);
        this.galleryImage.removeEvents('click').addEvent('click', function() { Lightbox.show(imageUrlLightBox, imageTitleLightBox); })
        new Element('br').injectInside(container);
        this.galleryTitle = new Element('a').setProperty('a', 'javascript:void(0);').setText(imageTitle).injectInside(container);
        this.galleryTitle.removeEvents('click').addEvent('click', function() { Lightbox.show(imageUrlLightBox, imageTitleLightBox); })
    },

    IsReplicatedFloorPlan: function(item, arrFloorPlan, arrFloorPlanTitle) {
        var r = false;
        arrFloorPlan.each(function(arrItem, index) {
            if (arrItem == item.AHOM_strFilename) r = true;
        }, this);
        arrFloorPlanTitle.each(function(arrItem, index) {
            if (arrItem == item.AHOM_strTitle) r = true;
        }, this);

        return r;
    },

    insertFloorPlan: function(arrFloorPlan, arrFloorPlanTitle, strHomeName) {
      //  console.log(arrFloorPlan.length);
        for (i = 0; i < arrFloorPlan.length; i++) {
            //console.log(arrFloorPlan[i]);
            this.ImageContaioner = new Element('div').setStyles({ 'width': 160, 'height': 120, 'float': 'left' }).injectInside(this.descript);
            if (config.AssetVersion == 1) {
                this.insertImage(
                       this.ImageContaioner,
                       '../Utilities/GenerateImage.aspx?path=../Assets/Homes/' + item.AHOM_HOM_nId + '/' + arrFloorPlan[i] + '&w=150&h=90&mode=resizefit',
                       '../Assets/Homes/' + item.AHOM_HOM_nId + '/' + arrFloorPlan[i],
                       arrFloorPlanTitle[i],
                       strHomeName + ": " + arrFloorPlanTitle[i]);
            } else {
                this.insertImage(
                       this.ImageContaioner,
                       '../Utilities/GenerateImage.aspx?path=' + arrFloorPlan[i] + '&w=150&h=90&mode=resizefit',
                       arrFloorPlan[i],
                       arrFloorPlanTitle[i],
                       strHomeName + ": " + arrFloorPlanTitle[i]);
            }
        }
    }

});
homeDetail.implement(new Events);
homeDetail.implement(new Options);

function downloadPDFRecover() {
    var link = $('middle').childNodes[1].childNodes[2].childNodes[1];
    if (link) link.removeClass('downloadPDFdisabled').addClass("downloadPDF").setText('Download PDF');
}

function downloadPDFRecover2() {
    var descript = $('descript').childNodes[0].childNodes[1];
    if (descript) descript.setText('Download').setStyle('color', '#008BDD');
}
