﻿/// <reference path="~/js/jquery-1.3.2.js" />

//if (typeof sIFR == "function") // && !sIFR.UA.bIsIEMac && (!sIFR.UA.bIsWebKit || sIFR.UA.nWebKitVersion >= 100))
{
  var customfont1 = { src: 'swf/customfont.swf' };
  var customfont2 = { src: 'swf/customfont2.swf' };

  //sIFR.useStyleCheck = true;

  sIFR.activate(customfont1, customfont2);

  sIFR.replace(customfont1, { selector: 'h5', css: '.sIFR-root { color: #FFFFFF; background:#0075B4;}', transparent: 'true', onRelease: function() { openUploader(); }, forceSingleLine: 'true' });
  sIFR.replace(customfont2, { selector: 'h6', css: '.sIFR-root { color: #FFFFFF; background:#0075B4; }', transparent: 'true', onRelease: function() { openUploader(); }, forceSingleLine: 'true' });
};


// Global detection of IE7 (you really thought nightmares where over after netscape 4.x?)
//var _isIE7 = false;
//if (jQuery.browser.msie)
//{
//  _isIE7 = parseInt(jQuery.browser.version) < 8;
//  alert(jQuery.browser.version);
//}

// Global array of Marker Listeners to solve the memory leak problem in IE7
var g_arrMarkerListeners = [];

// Global array of Markers to solve the memory leak problem in IE7
var g_arrMarkers = [];

jQuery(document).ready(function()
{
  //$.preloadCssImages();
  
  jQuery('#map').jmap('init',
    { 'mapType': 'sat', 'mapCenter': [52.0, 5.0], 'mapZoom': 9, 'mapEnableType': true, 'mapControl': 'none' },

    function(objMap, element, options)
    {
      $('#map').data('objMap', objMap);

      var customUI = objMap.getDefaultUI();
      customUI.maptypes.hybrid = false;
      customUI.maptypes.physical = false;
      customUI.controls.largemapcontrol3d = false;
      customUI.controls.smallzoomcontrol3d = false;
      objMap.setUI(customUI);

      var topRight = new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(10, 25));
      objMap.addControl(new GLargeMapControl3D(), topRight);

      var objMarkerManager = new MarkerManager(objMap);
      $('#map').data('objMarkerManager', objMarkerManager);

      map_addListeners();
    });

  jQuery('#popuppreview').iPreviewPopup({ initCallback: popuppreview_initCallback });

  jQuery('#maincontent').iContentPopup({ position: '', initCallback: maincontent_initCallback, closeCallback: resetMainMenu });

  jQuery('#resultcontainer').jcarousel(
  { scroll: 6,
    initCallback: resultContainer_initCallback,
    itemLoadCallback: function(objContainer, state) { resultContainer_itemLoadCallback(objContainer, state); }
  });

  $("#sidebar_search").data("includehistoric", 1);

  if (_firstPictureToShow != undefined && _firstPictureToShow != 0)
    openPreviewPopup(_firstPictureToShow);

  if (_WeblogToShow != undefined && _WeblogToShow != 0)
    openContentPopup('weblog.pp?id=' + _WeblogToShow);

  map_showSearchResult();

});

function map_addListeners()
{
  var objMap = $('#map').data('objMap');
  if (objMap)
  {
    GEvent.addListener(objMap, "moveend", function()
    {
      map_showSearchResult();
    });

    GEvent.addListener(objMap, "zoomend", function()
    {
      map_showSearchResult();
    });
  }
}

function map_removeListeners()
{
  var objMap = $('#map').data('objMap');
  if (objMap)
    GEvent.clearInstanceListeners(objMap);
}

