$j(document).ready(function(){
	if( !document.getElementById("tool-menu") ){
		$j("#wrapper").append(
			'<div id="tool-menu" class="toolmenu-drop" style="display:none"> <ul id="tool-list"> </ul> </div>' + 
			'<div id="tooltip" style="display:none"> <div id="tooltip_body"></div> <div class="tooltip_footer"></div></div>'
		);
	}
	$j(document).find(".icon").bind("mouseover", function(e){
		
		//close menu
		$j("#tool-menu").hide();
		
		//make this one blue
		$j(this).parent().find(".menu_link").addClass("menu_link_current").removeClass("menu_link");
	}).bind("mouseout", function(e){
		
		//clear all current menus
		$j("html,body").find(".menu_link_current").addClass("menu_link").removeClass("menu_link_current");
	});
});
		
function openToolTip(){
	//hide while loading content
	$j('#tooltip').css('display','none');
	
	var elementID = $j(this).attr("id");
	var data = $j("#"+elementID+"_data").html();
	var arrData = data.split("|");

	var id = parseInt(arrData[0]);
	var c = parseInt(arrData[1]); 
	var icon_prefix = arrData[2];

	if($j('#tool-menu').css('display')=='none'){
							
		//$j("#tooltip_body").html(tipHtml);
		var url = null;
		switch( c ){
			case 1:
				url = g_webroot+"articles/ajax_getArticleDetails/"+id;
				break;
			case 2:
				url = g_webroot+"publications/ajax_getMagazineDetails/"+id;
				break;
			case 3:
				url = g_webroot+"compilations/ajax_getCompilationDetails/"+id;
				break;
		}
		
		$j.get(url, { id: id, c: c, icon_prefix:icon_prefix }, function(data){
			
			//load the data into the tip
			$j('#tooltip_body').html(data);
			
			//figure out bottom of current icon
			var position = {};
			$j("#icon_"+icon_prefix+id).position(position);
			var iconTop = position.top;
			var iconLeft = position.left + $j("#icon_"+icon_prefix+id).width();
			var iconH = $j("#icon_"+icon_prefix+id).height();

			//find out height of tooltip
			var tipH = $j('#tooltip').height();
			var tipTop = iconTop - 12;
			// tipTop = iconTop - tipH + ((iconH/4)*3);
			 
			//if off the screen, fix
			if(tipTop<0)
				tipTop = 0;

			//reposition tool tip to proper alignment with icon
			$j('#tooltip').css('top',(tipTop)+'px').css('left',(iconLeft)+'px');

			//make sure it's showing AFTER you position it
			$j('#tooltip').show();

		});
	}
	else{ //hide tip if menu open
		$j('#tooltip').css('display','none');
	}
}

function closeToolTip(){
	$j('#tooltip').hide();
}	

