<!-- standard jquery scripts for EMI pages  -->


$(document).ready(function() {  

	// image preloader....
	jQuery.preloadImages = function()
	{
		for(var i = 0; i<arguments.length; i++)
		{
			jQuery("<img>").attr("src", arguments[i]);
		}
	}


	$("a.auto").click(function() {
		var sepchar;
		var oldhref = $(this).attr('href');
		var params = new Array('c', 'u');
		var p, i, pvalue;
		for (i=0; i<params.length; i++){
			p = params[i];
			sepchar = (oldhref.indexOf('?') == -1) ? '?' : '&' ;
			if (oldhref.indexOf(p + '=') == -1){ // need to add it in...
				pvalue = $.query.get(p);
				if (pvalue === true)pvalue = '';
				oldhref = oldhref + sepchar + p + '=' + pvalue;
			}
		}
		$(this).attr('href', oldhref );										
  });


	$("a,area,.clicktrack").click(function(e)
		 {
				var spage = ((typeof(mainpage) == 'undefined') || (mainpage == ''))  ? 'undefinedMainPage' : mainpage;
				spage = spage + ((typeof(subpage) == 'undefined' || (subpage == "")) ? '' : "_" + subpage);
				var containX = $("#container").offset().left;
				var containY = $("#container").offset().top;
				$.ajax({
					 type: "GET",
					 url: "linktrack.php" + query_string  + "&l=" + $(this).attr("id")+"&x="+(e.pageX-containX)+"&y="+(e.pageY-containY)+"&s=" + spage, 
					 async: true,
					 cache: false,
					 dataType: "text"
				});
		 }
	);




	$(".leftnav").hover(
	  function() {
			var divname = "#" + $(this).attr('id');
			$(divname+"_up").stop(true);
			$(divname+"_over").stop(true);
			$(divname+"_up").css("opacity", 1);
			$(divname+"_up").hide();
			$(divname+"_over").fadeIn("medium");
			
		},
		function() {
			var divname = "#" + $(this).attr('id');
			$(divname+"_over").stop(true);
			$(divname+"_up").stop(true);
			$(divname+"_over").css("opacity", 1);
			$(divname+"_over").hide();
			$(divname+"_up").fadeIn("medium");
		}
	);


// handle any downloads... check that they are logged in
/*	$(".download").ajaxComplete(function(request, xhr, settings){
	  alert("ajax complete fired");
		alert("request  type="+request.type);
		alert("status="+xhr.status);
		alert("url="+settings.url);
	});
*/


	$("#thumbname").hover(function() {
		$("#clicktoview").fadeIn("slow");
  },
	function(){
		$("#clicktoview").fadeOut("slow");
	});



	$("#thumbname").click(function(e) {
		saveSubPage = subpage;  // so we can restore it
		subpage = "thumbnail";
		e.preventDefault();
		centerPopup("#popupThumbnail");
		loadPopup("#popupThumbnail");
		return false;
	})




	$("#requestPrivacyPolicy").click(function(e){
		var rethtm;
		saveSubPage = subpage;  // so we can restore it
		subpage = "privacy";
		e.preventDefault();
		centerPopup("#popupPrivacyPolicy");
 		$.ajax({
		   type: "GET",
			 url: "/privacyPolicy.htm",
			 dataType: "html",
			 async: false,
			 cache: true,
			 success: function(htm){
					rethtm = htm;
		 	 }
		});
		$("#popupPrivacyPolicyContent").html(rethtm);
		$("#popupPrivacyPolicy").scrollTop(0);
		centerPopup("#popupPrivacyPolicy");
		loadPopup("#popupPrivacyPolicy");
		return false;
	});








  $(".download").click(function(e) {
		 var retval = false;  // who should handle the open of new document
		 var redirect = $(this).attr('href');   // strip off the leading ?
		 $.ajax({
		   type: "GET",
			 url: "loginAdmin.php?action=loginstatus&o=" + $.query.get('o') + '&src=' + Url.encode(redirect),
			 dataType: "xml",
			 async: false,
			 cache: false,
			 success: function(xml){
					var stat = $("status", xml).text();
					if (stat != 'ok') {
						centerPopup("#popupYouMustSignIn");  /* give them one chance to log in */
						loadYouMustSignInPopup();
					}
					else {
						retval = true;
					}
			 }
		 });
		 return retval;
  });


	$("#signOut").click(function(e){
		e.preventDefault();
		$.post("loginAdmin.php?action=signout", function(xml) {
			$("#retInfo").html("return=" + xml.text);
			$("#welcome").html("not signed in");
			$("#statusOut").toggle();
			$("#statusIn").toggle();
		});
		return false;
	});




	$("#requestOptout").click(function(e){
		e.preventDefault();
		//centering with css
			$("#popupRequestOptoutRequest").show();
			centerPopup("#popupRequestOptout");
			loadRequestOptoutPopup();
		return false;
	});


	$("#RequestOptoutForm").ajaxForm(
		{dataType: 'xml', success: function(xml) {
			  var status = $("status", xml).text();  // ok=success
			  var reply = $("reply", xml).text();  // ok=success
				$("#popupRequestOptoutResultsContent").html(reply);
				if (status != "ok"){
					$("#popupRequestOptoutResultsContent").addClass("errorMsg");
				}
				else {
					$("#popupRequestOptoutRequest").hide();
					$("#popupRequestOptoutResultsContent").removeClass("errorMsg");
				}
				$("#popupRequestOptoutResults").show();
			}																	 
	});



	$("#SignInForm").ajaxForm(
		{dataType: 'xml', async: false, cache: false, success: function(xml) {
			  var signInStatus = $("status", xml).text();  // ok=success
			  // alert("Returned xml " + xml.text);
				if (signInStatus == "ok"){
					var uname = $("uname", xml).text();
					// alert("uname="+uname);
					setLoggedIn(uname);
					disableSignInPopup();
				}
				else {
					$("#signInBad").show();	
				}
			}																	 
	});





	$("#signIn").click(function(e){
		e.preventDefault();
		//centering with css
			centerPopup("#popupSignIn");
		//load popup	
			loadSignInPopup();
/*		$.post("loginAdmin.php", {action: "signin"}, function(xml) {
			$("#retInfo").html("return=" + xml.text);																									
			$("#statusOut").toggle();
			$("#statusIn").toggle();  
		});  */
		return false;
	});



	$("#register").click(function(e){
		e.preventDefault();
		//centering with css
			centerPopup("#popupRegistration");
		//load popup	
			loadRegistrationPopup();
/*		$.post("loginAdmin.php", {action: "signin"}, function(xml) {
			$("#retInfo").html("return=" + xml.text);																									
			$("#statusOut").toggle();
			$("#statusIn").toggle();  
		});  */
		return false;
	});


	//Click the x event! 
	$(".popupClose").click(function(){
		disableAllPopups();
	});
	
	
	$(".popupSelfClose").click(function(){
		disableAllPopups();
	});
	
	//Click out event!
	$("#backgroundPopup").click(function(){
		disableAllPopups();
	});
	
	//Press Escape event!
	$(document).keypress(function(e){
		if(e.keyCode==27){
			disableAllPopups();
		}
	});

	$("#requestPassReset").click(function(e){
		e.preventDefault();
		disableSignInPopup();																				
		//centering with css
		centerPopup("#popupPassRecovery");
		loadPassRecoveryPopup();
		return false;
	});




	$("#PassRecoveryForm").ajaxForm(
		{dataType: 'xml', success: function(xml) {
			  var status = $("status", xml).text();  // ok=success
			  // alert("Returned xml " + xml.text);
				if (status == "ok"){
					var uname = $("uname", xml).text();
					disablePassRecoveryPopup();
				}
				else {
					$("#passRecoveryBad").show();	
				}
			}																	 
	});


	$("#requestRegister").click(function(e){
		e.preventDefault();
		disableSignInPopup();																				
		//centering with css
		centerPopup("#popupRegistration");
		loadRegistrationPopup();
		return false;
	});



/* registration form */
/*
	$("#RegistrationForm").ajaxForm(
		{dataType: 'xml', success: function(xml) {
			  var signInStatus = $("status", xml).text();  // ok=success
			  alert("Returned xml " + xml.text);
				if (signInStatus == "ok"){
					var uname = $("uname", xml).text();
					alert("uname="+uname);
					$("#welcome").html("Welcome " + uname + "&nbsp;&nbsp;");	
					$("#statusOut").toggle();
					$("#statusIn").toggle();
					disableRegistrationPopup();
				}
				else {
					$("#signInBad").show();	
				}
			}																	 
	});

*/
/*

	$("#PasswordNewForm").ajaxForm(
		{dataType: 'xml', success: function(xml) {
			var status = $("status", xml).text();  // ok=success
			if (status == "ok"){
				$("#gutsPasswordNew").html($("msg", xml).text());
			}
			else {
				$("#passwordNewBad").html($("errorMessage", xml).text());
				$("#passwordNewBad").show();	
			}
		}																	 
	});

*/

	PEPS.rollover.init();  // setup for rollover images
	
	if(typeof moreReadyFunctions == 'function'){   // this allows additional ready functions to be defined in the pages, only call if exists
		moreReadyFunctions();
	}
	
});   // end of $ ready functions