function map_showSearchResult()
{
  //alert('map_showSearchResult');
  var objMap = $('#map').data('objMap');
  if (objMap)
  {
		var objMarkerManager = $('#map').data('objMarkerManager');
		if (objMarkerManager)
		{
		  objMarkerManager.clearMarkers();

		  // Remove event listeners (thanks to Martin (warw...@gmail.com))
		  for (i = 0; i < g_arrMarkerListeners.length; i++) { GEvent.removeListener(g_arrMarkerListeners[i]); }
		  g_arrMarkerListeners = new Array();

			var objGLatLngBounds = objMap.getBounds();
			var objTopRight = objGLatLngBounds.getNorthEast();
			var objBottomLeft = objGLatLngBounds.getSouthWest();

			var strSearchParams = "";
			var strSearch;
			var strCategories;
			var strPageSize;

			// keyword provided?
			if ($("#sidebar_search").data("search") != undefined && $("#sidebar_search").data("search") != '')
			{
				strSearch = $("#sidebar_search").data("search");
				strSearchParams += "&search=" + strSearch;
			}

			// category provided?
			if ($("#sidebar_search").data("categoryids") != undefined && $("#sidebar_search").data("categoryids") != '')
			{
				strCategories = $("#sidebar_search").data("categoryids");
				strSearchParams += "&categoryids=" + strCategories;
			}

			strSearchParams += "&includehistoric=" + $("#sidebar_search").data("includehistoric");
			
			strPageSize = "pagesize=";
			if (_isIE7)
			  strPageSize += "50";
			else
			  strPageSize += "100";

			$.ajax(
			{
				method: "get",
				url: "downloadxmlpicture.pp",
				dataType: "xml",
				data: strPageSize + "&page=1&option=search&r=" + objTopRight.x.toFixed(5) + "&t=" + objTopRight.y.toFixed(5) + "&l=" + objBottomLeft.x.toFixed(5) + "&b=" + objBottomLeft.y.toFixed(5) + strSearchParams,
				success: function(data) { map_searchCallback(objMap, data); },
				error: function() { /*alert('xml error');*/ }
			});

		}

  }
}

function map_searchCallback(objMap, data)
{
	var objMarkerManager = $('#map').data('objMarkerManager');
	var arrMarkers = [];

	$(data).find('image').each(function()
	{
	  var strID = $(this).find("id").text();
	  var strX = $(this).find("x").text();
	  var strY = $(this).find("y").text();
	  var strPreview = $(this).find("preview").text();
	  var strIcon = $(this).find("icon").text();
	  var intCategoryID = $(this).find("categoryid").text();

	  var LatLng = new GLatLng(strY, strX)

	  var strIconBG = urlFrontOffice + "/img/icon/bg_icon_" + intCategoryID + ".png";

	  // background icon
	  if (!_isIE7)
	  {
	    var objMarkerBG = new GMarker(LatLng, { icon: getIcon(strIconBG, 26, 30, 11, 11) });
	    arrMarkers.push(objMarkerBG);
	  }

	  // photo icon
	  var objMarker = new GMarker(LatLng, { icon: getIcon(strIcon, 20, 20, 8, 8) });

	  g_arrMarkerListeners.push(GEvent.addListener(objMarker, "click", function()
	  {
	    map_markerAddCallback(objMarker, strID);
	    map_onMarkerClick(objMarker);
	  }));
	  arrMarkers.push(objMarker);

	});

	objMarkerManager.addMarkers(arrMarkers, 0);
	objMarkerManager.refresh();
	arrMarkers = new Array();
}

function getIcon(strIcon, intWidth, intHeight, intAnchorX, intAnchorY)
{
	var objIcon = new GIcon();
	objIcon.image = strIcon;
	objIcon.iconSize = new GSize(intWidth, intHeight);
	objIcon.iconAnchor = new GPoint(intAnchorX, intAnchorY);
	return objIcon;
}

function map_markerAddCallback(objMarker, strID)
{
  $(objMarker).data("PictureID", strID);
}

function map_onMarkerClick(objMarker)
{
  openPreviewPopup($(objMarker).data("PictureID"));
}

