
window.addEvent('domready', function() {  

	if($('DSE-acMulti-zip') && $('cpSelection')){
		$('DSE-acMulti-zip').remove();
		new Element('div',{id:'DSE-acMulti-zip'}).inject('cpSelection');
	}
	home();
	search();
	format_price();
	search_result();
	accordion();
	var gMapFlag = 1;  // 1 si on a deja cliqu� au moin un fois sur la gmap , 0 si non
	if ($('dse_gmap_accord')) {
/*		if(!navigator.appVersion.test("MSIE 6.") && !navigator.appVersion.test("MSIE 7.")){	
			$('dse_gmap_accord').removeEvents('click');
			$('dse_gmap_accord').addEvent('click',gMapDetails);
		}
		else{*/
			gMapDetails();   
/*		}*/
	}	 
	
	if ($$('.listView_item_act')) {
		$('dse_vsp_toggler').fireEvent('click', null, 100);	
	}
	// format a price : justify with spaces for group of 3 ciffers: the price is read from node with id = sv_price
	// e.g. : '1234567 e' is formated as '1 234 567 e'
	function format_price()
	{
		var n;
		var nStr;
		var itxt;

		n = $('sv_price');
		if (n) {
			itxt = 1;
			// check if property innerText is supported or not (supported for IE, not for Firefox, ...)
			try { if (!n.innerText) { n.innerText = n.textContent; itxt = 0;}} catch(e) {itxt = 0;}
			nStr = n.innerText;
			//alert (n.innerText);
			nStr += '';
			x = nStr.split('.');
			x1 = x[0];
			x2 = x.length > 1 ? '.' + x[1] : '';
			var rgx = /(\d+)(\d{3})/;
			while (rgx.test(x1)) 
			{
				x1 = x1.replace(rgx, '$1' + ' ' + '$2');
			}
			if (itxt)
				$('sv_price').innerText = (x1 + x2);	
			else
				$('sv_price').textContent = (x1 + x2);
		}
	} 

	function accordion(){
		if ($('images_container')) {
			$('images_container').getElement('.accord-toggle').addEvent('click',function(){ 
				$('images_container').getElement('.accord-content').toggleClass('hidden');
				$(this).getElement('h3').toggleClass('accord-toggle-alternate');
			});
		}
		
		if ($$('.accord-nest3'))	{
			$$('.accord-nest3').each(function(item)
			{
				item.getElement('.accord-toggle3').addEvent('click',function(){ 
					$($(this).parentNode).getElement('.accord-content2').toggleClass('hidden');
					$(this).getElement('h3').toggleClass('accord-toggle3-alternate');
				});
				
			});							
		}
		
		if ($$('.accord-nest-gmap'))	{
			$$('.accord-nest-gmap').each(function(item)
			{
				item.getElement('.accord-toggle').addEvent('click',function(){ 
					$($(this).parentNode).getElement('.accord-content').toggleClass('hidden');
					$(this).getElement('h3').toggleClass('accord-toggle-alternate');
				});
				
			});							
		}		

		if ($$('.accord-nest2'))	{
			$$('.accord-nest2').each(function(item)
			{
				item.getElement('.accord-toggle2').addEvent('click',function(){ 
					$($(this).parentNode).getElement('.accord-content2').toggleClass('hidden');
					$(this).getElement('h4').toggleClass('accord-toggle2-alternate');
				});
				
			});							
		}

	}
	function home()
	{
		if ($('home'))
		{
			//Home slideshow
			var flashvars = {};
			var params = {'bgcolor': '#f9f9f9'};
			var attributes = {};
			var filePath = '/fileadmin/templates/immolp/system/swf/slideshow.swf';
			swfobject.embedSWF(filePath, "homeSlideShow", "736", "337", "9.0.124", "swf/expressInstall.swf", flashvars, params, attributes);
		}
	}
	
	function search()
	{
		if ($('searchPageForm'))
		{
			//Flash map
			var flashvars = {'lang':getLang()};
			var params = {'bgcolor': '#f9f9f9', 'swliveconnect': 'false'};
			var attributes = {id:'flashMap'};
			var filePath = '/fileadmin/templates/immolp/system/swf/map.swf';
			swfobject.embedSWF(filePath, "mapAC", "736", "580", "9.0.124", "/fileadmin/templates/immolp/system/swf/expressInstall.swf", flashvars, params, attributes);
			completer_zip.addEvent('multiAdded',function(code,label,multiItem){
				//Notify Flash of change
				var allCodes = $('DS-autocomplete-field-zip-hidden').getProperty('value');
				$('flashMap').sendCommuneAddedFromJS(code,allCodes);
			});
			completer_zip.addEvent('multiRemoved',function(code,multiItem){
				//Notify Flash of change
				var allCodes = $('DS-autocomplete-field-zip-hidden').getProperty('value');
				if($('flashMap')) $('flashMap').sendCommuneRemovedFromJS(code,allCodes);
			});			
			//Toggler between flash map and google map
			$('toggleMapsLink').addEvent('click', toggleMaps);
			//Toggle other params
			if($('toggleOtherParams')){
				var toggleLink = $('toggleOtherParams');
				toggleLink.addClass('toggleOtherParamsOff');
				toggleLink.setProperty('state','toggleOtherParamsOff');
				var toggleDiv = $('otherParams');
				toggleDiv.addClass('otherParamsOff');
				//add the click toggle
				toggleLink.addEvent('click', function(e) {
					toggleLink.toggleClass('toggleOtherParamsOn');
					var state = toggleLink.getProperty('state');
					//change the state
					toggleDiv.toggleClass('otherParamsOn');
					var newState = (state == 'toggleOtherParamsOn') ? 'toggleOtherParamsOff' : 'toggleOtherParamsOn';
					toggleLink.setProperty('state',newState);
					if (window.ie)
					{
						return false;
					} else {
						e.preventDefault();
					}
				});			
			}
			
			//slide formatPrice breaks the search. must unformat...
			$('searchPageForm').addEvent('submit',function(e){
				new Event(e).stop();
				$("DSE-priceSlider-priceMin").value = $("DSE-priceSlider-priceMin").value.split(' ').join('');
				$("DSE-priceSlider-priceMax").value = $("DSE-priceSlider-priceMax").value.split(' ').join('');
				this.removeEvents('submit');
				this.submit();
			});
			//alert($('DS-autocomplete-field-zip-hidden').value);
			resetFromButton();
			//alert($('DS-autocomplete-field-zip-hidden').value);
		}
	}
	
	function search_result(){
		if($('tx_dsesate_searchResults'))
		showDescription_init();
	}
	
	function gMapDetails() {
		if(gMapFlag) {
			gMapFlag = 0;
			$('dse_gmap_accord').setStyle('cursor','wait');
			var url = $('mapDetails').getProperty('url');
			//alert(url);
			//var url = "http://www.google.be";
			var myAjax = new Ajax(url, {method: "get",data: 'isAjax=1',update: $('mapDetails'),onComplete: gMapDetails_onComplete,evalScripts: true});
			//var myAjax = new Ajax(url, {update: $('mapDetails')});
			myAjax.request();
			//$('mapDetails').setHTML('<p>Loading Google Map...</p><p>&nbsp;</p>'); 
			//globalAccordion[1].slideIn();
		}
	}
	function gMapDetails_onComplete() {
		dse_gmap_onload();
		//globalAccordion[1].slideIn();
		$('dse_gmap_accord').setStyle('cursor','pointer');
/*		if(!navigator.appVersion. 6.0") && !navigator.appVersion.test("MSIE 7.")){	
			$('dse_gmap_accord').addClass('accord-toggle-alternate');
			var item = $('dse_gmap_container');
			var slider = new Fx.Slide(item.getElement('.accord-content'));
			item.getElement('.accord-toggle')
				.setStyle('cursor','pointer')
				.addEvent('click',function(){ 
					slider.toggle();
					item.getElement('h3').toggleClass('accord-toggle-alternate');
			});
		}
		else {  
				item.getElement('.accord-toggle').addEvent('click',function(){ 
					$($(this).parentNode).getElement('.accord-content').toggleClass('hidden');
					$(this).getElement('h3').toggleClass('accord-toggle-alternate');
				});
		
		}*/
				
		if (!navigator.appVersion.test("Chrome")) {
			$('dse_gmap_toggler').fireEvent('click', null, 350);
		}
	}
	
});

