//universal 
// 
$(document).ready( function()
{

	$("#videoLibrary").fancybox({
		'zoomOpacity'			: true,
		'overlayShow'			: false,
		'zoomSpeedIn'			: 500,
		'zoomSpeedOut'			: 500,
		'frameHeight'			: 500,
		'frameWidth'			: 690
		
});
});


function clone(obj){
	if(obj == null || typeof(obj) != 'object')
		return obj;

	var temp = new obj.constructor(); // changed (twice)
	for(var key in obj)
		temp[key] = clone(obj[key]);

	return temp;
}

function clearMessages(container)
{
	container.find("span.error").remove();
	container.find("span.success").remove();
	
	container.find("label.error").removeClass('error');
}

function clearError(container)
{
	container.find("div.errorAlert").remove();
	container.find("span.success").remove();
	
	container.find("label.error").removeClass('error');
}

function genSuccess(msg, container)
{
	
	if (container ==undefined){}
	else
	{
		clearMessages(container);
	}
	
	data = '<span class="success">\
		<div class="msg"><span class="alertSuccess">' + msg + '</span></div>\
	</span>';
	
	if (container ==undefined){}
	else
	{		
		container.prepend(data);
	}
	
	return data;
}

function genError(errorData, msg, container)
{
	if (container ==undefined){}
	else
	{
		clearMessages(container);
	}
	
	data = '<span class="error">\
		<div class="msg">\
			<span class="alertFailure">' + msg + '</span>\
			<div class="errors">\
			<ol>';
	for(var error in errorData.errors)
	{
		data += '<li>'+errorData.errors[error].msg+'</li>';
		if (errorData.errors[error].ID != '')
			$("label[for='"+errorData.errors[error].ID+"']").addClass("error");
	}
	
	data += '</ol>\
		</div>\
		</div>\
	</span>';
	
	if (container ==undefined){}
	else
	{		
		container.prepend(data);
	}
	
	return data;
	
}

function requireLogin (jobj, login, returnF)
{
	returnFunc = returnF;
	loginURL = login;
	if (jobj.session.loggedIn == false)
	{
		$("body").append('<div id="loginPrompt" title="Your session has timed out." class="hide">\
		<form action="" method="post">\
			<span id="loginErrors" class="errors"/>\
			<div class="fieldSpace">\
				<label class="left">Username</label><input type="text" id="loginUserName" name="loginUserName"/>\
			</div>\
			<div class="fieldSpace">\
				<label class="left">Password</label><input type="password" id="loginPassword" name="loginPassword"/>\
			</div>\
		</form>\
		</div>');
		$("#loginPrompt").dialog('destroy');
		$("#loginPrompt").dialog({
			bgiframe: true,
			resizable: false,
			height:220,
			width:400,
			modal: true,
			overlay: {
				backgroundColor: '#000',
				opacity: 0.5
			},
			buttons: {
				'Login': function() {
					sendLogin();
				},
				Cancel: function() {
					$(this).dialog('close');
					SideBar_RedirectUrl = window.location.href;
					setTimeout( "window.location.href = window.location.href", 0 );
					
				}
			}
		});
		

		$("#loginPrompt form").submit(function() {
			sendLogin();
			return false;
		});
		return false;
	}
	return true;
	
}

function sendLogin()
{
	var loginUserName = "&userName=" + $("#loginUserName").val();
	var loginPassword = "&password=" + $("#loginPassword").val();

	var loginPost = "currentView=JSON" + loginUserName + loginPassword;

	$.post(loginURL, loginPost, function(j)
	{
		if (j.session.loggedIn == false)
		{
			$("#loginPrompt .error").remove();
			for(var error in j.error.errors)
			{
				$("#loginPrompt").prepend('<div class="error">'+j.error.errors[error].msg+'</div>');
			}
		
		}
		else
		{
			$("#loginPrompt").dialog('destroy');
			$("#loginPrompt").remove();
			returnFunc(j);
		}

		},"json");
	
}