function map_moveTo(dblLat, dblLng, intOffset)
{
  var objMap = $('#map').data('objMap');

  var objGLatLngBounds = objMap.getBounds();
  var objTopRight = objGLatLngBounds.getNorthEast();
  var objBottomLeft = objGLatLngBounds.getSouthWest();

  var dblHeightLat = (objTopRight.lat() - objBottomLeft.lat());
  var intPixelHeight = $("#map").height();
  var dblOffsetLat = parseFloat(intOffset * (dblHeightLat / intPixelHeight));
  var dblNewLat = parseFloat(dblLat) + dblOffsetLat;

  var objLatLng = new GLatLng(dblNewLat, dblLng);
  objMap.panTo(objLatLng);
}

function popuppreview_initCallback(obj)
{
  $('#popuppreview').data('popupwindow', obj);
};

function maincontent_initCallback(obj)
{
  $('#maincontent').data('popupwindow', obj);
};

function resultContainer_initCallback(objContainer)
{
  $('#resultcontainer').data('carousel', objContainer);
};

function resultContainer_itemLoadCallback(objContainer, state)
{
//  if (objContainer.prevFirst != null)
//  {
//    // Remove the last visible items to keep the list small
//    for (var i = objContainer.prevFirst; i <= objContainer.prevLast; i++)
//    {
//      objContainer.remove(i);
//    }
//  }

  var intPageSize = objContainer.last - objContainer.first + 1;
  var intCurrPage = 0;
  var f,l;

  for (var intCounter = objContainer.first; intCounter <= objContainer.last; intCounter++)
  {
    var intPage = Math.ceil(intCounter / intPageSize);

    if (intCurrPage != intPage)
    {
      intCurrPage = intPage;

      f = ((intPage - 1) * intPageSize) + 1;
      l = f + intPageSize - 1;

      f = f < objContainer.first ? objContainer.first : f;
      l = l > objContainer.last ? objContainer.last : l;

      if (objContainer.has(f, l))
      {
        continue;
      }

      resultContainer_makeRequest(objContainer, f, l, intPageSize, intPage);
    }
  }
};

function resultContainer_makeRequest(objContainer, first, last, intPageSize, page)
{
  // Lock carousel until request has been made
  objContainer.lock();

  $.ajax(
  {
    method: "get",
    url: "downloadxmlpicture.pp",
    dataType: "xml",
    data: "pagesize=" + intPageSize + "&page=" + page + "&option=feed",
    success: function(data) { resultContainer_itemAddCallback(objContainer, first, last, data, page); },
    error: function() { /*alert('xml error');*/ }
  });
};

function resultContainer_itemAddCallback(objContainer, first, last, data, page)
{
  // Unlock
  objContainer.unlock();

  // Set size
  objContainer.size($(data).find('total').text());
  
  var aImagesXML = $('image', data);
  var intPageSize = objContainer.last - objContainer.first + 1;

  for (var i = first; i <= last; i++)
  {
    var pos = i - 1;
    var idx = Math.round(((pos / intPageSize) - Math.floor(pos / intPageSize)) * intPageSize);

    var objImageXML = aImagesXML.get(idx);
    var objListItem = objContainer.add(i, resultContainer_getItemHTML(objImageXML));
    objListItem.data("pictureid",  $(objImageXML).find("id").text());
  }
};

function resultContainer_getItemHTML(objImageXML)
{
  return "<a href='javascript:openPreviewPopup(\"" + $(objImageXML).find("id").text() + "\")'><img src='" + $(objImageXML).find("thumb").text() + "' width=38 height=38></a>";
};