function openToolMenu(id, menu, icon_prefix, extraParams){
	if( typeof(icon_prefix) == "undefined" ) icon_prefix = "";
	if( typeof(extraParams) != "undefined" ){
		var view_state                = extraParams['view_state'];
		var is_owner                  = extraParams['is_owner'];
		var is_admin                  = extraParams['is_admin'];
		var is_publisher              = extraParams['is_publisher'];
		
		var magazine_id               = extraParams['magazine_id'];
		var page_num                  = extraParams['page_num'];
		var owner_id                  = extraParams['owner_id'];
		var is_mine                   = extraParams['is_mine'];
		var title                     = extraParams['title'];
		var can_tag                   = extraParams['can_tag'];

		var ecomm_enabled             = extraParams['ecomm_enabled'];
		var ecomm_allow_issue_sale    = extraParams['ecomm_allow_issue_sale'];
		var ecomm_allow_subscriptions = extraParams['ecomm_allow_subscriptions'];
		var ecomm_allow_compilations  = extraParams['ecomm_allow_compilations'];

        var allow_read                = extraParams['allow_read'];
		
		//override is_owner if is_admin
		if(is_admin) is_owner = 1;
	}
	
	//clear perma-blue of all menu links 
	$j("html,body").find(".menu_link_current").addClass("menu_link").removeClass("menu_link_current");
	
	//unfocus menu link
	$j("#menu_link_"+icon_prefix+id).blur();
	
	//keep menu link blue 
	$j("#icon_"+icon_prefix+id).find(".menu_link").addClass("menu_link_current").removeClass("menu_link");
	
	//build specific menu
	// 1 = article; 2 = magazine; 3 = compilation; 4 = detail article menu; 5 = article basket;
	var menuHtml = "";
	switch(menu) {
		case 1:	//article
            //ecomm and shopping cart options
			if( g_checkEnterprisePermission('allow_ecomm') == 1 && allow_read == '0' && view_state != "shopping_cart" )
				menuHtml = '<li><a href="javascript:showEcommOptions(' + magazine_id + ',\'publication\', \''+icon_prefix+'\')"><img src="'+g_img_url+'img/money.png" />purchase options</a></li>';

            else if( g_checkEnterprisePermission('allow_ecomm') === 0 ||  allow_read == '1' )
                menuHtml = '<li><a href="javascript:loadFlipBook(' + magazine_id + ',\'article\', '+page_num+ ')"><img src="'+g_img_url+'img/read.png" />read</a></li>';

			if( g_checkEnterprisePermission('allow_compilations') ){
				menuHtml += '<li><a href="javascript:addArticleToBasket('+id+', \''+icon_prefix+'\');"><img src="'+g_img_url+'img/basket_add.png" />add to my basket</a></li>';

                if( ecomm_allow_compilations == '1' )
                    menuHtml += '<li><a href="javascript:saveToCompilation('+id+',\''+icon_prefix+'\');"><img src="'+g_img_url+'img/save.png" />save to compilations</a></li>';
			}

			//'<li><a href="javascript:comment('+id+', \'article\', \''+icon_prefix+'\');"><img src="'+g_img_url+'img/comment.png" />leave a comment</a></li>' +
			//'<li><a href="javascript:viewComments('+id+',\'article\');"><img src="'+g_img_url+'img/comments.png" />read user comments</a></li>' +

			menuHtml += '<li><a href="javascript:emailToFriend('+id+',\'article\');"><img src="'+g_img_url+'img/email.png" />email to a friend</a></li>';
			menuHtml += '<li><a href="javascript:shareWithFriends('+id+', \'article\', \''+icon_prefix+'\');"><img src="'+g_img_url+'img/share.png" />share with friends</a></li>';
			menuHtml += '<li><a href="javascript:socialBookmark('+id+',\'article\');"><img src="'+g_img_url+'img/bookmark.png" />social bookmark</a></li>';

			if( can_tag == 1 && g_isLoggedIn ){
				menuHtml +=
				'<li><a href="javascript:gotopage(\''+g_webroot+'utils/tag/article/'+id+'\');"><img src="'+g_img_url+'img/tag.png" />tag this article</a></li>';
			}
			break;  
		
		case 2:	//publication
            //ecomm and shopping cart options
			if( g_checkEnterprisePermission('allow_ecomm') == 1 && allow_read == '0' && view_state != "shopping_cart" )
				menuHtml = '<li><a href="javascript:showEcommOptions(' + id + ',\'publication\', \''+icon_prefix+'\')"><img src="'+g_img_url+'img/money.png" />purchase options</a></li>';

            else if( g_checkEnterprisePermission('allow_ecomm') === 0 || allow_read == '1' )
				menuHtml = '<li><a href="javascript:loadFlipBook(' + id + ',\'publication\')"><img src="'+g_img_url+'img/read.png" />read</a></li>';

			menuHtml += '<li><a href="javascript:emailToFriend('+id+',\'publication\');"><img src="'+g_img_url+'img/email.png" />email to a friend</a></li>';
			menuHtml += '<li><a href="javascript:shareWithFriends('+id+', \'publication\', \''+icon_prefix+'\');"><img src="'+g_img_url+'img/share.png" />share with friends</a></li>';
			menuHtml += '<li><a href="javascript:socialBookmark('+id+',\'publication\');"><img src="'+g_img_url+'img/bookmark.png" />social bookmark</a></li>';

			if( view_state != 'favorites' ){
				menuHtml +=
				'<li><a href="javascript:saveToFavorites('+id+', \'publication\', \''+icon_prefix+'\');"><img src="'+g_img_url+'img/save.png" />save as a favorite</a></li>';
			
			} else if (is_mine == 1 && view_state == 'favorites'){
				menuHtml += 
				'<li><a href="javascript:removeFromFavorites('+id+', \'publication\', \''+icon_prefix+'\');"><img src="'+g_img_url+'img/cancel.png" />remove from favorites</a></li>';
			}

			/* 
			//this now only gets handled through my_account tools in admin site
			if( is_owner == 1 ){
				menuHtml += 
				'<li><a href="javascript:gotopage(\''+g_webroot+'publications/edit/'+id+'\');"><img src="'+g_img_url+'img/edit.png" />edit details</a></li>'+
				'<li><a href="javascript:confirm(\'Are you sure you want to delete this magazine?\')?gotopage(\''+g_webroot+'publications/delete/'+id+'\'):void(0);"><img src="'+g_img_url+'img/delete.png" />delete</a></li>';
			}			
			if(( is_owner == 1 && is_publisher ) || is_admin){
				menuHtml +=
				'<li><a href="javascript:gotopage(\''+g_webroot+'publications/stats_report/'+id+'\');"><img src="'+g_img_url+'img/stats.png" />view stats</a></li>';			
			}
			*/

			if( can_tag == 1 && g_isLoggedIn)
				menuHtml += '<li><a href="javascript:gotopage(\''+g_webroot+'utils/tag/publication/'+id+'\');"><img src="'+g_img_url+'img/tag.png" />tag articles</a></li>';			
			break;
		
		case 3: //compilation
			if(g_checkEnterprisePermission('allow_compilations')){
				menuHtml = '<li><a href="javascript:loadFlipBook('+id+', \'compilation\');"><img src="'+g_img_url+'img/read.png" />read</a></li>';
				menuHtml += '<li><a href="javascript:emailToFriend('+id+',\'compilation\');"><img src="'+g_img_url+'img/email.png" />email to a friend</a></li>';
				menuHtml += '<li><a href="javascript:shareWithFriends('+id+', \'compilation\', \''+icon_prefix+'\');"><img src="'+g_img_url+'img/share.png" />share with friends</a></li>';
				menuHtml += '<li><a href="javascript:socialBookmark('+id+',\'compilation\');"><img src="'+g_img_url+'img/bookmark.png" />social bookmark</a></li>';

				if( view_state != 'favorites' ){
					menuHtml += '<li><a href="javascript:saveToFavorites('+id+', \'compilation\', \''+icon_prefix+'\');"><img src="'+g_img_url+'img/save.png" />save as a favorite</a></li>';
					
				} else if( is_mine == 1 && view_state == 'favorites' ){
					menuHtml += '<li><a href="javascript:removeFromFavorites('+id+', \'compilation\', \''+icon_prefix+'\');"><img src="'+g_img_url+'img/cancel.png" />remove from favorites</a></li>';
				}
				
				if( is_owner == 1 ){
					menuHtml += '<li><a href="javascript:loadEditor('+id+');"><img src="'+g_img_url+'img/edit.png" />open in editor</a></li>';
					menuHtml += '<li><a href="javascript:gotopage(\''+g_webroot+'utils/tag/compilation/'+id+'\');"><img src="'+g_img_url+'img/tag.png" />add tags</a></li>';
					menuHtml += '<li><a href="javascript:confirm(\'Are you sure you want to delete this from your compilations?\')?gotopage(\''+g_webroot+'compilations/delete/'+id+'\'):void(0);"><img src="'+g_img_url+'img/delete.png" />delete</a></li>';
				}		
			}
			break;

		case 4:	//detail article menu
			menuHtml = '';

            //ecomm and shopping cart options
			if( g_checkEnterprisePermission('allow_ecomm') == 1 && allow_read == '0' && view_state != "shopping_cart" )
				menuHtml = '<li><a href="javascript:showEcommOptions(' + magazine_id + ',\'publication\', \''+icon_prefix+'\')"><img src="'+g_img_url+'img/money.png" />purchase options</a></li>';

			if(g_checkEnterprisePermission('allow_compilations')){
				menuHtml += '<li><a href="javascript:addArticleToBasket('+id+', \''+icon_prefix+'\');"><img src="'+g_img_url+'img/basket_add.png" />add to my basket</a></li>';

                if(ecomm_enabled=='0' || ecomm_allow_compilations=='1' )
                    menuHtml += '<li><a href="javascript:saveToCompilation('+id+',\''+icon_prefix+'\');"><img src="'+g_img_url+'img/save.png" />save to compilations</a></li>';
			}
			menuHtml += '<li><a href="javascript:emailToFriend('+id+',\'article\');"><img src="'+g_img_url+'img/email.png" />email to a friend</a></li>';
			//'<li><a href="javascript:comment('+id+', \'article\', \''+icon_prefix+'\');"><img src="'+g_img_url+'img/comment.png" />leave a comment</a></li>' +
			menuHtml += '<li><a href="javascript:shareWithFriends('+id+', \'article\', \''+icon_prefix+'\');"><img src="'+g_img_url+'img/share.png" />share with friends</a></li>';
			menuHtml += '<li><a href="javascript:socialBookmark('+id+',\'article\');"><img src="'+g_img_url+'img/bookmark.png" />social bookmark</a></li>';
			
			if( can_tag == 1 && g_isLoggedIn){
				menuHtml += '<li><a href="javascript:gotopage(\''+g_webroot+'utils/tag/article/'+id+'\');"><img src="'+g_img_url+'img/tag.png" />tag article</a></li>';
			}
			break; 
		
		case 5:	//article in basket
            //NOTE: article basket doesnt exist if there is no compliation on the newsstand hence
            //this entire menu tool is missing
			if(g_checkEnterprisePermission('allow_compilations')){

				//'<li><a href="javascript:loadTB(\'move an article to a compilation\', \''+g_webroot+'compilations/add/article/'+id+'?width=620&height=430\');"><img src="'+g_img_url+'img/save.png" />move to a compilation</a></li>' +
				//'<li><a href="javascript:comment('+id+', \'article\', \''+icon_prefix+'\');"><img src="'+g_img_url+'img/comment.png" />leave a comment</a></li>' +
				//'<li><a href="javascript:viewComments('+id+',\'article\');"><img src="'+g_img_url+'img/comments.png" />read user comments</a></li>' +

                if( ecomm_allow_compilations == '1' )
                    menuHtml += '<li><a href="javascript:saveToCompilation('+id+',\''+icon_prefix+'\');"><img src="'+g_img_url+'img/save.png" />move to compilation</a></li>';
				menuHtml += '<li><a href="javascript:removeArticle(\'default\','+id+');"><img src="'+g_img_url+'img/basket_delete.png" />remove from basket</a></li>';
				if( allow_read == '0' )
					menuHtml += '<li><a href="javascript:showEcommOptions(' + magazine_id + ',\'publication\', \''+icon_prefix+'\')"><img src="'+g_img_url+'img/money.png" />purchase options</a></li>';
	            else
	               menuHtml += '<li><a href="javascript:loadFlipBook(' + magazine_id + ',\'article\', '+page_num+ ')"><img src="'+g_img_url+'img/read.png" />read</a></li>';

				menuHtml += '<li><a href="javascript:emailToFriend('+id+',\'article\');"><img src="'+g_img_url+'img/email.png" />email to a friend</a></li>';
				menuHtml += '<li><a href="javascript:shareWithFriends('+id+', \'article\', \''+icon_prefix+'\');"><img src="'+g_img_url+'img/share.png" />share with friends</a></li>';
				menuHtml += '<li><a href="javascript:socialBookmark('+id+',\'article\');"><img src="'+g_img_url+'img/bookmark.png" />social bookmark</a></li>';
				
				if( can_tag == 1 && g_isLoggedIn){
					menuHtml += '<li><a href="javascript:gotopage(\''+g_webroot+'utils/tag/article/'+id+'\');"><img src="'+g_img_url+'img/tag.png" />tag article</a></li>';
				}
			}
			break;  
		
		case 99: //report comment abuse
			menuHtml += '<li><a href="javascript:flagComment('+id+',\'S\', \''+icon_prefix+'\');"><img src="'+g_img_url+'img/flag_red.png" />spam</a></li>';
			menuHtml += '<li><a href="javascript:flagComment('+id+',\'I\', \''+icon_prefix+'\');"><img src="'+g_img_url+'img/flag_yellow.png" />inappropriate</a></li>';
			break; 
	}
	
	/*
	//add extra links to the menu
	if(typeof(extraItems) != "undefined"){
		
		var ocStr = "";
		
		for(i=0;i<extraItems.items.length;i++){
			//check if url passed instead of function
			if(extraItems.items[i].url!=null){
				ocStr = "gotopage(\"" + extraItems.items[i].url + "\")";
			}
			else{
				ocStr = extraItems.items[i].onclick;
			}
			//check if confirmation requested
			if(extraItems.items[i].confirm!=null){
				ocStr = "if(confirm(\""+extraItems.items[i].confirm+"\")){" + ocStr + "}";
			}
			menuHtml = menuHtml + "<li><a href='javascript:void(0)' onclick='" + ocStr +
				"'><img src='"+g_webroot+"img/" + extraItems.items[i].img + "' />" + extraItems.items[i].name + "</a></li>";
		}
	}
	*/

	$j("#tool-list").html(menuHtml);
	
	//figure out bottom of current icon
	var position = {};
	$j("#icon_"+icon_prefix+id).position(position);
	var top = position.top;
	var left = position.left;
	
	if($j("#menu_link_"+icon_prefix+id).length > 0){
		//alert("exists: " + "#menu_link_"+icon_prefix+id);
		var position_link = {};
		$j("#menu_link_"+icon_prefix+id).position(position_link);
		var top = position_link.top;
	}
	
	//fix basket menu position if we are in article basket relative to article basket
	if (menu==5 || view_state=="article_basket"){
		var basket_position = {};
		$j("#submenu-basket").position(basket_position);
		top = top + basket_position.top - $j("#submenu-basket").scrollTop();
		left = left + basket_position.left;
		
		//now adjust for the content div
		$j("#basket_contents").position(basket_position);
		top = top  - $j("#basket_contents").scrollTop();
		left = left + basket_position.left;
		
		//alert("new position top/left = " + top +" / "+left);

	} else {
		$j("#related_content").find("#icon_"+icon_prefix+id).each(function (i) {
			top = top - $j("#related_content").scrollTop();
           	//alert("this icon is within related content"); 
        });
	}

    //fix toolsMenu position if we are in shopping cart - relative to shopping cart basket
    if(view_state == "shopping_cart"){
		var cart_position = {};
		$j("#submenu-cart").position(cart_position);
		top = top + cart_position.top - $j("#submenu-cart").scrollTop();
		left = left + cart_position.left;
		
		//now adjust for the content div
		$j("#cart_contents").position(cart_position);
		top = top  - $j("#cart_contents").scrollTop();
		left = left + cart_position.left;
    }

	//reposition tool menu
	if(menu==4 || menu==99){	//if details menu, or comment abuse opened
		$j('#tool-menu').css('top',(top+16)+'px').css('left',left+'px');
	} else { 
		//if icon menu opened
		//var position_link = {};
		//$j("#menu_link_"+icon_prefix+id).position(position_link);
		//$j('#tool-menu').css('top',(top + $j("#icon_"+icon_prefix+id).height()-8) +'px').css('left',(left + $j("#icon_"+icon_prefix+id).width()-48) + 'px');
		$j('#tool-menu').css('top',(top + 13) +'px').css('left',(left + $j("#icon_"+icon_prefix+id).width()-48) + 'px');
	}

	//make sure it's showing
	if($j('#tool-menu').css('display')=='none'){
		$j('#tool-menu').css('display','block');
	}
	//else
	//	$j('#tool-menu').css('display','none');
	
	// ENSURE MENU IS NOT OFF THE SCREEN
	//if off the screen (i.e bottom of menu is now below the viewable area of the screen), auto scroll down the window
	//figure out top of menu, height of menu, and viewable are of screen + scroll...
	$j("#tool-menu").position(position);
	var menu_top      = position.top;
	var menu_height   = $j("#tool-menu").height();
	var window_height = $j(window).height() + $j(window).scrollTop();
	
	if((menu_top+menu_height)>window_height){
		$j('html,body').animate({scrollTop: ($j(window).scrollTop()+ (menu_top+menu_height-window_height) + 20)}, "fast");
	}
}

