// Handle Jobfunction/Industry suggestions based on title/company
jQuery( function($) {
});


function guesttoggle(status) {
	var div = document.getElementById('guestreply');
	var div2 = document.getElementById('rsvp2');
    
    if (status == "1") //hide guest field (or leave it hidden) if not attending
    {
        if (div.className == 'hide') { div.className = 'show'; }
        if (div2.className == 'hide') { div2.className = 'show'; }
    }
    else //show guest field otherwise
    {
        if (document.location.hash.substring(1) == 'guestbox') { div.className = 'hide'; }
        if (div2.className == 'show') { div2.className = 'hide'; }
    }
}

function checkall(field) {
	for (i = 0; i < field.elements.length; i++) {
		if (field.elements[i].type == 'checkbox')
			field.elements[i].checked = true;
	}
}

function uncheckall(field) {
        for (i = 0; i < field.elements.length; i++) {
                if (field.elements[i].type == 'checkbox')
                        field.elements[i].checked = false;

        }
}

function checkUncheck(field,checked) {
    for (i = 0; i < field.elements.length; i++) {
        if (field.elements[i].type == 'checkbox') 
            field.elements[i].checked = checked;
    }
}

function popup(mylink, windowname) {
	if (! window.focus)return true;
	var href;
	if (typeof(mylink) == 'string')
   	href=mylink;
	else
   	   href=mylink.href;
	window.open(href, "windowname", "width=500,height=300,scrollbars=yes,resizable=1,menubar=1");
	return false;
}

function toggleLayer(whichLayer, link, forceTo)
{
	if (document.getElementById)
	{
		// this is the way the standards work
		var style2 = document.getElementById(whichLayer).style;
        if ( forceTo != null ) {
            style2.display = forceTo;
        } else {
    		style2.display = (style2.display == 'block') ? 'none':'block';
        }
	}
	else if (document.all) {
        // this is the way old msie versions work
        var style2 = document.all[whichLayer].style;
        if ( forceTo != null ) {
            if ( forceTo == 'none' ) {
                style2.display = '';
            } else {
                style2.display = forceTo;
            }
        } else {
    		style2.display = style2.display? '' : 'block';
        }
	}
	else if (document.layers)
	{
		// this is the way nn4 works
		var style2 = document.layers[whichLayer].style;
        if ( forceTo != null ) {
            style2.display = forceTo;
        } else {
    		style2.display = style2.display? '' : 'block';
        }
	}
    if ( link != null ) {
    	link.blur();
    }
	return false;
}

function swaplayers(id) {
	var div = document.getElementById(id);
	if (div.className == 'show') { div.className = 'hide'; }
	else { div.className = 'show'; }
}

// Julia was here.
// Element has to be a select.
function swaplayer_clearform(id, formName, selectName)
{
    var div = document.getElementById(id);
    var blank = new Option('-select-', 0, true, true);
    var first = document.forms[formName].elements[selectName].options[0];
    var length = document.forms[formName].elements[selectName].options.length;
    
    if (div.className == 'show') 
    { 
        div.className = 'hide';
         
        for(var i = length; i > 0; i--)
        {
            var temp =  document.forms[formName].elements[selectName].options[i-1];
            document.forms[formName].elements[selectName].options[i] = new Option(temp.text, temp.value, false, false);    
        }
        
        document.forms[formName].elements[selectName].options[0] = blank;
      
    }
    else
    {  
        div.className = 'show';
    
        if(first.text == blank.text)
        {
            for(var i=0; i < length - 1; i++)
            {
                var temp = document.forms[formName].elements[selectName].options[i+1];
                document.forms[formName].elements[selectName].options[i] = new Option(temp.text, temp.value, false, false);
             }
        
            document.forms[formName].elements[selectName].options[length -1] = null;
        }
    }
    
   //alert("value = " + document.forms[formName].elements[selectName].value);
}

function mwaplayersstyle(id) {
    var div = document.getElementById(id);
    if (div.style.display == 'none') { 
        div.style.display="block";
    }else {
        div.style.display = 'none'; 
    }
}
function mwapall() {
	var thelink = document.getElementById('expand');
	var expand = 0;
	if (thelink.innerHTML == 'Expand All') {
		thelink.innerHTML = 'Collapse All';
		expand = 1;
	}
	else {
		thelink.innerHTML = 'Expand All';
	}
	thelink.blur();
	var thedivs = document.getElementsByTagName('div');
	for (i = 0; i < thedivs.length; i++) {
    if (thedivs[i].id.match("show|hide")) {
		if (thedivs[i].className == 'hidden') {
			if (expand) {
				thedivs[i].style.display = 'block';
				thedivs[i].style.visibility = 'visible';
			}
			else {
				thedivs[i].style.display = 'none';
				thedivs[i].style.visibility = 'hidden';
			}
		}
		else if (thedivs[i].className == 'visible') {
			if (expand) {
				thedivs[i].style.display = 'none';
				thedivs[i].style.visibility = 'hidden';
			}
			else {
				thedivs[i].style.display = 'block';
				thedivs[i].style.visibility = 'visible';
			}
		}
    }
	}
}

