function validateradio() {
if (document.debateForm.proCon[0].checked == false && document.debateForm.proCon[1].checked == false)
     {
 alert("You must select whether your argument is pro or con!");
 return false;
     }
}

	function storage(id){
document.cookie = 'argid=' + id;
	}
	
	
	function resort(){
var getval = document.getElementById('sort').value;
window.location="./members.php?sort=" + getval;
	}

/*
function showState() {
var country	= document.getElementById("country").value;
if (country == 'USA' || country == 'fra' || country == 'can')
    {
document.getElementById('stateField').innerHTML =		'<div id = \"state\">
						<div class=\"column columnState\">
						<div class=\"field\" id=\"stateField\"><label for=\"state\" class=\"stateLabel\">State *</label><input type=\"text\" name=\"state\" id=\"state\" class=\"text required\"></div></div></div>';	
				}
else
     {
document.getElementById('stateField').innerHTML = "";
					}
}
*/

function debatelength() {
var len = document.getElementById("response").value;
newlen = len.length;
lenleft = 500 - newlen;
document.getElementById("lengthamt").innerHTML =  lenleft + " characters left";
if (lenleft < 1)
               {
	alert("Please keep your response to under 500 characters.");
	return false;
				}
}
/*for rating*/
function makeRequest(rating)
{
	if(window.XMLHttpRequest)
	{
		request = new XMLHttpRequest();
	}
	else if(window.ActiveXObject)
	{
		request = new ActiveXObject("MSXML2.XMLHTTP");
	}

	sendRequest(rating);
}

function sendRequest(rating)
{

 url = 'rating.php?rating=' + rating;
	document.getElementById('copy').innerHTML = "<br/>Sending Rating...<br/>";
	request.onreadystatechange = onResponse;
	request.open("GET", url, true);
	request.send(null);
 document.getElementById('copy').innerHTML = request.responseText;
}


function checkReadyState(obj)
{
	if(obj.readyState == 0) { document.getElementById('copy').innerHTML = "Sending Request..."; }
	if(obj.readyState == 1) { document.getElementById('copy').innerHTML = "Loading Response..."; }
	if(obj.readyState == 2) { document.getElementById('copy').innerHTML = "Response Loaded..."; }
	if(obj.readyState == 3) { document.getElementById('copy').innerHTML = "Response Ready..."; }
	if(obj.readyState == 4)
	{
		if(obj.status == 200)
		{
			return true;
		}
		else if(obj.status == 404)
		{
			// Add a custom message or redirect the user to another page
			document.getElementById('copy').innerHTML = "File not found";
		}
		else
		{
			document.getElementById('copy').innerHTML = "There was a problem retrieving the content.";
		}
	}
}

function onResponse()
{
	if(checkReadyState(request))
	{
		//alert(request.responseXML);

		document.getElementById('copy').innerHTML = request.responseText;
	}
}


/* Global Namespace */
if (typeof(window.iMarketers)=='undefined') iMarketers = {};

/* HEADER OBJECTS */
iMarketers.Header = function() {
    var Evt = YAHOO.util.Event;
    var Dom = YAHOO.util.Dom;
    return {
		init: function() {
			// initialize navigation
			iMarketers.PopupModule.init('navBrowseAct', 'browseByNav');
			// initialize navigation
			iMarketers.PopupModule.init('profileActionsAct', 'profileActionsNav');
			// initialize required fields object
			iMarketers.FormFields.init('header');
		},
        EOF : null
    };
}();


/* MAIN OBJECTS */
iMarketers.Main = function() {
    var Evt = YAHOO.util.Event;
    var Dom = YAHOO.util.Dom;
    return {
		init: function() {
			// initialize closeable modules object
			iMarketers.ClosableMods.init();
			// initialize required fields object
			iMarketers.FormFields.init('main');
			// initialize navigation
			iMarketers.PopupModule.init('categoriesAct', 'categoriesMod');
			// initialize stars object
			iMarketers.Stars.init();
		},
        EOF : null
    };
}();

