var collapseHeight = 212;
var overlapHeight = 54;
var itmCount = 0;
var initJson = null;
var mainFeatureJson = null;
var mediaJson = null;
var channelListPath = "content/channel_list.json";
var mediaContainer = null;
var isListView = false;

var mediaData = null;
var totalRelatedItems = 0;
var start_index = 0;
var item_count = 0;
var startIndex = null;
var endIndex = null;

/* Sort
--------------------------------------- */
function sortByTitle(a, b) {
    var x = (typeof a.title == "undefined") ? a[0].toLowerCase() : a.title.toLowerCase();
    var y = (typeof b.title == "undefined") ? b[0].toLowerCase() : b.title.toLowerCase();
    return ((x < y) ? -1 : ((x > y) ? 1 : 0));
}

function sortByDate(a, b) {
	var aDate = (typeof a.date == "undefined") ? a[1] : a.date;
	var bDate = (typeof b.date == "undefined") ? b[1] : b.date;
    var x = (new Date(aDate)).getTime();
    var y = (new Date(bDate)).getTime();
    return ((x > y) ? -1 : ((x < y) ? 1 : 0));
}

function sortByType(a, b) {
    var x = a.type.toLowerCase();
    var y = b.type.toLowerCase();
    return ((x < y) ? -1 : ((x > y) ? 1 : 0));
}

function sortMediaItems(sortBy, mediaItems) {
	switch(sortBy) {
		case "title" :
			mediaItems.sort(sortByTitle);
			break;
		case "recent_add" :
			mediaItems.sort(sortByDate);
			break;
		case "type" :
			mediaItems.sort(sortByType);
			break;
	}
}

/* Basic Functions
--------------------------------------- */
function toggleChannelList() {
	if($(this).hasClass("active")){ //the menu is expanded, so now contract
		$(this).fadeOut("fast", function() {
			$(this).text(localStr.show).toggleClass("active");
			$(this).parent().parent().parent()
				.animate({ height: collapseHeight }, function(){
					$(this).find(".overlap_more a").fadeIn("fast");
				});
		});
	}
	else { //the menu is contracted, so now expand
		var expandHeight = parseInt($(this).parent().parent().parent().find("ul").height()) + overlapHeight;
		$(this).fadeOut("fast", function() {
			$(this).text(localStr.hide).toggleClass("active");
			$(this).parent().parent().parent()
				.animate({ height: expandHeight }, function(){
					$(this).find(".overlap_more a").fadeIn("fast");
				});
		});
	}
	return false;
}

function initChannelOverflow(target) {
	var channelsHeight = $("#"+target+" div.overlap").height();
	$("#"+target+" div.overlap").height(Math.min(channelsHeight, collapseHeight));
	if(channelsHeight > collapseHeight) {
		$('#'+target+' .overlap').append('<div class="overlap_more"><div class="overlap_more_sub"><a href="#">'+localStr.show+'</a></div></div>').find(".overlap_more_sub").ifixpng().find("a").click(toggleChannelList);
	}
}

function initChannelList() {
	initChannelOverflow("channels_product");
	initChannelOverflow("channels_events");
}

function getItemUrl(type, jsonPath) {
	var jsonFileArry = jsonPath.split("/");
	var jsonFileName = jsonFileArry[jsonFileArry.length-1];
	var url = "media.php?media="+jsonFileName.substring(0,jsonFileName.length-5);
	if(type == "event") {
		url = "event.php?event="+jsonFileName.substring(0,jsonFileName.length-5);
	}
	return url;
}