function resultContainer_autoScroll(intAction)
{
  var objCarousel = $('#resultcontainer').data('carousel');
  if (objCarousel)
  {
    if (intAction != 0)   // 0=stop 1=start 2=cont
  	{
  		if (intAction == 1)
  		{
  			$("#vale_autoscroll").show();
  			$("#carousel_spot").addClass("active");
  			//$("#carousel_spot").attr("src", "../img/jcarousel/spot_act.png");
  		}
  	  
  		var intOldScroll = objCarousel.options.scroll;
  		objCarousel.options.scroll = 1;
  		objCarousel.next();
  		var objItem = objCarousel.get(objCarousel.first);
  		if (objItem)
  		{
  			openPreviewPopup(objItem.data('pictureid'));
  		}
  		objCarousel.options.scroll = intOldScroll;

  		var intTimoutID;
  		intTimoutID = setTimeout("resultContainer_autoScroll(2)", 4000);

  		$('#resultcontainer').data('timeoutid', intTimoutID)
  	}
  	else // stop
  	{
  	  $("#vale_autoscroll").hide();
  	  $("#carousel_spot").removeClass("active");
  	  //$("#carousel_spot").attr("src", "../img/jcarousel/spot.png");
  	  clearTimeout($('#resultcontainer').data('timeoutid'));
  	}
  }
}

function openPreviewPopup(strID, strOption)
{
	$('#maincontent').data('popupwindow').close();
	$('#popuppreview').data('popupwindow').open(strID, strOption);

//	if (strID == '-1')
//	{
//	  openUploader();
//	}
}

function openContentPopup(strFile)
{
	$('#popuppreview').data('popupwindow').close();
	$('#maincontent').data('popupwindow').open(strFile);

	// clear active states
	resetMainMenu();

	// active state needed?
	switch (strFile)
	{
		case "content/menu_nieuwegroeten.html":
			$('.item1').css({ 'background-image': 'url(../img/buttons/button1_ro.gif)', 'background-repeat': 'no-repeat' });
			break;
		case "content/menu_defotowedstrijd.html":
			$('.item2').css({ 'background-image': 'url(../img/buttons/button2_ro.gif)', 'background-repeat': 'no-repeat', 'background-position':'17px 0px' });
			break;
		case "content/menu_dezomertour.html":
			$('.item3').css({ 'background-image': 'url(../img/buttons/button3_ro.gif)', 'background-repeat': 'no-repeat', 'background-position': '24px 0px' });
			break;
	}

  $('.content').animate({scrollTop:0},"fast");
}

function resetMainMenu()
{
	$('.item1').css({ 'background-image': 'url(../img/buttons/button1.gif)', 'background-repeat': 'no-repeat' });
	$('.item2').css({ 'background-image': 'url(../img/buttons/button2.gif)', 'background-repeat': 'no-repeat', 'background-position': '17px 0px' });
	$('.item3').css({ 'background-image': 'url(../img/buttons/button3.gif)', 'background-repeat': 'no-repeat', 'background-position': '24px 0px' });
}

function closePreviewAndContentPopup()
{
	// clear active states
	resetMainMenu();

	$('#popuppreview').data('popupwindow').close();
	$('#maincontent').data('popupwindow').close();
}

function scrollContentPopup(intScroll)
{
	$('.content').animate({ scrollTop:'+=' + intScroll + 'px' }, 1000);
}

function showRegisterForm()
{
  openContentPopup('client.pp');
}

function showPersonalPage()
{
  openContentPopup('client.pp');
}

function submitClientRegistration(name)
{
	var strFirstname = $('input:text#regform_firstname').val();
	var strSurname = $('input:text#regform_surname').val();
	var strLoginname = $('input:text#regform_loginname').val();
	var strPassword = $('input:password#regform_password').val();
	var strDayjob = $('input:text#regform_dayjob').val();
	var strZipcode = $('input:text#regform_zipcode').val();
	var strCity = $('input:text#regform_city').val();
	var strEmail = $('input:text#regform_email').val();
  
	var dataString = '&firstname=' + strFirstname + '&surname=' + strSurname + '&loginname=' + strLoginname + '&password=' + strPassword + '&dayjob=' + strDayjob + '&zipcode=' + strZipcode + '&city=' + strCity + '&email=' + strEmail;

	$.ajax({
		type: "POST",
		url: "processclient.pp?option=register",
		data: dataString,
		success: function(html)
		{
			if (html.indexOf("ConfirmationMailSent") > -1)
			{
				$('#formRegistration').hide();
			}

			$('#alert_clientregistration').hide("fast");
			$('#alert_clientregistration').show("fast");
			$('#alert_clientregistration').html(html);
		},
		error: function()
		{
			$('#alert_clientregistration').show("fast");
			$('#alert_clientregistration').html("Er is een probleem opgetreden.");
		}
	});
	return false;
}

