// Script Name:  jcm0001.js
// Date: 2008 11 21
// 
//

///////////////////////
// NEW GLOBAL HEADER //
///////////////////////
var JCM_Res = {};
JCM_Res.AppManagement = {"AppChromeRemoveContent":"You can hide this module or remove the app completely.","AppChromeRemoveHeader":"Remove App?","AppChromeHideButton":"Hide Module","AppChromeRemoveButton":"Remove App","AppChromeHideUnexpectedError":"Unexpected error hiding the app.","AppChromeRemoveUnexpectedError":"Unexpected error removing the app.","RequestPermissionHeader":"Permission Request","RequestPermissionUpdate":"Update","RequestPermissionCancel":"Cancel","RequestPermissionIntro":"{0} is requesting the following:"};
JCM_Res.ProfileDisplay = {"ReportThisApp":"Report this App"};
JCM_Res.Common = {"Yes":"Yes","No":"No","Ok":"Ok","Attention":"Attention"};
JCM_Res.Header = {"Cancel":"Cancel / Cancelación","Continue":"Continue / Continuar"};

var jcmglobalnav = (function() {
    //HEADER PROPERTIES
    var _isie = null; //CHECK FOR IE and NOT Strict
    var isie = (function() {
        if (_isie == null) {
            var d = document.doctype
            strict = (document.compatMode == "CSS1Compat")
            strict = (d && d.systemId ? (d.systemId.indexOf("strict") > -1 ? true : (d.publicId.indexOf("transitional") > -1 ? true : false)) : (d && d.publicId.indexOf("transitional") == -1 ? true : strict))
            strict = (d && d.name.indexOf(".dtd") > -1) ? true : strict
            _isie = !strict && navigator.userAgent.indexOf('MSIE') >= 0;
        }
        return _isie;
    } ());

    var framer = null; //IFRAME Reference

    //HEADER FIELDS
    var menuTopOffset = isie ? -3 : 0;
    var menuLeftOffset = isie ? -3 : 0;
    var linkOffset = isie ? 0 : -15;
    var output = {};
    var timerOut = null;
    var menuOutTime = 250;
    var currentItemId = null;

    
    function getItems(id) {
        return {
            'child': document.getElementById('subNav' + id),
            'parent': document.getElementById('nav' + id)
        };
    }
    function fixedSub(sub, parent) {
        //FIX FOR UHP
        var d = document.getElementById('userdisplay');
        var uhpOffset = 0;
        if (d && d.className === 'module' && d.tagName === 'DIV') { uhpOffset = 1; }

        var items = sub.getElementsByTagName('LI');
        var max = 140;
        for (var i = 0; i < items.length; i++) {
            if (max < items[i].offsetWidth) { max = items[i].offsetWidth; }
        }
        if (max < parent.offsetWidth) max = parent.offsetWidth;

        sub.style.width = max + 'px';
        for (var i = 0; i < items.length; i++) {
            items[i].style.width = max + 'px';
            items[i].getElementsByTagName('A')[0].style.width = (max + linkOffset + uhpOffset) + 'px';

        }
    }
    function hideDropDown(id) {
        var subNavDropDown = getItems(id);
        subNavDropDown.parent.className = '';
        framer.style.left = '-100000px';
        framer.style.display = 'none';
        subNavDropDown.child.style.left = '-100000px';
        timerOut = null;
        currentItemId = null;
    }
    function getSubNav(id) {
        var items = getItems(id);
        var subNavDropDown = {};
        subNavDropDown.parent = items.parent;
        subNavDropDown.child = items.child;
        fixedSub(subNavDropDown.child, subNavDropDown.parent)
        var pos = Sys.UI.DomElement.getLocation(items.parent);
         subNavDropDown.childLeft = pos.x + 'px';
        subNavDropDown.childTop = (pos.y + items.parent.offsetHeight) + 'px';
        return subNavDropDown;
    }

    output.toggle = function(id, show) {
        if (show) {
            var subNavDropDown = getSubNav(id);
            //cancel the time
            if (timerOut) {
                clearTimeout(timerOut);
                timerOut = null;
            }

            //turn off previous					
            if (currentItemId != null) {
                var current = getItems(currentItemId);
                current.parent.className = '';
                framer.style.left = '-100000px';
                current.child.style.left = '-100000px';
                currentItemId = null;
            }
            //turn-on new one
            subNavDropDown.child.style.left = subNavDropDown.childLeft
            subNavDropDown.child.style.top = subNavDropDown.childTop
            subNavDropDown.parent.className = 'open';

            if (framer == null) { framer = document.getElementById('framer'); }
            framer.style.left = subNavDropDown.childLeft
            framer.style.top = subNavDropDown.childTop
            framer.style.width = subNavDropDown.child.offsetWidth + 'px'; ;
            framer.style.height = subNavDropDown.child.offsetHeight + 'px';
            framer.style.zIndex = subNavDropDown.child.style.zIndex + 1;
            framer.style.display = 'block';
            currentItemId = id;
        }
        else {
            timerOut = setTimeout(function() { hideDropDown(id); }, menuOutTime);
        }
    };
    output.subToggle = function(id, show) {

        if (show) {
            if (timerOut) {
                clearTimeout(timerOut);
                timerOut = null
            }
        }
        else {
            timerOut = setTimeout(function() { hideDropDown(id); }, menuOutTime);
        }
    }

    output.applyAlphaImageLoader = function(id, url, method) {
        var el = document.getElementById(id);
        if (el == null) return;
        var img = new Image();
        img.src = url;
        el.style.backgroundImage = 'none';
        $addHandler(window, 'load', function() {
            el.style.filter = 'progid:DXImagetransform.Microsoft.AlphaImageLoader(enabled="true", src="' + url + '", sizingMethod="' + method + '");';
        });
    }

    output.loadStrings=function(defs){
		for(var classKey in defs){
			if(!JCM_Res[classKey]){ JCM_Res[classKey]={}; }
			
			for(var resourceKey in defs[classKey]){
				JCM_Res[classKey][resourceKey]=defs[classKey][resourceKey];
			}
		}
	};
	
    //HEADER SEARCH FUNCTION & FIELDS
    var searchTypesOn = 0;
    var searchTimer = null;


    //FOOTER FUNCTION & FIELDS
    var isIntlFooterOn = false;
    var isie = navigator.userAgent.indexOf('MSIE') >= 0
    output.toggleInternationalLinks = function() {
    var internationalLinks = document.getElementById('internationalLinks');
            var intlLink = document.getElementById('intlLink');
            if (isIntlFooterOn) {
                 internationalLinks.style.visibility = 'hidden';
		    }
            else {
                var pos = Sys.UI.DomElement.getLocation(intlLink);
                if (!isie) {
                    internationalLinks.style.marginLeft = (pos.x - (internationalLinks.offsetWidth / 2) - (intlLink.offsetWidth / 2) + 25) + 'px';
                }
                else {
                    var lo = (pos.x - (internationalLinks.offsetWidth / 2) - (intlLink.offsetWidth / 2) - (document.body.offsetWidth / 2));
                    if (-lo > internationalLinks.offsetWidth) 
                        lo = lo + (document.body.offsetWidth / 2);
                    internationalLinks.style.marginLeft = lo + 'px';
                }
                internationalLinks.style.visibility = 'visible';

            }
            isIntlFooterOn = !isIntlFooterOn;
    }

    return output;

} ());	

