﻿// JScript File
/*Balance Interactive Company*/
/*created by Langley Li 04/01/2008*/

/****************windows Load********************/
//window.onload = init;
//function init()
//{
//	populateCustomMenuList();
//}

/************* COOKIES ***************/
function setCookie(name, value, days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name + "=" + escape(value) + expires + "; path=/";
}

function getCookie(name) {
	var dc = document.cookie;
	var prefix = name + "=";
	var begin = dc.indexOf("; " + prefix);
	if (begin == -1) {
		begin = dc.indexOf(prefix);
		if (begin != 0) return null;} 
	else {
		begin += 2;
	}
	var end = document.cookie.indexOf(";", begin);
	if (end == -1) {
		end = dc.length;
	}
	return unescape(dc.substring(begin + prefix.length, end));
}

function deleteCookie(name) {
	if (getCookie(name)) setCookie(name,"",-1);}

/************* Custom Menu ***************/
/***adapted from http://www.abc.net.au/common.js***/
// Cookie format: url1~title1;url2~title2;url3~title3 etc.
var customMenulistCookie = "customMyMenus";

function customMenuLinkAdd(url, menuname, menuItemId, target)
{
    //url = url.replace(/^[a-z]+:\/\/[^\/]+/, ''); // discard the domain name, we only need the path to the web page
    //menuname = menuname.replace(/(<[^>])/ig, '').trim();
    menuname = menuname.replace(/`/ig, "'");
	if (customMenuListExists(menuname)) return false;
	
	var cookieData = getCookie(customMenulistCookie);
	var menulist = "";
	if(cookieData != null)
	{
	 menulist = cookieData.split(';');
	}
	if(menulist.length<8)
    {
        setCookie(customMenulistCookie, (cookieData==null || cookieData.trim()=='' ? '' : cookieData+';')+ url+'~'+menuname+'~'+target, 31);
    }
	if (!customMenuListExists(menuname)) {
		var cookieData = getCookie(customMenulistCookie);
		if (cookieData == null || cookieData == '') alert('Sorry, this menu item could not be added.\n\nPlease ensure that cookies are enabled in your web browser.');
		else alert('Sorry, this menu item could not be added.\n\nYou may have too many items in My Custom Navigation.');
	}
	else 
	{
	    populateCustomMenuList(menuname);
	    ToggleCustomNavLink(url,menuname,menuItemId, target);
	}
		
	return false;
}

function ClearCustomMenus()
{
    deleteCookie(customMenulistCookie);
    
}
    

function customMenuLinkRemove(url, menuname, menuItemId, target)
{
    menuname = menuname.replace(/`/ig, "'");
    
	var cookieData = getCookie(customMenulistCookie);	
	if(cookieData == null) { return false;}
	var removed = false;
	var menulist = cookieData.split(';');
	for (var i=0; i< menulist.length; i++)
	{
		if(menuname.indexOf(menulist[i].split('~')[1]) != -1)
		{
			menulist.splice(i,1); //remove this item from the array
			removed = true;
		}
	}	
	cookieData = menulist.join(';');
	if (cookieData == '') cookieData = ' ';
	setCookie(customMenulistCookie, cookieData,31);
	
	if(!removed){ 
		alert("sorry, the customsed menu could not be removed.");}
	else{	
		populateCustomMenuList(menuname);
		ToggleCustomNavLink(url,menuname,menuItemId, target);
	}	
	
	return false;
}


function ToggleCustomNavLink(url, menuname, menuItemId, target)
{
    var cnp;
	if(cnp = document.getElementById('CustomNavPanel'))
	{
	   var selectedMenuItem;
	   if( selectedMenuItem = document.getElementById(menuItemId))
	   {
	        var parentItem;
    	    parentItem = document.getElementById(selectedMenuItem.parentNode.id);
    	   
	        if(selectedMenuItem.innerHTML == '+')
	        {
	            selectedMenuItem.innerHTML = '';
	            selectedMenuItem.innerHTML = '-';
	            selectedMenuItem.onclick = function()
	            {
	                customMenuLinkRemove(url, menuname, menuItemId, target);
	            }
	            selectedMenuItem.className = 'highlightedCustomMenu';	
	            selectedMenuItem.title = 'Remove from My Custom Navigation';
	            if(parentItem != null)
	            {	               
	                AddClassName(parentItem, 'highlightedCustomMenuContainer');
	            } 	        
	        }
	        else
	        {
	            selectedMenuItem.innerHTML = '';
	            selectedMenuItem.innerHTML = '+';
	            selectedMenuItem.onclick = function()
	            {
	                customMenuLinkAdd(url, menuname, menuItemId, target);
	            }
	            selectedMenuItem.className = 'customMenuSymbol';
	            selectedMenuItem.title = 'Add to My Custom Navigation';  
	            if(parentItem != null)
	            {
	               RemoveClassName(parentItem, 'highlightedCustomMenuContainer');
	            } 			    
	        }
	    }
	   
	}
}



