/*control maxlength of form textarea*/
/*use onkeypress=return imposeMaxLength(this, 15); in form field*/
function imposeMaxLength(Object, MaxLen)
{
  return (Object.value.length <= MaxLen);
}
/*end of form textarea script*/

/*centered popup window*/
function NewWindow(mypage, myname, w, h, scroll) {
var winl = (screen.width - w) / 2;
var wint = (screen.height - h) / 2;
winprops = 'height='+h+',width='+w+',top='+wint+',left='+winl+',scrollbars='+scroll+',resizable'
win = window.open(mypage, myname, winprops)
if (parseInt(navigator.appVersion) >= 4) { win.window.focus(); }
}
/*end of centered popup window*/

/* clear text */
function clearText(thefield){
if (thefield.defaultValue==thefield.value)
thefield.value = ""
} 

/* plus sign expansion list */
function doToggleDL(x){
    var zDD=document.getElementById('topicList').getElementsByTagName('dd');
    var zDT=document.getElementById('topicList').getElementsByTagName('dt'); 
    zDD[x].className=(zDD[x].className=='hideDD')?'showDD':'hideDD';
    zDT[x].className=(zDT[x].className=='DTplus')?'DTminus':'DTplus'; 
}
function ToggleDLopen(){//we open all of them
    var zDD=document.getElementById('topicList').getElementsByTagName('dd');
    var zDT=document.getElementById('topicList').getElementsByTagName('dt'); 
    for(var i=0;i<zDT.length;i++){
	    zDD[i].className='showDD';
	    zDT[i].className='DTminus';
    }
	return false;
}
function ToggleDLclose(){//we close all of them 
    var zDD=document.getElementById('topicList').getElementsByTagName('dd');
    var zDT=document.getElementById('topicList').getElementsByTagName('dt'); 
    for(var i=0;i<zDT.length;i++){
	   zDD[i].className='hideDD';
 	   zDT[i].className='DTplus';
    }
	return false;
}
function ToggleDL(){
    if (document.getElementById && document.getElementsByTagName){ 
	    var zDT=document.getElementById('topicList').getElementsByTagName('dt');
	    var zDD=document.getElementById('topicList').getElementsByTagName('dd');
	    var ToggleON = document.getElementById('ToggleON');
	    var ToggleOFF = document.getElementById('ToggleOFF'); 
		    if (ToggleON && ToggleOFF){
				ToggleON.onclick = ToggleDLopen;
				ToggleON.title = "Show all answers";
				ToggleON.href = "#";
			   	ToggleOFF.onclick = ToggleDLclose; 
 			   	ToggleOFF.title = "Hide all answers";
				ToggleOFF.href = "#";
			}
	    for(var i=0;i<zDT.length;i++){
    		var zContent = zDT[i].innerHTML;
		    var zHref = "<a href='#' onclick=\"doToggleDL("+i+");return false\" title='Show/hide the answer'>";
		    zDT[i].innerHTML = zHref + zContent + "</a>";
		    zDD[i].className='hideDD';
		    zDT[i].className='DTplus';
	    }
    }
}
/* end of plus sign expansion list */

/* drop down menu code */

<!--//--><![CDATA[//><!--

sfHover = function() {
    //IE was choking on null navEl, so attended this extra check 
    //Kiran Bheemarti.
    var navEl = document.getElementById("nav");

    if(navEl)
    {
	    var sfEls = navEl.getElementsByTagName("LI");

	    for (var i=0; i<sfEls.length; i++) {
		    sfEls[i].onmouseover=function() {
			    this.className+=" sfhover";
		    }
		    sfEls[i].onmouseout=function() {
			    this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
		    }
	    }
    }
}

if (window.attachEvent) window.attachEvent("onload", sfHover);


//--><!]]>

/* virtual tour mouseover image text */
function changeBack(val) {
document.getElementById("tourText").innerHTML = val;
}
function changeText(val) {
document.getElementById("tourText").innerHTML = val;
}