/*
function disableAllPopups(){
	$("#backgroundPopup").hide();
	disableSignInPopup();
	disablePassRecoveryPopup();
	disableRegistrationPopup();
	disableNewPasswordPopup();
	disableYouMustSignInPopup();
	disablePrivacyPolicyPopup();
	disableRequestOptoutPopup();
}
*/

// user is now logged in, display welcome <name> message (either completed registration or logged in
function setLoggedIn(uname){
	$("#welcome").html("Welcome " + uname + "&nbsp;&nbsp;");	
	$("#statusOut").toggle();
	$("#statusIn").toggle();
}


var allPopupStatus = [];

	function loadPopup(popName){
		if ((allPopupStatus[popName] == 0) || (!allPopupStatus[popName])){
				$("input").attr("value", "");
				$("#backgroundPopup").css({
					"opacity": "0.7"
				});
				$("#backgroundPopup").show();
				$(popName).fadeIn("fast");
				allPopupStatus[popName] = 1;
			}
	}
	

	function disableAllPopups(){
		var closeBackground = false;
		subpage = saveSubPage; // restore it
		for (i in allPopupStatus){
			if (allPopupStatus[i] ==  1){
				$(i).fadeOut("fast");
				allPopupStatus[i] = 0;
				closeBackground = true;
			}
		}
		if (closeBackground){
			$("#backgroundPopup").hide();
		}
	}
	


