/** Sarin Software Development Co. :: www.sarin.ir  **/
/** @Author: Mohsen Taleb (www.mohsentaleb.com) **/


var iHome = {

    start: function(selectedTab, showFilters, showQSearch) {
        iHome.buildTooltips();
        iHome.initSearchBox(selectedTab, showFilters, showQSearch);
        iHome.initSearchResult();
        iHome.initMapMarkers();
        iHome.zoomMap();

    },
    rentTabClicked: function() {
        if (!iHome.rentTab.hasClass('selected')) {
            iHome.purchaseForm.setStyle('display', 'none');
            iHome.purchaseFilters.setStyle('display', 'none');
            iHome.rentForm.setStyle('display', 'block');
            iHome.rentFilters.setStyle('display', 'block');
            iHome.rentTab.addClass('selected');
            iHome.purchaseTab.removeClass('selected');
        }
    },
    purchaseTabClicked: function() {
        if (!iHome.purchaseTab.hasClass('selected')) {
            iHome.rentForm.setStyle('display', 'none');
            iHome.rentFilters.setStyle('display', 'none');
            iHome.purchaseForm.setStyle('display', 'block');
            iHome.purchaseFilters.setStyle('display', 'block');
            iHome.purchaseTab.addClass('selected');
            iHome.rentTab.removeClass('selected');
        }
    },
    initSearchBox: function(selectedTab, showFilters, showQSearch) {

        /* Search Tabs
        **************/

        iHome.rentForm = $('rent_form');
        iHome.rentTab = $('rent');
        iHome.purchaseForm = $('purchase_form');
        iHome.purchaseTab = $('purchase');
        iHome.rentFilters = $('rent_filters');
        iHome.purchaseFilters = $('purchase_filters');


        iHome.rentTab.addEvent('click', function(e) {
            e = new Event(e).stop();
            iHome.rentTabClicked();
        });
        iHome.purchaseTab.addEvent('click', function(e) {
            e = new Event(e).stop();
            iHome.purchaseTabClicked();
        });

        if (selectedTab == 'purchase') {
            iHome.purchaseTabClicked();
        }

        /* Filters
        **********/

        var filters = $('filters');
        var filtersSlide = new Fx.Slide(filters).hide();
        if (showFilters) filtersSlide.show();

        var advSearchLinks = $$('.adv_search');
        advSearchLinks.each(function(advLink) {
            advLink.addEvent('click', function() {
                filtersSlide.toggle();
            });
        });

        /* Radio Selectors 
        ******************/

        var priceRadios = [];
        var PriceInputsDiv = [];

        ["ctl00_SearchBar_rent_only", "ctl00_SearchBar_trust_only", "ctl00_SearchBar_rent_n_trust"].each(function(el, i) {
            priceRadios[i] = $(el);
            PriceInputsDiv[i] = $(el + '_price');
        });

        priceRadios.each(function(radio, i) {
            radio.addEvent('click', function() {
                PriceInputsDiv.each(function(div, j) {
                    if (i == j) div.setStyle('display', 'block');
                    else div.setStyle('display', 'none');
                });
            });
            if (radio.checked) {
                PriceInputsDiv.each(function(div, j) {
                    if (i == j) div.setStyle('display', 'block');
                    else div.setStyle('display', 'none');
                });
            };
        });

        if ($("ctl00_cn_rblCountry_0") != null)
            if (!$("ctl00_cn_rblCountry_0").checked) {
                $("country-div").setStyle('display', 'block');
                $("city-div").setStyle('display', 'none');
            }

        if ($("ctl00_cn_rblCountry_0") != null)
            $("ctl00_cn_rblCountry_0").addEvent('click', function() {
                $("country-div").setStyle('display', 'none');
                $("city-div").setStyle('display', 'block');

            });

        if ($("ctl00_cn_rblCountry_1") != null)
            $("ctl00_cn_rblCountry_1").addEvent('click', function() {
                $("country-div").setStyle('display', 'block');
                $("city-div").setStyle('display', 'none');
            });
        		

        /* Thousand Separators
        **********************/
        var priceInputs = $ES('input[name$=_price]')
        priceInputs.each(function(priceInput) {
            priceInput.value = iHome.separateThousands(priceInput.value);
            priceInput.addEvent('keyup', function(event) {
                this.value = iHome.separateThousands(this.value);
            });
        });

        /* Quick Search (Serial Search)
        *******************************/

        var quickSearchBox = $('quick_search');
        var quickSearchToggler = $('qs_toggler');
        var qSearchFxOption = { "duration": 400, "wait": false };
        var qSearchFx = new Fx.Styles(quickSearchBox, qSearchFxOption);

        if (showQSearch) quickSearchBox.setStyle('top', -60);
        quickSearchToggler.addEvent('click', function() {
            var newTop = quickSearchBox.getStyle('top') == "-22px" ? -60 : -22;
            qSearchFx.start({
                "top": newTop
            });
        });

    },

    initMapMarkers: function() {

        var markers = $$('.marker');
        if (markers != null) {
            markers.each(function(marker) {
                if (marker.getElement('span.desc') != null) {
                    marker.getElement('span.desc').setStyle('display', 'none');
                    marker.addEvent('mouseenter', function() {
                        //this.getElement('span').setStyle('display', 'block');
                        this.setStyle('z-index', 999);
                        (function() { this.getElement('span').setStyle('display', 'block') }).bind(this).delay(100);
                    });
                    marker.addEvent('mouseleave', function() {
                        //this.getElement('span').setStyle('display', 'none');
                        this.setStyle('z-index', 998);
                        (function() { this.getElement('span').setStyle('display', 'none') }).bind(this).delay(100);
                    });
                }
            });
        }

    },

    initSearchResult: function() {

        //$$('.map').setStyle('display', 'block');
        var more = $$('.more');
        if (more != null) {
            more.each(function(div) {
                var link = div.getElement('a.togglemap');
                var map = div.getElement('div.map');
                var mapimg = div.getElement('img.mapimg');
                //var mapSlide = new Fx.Slide(map).hide();
                if (link != null) {
                    link.addEvent('click', function(e) {
                        e = new Event(e).stop();
                        if (map.getStyle('display') == 'none') {
                            map.setStyle('display', 'block');
                            mapimg.src = mapimg.name;
                        }
                        else map.setStyle('display', 'none');
                        e = new Event(e).stop();
                        //mapSlide.toggle();

                    });
                }
            });
        }

    },

    buildTooltips: function() {

        var toolTips = new Tips($$('.tips'), {
            initialize: function() {
                this.fx = new Fx.Style(this.toolTip, 'opacity', { duration: 500, wait: false }).set(0);
            },
            onShow: function(toolTip) {
                this.fx.start(1);
            },
            onHide: function(toolTip) {
                this.fx.start(0);
            }
        });

    },

    separateThousands: function(str) {
        var re1 = new RegExp("\,");
        var re2 = new RegExp("(\\d+)(\\d{3})");

        while (re1.test(str)) {
            str = str.replace(re1, "");
        }
        while (re2.test(str)) {
            str = str.replace(re2, "$1,$2");
        }
        return str;
    },

    zoomMap: function() {
        var zoomIn = $('zoomin');
        var zoomOut = $('zoomout');
        if (zoomIn != null) {
            zoomIn.addEvent('click', function(e) {
                e = new Event(e).stop();
                var imgMap = $('ctl00_cn_map');
                imgMap.src = (imgMap.src).replace('zoom=25', 'zoom=75');
                zoomIn.setStyle('display', 'none');
                zoomOut.setStyle('display', 'block');
                //alert(zoomIn.getStyle('display'));
            });

            zoomOut.addEvent('click', function(e) {
                e = new Event(e).stop();
                var imgMap = $('ctl00_cn_map');
                imgMap.src = (imgMap.src).replace('zoom=75', 'zoom=25');
                zoomOut.setStyle('display', 'none');
                zoomIn.setStyle('display', 'block');
            });
        }
    },
    
	initCombo: function(parentCombo, childCombo, items, defaultParent, defaultChild) {
		var parent = $(parentCombo);
		var child = $(childCombo);
		parent.empty();

		items.each(function(el, i) {
		    new Element('option', {
		        'value': el[0][1],
		        'selected': (el[0][1] === defaultParent) ? 'selected' : ''
		    }).setHTML(el[0][0]).inject(parent);
		});

		var selectedItem = parent.selectedIndex;
		items[selectedItem][1].each(function(opt, j) {
		    new Element('option', {
		        'value': opt[1],
		        'selected': (opt[1] === defaultChild) ? 'selected' : ''
		    }).setHTML(opt[0]).inject(child);
		});	

		parent.addEvent('change', function() {
		    var selectedItem = this.selectedIndex;
		    child.empty();
		    items[selectedItem][1].each(function(opt) {
		        new Element('option', {
		            'value': opt[1]
		        }).setHTML(opt[0]).inject(child);
		    });
		});



//		items.each(function(el, i) {

//			new Element('option', {
//				'value': el[0][1],
//				'selected': (el[0][1] === defaultParent) ? 'selected' : '',
//				'events': {
//					'click': function() {
//						child.empty();
//						el[1].each(function(opt) {
//							new Element('option', {
//								'value': opt[1]
//							}).setHTML(opt[0]).inject(child);

//						});
//					}
//				}
//			}).setHTML(el[0][0]).inject(parent);
//		});

//		items[parent.selectedIndex][1].each(function(opt, j) {
//			new Element('option', {
//				'value': opt[1],
//				'selected': (opt[1] === defaultChild) ? 'selected' : ''
//			}).setHTML(opt[0]).inject(child);
//		});

	},    
    
    openPopup: function(page, w, h) {
        window.open(page, '_blank', 'width=' + w + ',height=' + h + ',scrollbars=no,status=no');
    } 
}

document.write('<style type="text/css" media="screen">.map{display: none}</style>');