var a1;
var a2;
var serviceUrl = '/ajax/getSearchSuggestions.php';
var xmlHttpSM, xmlHttpR;

jQuery(function() {
	var focusObject = function(value, data) {
		document.getElementById('searchObject').focus();
	};
	var focusLocation = function(value, data) {
		document.getElementById('searchLocation').focus();
	};

	var module = $('#module').val();
	var options = {
		serviceUrl : serviceUrl,
		width : 300,
		delimiter : /(,|;)\s*/,
		onSelect : focusObject,
		deferRequestBy : 0, // miliseconds
		params : {
			searchModule : module,
			searchContext : 'object'
		},
		noCache : false
	};
	var options2 = {
		serviceUrl : serviceUrl,
		width : 300,
		delimiter : /(,|;)\s*/,
		onSelect : focusLocation,
		deferRequestBy : 0, // miliseconds
		params : {
			searchModule : module,
			searchContext : 'location'
		},
		noCache : false
	};

	a1 = $('#searchObject').autocomplete(options);
	a2 = $('#searchLocation').autocomplete(options2);

});

jQuery(document).ready(function() {
	$("#showallitemslink").click(function () {
		  $(".hiddenitem").show("fast");
		  $(this).hide("fast");
		});
	
	$("#showallpictureslink").click(function () {
		  $("ul.fotolist ul").css("max-height","none");
		  $(this).hide("fast");
		});
	
	$(".socialmediapanel .email").click(function() {
		$.fancybox({
			'orig' : $(this),
			'href' : '/popup/sendEmail.php'
		});
	});
	$("a[rel=photo_group]").fancybox({
		'transitionIn' : 'none',
		'transitionOut' : 'none',
		'titlePosition' : 'over'
	});	
	
	searchCityList();
});

var Lst;
function CngClass(id) {
	if (Lst)
		Lst.className = '';
	obj = document.getElementById(id);
	obj.className = 'active';
	Lst = obj;
}

var a_div;

function showContent(div) {
	var p_div = document.getElementById(a_div);
	p_div.style.display = "none";
	p_div = document.getElementById(a_div + "tab");
	p_div.className = " tabbar";
	var c_div = document.getElementById(div);
	c_div.style.display = "block";
	c_div = document.getElementById(div + "tab");
	c_div.className = "tabbar selected";
	a_div = div;
}

function show(obj) {
	if (obj == 'searchObject') {
		if (document.getElementById("searchObject").value) {
			document.getElementById("clearbutton1").style.display = 'block';
		} else {
			document.getElementById("clearbutton1").style.display = 'none';
		}
	} else if (obj == 'searchLocation') {
		if (document.getElementById("searchLocation").value) {
			document.getElementById("clearbutton2").style.display = 'block';
		} else {
			document.getElementById("clearbutton2").style.display = 'none';
		}
	}
}
function hide() {
	if (document.getElementById('searchObject').value != '') {
		document.getElementById('clearbutton1').style.display = 'block';
	} else {
		document.getElementById('clearbutton1').style.display = 'none';
		document.getElementById('searchObject').value = '';
	}
	if (document.getElementById('searchLocation').value != '') {
		document.getElementById('clearbutton2').style.display = 'block';
	} else {
		document.getElementById('clearbutton2').style.display = 'none';
		document.getElementById('searchLocation').value = '';
	}
}

function closeFancybox() {
	document.getElementById('fancybox-overlay').style.display = 'none';
	document.getElementById('fancybox-wrap').style.display = 'none';
}

function Close(obj) {

	if (obj == 'clearbutton1') {
		document.getElementById('searchObject').value = '';
		document.getElementById(obj).style.display = 'none';
		document.getElementById('searchObject').focus();

		// empty variable in session
		$.get(serviceUrl, {
			searchContext : 'object'
		});

		return false;
	} else {
		document.getElementById('searchLocation').value = '';
		document.getElementById(obj).style.display = 'none';
		document.getElementById('searchLocation').focus();

		// empty variable in session
		$.get(serviceUrl, {
			searchContext : 'location'
		});

		return false;
	}

}