function flagComment(comment_id, flag, icon_prefix){
	if( !icon_prefix ) icon_prefix = "";
	var element = $j("#icon_"+icon_prefix+comment_id);
	
	$j.ajax({
		type: "POST",
		data: "data="+JSON.stringify({"comment_id":comment_id,"flag":flag}),
		url: g_webroot + "comments/ajax_addFlag",
		success: function(data){
			if( data == 1 ){
				showFlashMini("success","Thanks!","Your flag has been submitted","comment_"+icon_prefix+comment_id)
				element.parent().html("Thanks!");
			} else {
				showFlashMini("error","Sorry.","You have to be logged in to flag comments. "+login_link(),"comment_"+icon_prefix+comment_id)
			}
		}
	});
}

//on load functions (hide menu or tooltip when hovering over container div)
// note: add this to main document.ready function
$j(document).ready(function() {
	$j("body").bind("mouseover",function(event) {
		var element=event.target;
		if( typeof(element.id) != "undefined" && element.id=='container'){
			closeToolTip();
			$j('#tool-menu').css('display','none');
		}
		
	});
});


function saveToFavorites(id, type, icon_prefix){
	if( typeof(icon_prefix) == "undefined") icon_prefix = "";
	var useAlerts = false;
	
	//define flashMini target id
	var targetID = "";
	if(icon_prefix == "topRankedMagazines")
		targetID = "topRankedMagazines";
	else
		targetID = "wrapper_"+icon_prefix+id;

	if( icon_prefix == 'alert' ){
		useAlerts = true;
	}
	
	if( icon_prefix == "fullscreen" ){
		targetID = "";
	}
	
	$j.ajax({
		type: "POST",
		data: "data="+JSON.stringify({"id":id, "type":type}),
		url: g_webroot + "utils/ajax_saveFavorite",
		async: true,
		success: function(data){
			if( data == "PERMISSION_ERROR" ){
				showFlashMini("info","Start archiving.","To save a "+type+", "+login_link(), targetID);
			} else if( data == "DUPLICATE" ) {
				if( useAlerts ){
					alert('Oops! This '+type+' is already saved to your favorites');
				} else {
					showFlashMini("error","Oops!","You've already added this "+type+" to your favorites", targetID);	
				}
				
			} else if(data == 1){
				if( useAlerts ){
					alert('Success! ' + type + ' saved to your favorites');
				} else {
					showFlashMini("success","Success!",type+" saved to favorites", targetID);	
				}
				
			} else {
				if( useAlerts ){
					alert('Sorry! could not save ' + type + ' to your favorites - please try again later.');					
				} else {
					showFlashMini("error","Sorry!","Could not save "+type+" to your favorites - please try again later.", targetID);					
				}
			}
		}	
	});
}