function getMediaItemHtml(data, jsonPath, createDate, isMain) {
	var mediaUrl = getItemUrl(data.type, jsonPath);
	var mediaBase = jsonPath.replace(".json","").replace("/"+n_lang,"").replace("/media/content/","");
	if(isMain) {
		return '<div id="feature_item" class="media_item rounded '+data.type+'">'+
					'<h5>'+localStr.featured+' '+((n_lang == 'en-us') ? data.type : '' )+'</h5>'+
					((typeof data.img != "undefined") ? '<div class="feature_image"><img src="../'+data.img.url+'" alt="'+data.title+'" width="268"/></div>' : '')+
					'<div class="feature_content">'+
						'<h2><a href="'+mediaUrl+'">'+data.title+'</a></h2>'+
						'<p>'+data.description+'</p>'+
						'<div class="feature_meta">'+
							'<div class="feature_meta_contents">'+
								'<div id="media_'+mediaBase+'" class="rateme blue"></div><hr/>'+
								'<ul>'+
									((data.length == "" || data.length == "0") ? '' : '<li><strong>'+localStr.duration+':</strong> '+data.length+'</li>')+
									'<li><strong>'+localStr.type+':</strong> <em class="tags">'+localStr.types[data.type]+'</em></li>'+
									'<li><strong>'+localStr.date+':</strong> <em class="tags">'+createDate+'</em></li>'+
									((data.type != "event" && n_lang != "en-us") ? '<li><strong>'+localStr.langlabel+':</strong> '+localStr.language+'</li>' : '')+
								'</ul>'+
							'</div>'+
						'</div>'+
					'</div><div class="clr"></div>'+
				'</div>';
	}
	else {
		var currentTime = (new Date()).getTime();
		var mediaTime = (new Date(createDate)).getTime();
		var showNew = (currentTime - mediaTime < 3628800000) ? true : false; // if less then 1 week old, show new
		// 1000 * 60 * 60 * 24 * 7 = 604800000 ms per week so 6 weeks = 3628800000
		var lang  = localStr.english;
		if(data.xml) {
			lang = localStr.language;
		}
		return '<div id="media_item_'+mediaBase+'" class="media_item rounded result '+data.type+'">'+
			((showNew) ? '<h5>'+localStr.newMedia+'</h5>' : '')+
			((typeof data.img != "undefined") ? '<div class="media_image"><a href="'+mediaUrl+'"><img src="../'+data.img.url+'" alt="'+data.title+'" width="176"/></a></div>' : '')+
			'<h2><a href="'+mediaUrl+'">'+data.title+'</a></h2>'+
			'<p>'+data.description+'</p>'+
			'<div class="feature_meta">'+
				'<div id="media_'+mediaBase+'" class="rateme blue"></div><hr/>'+
				'<ul>'+
					((data.length == "" || data.length == "0") ? '' : '<li><strong>'+localStr.duration+':</strong> '+data.length+'</li>')+
					'<li><strong>'+localStr.type+':</strong> <em class="tags">'+localStr.types[data.type]+'</em></li>'+
					'<li><strong>'+localStr["date"]+':</strong> <em class="tags">'+createDate+'</em></li>'+
					((data.type != "event" && n_lang != "en-us") ? '<li><strong>'+localStr.langlabel+':</strong> '+lang+'</li>' : '')+
				'</ul>'+
			'</div><div class="clr"></div>'+
		'</div>';
	}
}

function addMediaItemsColumns() {
	var cols = $("#mediacols");
	if(cols.size() > 0) {
		cols.empty();
	}
	else {
		mediaContainer.append('<div id="mediacols"></div>');
	}
	
	var isList = false;
	if(mediaContainer.hasClass("list_view")) {
		isList = true;
	}
	else {
		$("#mediacols").append('<div id="col1" class="third"></div><div id="col2" class="third"></div><div id="col3" class="third last"></div>');
	}

	var itms = mediaJson.items;
	var count = 0;
	
	if(startIndex === null && endIndex === null) {
		startIndex = 0;
		endIndex = itms.length-1;
		sortMediaItems($("#media_sort").find("option:selected").attr("value"), itms);
	}
	
//	alert(startIndex + " " + endIndex);

	for(var i = startIndex; i <= endIndex; i++) {
		var targetCol = "#mediacols";
		if(!isList) {
			switch(count%3) {
				case 0 :
					targetCol += " #col1";
					break;
				case 1 :
					targetCol += " #col2";
					break;
				case 2 :
					targetCol += " #col3";
					break;
			}
		}
		if(itms[i].title != $("h1").text() && itms[i].data) { // filter out item for currently selected event or media so it's not displayed on it's own page
			$(targetCol).append(getMediaItemHtml(itms[i].data,itms[i].url,itms[i].date,false));
			count++;
		}
	}

	// add rounded corners
	$('.rounded').corner("7px");
	$('.media_item').click(function(eventObject) {
		if(eventObject.target.nodeName.toLowerCase() != "span") {
			window.location.href = $(this).find("h2 a").attr("href");
		}
	});
	mediaContainer.removeClass("loading");
}