function selectSubject(theCtrlName)
{
    $("DSE-fields-f_subject").value = $(theCtrlName).value;
}

function getLang()
{
	var lang;
	$$('.langSwitcher a').each(function(item)
	{
		if (item.getParent().hasClass('active'))
		{
			lang = item.getText();
		}
	});
	return lang;
}

function addCommuneToMap(commune)
{
	var label = (getLang() == 'nl') ? commune.code+' - '+commune.name_nl : commune.code+' - '+commune.name_fr;
	completer_zip.addMultiEntry(label,commune.code);
}

function removeCommuneToMap(code)
{
	completer_zip.removeMultiEntry(code);
}

function addZoneToMap(arZone)
{
	var total = arZone.length;
	for (var i=0; i < total; i++ )
	{
		var commune = arZone[i];
		var label = (getLang() == 'nl') ? commune.code+' - '+commune.name_nl : commune.code+' - '+commune.name_fr;
		completer_zip.addMultiEntry(label,commune.code);
	}
}

function removeZoneFromMap(arZone)
{
	var total = arZone.length;
	for (var i = 0; i < total; i++ )
	{
		var commune = arZone[i];
		completer_zip.removeMultiEntry(commune.code);
	}
}

function resetFromButton()
{
	var allCodes = $('DS-autocomplete-field-zip-hidden').getProperty('value');
	var arCodes = allCodes.split(';,;');
	
	for (var i = 0; i < arCodes.length; i++ )
	{
		completer_zip.removeMultiEntry(arCodes[i]);
	}
}