var LEFT = 0;
var orginX = 0;
var endX;
var movment = 652;
var lastActive = 0;
var thumbId;
var currentLocation = 0;
var increament = 1;
var totalWidth = 0;
var totalImageWidth = 0;
var count = 0;
function goNext() {
	document.getElementById("backbtn").style.cursor = "none";
	increament++;
	// endX = document.getElementById("newscollection").clientWidth
	// - document.getElementById("nav").clientWidth + 10;

	var d = document.getElementById("nav");
	LEFT = LEFT - movment;
	d.style.left = LEFT + "px";
	currentLocation = currentLocation + (movment);
	// alert(currentLocation);
	var diff = totalImageWidth - currentLocation;
	if (totalImageWidth - currentLocation <= 652 && (increament == count)) {
		document.getElementById("nextbtn").style.display = "none";
	}
	if (LEFT < 0) {
		document.getElementById("backbtn").style.display = "block";
	}
	document.getElementById("backbtn").style.cursor = "pointer";

}
function goBack() {
	increament--;
	currentLocation = currentLocation - (movment);
	var d = document.getElementById("nav");
	LEFT = LEFT + movment;
	d.style.left = LEFT + "px";
	if (LEFT == 0) {
		document.getElementById("backbtn").style.display = "none";
	}
	(count > 1) ? document.getElementById("nextbtn").style.display = "block"
			: document.getElementById("nextbtn").style.display = "none";
}
function googlemap() {

	// results list
	if (document.getElementById("mapcanvas")) {
		// only draw map if there are markers
		if (Object.size(markers) > 0) {
			var myOptions = {
				disableDefaultUI : true,
				mapTypeId : google.maps.MapTypeId.ROADMAP
			};
			var map = new google.maps.Map(document.getElementById("mapcanvas"),
					myOptions);

			setMarkers(map, markers, true);
		} else {
			// hide map block
			document.getElementById("mapcanvas").style.display = 'none';
		}
	}
	// poi details
	else if (document.getElementById("map-canvas")) {
		// only draw map if there are markers
		if (Object.size(markers) > 0) {
			var myOptions = {
				navigationControl : true,
				scaleControl : false,
				mapTypeControl : false,
				streetViewControl : false,
				mapTypeId : google.maps.MapTypeId.ROADMAP
			};
			var map = new google.maps.Map(
					document.getElementById("map-canvas"), myOptions);

			setMarkers(map, markers, false);
		} else {
			// hide map block
			document.getElementById("map-canvas").style.display = 'none';
		}
	}
}

Object.size = function(obj) {
	var size = 0, key;
	for (key in obj) {
		if (obj.hasOwnProperty(key))
			size++;
	}
	return size;
};

function setWidthForImageHolder(totalImages) {
	var sizePerImage = 240;
	count = Math.floor(totalImages / 4);
	if (totalImages % 4 != 0) {
		count = count + 1;
	}
	totalWidth = totalImages * sizePerImage;
	totalImageWidth = movment * Math.floor(totalImages / 4);
	document.getElementById("nav").style.width = totalWidth + "px";
	// if total images is less than 4 then hide..
	if (totalImages < 4)
		document.getElementById("nextbtn").style.display = "none";

}

var c = 0;
var t;
var timer_is_on = 0;
var id = 0;
var counter = 0;
var divid, concatURL;

function timedCount() {

	t = setTimeout("timedCount()", 10000);
	$('#firstslide').animate({
		top : '-=300px'
	}, 500, function() {

		if (document.getElementById('firstslide').style.top == "-300px") {
			document.getElementById('firstslide').style.top = 300 + "px";
			showReactions();

		}

	});
	$('#secondslide').animate({
		top : '-=300px'
	}, 500, function() {

		if (document.getElementById('secondslide').style.top == "-300px") {
			document.getElementById('secondslide').style.top = 300 + "px";
			showReactions();

		}
	});

}
function showReactions() {
	divid = (counter % 2 == 0) ? "secondslide" : "firstslide";
	if (counter == 0) {
		id = document.getElementById("offsetId1").value;
	} else {
		id = (counter % 2 == 0) ? document.getElementById("offsetId1").value
				: document.getElementById("offsetId2").value;

	}
	var url = '/ajax/getReactions.php?id=' + id + '&cnt=' + counter
			+ '&concat=' + concatURL;
	xmlHttp = GetXmlHttpObject();
	if (xmlHttp == null) {
		alert("Browser does not support HTTP Request");
		return;
	}
	xmlHttp.onreadystatechange = stateChanged;
	xmlHttp.open("GET", url, true);
	xmlHttp.send(null);

}