/* dynamic SearchField code */
this.searchfield = function(){

// id of search field that script works on 
var id = "QUERY";
var defaultText = "enter text...";	

// set to either true or false - true generates list below
var suggestion = true;
	
// static list of suggestion options, separated by comma
var suggestionText = "360 degree feedback, 12 Leader Competencies, 360 BY DESIGN, accountability, action learning, active listening, adaptability, address, AGL, airport, AMI Association for Managers of Innovation, annual report, APEX Awareness Program for Executive Excellence, articles, assessments, authenticity, Becoming A Strategic Leader, Benchmarks , benefits, Board, books, Brussels, Building Character: Strengthening the Heart of Good Leadership, Canada, cancellation policy, career development, careers, catalog, CCL UPDATE, Center Connection, CEO succession, certification, change, change management, CHP - Catholic Healthcare Partners, CIO, coach, coaching, Coaching for Development, collaboration, collaborative leadership, Colorado Springs, communication, communication skills, competencies, complex challenges, conflict, conflict dynamics, Conflict Guidebook Package, conflict management, consulting, contact, courses, creative leadership, creativity, crisis, crisis leadership, culture, customer service, dates & registration, decision making, delegation, derailment, development, development plan, Developmental Assignments, digital publication, directions driving, diversity, eBooks, educating leaders, effective leadership, Eighty-eight Assignments for Development in Place, emerging leaders, emotional intelligence, employee engagement, employment, empowerment, eNewsletter, ethics, everyday leaders, executive, executive coaching, executive development, Executive Dimensions, executive education, executive selection, explorer cards, Visual Explorer, faculty, Family Ties: Managers Can Benefit from Personal Lives, feedback, 360 degree, female, fitness, for your improvement, forceful leadership, Foundations of Leadership, Four Essential Ways That Coaching Can Help Executives, fragile states, FYI For Your Improvement, gender, generation, glass, glass ceiling, global, global leadership, goals, government, grant, Greensboro, guidebooks, Handbook of Leadership Development, Hartford, high potential, human resources, IAS, Ideas into Action guidebooks, impact , Improve Your Political Skill, India, influence, innovation, instruments, Internet Assessment System (IAS), interview, Is a Good Boss a Bully?, Japan, job, John Alexander, John Ryan, KEYS, LAD - Leadership Across Differences, LDP , LEAD, Leader's Edge, leadership, Leadership at the Peak, leadership challenges, leadership competencies, leadership development, Leadership Development Program, leadership education, leadership networking, leadership stature, leading dispersed teams, leading effectively, Leading with Authenticity in Times of Transition, learning, learning through experience, listening, location, looking glass, Looking Glass Experience, management, managers, managing conflict, MBTI, mentoring, mergers, motivation, myCCL, newsletter, online, podcasts, politics, research, resiliency, retention, Retiring the Generation Gap, San Diego, scholarships, setting priorities, SKILLSCOPE, speakers & events, spirit, staff, strategic leadership, strategic planning , strategic thinking, strategy, stress, study, succession planning, talent,  talent management, team,  team building, changing nature of leadership, time management, transition, trust, tuition,  tuition fees, turnover, virtual teams, vision, Visual Explorer, Webinars, women , Women's Leadership Program, work/life balance, youth, youth leadership"; 

var field = document.getElementById(id);	
var classInactive = "sf_inactive";
var classActive = "sf_active";
var classText = "sf_text";
var classSuggestion = "sf_suggestion";
this.safari = ((parseInt(navigator.productSub)>=20020000)&&(navigator.vendor.indexOf("Apple Computer")!=-1));
	if(field && !safari){
		field.value = defaultText;
		field.c = field.className;		
		field.className = field.c + " " + classInactive;
		field.onfocus = function(){
			this.className = this.c + " "  + classActive;
			this.value = (this.value == "" || this.value == defaultText) ?  "" : this.value;
		};
		field.onblur = function(){
			this.className = (this.value != "" && this.value != defaultText) ? this.c + " " +  classText : this.c + " " +  classInactive;
			this.value = (this.value != "" && this.value != defaultText) ?  this.value : defaultText;
			clearList();
		};
		if (suggestion){			
			var selectedIndex = 0;						
			field.setAttribute("autocomplete", "off");
			var div = document.createElement("div");
			var list = document.createElement("ul");
			list.style.display = "none";
			div.className = classSuggestion;
			list.style.width = field.offsetWidth + "px";
			div.appendChild(list);
			field.parentNode.appendChild(div);	
			
//    On KeyPress = Enter logic is now not needed, as on Enter we have a onkeypress logic below now to call googleCustom Search
//    Kiran Bheemarti. 
			
//			field.onkeypress = function(e){				
//				var key = getKeyCode(e);
//		
//				if(key == 13){ // enter
//					selectList();
//					selectedIndex = 0;
//					return false;
//				};	
//			};
     
			field.onkeyup = function(e){			
				var key = getKeyCode(e);		
				switch(key){
				case 13:
					return false;
					break;			
				case 27:  // esc
					field.value = "";
					selectedIndex = 0;
					clearList();
					break;				
				case 38: // up
					navList("up");
					break;
				case 40: // down
					navList("down");		
					break;
				default:
					startList();			
					break;
				};
			};
			
			this.startList = function(){
				var arr = getListItems(field.value);
				if(field.value.length > 0){
					createList(arr);
				} else {
					clearList();
				};	
			};
			
			this.getListItems = function(value){
				var arr = new Array();
				var src = suggestionText;
				var src = src.replace(/, /g, ",");
				var arrSrc = src.split(",");
				for(i=0;i<arrSrc.length;i++){
					if(arrSrc[i].substring(0,value.length).toLowerCase() == value.toLowerCase()){
						arr.push(arrSrc[i]);
					};
				};				
				return arr;
			};
			
			this.createList = function(arr){				
				resetList();			
				if(arr.length > 0) {
					for(i=0;i<arr.length;i++){				
						li = document.createElement("li");
						a = document.createElement("a");
						a.href = "javascript:void(0);";
						a.i = i+1;
						a.innerHTML = arr[i];
						li.i = i+1;
						li.onmouseover = function(){
							navListItem(this.i);
						};
						a.onmousedown = function(){
							selectedIndex = this.i;
							selectList(this.i);		
							SearchSite( id, document.getElementsByName('hdnEnv')[0].value, null);    //Kiran Bheemarti.
							return false;
						};					
						li.appendChild(a);
						list.setAttribute("tabindex", "-1");
						list.appendChild(li);	
					};	
					list.style.display = "block";				
				} else {
					clearList();
				};
			};	
			
			this.resetList = function(){
				var li = list.getElementsByTagName("li");
				var len = li.length;
				for(var i=0;i<len;i++){
					list.removeChild(li[0]);
				};
			};
			
			this.navList = function(dir){			
				selectedIndex += (dir == "down") ? 1 : -1;
				li = list.getElementsByTagName("li");
				if (selectedIndex < 1) selectedIndex =  li.length;
				if (selectedIndex > li.length) selectedIndex =  1;
				navListItem(selectedIndex);
			};
			
			this.navListItem = function(index){	
				selectedIndex = index;
				li = list.getElementsByTagName("li");
				for(var i=0;i<li.length;i++){
					li[i].className = (i==(selectedIndex-1)) ? "selected" : "";
				};
			};
			
			this.selectList = function(){
			  
			  if(selectedIndex == 0) return true;  //Kiran Bheemarti
			     
				li = list.getElementsByTagName("li");	
				a = li[selectedIndex-1].getElementsByTagName("a")[0];
				field.value = a.innerHTML;
				clearList();
			};	
		};
	};
	
	this.clearList = function(){
		if(list){
			list.style.display = "none";
			selectedIndex = 0;
		};
	};		
	this.getKeyCode = function(e){
		var code;
		if (!e) var e = window.event;
		if (e.keyCode) code = e.keyCode;
		return code;
	};	
};