/* FOOTER OBJECTS */
iMarketers.Footer = function() {
    var Evt = YAHOO.util.Event;
    var Dom = YAHOO.util.Dom;
    return {
		init: function(dataArray) {
			// initialize 'other members' modules
			iMarketers.OtherMembers.init(dataArray);
		},
        EOF : null
    };
}();


/* STARS OBJECT */
iMarketers.Stars = function() {
    var Evt = YAHOO.util.Event;
    var Dom = YAHOO.util.Dom;
    return {
		init: function() {
			// get all 'starsYouRate' objects
			var stars = Dom.getElementsByClassName('starsYouRate', 'span', 'main');
			// do HTML changes to form
			for (var i=0; i<stars.length; i++) {
				stars[i].innerHTML = '';
				// add actuators
				var spans = SPAN({'class': 'starChoice'}, [
					SPAN({'class':'starActuator1'}, ''),
					SPAN({'class':'starActuator2'}, ''),
					SPAN({'class':'starActuator3'}, ''),
					SPAN({'class':'starActuator4'}, ''),
					SPAN({'class':'starActuator5'}, '')
				]);
				stars[i].appendChild(spans);
				// add eventListener
				Evt.on(spans, 'mouseover', this.handleHover, this, true);
				Evt.on(spans, 'mouseout', this.clearHover, this, true);
				Evt.on(spans, 'click', this.handleClick, this, true);
			};
		},
		/* EVENT HANDLERS */
		handleClick: function(ev) {
			// get target
			var target = Evt.getTarget(ev);
			// lock parentNode
			var parentObj = target.parentNode;
			Dom.removeClass(parentObj, 'locked');
			Dom.addClass(parentObj, 'locked');
			// add CSS to parentNode.parentNode
			parentObj = parentObj.parentNode;
			this.changeCSS('starsYouRate', 'stars', target, parentObj);
			  //kris'code
	    
          var starstring = target.className;
										 var starlen = starstring.length;
           var rating = starstring.charAt(starlen-1);
           makeRequest(rating);
			//end kris code
			// change label
			this.changeLabel(parentObj);
		},
		handleHover: function(ev) {
			// get target
			var target = Evt.getTarget(ev);
			// figure out what you're over:
			this.changeCSS('starChoice', 'starChoice', target, target.parentNode);
		},
		clearHover: function(ev) {
			// get target
			var target = Evt.getTarget(ev);
			// check if parent is locked
			if (!Dom.hasClass(target.parentNode, 'locked')) {
				target.parentNode.className = 'starChoice';
			};
		},
		/* OTHER METHODS */
		changeCSS: function(additionalClassName, classPrefix, targetObj, changeObj) {
			var className=false;
			switch (targetObj.className) {
				case 'starActuator1': className = classPrefix+'1'; break;
				case 'starActuator2': className = classPrefix+'2'; break;
				case 'starActuator3': className = classPrefix+'3'; break;
				case 'starActuator4': className = classPrefix+'4'; break;
				case 'starActuator5': className = classPrefix+'5'; break;
			};
			if (className) {
				changeObj.className = additionalClassName+' '+className;
			};
		},
		changeLabel: function(obj) {
			var parentObj = obj.parentNode;
			var labels = Dom.getElementsByClassName('label', 'span', parentObj);
			if (labels.length>0) {
				labels[0].innerHTML = 'Your rating:';
			};
		},
		EOF : null
    };
}();