function submitClientDetails(name)
{
	var strFirstname = $('#formClientDetails_firstname').val();
	var strSurname = $('#formClientDetails_surname').val();
	var strDayjob = $('#formClientDetails_dayjob').val();
	var strZipcode = $('#formClientDetails_zipcode').val();
	var strCity = $('#formClientDetails_city').val();
	var strEmail = $('#formClientDetails_email').val();

	var dataString = '&firstname=' + strFirstname + '&surname=' + strSurname + '&dayjob=' + strDayjob + '&zipcode=' + strZipcode + '&city=' + strCity + '&email=' + strEmail;

	$.ajax({
		type: "POST",
		url: "processclient.pp?option=editdetails",
		data: dataString,
		success: function(html)
		{
			$('#alert_clientdetails').hide("fast");
			$('#alert_clientdetails').show("fast");
			$('#alert_clientdetails').html(html);
		},
		error: function()
		{
			$('#alert_clientdetails').show("fast");
			$('#alert_clientdetails').html("Er is een probleem opgetreden.");
		}
	});
	return false;
}

function dataentry_edit()
{
  var strDescription = $('#dataentry_description').val();
  var intCategoryID = $('#dataentry_categoryid').val();
  var intPictureID = $('#dataentry_pictureid').val();

  var dataString = '&description=' + strDescription + "&categoryid=" + intCategoryID;

  $.ajax({
    type: "POST",
    url: "processclient.pp?option=editpicture&pictureid=" + intPictureID,
    data: dataString,
    success: function(html)
    {
      openPreviewPopup(intPictureID);
    }
  });
  return false;
}

function editPictureDetails(intPictureID)
{
	var strDescription	= $('#formpicturedetails_description_' + intPictureID).val();
	var intCategoryID = $('#formpicturedetails_categoryid_' + intPictureID).val();

	var dataString = '&description=' + strDescription + "&categoryid=" + intCategoryID;

	$.ajax({
		type: "POST",
		url: "processclient.pp?option=editpicture&pictureid=" + intPictureID,
		data: dataString,
		success: function(html)
		{
			$('#alert_picturedetails_' + intPictureID).hide("fast");
			$('#alert_picturedetails_' + intPictureID).show("fast");
			$('#alert_picturedetails_' + intPictureID).html(html);
		}
	});
	return false;
}


function deletePicture(intPictureID)
{
	if (confirm("Weet je zeker dat je dit beeld wilt verwijderen?"))
	{
		$.ajax({
			url: "processclient.pp?option=deletepicture&pictureid=" + intPictureID,
			success: function()
			{
			  $('#formpicturedetails_' + intPictureID).html("Deze foto is verwijderd. Je kunt eventueel een andere inzenden.");
				//$('#picturedetails_' + intPictureID).html("<a class=hand onClick=javascript:undeletePicture(" + intPictureID + ") showPersonalPage();>&raquo; verwijderen ongedaan maken</a>");
			}
		});
	}
	return false;
}

function undeletePicture(intPictureID)
{
	$.ajax({
		url: "processclient.pp?option=undeletepicture&pictureid=" + intPictureID,
		success: function()
		{
		}
	});
	return false;
}

function submitWeblogComments()
{
	var intWeblogID = $('#formweblogcomments_weblogid').val();
	var strNameSubmitter = $('#formweblogcomments_namesubmitter').val();
	var strComments = $('#formweblogcomments_comments').val();

	var dataString = 'weblogid=' + intWeblogID + '&namesubmitter=' + strNameSubmitter + '&comments=' + strComments;

	$.ajax({
		type: "POST",
		url: "processweblog.pp?option=add",
		data: dataString,
		success: function(html)
		{
			if (html.indexOf("WeblogCommentsProcessed") > -1)
			{
				$('#formweblogcomments').hide("fast");
			}
			$('#alert_weblogcomments').hide("fast");
			$('#alert_weblogcomments').show("fast");
			$('#alert_weblogcomments').html(html);
		}
	});
	return false;
}

