// JavaScript Document
/**
* Function : dump()
* Arguments: The data - array,hash(associative array),object
*    The level - OPTIONAL
* Returns  : The textual representation of the array.
* This function was inspired by the print_r function of PHP.
* This will accept some data as the argument and return a
* text that will be a more readable version of the
* array/hash/object that is given.
*/
function dump(arr,level) {
	var dumped_text = "";
	if(!level) level = 0;
	
	//The padding given at the beginning of the line.
	var level_padding = "";
	for(var j=0;j<level+1;j++) level_padding += "    ";
	
	if(typeof(arr) == 'object') { //Array/Hashes/Objects
		for(var item in arr) {
			var value = arr[item];
	
			if(typeof(value) == 'object') { //If it is an array,
				dumped_text += level_padding + "'" + item + "' ...\n";
				dumped_text += dump(value,level+1);
			} else {
				dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
			}
		}
	} else { //Stings/Chars/Numbers etc.
		dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
	}
	return dumped_text;
} 


// Alert Message
function fAlert(sMessage){
	var sRetString = new String('');
	sRetString += '<div id="uiAlert">';
	sRetString += '		<div class="alert">';
	sRetString += '			'+sMessage;
	sRetString += '		</div>';	
	sRetString += '		<div class="uiButtonGroupCentered">';
	sRetString += '			<span class="uiSubmitButton green centered" id="jqOK"><span><a href="javascript://">OK</a></span></span>';
	sRetString += '		</div>';	
	sRetString += '	</div>';
	$.blockUI({ message:  sRetString }); 
	$(".uiSubmitButton a").corner("4px");
	$("#jqOK").click(function() { 
		// remove the block message
		$.unblockUI(); 								
		return false; 						
	});
}

// Confirm Request
function fConfirm(sMessage,fCallback){
	var sRetString = new String('');
	sRetString += '<div id="uiAlert">';
	sRetString += '		<div class="confirm">';
	sRetString += '			'+sMessage;
	sRetString += '		</div>';	
	sRetString += '		<div class="uiButtonGroupCentered">';
	sRetString += '			<span class="uiSubmitButton green centered" id="jqYes"><span><a href="javascript://">Yes</a></span></span>';
	sRetString += '			<span class="uiSubmitButton green centered" id="jqNo"><span><a href="javascript://">No</a></span></span>';	
	sRetString += '		</div>';	
	sRetString += '</div>';	
	$.blockUI({ message:  sRetString }); 
	$(".uiSubmitButton a").corner("4px");
	$("#jqNo").click(function() { 
		// remove the block message
		$.unblockUI(); 								
		return false; 						
	});
	$("#jqYes").click(fCallback);
}

// Error Message
function fError(sMessage){
	var sRetString = new String('');
	sRetString += '<div id="uiAlert">';
	sRetString += '		<div class="error">';
	sRetString += '			'+sMessage;
	sRetString += '		</div>';	
	sRetString += '		<div class="uiButtonGroupCentered">';
	sRetString += '			<span class="uiSubmitButton green centered" id="jqOk"><span><a href="javascript://">OK</a></span></span>';
	sRetString += '		</div>';	
	sRetString += '	</div>';
	$.blockUI({ message:  sRetString }); 
	$(".uiSubmitButton a").corner("4px");
	$("#jqOk").click(function() { 
		// remove the block message
		$.unblockUI(); 								
		return false; 						
	});
}

// Set BlockUI Defaults
function fSetBlockUIDefaults(){
	$.blockUI.defaults = { 
		message:  '<img src="/images/ajax-loader-small.gif" align="absmiddle"> <strong style="font-size:12px;">Processing...</strong>', 
		css: {}, 
		overlayCSS:  {}, 
		baseZ: 1000, 
		centerX: true,
		centerY: true,   
		allowBodyStretch: true, 
		constrainTabKey: true, 
		fadeOut:  500, 
		applyPlatformOpacityRules: true 
	}; 
}

// Set BlockUI Message
function fSetBlockUIMessage(sMesssage){
	$.blockUI.defaults.message = sMesssage; 
}

//Create PopupWindow Profiles
var profiles =
{
	windowCenter:{height:600,width:554,scrollbars: 1,resizable: 1,location:0,center:1},
	windowChat:	{height:520,width:750,scrollbars: 0,resizable: 1,location:0,center:1},
	windowSmall:{height:220,width:550,scrollbars: 0,resizable: 1,location:0,center:1},
	windowPM:{height:450,width:720,scrollbars: 0,resizable: 1,location:0,center:1},
	windowTall:{height:720,width:580,scrollbars: 1,resizable: 1,location:0,center:1}
	
};