/* POPUP MODULE OBJECT */
iMarketers.PopupModule = function() {
    var Evt = YAHOO.util.Event;
    var Dom = YAHOO.util.Dom;
    return {
		popupMods: {},
		init: function(actuatorID, moduleID) {
			// make sure objects exist
			if (!Dom.get(actuatorID) || !Dom.get(moduleID)) return;
			// register object
			this.popupMods[actuatorID] = {'id':actuatorID, 'mod':Dom.get(moduleID)};
			// add event listeners
			Evt.on(Dom.get(actuatorID), 'click', this.handleClick, this, true);
		},
		handleClick: function(ev) {
			// get target
			var target = Evt.getTarget(ev);
			if (target.blur) target.blur();
			var actuatorID = target.id;
			// prevent link from firing
			Evt.stopEvent(ev);
			// show/hide
			// add/remove global close handler
			var popupMod = this.popupMods[actuatorID].mod;
			if (popupMod.style.display=='block') {
				popupMod.style.display = 'none';
				Evt.removeListener(document.body, 'click', iMarketers.PopupModule.globalClose);
			} else {
				popupMod.style.display = 'block';
				window.setTimeout(function() {Evt.on(document.body, 'click', iMarketers.PopupModule.globalClose, iMarketers.PopupModule, true);}, 50);
			};
		},
		globalClose: function(ev) {
			// if target is on module, ignore
			var target = Evt.getTarget(ev);
			while (!Dom.hasClass(target, 'popupMod') && target!=document.body && !Dom.hasClass(target, 'closePopUpMod')) {
				target = target.parentNode;
			};
			// exit if we're on an open Mod
			if (Dom.hasClass(target, 'popupMod')) { return; };
			// otherwise, close all open mods
			Evt.stopEvent(ev);
			for (var i in this.popupMods) {
				this.popupMods[i].mod.style.display = 'none';
			};
			// remove event listener
			Evt.removeListener(document.body, 'click', iMarketers.PopupModule.globalClose);
				
		},
        EOF : null
    };
}();


/* CLOSABLE MODS OBJECT */
iMarketers.ClosableMods = function() {
    var Evt = YAHOO.util.Event;
    var Dom = YAHOO.util.Dom;
    return {
		mods: [],
		headers: [],
		init: function() {
			var i=0, tmp;
			// get modules that are collapsable
			this.getMods();
			// add actuators
			this.addActuators();
		},
		getMods: function() {
			this.mods = Dom.getElementsByClassName('closeable', 'div', 'main');
			// add collapse actuators
			for (i=0; i<this.mods.length; i++) {
				// add "h3" headers to array
				tmp = this.mods[i].getElementsByTagName('h3');
				if (tmp[0]) { this.headers.push(tmp[0]); };
				// add "h4" headers to array
				tmp = this.mods[i].getElementsByTagName('h4');
				if (tmp[0]) { this.headers.push(tmp[0]); };
			};
		},
		addActuators: function() {
			// make sure we have something to work with
			if (!this.headers) return;
			// loop through and add
			var i=0, tmpObj;
			for (var i=0; i<this.headers.length; i++) {
				// create node
				tmpObj = SPAN({'class':'closeAct'}, '');
				// attach node
				this.headers[i].parentNode.appendChild(tmpObj);
				// add eventListener
				Evt.on(tmpObj, 'click', this.handleClick, this, true);
			};
		},
		handleClick: function(ev) {
			// prevent link from firing
			Evt.stopEvent(ev);
			// get act that was clicked
			var target = Evt.getTarget(ev);
			// get closeable obj
			while(!Dom.hasClass(target, 'closeable')) {
				target = target.parentNode;
				// error checking
				if (target==document.body) { return; }
			};
			// open/close mod
			if (Dom.hasClass(target, 'closedMod')) {
				Dom.removeClass(target, 'closedMod');
			} else {
				Dom.addClass(target, 'closedMod');
			};
		},
        EOF : null
    };
}();

iMarketers.FormFields = function() {
    var Evt = YAHOO.util.Event;
    var Dom = YAHOO.util.Dom;
    return {
		init: function(sectionObj) {
			var tmpForms=[], tmpRequiredFields=[], tmpIndex=''; i=0;
			// look for any forms in the MAIN section of the page
			tmpForms = Dom.get(sectionObj).getElementsByTagName('form');
			// loop through forms and look for required fields
			for (i=0; i<tmpForms.length; i++) {
				// see if there are any required fields
				tmpFields = Dom.getElementsByClassName('required', 'input', tmpForms[i]);
				if (tmpFields.length>0) {
					tmpIndex = tmpForms[i].id;
					iMarketers.RequiredFields.AddField(tmpIndex, tmpFields);
				};
				// look for fields that require input before the form can submit
				if (Dom.hasClass(tmpForms[i], 'clearInputForm')) {
					tmpIndex = tmpForms[i].id;
					iMarketers.SearchForm.AddField(tmpIndex);
				};
			};
		},
		EOF : null
    };
}();