function customMenuListExists(menuname)
{
	var cookieData = getCookie(customMenulistCookie);
	
	if (cookieData == null || cookieData == '') return false;
	var custommenulist = cookieData.split(';');
	for (var i=0; i<custommenulist.length; i++) {
		if (menuname.indexOf(custommenulist[i].split('~')[1])!= -1)  return true;
	}
	return false;
}

//function FindCustomNavigationMenus()
//{
//    var cookieData = getCookie(customMenulistCookie);
//    var resultDisplay = document.getElementById('CustomSection3');
//    resultDisplay.innerHTML = "";
//    
//    if(cookieData==null)
//		{ return false;}
//	else if(cookieData.trim() !='')
//	{
//	    var custommenulist = cookieData.trim().split(';');
//	    
//	    var cnp = document.getElementById('CustomNavPanel');   
//        var aLinksList = cnp.getElementsByTagName('a');
//        
//	    
//       for(var j=0; j<aLinksList.length; j++)
//        {
//           var aLinkText = aLinksList[j].innerHTML;
//           var aLinkHref = aLinksList[j].getAttribute('href');
//               
//           for (var i=0; i<custommenulist.length; i++)
//           {
//               var cookieItem = custommenulist[i].split('~');
//               if(aLinkText.indexOf(cookieItem[1])!= -1 && aLinkHref.indexOf(cookieItem[0]) != -1)
//               {
//                 
//                 var parentItem = document.getElementById(aLinksList[j].parentNode.id);
//                 if(parentItem != null)
//                 {	               
//                   AddClassName(parentItem, 'highlightedCustomMenuContainer');
//                   var firstChildNode = parentItem.childNodes[0];
//                   
//                   firstChildNode.innerHTML = '';
//                   firstChildNode.innerHTML = '-';
//                   resultDisplay.innerHTML += cookieItem[0] + cookieItem[1]+ firstChildNode.id + "<br/>";
//                   firstChildNode.onclick = function()
//                    {
//                        customMenuLinkRemove(cookieItem[0],cookieItem[1],firstChildNode.id);
//                    }
//                   firstChildNode.className = 'highlightedCustomMenu';	
//                   firstChildNode.title = 'Remove from My Custom Navigation';
//                 } 
//                                 
//               }
//            } 
//		
//	    }
//       	   	    
//	}
//    
//}

function populateCustomMenuList()
{
	var cm;
	if(cm = document.getElementById('CustomizedMenuList'))
	{
		cm.innerHTML ='';
		var cookieData = getCookie(customMenulistCookie);
		var html='';
		cm.style.display = 'none';
		cm.style.visibility = 'hidden';
		if(cookieData==null)
		{ return false;}
		else if(cookieData.trim()!='')
		{
			var custommenulist = cookieData.trim().split(';');
			for (var i=0; i<custommenulist.length; i++)
			{
			    var cookieItem = custommenulist[i].split('~');
				html += "<li class=\"myCustomMenuLink\"><a href='"+  cookieItem[0]+"' target='"+cookieItem[2] +"' id=myCustomMenu" + i +"' title='"+cookieItem[1] +"'>"+cookieItem[1] +"</a></li>";	
				if(i != custommenulist.length-1)
				{	
				    html += '<li class=\'myCustomSeparator\'></li>';	
				}	
			}
			if(html!='') 
			{
			    html = '<ul>'+html+'</ul>';
			    cm.style.display = 'block';
			    cm.style.visibility = 'visible';
		        cm.style.backgroundColor = '#268202';
		        cm.style.padding= '5px 30px';
		        cm.style.marginBottom = '1px';
		        cm.style.overflow = 'hidden';
			}
		}
	}	
	cm.innerHTML = html;			
}

function HasClassName(objElement, strClass)
{
   if( objElement.className )
    {

      var arrList = objElement.className.split(' ');

      // get uppercase class for comparison purposes
      var strClassUpper = strClass.toUpperCase();

      for(var i = 0; i < arrList.length; i++)
       {
         if (arrList[i].toUpperCase() == strClassUpper)
            {
                return true;
            }
       }

    }

   return false;
}

function AddClassName(objElement, strClass)
{
    if(objElement.className )
     {
      var arrList = objElement.className.split(' ');

      if(!HasClassName(objElement, strClass))
      {
        arrList[arrList.length] = strClass;
      }

      objElement.className = arrList.join(' ');
     
     }
}

function RemoveClassName(objElement, strClass)
{
   if(objElement.className )
   {
      var arrList = objElement.className.split(' ');

      // get uppercase class for comparison purposes
      var strClassUpper = strClass.toUpperCase();

      // find all instances and remove them
      for(var i = 0; i < arrList.length; i++)
       {
         if(arrList[i].toUpperCase() == strClassUpper)
            {
                arrList.splice(i, 1);
                i--;
            }
       }

      objElement.className = arrList.join(' ');
    }
 }