// script initiates on page load. 
this.addEvent = function(obj,type,fn){
	if(obj.attachEvent){
		obj['e'+type+fn] = fn;
		obj[type+fn] = function(){obj['e'+type+fn](window.event );}
		obj.attachEvent('on'+type, obj[type+fn]);
	} else {
		obj.addEventListener(type,fn,false);
	};
};
addEvent(window,"load",searchfield);
/* end of SearchField code */


/*Google Search JavaScript*/
// Function retrieved from: http://cass- hacks.com/articles/code/js_url_encode_decode/  

function URLEncode (clearString) {  
  var output = '';  
  var x = 0;  
  clearString = clearString.toString();  
  var regex = /(^[a-zA-Z0-9_.]*)/;  
  while (x < clearString.length) {  
    var match = regex.exec(clearString.substr(x));  
    if (match != null && match.length > 1 && match[1] != '') {  
        output += match[1];  
      x += match[1].length;  
    } else {  
      if (clearString[x] == ' ')  
        output += '+';  
      else {  
        var charCode = clearString.charCodeAt(x);  
        var hexVal = charCode.toString(16);  
        output += '%' + ( hexVal.length < 2 ? '0' : '' ) + hexVal.toUpperCase();  
      }  
      x++;  
    }  
  }  
  return output;  
}  

// Retrieved from: http://www.htmlcodetutorial.com/forms/index_famsupp_157.html  
function SubmitOnEnter(myField, e, link, filter)  
{  
    var keycode;  
    if (window.event)  
        keycode = window.event.keyCode;  
    else if (e)  
        keycode = e.which;  
    else  
        return true;  
        
    if (keycode == 13)  
    { 
        selectList();
        SearchSite(myField, link, filter);  
        return false;  
    }  
    else  
        return true;  
}

function SearchSite(myField, link, filter) {

    if (filter != null) {
        document.location.href = link + '/leadership/CCLSearchResults.aspx?&sa=Search&q=' + URLEncode(document.getElementsByName(myField.valueOf())[0].value) + '+more%3A' + filter.valueOf() + '&start=0&num=10';
    } else {        
        document.location.href = link + '/leadership/CCLSearchResults.aspx?&sa=Search&q=' + URLEncode(document.getElementsByName(myField.valueOf())[0].value) + '&start=0&num=10';
    }
}  
/*Google Search JavaScript Ends*/