function addArticleToBasket(id, icon_prefix){
	if(g_checkEnterprisePermission('allow_compilations')){
		$j.ajax({
			type: "POST",
			data: "data="+id,
			url: g_webroot + "compilations/ajax_addArticleToBasket/",
			async: true, 
			success: function(data){
				if( data == "PERMISSION_ERROR" ){
					showFlashMini("info","Start archiving.","To add articles to the basket, "+login_link(), "wrapper_"+icon_prefix+id);
				
				} else if( data == "DUPLICATE" ) {
					showFlashMini("error","Oops!","This article is already in your basket", "wrapper_"+icon_prefix+id);
				} else if(data == 1){
					//alert("wrapper_"+icon_prefix+id);
					showFlashMini("success","Success!","article added to your basket.", "wrapper_"+icon_prefix+id);
					//load basket content if only we are successfull in putting the data in the basket
					g_loadBasketContent();
					//hilight the basket to show that new content is in it
					//$j("#toggle-basket").css("border", "1px solid #ddd").css("background-color", "#21365a");
					$j("#toggle-basket").addClass("highlighted");
				} else {
					showFlashMini("error","Sorry!","Could not save articles to your basket - please try again later.", "wrapper_"+icon_prefix+id);
				}
			},
			error: ajax_communication_error
		});
	}
}

