//Baynote prefix and suffix for custom window.name
var bn_window_param_start = "unb~ti~[";
var bn_window_param_end = "]~";

//Grab information for the title and description from the meta tags, if available
function baynote_getMeta(name) {
	var metas=document.getElementsByTagName("meta");
	
	if (!metas) return;
        
	var summary="";
	
	for (var i=0; i < metas.length; i++) {
		if (!metas[i]) return;
		if (metas[i].name == name) {
        	return metas[i].content;    	
    	}
	}
}


/*
 * If the META tag already has baynote_title, return it, otherwise
 * grab the HTML title, get rid of unwanted strings, such as ":Texas Instruments", "- Texas Instruments"," | Texas Instruments" and "- TI.com"
 */ 
function baynote_getBaynoteTitle()
{
	var baynote_title = baynote_getMeta("baynote_title");
	if (baynote_title != "" && baynote_title != null) {
		return baynote_title;
	}
	
	var regexMatch = "[\-\|\:] Texas Instruments|[\-] TI";		 
	var docTitle = document.title;
	var index = docTitle.search(regexMatch);
	if(index > 0)
	{
		docTitle = docTitle.substring(0,index);
	}
    return docTitle;
}

/*
 * If the META tag already has baynote_description, return it, otherwise
 * grab the META tag "description".
 */ 

function baynote_getBaynoteDesc()
{
	var baynote_desc = baynote_getMeta("baynote_description");
	if (baynote_desc != "" && baynote_desc != null) {
		return baynote_desc;
	}
	var desc = baynote_getMeta("description");
	if (desc != "" && desc != null) {
		return desc;
		}
		
}	
	

//Get URL GET parameter such as familyId, documentCategoryId, etc. 
function getParam( name )
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];
}

//Check if a variable is null or is an empty string
function bn_isNotEmpty(name) {
	return (name != null) && (name != "");
}

//Get the value of cookie c_name
function bn_getCookie(c_name) {
	if (document.cookie.length>0) {
		c_start=document.cookie.indexOf(c_name + "=");
		if (c_start!=-1) { 
			c_start=c_start + c_name.length+1;
			c_end=document.cookie.indexOf(";",c_start);
			if (c_end==-1) c_end=document.cookie.length
				return unescape(document.cookie.substring(c_start,c_end));
		}
	}
	return "";
}

//Set value for cookie c_name
function bn_setCookie(c_name,value,expiredays) {
	var exdate=new Date();
	exdate.setDate(exdate.getDate()+expiredays)
	document.cookie=c_name+ "=" +escape(value)+ ";path=/" +
		((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
}

//Set window.name
function bn_setWU(bn_iter) {
	bn_showObserver();
	
	var bn_iter_limit = 5;
	if(typeof(bn_iter) != 'undefined' && bn_iter > bn_iter_limit) { return; }
	var bn_u_val = bn_getCookie('bn_u');
	if(bn_isNotEmpty(bn_u_val)) {
		window.name = bn_window_param_start + bn_u_val + bn_window_param_end;
	} else {
		if(typeof(bn_iter) != 'undefined' && bn_iter > 0)
			setTimeout("bn_setWU("+(bn_iter+1)+");",500);
		else
			setTimeout("bn_setWU("+1+");",500);
	}
}

//Get the window name and set bn_u cookie
function bn_getWU() {

	var window_name = window.name;
	var bn_u_cookieval = bn_getCookie('bn_u');
	var start_idx = bn_window_param_start.length;
	var end_idx = window_name.indexOf(bn_window_param_end);
	
	if(end_idx > start_idx && end_idx < window_name.length) {
		var bn_u_val = window_name.substring(start_idx, end_idx);
		if(bn_isNotEmpty(bn_u_val)) {
			bn_setCookie('bn_u',bn_u_val,365*3);
		} else {
			bn_setCookie('bn_u',4,365*3);
		}
	}
	
	bn_showObserver();
}
function bn_showObserver() {
	var bn_locHref = window.location.href;
	if (bn_locHref.indexOf("https://") == 0) {
		baynote_tag.server = "https://ti-jp.baynote.net";
	} else {
		baynote_tag.server = "http://ti-jp.baynote.net";
	}
	bn_customerId = "ti";
	bn_code = "jp";
	baynote_tag.customerId = bn_customerId;
	baynote_tag.code = bn_code;
	baynote_tag.type = "baynoteObserver";
	//baynote_globals.cookieDomain = "focus.tij.co.jp";
	baynote_tag.summary						= baynote_getBaynoteDesc();
	baynote_tag.title 						= baynote_getBaynoteTitle();
	baynote_tag.docAttrs.familyId			= getParam("familyId");
	
	baynote_tag.show();
}
/*
If window.name has been initialized with the baynote pattern, then call getWU to set the bn_u cookie. 
Otherwise, call bn_showObserver(), then bn_setWU()
*/

if (bn_isNotEmpty(window.name) && window.name.indexOf(bn_window_param_start) == 0) {
	bn_getWU();
} 
else {
	bn_setWU();
}

