
/***********************************************
* Show Hint script- © Dynamic Drive (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit http://www.dynamicdrive.com/ for this script and 100s more.
***********************************************/
		
var horizontal_offset="9px" //horizontal offset of hint box from anchor link

/////No further editting needed

var vertical_offset="0" //horizontal offset of hint box from anchor link. No need to change.
var ie=document.all
var ns6=document.getElementById&&!document.all

function getposOffset(what, offsettype){
	var totaloffset=(offsettype=="left")? what.offsetLeft : what.offsetTop;
	var parentEl=what.offsetParent;
	while (parentEl!=null){
		totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
		parentEl=parentEl.offsetParent;
	}
	return totaloffset;
}

function iecompattest(){
	return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function clearbrowseredge(obj, whichedge){
	var edgeoffset=(whichedge=="rightedge")? parseInt(horizontal_offset)*-1 : parseInt(vertical_offset)*-1
	if (whichedge=="rightedge"){
		var windowedge=ie && !window.opera? iecompattest().scrollLeft+iecompattest().clientWidth-30 : window.pageXOffset+window.innerWidth-40
		dropmenuobj.contentmeasure=dropmenuobj.offsetWidth
		if (windowedge-dropmenuobj.x < dropmenuobj.contentmeasure)
			edgeoffset=dropmenuobj.contentmeasure+obj.offsetWidth+parseInt(horizontal_offset)
	}
	else{
		var windowedge=ie && !window.opera? iecompattest().scrollTop+iecompattest().clientHeight-15 : window.pageYOffset+window.innerHeight-18
		dropmenuobj.contentmeasure=dropmenuobj.offsetHeight
		if (windowedge-dropmenuobj.y < dropmenuobj.contentmeasure)
			edgeoffset=dropmenuobj.contentmeasure-obj.offsetHeight
	}
	return edgeoffset
}

function clearbrowseredgehint(obj, whichedge){
	var edgeoffset=(whichedge=="rightedge")? parseInt(horizontal_offset)*-1 : parseInt(vertical_offset)*-1
	if (whichedge=="rightedge"){
		var windowedge=ie && !window.opera? iecompattest().scrollLeft+iecompattest().clientWidth-30 : window.pageXOffset+window.innerWidth-40
		dropmenuobjhint.contentmeasure=dropmenuobjhint.offsetWidth
		if (windowedge-dropmenuobjhint.x < dropmenuobjhint.contentmeasure)
			edgeoffset=dropmenuobjhint.contentmeasure+obj.offsetWidth+parseInt(horizontal_offset)
	}
	else{
		var windowedge=ie && !window.opera? iecompattest().scrollTop+iecompattest().clientHeight-15 : window.pageYOffset+window.innerHeight-18
		dropmenuobjhint.contentmeasure=dropmenuobjhint.offsetHeight
		if (windowedge-dropmenuobjhint.y < dropmenuobjhint.contentmeasure)
			edgeoffset=dropmenuobjhint.contentmeasure-obj.offsetHeight
	}
	return edgeoffset
}

function showhint(menucontents, obj, e, tipwidth){
	if ((ie||ns6) && document.getElementById("hintbox")){
		dropmenuobjhint=document.getElementById("hintbox")
		dropmenuobjhint.innerHTML=menucontents
		dropmenuobjhint.style.left=dropmenuobjhint.style.top=-500
		if (tipwidth!=""){
			dropmenuobjhint.widthobj=dropmenuobjhint.style
			dropmenuobjhint.widthobj.width=tipwidth
		}
		dropmenuobjhint.x=getposOffset(obj, "left")
		dropmenuobjhint.y=getposOffset(obj, "top")
		dropmenuobjhint.style.left=dropmenuobjhint.x-clearbrowseredgehint(obj, "rightedge")+obj.offsetWidth+"px"
		dropmenuobjhint.style.top=dropmenuobjhint.y-clearbrowseredgehint(obj, "bottomedge")+"px"
		dropmenuobjhint.style.visibility="visible"
		obj.onmouseout=hidetip
	}
}

function hidetip(e){
	dropmenuobjhint.style.visibility="hidden"
	dropmenuobjhint.style.left="-500px"
}

var dropmenuobj = null;
var dropmenuobjhint = null;
var dmo_text = null;

// the following array is used to maintain the state of the customized select boxes - for example the text like "Business Activity (2)"
// it is used as a hash table of keys (the id of the span) and the text to display in the span
// this array is stored to a cookie
var af = new Array();

function hideflyout(flyoutTitle, maxLength, showAll)
{
    if (maxLength == 0) { maxLength = 24; };
    
	if (showAll == undefined) { showAll = true;  }
	
	cb_string = "";
	if(dropmenuobj)
	{
	    if(dmo_text != null)
		{
			var cb = dropmenuobj.getElementsByTagName("input");
			
			var cbs = new Array();
			var j = 0;
			for(i = 0; i < cb.length; i++)
			{
			    if((cb[i].type=="checkbox" || cb[i].type=="radio" )) { cbs[j++] = cb[i]; }
            }			
			
			cb = cbs;
			l = dropmenuobj.getElementsByTagName("label");
			cb_count = 0;
			for(i = 0; i < cb.length; i++)
			{
				if((cb[i].type=="checkbox" || cb[i].type=="radio" ) && cb[i].checked) 
				{
				    cb_count++;
				    cb_string = l[i].innerHTML;
				}
			}
			
			if(cb_count == 1)
			{
			    if (cb_string.length > maxLength)
			    {
			        cb_string = cb_string.substring(0, maxLength);
			    }
			    dmo_text.innerHTML = cb_string;
			    dmo_text.className = "fancySelectTextHighlighted";
			}
			else if (cb_count > 1)
			{
				dmo_text.innerHTML = flyoutTitle + " (" + cb_count + ")";
				dmo_text.className = "fancySelectTextHighlighted";
				
			}
            else
            {
                if (cb.length == 0 ||  !showAll)
                {
				    dmo_text.innerHTML = flyoutTitle;
				}
				else
				{
				    dmo_text.innerHTML = flyoutTitle + " (All)";
				}
				dmo_text.className = "fancySelectText";
			}

			af[dmo_text.id] = dmo_text.innerHTML;    
		}
		dropmenuobj.style.visibility = "hidden";
		dropmenuobj.style.left = "-500px";
		dmo_text = null;
	}
}

function createhintbox(){
	var divblock=document.createElement("div")
	divblock.setAttribute("id", "hintbox")
	document.body.appendChild(divblock)
}

if (window.addEventListener)
window.addEventListener("load", createhintbox, false)
else if (window.attachEvent)
window.attachEvent("onload", createhintbox)
else if (document.getElementById)
window.onload=createhintbox

function showflyout(flyout, obj, e, tipwidth){
	if ((ie||ns6) && flyout)
	{
	    hideflyout();
		var s = obj.getElementsByTagName("span");
		dmo_text = s[0];
		
		dropmenuobj=flyout
		dropmenuobj.style.left=dropmenuobj.style.top=-500
		
		if (tipwidth!=""){
			dropmenuobj.widthobj=dropmenuobj.style
			dropmenuobj.widthobj.width=tipwidth
		}
		dropmenuobj.x=getposOffset(obj, "left");
		dropmenuobj.y=getposOffset(obj, "top");

        if(dropmenuobj.x > (1000-tipwidth))
        {
            dropmenuobj.x = 1000 - tipwidth;
        }
		dropmenuobj.style.left=dropmenuobj.x+"px";
		dropmenuobj.style.top=dropmenuobj.y+"px";

		dropmenuobj.style.zindex = 100;
		dropmenuobj.style.visibility="visible";
		//
		saveSelection();
	}
}


function checkAll(name)
{
	var e = document.forms[1].elements;
	for(i = 0; i < e.length; i++)
		if(e[i].name == name && e[i].type == "checkbox")
			e[i].checked = !e[i].checked;
	e[name+"_all"].checked = false;
}


// this function validates for submissions and is used to save form state for restoration on reload
// the form state is stored in a cookie or name value pairs
function validateForm(f)
{
	for(i = 0; i < f.elements.length; i++)
	{
		if(f.elements[i].name.toLowerCase().indexOf("txtsearch") > -1)
		{
			if(f.elements[i].value != "")
			{
				if (/^[a-z\s\d]*$/i.test(f.elements[i].value))
				{
				}
				else
				{
					alert('Keyword search can only contain letters and numbers.');
					return false;
				}
			}
		}
	}
	var a = new Array();
	var b = false;
	for(i = 0; i < f.elements.length; i++)
	{
	    //just a little trick to ensure only specific elements in a page get stored in the cookie.
	    if(f.elements[i].id == "hidBeginForm")
	    {
	        b = true;
	    }else if(f.elements[i].id =="hidEndForm")
	    {
	        b = false;
	    }
	    
	    if(b)
	    {	        
		    if(f.elements[i].type == "radio" || f.elements[i].type == "checkbox")
		    {
		        // save only checked controls
		        if (f.elements[i].checked)
		        {
			        a[a.length] = f.elements[i].name + ">" + f.elements[i].checked	
			    }
			}
		
		
		    if(f.elements[i].type == "select-one")
		    {
			    a[a.length] = f.elements[i].name + ">" + f.elements[i].selectedIndex;	
		    }
		  
		    if(f.elements[i].type == "select-multiple")
		    {
			    values = "";
		        delim = "";
			    for(j = 0; j < f.elements[i].options.length; j++)
			    {
			        if(f.elements[i].options[j].selected)
			        {
			            values += delim + f.elements[i].options[j].value;
                        delim = "|";
			        }
			                   
			    }
			    a[a.length] = f.elements[i].name + ">" + values;
		    }
		
		    if(f.elements[i].type == "text")
		    {
			    a[a.length] = f.elements[i].name + ">" + f.elements[i].value;	
		    }
		   
		}
	}

	for(i in af)
	{
		a[a.length] = i + ">" + af[i];
	}

	var expdate = new Date();
	FixCookieDate(expdate);
	expdate.setTime (expdate.getTime() + (24 * 60 * 60 * 1000 * 365));
	var s = a + "";

	go = true;
	for(i = 0; i <= s.length / 3800; i++)
	{
		s2 = s.substr(i * 3800, 3800);
		SetCookie("Privaworks_Form_Inforamation_" + i, s2, expdate, "/");
	} 
	SetCookie("Privaworks_Form_Inforamation_"+i, "EOC", expdate, "/");
	return true;
}

function clearFormCookie()
{
	var expdate = new Date();
	FixCookieDate(expdate);
	expdate.setTime (expdate.getTime() + (24 * 60 * 60 * 1000 * 365));
	for(i = 0; i < 20; i++)
		SetCookie("Privaworks_Form_Inforamation_"+i, "", expdate, "/");
}


function FixCookieDate (date) {
     var base = new Date(0);
     var skew = base.getTime();
     if (skew > 0)
         date.setTime (date.getTime() - skew);
}
function SetCookie(name, value, expires, path, domain, secure) {
    
    document.cookie = name + "=" + value +
         ((expires) ? "; expires=" + expires.toGMTString() : "") +
         ((path) ? "; path=" + path : "") +
         ((domain) ? "; domain=" + domain : "") +
         ((secure) ? "; secure" : ""); 
                  
}
function getCookieVal(offset) {
     var endstr = document.cookie.indexOf (";", offset);
     if (endstr == -1)
         endstr = document.cookie.length;
     return unescape(document.cookie.substring(offset, endstr));
}
function GetCookie(name) {

   var arg = name + "=";
   var alen = arg.length;
   var clen = document.cookie.length;
   var i = 0;   
   while (i < clen) {
     var j = i + alen;
     if (document.cookie.substring(i, j) == arg)
       return getCookieVal (j);
     i = document.cookie.indexOf(" ", i) + 1;
     if (i == 0) break;
   }
   return null;
}
function DeleteCookie(name,path,domain) {
   if (GetCookie(name)) {
     document.cookie = name + "=" +
       ((path) ? "; path=" + path : "") +
       ((domain) ? "; domain=" + domain : "") +
       "; expires=Thu, 01-Jan-70 00:00:01 GMT";
   }
}

// this function restores the state of the forms from a cookie of name value pairs
// checkboxes, radio buttons and the text state of the customized combo boxes are restored from here
function loadForm()
{
     
	cookieNumber = 0;
	availCookies = true;	
	a = "";

	while(availCookies)
	{
	    a2 = GetCookie("Privaworks_Form_Inforamation_"+cookieNumber);
	    if(a2 == "EOC")
		    availCookies = false;
	    else
		    a += a2;
    	
	    if(cookieNumber > 20)
	       availCookies = false;
    	
	    cookieNumber++;
	}
    
	e = document.forms[0].elements;
		
	if(a != null)
	{
		a = a.split(",");
		for(i = 0; i < a.length; i++)
		{
			b = a[i].split(">");
			if(e[b[0]] != null)
			{
				if(e[b[0]].type == "checkbox" || e[b[0]].type == "radio")
				{
					if(b[1] == "true")
						e[b[0]].checked = true;
					else
						e[b[0]].checked = false;
				}
				if(e[b[0]].type == "select-one")
				{
				   
					e[b[0]].selectedIndex = b[1];
				}
				
				if((e[b[0]].type == "select-multiple"))
				{
				    values = b[1].split("|");
				    control = e[b[0]];
				    for(j = 0; j < values.length; j++)
				    {
				        for(k = 0; k < control.options.length; k++)
				        {
				            if(control.options[k].value == values[j])
				                control.options[k].selected = true;
				        }
				    }
				}
				
				if(e[b[0]].type == "text")
				{
					e[b[0]].value = b[1];
				}
			}
			else
			{
				o = document.getElementById(b[0]);
				if(o != null)
				{
					o.innerHTML = b[1];
					af[b[0]] = b[1];
					if ( o.innerHTML.indexOf("(All)") < 0)
					{
					    o.className = "fancySelectTextHighlighted";
					}
				}
			}
		}
	}
}


function loadFormSC()
{
	cookieNumber = 0;
	availCookies = true;	
	a = "";
    	while(availCookies)
    	{
		a2 = GetCookie("Privaworks_Form_Inforamation_"+cookieNumber);
		if(a2 == "EOC")
			availCookies = false;
		else
			a += a2;
			
		if(cookieNumber > 20)
		   availCookies = false;
		   
		cookieNumber++;
    	}
	e = document.forms[0].elements;
	if(a != null)
	{
		a = a.split(",");
		for(i = 0; i < a.length; i++)
		{
			b = a[i].split(">");
			if(e[b[0]] != null)
			{
				if(e[b[0]].type == "checkbox" || e[b[0]].type == "radio" && e[b[0]].name != "ctl08$cbCanadaSC"  &&  e[b[0]].name !="ctl08$cbUsaSC")
				{
					if(b[1] == "true")
						e[b[0]].checked = true;
					else
						e[b[0]].checked = false;
				}
				if(e[b[0]].type == "select-one")
				{
					e[b[0]].selectedIndex = b[1];
				}
				
				if(e[b[0]].type == "text")
				{
					e[b[0]].value = b[1];
			    }   
			}
			else
			{
				o = document.getElementById(b[0]);
				if(o != null)
				{
					o.innerHTML = b[1];
					af[b[0]] = b[1];
					if ( o.innerHTML.indexOf("(All)") < 0)
					{
					    o.className = "fancySelectTextHighlighted";
					}
					
				}
			}
		}
	}
}

//Eric:Nov 19:Used by BaseLayout.aspx
function validateForm1(f)
{
	for(i = 0; i < f.elements.length; i++)
	{
		if(f.elements[i].name.toLowerCase().indexOf("txtsearch") > -1)
		{
			if(f.elements[i].value != "")
			{
				if (/^[a-z\s\d]*$/i.test(f.elements[i].value))
				{
				}
				else
				{
					alert('Keyword search can only contain letters and numbers.');
					return false;
				}
			}
		}
	}
	
	return true;
}

//Eric:Aug 12: used by BusinessActivityCategory.ascx
function getQtyCheckedBoxes(category, nodeid)
{
    var node = document.getElementById(nodeid);
    var qtyChk = 0;    
    var chks = node.getElementsByTagName('input');
    for(i = 0; i < chks.length; i++)
    {
        if(chks[i].type=="checkbox" && chks[i].checked)
        {
            qtyChk++;
        }
    }
    var cnt = document.getElementById('cnt_' + category);
    if(qtyChk>0) {
        cnt.innerHTML = '(' + qtyChk +')';
    }
    else {
        cnt.innerHTML = ''; 
    }
}

//Eric:Aug 13: used by BusinessActivityCategoryRadio.ascx
function clearRadioButtons(selected)
{
    var node = document.getElementById("ba_radios");
    var btns = node.getElementsByTagName('input');
    for(i = 0; i < btns.length; i++)
    {
        if(btns[i].type=="radio" && btns[i].checked && btns[i].id!=selected.id)
        {
            btns[i].checked = false;
        }
    }
}

//Eric:Aug 15: used by autocomplete extenders
function autocompleteItemPopulated(source, eventArgs)
{
	if (source._currentPrefix != null)
	{
		var list = source.get_completionList();
		var search = source._currentPrefix.toLowerCase();
		for (var i = 0; i < list.childNodes.length; i++)
		{
			var text = list.childNodes[i].innerHTML; 
			var index = text.toLowerCase().indexOf(search);
			if (index != -1)
			{
				var value = text.substring(0, index);
				value += '<span class="autoComplete_listitemhilitetext">';
				value += text.substr(index, search.length);
				value += '</span>';
				value += text.substring(index + search.length);
				list.childNodes[i].innerHTML = value;
			}
		}
	}
}
function autocompleteItemSelected(source, e)
{
    var node;
    var value = e.get_value();
    if (value) node = e.get_item();
    else
    {
        value = e.get_item().parentNode._value;
        node = e.get_item().parentNode;
    }
    var text = (node.innerText) ? node.innerText : (node.textContent) ? node.textContent : node.innerHtml;
	source.get_element().value = text;
}

//Eric:Aug 19 for client side cancel button
function fireOnClick(element) 
{   
    if(element==null || !element.onclick) return;
    
    //For firing the click event.   
    if (document.createEventObject) {   
         // dispatch for IE   
         var evt = document.createEventObject();   
         return element.fireEvent('on' + 'click', evt)   
    }   
    else {   
        // dispatch for firefox + others   
        var evt = document.createEvent("HTMLEvents");   
        evt.initEvent('click', true, true); // event type,bubbling,cancelable   
        return !element.dispatchEvent(evt);   
    }   
}   

var sel;

function saveSelection()
{
    sel=[];
    if(dropmenuobj)
	{
	    var cb = dropmenuobj.getElementsByTagName("input");
		var j = 0;
		for(i = 0; i < cb.length; i++)
		{
		    if((cb[i].type=="checkbox" || cb[i].type=="radio" ) && cb[i].checked) { sel[j++] = cb[i]; }
        }	
    }
}

function cancelSelection(flyoutTitle)
{
	var cb = dropmenuobj.getElementsByTagName("input");
	for(i = 0; i < cb.length; i++)
	{
	    if((cb[i].type=="checkbox" || cb[i].type=="radio" )) { cb[i].checked = false; }
    }	

    if(sel && sel.length>0) 
    for(i = 0; i<sel.length; i++)
    {
        if((sel[i].type=="checkbox" || sel[i].type=="radio" )) { sel[i].checked = true; }
    }
    var tbl = dropmenuobj.getElementsByTagName("table");
	for(ii = 0; ii < tbl.length; ii++)
	{
	    if(tbl[ii].onclick) { fireOnClick(tbl[ii]) }
    }   
    hideflyout(flyoutTitle, 24);
}
//