function changeToRatableStars(el){
	var id = $j(el).attr("id");
	var arrId = id.split("_");

	var icon_prefix = "";
	for(var i=1; i<(arrId.length - 4); i++){
		icon_prefix += arrId[i];
		if( i < (arrId.length - 5)) {
			icon_prefix += "_";
		}
	}
	var type = arrId[arrId.length - 4];
	var itemid = arrId[arrId.length - 3];
	var curvalue = arrId[arrId.length - 2];
	var rated = arrId[arrId.length - 1];
	var url = null;

	if( type == "publication" ){
		url = g_webroot + "publications/ajax_rate";		
	}
	var rating_id = "rating_"+icon_prefix+"_"+itemid;
	$j(el).html("<div id='"+rating_id+"'></div>");
	$j("#"+rating_id).rating(url, {maxvalue:5, curvalue:curvalue, ID:itemid, rated:rated, increment:0.5, disable:false}); 
}

function changeToNormalStars(el){
	var div_id = $j(el).attr("id");
	$j(el).html("");
	$j(el).html( $j("#"+div_id+"_default").html() );
}

function saveToCompilation(id, icon_prefix){
	if(g_checkEnterprisePermission('allow_compilations')){
		if( !icon_prefix) icon_prefix = "";
		if( g_isLoggedIn ){
			window.location= g_webroot+'compilations/add/article/'+id;
		} else {
			showFlashMini("info","Start archiving.","To save articles to your compilations, "+login_link(), "wrapper_"+icon_prefix+id);
		}
	}
}