/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////

  var searchTypesOn = 0;
  var searchTimer = null;
  var framer = null;
  
  
  function  openSearchTypes(arg)  {
        
        var isHeader = (arg.toLowerCase() === 'header');
		var searchMenuListBox = 'srchMenuListBox_' + arg;
        var searchList = document.getElementById(searchMenuListBox);
        if (searchList == null) {
           return;
        }
        searchList.className = 'open';
        var pos =Sys.UI.DomElement.getLocation(searchList);
        if (isHeader)
        {
        if (framer == null) { framer = document.getElementById('framer'); }
            if (framer) {
                framer.style.left = (pos.x ) + 'px';
                framer.style.top = (pos.y - 2) + 'px';
                framer.style.width = searchList.offsetWidth + 'px';
                framer.style.height = searchList.offsetHeight + 'px';
                framer.style.zIndex = searchList.style.zIndex + 1;
                framer.style.display = "block";
          
            }
            }
        clearTimeout(searchTimer);
        searchTimer = null;
    };	
    
   function hideSearchTypes (arg) {
        searchTimer = setTimeout(function() {
         
		  	var searchMenuListBox = 'srchMenuListBox_' + arg;
			if (document.getElementById(searchMenuListBox))
                document.getElementById(searchMenuListBox).className = '';

            if (framer == null) { framer = document.getElementById('framer'); }
            if (framer != null) { framer.style.display = "none"; }

            searchTimer = null;
        }, 500);
    };
    
    function switchSearchTypeTo( v, searchType) {
       var _after = '<small>&#9660;</small>';
       var types;
       var searchText = 'search_t_' + searchType;
	   var searchTypeValue = 'searchTypeValue_' + searchType;
	   var srchMenuListBox = 'srchMenuListBox_' + searchType;
	   var typeName = v + '_' + searchType;
        if (document.getElementById(searchText))
            document.getElementById(searchText).value = v;
		if (document.getElementById(typeName))
		{
			 if (document.getElementById(searchTypeValue))
                document.getElementById(searchTypeValue).innerHTML  =document.getElementById(typeName).innerHTML + _after;
              
		}
		      
        if (document.getElementById(srchMenuListBox))
            document.getElementById(srchMenuListBox).className = '';

        if (framer == null) { framer = document.getElementById('framer'); }
        if (framer != null) { framer.style.display = "none"; }

        clearTimeout(searchTimer);
        searchTimer = null;
    };
    
     function srchMenuList(isOn,searchType) {
        if (isOn) {
            clearTimeout(searchTimer);
            searchTimer = null;
        }
        else {
            searchTimer = setTimeout(function() {
				
				var srchMenuListBox = 'srchMenuListBox_' + searchType;
                if (document.getElementById(srchMenuListBox))
                    document.getElementById(srchMenuListBox).className = '';
                if (framer == null) { framer = document.getElementById('framer'); }
                if (framer != null) { framer.style.display = "none"; }
                searchTimer = null;
            }, 500);
        }
    };
    