/* pass recovery pop-up  */

//0 means disabled; 1 means enabled;
	var popupPassRecoveryStatus = 0;
	var popupSignInStatus = 0;
	var popupRegistrationStatus = 0;
	var popupNewPasswordStatus = 0;
	var popupYouMustSignInPopupStatus = 0;
	var popupPrivacyPolicyStatus = 0;
	var popupRequestOptoutStatus = 0;

	//loading popup with jQuery magic!
	function loadPassRecoveryPopup(){
	//loads popup only if it is disabled
		if(popupPassRecoveryStatus==0){
			$("input").attr("value", "");
			$("#passRecoveryBad").hide();	
			$("#backgroundPopup").css({
				"opacity": "0.7"
			});
			$("#backgroundPopup").show();
			$("#popupPassRecovery").fadeIn("fast");
			popupPassRecoveryStatus = 1;
		}
	}


	//disabling popup with jQuery magic!
	function disablePassRecoveryPopup(){
		//disables popup only if it is enabled
		if(popupPassRecoveryStatus==1){
			$("#backgroundPopup").hide();
			$("#popupPassRecovery").fadeOut("fast");
			popupPassRecoveryStatus = 0;
		}
	}


	function loadRequestOptoutPopup(){
	//loads popup only if it is disabled
		if(popupRequestOptoutStatus==0){
			$("#popupRequestOptoutResults").hide();
			$("input").attr("value", "");
			$("#backgroundPopup").css({
				"opacity": "0.7"
			});
			$("#backgroundPopup").show();
			$("#popupRequestOptout").fadeIn("fast");
			popupRequestOptoutStatus = 1;
		}
	}


	//disabling popup with jQuery magic!
	function disableRequestOptoutPopup(){
		//disables popup only if it is enabled
		if(popupRequestOptoutStatus==1){
			$("#backgroundPopup").hide();
			$("#popupRequestOptout").fadeOut("fast");
			popupRequestOptoutStatus = 0;
		}
	}






/* YouMustSignInPopup pop-up  */


	//loading popup with jQuery magic!
	function loadYouMustSignInPopup(){
	//loads popup only if it is disabled
		if(popupYouMustSignInPopupStatus==0){
			$("#backgroundPopup").css({
				"opacity": "0.7"
			});
			$("#backgroundPopup").show();
			$("#popupYouMustSignIn").fadeIn("fast");
			popupYouMustSignInPopupStatus = 1;
		}
	}


	//disabling popup with jQuery magic!
	function disableYouMustSignInPopup(){
		//disables popup only if it is enabled
		if(popupYouMustSignInPopupStatus==1){
			$("#popupYouMustSignIn").fadeOut("fast");
			popupYouMustSignInPopupStatus = 0;
		}
	}




/* sign-in pop-up  */


	//loading popup with jQuery magic!
	function loadSignInPopup(){
	//loads popup only if it is disabled
		if(popupSignInStatus==0){
			$("input").attr("value", "");
			$("#signInBad").hide();	
			$("#backgroundPopup").css({
				"opacity": "0.7"
			});
			$("#backgroundPopup").show();
			$("#popupSignIn").fadeIn("fast");
			popupSignInStatus = 1;
		}
	}


	//disabling popup with jQuery magic!
	function disableSignInPopup(){
		//disables popup only if it is enabled
		if(popupSignInStatus==1){
			$("#backgroundPopup").hide();
			$("#popupSignIn").fadeOut("fast");
			popupSignInStatus = 0;
		}
	}