function removeArticle(compilation_id,article_id){
	if(g_checkEnterprisePermission('allow_compilations')){
		if( empty.test(compilation_id) || empty.test(article_id) ){
			return;
		}
		if( confirm("Are you sure you want to remove this article from the basket?") ){
			$j.ajax({
				type: "POST",
				url: g_webroot + "compilations/ajax_removeArticleFromCompilation",
				data: "data="+JSON.stringify({"compilation_id":compilation_id,"article_id":article_id}),
				success:function(data){
					if( data == 1 ){
						showFlashMini("success","Success!","Article removed from your basket", "submenu-basket");
						g_loadBasketContent();
					} else if( data == 0 ){
						showFlashMini("error","Sorry!","Article could not be deleted from your basket", "submenu-basket");
					} else if( data == "PERMISSION_ERROR" ){
						showFlashMini("error","Sorry.","You have to be logged in to do that.<br />"+login_link(), "submenu-basket");
					}
				},
				error:ajax_communication_error
			});
		}
	}
}

function shareWithFriends(id, type, icon_prefix){
	if( g_isLoggedIn ){
		loadTB('share with your friends!', g_webroot+'utils/share_friends/'+type+'/'+id+'?width=650&height=400');
	} else {
		//define flashMini target id
		var targetID;
		if(icon_prefix == "topRankedMagazines")
			targetID = "topRankedMagazines";
		else
			targetID = "wrapper_"+icon_prefix+id;
		showFlashMini("info","Share with friends.","To share with your friends, "+login_link(), targetID);
	}
}

