function myToggleClass(fieldId, fieldClass){
	document.getElementById(fieldId).className = fieldClass;
}

function empty(mixed_var) {
	var key;
	if (mixed_var === "" || mixed_var === 0 || mixed_var === "0" || mixed_var === null || mixed_var === false || typeof mixed_var === 'undefined') { return true; }
	if (typeof mixed_var == 'object') {
		for (key in mixed_var) {
			return false;
		}
		return true;
	}
	return false;
}

function json_decode(str_json){var json=this.window.JSON;if(typeof json==='object'&&typeof json.parse==='function'){try{return json.parse(str_json);}catch(err){if(!(err instanceof SyntaxError)){throw new Error('Unexpected error type in json_decode()');}
this.php_js=this.php_js||{};this.php_js.last_error_json=4;return null;}}
var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;var j;var text=str_json;cx.lastIndex=0;if(cx.test(text)){text=text.replace(cx,function(a){return'\\u'+('0000'+a.charCodeAt(0).toString(16)).slice(-4);});}
if((/^[\],:{}\s]*$/).test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,'@').replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,']').replace(/(?:^|:|,)(?:\s*\[)+/g,''))){j=eval('('+text+')');return j;}
this.php_js=this.php_js||{};this.php_js.last_error_json=4;return null;}

function toggle(obj) {
	var el = document.getElementById(obj);
	if ( el.style.display != 'none' ) {
		el.style.display = 'none';
	}
	else {
		el.style.display = '';
	}
}

function submitForm(id) {
	if(id == 'searchForm'){
		if(document.getElementById('query').value == 'Uw zoekopdracht'){
			document.getElementById('query').value = '';
		}
	} 
	document.forms[id].submit();	
}

function printwindow(mypage, myname, w, h){
    LeftPosition = (screen.width) ? (screen.width - w) / 2 : 100;
    TopPosition = (screen.height) ? (screen.height - h) / 2 : 100;
    settings = 'width=' + w + ',height=' + h + ',top=' + TopPosition + ',left=' + LeftPosition + ',scrollbars=yes,location=no,directories=no,status=no,menubar=no,toolbar=no,resizable=yes';
    win = window.open(mypage, myname, settings);
}

function updateDatePullDownMenu(objForm, fieldName) {
  var pdmDays = fieldName + "_days";
  var pdmMonths = fieldName + "_months";
  var pdmYears = fieldName + "_years";

  time = new Date(objForm[pdmYears].options[objForm[pdmYears].selectedIndex].text, objForm[pdmMonths].options[objForm[pdmMonths].selectedIndex].value, 1);

  time = new Date(time - 86400000);

  var selectedDay = objForm[pdmDays].options[objForm[pdmDays].selectedIndex].text;
  var daysInMonth = time.getDate();

  for (var i=0; i<objForm[pdmDays].length; i++) {
    objForm[pdmDays].options[0] = null;
  }

  for (var i=0; i<daysInMonth; i++) {
    objForm[pdmDays].options[i] = new Option(i+1);
  }

  if (selectedDay <= daysInMonth) {
    objForm[pdmDays].options[selectedDay-1].selected = true;
  } else {
    objForm[pdmDays].options[daysInMonth-1].selected = true;
  }
}

//BOOKMARK FUNCTION
function addToFavorites(obj, url, title) {
	if (window.sidebar) { // Mozilla Firefox Bookmark
		window.sidebar.addPanel(title, url, "");
	} else if( window.external ) { // IE Favorite
		window.external.AddFavorite( url, title);
	} else if(window.opera && window.print){
		//Opera Hotlist
		obj.setAttribute('href',url);
		obj.setAttribute('title',title);
		obj.setAttribute('rel','sidebar');
		obj.click();
	}
	return false;
}

var GMap = null;
var GBounds = new google.maps.LatLngBounds();
var GMarkers = new Array();
var geocoder;

function initialize(mapId) {
	var GLatLng = new google.maps.LatLng(51.437745,5.480225);
	
	var myOptions = {
		zoom: 8,
		center: GLatLng,
		mapTypeId: google.maps.MapTypeId.ROADMAP
		//disableDefaultUI: true // disable all default map ui	
	};
	GMap = new google.maps.Map(document.getElementById(mapId), myOptions);
}

function addMarker(lat, lng, html, marker) {
	if(empty(marker)){
		marker = 1;
	}
	var GLatLng = new google.maps.LatLng(lat, lng);
	var GMarker = new google.maps.Marker({
		map: GMap,
		position: GLatLng,
		icon: '/template/images/marker'+marker+'.png'
	});
	var GInfoWindow = new google.maps.InfoWindow({
	    content: html
	});
	google.maps.event.addListener( GMarker, "click", function(overlay, point) {
		GInfoWindow.open(GMap,GMarker);
	});
	GMarkers.push(GMarker);
	GBounds.extend(GLatLng);
}