/* register pop-up  */


	//loading popup with jQuery magic!
	function loadRegistrationPopup(){
	//loads popup only if it is disabled
		if(popupRegistrationStatus==0){
			$("input").attr("value", "");
			$("input").removeClass("error");
			$("#registrationErrors").removeClass("errorMsg");
			$("#registrationErrors").text("*Required fields");
			$("#registrationErrors").css("color", "#fff");
			$("#registrationMessageBox").text("");
			$("#backgroundPopup").css({
				"opacity": "0.7"
			});
			$("#backgroundPopup").show();
			$("#popupRegistration").fadeIn("fast");
			popupRegistrationStatus = 1;
		}
	}



	//disabling popup with jQuery magic!
	function disableRegistrationPopup(){
		//disables popup only if it is enabled
		if(popupRegistrationStatus==1){
			$("#backgroundPopup").hide();
			$("#popupRegistration").fadeOut("fast");
			popupRegistrationStatus = 0;
		}
	}


	//loading popup with jQuery magic!
	function loadNewPasswordPopup(){
	//loads popup only if it is disabled
		if(popupNewPasswordStatus==0){
			$("input").attr("value", "");
			$("input").removeClass("error");
			$("#backgroundPopup").css({
				"opacity": "0.7"
			});
			$("#backgroundPopup").show();
			$("#popupPasswordNew").fadeIn("fast");
			popupNewPasswordStatus = 1;
		}
	}


	//disabling popup with jQuery magic!
	function disableNewPasswordPopup(){
		//disables popup only if it is enabled
		if(popupNewPasswordStatus==1){
			$("#backgroundPopup").hide();
			$("#popupPasswordNew").fadeOut("fast");
			popupNewPasswordStatus = 0;
		}
	}




//centering popup
	function centerPopup(idName){
	//request data for centering
		var windowWidth = document.documentElement.clientWidth;
		var windowHeight = document.documentElement.clientHeight;
		var popupHeight = $(idName).height();
		var popupWidth = $(idName).width();
		//centering
		$(idName).css({
			"position": "absolute",
			"top": Math.max(windowHeight/2-popupHeight/2, 0),
			"left": Math.max(windowWidth/2-popupWidth/2, 0)
		});
		//only need force for IE6
		$("#backgroundPopup").css({
			"height": windowHeight
		});
	}





/* Rollover function... to create a roll-over image, assign it class "ro" and the the image should be _o */

PEPS = {};

PEPS.rollover = 
{
   init: function()
   {
      this.preload();
      
      $(".ro").hover(
         function () { $(this).attr( 'src', PEPS.rollover.newimage($(this).attr('src')) ); }, 
         function () { $(this).attr( 'src', PEPS.rollover.oldimage($(this).attr('src')) ); }
      );
   },

   preload: function()
   {
      $(window).bind('load', function() {
         $('.ro').each( function( key, elm ) { $('<img>').attr( 'src', PEPS.rollover.newimage( $(this).attr('src') ) ); });
      });
   },
   
   newimage: function( src )
   { 
      return src.substring( 0, src.search(/(\.[a-z]+)$/) ) + '_o' + src.match(/(\.[a-z]+)$/)[0]; 
   },

   oldimage: function( src )
   { 
      return src.replace(/_o\./, '.'); 
   }

}


// handy functions...
/**
*
*  URL encode / decode
*  http://www.webtoolkit.info/
*
**/
 
var Url = {
 
	// public method for url encoding
	encode : function (string) {
		return escape(this._utf8_encode(string));
	},
 
	// public method for url decoding
	decode : function (string) {
		return this._utf8_decode(unescape(string));
	},
 
	// private method for UTF-8 encoding
	_utf8_encode : function (string) {
		string = string.replace(/\r\n/g,"\n");
		var utftext = "";
 
		for (var n = 0; n < string.length; n++) {
 
			var c = string.charCodeAt(n);
 
			if (c < 128) {
				utftext += String.fromCharCode(c);
			}
			else if((c > 127) && (c < 2048)) {
				utftext += String.fromCharCode((c >> 6) | 192);
				utftext += String.fromCharCode((c & 63) | 128);
			}
			else {
				utftext += String.fromCharCode((c >> 12) | 224);
				utftext += String.fromCharCode(((c >> 6) & 63) | 128);
				utftext += String.fromCharCode((c & 63) | 128);
			}
 
		}
 
		return utftext;
	},
 
	// private method for UTF-8 decoding
	_utf8_decode : function (utftext) {
		var string = "";
		var i = 0;
		var c = c1 = c2 = 0;
 
		while ( i < utftext.length ) {
 
			c = utftext.charCodeAt(i);
 
			if (c < 128) {
				string += String.fromCharCode(c);
				i++;
			}
			else if((c > 191) && (c < 224)) {
				c2 = utftext.charCodeAt(i+1);
				string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
				i += 2;
			}
			else {
				c2 = utftext.charCodeAt(i+1);
				c3 = utftext.charCodeAt(i+2);
				string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
				i += 3;
			}
 
		}
 
		return string;
	}
 
}