window.OnLocalSearchComplete = function(){
	globalAccordion[1].slideIn();
}

function goBackFromSingleView(){
//	if(document.referrer && document.referrer.indexOf('listview') > 0)
	history.go(-1);
//	else
//		document.location.href = 'http://'+document.domain;
//		document.location.href = parent.documentlocation;
}


function showDescription_init() {
	$('sideBarContent').adopt(new Element('div',{
		'id':'popupContent'
	}));
}

function showDescription(el) {	
	if ($('popupContent')) {
		var description = str_replace('<li></li>','',$(el).getElement('.popup_description').innerHTML);
		//alert($(el).getElement('.popup_description'));
		$('popupContent').setHTML(description);
	}	
}

function hideDescription() {
	$('popupContent').setHTML("");
}



function str_replace (search, replace, subject, count) {
    var i = 0, j = 0, temp = '', repl = '', sl = 0, fl = 0,
            f = [].concat(search),
            r = [].concat(replace),
            s = subject,
            ra = r instanceof Array, sa = s instanceof Array;
    s = [].concat(s);
    if (count) {
        this.window[count] = 0;
    }
 
    for (i=0, sl=s.length; i < sl; i++) {
        if (s[i] === '') {
            continue;
        }
        for (j=0, fl=f.length; j < fl; j++) {
            temp = s[i]+'';
            repl = ra ? (r[j] !== undefined ? r[j] : '') : r[0];
            s[i] = (temp).split(f[j]).join(repl);
            if (count && s[i] !== temp) {
                this.window[count] += (temp.length-s[i].length)/f[j].length;}
        }
    }
    return sa ? s : s[0];
}