function showfilter(selected) {
	var gfilteron =	document.getElementById('gfilteron').style;
	var gfilteroff = document.getElementById('gfilteroff').style;
	if (selected) {
		gfilteron.display = 'block';
		gfilteron.visibility = 'visible';
		gfilteroff.display = 'none';
		gfilteroff.visibility = 'hidden';
	}
	else {
                gfilteroff.display = 'block';
                gfilteroff.visibility = 'visible';
                gfilteron.display = 'none';
                gfilteron.visibility = 'hidden';	
	}
}

function mapChange(objSelect) {
	var objOpt;
	if (objSelect.selectedIndex<0) return false;
	objOpt = objSelect.options[objSelect.selectedIndex];
	if (objSelect.name == 'industry') {
		filters['industry'] = objOpt.value;
	}
	else if (objSelect.name == 'friend') {
		filters['friend'] = objOpt.value;
	}
	map.removeAllMarkers();
	markers = {};
	for (i = 0; i < points.length; i++) {
		if (points[i][4] <= filters['friend']) {
			if (filters['industry'] != 0) {
				if (points[i][2] == objOpt.value) {
					addNewMarker(points[i]);
				}
				else {
					/*map.removeMarker(markers[points[i][0]]);*/
				}
			}
			else {
				addNewMarker(points[i]);
			}
		}
	}	
	
}