function comment(id, type, icon_prefix){
	if( g_isLoggedIn ){
		loadTB('Comment on this '+type+'!', g_webroot+'utils/comment/'+type+'/'+id+'?width=600&height=400');
	} else {
		showFlashMini("info","Leave your mark.","Login to make comments. "+login_link(), "wrapper_"+icon_prefix+id);
	}
}

function viewComments(id,type){
	if( type == "article" ){
		gotopage(g_webroot + "articles/view/"+id+"#comments")	
	}
}

function emailToFriend(id, type, p){
	if( typeof p == 'undefined' ){ p = '' };
	loadTB("email to a friend!", g_webroot + "utils/email_friend/" + type + "/" + id + "/" + p + "/?width=520&height=400");
}
function socialBookmark(id, type){
	loadTB("social bookmark for the world to see! ",g_webroot + "utils/social_bookmark/" + type + "/" + id + "?width=420&height=250");
}

function removeFromFavorites(id, type, icon_prefix){
	if( typeof(icon_prefix) == "undefined") icon_prefix = "";
	
	//define flashMini target id
	var targetID;
	if(icon_prefix == "topRankedMagazines")
		targetID = "topRankedMagazines";
	else
		targetID = "icon_"+icon_prefix+id;
	
	$j.ajax({
		type: "POST",
		data: "data="+JSON.stringify({"id":id, "type":type}),
		url: g_webroot + "utils/ajax_removeFavorite",
		async: true,
		success: function(data){
			if( data == "PERMISSION_ERROR" ){
				showFlashMini("error","Sorry.","You do not have permission to remove this "+type+ " from your favorites." , targetID);
			} else if(data == 1){				
				showFlashMini("success","Success!",type+" removed from favorites.", targetID);
				$j("#"+targetID).parent().remove();				
			} else {
				showFlashMini("error","Sorry!","Could not remove "+type+" from your favorites - please try again later.", targetID);
			}
		},
		error: ajax_communication_error
	});
}