function sortMedia(){
	$("#loading").fadeIn("fast", function() {
		$("#voice_contentcontainer").fadeOut("normal", function(){
			addMediaItemsColumns();
			$("#voice_contentcontainer").fadeIn("slow", function() {
				$("#loading").fadeOut("fast");
			});
			$(".rateme").novellrater({ group: "Novell Voice" });
		});
	});
}

function processChannel() {
	addMediaItemsColumns();
	
	$("#voice_contentcontainer").fadeIn("slow");
	$(".rateme").novellrater({ group: "Novell Voice" });
	$("#loading").fadeOut("fast");
}

function isMediaInLang(curLang, mediaLangs) {
	for(var i = mediaLangs.length-1; i >= 0; i--) {
		if(mediaLangs[i] == curLang) {
			return true;
		}
	}
	return false;
}

function loadMediaItems(mediaItms, callback) {
	var itemCount = mediaItms.length;
	var loadedCount = 0;
	var invalidCount = 0;
	startIndex = null;
	endIndex = null;
	mediaJson = { count: itemCount, items: new Array(itemCount) };
	for(var i = 0; i < itemCount; i++) {
		var itmUrl = mediaItms[i][2];
		if(n_lang != "en-us" && isMediaInLang(n_lang, mediaItms[i][3]) ) {
			itmUrl = "/"+n_lang+"/"+itmUrl;
		}
		else {
			itmUrl = "/"+itmUrl;
		}
		mediaJson.items[i] =  { title: mediaItms[i][0], date:mediaItms[i][1] , url: itmUrl };
		$.ajax({
			type: "GET",
			url: itmUrl,
			dataType: "json",
			success: function(data) {
				var matchFound = false;
				for(var j = 0; j < mediaJson.count; j++) {
					if(mediaJson.items[j].url == this.url) {
						mediaJson.items[j].data = data;
						mediaJson.items[j].title = data.title;
						mediaJson.items[j].type = data.type;
						loadedCount++;
						matchFound = true;
						break;
					}
				}
				if(!matchFound) {
					invalidCount++;
				}
				if(loadedCount + invalidCount == itemCount) {
					callback();
				}
			},
			error: function(XMLHttpRequest, textStatus) {
				invalidCount++;
				if(loadedCount + invalidCount == itemCount) {
					callback();
				}
			}
		});
	}
}

function loadChannel(aObj, jsonPath) {
	$(aObj).parent().parent().find("li.selected").removeClass("selected");
	$(aObj).parent().addClass("selected");
	$("#loading").fadeIn("fast", function() {
		$("#voice_contentcontainer").fadeOut("fast", function() {
			$("#main_heading").html(aObj.innerHTML);
			$.ajax({
				type: "GET",
				url: "../"+jsonPath,
				dataType: "json",
				success: function(data) {
					$('#voice_content').empty();
					$('#customize').show();
					$('#customize .lefthalf form').show();
					loadMediaItems(data.media,processChannel);
					createCookie("mediagallerychannel",jsonPath.replace(".json","").replace("media/content/",""));
				}
			});
		});
	});
}

function processFeaturedItms() {
	var data = mainFeatureJson.data;
	$('#voice_content').empty().append(getMediaItemHtml(data,mainFeatureJson.url,mainFeatureJson.date,true));

	if($('#voice_content').hasClass('grid_view')) {
		$('#customize .lefthalf form').hide();
	}
	else {
		$('#customize .lefthalf form').show();
	}
	
	addMediaItemsColumns();
	
	$("#voice_contentcontainer").fadeIn("slow");
	$(".rateme").novellrater({ group: "Novell Voice" });
	$("#loading").fadeOut("fast");
}

function loadFeaturedItms() {
	var featured = initJson.featured;
	mainItm = featured.main;
	var mainItmUrl = mainItm[2];
	if(n_lang != "en-us" && isMediaInLang(n_lang, mainItm[3]) ) {
		mainItmUrl = "/"+n_lang+"/"+mainItmUrl;
	}
	else {
		mainItmUrl = "/"+mainItmUrl;
	}
	mainFeatureJson = { url: mainItmUrl, date: mainItm[1], data: null };
	$.ajax({
		type: "GET",
		url: mainItmUrl,
		dataType: "json",
		success: function(data) {
			mainFeatureJson.data = data;
		}
	});

	loadMediaItems(featured.media,processFeaturedItms);
}