function dofilters(objSelect) {
	var objOpt;
	var radvalue;	
	if (objSelect.type == 'radio') {
		radvalue = objSelect.value;
	}
	else {
		if (objSelect.selectedIndex<0) return false;
		objOpt = objSelect.options[objSelect.selectedIndex];
	}
	var currURL = window.location.href;
	var anchor = currURL.replace(/.*(\#.*)/,"$1");
	if (anchor == currURL) {
		anchor = "";
	}
	currURL = currURL.replace(anchor,"");
	var params = currURL.replace(/.*\?(.*)/,"$1");
	var newURL = currURL.replace(/(.*)\?(.*)/,"$1");
	if (params == currURL) {
		params = '';
	}
	var tokens = params.split("&");
	var list = {};
	for (i = 0; i < tokens.length; i++) {
		var paramname = tokens[i].replace(/(.*)=.*/,"$1");
		var paramval = tokens[i].replace(/.*=(.*)/,"$1");
		if (paramval != '') {
			list[paramname] = paramval;
		}
	}
	var name = objSelect.name;
	list[name] = (objSelect.type == 'radio') ? radvalue : objOpt.value;
	var newparams = '';
	for (var i in list) {
		if (!(i.match(/start/) || i.match(/page/))) {
			newparams += i+"="+list[i]+"&";
		}
	}
	newparams = newparams.replace(/&$/,"");
        window.location.href = newURL + "?" + newparams + anchor; 
}

//---------------------------
function startshow(imageset,captionset) {
	tokens = imageset.split("|");
	captokens = captionset.split("|");
	imagelist = new Array(tokens.length);
	for (i = 0; i < tokens.length; i++) {
	  imagelist[i] = "<img src=\"" + tokens[i] + "\" alt=\"image\"\">";
	}

  timesetup = 4000; // delay in milliseconds
  index = 0; //start with the 1st image

  type = "IE"; //default setting
  browsersniffer(); //find out which browser

  if (imagelist.length > 0) {
    inProgress = 1;
    timerID = setInterval(swapimage,timesetup);
    swapimage();
  }
}

//---------------------------
function swapimage(resetTimer) {
  if (resetTimer) {
    clearInterval(timerID);
  }
  if (index == imagelist.length) {
    index = 0;
  }
  else if (index == -1) {
    index = imagelist.length - 1;
  }
  changecontent("show", imagelist[index]);
  index++;
  if (resetTimer) {
    timerID = setInterval(swapimage,timesetup);
  }
}

//---------------------------
function playshow() {
    inProgress = 1;
    timerID = setInterval(swapimage,timesetup);
    swapimage(1);
}
    
//---------------------------
function pauseshow() {
    inProgress = 0;
    clearInterval(timerID);
}

function imgtoggle() {
    if (document.sshow.src == "http://" + location.host + "/visuals/play.gif") { 
        document.sshow.src = "http://" + location.host + "/visuals/pause.gif";
        document.sshow.onload = playshow(); 
    } else { 
        document.sshow.src = "http://" + location.host + "/visuals/play.gif";
        document.sshow.onload = pauseshow(); 
    }
}

//---------------------------
function previmg() {
    index-=2;
    swapimage(inProgress);
}

//---------------------------
function nextimg() {
    swapimage(inProgress);
}

//---------------------------
function browsersniffer() {
  if (navigator.userAgent.indexOf("Opera")!=-1 && document.getElementById) type="OP";
  else if (document.all) type="IE";
  else if (document.layers) type="NN";
  else if (!document.all && document.getElementById) type="MO";
  else type = "IE";
}

//---------------------------
function changecontent(id, str) {

  if (type=="IE") {
    document.getElementById(id).innerHTML = index+1+"/"+imagelist.length+ "<br><br>" + captokens[index] + "<br>" + "<img src=\"" + tokens[index] + "\">";
  }

  if (type=="NN") {
    document.layers[id].document.open();
    document.layers[id].document.write(index+1 + "/" + imagelist.length + "<br><br>" + captokens[index] + "<br>" + str);
    document.layers[id].document.close();
  }

  if (type=="MO" || type=="OP") {
    document.getElementById(id).innerHTML = index+1 + "/" + imagelist.length + "<br><br>" + captokens[index] + "<br>" + str;
  }
}

// cookies
function rememberMe() {
    var element = document.getElementById('rememberme');
    if (element && element.checked) {
        setCookie('username',document.getElementById('users_username__0').value);
    }
    else {
        deleteCookie('username');
    }
    return true;
}

function setCookie(name, value, daysUntilExpire) {
    var today = new Date();
    today.setTime(today.getTime());
    
    daysUntilExpire = daysUntilExpire || 14;

    var expires = daysUntilExpire * 1000 * 60 * 60 * 24;
    var expires_date = new Date(today.getTime() + expires);

    document.cookie = name + "=" + escape(value) +
        ";expires=" + expires_date.toGMTString() +
        ";path=/";
}

function getCookie(name) {
    var start = document.cookie.indexOf(name + "=");
    var len = start + name.length + 1;
    if ((!start) && (name != document.cookie.substring(0, name.length))) {
        return null;
    }
    if (start == -1) return null;
    var end = document.cookie.indexOf(";", len);
    if (end == -1) end = document.cookie.length;
    return unescape(document.cookie.substring(len, end));
}

function deleteCookie(name, path, domain) {
    if (getCookie(name)) {
        document.cookie = name + "=" + 
            ";path=/" + 
            ";expires=Thu, 01-Jan-1970 00:00:01 GMT";
    }
}

/* character limiter */
function countChars( id, charLimit ) {
    var len = $( id ).value.length;
    return ( charLimit - len );
}

function checkChars( id, countId, charLimit ) {
    var remaining = countChars( id, charLimit );
    if ( remaining >= 0 ) {
        $( countId ).innerHTML = remaining;
    }
    else {
        $( id ).value = $( id ).value.substr( 0, charLimit );
    }

    $(countId+"_wrap").style.color = (remaining > 0) ? '' : 'red';
}

function cleanCharsLength(obj, length) {
    cleanChars(obj);
    obj.setAttribute('maxlength',length);
}

function cleanChars(obj) {
    var hasBeenFocused = obj.getAttribute('hasBeenFocused');

    if (!hasBeenFocused) {
        obj.setAttribute('hasBeenFocused', 'true');
        obj.style.color = '#000';
        obj.value = '';
    }
}

function searchInput(inputObject) {
    var hasBeenFocused = inputObject.getAttribute("hasBeenFocused") != null;

    if (!hasBeenFocused) {
        inputObject.setAttribute("hasBeenFocused", "true");
        inputObject.style.color = "#000000";
        inputObject.value = "";
        var thisForm = inputObject.form;
        for (ii = 0;  ii < thisForm.elements.length; ii++) {
            if (thisForm.elements[ii].type == "submit"){
                thisForm.elements[ii].disabled = false;
            }
        }
    }
}

function cleanSearch(search_id) {
    var search = document.getElementById(search_id);
    if (search && !search.getAttribute('hasBeenFocused') && search.className == 'search_input') {
        search.value = '';
    }
    return true;
}

//kills the default action..
function cancelClick(e) { 
 if (window.event && window.event.returnValue) { 
    window.event.returnValue = false; 
     } 
      if (e && e.preventDefault) { 
         e.preventDefault(); 
          } 
 } 
function cancelClickSafari() { 
           return false; 
 } 

// this function is used for add event 
function addEvent( obj, type, fn ) {
	if (obj.addEventListener) {
		obj.addEventListener( type, fn, false );
		EventCache.add(obj, type, fn);
	}
	else 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] );
		EventCache.add(obj, type, fn);
	}
	else {
		obj["on"+type] = obj["e"+type+fn];
	}
}