function stateChanged() {
	var height = 0;
	if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete") {
		document.getElementById(divid).innerHTML = xmlHttp.responseText;
		counter++;
	}
}
function GetXmlHttpObject() {
	var xmlHttp = null;
	try {
		// Firefox, Opera 8.0+, Safari
		xmlHttp = new XMLHttpRequest();
	} catch (e) {
		// Internet Explorer
		try {
			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return xmlHttp;
}
var pageCnt = 0;
var movementPerClick = -502;
var totalWidthForUL = 0;
var currentHorizontalLocation = 0;
var clickedMovement = 0;
var topPosition = 0, totalMovement = 0;

function setHeightForEventNavigation(totalImages) {
	pageCnt = Math.floor(totalImages / 6);
	if (totalImages % 6 != 0) {
		pageCnt = pageCnt + 1;
	}
	totalWidthForUL = 502 * pageCnt;
	document.getElementById("eventmask").style.height = totalWidthForUL + "px";

}

function goNextimage() {
	document.getElementById("rightbtn").style.cursor = "none";
	clickedMovement++;
	totalMovement = totalMovement + 502;
	var d = document.getElementById("eventmask");
	topPosition = topPosition + (movementPerClick);
	d.style.top = topPosition + "px";
	if (totalWidthForUL - totalMovement <= 502) {
		document.getElementById("rightbtn").style.display = "none";
	}
	if (totalMovement > 0) {
		document.getElementById("leftbtn").style.display = "block";
	}
	document.getElementById("rightbtn").style.cursor = "pointer";
}

function goPreviousimage() {
	clickedMovement--;
	totalMovement = totalMovement - 502;
	var d = document.getElementById("eventmask");
	topPosition = topPosition - (movementPerClick);
	d.style.top = topPosition + "px";
	if (totalMovement == 0) {
		document.getElementById("leftbtn").style.display = "none";
	}
	if (totalMovement < totalWidthForUL) {

		document.getElementById("rightbtn").style.display = "block";
	}
}

function validate_reaction() {

	var val = true;
	if (document.getElementById("feedback_comments").value == '') {
		document.getElementById("feedback_comments").style.borderColor = '#FF2525';
		val = false;
	} else {
		document.getElementById("feedback_comments").style.borderColor = '#595959';
	}

	if (document.getElementById("feedback").value == '') {
		document.getElementById("feedback_like").style.backgroundPosition = '-101px 0px';
		document.getElementById("feedback_dislike").style.backgroundPosition = '-101px -35px';
		val = false;
	} else {
		document.getElementById("checkboxfeedback").style.borderColor = '#595959';
	}

	// fb_check_error1,fb_check_error2

	if (val == true) {
		postReactionByAjax();
	} else {
		return false;
	}
}

function validateEmailForm() {
	var val = true;
	var mailReg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	if (document.getElementById("voornaam").value == '') {
		document.getElementById("voornaam").style.borderColor = '#FF2525';
		val = false;
	} else {
		document.getElementById("voornaam").style.borderColor = '#595959';
	}

	if (document.getElementById("naam").value == '') {
		document.getElementById("naam").style.borderColor = '#FF2525';
		val = false;
	} else {
		document.getElementById("naam").style.borderColor = '#595959';
	}

	if (document.getElementById("email1").value == '') {
		document.getElementById("email1").style.borderColor = '#FF2525';
		val = false;
	} else {

		if (mailReg.test(document.getElementById("email1").value) == false) {
			document.getElementById("email1").style.borderColor = '#FF2525';
			val = false;
		} else {
			document.getElementById("email1").style.borderColor = '#595959';
		}
	}
	if (document.getElementById("email2").value == '') {
		document.getElementById("email2").style.borderColor = '#FF2525';
		val = false;
	} else {
		if (mailReg.test(document.getElementById("email2").value) == false) {
			document.getElementById("email2").style.borderColor = '#FF2525';
			val = false;
		} else {
			document.getElementById("email2").style.borderColor = '#595959';
		}
	}

	// fb_check_error1,fb_check_error2

	if (val) {
		tellToFriend();
	} else {
		return false;
	}

}
var score = 0;
function changeFeedbackValue(newValue) {
	if ((newValue == '1') && (document.getElementById("feedback").value != '1')) {
		document.getElementById("feedback_like").style.backgroundPosition = '-51px 0px';
		document.getElementById("feedback_dislike").style.backgroundPosition = '0px -35px';
		document.getElementById("feedback").value = '1';
		score = 5;
	} else if ((newValue == '0')
			&& (document.getElementById("feedback").value != '0')) {
		document.getElementById("feedback_like").style.backgroundPosition = '0px 0px';
		document.getElementById("feedback_dislike").style.backgroundPosition = '-51px -35px';
		document.getElementById("feedback").value = '0';
		score = 0;
	} else {
		document.getElementById("feedback_like").style.backgroundPosition = '0px 0px';
		document.getElementById("feedback_dislike").style.backgroundPosition = '0px -35px';
		document.getElementById("feedback").value = '';
		score = 0;
	}
}

// popup widow for facebook & like box
$(document).bind(
		'click.tooltips_icon',
		function(e) {
			var clicked = $(e.target); // get the element clicked
			if ((clicked.is('#facebookpopup') || clicked.parents().is(
					'#facebookpopup'))
					|| (clicked.is('#thumbsup') || clicked.parents().is(
							'#thumbsup'))
					|| (clicked.is('#thumbsdown') || clicked.parents().is(
							'#thumbsdown'))) {
				// click safe!
			} else {
				// outside click
				closeIt();
			}
		});

function closeIt() {
	$("#facebookpopup").css('display', 'none');
	$("#thumbsup").css('display', 'none');
	$("#thumbsdown").css('display', 'none');
}

function cleartext(field) {
	if (field.defaultValue == field.value) {
		field.value = '';
	}
}
function showbutton(field, Id) {
	if (field.defaultValue != field.value && field.value != '') {
		if (Id == 1) {
			document.getElementById("thumbsdowngo").style.display = 'block';
		} else if (Id == 2) {
			document.getElementById("thumbsupgo").style.display = 'block';
		} else {
			document.getElementById("facebookpopupgo").style.display = 'block';
		}
	} else if (field.value == '') {
		if (Id == 1) {
			document.getElementById("thumbsdowngo").style.display = 'none';
		} else if (Id == 2) {
			document.getElementById("thumbsupgo").style.display = 'none';
		} else {
			document.getElementById("facebookpopupgo").style.display = 'none';
		}
	}

}
function reloadtext(field) {
	if (field.value == '') {
		field.value = field.defaultValue;
		document.getElementById("go").style.display = 'none';
	} else if (field.value == field.defaultValue) {
		document.getElementById("go").style.display = 'none';
	}
}

function getPosition(e) {
	e = e || window.event;
	var cursor = {
		x : 0,
		y : 0
	};
	if (e.pageX || e.pageY) {
		cursor.x = e.pageX;
		cursor.y = e.pageY;
	} else {
		var de = document.documentElement;
		var b = document.body;
		cursor.x = e.clientX + (de.scrollLeft || b.scrollLeft)
				- (de.clientLeft || 0);
		cursor.y = e.clientY + (de.scrollTop || b.scrollTop)
				- (de.clientTop || 0);
	}
	x = cursor.x;
	y = cursor.y;
	return [ x, y ];
	// return cursor;
}

//check to open popup - dont reopen if already open
var showPopupOpen = false
function showPopupFacebook(p, moduleName, moduleId, submoduleName,
		submoduleId) {

	if (userFacebookLogin('showPopupFacebook',new Array(p, moduleName, moduleId, submoduleName, submoduleId)) && !showPopupOpen) {
		$
				.ajax({
					type : "POST",
					url : "/ajax/userShareFacebook.php",
					data : "moduleName=" + moduleName + "&moduleId=" + moduleId
							+ "&submoduleName=" + submoduleName
							+ "&submoduleId=" + submoduleId + "&score=5",
					success : function(id) {
						id = parseInt(id);
						popupDiv = p.getElementsByTagName('div').item(0);
						popupDiv.style.display = 'block';		
						showPopupOpen = true;
						$(popupDiv).html(
								'<div class="tooltips_icon" id="tooltips_icon">'
										+ '<div class=popuppointer>&nbsp;&nbsp;</div><p>Jij raadt dit aan. <span><a href="javascript:void(0);" onclick="closePopupFB('
										+ id
										+ ",'"
										+ moduleName
										+ "',"
										+ moduleId
										+ ');">Ongedaan maken</a></span></p><form name="form_thumbsup"  method="post"><input name="liketext" type="text" id="keyword" class="inputbox" value=" Waarom raad je dit aan?" onfocus=cleartext(this) onblur=reloadtext(this) onkeyup="showbutton(this,3)" />'
										+ '<button id="facebookpopupgo" style="display:none;" name="go" class="clickhere" onclick="return Hidefacebook_tooltip('
										+ id
										+ ",'"
										+ moduleName
										+ "',"
										+ moduleId
										+ ');"><span>Verstuur</span></button>	</form></div>');
						
						//add functions to close popups on leave
						$('.facebook').mouseleave(function() {
							popupDiv.style.display = 'none';	
							$(popupDiv).html();	
							showPopupOpen = false;
							});	
						
						reloadSocialMediaPanel(moduleName, moduleId);
					}
				});
	}
	return false;
}

function showPopupThumbsUp(p, moduleName, moduleId, submoduleName,
		submoduleId) {

	if (userFacebookLogin('showPopupFacebook',new Array(p, moduleName, moduleId, submoduleName, submoduleId)) && !showPopupOpen) {
		$
				.ajax({
					type : "POST",
					url : "/ajax/userReaction.php",
					data : "moduleName=" + moduleName + "&moduleId=" + moduleId
							+ "&submoduleName=" + submoduleName
							+ "&submoduleId=" + submoduleId + "&score=5"
							+ "",
					success : function(id) {
						id = parseInt(id);
						popupDiv = p.getElementsByTagName('div').item(0);
						popupDiv.style.display = 'block';		
						showPopupOpen = true;
						$(popupDiv).html(
										'<div class="tooltips_icon" id="tooltips_icon">'
												+ '<div class="popuppointer">&nbsp;&nbsp;</div><p>Jij vindt dit leuk. <span><a href="javascript:void(0);" onclick="closePopup('
												+ id
												+ ",'"
												+ moduleName
												+ "',"
												+ moduleId
												+ ');">Ongedaan maken</a></span></p><form name="form_thumbsup" method="post"><input name="liketext" type="text" id="keyword" class="inputbox" value=" Waarom vind je dit leuk?" onfocus=cleartext(this) onblur=reloadtext(this) onkeyup="showbutton(this,2)" />'
												+ '<button id="thumbsupgo" style="display:none;" name="go" class="clickhere" onclick="return Hide_tooltip('
												+ id
												+ ",'"
												+ moduleName
												+ "',"
												+ moduleId
												+ ');"><span>Verstuur</span></button></form></div>');

						//add functions to close popups on leave
						$('.thumbsup').mouseleave(function() {
							popupDiv.style.display = 'none';	
							$(popupDiv).html();	
							showPopupOpen = false;
							});	
						
						reloadSocialMediaPanel(moduleName, moduleId);
					}
				});
	}
	return false;
}

function showPopupThumbsDown(p, moduleName, moduleId, submoduleName,
		submoduleId) {

	if (userFacebookLogin('showPopupFacebook',new Array(p, moduleName, moduleId, submoduleName, submoduleId)) && !showPopupOpen) {
		$
				.ajax({
					type : "POST",
					url : "/ajax/userReaction.php",
					data : "moduleName=" + moduleName + "&moduleId=" + moduleId
							+ "&submoduleName=" + submoduleName
							+ "&submoduleId=" + submoduleId + "&score=0"
							+ "",
					success : function(id) {
						id = parseInt(id);
						popupDiv = p.getElementsByTagName('div').item(0);
						popupDiv.style.display = 'block';		
						showPopupOpen = true;
						$(popupDiv).html(
										'<div class="tooltips_icon" id="tooltips_icon">'
												+ '<div class="popuppointer">&nbsp;&nbsp;</div><p>Jij vindt dit niet leuk. <span><a href="javascript:void(0);" onclick="closePopup('
												+ id
												+ ",'"
												+ moduleName
												+ "',"
												+ moduleId
												+ ');">Ongedaan maken</a></span></p><form name="form_thumbsup" method="post"><input name="liketext" type="text" id="keyword" class="inputbox" value=" Waarom vind je dit niet leuk?" onfocus=cleartext(this) onblur=reloadtext(this) onkeyup="showbutton(this,1)" />'
												+ '<button id="thumbsdowngo" style="display:none;" name="go" class="clickhere" onclick="return Hide_tooltip('
												+ id
												+ ",'"
												+ moduleName
												+ "',"
												+ moduleId
												+ ');"><span>Verstuur</span></button></form></div>');

						//add functions to close popups on leave
						$('.thumbsdown').mouseleave(function() {
							popupDiv.style.display = 'none';	
							$(popupDiv).html();	
							showPopupOpen = false;
							});	
						
						reloadSocialMediaPanel(moduleName, moduleId);
					}
				});
	}
	return false;
}

// onform submit function for Facebook
function Hidefacebook_tooltip(reactionId, moduleName, moduleId) {
	if (document.getElementById("keyword").value == document
			.getElementById("keyword").defaultValue
			|| document.getElementById("keyword").value == '') {
		document.getElementById("keyword").value = document
				.getElementById("keyword").defaultValue;
		document.getElementById("go").style.display = 'none';
	} else {
		var message = document.getElementById("keyword").value;
		$.ajax({
			type : "POST",
			url : "/ajax/userShareFacebook.php",
			data : "moduleName=" + moduleName + "&moduleId=" + moduleId
					+ "&reactionId=" + reactionId + "&action=update&message="
					+ message + "",
			success : function(id) {
				//get parent tag
				popupDiv = document.getElementById('tooltips_icon').parentNode;
				popupDiv.style.display = 'none';	
				$(popupDiv).html();	
				showPopupOpen = false;
			}
		});
		reloadSocialMediaPanel(moduleName, moduleId);
		reloadReactions(moduleId);
	}
	return false;
}

function Hide_tooltip(reactionId, moduleName, moduleId) {
	if (document.getElementById("keyword").value == document
			.getElementById("keyword").defaultValue
			|| document.getElementById("keyword").value == '') {
		document.getElementById("keyword").value = document
				.getElementById("keyword").defaultValue;
		document.getElementById("go").style.display = 'none';
	} else {
		var message = document.getElementById("keyword").value;
		$.ajax({
			type : "POST",
			url : "/ajax/userReaction.php",
			data : "moduleName=" + moduleName + "&moduleId=" + moduleId
					+ "&reactionId=" + reactionId + "&action=update&message="
					+ message + "",
			success : function(id) {
				//get parent tag
				popupDiv = document.getElementById('tooltips_icon').parentNode;
				popupDiv.style.display = 'none';	
				$(popupDiv).html();	
				showPopupOpen = false;
			}
		});
		reloadSocialMediaPanel(moduleName, moduleId);
		reloadReactions(moduleId);
	}
	return false;
}
var userId;
// Facebook popup login function
function userFacebookLogin(callbackFunction,callbackArguments) {

	if (!userId)
		userId = (document.getElementById('userId')) ? document
				.getElementById('userId').value : false;

	if (userId)
		return true;
	else {
		connectWithFacebook(callbackFunction,callbackArguments);
		return false;
	}

}

function userFacebookLogout() {
	userId = null;
	logoutFromFacebook();
}

function logoutFromFacebook() {
	
	logoutFacebook();

	$.ajax({
		type : "POST",
		url : "/ajax/userLogout.php",
		success : function() {
			var url = '/includes/join.inc.php?ajax=1';
			xmlHttp = GetXmlHttpObject();
			if (xmlHttp == null) {
				alert("Browser does not support HTTP Request");
				return;
			}

			xmlHttp.onreadystatechange = facebookAccountCallback;
			xmlHttp.open("GET", url, true);
			xmlHttp.send(null);
		}
	});
}

function connectWithFacebook(callbackFunction,callbackArguments) {
	closeFancybox();
	requestFacebookPermissions(callbackFunction,callbackArguments);
}

function checkFacebookPermissions(permissions, uid, cb)
{
  FB.Data
    .query('select {0} from permissions where uid={1}', permissions, uid)
    .wait(function (res) {
      if (!res || res.length < 1) return cb(false);
      var row = res[0];
      var aperm = permissions.split(',');
      for (var i = 0; i < aperm.length; i++) {
        if (row[aperm[i]] != 1) return cb(false);
      }
      return cb(true);
  });
}

function requestFacebookPermissions(callbackFunction,callbackArguments)
{
	return FB.login(function(response)
	{
		status = false;
		
		if (response.authResponse)
		{
			checkFacebookPermissions('manage_pages,offline_access,publish_stream', response.authResponse.userID, function(permissionsOK)
			{
			   if(permissionsOK) {
		            status = true;
	    			// user is logged in and granted some permissions.
	    			// perms is a comma separated list of granted permissions
			   } else {
		            status = false;
	        		// user is logged in, but did not grant any permissions
			   }
			});
		} else {
            status = false;
    		// user is logged in, but did not grant any permissions
		}	
    	
    	return FB.api('/me', function(response2) {
    		
        	session_key = status ? response.authResponse.accessToken : "";
        	
        	$.ajax({
        		type : "POST",
        		url : "/ajax/userLogin.php",
        		data : 'fbuser=' + response2.id + '&fbname=' + response2.name + '&fbsession=' + session_key,
        		success : function(status) {
        			var url = '/includes/join.inc.php?ajax=1';
        			xmlHttp = GetXmlHttpObject();
        			if (xmlHttp == null) {
        				alert("Browser does not support HTTP Request");
        				return;
        			}

        			xmlHttp.onreadystatechange = facebookAccountCallback;
        			xmlHttp.open("GET", url, true);
        			xmlHttp.send(null);
        			
        			callbackExecute(callbackFunction,callbackArguments);
        		}
        	});        	
        	
        	
    	});
  	}, {scope:'email,user_birthday,user_hometown,user_location,publish_stream,offline_access'});
}

function callbackExecute(callbackFunction,callbackArguments)
{
	if (callbackFunction)
	{
		var funcCall = callbackFunction + "('" + callbackArguments.join("','")  + "');";
		var ret = eval(funcCall);
	}
}

function logoutFacebook()
{
	return FB.logout(function(response)
	{
		//extra function when logging out ?
	});
}

function facebookAccountCallback() {

	w = window.parent.parent;
	p = w.document || w.contentWindow.document;

	if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete") {
		p.getElementById('memberbox-container').innerHTML = xmlHttp.responseText;
	}

}

function reloadSocialMediaPanel(moduleName, moduleId) {
	if (document.getElementById('socialmediapanel-holder')) {
		var url = '/ajax/userSocialMediaPanel.php?moduleName=' + moduleName
				+ '&moduleId=' + moduleId;
		xmlHttpSM = GetXmlHttpObject();
		if (xmlHttpSM == null) {
			alert("Browser does not support HTTP Request");
			return;
		}

		xmlHttpSM.onreadystatechange = userSocialMediaPanelCallback;
		xmlHttpSM.open("GET", url, true);
		xmlHttpSM.send(null);
	}
}

function userSocialMediaPanelCallback() {

	w = window.parent.parent;
	p = w.document || w.contentWindow.document;

	if (xmlHttpSM.readyState == 4 || xmlHttpSM.readyState == "complete") {
		p.getElementById('socialmediapanel-holder').innerHTML = xmlHttpSM.responseText;
	}

}

function reloadReactions(moduleId) {
	if (document.getElementById('reactions')) {
		var url = '/includes/hopping/detail-reactions.inc.php?moduleId='
				+ moduleId;
		xmlHttpR = GetXmlHttpObject();
		if (xmlHttpR == null) {
			alert("Browser does not support HTTP Request");
			return;
		}

		xmlHttpR.onreadystatechange = itemReactionsCallback;
		xmlHttpR.open("GET", url, true);
		xmlHttpR.send(null);
	}
}

function itemReactionsCallback() {

	w = window.parent.parent;
	p = w.document || w.contentWindow.document;

	if (xmlHttpR.readyState == 4 || xmlHttpR.readyState == "complete") {
		p.getElementById('reactions').innerHTML = xmlHttpR.responseText;
	}

}

// close the popups onclick the 'Ongedaan maken' functions below
function closePopup(reactionId, moduleName, moduleId) {
	$.ajax({
		type : "POST",
		url : "/ajax/userReaction.php",
		data : "moduleName=" + moduleName + "&moduleId=" + moduleId
				+ "&reactionId=" + reactionId + "&action=delete",
		success : function(id) {
			//get parent tag
			popupDiv = document.getElementById('tooltips_icon').parentNode;
			popupDiv.style.display = 'none';	
			$(popupDiv).html();	
			showPopupOpen = false;
		}
	});
	reloadSocialMediaPanel(moduleName, moduleId);

}
function closePopupFB(reactionId, moduleName, moduleId) {
	$.ajax({
		type : "POST",
		url : "/ajax/userShareFacebook.php",
		data : "moduleName=" + moduleName + "&moduleId=" + moduleId
				+ "&reactionId=" + reactionId + "&action=delete",
		success : function(id) {
			//get parent tag
			popupDiv = document.getElementById('tooltips_icon').parentNode;
			popupDiv.style.display = 'none';	
			$(popupDiv).html();	
			showPopupOpen = false;
		}
	});
	reloadSocialMediaPanel(moduleName, moduleId);

}

// search, city options list
function searchCityList() {
	if (document.getElementById('search-citylist'))
	{
		$.ajax({
			type : "POST",
			url : "/ajax/getSearchCityList.php",
			success : function(msg) {
				$("#search-citylist").html(msg);
				//document.getElementById('search-citylist').innerHTML = msg;
			}
		});
	}
}

/* Tooltip popup End */

// fancy box call for Kilk hier button in enality.guide/includes/join.inc.php &
// footer.inc.php
function userRegister() {
	$.fancybox({
		'orig' : $(this),
		'href' : '/popup/userRegister.php'
	});
}

function validateUserRegisterForm() {
	var val = true;
	if ((document.getElementById("userreg_facebook1").value == '')
			|| (document.getElementById("userreg_facebook1").value == '0')) {
		document.getElementById("usereg_fb_checkbox1").style.backgroundPosition = '-101px 0px';
		val = false;
	}

	if (val) {
		$.fancybox.close;
		if (userFacebookLogin('userRegistrationForm',new Array())) {
			$.fancybox({
				'orig' : $(this),
				'href' : '/popup/userProfile.php'
			});
		}
	} else {
		return false;
	}
}

function userRegistrationForm() {
	if (userFacebookLogin('userRegistrationForm',new Array())) {
		$.fancybox({
			'orig' : $(this),
			'href' : '/popup/userProfile.php'
		});
	}
}

function changeFbValue(id) {
	if (document.getElementById("userreg_facebook" + id).value == '1') {
		document.getElementById("usereg_fb_checkbox" + id).style.backgroundPosition = '0px 0px';
		document.getElementById("userreg_facebook" + id).value = '0';
	} else if (document.getElementById("userreg_facebook" + id).value == '0') {
		document.getElementById("usereg_fb_checkbox" + id).style.backgroundPosition = '-51px 0px';
		document.getElementById("userreg_facebook" + id).value = '1';
	}
}

function activeTheVideoList(videolink, name, format) {
	var url = "/ajax/getPoiVideo.php?videourl=" + videolink + "&videoname="
			+ name + "&videoformat=" + format;
	var http = false;

	if (navigator.appName == "Microsoft Internet Explorer") {
		http = new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		http = new XMLHttpRequest();
	}

	http.open("POST", url, true);
	http.onreadystatechange = changeVideo;
	function changeVideo() {
		if (http.readyState == 4) {
			document.getElementById("videoport").innerHTML = http.responseText;
			VideoJS.setupAllWhenReady();
		}
	}
	http.send(null);
}

function changeCheckboxValue(id) {
	if (document.getElementById("userProfileCheckHidden" + id).value == '1') {
		document.getElementById("userProfileCheck" + id).style.backgroundPosition = '0px 0px';
		document.getElementById("userProfileCheckHidden" + id).value = '0';
		if (id == '2')
			document.getElementById('userprofile_selectcountry').disabled = 'true';
	} else {
		document.getElementById("userProfileCheck" + id).style.backgroundPosition = '-51px 0px';
		document.getElementById("userProfileCheckHidden" + id).value = '1';

		if (id == '2')
			document.getElementById('userprofile_selectcountry').disabled = false;
	}
}

var modName, modId, subModName, subModId = '';
function shareMail(moduleName, moduleId, subModuleName, subModuleId) {
	var urlConcat = '';
	if (moduleName) {
		urlConcat += "modName=" + moduleName;
		modName = moduleName;
	}
	if (moduleId) {
		urlConcat += "&modId=" + moduleId;
		modId = moduleId;
	}
	if (subModuleName) {
		urlConcat += "&subName=" + subModuleName;
		subModName = subModuleName;
	}
	if (subModuleId) {
		urlConcat += "&subModId=" + subModuleId;
		subModId = subModuleId;
	}
	$.fancybox({
		'orig' : $(this),
		'href' : '/popup/sendEmail.php?' + urlConcat
	});
}

function tellToFriend() {
	var firstName = $("#voornaam").val();
	var lastName = $("#naam").val();
	var senderMail = $("#email1").val();
	var receiverMail = $("#email2").val();
	var message = $("#desc").val();
	$.fancybox.close();
	$.ajax({
		type : "POST",
		url : "/ajax/userShareMail.php",
		data : "moduleName=" + modName + "&moduleId=" + modId
				+ "&subModuleName=" + subModName + "&subModuleId=" + subModId
				+ "&firstName=" + firstName + "&lastName=" + lastName
				+ "&senderMail=" + senderMail + "&receiverMail=" + receiverMail
				+ "&message=" + message

	});

}

function showFancyForPostReaction(moduleName, moduleId, submoduleName,
		submoduleId) {
	modName = moduleName;
	modId = moduleId;
	subModName = submoduleName;
	subModId = submoduleId;
	
	if (userFacebookLogin('showFancyForPostReaction',new Array(moduleName, moduleId, submoduleName, submoduleId))) {
		$.fancybox({
			'orig' : $(this),
			'href' : "/popup/postReaction.php"

		});
	}
}

function postReactionByAjax() {
	var comment = $("#feedback_comments").val();
	$.ajax({
		type : "POST",
		url : "/ajax/userReaction.php",
		data : "moduleName=" + modName + "&moduleId=" + modId
				+ "&subModuleName=" + subModName + "&subModuleId=" + subModId
				+ "&message=" + comment + "&score=" + score,
		success : function(msg) {
			$.fancybox.close();
			reloadReactions(modId);
			reloadSocialMediaPanel(modName, modId);
		}
	});
	return false;
}

function postnewsletterByAjax() {
	var checkbox1 = document.getElementById("userProfileCheckHidden1").value;
	var checkbox2 = document.getElementById("userProfileCheckHidden2").value;
	var checkbox3 = document.getElementById("userProfileCheckHidden3").value;
	var cityId = document.getElementById("userprofile_selectcountry").value;

	// check dropdown has value if checkbox 2 is selected:
	if (!cityId && checkbox2 == '1') {
		alert('Kies je locatie bij "Promoties uit je buurt"');
		document.getElementById("userprofile_selectcountry").focus();
		return false;
	}

	$.ajax({
		type : "POST",
		url : "/ajax/userSaveSubscriptions.php?",
		data : "newsletter[1]=" + checkbox1 + "&newsletter[2]=" + checkbox2
				+ "&newsletter[3]=" + checkbox3
				+ "&newsletterParameter[2][cityId]=" + cityId,
		success : function(msg) {
			$.fancybox.close();
		}
	});
	return false;
}

function resetFB()
{
	
    //reset Fancybox to original state after loading site
	$(".fotolist li a[href$=.jpg],a[href$=.png],a[href$=.gif]").each(function()
    {   
		$(this).attr("rel", "photo_group");
    });                
}
var prevgalName = '';
function openFB(galName) {
	//empty all galleries
    $("a").each(function(){
		$(this).attr("rel", "");
    });     

	//create gallery based on class
    $("a."+galName).each(function()
    {          
	    $(this).attr("rel", galName);
    });        
   
	//open gallery  
    $('a[rel="'+galName+'"]').fancybox({'onClosed': function() {resetFB();;}});
    $('a[rel="'+galName+'"]:first').trigger("click");
    prevgalName = galName;
}
var selectedColumn;
var selectedColumnWithReset;
var selectedColumnNr = 1;
 
function showBlogItem(blogId,columnNr)
{
	selectedColumn = 'column'+ columnNr;
	selectedColumnWithReset = selectedColumn + ' reset';
	
	$.ajax({
		type : "POST",
		url : "/ajax/getBlog.php?",
		data : "blogId=" + blogId,		
		success : function(msg) {
		
			// TODO : Have to load the detail in the 'blog_detail_pannel' div
			// TODO : Have to apply/remove frame to the li
			
			document.getElementById('blog_detail_pannel').innerHTML = msg;
			
			if(selectedColumnNr != columnNr )
			{
				$("#blog_detail_pannel").css('display','block');
				$(".bloglist").css('margin-top','30px');
				$(".bloglist").css('margin-left','10px');
				$(".bloglist").css('padding-right','20px');
				$(".bloglist").find('li').each(function(){
					
					if(this.className == selectedColumn || this.className == selectedColumnWithReset)
					{
						$(this).css('display', 'block');
						$(this).css('display', 'block');
						$(this).addClass('column');
					}else{
						$(this).css('display', 'none');
					}
					
					if(this.id == "blog_"+blogId){
						
						$(this).addClass("column"+columnNr +" blog_active");
					}
			    });				
				
			  $("#showallblogs").css('display','block');
				
			  selectedColumnNr = columnNr;
			}
			else{				
				$(".bloglist").find('li').each(function()
				{
					//searching previous active list class name
					var classList = this.className.split(/\s+/);
					for (i = 0; i < classList.length; i++) {
					   if (classList[i] === 'blog_active') {
						   $(this).removeClass('blog_active');
					   }
					}
					// selecting active list
					if(this.id == "blog_"+blogId){
						$(this).addClass("blog_active");
					}
			});
		}
	}
});
}
function showBlogList()
{
	selectedColumnNr = 0;	
	
	$("#blog_detail_pannel").css('display','none');
	$(".bloglist").css('margin-top','12px');
	$(".bloglist").css('margin-left','10px');
	$(".bloglist").css('padding-right','20px');
	
	$(".bloglist").find('li').each(function(){
		$(this).css('display', 'block');
		$(this).removeClass('column');
		$(this).removeClass("blog_active");
    });
	$("#showallblogs").css('display','none');
}

function setUserIPLocation(city) 
{
	//post value to AJAX to update DB
	$.ajax({
		type : "POST",
		url : "/ajax/setUserIPLocation.php?",
		data : "city=" + city,
		success : function(response) {
			location.reload(); //reload the page to apply the updated location
		}
	});	
	
}

/* Added by Ahila.M for newsletter subscription part. */
function poiUserFollow(poiId) 
{ 
    var val = true;
	var mailReg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;

    if (document.getElementById("email").value == '') {
        document.getElementById("email").className = 'emailerror';
        val = false;
    } else {

        if (mailReg.test(document.getElementById("email").value) == false) {
            document.getElementById("email").className = 'emailerror';
            val = false;
        } else {
            document.getElementById("email").className = '';
        }
    }
    
    if (val) {
    	$.ajax({
    		type : "POST",
    		url : "/ajax/userFollowPoi.php?",
    		data : "poiId=" + poiId + "&email=" + document.getElementById("email").value
    	});	
    	document.getElementById("email").value = '';
    	alert('We hebben uw email adres succesvol opgeslaan. Bedankt');
        return false;
    } else {
    	alert('Er ging iets mis, gelieve uw email adres na te kijken en eventueel opnieuw te proberen.');
        return false;
    }
}
/* End here. */
 