function submitPictureComments()
{
  var intID = $('#picturecommentform_pictureid').val();
  var strNameSubmitter = $('#picturecommentform_namesubmitter').val();
  var strComments = $('#picturecommentform_comments').val();

  var dataString = 'id=' + intID + '&namesubmitter=' + strNameSubmitter + '&comments=' + strComments;

  $.ajax({
    type: "POST",
    url: "downloadxmlpicture.pp?option=commentsadd",
    data: dataString,
    success: function(html)
    {
      $('#popuppreview').data('popupwindow').showComments();
    }
  });
  return false;
}

function textCounter(strElement, intMaxLength, strTarget)
{
	var strText = $(strElement).val();
	var intLength = strText.length;
	var intRemaining = (intMaxLength - intLength);
  
  if (intRemaining<0)
    intRemaining =0;

	$(strTarget).html("(nog " + intRemaining + " resterend)");
	if (intRemaining > 0)
	{
	  return true;
	}
	else
	{
	  $(strElement).val(strText.substr(0, intMaxLength));
	  return false;
	}
	
}

function map_zoomToSinglePicture(strLat, strLng)
{
	var objMap = $('#map').data('objMap');
	if (objMap)
	{
		// close current window (no extra function needed, am I right?)
		$('#maincontent').data('popupwindow').close();

		//$('#map').jmap('RemoveAllMarkers');
		// eigenljk overbodig want deze functie is niet meer in gebruik (st)
		var objMarkerManager = $('#map').data('objMarkerManager');
		if (objMarkerManager)
		{
		  objMarkerManager.clearMarkers();

		  // Remove event listeners (thanks to Martin (warw...@gmail.com))
		  for (i = 0; i < g_arrMarkerListeners.length; i++) { GEvent.removeListener(g_arrMarkerListeners[i]); }
		  g_arrMarkerListeners = new Array();
		  
		}

		// use lat/lng from picture to zoom to
		objMap.setCenter(new GLatLng(strLat, strLng), 18);

		$.ajax(
		{
    		method: "get",
    		url: "downloadxmlpicture.pp",
    		dataType: "xml",
    		data: "option=info",
    		success: function(data) { map_searchCallback(objMap, data); },
    		error: function() { /*alert('xml error');*/ }
		});
	}
}

function valeRollover(strTargetID)
{
	if (strTargetID == "")
	{
		// set div to default
		$("img#vale_buttons").attr("src", "../img/vale/buttons_all.png");
	}
	else
	{
		$("img#vale_buttons").attr("src", "../img/vale/buttons_" + strTargetID + "_ro.png");
	}
}

function valeRolloverIE7(strTargetID)
{
  if (strTargetID == "")
  {
    // set div to default
    $("img#vale_buttons").attr("src", "../img/vale/ie7/buttons_all.png");
  }
  else
  {
    $("img#vale_buttons").attr("src", "../img/vale/ie7/buttons_" + strTargetID + "_ro.png");
  }
}


function valeChooser()
{
	$("#vale").fadeOut("slow");
}

function valeChooserIE7()
{
  $("#vale_ie7").fadeOut("slow");
}

function previewLinksShow()
{
  if ($('#popuppreview').data('popupwindow').pictureID != -1)
  {
    $("#popuppreviewlinks_placeholder").hide();
    $("#popuppreviewlinks").show();
  }
}

function previewLinksHide()
{
	$("#popuppreviewlinks").hide();
	$("#popuppreviewlinks_placeholder").show();
}

function confirmVote()
{
	if (confirm("Weet je zeker dat je op deze foto wilt stemmen?")) return true;
	return false;
}