var EventCache = function(){
	var listEvents = [];
	return {
		listEvents : listEvents,
		add : function(node, sEventName, fHandler){
			listEvents.push(arguments);
		},
		flush : function(){
			var i, item;
			for(i = listEvents.length - 1; i >= 0; i = i - 1){
				item = listEvents[i];
				if(item[0].removeEventListener){
					item[0].removeEventListener(item[1], item[2], item[3]);
				};
				if(item[1].substring(0, 2) != "on"){
					item[1] = "on" + item[1];
				};
				if(item[0].detachEvent){
					item[0].detachEvent(item[1], item[2]);
				};
				item[0][item[1]] = null;
			};
		}
	};
}();
addEvent(window,'unload',EventCache.flush);

//Disable all test links
function disableTestLinks() {
  var pageLinks = document.getElementsByTagName('a');
  for (var i=0; i<pageLinks.length; i++) {
    if (pageLinks[i].href.match(/[^#]#$/)) {
      addEvent(pageLinks[i], 'click', cancelClick, false);
    }
  }
}

function getRequestObj() {
        if (window.XMLHttpRequest) {
                try { return new XMLHttpRequest(); }
                catch (e) {}
        } else if (window.ActiveXObject) {
                try { return new ActiveXObject("Msxml2.XMLHTTP"); }
                catch (e) {
                        try { return new ActiveXObject("Microsoft.XMLHTTP"); }
                        catch (e) {}
                }
        }
    return false;
}
function getEventTarget(event)
{
    var targetElement = null;
    if (typeof event.target != "undefined")
    {
        targetElement = event.target;
    }
    else
    {
        targetElement = event.srcElement;
    }
    while (targetElement.nodeType == 3 && targetElement.parentNode != null)
    {
        targetElement = targetElement.parentNode;
    }
    return targetElement;
}
function hideLayer(id1) {
	var hideLayer = document.getElementById(id1);
	hideLayer.style.display="none";
        hideLayer.setAttribute("class","hideresume");
        hideLayer.setAttribute("className","hideresume");
}
function showLayer(id1) {
        cancelClick();
	var showLayer = document.getElementById(id1);
	showLayer.style.display="block";
        showLayer.setAttribute("class","showresume");
        showLayer.setAttribute("className","showresume");
}
function getElementsByAttribute(attribute, attributeValue)
{
  var elementArray = new Array();
  var matchedArray = new Array();

  if (document.all)
  {
    elementArray = document.all;
  }
  else
  {
    elementArray = document.getElementsByTagName("*");
  }

  for (var i = 0; i < elementArray.length; i++)
  {
    if (attribute == "class")
    {
      var pattern = new RegExp("(^| )" + attributeValue + "( |$)");

      if (elementArray[i].className.match(pattern))
      {
        matchedArray[matchedArray.length] = elementArray[i];
      }
    }
    else if (attribute == "for")
    {
      if (elementArray[i].getAttribute("htmlFor") || elementArray[i].getAttribute("for"))
      {
        if (elementArray[i].htmlFor == attributeValue)
        {
          matchedArray[matchedArray.length] = elementArray[i];
        }
      }
    }
    else if (elementArray[i].getAttribute(attribute) == attributeValue)
    {
      matchedArray[matchedArray.length] = elementArray[i];
    }
  }

  return matchedArray;
}
function ajaxRequest(url,params,onchangeFunc) {
    var request;
    if (window.XMLHttpRequest) {
        try { request = new XMLHttpRequest(); }
        catch (e) {}
    } else if (window.ActiveXObject) {
        try { request = new ActiveXObject("Msxml2.XMLHTTP"); }
        catch (e) {
            try { request = new ActiveXObject("Microsoft.XMLHTTP"); }
            catch (e) {}
        }
    }
    if (request) {
        var today = new Date();
        var pars = 'time=' + today.getTime()+"&"+params;
        request.open("get", url+"?"+pars,true);
        request.send(null);
    }
}