function loadFeaturedChannel(aObj) {
	$(aObj).parent().parent().find("li.selected").removeClass("selected");
	$(aObj).parent().addClass("selected");
	$("#loading").fadeIn("fast", function() {
		$("#voice_contentcontainer").fadeOut("fast", function() {
			$("#main_heading").html(aObj.innerHTML);
			$('#customize').show();
			loadFeaturedItms();
			deleteCookie("mediagallerychannel");
		});
	});
}

/* Search Functions
--------------------------------------- */
function showNoResults() {
	$('#voice_content').html('<p id="noresultsmsg">'+localStr.noresults+'</p>');
	$('#customize').hide();
	$("#voice_contentcontainer").fadeIn("fast", function() {
		$("#loading").fadeOut("fast");
	});
}

function searchMedia() {
	var keywords = $("#keywords").val();
	if(keywords == "") {
		return false;
	}
	$("#loading").fadeIn("fast", function() {
		$("#voice_contentcontainer").fadeOut("fast", function() {
			$("#channels_product li.selected").removeClass("selected");
			$("#main_heading").html(keywords);
			var langStr = (n_lang !== null && n_lang != "en-us") ? "&language="+n_lang : "";
			$.ajax({
				type: "GET",
				url: "content/searchMedia?text="+encodeURI(keywords) + langStr,
				dataType: "json",
				success: function(data) {
					$('#voice_content').empty();
					$('#customize').show();
					if(data.media.length === 0) {
						showNoResults();
					}
					else {
						loadMediaItems(data.media,processChannel);
					}
				},
				error: function(XMLHttpRequest, textStatus) {
					showNoResults();
				}
			});
		});
	});
	return false;
}

/* Related Items Section
--------------------------------------- */
function mergeLoadedChannels(loadedDataArry) {
	mediaData = [];
	for(var i = 0; i < loadedDataArry.length; i++) {
		var data = loadedDataArry[i];
		var preMergeSize = mediaData.length;
		for(var j = 0; j < data.length; j++) {
			var alreadyThere = false;
			for(var k = 0; k < preMergeSize; k++) {
				if(data[j][0] == mediaData[k][0]) {
					alreadyThere = true;
				}
			}
			if(!alreadyThere && data[j][0] != $("h1").text()) {
				mediaData[mediaData.length] = data[j];
			}
		}
	}
	mediaData.sort(sortByDate);
	calculatePagination(mediaData.length, 0);
	initPagination(totalRelatedItems);
}

function loadRelatedItems(relatedChannelQueue) {
	var channelsToLoad = relatedChannelQueue.length;
	var loadedChannels = 0;
	var loadedData = new Array(channelsToLoad);
	
	for(var i = 0; i < channelsToLoad; i++) {
		$.ajax({
			type: "GET",
			url: "/"+relatedChannelQueue[i],
			dataType: "json",
			success: function(data) {
				loadedData[loadedChannels] = data.media;
				loadedChannels++;
				if(loadedChannels == channelsToLoad) {
					mergeLoadedChannels(loadedData);
				}
			},
			error: function(XMLHttpRequest, textStatus) {
				//do nothing
			}
		});
	}
}

function processRelatedItems() {
	$('#related_content').empty().hide();
	
	addMediaItemsColumns();
	
	$('#related_content').fadeIn("slow");
	$(".rateme").novellrater({ group: "Novell Voice" });
	$("#loading").fadeOut("fast");
}

function loadEventItems(relatedChannelPath) {
	$.ajax({
		type: "GET",
		url: relatedChannelPath,
		dataType: "json",
		success: function(data) {
			mediaData = data.media;
			mediaData.shift(); // first element is always event element, so remove it
			mediaData.sort(sortByDate);
			calculatePagination(mediaData.length, 0);
			initPagination(totalRelatedItems);
		}
	});
}

function processEventItems() {
	$('#event_content').empty().hide();

	addMediaItemsColumns();
	
	$('#event_content').fadeIn("slow");
	$(".rateme").novellrater({ group: "Novell Voice" });
	$("#loading").fadeOut("fast");
}