function showEcommOptions(id, type /*, ecomm_allow_subscriptions, ecomm_allow_issue_sale*/, icon_prefix){
    var width  = 500;
    var height = 350;

	if(g_checkEnterprisePermission('allow_ecomm') == 1)
		loadTB('purchase options', g_webroot+'ecommerce/show_ecomm_options/'+id+'/'+type+'/?height='+height+'&width='+width);

    /*if( (ecomm_allow_subscriptions && !ecomm_allow_issue_sale) || (!ecomm_allow_subscriptions && ecomm_allow_issue_sale) )
        width = 500;

	//load both options
	if((ecomm_allow_subscriptions && ecomm_allow_issue_sale) || ecomm_allow_subscriptions)
		loadTB('title', g_webroot+'ecommerce/show_ecomm_options/'+id+'/'+type+'/?height='+height+'&width='+width);

	//just add to cart
	else 
		addToCart(id, type, icon_prefix);*/
}

function addToCart(id, type, icon_prefix){
	if( g_checkEnterprisePermission('allow_ecomm') === 0 ) return;

    if(typeof id == "undefined") id = null;
    if(typeof type == "undefined") type = null;
    if(typeof icon_prefix == "undefined") icon_prefix = null;

    //it means we are adding to cart from the subscription options page, 
    //this means we have to find out the id and type
    if(id == null && type == null){
        if(empty.test(icon_prefix)) targetID = "ecomm_pub_thumb";
        else targetID = icon_prefix;

        type = $j('#OptionType').val();
        id   = $j('#OptionId').val();
    }  else {
        if(empty.test(icon_prefix)){
            targetID = "";
        } else {
            targetID = icon_prefix;
        }
    }

    if(targetID === null) targetID = "";

    if(empty.test(type) || empty.test(id)){
        alert("Please select an option to be added to cart");
        return;
    }

    $j.ajax({
        type : 'POST',
        url  : g_webroot + 'cart/ajax_addToCart',
        data : 'data='+JSON.stringify({id:id, type:type}),
        success: function(data){
            if(type=='SUBSCRIPTION') type = 'Subscription';
            else if(type='ISSUE') type = 'Issue';

            if(data == "1"){
                g_loadCartContent();
				showFlashMini("success","Success!","added "+type+" to shopping cart", targetID);
                tb_remove();

            } else if(data == "DUPLICATE_IN_SUBSCRIPTION") {
                showFlashMini("error", "Oops!", "The issue you are trying to add is already part of the subscription package added to cart", targetID);
                tb_remove();

            } else if(data == "DUPLICATE") {
            	var msg = "";
            	
            	if(type=="Subscription")
            		msg = "This subscription is already added to your shopping cart or an issue within this subscription is in your cart";
            	else
            		msg = "This "+type+" is already added to your shopping cart";
            		
                showFlashMini("error", "Ooops!", msg, targetID);
                tb_remove();

            } else if(data == "0") 
                showFlashMini("error", "Sorry!", "Failed to add "+type+" to shopping cart", targetID);
        }
    });
}

function removeFromCart(cartItemId){
    if(confirm("Are you sure you want to remove item from cart?")){
        $j.ajax({
            type: "POST",
            url: g_webroot+"cart/ajax_removeItem/"+cartItemId,
            success: function(data){
                data = JSON.parse(data);
                if(data === 0){
                    showFlashMini("error", "Sorry!", "Failed to remove item from cart", '');
                } else {
                    if( window.location.href.match(/cart/) ){
                        if(data.total <= 0) window.location.href=g_webroot+"/";
                        $j('#checkout_item_'+cartItemId).remove();
                        $j('.cartTotal').find('strong').html(data.total);
                    } else {
                        g_loadCartContent();
                    }
                    showFlashMini("success","Success!","removed item from shopping cart", '');
                }
            }
        });
    }
}
