///
/// empty CallBack function for Webservice
///
function CallBack(result)
{

}

function ErrorHandler(result)
{
   var msg=result.get_exceptionType() + "\r\n";
   msg += result.get_message() + "\r\n";
   msg += result.get_stackTrace();
   alert(msg);
}
function TimeOutHandler(result)
{
   alert("Timeout :" + result);
}

// 
// provides the source of an event (target)
//
function NG24_GetTarget(oEvent)
{
    var currentEvent = oEvent != null ? oEvent : window.event;
    var target = null;

    target = currentEvent.srcElement;
    
    // for mozilla
    if(target == null)
        target = currentEvent.target;

    // for iframes in mozilla
    if(target == null)
        target = currentEvent.currentTarget;
        
    return target;
}


//
// Stores the classified id of the note list in a cookie
//
function NG24_SetDetailIdCookie(target, add, remove)
{
  var expireDays = target.getAttribute("expireDays");
  var detailId = target.getAttribute("detailId");  
  var existingDetails = NG24_GetCookieValue("NG24Watchlist");
  var divAdd = document.getElementById(add);
  var divRemove = document.getElementById(remove);

  if(detailId != null)
  {			
		//if(existingDetails != '')
		//{
			if(target.id.indexOf('Add') != -1)
			{
				// add a detail id only once
				if(existingDetails.indexOf(detailId) == -1)
				{
						detailId = existingDetails + " " + detailId;
				}
				else
				{
						detailId = existingDetails;
				}
				
				NG24_SetCookieValue("NG24Watchlist", detailId, expireDays);
				
				// swap link
				divAdd.style.display = 'none';
				divRemove.style.display = 'block';
				
			}
			else
			{
				// remove a detail id
				// the detail id is at the beginning without a space or has a space before it
				//var regExpr = new RegExp("(^" + detailId + "\s?|\s" + detailId + ")");
				//existingDetails = existingDetails.replace(regExpr, "");
				existingDetails = existingDetails.replace(detailId, "").replace("  ", " ");
				var detailIds = existingDetails.split(' ');
				detailId = detailIds.join(' ');
				
				NG24_SetCookieValue("NG24Watchlist", detailId, expireDays);
				
				// swap link
				divAdd.style.display = 'block';
				divRemove.style.display = 'none';
			}
		//}            
	}
}

function NG24_SetDetailIdDb(target, add, remove)
{
	var detailId = target.getAttribute("detailId"); 
	var userId = target.getAttribute("userId");
	
	if(target.id.indexOf('linkAdd') != -1)
	{	
		NG24WebService.AddItemToWatchList(detailId, userId, CallBack, ErrorHandler, TimeOutHandler);
	}
	else
	{
		NG24WebService.RemoveItemFromWatchList(detailId, userId, CallBack, ErrorHandler, TimeOutHandler);
	}
	
	NG24_SetDetailIdCookie(target, add, remove);
}

function NG24_SetCookieValue(name, value, expireDays)
{
	var expDate = new Date();
	var expMillis = expDate.getTime() + (parseInt(expireDays) * 24 * 60 * 60 * 1000);
	expDate.setTime(expMillis);

    var cookie = name + "=" + value + "; expires=" + expDate.toGMTString() + "; path=/";
    document.cookie = cookie;
}

function NG24_GetCookieValue(name)
{
    var exp = "(?:; )?" + name + "=([^;]*);?";
    var regExp = new RegExp(exp);     
    
    if(regExp.test(document.cookie) == true)
        return RegExp["$1"];
    else
        return "";        
}