iMarketers.RequiredFields = function() {
    var Evt = YAHOO.util.Event;
    var Dom = YAHOO.util.Dom;
    return {
		formFields: {},
		AddField: function(index, fields) {
			this.formFields[index] = fields;
			Evt.on(index, 'click', this.handleClick, this, true);
		},
		handleClick: function(ev) {
			var target, formObj, errorMsg;
			// get target, make sure it's the submit button
			target = Evt.getTarget(ev);
			if (!Dom.hasClass(target, 'submit')) return;
			// get form ID we're working with
			formObj = target;
			while (formObj.nodeName!='FORM') {
				formObj = formObj.parentNode;
			};
			// check to make sure we have selections
			if (this.checkRequiredFormFields(formObj.id)) {
				// stop default action if return is true (ie: hasError)
				Evt.stopEvent(ev);
				// add error message
				errorMsg = SPAN({'class':'errorMsg', 'id':formObj.id+'ErrorMsg'}, ['Please fill out all required fields'])
				target.parentNode.appendChild(errorMsg);
			} else {
				errorMsg = Dom.get(formObj.id+'ErrorMsg');
				if (errorMsg)
					errorMsg.parentNode.removeChild(errorMsg);
			};
		},
		checkRequiredFormFields: function(formID) {
			var requiredFields=[], i=0, hasError=false;
			requiredFields = this.formFields[formID]
			for (i=0; i<requiredFields.length; i++) {
				if (!requiredFields[i].value) {
					Dom.addClass(requiredFields[i].parentNode, 'needsInput');
					hasError = true;
				} else {
					Dom.removeClass(requiredFields[i].parentNode, 'needsInput');
				};
			};
			return hasError;
		},
		EOF : null
    };
}();



iMarketers.SearchForm = function() {
    var Evt = YAHOO.util.Event;
    var Dom = YAHOO.util.Dom;
    return {
		formFields: {},
		AddField: function(index) {
			var inputFields;
			// get input field
			this.formFields[index] = false;
			inputFields = Dom.getElementsByClassName('clearInput', 'input', Dom.get(index));
			Evt.on(inputFields, 'focus', this.handleFocus, this, true);
		},
		handleFocus: function(ev) {
			var target;
			// get target
			target = Evt.getTarget(ev);
			// get ID
			formObj = target;
			while (formObj.nodeName!='FORM') {
				formObj = formObj.parentNode
			};
			// clear value
			if (!this.formFields[formObj.id]) {
				target.value = '';
				target.style.fontWeight = "normal";
				target.style.color = '#000';
				this.formFields[formObj.id] = true;
			};
			// if "isPassword", convert to password form field
			if (Dom.hasClass(target, 'isPassword')) {
				target.type='password';
				target.value = '';
			};
		},
		EOF : null
    };
}();