// Scroll to any anchor point: 
// <a href="#myAnchor" class="anchorLink">Link to the anchor</a>
// <a name="myAnchor" id="myAnchor">The destination</a>
function anchorScroll() {
	$("a.anchorLink").click(function () {	
		elementClick = $(this).attr("href")
		destination = $(elementClick).offset().top;
		$("html:not(:animated),body:not(:animated)").animate({ scrollTop: destination}, 500 );
		return false;
	});
}

function fUpdateFCKInstance(sInstanceName){
	var oEditor = FCKeditorAPI.GetInstance(sInstanceName);
	oEditor.UpdateLinkedField();

}
// Global Document Ready
$(document).ready(function() {
	// Do Global Corner Elements
	$(".content").corner("6px");
	$(".avatar").corner("4px");	
	//$(".uiButton a").corner("4px");
	//$(".uiSubmitButton a").corner("4px");
	$(".menu").corner("6px");
	$(".tabTop a ").corner("bl br 6px");	
	$(".rnd-tops").corner("tl tr 6px");		
	$(".rnd-bottoms").corner("bl br 6px");
	$(".rnd-all").corner("6px");
	$(".rnd-all-4px").corner("4px");
	$(".rnd-lefts").corner("tl bl 6px");
	$(".rnd-rights").corner("tr br 6px");
	
	// Re-hook CSS uiSubmitButtons, check to see if fckHolder class exists, and use it to validate the fckInstance
	/*
	$("span.uiSubmitButton a").click(function(){
		if ($(".fckHolder").length >0){
			$(".fckHolder").val(FCKeditorAPI.GetInstance("fckInstance").GetXHTML(true));			
		}											  
		if ($(".fckHolder1").length >0){
			$(".fckHolder1").val(FCKeditorAPI.GetInstance("fckInstance1").GetXHTML(true));
		}
		if ($(".fckHolder2").length >0){
			$(".fckHolder2").val(FCKeditorAPI.GetInstance("fckInstance2").GetXHTML(true));
		}		
		$(this).parents("form").submit();
	});	
	*/
	// Browser Detect Message
	$("a.jqHideBrowserMsg").click(function(){
		$("#jqBrowserDetectDiv").fadeOut(800);
	});

	//init popupup window profiles
	$(".popupwindow").popupwindow(profiles);
		
	// Block UI Global Ajax
	fSetBlockUIDefaults();
	
	//Hide anything with this class
	$(".jqHide").hide();
	
	//Remove the BlockUI
	$.unblockUI();	
	
	// init Anchor Link Scrolling
	anchorScroll();

	if ($("#megaDropdown").length > 0){
		var nCloseInterval = new Number();
		var oPos = $(".jqMenuItemForum").position();
		var nNormalHeight = $("#megaDropdown").height();
		var nNormalWidth = $("#megaDropdown").width();
		var nHeight = $(".jqMenuItemForum").height();
		var bIsCurrent = $(".jqMenuItemForum").hasClass("current");
		$("#megaDropdown").css("top",oPos.top+nHeight+"px").css("left",oPos.left-1+"px").css("height","0").css("width","0");
		$("#jqDropDown").click(function(){
			if (! bIsCurrent){						
				$(".jqMenuItemForum").addClass("current").removeClass("button");
				$(".jqMenuItemForum #jqDropDown").attr("src","/images/arrow-down-on.png");
			}
			$("#megaDropdown").animate({
				height:nNormalHeight+"px",
				width:nNormalWidth+"px",
				opacity:"1.0"
			},700);
			return false;
		});
		$("#megaDropdown").hover(
			function(){
				clearInterval(nCloseInterval);
			},
			function(){
				nCloseInterval = setTimeout(function(){
					$("#megaDropdown").animate({
						height:"0",
						width:"0"
					},700,"swing",function(){
						$("#megaDropdown").hide();
						if (! bIsCurrent){						
							$(".jqMenuItemForum").addClass("button").removeClass("current");								 
							$(".jqMenuItemForum #jqDropDown").attr("src","/images/arrow-down-off.png");
						}
					});							 
				},500);
			}			
		);
	}

});