function clearMarkers(){
    for(var i=0; i < GMarkers.length; i++){
    	GMarkers[i].setMap(null);
    }
    GMarkers = new Array();
};

window.addEvent('domready', function() { 
	// top menu language selection
	/*
	$('chooseLanguage').addEvents({
	    'mouseover': function(){
	        $('languages').setStyle('display', 'inline-block');
			$('chooseLanguage').addClass('first-child');
	    },
	    'mouseout': function(){
	        $('languages').setStyle('display', 'none');
			$('chooseLanguage').removeClass('first-child');
	    }
	});
	*/
	milkbox = new MilkboxTS({});
	
	// googlemaps
	
	
	// googlemaps
	if($('theMap')){
		initialize('theMap');
		
		/* ajax alert */
		$('zoeken').addEvent('click', function(event) {
			clearMarkers();
			var sAddress = $('address').getProperty('value').trim();
			var sBranches = $$('.bgDealerSearch input["name=branche[]"]:checked').getProperty('value').join('#');

			if(sAddress.length <= 0) {
//				alert('Vul een postcode of plaats in a.u.b.!');
//				return;
			}				
			
			//prevent the page from changing
			event.stop();

			geocoder = new google.maps.Geocoder();
			var oData = {lat: '', lng: '', branches: sBranches};
		    if (geocoder) {
		    	geocoder.geocode( { 'address': sAddress}, function(results, status) {
			        if (status == google.maps.GeocoderStatus.OK) {
			        	oData.lat = results[0].geometry.location.lat();
			        	oData.lng = results[0].geometry.location.lng();
			        } else {
			        	oData.lat = '';
			        	oData.lng = '';
			        }
						
		        	//make the ajax call
					var req = new Request({
						method: 'get',
						url: '/template/front_locator_area.php',
						data: oData,
						onRequest: function() { 
							//alert('Request made. Please wait...'); 
						},
						onComplete: function(response) {
							response = json_decode(response);
							response.each(function(v, i){
								addMarker(v.latitude, v.longitude, '<b>'+v.company+'</b><br/>'+v.address+' '+v.postal+' '+v.city+'<br/>Branche: '+v.branche + (!empty(v.arts) ? '<br />Arts: ' + v.arts : ''), v.marker);
							});
							GMap.fitBounds(GBounds);
						}
					}).send();			        	
//			        } else {
//						var cause = ((status ==  'ZERO_RESULTS') ? 'U heeft geen adres op gegeven!' : status);
//						alert("Coordinaten konden niet worden geladen om de volgende reden: " + cause);
//			        }
		    	});
		    }			
		});
		$('zoeken').click();
	}
	
	if($('mainBanners')){
		//slider variables for making things easier below
		var itemsHolder = $('mainBanner');
		//var myItems = $$(itemsHolder.getElements('.bannerHolder'));
		var myItems = $$('#mainBanner a'); // the images	
		//create instance of the slider, and start it up		
		var mySlider = new SL_Slider({
			slideTimer: 7000,
			orientation: 'horizontal', //vertical, horizontal, or none: None will create a fading in/out transition.
			fade: true,                //if true will fade the outgoing slide - only used if orientation is != None
			isPaused: false,
			container: itemsHolder,
			items: myItems
		});
		mySlider.start();		
	}
	
	// Input text field toggle
	// Set default text in attr value and add class to input
	// field with
	// classname: toggle
	// example: <input type="text" name="some" id="some" class="toggle" rel="Uw zoekopdracht.." value="" />
	$$('input:text.toggle').each(function(elem) {
		var oInput = $(elem.id);
		oInput.addEvent('click', function(){
			if (oInput.get('rel') == null || oInput.get('rel') == oInput.value) {
				oInput.set('rel', oInput.value);
				oInput.value = '';
			}
		});
		oInput.addEvent('blur', function(){
			if (oInput.value == '') {
				oInput.value = oInput.get('rel');
			}
		});
	});
	
	
	// delay popup showing with 2 sec and fadein
	if($('popupMainContainer')){		
		var hidePopup = new Fx.Tween('popupContainer');	
		(function(){ hidePopup.start('top', -800, 0); }).delay(1500);	
		$$('.popupClose').addEvent('click', function(){
			$('popupContainer').setStyle('visibility', 'hidden');
			$('popupMainContainer').setStyle('visibility', 'hidden');
		});	
	}
	
});