/* Pagination
--------------------------------------- */
var itemsPerPage = 6;
function calculatePagination(len, page_index) {
	totalRelatedItems = len;
	var current_page = page_index; // default is 0;
	var max = itemsPerPage;
	start_index = current_page * max;
	var proposed_end_index = start_index + max;
	var last_item_count = totalRelatedItems % max;
	var is_last_page = (totalRelatedItems - proposed_end_index < 0) ? true : false;
	item_count = ( is_last_page ) ? last_item_count : max;
	return item_count;
}

function loadPaginateMediaItems(mediaItms, callback, start, end) {
	var itemCount = mediaItms.length;
	var loadedCount = 0;
	var invalidCount = 0;
	startIndex = start;
	endIndex = end;
	if(mediaJson === null) {
		mediaJson = { count: itemCount, items: new Array(itemCount) };
	}
	for(var i = startIndex; i <= endIndex; i++) {
		var itmUrl = mediaItms[i][2];
		if(n_lang != "en-us" && isMediaInLang(n_lang, mediaItms[i][3]) ) {
			itmUrl = "/"+n_lang+"/"+itmUrl;
		}
		else {
			itmUrl = "/"+itmUrl;
		}
		mediaJson.items[i] =  { title: mediaItms[i][0], date:mediaItms[i][1] , url: itmUrl };
		$.ajax({
			type: "GET",
			url: itmUrl,
			dataType: "json",
			success: function(data) {
				var matchFound = false;
				for(var j = 0; j < itemCount; j++) {
					if(typeof mediaJson.items[j] != "undefined" && mediaJson.items[j].url == this.url) {
						mediaJson.items[j].data = data;
						mediaJson.items[j].title = data.title;
						mediaJson.items[j].type = data.type;
						loadedCount++;
						matchFound = true;
						break;
					}
				}
				if(!matchFound) {
					invalidCount++;
				}
				if(loadedCount + invalidCount == (endIndex - startIndex + 1)) {
					callback();
				}
			},
			error: function(XMLHttpRequest, textStatus) {
				invalidCount++;
				if(loadedCount + invalidCount == (endIndex - startIndex + 1)) {
					callback();
				}
			}
		});
	}
}

function pageselectCallback(page_index, jq){
	var itemsOnThisPage = calculatePagination(mediaData.length, page_index);
	var start = page_index*itemsPerPage;
	var end = start + itemsOnThisPage - 1;
	if ($("#event_content").size() >= 1) {
		loadPaginateMediaItems(mediaData, processEventItems, start, end);
	} else {
		loadPaginateMediaItems(mediaData, processRelatedItems, start, end);
	}
	return false;
}

function initPagination(total){
	// Create pagination element
	var num_entries = total;
	if(num_entries > 6) {
		$("#pagination").addClass("multipage").pagination(num_entries, {
			num_edge_entries: 2,
			num_display_entries: 10,
			callback: pageselectCallback,
			items_per_page:itemsPerPage,
			prev_show_always:false,
			next_show_always:false
		});
	}
	else {
		pageselectCallback(0);
	}
}

/* Views
--------------------------------------- */
function showListView() {
	if(!isListView){
		isListView = true;
		createCookie("mediagallerychannel_isview", "true");
		$("#view_list a").removeClass("off").addClass("on");
		$("#view_grid a").removeClass("on").addClass("off");
		$("#loading").fadeIn("fast", function() {
			$("#voice_contentcontainer").fadeOut("normal", function(){
				$(".grid_view").removeClass("grid_view").addClass("list_view");
				addMediaItemsColumns();
				$("#voice_contentcontainer").fadeIn("slow", function() {
					$("#loading").fadeOut("fast");
				});
				$(".rateme").novellrater({ group: "Novell Voice" });
			});
		});
	}
	return false;
}

function showGridView() {
	if(isListView){
		isListView = false;
		deleteCookie("mediagallerychannel_isview");
		$("#view_grid a").removeClass("off").addClass("on");
		$("#view_list a").removeClass("on").addClass("off");
		$("#loading").fadeIn("fast", function() {
			$("#voice_contentcontainer").fadeOut("normal", function(){
				$(".list_view").removeClass("list_view").addClass("grid_view");
				addMediaItemsColumns();
				$("#voice_contentcontainer").fadeIn("slow", function() {
					$("#loading").fadeOut("fast");
				});
				$(".rateme").novellrater({ group: "Novell Voice" });
			});
		});
	}
	return false;
}