iMarketers.OtherMembers = function(dataArray) {
    var Evt = YAHOO.util.Event;
    var Dom = YAHOO.util.Dom;
    return {

		otherMembersObj: false,
		dataArray: false,
		targetID: 0,
		openModules: [],
		firstRun: true,

		init: function(dataArray) {
			this.dataArray = dataArray;
			// get other members parent module
			this.otherMembersObj = Dom.get('otherMembersInner');
			// add eventListeners
			Evt.on(this.otherMembersObj, 'mouseover', this.handleMouseOver, this, true);
		},

		handleMouseOver: function(ev) {
			// get target
			var target = Evt.getTarget(ev);
			var targetID = this.getMemberID(target);
			// exit if we're not on a valid target
			if (!targetID || targetID==this.targetID) return;
			// show module
			if (this.targetID != targetID) {
				this.target = target;
				this.targetID = targetID;
				window.setTimeout('iMarketers.OtherMembers.showModule()' , 200);
			};
		},

		showModule: function() {
			// get module
			this.openMod = Dom.get('otherMembersDtl');
			// populate module
			this.populateModule();
			// get module coordinates
			var leftOffset = this.getOffset();
			// display Module
			this.openMod.style.left = leftOffset;
			Dom.removeClass(this.openMod, 'otherMembersClosed');
			// add global event listener so that if user clicks off, it closes mod
			window.setTimeout(function() {Evt.on(document.body, 'click', iMarketers.OtherMembers.globalClose, iMarketers.OtherMembers, true);}, 50);

		},

		globalClose: function() {
			// close module
			Dom.addClass(this.openMod, 'otherMembersClosed');
			// remove event listener
			Evt.removeListener(document.body, 'click', iMarketers.OtherMembers.globalClose);
		},

		populateModule: function() {
			// get objects
			if (this.firstRun) {
				this.headerObj = Dom.get('otherMembersDtlName');
				this.companyObj = Dom.get('otherMembersDtlCompany');
				this.specialtiesObj = Dom.get('otherMembersDtlSpec');
				this.linksObj = Dom.get('otherMembersDtlLinks');
				this.blogObj = Dom.get('otherMembersDtlBlog');
				this.starsObj = Dom.get('otherMembersDtlStars');
			};
			this.firstRun = false;
			// populate
			this.headerObj.innerHTML = iMarketers.OtherMembersArray[this.targetID].name;
			this.headerObj.href = iMarketers.OtherMembersArray[this.targetID].profileUrl;
			this.companyObj.innerHTML = iMarketers.OtherMembersArray[this.targetID].company;
			this.specialtiesObj.innerHTML = iMarketers.OtherMembersArray[this.targetID].specialties;
			this.linksObj.innerHTML = iMarketers.OtherMembersArray[this.targetID].links;
			this.blogObj.innerHTML = iMarketers.OtherMembersArray[this.targetID].blog;
			this.starsObj.className = 'stars stars'+ iMarketers.OtherMembersArray[this.targetID].rating;
			this.starsObj.innerHTML = '<strong>' + iMarketers.OtherMembersArray[this.targetID].rating + ' stars</strong>';
		},

		getOffset: function() {
			// calculate left offset
			var itemObj = this.target;
			while (itemObj.nodeName!='LI') {
				itemObj = itemObj.parentNode;
			}
			var tmpLeftOffset = itemObj.offsetLeft;
			// calculate width of module
			var moduleOffset = this.openMod.offsetWidth;
			// calculate width of whole page
			var pageOffset = Dom.getDocumentWidth();
			// calculate offset
			Dom.removeClass(this.openMod, 'otherMembersPopupRight');
			if ((tmpLeftOffset + moduleOffset + 120) < pageOffset) {
				// to left
				var leftOffset = (tmpLeftOffset + 100 * 1) + 'px';
			} else {
				// to right
				var leftOffset = (tmpLeftOffset + 62 - moduleOffset * 1) + 'px';
				// change className to 'right'
				Dom.addClass(this.openMod, 'otherMembersPopupRight');
			};
			// return
			return leftOffset;
		},

		getMemberID: function(target) {
			// simply return if the target nodeName isn't possibly right
			if ( !(target.nodeName=='A' || target.nodeName=='IMG' || target.nodeName=='LI') ) { return false; }
			// make sure we're on the right target
			while (!Dom.hasClass(target, 'otherMembersItem')) {
				// bail out if we're on the base object
				if (target==this.otherMembersObj || target==document.body) { return false; }
				// keep looping up the Dom
				target = target.parentNode;
			};
			// strip out leading string characters
			var id = target.id.substr(11);
			return id;
		},

		EOF : null
    };
}();