/* Lights On/Off
--------------------------------------- */
function toggleLights() {
	if($("#mask").length < 1){
		var mask = $("<div>").attr("id", "mask");
		$(mask).prependTo("#page");
	}
	
	//Get the screen height and width  
	var maskHeight = $("#page").height();  
	var maskWidth = $("#page").width();  

	//Set heigth and width to mask to fill up the whole screen  
	$('#mask').css({'width':maskWidth,'height':maskHeight});  
	// $('#mask').css({'width':"100%",'height':"100%"});  

	//transition effect       
	if($("#lights a").hasClass("on")){
		// alert("lights are on");
		$('#mask').fadeOut();
		$("body").animate({backgroundColor: "#eff0f0"});
	}
	else{
		// alert("lights are off");
		$('#mask').fadeIn("normal", function(){
			if(!$.support.opacity){
				$(this).css("filter", "alpha(opacity=80)");
			}
		});      
		$("body").animate({backgroundColor: "#111111"});
		$("body").click(function(){
			$('#mask').fadeOut();
			$('#lights a').toggleClass("on");
			$("body").animate({backgroundColor: "#eff0f0"}).unbind("click");
		});
	}
	// $("body").animate({"background-color": "#333"});
	$('#lights a').toggleClass("on");
	return false;
}

/* Init Functions
--------------------------------------- */
function processInitJson(data) {
	initJson = data;
	initChannelList();

	var selectedChannel = readCookie("mediagallerychannel");
	if(selectedChannel) {
		var channelLink = document.getElementById("c_"+selectedChannel);
		if(!channelLink) {
			loadFeaturedItms();
		}
		else {
			loadChannel(channelLink, "media/content/"+selectedChannel+".json");
		}
	}
	else {
		loadFeaturedItms();
	}
}

$(document).ready(function(){
	// media container is on home page
	mediaContainer = $("#voice_content");
	if(mediaContainer.size() >= 1) {
		$("#mediasearch").submit(searchMedia);
		$("#loading").fadeIn("fast");
		$.ajax({
			type: "GET",
			url: channelListPath,
			dataType: "json",
			success: processInitJson
		});
	}
	else {
		// related container is on media pages
		mediaContainer = $("#related_content");
		if(mediaContainer.size() >= 1) {
			$("#loading").fadeIn("fast");
			mediaContainer.addClass("loading");
			var channelLoadQueue = [];
			if(typeof(eventChannels) != 'undefined') {
				for(var i = 0; i < eventChannels.length; i++) {
					if(eventChannels[i] != "") {
						channelLoadQueue[channelLoadQueue.length] = eventChannels[i];
					}
				}
			}
			if(typeof(productChannels) != 'undefined') {
				for(var j = 0; j < productChannels.length; j++) {
					if(productChannels[j] != "") {
						channelLoadQueue[channelLoadQueue.length] = productChannels[j];
					}
				}
			}
			if(channelLoadQueue.length > 0) {
				loadRelatedItems(channelLoadQueue);
			}
			else {
				$('#related_content').removeClass("loading").html('<p id="noresultsmsg">This item does not have any related content.</p>').fadeIn("slow");
				$(".rateme").novellrater({ group: "Novell Voice" });
				$("#loading").fadeOut("fast");
				$("#customize").hide();
			}
		}
		else {
			// event container is on event page
			mediaContainer = $("#event_content");
			if(mediaContainer.size() >= 1) {
				mediaContainer.addClass("loading");
				$("#loading").fadeIn("fast");
				if(typeof(eventChannel) != 'undefined') {
					loadEventItems(eventChannel);
				}
			}
		}
	}
	
	// round corners
	$('#sidebar .overlap li a').corner("8px");
	$('#channels_product li:first').addClass("selected");
	$('#requestcall').corner("4px");
	$('#requestcall_salesphone').corner("4px bottom");

	//toggle between group and  view
	$("#view_list a").click(showListView);
	$("#view_grid a").click(showGridView);

	if (readCookie("mediagallerychannel_isview") !== null) {
		$("#view_list a").click();	
	}
	
	// lights on/off
	$("#lights a").click(toggleLights);

	// sort
	$("#media_sort").change(sortMedia);
});

/* Misc
--------------------------------------- */
function emailFriend() {
	openExternal("http://www.novell.com/info/sendemail.php?url="+escape(location.href),535,400);
}
