
jiibe = {}

jiibe.debugMode = false;

// Contacts Controls **********************************************************************

jiibe.contacts = {}

jiibe.contacts.eradicator = null;

jiibe.contacts.setupContacts = function() {
	
	var a = document.getElementsByTagName('div');
	for (var i = 0; i < a.length; i++) { 
	    var cn = a[i].className;
		if (cn.indexOf('avatarHolder') > -1) {
			a[i].onmouseover = function() {jiibe.contacts.showControlBox(this)}
			}		
	}
	try {
		a = $('contactbutton');
		a.onmouseover = function() {this.src = '/images/contactbutton_on.gif';clearTimeout(jiibe.contacts.eradicator);}
		a.onmousedown = function() {this.src = '/images/contactbutton.gif';clearTimeout(jiibe.contacts.eradicator);jiibe.contacts.showMenu();}	
		a.onmouseout = function() {this.src = '/images/contactbutton.gif';clearTimeout(jiibe.contacts.eradicator);}
		a.onmouseup = function() {this.src = '/images/contactbutton_on.gif';clearTimeout(jiibe.contacts.eradicator);}
		a = $('contactMenu');
		a.onmouseover = function() {clearTimeout(jiibe.contacts.eradicator);}	
	} catch(e) {}
}

jiibe.contacts.lastcBox = '';

jiibe.contacts.showControlBox = function(aid) {
	try {
	if (aid.id != jiibe.contacts.lastcBox) {
		var a = $('contactMenu');
		a.style.display = 'none';		
		a = nitobi.html.getCoords($('i' + aid.id));
		clearTimeout(jiibe.contacts.eradicator);
		b = $('contactbox');
		b.onclick = function() {jiibe.contacts.handleBoxClick(this);}
		b.style.display = 'block';
		b.style.top = a.y-2 + 'px';
		b.style.left = a.x-2 + 'px';	
		b.onmouseout = function() { clearTimeout(jiibe.contacts.eradicator); jiibe.contacts.eradicator = setTimeout('jiibe.contacts.eraseControlBox()', 2000)}
		b = $('contactbutton');
		b.style.display = 'block';
		b.style.top = a.y-2 + 'px';
		b.style.left = a.x+62 + 'px';	
		b.onmouseout = function() { this.src = '/images/contactbutton.gif'; clearTimeout(jiibe.contacts.eradicator); jiibe.contacts.eradicator = setTimeout('jiibe.contacts.eraseControlBox()', 2000)}
		jiibe.contacts.lastcBox = aid.id;
	}
	} catch(e) {}
}

jiibe.contacts.handleBoxClick = function(aobj) {
	var a = $('l' + jiibe.contacts.lastcBox);
	window.location = a.innerHTML;
}

jiibe.contacts.eraseControlBox = function() {
	new Effect.Opacity('contactbox', {duration:0.8, transition: Effect.Transitions.linear, from:1.0, to:0.0, afterFinish:function() {    }});
	new Effect.Opacity('contactMenu', {duration:0.8, transition: Effect.Transitions.linear, from:1.0, to:0.0, afterFinish:function() { }});	
	new Effect.Opacity('contactbutton', {duration:0.8, transition: Effect.Transitions.linear, from:1.0, to:0.0, afterFinish:function() {  jiibe.contacts.resetControlBox();  }});	
}

jiibe.contacts.resetControlBox = function() {
	var a = $('contactbox');
	var b = $('contactbutton');
	var c = $('contactMenu');
	c.style.left = '-1000px';
	c.style.top = '-1000px';		
	a.style.left = '-1000px';
	a.style.top = '-1000px';	
	b.style.left = '-1000px';
	b.style.top = '-1000px';	
	nitobi.html.Css.setOpacity(a, 100);
	nitobi.html.Css.setOpacity(b, 100);
	nitobi.html.Css.setOpacity(c, 100);
	jiibe.contacts.lastcBox = '';	
}

jiibe.contacts.showMenu = function() {
	var a = $('contactMenu');
	a.style.display = 'block';
	var b = nitobi.html.getCoords($('i' + jiibe.contacts.lastcBox));
	a.style.top = b.y+61 + 'px';
	a.style.left = b.x-2 + 'px';
	a.onmouseout = function() { clearTimeout(jiibe.contacts.eradicator); jiibe.contacts.eradicator = setTimeout('jiibe.contacts.eraseControlBox()', 2000)}	
	
	var c = $('v' + jiibe.contacts.lastcBox);
	var d = c.innerHTML.split('[]');
	var resString = "<table width=\"170\" cellpadding=0 cellspacing=0>";
	for (var i = 0; i < d.length; i++) {
		var e = d[i].split(',');
		resString += "<tr><td class=menuItemClass onmouseover=\"this.className = 'menuItemClassS';\" onmouseout=\"this.className = 'menuItemClass';\" onmousedown=\"window.location='" + e[1] + "';\">" + e[0] + "</td></tr>";
	}
	resString += "</table>"
	a.innerHTML = resString;
}

// Jiibe Displays **************************************************************************

jiibe.jiibeDraw = {}

jiibe.jiibeDraw.companyDetails = Array();
jiibe.jiibeDraw.companyDetailsIndexer = Array();

jiibe.jiibeDraw.jiibeArray = Array();

jiibe.jiibeDraw.killDetails = function(divid) {

	try {
	document.getElementsByTagName('body').item(0).removeChild(jiibe.jiibeDraw.companyDetails[divid]['buzzobj']);
	} catch(e) {}
	try {
	document.getElementsByTagName('body').item(0).removeChild(jiibe.jiibeDraw.companyDetails[divid]['jobobj']);
	} catch(e) {}	
	jiibe.jiibeDraw.companyDetails[divid] = null;
}
jiibe.jiibeDraw.translateJobCount = function(jobscount) {
	var resultval = jobscount;
	if (jobscount > 99)
		resultval = '99+';
	return resultval;
	
}
jiibe.jiibeDraw.translateBuzzCount = function(buzzscore) {
	var resultStr = 'C-';
	if (buzzscore > 0.1)
		resultStr = 'C+';
	if (buzzscore > 0.3)
		resultStr = 'B-';
	if (buzzscore > 0.4)
		resultStr = 'B';
	if (buzzscore > 0.5)
		resultStr = 'B+';
	if (buzzscore > 0.6)
		resultStr = 'A-';
	if (buzzscore > 0.7)
		resultStr = 'A';
	if (buzzscore > 0.8)
		resultStr = 'A+';	
	return resultStr;										
}

jiibe.jiibeDraw.drawDetails = function(divid, companyid, jobscount, buzzcount) {
	
	var divobj = $(divid);
	jiibe.jiibeDraw.companyDetails[divid] = Array();
	jiibe.jiibeDraw.companyDetails[divid]['id'] = divid;
	jiibe.jiibeDraw.companyDetailsIndexer[jiibe.jiibeDraw.companyDetailsIndexer.length] = divid;
	
	if (buzzcount > 0) {
		jiibe.jiibeDraw.companyDetails[divid]['buzzobj'] = nitobi.html.createElement('div', {"id":"buzz" + companyid}, {"z-index":"5000", "position":"absolute", "top":"100px", "left":"100px", "width":"47px", "height":"41px"});	
		var a = jiibe.jiibeDraw.companyDetails[divid]['buzzobj'];
		if (nitobi.browser.IE) {
			a.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'/images/buzz_star.png\', sizingMethod=\'crop\');'		
		} else {
			a.style.backgroundImage = 'url(\'/images/buzz_star.png\')'
		}
		var pos = nitobi.html.getCoords(divobj);
		a.style.top = pos.y+divobj.offsetHeight-55+'px';
		if (jobscount > 0) {
			a.style.left = pos.x+divobj.offsetWidth-47-39+'px';
		} else {
			a.style.left = pos.x+divobj.offsetWidth-47+'px';	
		}
		a.innerHTML = '<table width=47 height=41 cellpadding=0 cellspacing=0><tr><td width=10></td><td valign=top align=center class=star_text>' + jiibe.jiibeDraw.translateBuzzCount(buzzcount) + '</td></tr></table>';
		nitobi.html.Css.setOpacity(a, 60);
		document.getElementsByTagName('body').item(0).appendChild(jiibe.jiibeDraw.companyDetails[divid]['buzzobj']);		
	}
	
	if (jobscount > 0) {
		jiibe.jiibeDraw.companyDetails[divid]['jobobj'] = nitobi.html.createElement('div', {"id":"jobs" + companyid}, {"z-index":"5000", "position":"absolute", "top":"100px", "left":"100px", "width":"47px", "height":"41px"});	
		var a = jiibe.jiibeDraw.companyDetails[divid]['jobobj'];
		if (nitobi.browser.IE) {
			a.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'/images/jobs_star.png\', sizingMethod=\'crop\');'		
		} else {
			a.style.backgroundImage = 'url(\'/images/jobs_star.png\')'
		}
		var pos = nitobi.html.getCoords(divobj);
		a.style.top = pos.y+divobj.offsetHeight-55+'px';
		a.style.left = pos.x+divobj.offsetWidth-47+'px';	
		var joffset = 10;
		if (jobscount > 99)
			joffset = 13;
		a.innerHTML = '<table width=47 height=41 cellpadding=0 cellspacing=0><tr><td width=' + joffset + '></td><td valign=top align=center class=star_text>' + jiibe.jiibeDraw.translateJobCount(jobscount) + '</td></tr></table>';
		nitobi.html.Css.setOpacity(a, 60);
		document.getElementsByTagName('body').item(0).appendChild(jiibe.jiibeDraw.companyDetails[divid]['jobobj']);		
	}
	
}

jiibe.jiibeDraw.killAllDetails = function() {

	for (var i= 0; i < jiibe.jiibeDraw.companyDetailsIndexer.length; i++) { 
		if (jiibe.jiibeDraw.companyDetailsIndexer[i]) {
			jiibe.jiibeDraw.killDetails(jiibe.jiibeDraw.companyDetailsIndexer[i]);			
		}
	}	
}

jiibe.jiibeDraw.checkforDetails = function() {
	jiibe.jiibeDraw.companyDetailsIndexer.length = 0;
	
	var divs = document.getElementsByTagName("div"); 
	for (var i = 0; i < divs.length; i++) { 
	    id = divs[i].id;
		if (id.indexOf('company_holder') > -1) {
			if (!jiibe.jiibeDraw.companyDetails[divs[i].id]) {
			var company_id = Number(id.replace('company_holder', ''));
			//jiibe.jiibeDraw.drawDetails(id, company_id, Number($('job_count' + company_id).innerHTML),Number($('buzz_factor' + company_id).innerHTML));
			}
		}
	}	
}

jiibe.jiibeDraw.checkForJiibes = function () {

	var divs = document.getElementsByTagName("div"); 
	for (var i = 0; i < divs.length; i++) { 
	    id = divs[i].id;
		if (id.indexOf('jiibe_cloud') > -1) {
			var uid = id.replace('jiibe_cloud', '');
			if (!jiibe.jiibeDraw.jiibeArray[uid]) {
				jiibe.jiibeDraw.initJiibe(uid);
			}
		}
	}	
}

jiibe.jiibeDraw.initJiibe = function (uid) {
	jiibe.jiibeDraw.stringToJiibe(uid,$('jiibe_cloud' + uid).innerHTML)
	jiibe.jiibeDraw.drawJiibe(uid);
}

jiibe.jiibeDraw.stringToJiibe = function(uid,jstring) {
	try {
	var a = jstring.split('/');
	jiibe.jiibeDraw.jiibeArray[uid] = Array();
	
	for (var i = 0; i < a.length-1; i++) {
		jiibe.jiibeDraw.jiibeArray[uid][i] = Array();
		var b = a[i].split(':');
		jiibe.jiibeDraw.jiibeArray[uid][i][0] = Number(b[1]);
		var c = b[0].split(',');
		jiibe.jiibeDraw.jiibeArray[uid][i][1] = c[0];
		jiibe.jiibeDraw.jiibeArray[uid][i][2] = c[1].replace(' ', '-');
		jiibe.jiibeDraw.jiibeArray[uid][i][3] = c[2].replace(' ', '-');	
	}
	} catch(e) {}
}

jiibe.jiibeDraw.ouputJiibe = function (jstring) {
	
	uid = 'a' + (Math.random() * 10000);
	jiibe.jiibeDraw.stringToJiibe(uid, jstring);
	return jiibe.jiibeDraw.computeJiibe(uid);
	
	
}

jiibe.jiibeDraw.fontFromFactor = function(pctg) {
	if (pctg < 0)
		pctg = 0;
	return (12*pctg)+10;	
}

jiibe.jiibeDraw.colorFromFactor = function(pctg) {
	return jiibe.stringHelpers.RGBtoHEX(128-Math.round(pctg*128)+30,77-Math.round(pctg*77)+80,28-Math.round(pctg*28)+180);
}

jiibe.jiibeDraw.pctgFromFactor = function(fctr) {
	if (fctr > 3) {
			return (fctr-3)/2;
		} else {
			return (3-fctr)/2;
		}
}

jiibe.jiibeDraw.helpIsOn = true;

jiibe.jiibeDraw.removeHelp = function() {
	
	try {

		if (jiibe.jiibeDraw.helpIsOn) {
			jiibe.jiibeDraw.helpIsOn = false;
			$('currentJiibesBlock').style.visibility = 'visible';
			new Effect.Opacity('questionInstructions', {duration:0.5, transition: Effect.Transitions.linear, from:1.0, to:0.0, afterFinish:function() {$('questionInstructions').style.display = 'none'; jiibe.jiibeDraw.removeHelpBack();}});			
		}	
		
	} catch(e) {}
}

jiibe.jiibeDraw.removeHelpBack = function() {
	
	new Effect.Opacity('questionInstructionsBackdrop', {duration:0.5, transition: Effect.Transitions.linear, from:1.0, to:0.0, afterFinish:function() {$('questionInstructionsBackdrop').style.display = 'none';}});			
}

jiibe.jiibeDraw.showHelp = function() {

	if (jiibe.jiibeDraw.helpIsOn) {
		try {
			var posO = $('currentJiibesBlock');
			var pos = nitobi.html.getCoords(posO);
			var a = $('questionInstructions');
			a.style.left = pos.x+22 + 'px';
			a.style.top = pos.y+21 + 'px';		
			a.style.display = 'block';
			var a = $('questionInstructionsBackdrop');
			a.style.left = pos.x+22 + 'px';
			a.style.top = pos.y+21 + 'px';		
			a.style.display = 'block';				
		} catch(e) {}
	}	
}

jiibe.jiibeDraw.drawJiibe = function (uid) {
	var d = $('jiibe_holder' + uid);
	d.innerHTML = jiibe.jiibeDraw.computeJiibe(uid);
}


jiibe.jiibeDraw.computeJiibe = function (uid) {
	var newStr = '';
	var pxsz = 0;
	var pctg = 0;
	var padString = "";
	if (nitobi.browser.SAFARI) {
		padString = "margin-right: 5px;"
	}
	try {
	for (var i = 0; i < jiibe.jiibeDraw.jiibeArray[uid].length; i++) {
		if (jiibe.jiibeDraw.jiibeArray[uid][i][0] > 0) {
			jiibe.jiibeDraw.removeHelp();
			pctg = jiibe.jiibeDraw.pctgFromFactor(jiibe.jiibeDraw.jiibeArray[uid][i][0]);
			
			pxsz = jiibe.jiibeDraw.fontFromFactor(pctg);
			var C = jiibe.jiibeDraw.colorFromFactor(pctg);	
			if (jiibe.jiibeDraw.jiibeArray[uid][i][0] > 3) {			
				newStr += "<span title=\"" + jiibe.jiibeDraw.jiibeArray[uid][i][1] + "\" id=tc" + i + "_" + uid + " style=\"" + padString + " cursor:help; color: #" + C + "; font-size:" + pxsz + "px;\">" + jiibe.jiibeDraw.jiibeArray[uid][i][3] + '</span> ';
			} else {
				newStr += "<span title=\"" + jiibe.jiibeDraw.jiibeArray[uid][i][1] + "\" id=tc" + i + "_" + uid + " style=\"" + padString + " cursor:help; color: #" + C + "; font-size:" + pxsz + "px;\">" + jiibe.jiibeDraw.jiibeArray[uid][i][2] + '</span> ';
			}
		} else {
			newStr += "<span title=\"" + jiibe.jiibeDraw.jiibeArray[uid][i][1] + "\" id=tc" + i + "_" + uid + " style=\"" + padString + " cursor:help; display:none; \">&nbsp;</span> ";
		}
	}
	} catch(e) {}
	return newStr;
}

jiibe.jiibeDraw.updateIdealJiibe = function () {
	new Ajax.Request('/cloud/user/', {asynchronous:true, evalScripts:true, onComplete:function(request) {     }});
}

jiibe.jiibeDraw.jiibeArrayTarget = Array();

jiibe.jiibeDraw.processUpdatedJiibe = function(uid) {
	var a = $('jiibe_cloud' + uid).innerHTML.split('/');
	
	jiibe.jiibeDraw.jiibeArrayTarget[uid] = Array();
	
	for (var i = 0; i < a.length-1; i++) {
		jiibe.jiibeDraw.jiibeArrayTarget[uid][i] = Array();
		var b = a[i].split(':');
		jiibe.jiibeDraw.jiibeArrayTarget[uid][i][0] = Number(b[1]);
		var c = b[0].split(',');
		jiibe.jiibeDraw.jiibeArrayTarget[uid][i][1] = c[0];
		jiibe.jiibeDraw.jiibeArrayTarget[uid][i][2] = c[1].replace(' ', '-');
		jiibe.jiibeDraw.jiibeArrayTarget[uid][i][3] = c[2].replace(' ', '-');
		if (jiibe.jiibeDraw.jiibeArrayTarget[uid][i][0] != jiibe.jiibeDraw.jiibeArray[uid][i][0] ) {
			if (jiibe.jiibeDraw.jiibeArray[uid][i][0] == 0)
				jiibe.jiibeDraw.jiibeArray[uid][i][0] = 2.5;
			jiibe.jiibeDraw.iterateItem(uid, i);
			if (jiibe.jiibeDraw.jiibeArrayTarget[uid][i][0] >= jiibe.jiibeDraw.jiibeArray[uid][i][0] ){
				new Effect.Highlight('tc' + i + '_' + uid, {startcolor:'#FFFF00', endcolor:'#FFFFFF'})	
			} else {
				new Effect.Highlight('tc' + i + '_' + uid, {startcolor:'#B3DEFF', endcolor:'#FFFFFF'})
			}
		}
	}
}

jiibe.jiibeDraw.iterateItem = function(uid, ic) {

	var oldVal = jiibe.jiibeDraw.jiibeArray[uid][ic];
	var newVal = jiibe.jiibeDraw.jiibeArrayTarget[uid][ic];
	var midVal = jiibe.jiibeDraw.jiibeArray[uid][ic];
	
	midVal[0] = ((newVal[0]-oldVal[0])/10) + oldVal[0];
	var sObj = $('tc' + ic + '_' + uid);
	var pctg = jiibe.jiibeDraw.pctgFromFactor(midVal[0]);
	var pxsz = jiibe.jiibeDraw.fontFromFactor(pctg);
	var C = jiibe.jiibeDraw.colorFromFactor(pctg);		
	sObj.style.fontSize = pxsz + 'px';
	sObj.style.color = '#' + C;
	sObj.style.display = 'inline';
	
	if (midVal[0] > 2.5) {			
		sObj.innerHTML = midVal[3];
	} else {
		sObj.innerHTML = midVal[2];
	}	
	
	if (Math.abs(midVal[0]-newVal[0]) > 0.05) {
		setTimeout("jiibe.jiibeDraw.iterateItem('" + uid + "', " + ic + ")", 20)
		
	} else {
		jiibe.jiibeDraw.jiibeArray[uid][ic] = jiibe.jiibeDraw.jiibeArrayTarget[uid][ic]
	}
}

jiibe.jiibeDraw.toggleResults = function(e,c){
	var list = $$('.' + c)
	if (e.checked == true) {
		for (var i = 0; i < list.length; i++) {
			if (list[i].style.left != '399%')
				list[i].style.display = '';
		}
	} else {
		for (var i = 0; i < list.length; i++) {
			list[i].style.display = 'none';
		}
	}
}

// STRING HELEPRS **************************************************************************

jiibe.stringHelpers = {}

jiibe.stringHelpers.left = function (str, n){
	if (n <= 0)
	    return "";
	else if (n > String(str).length)
	    return str;
	else
	    return String(str).substring(0,n);
}

jiibe.stringHelpers.right = function (str, n){
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}

jiibe.stringHelpers.RGBtoHEX = function(r,g,b) {
	
	if (r > 255)
		r = 255
	if (g > 255)
		g = 255
	if (b > 255)
		b = 255		
	return r.toString(16) + '' + g.toString(16) + '' + b.toString(16);
	
}

jiibe.stringHelpers.trim_string = function (str, n){
	try {
	if (str.length > n-2) {
		return jiibe.stringHelpers.left(str,n-2) + "..";
	} else {
		return str;
	}} catch(e) {}
}

// formHelpers *****************************************************************************

jiibe.formHelpers = {}


jiibe.formHelpers.initVariousCalendars = function() {
		try {nitobi.loadComponent('start_date_cal');} catch(e) {}
		try {nitobi.loadComponent('end_date_cal');} catch(e) {}		
	
}

jiibe.formHelpers.toggleCalendar = function(posId, calId) {
	var as = $(calId).style.visibility;
	var resultDisplay = 'visible';
	var c = $(calId);
	
	
	if (as == 'hidden') {
		var a = nitobi.html.getCoords($(posId));

		c.style.top = (a.y) + 'px';
		c.style.left = (a.x + $(posId).offsetWidth) + 'px';	
		resultDisplay = 'visible';
		c.style.visibility = resultDisplay;
		c.style.display = 'block';

	} else {
		resultDisplay = 'hidden';
		c.style.visibility = resultDisplay;
		c.style.display = 'none';
	}
	
	
}

jiibe.formHelpers.setCalendar = function(formname, fieldname, calobj, displaytext, posId, calHolder) {
	var fDate = nitobi.getComponent(calobj).getDate();
	var resString = fDate.getFullYear() + '/' + fDate.getMonth() + '/' + fDate.getDate();
	var date = fDate.toString();
	date = date.substring(0, date.indexOf("00:00:00"));
	document.forms[formname][fieldname].value = resString;
	$(displaytext).innerHTML = date;
	setTimeout(function(){jiibe.formHelpers.toggleCalendar(posId, calHolder);}, 100);
	return true;
}

jiibe.formHelpers.validateAddPosition = function() {
	
	var a = document.forms['add_position'];
	var ct = a['current[title]'].value;
	var cn = a['current[company]'].value;	
	var sd = a['start_date'].value;
	var ed = a['end_date'].value;	
	var ic = a['is_current'].checked;	

	var isPassed = true;
	
	if (ct.length < 2) {
		jiibe.messageHelpers.showMessage('current_title', "Too short", "Your position title must be longer than that.", 3500);
		isPassed = false;
	}
	
	if ((isPassed) && (cn.length < 2)) {
		jiibe.messageHelpers.showMessage('current_company', "Too short", "Your company name must be longer than that.", 3500);
		isPassed = false;		
	}

	if ((isPassed) && (sd.length < 2)) {
		jiibe.messageHelpers.showMessage('start_date_button', "Choose a start date", "You need to tell us when you started working there.", 3500);
		isPassed = false;		
	}	

	if ((isPassed) && (ed.length < 2) && (ic == false)) {
	
		jiibe.messageHelpers.showMessage('end_date_button', "Choose a quit date", "You need to tell us when you left this company.", 3500);
		isPassed = false;		
	}
	if (isPassed) {
		$('addpos_holder').style.display = 'none';
		$('addpos_dis_holder').style.display = 'block';		
		jiibe.ajaxHelpers.setThrobber('addWait');
		new Ajax.Request("/userprofile/save_position/", {asynchronous:true, evalScripts:true, onComplete:function(request){jiibe.ajaxHelpers.clearThrobber('addWait')}, parameters:Form.serialize(document.forms['add_position'])});
	}
}


jiibe.formHelpers.clearLogin = function() {
	
	try{ flashCallout.destroy(); } catch(e){}
	var i = document.forms;
	for (var k = 0; k < i.length; k++) {
		for (var a = 0; a < i[k].length; a++)
		{
			var lname = i[k][a].name;
			if ((lname == "email") || (lname == "password"))	 {
				i[k][a].style.backgroundImage = 'url(\'../images/blank2x2.gif\')';
			}
		}
		
	}
	
}

jiibe.formHelpers.eraseLogin = function() {
	
	var i = document.forms;
	for (var k = 0; k < i.length; k++) {
		for (var a = 0; a < i[k].length; a++)
		{
			var lname = i[k][a].name;
			if ((lname == "email") || (lname == "password"))	 {
				if (i[k][a].value.length > 0)
				i[k][a].style.backgroundImage = 'url(\'../images/blank2x2.gif\')';
				
			}
		}
		
	}
	
}

jiibe.formHelpers.signupDest  = '/signup/create_account';

jiibe.formHelpers.sendSignup = function() {
	
		new Ajax.Request(jiibe.formHelpers.signupDest, {asynchronous: true,evalScripts: true,onComplete: function(request){jiibe.ajaxHelpers.fadeOutSignup();},parameters: Form.serialize(document.forms['signupform'])
	});

}


jiibe.formHelpers.resetPassword = function() {
	//debugger;
	var t = $('resetpassword');
	var i = nitobi.html.getCoords(t);
	var w = $('resetpassword_dis');
	w.style.left = i.x + 'px'; 	w.style.top = i.y + 'px'; w.style.display = 'block';	
	var passOK = true;
	if ((!jiibe.debugMode) && (!passOK)) {			
		var	df = document.forms['signupform'];
		var fh = jiibe.formHelpers.validate;
		if (fh.email(df['myemail'],false, true)) {
			passOK = true;
		
		}
	}
	
	if ((passOK) || (jiibe.debugMode)) {
		jiibe.ajaxHelpers.fadeInSignup();	
	} else {
		$('resetpassword_dis').style.display = 'none';	
	}
	
	
}

jiibe.formHelpers.signUp = function() {

	var t = $('nextbut');
	var i = nitobi.html.getCoords(t);
	
	var passOK = false;
	if (!jiibe.debugMode) {			
		var	df = document.forms['signupform'];
		var fh = jiibe.formHelpers.validate;
		if (fh.nick(df['mynick'],true, true))
		if (fh.email(df['myemail'],true, true)) {
			if (fh.lengtho(df['myfname'], 2, 20, true, true))
				if (fh.lengtho(df['mylname'], 2, 20, true, true))			
					if (fh.password(df['pw1'],true, true)) {
						if (fh.password(df['pw2'],true, true)) {
							if (fh.passwordsame(df['pw1'],df['pw2'],true, true)) {
								if (jiibe.formHelpers.validate.captcha(df['skilltester'], true)) {
									if (df['location_detail']) {
										if (df['terms_ok'].checked) {
											passOK = true;
										} else {
											jiibe.messageHelpers.showMessage('terms_ok', "Try again", "You must accept the Terms of Use and the Privacy Policy before creating an account.", 3500);
										}
									} else {
										jiibe.messageHelpers.showMessage('location', "Try again", "Please select a country.", 3500);
									}
								}
							}			
						}
					}
		}
	}
	
	if ((passOK) || (jiibe.debugMode)) {
		jiibe.ajaxHelpers.fadeInSignup();
//		jiibe.formHelpers.sendSignup();	
	}	
}

jiibe.formHelpers.signUpStep2 = function(){

	var t = $('nextbut');
	var i = nitobi.html.getCoords(t);
	
	var passOK = true;

	if ((passOK) || (jiibe.debugMode)) {
		jiibe.ajaxHelpers.fadeInSignup();
	}	
}

jiibe.formHelpers.loadDetailRegions = function(parentid){

	jiibe.ajaxHelpers.setThrobber('regWait');
	var myS = "new Ajax.Request('/signup/get_regions', {asynchronous:true, evalScripts:true, onComplete:function(request){jiibe.ajaxHelpers.clearThrobber('regWait');}, parameters:Form.serialize(document.forms['signupform'])});";
	eval(myS);
	if (document.all) {
		$('state_province_row').style.display = 'block';
	} else {
		$('state_province_row').style.display = 'table-row';
	}

} 

jiibe.formHelpers.validate = {}

jiibe.formHelpers.validate.emailOK = false;

jiibe.formHelpers.validate.email = function(fieldobj, showmessage, forcevalidate) {
	nitobi.callout.destroyAll();
	var str = fieldobj.value;
	try {
		if (document.forms['signupform'].oldemail.value == str) {
			jiibe.formHelpers.validate.emailOK = true;
			return true;
		}
	} catch(e) {}
	if ((str.length > 0) || (forcevalidate)) {
	if ((str.indexOf("@") > 0)) {
		jiibe.ajaxHelpers.setThrobber('emailWait');
		new Ajax.Request('/signup/validate_email', {asynchronous:true, evalScripts:true, onComplete:function(request){jiibe.ajaxHelpers.clearThrobber('emailWait');}, parameters:Form.serialize(document.forms['signupform'])});
		return jiibe.formHelpers.validate.emailOK;
 	} else {
		if (showmessage) {
			fieldobj.id = fieldobj.name;
			jiibe.messageHelpers.showMessage(fieldobj.id, "Try again", "Invalid Email Address. This field is required.", 3500);
		}	
		fieldobj.focus();
		jiibe.formHelpers.validate.emailOK = false;
		return jiibe.formHelpers.validate.emailOK;
	}
	} else {
		jiibe.formHelpers.validate.emailOK = false;
		return jiibe.formHelpers.validate.emailOK;
	}
}

jiibe.formHelpers.validate.alphaNumericCheck = function(str){
	var regex=/^[0-9A-Za-z]+$/; //^[a-zA-z]+$/
	if(regex.test(str)){
	return true;
	} else {
	return false;
	}
}

jiibe.formHelpers.validate.nickOK = false;

jiibe.formHelpers.validate.nick = function(fieldobj, showmessage, forcevalidate) {
	nitobi.callout.destroyAll();
	fieldobj.value = fieldobj.value.replace(/ /g, '');
	var str = fieldobj.value;
	
	if (!jiibe.formHelpers.validate.alphaNumericCheck(str)) {
		fieldobj.id = fieldobj.name;
		jiibe.messageHelpers.showMessage(fieldobj.id, "Try again", "Alphanumeric characters only, please.", 3500);
		return jiibe.formHelpers.validate.nickOK;		
	}

	if (((str.length < 1)) && (forcevalidate)) {
		fieldobj.id = fieldobj.name;
		jiibe.messageHelpers.showMessage(fieldobj.id, "Try again", "Too short. The nickname should be at least 5 letters long.", 3500);
		return jiibe.formHelpers.validate.nickOK;
	}	
	if ((str.length >= 5) || (forcevalidate)) {

		jiibe.ajaxHelpers.setThrobber('nickWait');
		new Ajax.Request('/signup/validate_nick', {asynchronous:true, evalScripts:true, onComplete:function(request){jiibe.ajaxHelpers.clearThrobber('nickWait');}, parameters:Form.serialize(document.forms['signupform'])});
		return jiibe.formHelpers.validate.nickOK;
 	
	} else {
		if (((showmessage) && (str.length > 1))) {
			fieldobj.id = fieldobj.name;
			jiibe.messageHelpers.showMessage(fieldobj.id, "Try again", "Too short. The nickname should be at least 5 letters long.", 3500);
		}		
		jiibe.formHelpers.validate.nickOK = false;
		return jiibe.formHelpers.validate.nickOK;
	}
}

jiibe.formHelpers.validate.password = function(fieldobj, showmessage, forcevalidate) {
	nitobi.callout.destroyAll();
	var str = fieldobj.value;
	if ((str.length > 0) || (forcevalidate)) {
	if ((str.length > 5) && (str.length < 10)) {
		return true;	
 	} else {
		if (showmessage) {
			fieldobj.id = fieldobj.name;
			jiibe.messageHelpers.showMessage(fieldobj.id, "Try again", "Passwords must be between 5 and 10 characters.", 3500);
		}	
		fieldobj.focus();
		return false;
	}
	} else {
		return false;
	}
}

jiibe.formHelpers.validate.passwordsame = function(fieldobj, otherobj, showmessage, forcevalidate) {
	nitobi.callout.destroyAll();	
	var str = fieldobj.value;
	var str2 = otherobj.value;
	if ((str2.length > 0) || (forcevalidate)) {
	if (str == str2) {
		return true;
	} else {
		if (showmessage) {
			fieldobj.id = fieldobj.name;
			jiibe.messageHelpers.showMessage(fieldobj.id, "Try again", "Passwords do not match.", 3500);
		}	
		fieldobj.focus();		
		return false;
	}
	} else {
		return false;
	}
}

jiibe.formHelpers.validate.lengtho = function(fieldobj, minlength, maxlength, showmessage, forcevalidate) {
	nitobi.callout.destroyAll();
	var str = fieldobj.value;
	if ((str.length > 0) || (forcevalidate)) {
	if ((str.length >= minlength) && (str.length <= maxlength)) {
		return true;	
 	} else {
		if (showmessage) {
			fieldobj.id = fieldobj.name;
			if (minlength == maxlength) {
				jiibe.messageHelpers.showMessage(fieldobj.id, "Try again", "Must be between " + maxlength + " letters long.", 3500);
			} else {
				jiibe.messageHelpers.showMessage(fieldobj.id, "Try again", "Must be between " + minlength + " and " + maxlength + " letters long.", 3500);	
			}
			
		}	
		fieldobj.focus();
		return false;
	}
	} else {
		return false;
	}
}

jiibe.formHelpers.validate.checkselect = function(fieldobj, showmessage) {
	nitobi.callout.destroyAll();
	var str = fieldobj.value;
	if ((str.length > 0)) {
		return true;	
 	} else {
		if (showmessage) {
			fieldobj.id = fieldobj.name;
			jiibe.messageHelpers.showMessage(fieldobj.id, "Try again", "Please choose an item from the list.", 3500);	

		}	
		fieldobj.focus();
		return false;
	}
	
}

jiibe.formHelpers.validate.captchaOK = false;

jiibe.formHelpers.validate.captcha = function(fieldobj, forcenotification) {
	
	if ((fieldobj.value.length > 0) || (forcenotification)) {
		nitobi.callout.destroyAll();
		var str = fieldobj.value;
		t = $('qBlockArea');
		i = nitobi.html.getCoords(t);
		try {
			var w = $('greyBoxFadeover');
			w.style.left = i.x + 'px'; 	w.style.top = i.y + 'px'; w.style.display = 'block';
			w.style.width = t.offsetWidth + 'px';	w.style.height = t.offsetHeight + 'px';					
		} catch(e) {}
		jiibe.ajaxHelpers.setThrobber('capWait');
		new Ajax.Request('/signup/validate_captcha', {asynchronous:true, evalScripts:true, onComplete:function(request){jiibe.ajaxHelpers.clearThrobber('capWait');}, parameters:Form.serialize(document.forms['signupform'])});
		try {
			w.style.display = 'none';
		} catch(e) {}
	}
	return jiibe.formHelpers.validate.captchaOK;
}

// messageHelpers *************************************************************************

jiibe.messageHelpers = {}

var flashCallout;

jiibe.messageHelpers.showError = function() {
	var mTitle = $('errorTitle');
	var mBody = $('errorMessage');
	var mStyle = $('errorStyle');
	var mRegion = $('errorRegion');
	var mesStyle = "clean";
	if (mStyle != null) {
		mesStyle = mStyle.innerHTML;
	}
	if ((mRegion) && ($(mRegion.innerHTML)))
	if (mTitle != null) {

			var sc = nitobi.html.getBodyArea();
			flashCallout = new nitobi.callout.Callout(mesStyle);
			if ((mRegion != null) && (mRegion.innerHTML.length > 0)) {
				flashCallout.attachToElement(mRegion.innerHTML);
				
			} else {
				flashCallout.setCalloutDirection(0);
				flashCallout.moveTo(sc.scrollLeft+(sc.clientWidth/2),sc.scrollTop+(sc.clientHeight/2));
			}
			flashCallout.setTitle(mTitle.innerHTML);
			flashCallout.setBody(mBody.innerHTML);	
			flashCallout.setExpire(10000);
			flashCallout.show();
	}
}

jiibe.messageHelpers.showMessage = function(itemid, mTitle, mBody, killtime) {
	 nitobi.callout.destroyAll();
	var mesStyle = "clean";
	if ($(itemid))
	if (mTitle != null) {
		//var sc = nitobi.html.getBodyArea();
		flashCallout = new nitobi.callout.Callout(mesStyle);
		flashCallout.attachToElement(itemid);	
		flashCallout.setTitle(mTitle);
		flashCallout.setBody(mBody);
		if (killtime != null)	
			flashCallout.setExpire(killtime);
		flashCallout.show();

	}
	
//	console.log(flashCallout );
	
}

jiibe.messageHelpers.showMessageVote = function(itemid,mBody) {

	var mesStyle = "clean";
	var mTitle = "Idea Action"
	if ($(itemid))
	if (mTitle != null) {
		flashCallout = new nitobi.callout.Callout(mesStyle);
		flashCallout.attachToElement(itemid);	
		flashCallout.setTitle(mTitle);
		flashCallout.setBody(mBody);	
		flashCallout.show();
	}
}

// Ajax Helpers ***************************************************************************

jiibe.ajaxHelpers = {}

jiibe.ajaxHelpers.tObj = null;

jiibe.ajaxHelpers.xhrObj = null;

jiibe.ajaxHelpers.setThrobber = function(domid) {
	var myC = nitobi.html.getCoords($(domid));

	if (!$(domid+"_wait")) {
		var me = nitobi.html.createElement('img', {"id":domid+"_wait", "src":"/images/spinner.gif"}, {"position":"absolute", "top":myC.y + "px", "left":myC.x + "px", "width":"16px", "height":"16px"});
		document.getElementsByTagName('body').item(0).appendChild(me);
	}
		
	$(domid+"_wait").style.display = 'block';
		
}

jiibe.ajaxHelpers.clearThrobber = function(domid) {
	var me = $(domid+"_wait");
	$(domid+"_wait").style.display = 'none';
}

jiibe.ajaxHelpers.fadeInSignup = function() {

	t = $('qBlockArea');
	i = nitobi.html.getCoords(t);
	var w = $('greyBoxFadeover');
	w.style.left = i.x + 'px'; 	w.style.top = i.y + 'px'; w.style.display = 'block';
	w.style.width = t.offsetWidth + 'px';	w.style.height = t.offsetHeight + 'px';
	jiibe.ajaxHelpers.tObj = new Effect.Opacity('greyBoxFadeover', {duration:0.5, transition: Effect.Transitions.linear, from:0.0, to:1.0, afterFinish:function() {jiibe.formHelpers.sendSignup();}});			
}

jiibe.ajaxHelpers.fadeOutSignup = function() {

	t = $('qBlockArea');
	i = nitobi.html.getCoords(t);
	var w = $('greyBoxFadeover');
	w.style.left = i.x + 'px'; 	w.style.top = i.y + 'px'; w.style.display = 'block';
	w.style.width = t.offsetWidth + 'px';	w.style.height = t.offsetHeight + 'px';		
	jiibe.ajaxHelpers.tObj = new Effect.Opacity('greyBoxFadeover', {duration:0.5, transition: Effect.Transitions.linear, from:1.0, to:0.0, afterFinish:function() {$('greyBoxFadeover').style.display = 'none';}});			
}

jiibe.ajaxHelpers.updateFavourites = function() {
	clearTimeout(jiibe.ajaxHelpers.tObj);
	var myS = "new Ajax.Request('/favourite/update', {asynchronous:true, evalScripts:true, onComplete:function(request){jiibe.ajaxHelpers.clearThrobber('myMatchingHolder')}, parameters:Form.serialize(document.forms['favsForm'])});";
	jiibe.ajaxHelpers.tObj = setTimeout(myS, 200);
	jiibe.ajaxHelpers.setThrobber('myMatchingHolder');
}

// Something is failing here with IE...
jiibe.ajaxHelpers.nextQuestion = function() {
	
	clearTimeout(jiibe.ajaxHelpers.tObj);
	var myS = "new Ajax.Request('/question/save', {asynchronous:true, evalScripts:true, parameters:Form.serialize(document.forms['surveyQForm']), onComplete:function(request){jiibe.ajaxHelpers.clearThrobber('myMatchingHolder');}});";	
	eval(myS);
}

jiibe.ajaxHelpers.rapidSaveObj = null;
jiibe.ajaxHelpers.rapidSaveAObj = null;
jiibe.ajaxHelpers.allowRapidSave = false;

jiibe.ajaxHelpers.rapidSave = function() {
	if (jiibe.ajaxHelpers.allowRapidSave) {
		jiibe.ntbSurvey.compileValues(true);
		clearTimeout(jiibe.ajaxHelpers.tObj);
		jiibe.ajaxHelpers.rapidSaveAObj = new Ajax.Request('/question/rapidsave', {asynchronous:true, evalScripts:true, parameters:Form.serialize(document.forms['surveyQForm']), onComplete:function(request){jiibe.ajaxHelpers.rapidSaveAObj = null}});
	}
}

jiibe.ajaxHelpers.runRapidSave = function() {
	if (jiibe.ajaxHelpers.allowRapidSave) {
		clearTimeout(jiibe.ajaxHelpers.rapidSaveObj);
		jiibe.ajaxHelpers.rapidSaveObj = setTimeout('jiibe.ajaxHelpers.rapidSave()', 400);
	}
}

jiibe.ajaxHelpers.previousQuestion = function() {
	clearTimeout(jiibe.ajaxHelpers.tObj);
	new Ajax.Request('/question/previous', {asynchronous:true, evalScripts:true, parameters:Form.serialize(document.forms['surveyQForm']), onComplete:function(request){}});
}

// Slider Helpers ***************************************************************************

jiibe.ntbSliders = {}

jiibe.ntbSliders.xMin = 0; jiibe.ntbSliders.yMin = 0;
jiibe.ntbSliders.xMid = 0;
jiibe.ntbSliders.xMax = 0; jiibe.ntbSliders.yMax = 0;
jiibe.ntbSliders.heightDiff = 37;

jiibe.ntbSliders.setSlider = function(whichSlider, newvalue) {
	slobj = $('jiibe' + whichSlider + 'Slider');
	newX = (((newvalue-1)/4)*(jiibe.ntbSliders.xMax-jiibe.ntbSliders.xMin))+jiibe.ntbSliders.xMin;
	slobj.style.left = (newX) + 'px';
}

jiibe.ntbSliders.slideSlider = function(whichSlider,newvalue) {
	
	var a = $('jiibe' + whichSlider + 'Slider');
	var c = jiibe.ntbSliders.getSlider(whichSlider);
	var cxdif = (((parseFloat(newvalue)-1)/4)*(jiibe.ntbSliders.xMax-jiibe.ntbSliders.xMin));
	var cscurrent = parseFloat($('jiibe' + whichSlider + 'Slider').style.left)-jiibe.ntbSliders.xMin;
	var finalval = parseInt(cxdif-cscurrent);

	// This is just sanity checking
	if (!isNaN(finalval)) {
		console.log(whichSlider + ' : ' + cxdif + ',' + cscurrent + '  (' + newvalue + ') : ' + finalval);
		new Effect.Move('jiibe' + whichSlider + 'Slider', {
			duration: 0.5,
			x: finalval,
			y: 0,
			mode: 'relative'
		});
	}
}

jiibe.ntbSliders.getSlider = function(whichSlider) {
	if (isNaN(jiibe.ntbSliders.xMin))
		jiibe.ntbSliders.xMin = 25;
	slobj = $('jiibe' + whichSlider + 'Slider');
	var currentX = parseInt(slobj.style.left);
	currentX = (((currentX-jiibe.ntbSliders.xMin)/(jiibe.ntbSliders.xMax-jiibe.ntbSliders.xMin))*4)+1;
	var result =  Math.round(currentX*10)/10;
	//console.log(result);
	return result;
}

jiibe.ntbSliders.setupSliders = function() {

	try {
		
		jiibe.ntbSurvey.setDisableCurrent();
		var i = nitobi.html.getCoords($('controlBox'));
		var a = $('jiibeCSlider');
		var b = $('jiibeISlider');
		jiibe.ntbSliders.xMin = i.x-28; jiibe.ntbSliders.yMin = i.y+17;	
		jiibe.ntbSliders.xMax = i.x+$('controlBox').offsetWidth-78; jiibe.ntbSliders.yMax = jiibe.ntbSliders.yMin;
		jiibe.ntbSliders.xMid = ((jiibe.ntbSliders.xMax-jiibe.ntbSliders.xMin)/2)+jiibe.ntbSliders.xMin;

		a.style.top = jiibe.ntbSliders.yMin + 'px';
		a.style.left = (jiibe.ntbSliders.xMid-100) + 'px';
		b.style.top = jiibe.ntbSliders.yMin+jiibe.ntbSliders.heightDiff + 'px';
		b.style.left = (jiibe.ntbSliders.xMid+100) + 'px';
		//debugger;
		if (!jiibe.ntbSurvey.setDisableCurrentv) {
			new Draggable("jiibeCSlider", {snap:function(x,y) { new_x = x; if (x < jiibe.ntbSliders.xMin) {new_x = jiibe.ntbSliders.xMin}; if (x > jiibe.ntbSliders.xMax) {new_x = jiibe.ntbSliders.xMax};new_y = jiibe.ntbSliders.yMin; return [ new_x, new_y ]; }})			
		} else {
			
		}
		
		new Draggable("jiibeISlider", {snap:function(x,y) { new_x = x; if (x < jiibe.ntbSliders.xMin) {new_x = jiibe.ntbSliders.xMin}; if (x > jiibe.ntbSliders.xMax) {new_x = jiibe.ntbSliders.xMax};new_y = jiibe.ntbSliders.yMin+jiibe.ntbSliders.heightDiff; return [ new_x, new_y ]; }})			

		jiibe.ntbSliders.resetSliders(0.4, 0,1.0);

		a.style.visibility = 'visible';	b.style.visibility = 'visible';	
		if (!jiibe.ntbSurvey.setDisableCurrentv) {
			nitobi.html.Css.setOpacity($('jiibeCSlider'), 20);
		}
	} catch(e) {}
	
}

jiibe.ntbSliders.homeSliderThrottle = null;

jiibe.ntbSliders.getHomeSliderInfo = function() {
	var a = jiibe.ntbSliders.getSlider('I');
	var b = jiibe.ntbSliders.getSlider('C');	
	document.forms["homeSliderForm"].islider.value = a;
	document.forms["homeSliderForm"].cslider.value = b;
	jiibe.ntbSurvey.effectObj = new Effect.Opacity('sidebarText', {duration:0.5, transition: Effect.Transitions.linear, from:1.0, to:0.0});		
	setTimeout("jiibe.ajaxHelpers.xhrObj = new Ajax.Request('/home/question/', {asynchronous:true, evalScripts:true, parameters:Form.serialize(document.forms['homeSliderForm'])});", 200);
}

jiibe.ntbSliders.checkRenderHomeResults = function(qResults) {
	var a = $('sidebarText');
	a.innerHTML = '<p class=blackTitle>' + qResults + '</p>';
	jiibe.ntbSurvey.effectObj = new Effect.Opacity('sidebarText', {duration:0.8, transition: Effect.Transitions.linear, from:0.0, to:1.0});			
}

jiibe.ntbSliders.setupHomeSliders = function() {

	if ($('home_box')) {
		jiibe.ntbSurvey.setDisableCurrent();
		var i = nitobi.html.getCoords($('home_box'));
		var a = $('jiibeCSlider');
		var b = $('jiibeISlider');
		jiibe.ntbSliders.xMin = 25; jiibe.ntbSliders.yMin = i.y+110;	
		jiibe.ntbSliders.xMax = i.x+370; jiibe.ntbSliders.yMax = jiibe.ntbSliders.yMin;
		jiibe.ntbSliders.xMid = ((jiibe.ntbSliders.xMax-jiibe.ntbSliders.xMin)/2)+jiibe.ntbSliders.xMin;
		//alert(jiibe.ntbSliders.yMin + ":" + jiibe.ntbSliders.heightDiff);
		a.style.top = jiibe.ntbSliders.yMin + 'px';
		a.style.left = (jiibe.ntbSliders.xMid-100) + 'px';
		b.style.top = jiibe.ntbSliders.yMin+jiibe.ntbSliders.heightDiff + 'px';
		b.style.left = (jiibe.ntbSliders.xMid+100) + 'px';

		new Draggable("jiibeCSlider", {snap:function(x,y) { clearTimeout(jiibe.ntbSliders.homeSliderThrottle); jiibe.ntbSliders.homeSliderThrottle = setTimeout("jiibe.ntbSliders.getHomeSliderInfo()", 500); new_x = x; if (x < 25) {new_x = 25}; if (x > jiibe.ntbSliders.xMax) {new_x = jiibe.ntbSliders.xMax};new_y = 205;  return [ new_x, new_y ]; }})			
		
		new Draggable("jiibeISlider", {snap:function(x,y) { clearTimeout(jiibe.ntbSliders.homeSliderThrottle); jiibe.ntbSliders.homeSliderThrottle = setTimeout("jiibe.ntbSliders.getHomeSliderInfo()", 500); new_x = x; if (x < 25) {new_x = 25}; if (x > jiibe.ntbSliders.xMax) {new_x = jiibe.ntbSliders.xMax};new_y = 205+37;  return [ new_x, new_y ]; }})			

		jiibe.ntbSliders.resetSliders(0.4, 0,1.0);

		a.style.visibility = 'visible';	b.style.visibility = 'visible';	
		if (!jiibe.ntbSurvey.setDisableCurrentv) {
			nitobi.html.Css.setOpacity($('jiibeCSlider'), 20);
		}
	}
	
}

jiibe.ntbSliders.resetSliders = function(totaltime,opac1, opac2) {
	var a = $('jiibeCSlider');
	var b = $('jiibeISlider');

	var cxdif = (jiibe.ntbSliders.xMid-7)-parseInt(a.style.left);
	var ixdif = (jiibe.ntbSliders.xMid+7)-parseInt(b.style.left);	
	if (opac1 != opac2) {
		if (jiibe.ntbSurvey.setDisableCurrentv) {
			nitobi.html.Css.setOpacity($('jiibeCSlider'), 20);
		} else {
			new Effect.Opacity('jiibeCSlider', {duration:totaltime, from:opac1, to:opac2});	
		}		
		
		new Effect.Opacity('jiibeISlider', {duration:totaltime, from:opac1, to:opac2});	
	}

	new Effect.Move ('jiibeCSlider',{ duration:totaltime, x: cxdif, y: 0, mode: 'relative'});
	new Effect.Move ('jiibeISlider',{ duration:totaltime, x: ixdif, y: 0, mode: 'relative'});	
}


// MiniSlider Helpers ***********************************************************************

jiibe.ntbMiniSliders = {}

jiibe.ntbMiniSliders.minX = 0;
jiibe.ntbMiniSliders.maxX = 0;
jiibe.ntbMiniSliders.minY = 0;
jiibe.ntbMiniSliders.dObj = null;

jiibe.ntbMiniSliders.setupMiniSlider = function() {

	var m = $('miniSlider');

	if (m) {
		
		g = $('miniGrabby');
		g.style.visibility = 'visible';
		
		var i = nitobi.html.getCoords(m);
		
		g.style.top = i.y-4 + 'px';
		jiibe.ntbMiniSliders.minY = i.y-4;
		
		jiibe.ntbMiniSliders.minX = i.x - (g.offsetWidth/2);
		jiibe.ntbMiniSliders.maxX = parseInt(i.x)+parseInt(m.offsetWidth) - (parseInt(g.offsetWidth)/2);
		jiibe.ntbMiniSliders.setSlider(0);
		jiibe.ntbMiniSliders.dObj = new Draggable("miniGrabby", {onEnd:function() {jiibe.browseJiibes.compileSearchForm();}, snap:function(x,y) { new_x = x; if (x < jiibe.ntbMiniSliders.minX) {new_x = jiibe.ntbMiniSliders.minX}; if (x > jiibe.ntbMiniSliders.maxX) {new_x = jiibe.ntbMiniSliders.maxX};new_y = jiibe.ntbMiniSliders.minY; jiibe.ntbMiniSliders.updateSliderVal(new_x, new_y); return [ new_x, new_y ]; }})
	}
}

jiibe.ntbMiniSliders.setSlider = function(xpos) {
	
	if (xpos > 1) {
		xpos = xpos/100;
	}
	var pp = ((jiibe.ntbMiniSliders.maxX-jiibe.ntbMiniSliders.minX)*xpos)+jiibe.ntbMiniSliders.minX;
	g = $('miniGrabby');
	g.style.left = pp + 'px';
		jiibe.ntbMiniSliders.updateSliderLabel(xpos);
	//$('fpercentageHolder').innerHTML = Math.round(xpos*100) + '%';
	
}

jiibe.ntbMiniSliders.updateSliderVal = function(x,y) {
	
	var xpos = (x-jiibe.ntbMiniSliders.minX)/(jiibe.ntbMiniSliders.maxX-jiibe.ntbMiniSliders.minX);
	
	jiibe.ntbMiniSliders.updateSliderLabel(xpos);
	
	if (xpos > 0.85)
		xpos = 0.85

	document.forms["filterForm"]["proximity"].value = Math.round(xpos*100)/100;
}

jiibe.ntbMiniSliders.updateSliderLabel = function(xposx) {
	var resString = "Minimum";
	
	if (xposx > 0.3)
		resString = "Average";

	if (xposx > 0.5)
		resString = "Good";
		
	if (xposx > 0.8)
		resString = "High";

	if (xposx > 0.9)
		resString = "Maximum";			

	//$('fpercentageHolder').innerHTML = Math.round(xpos*100) + '%';
	$('fpercentageHolder').innerHTML = resString;	
}


// Survey Helpers ***************************************************************************

jiibe.ntbSurvey = {}

jiibe.ntbSurvey.effectObj = null;

jiibe.ntbSurvey.isDirty = false;
jiibe.ntbSurvey.noTouchCount = 0;
jiibe.ntbSurvey.noActivityDidNotify = false;

jiibe.ntbSurvey.adjustQTextCovering = function() {
	var qF = $('questionFadeBlock');
	qB = $('qBlockAreamain');
	var i = nitobi.html.getCoords(qB);
	qF.style.top = i.y + 'px'; qF.style.left = i.x + 'px';
	qF.style.width = qB.offsetWidth + 'px'; qF.style.height = (140) + 'px';	
	qF.style.display = 'block';	
}

jiibe.ntbSurvey.backOrForward = '';

jiibe.ntbSurvey.setQuestionTransition = function(whichone) {

	jiibe.ntbSurvey.backOrForward = whichone;
	if (whichone == 'f')
		jiibe.ntbSliders.resetSliders(0.3, 1.0, 1.0);

		
		jiibe.ajaxHelpers.setThrobber('qSurvey' + whichone + 'Wait');
		jiibe.ntbSurvey.adjustQTextCovering();
	
		var t = $('nextbut');
		var i = nitobi.html.getCoords(t);
		
		var w = $('waitbut');
		w.style.left = i.x + 'px';
		w.style.top = i.y + 'px';
		w.style.display = 'block';
		
		t = $('skipbut');
		i = nitobi.html.getCoords(t);
		var w = $('skipdisbut');
		w.style.left = i.x + 'px';
		w.style.top = i.y + 'px';
		w.style.display = 'block';
		t = $('backbut');
		
		i = nitobi.html.getCoords(t);
		var w = $('backdisbut');
		w.style.left = i.x + 'px';
		w.style.top = i.y + 'px';
		w.style.display = 'block';

	jiibe.ntbSurvey.effectObj = new Effect.Opacity('questionFadeBlock', {duration:0.8, transition: Effect.Transitions.linear, from:0.2, to:1.0, afterFinish:jiibe.ntbSurvey.checkRenderQText});		
}

jiibe.ntbSurvey.compileValues = function(doSave) {
	var cv = "";
	var iv = "";
	var j=document.forms["surveyQForm"];
	if (doSave) {
		cv = Number(jiibe.ntbSliders.getSlider('C'));
		iv = Number(jiibe.ntbSliders.getSlider('I'));		
		
		if (jiibe.ntbSurvey.scoringReversed) {
			cv = 4-(cv-1)+1;
			iv = 4-(iv-1)+1;	
		}
	}
	j.current.value = cv;
	j.ideal.value = iv;	
	//console.log('(' + cv + ':' + iv + ') (' + Number(jiibe.ntbSliders.getSlider('C')); + ':' + Number(jiibe.ntbSliders.getSlider('I')); + ')')
	j.question_id.value = $('question_id_div').innerHTML;	
}

jiibe.ntbSurvey.loadPrevious = function() {
	try {jiibe.ntbSurvey.effectObj.cancel();} catch(e) {}
	jiibe.ntbSurvey.compileValues(false);
	jiibe.ntbSurvey.setQuestionTransition('b');
	jiibe.ajaxHelpers.previousQuestion();
	
	
}

jiibe.ntbSurvey.loadNext = function(doSave) {
	
	if (!jiibe.ntbSurvey.isDirty) {
		if (doSave)
		jiibe.ntbSurvey.noTouchCount ++;	
		if (jiibe.ntbSurvey.noTouchCount > 1) {
			if (!jiibe.ntbSurvey.noActivityDidNotify) {
				jiibe.ntbSurvey.noActivityDidNotify = true;
				jiibe.messageHelpers.showMessage('skipbut', 'Don\'t forget..', 'You should read the question and then rate your current and ideal companies by moving the sliders with your mouse.<br><br>If you don\'t like a question, just press <b>Skip</b>.', 16000);
			}
		}
	} else {
		jiibe.ntbSurvey.noTouchCount = 0;
	}
	jiibe.ntbSurvey.isDirty = false;
	
	try {jiibe.ntbSurvey.effectObj.cancel();} catch(e) {}

	jiibe.ntbSurvey.compileValues(doSave);			
	jiibe.ntbSurvey.setQuestionTransition('f');
	jiibe.ajaxHelpers.nextQuestion();
}

jiibe.ntbSurvey.checkBackOk = function() {
	var backok = false;
	var bo = $('backok');
	if (bo) {
		if (bo.innerHTML.length > 0) {
			backok = true;
		}
	}
	if (!backok) {
		try {
			t = $('backbut');
			i = nitobi.html.getCoords(t);
			var w = $('backdisbut');
			w.style.left = i.x + 'px'; 	w.style.top = i.y + 'px'; w.style.display = 'block';			
		} catch(e) {}
	}
	
}

jiibe.ntbSurvey.scoringReversed = false;

jiibe.ntbSurvey.checkQReversed = function() {
	try {
		var q_reverse = $('q_reverse').innerHTML;
		if (q_reverse == 'true') {
			jiibe.ntbSurvey.scoringReversed = true;
		} else {
			jiibe.ntbSurvey.scoringReversed = false
		}	
	} catch(e) {}
}

jiibe.ntbSurvey.presentQuestion = function() {
	
	try {jiibe.ntbSurvey.effectObj.cancel();} catch(e) {}
	var c = $('currentval');
	var i = $('idealval');
	if (c) {
	if (c.innerHTML.length > 0 && !isNaN(parseFloat(c.innerHTML))) {
		jiibe.ntbSliders.slideSlider('C', parseFloat(c.innerHTML));
	}
	if (i.innerHTML.length > 0 && !isNaN(parseFloat(i.innerHTML))) {
		jiibe.ntbSliders.slideSlider('I', parseFloat(i.innerHTML));
	}}

	var qF = $('questionFadeBlock');
	qB = $('qBlockAreamain');
	jiibe.ntbSurvey.checkQReversed();
	if (document.all) {
		jiibe.ajaxHelpers.clearThrobber('qSurvey' + jiibe.ntbSurvey.backOrForward + 'Wait');
		$('questionFadeBlock').style.display = 'none';
				var w = $('waitbut');
				if (w) 
					w.style.display = 'none';
				w = $('skipdisbut');
				if (w) 
					w.style.display = 'none';
				w = $('backdisbut');
				if (w) 
					w.style.display = 'none';
	}
	else {
		jiibe.ntbSurvey.effectObj = new Effect.Opacity('questionFadeBlock', {
			duration: 0.8,
			transition: Effect.Transitions.linear,
			from: 1.0,
			to: 0.0,
			afterFinish: function(){
				jiibe.ajaxHelpers.clearThrobber('qSurvey' + jiibe.ntbSurvey.backOrForward + 'Wait');
				var w = $('waitbut');
				if (w) 
					w.style.display = 'none';
				w = $('skipdisbut');
				if (w) 
					w.style.display = 'none';
				w = $('backdisbut');
				if (w) 
					w.style.display = 'none';
				jiibe.ntbSurvey.checkBackOk();
			}
		});
	}
	//jiibe.ntbSurvey.updateProgress(false);
	jiibe.ntbSurvey.setDisableCurrent();
}

jiibe.ntbSurvey.setDisableCurrentv = false;

jiibe.ntbSurvey.setDisableCurrent = function() {

	if ($('disableCurrents')) {
		jiibe.ntbSurvey.setDisableCurrentv = true;
	}
}

jiibe.ntbSurvey.checkRenderQText = function() {
	var t = $('hiddenQText');
	
	if (t.innerHTML.length > 1) {

		qB = $('qBlockAreamain');
		var af = t.innerHTML;
		t.innerHTML = '';
		qB.innerHTML = af;

		jiibe.ntbSurvey.executeJsAction();
		jiibe.ntbSurvey.adjustQTextCovering();
		jiibe.ntbSurvey.presentQuestion();
	} else {
		setTimeout('jiibe.ntbSurvey.checkRenderQText()', 100);
		
	}
	
}

jiibe.ntbSurvey.progMin = 0;
jiibe.ntbSurvey.progMax = 0;

jiibe.ntbSurvey.setupProgress = function() {
	try {
		var spot = $('prog_spot');
		var prog = $('prog_bar');
		var progc = nitobi.html.getCoords(prog);
		jiibe.ntbSurvey.progMin = parseInt(progc.x);
		jiibe.ntbSurvey.progMax = parseInt(progc.x)+parseInt(prog.offsetWidth)-4;
		spot.style.left = progc.x + 'px';
		spot.style.top = progc.y-9 + 'px';
		spot.style.display = 'block';
		spot.style.visibility = 'hidden';
		if (nitobi.browser.IE6) {
			spot.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'/images/prog_spot.png\', sizingMethod=\'crop\');';
		} else {
			spot.style.backgroundImage = 'url(\'/images/prog_spot.png\')';
		}
		jiibe.ntbSurvey.setProgress(0,true);
		//jiibe.ntbSurvey.updateProgress(true);
	} catch(e) {}
	
}

jiibe.ntbSurvey.curProg = 0;
jiibe.ntbSurvey.curPercent = 0;

jiibe.ntbSurvey.setProgress = function(percentComplete,instant) {
	if (percentComplete < jiibe.ntbSurvey.curPercent) {
		instant = true;
	}
	jiibe.ntbSurvey.curPercent = percentComplete;
	var spot = $('prog_spot');
	spot.style.visibility = 'visible';
	var destLeft = (percentComplete*(jiibe.ntbSurvey.progMax-jiibe.ntbSurvey.progMin));
	var curLeft = jiibe.ntbSurvey.curProg;
	var resultLeft = ((destLeft-curLeft)/7)+curLeft;
	
	if (instant) {
		resultLeft = destLeft;
	}
	
	var resPercent = '0%';
	resPercent = Math.round(((resultLeft)/(jiibe.ntbSurvey.progMax-jiibe.ntbSurvey.progMin))*100) + '%';
	if (instant) {
		resPercent = Math.round(percentComplete*100) + '%';
		curLeft = destLeft;
	}	
	if (resultLeft < 0)
		resultLeft = 0;

	jiibe.ntbSurvey.curProg = resultLeft;
	
	spot.style.left = (resultLeft + jiibe.ntbSurvey.progMin-10) + 'px';
	var sText = $('percentCompleteT');
	sText.innerHTML = resPercent;
	if (Math.round(curLeft) < Math.round(destLeft)) {
		setTimeout("jiibe.ntbSurvey.setProgress(" + percentComplete + ", false)", 15);
	}
}

jiibe.ntbSurvey.updateProgress2 = function(){
	var total = parseInt($('total_answered1').innerHTML);
	$('total_answered1').innerHTML = total + 1;
	$('total_answered2').innerHTML = total + 1;
}

jiibe.ntbSurvey.updateProgress = function(instant) {
	var cp = $('current_progress');
	var pl = $('stage_label');
	var plr = $('ProgLabel');
	if (cp) {
		jiibe.ntbSurvey.setProgress(parseFloat(cp.innerHTML), false);	
		plr.innerHTML = pl.innerHTML;
	}
	
}

jiibe.ntbSurvey.executeJsAction = function() {
	var cp = $('jsaction');
	if (cp) {
		eval(cp.innerHTML);
	}
	
}

jiibe.poll = {}
jiibe.poll.addOptions = function(e) {
	var s = '';
	for(var i = 0;i < e.value;i++) {
		s += (i+1) + '. <input type="text" id="answer_'+i+'" style="width:300px;margin-bottom:4px;" name="answer_'+i+'" value="" /><br />'
	}
	$('add_options').innerHTML = s;
}


jiibe.poll.loadNext = function(doSave){
	if (doSave) {
		jiibe.ajaxHelpers.xhrObj = new Ajax.Request("/poll/save/", {
			asynchronous: true,
			evalScripts: true,
			//onComplete: jiibe.poll.showResults,
			parameters: Form.serialize($('pollQForm'))
		});
	}
	else {
		// this should redirect the page to diialog/survey
		window.location='/diialog/survey';
	}
}

jiibe.poll.loadPrevious = function() {
	// this is a hack, but will work for right now
	jiibe.poll.loadNext(false);
}


// This is done on the server...
jiibe.poll.showResults = function(){
}

jiibe.poll.updateHeight = function(str) {
	var gra = str.split(",");
	
	for(var i=0;i<gra.length;i++) {
		if (gra[i] != '') {
			var e = gra[i].split(":");
			if ($(e[0])) {
				$(e[0]).style.height = e[1] + '%';
				jiibe.poll.effectObj = new Effect.Opacity('poll_results_container', {duration:0.5, transition: Effect.Transitions.linear, from:0.0, to:1.0});	
			}
		}
	}
	
}

// Browser Helpers ***************************************************************************

jiibe.ntbBrowser = {}

jiibe.ntbBrowser.alphaString = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src=';

jiibe.ntbBrowser.getBrowserDeets = function() {
	
	jiibe.ntbBrowser.ie = false;
	jiibe.ntbBrowser.ie7 = false;
	jiibe.ntbBrowser.firefox = false;
	jiibe.ntbBrowser.opera = false;
	var agent = navigator.userAgent.toLowerCase(); 	
	if (agent.indexOf("opera") != -1) {jiibe.ntbBrowser.opera = true;}
	if(agent.indexOf("firefox")!=-1){ jiibe.ntbBrowser.firefox = true; }
	if (agent.indexOf("msie") != -1) {jiibe.ntbBrowser.ie = true;}
	if (agent.indexOf("msie 7.0") != -1) {jiibe.ntbBrowser.ie7 = true;}		
}

// BROWSING RESULTS HELPERS ***************************************************************************

jiibe.browseResults = {}

jiibe.browseResults.data = Array();

jiibe.browseResults.isStartup = true;

jiibe.browseResults.parseData = function() {
	sD = $('searchResultsData');
	
	if (sD) {
		// OK there is data here.. lets work it
		jiibe.browseResults.data.length = 0;
		
		jiibe.browseResults.data = sD.innerHTML.split('||:||');
		
		for (i = 0; i < jiibe.browseResults.data.length; i++) {
			jiibe.browseResults.data[i] = jiibe.browseResults.data[i].split('::');
		}

		if (jiibe.browseResults.isStartup) {
			jiibe.browseResults.isStartup = false;
			// NOW RENDER OUT THE WHOLE THING QUICKLY
			for (i = 0; i < jiibe.browseResults.data.length; i++) {
				jiibe.browseResults.renderCompany(i, i);
				//nitobi.html.Css.setOpacity($('c' + i), 0);
			}
		}		
	}
		
}

jiibe.browseResults.renderCompany = function(dataIndex, tableIndex) {
	
	if (tableIndex < 6) {
		var resString = "";
		var c = $('br' + tableIndex);
		if (jiibe.browseResults.data.length > dataIndex) {
			if (jiibe.browseResults.data[dataIndex][0]) {
			resString += "<div id=\"company_holder" + jiibe.browseResults.data[dataIndex][6] + "\" class=resultsCellEmpty>";
			if (Number(jiibe.browseResults.data[dataIndex][1]) > 0) {
				resString += "<table width=\"100%\" cellpadding=0 cellspacing=0><tr><td width=30><a href=\"/companies/" + jiibe.browseResults.data[dataIndex][7] + "\"><img src=/images/login.png width=25 height=24 border=0 onmouseout=\"this.src='/images/login.png'\" onmouseover=\"this.src='/images/login_on.png'\"></a></td><td style=\"white-space:nowrap; \"><div style=\"width:155px; overflow-x: hidden;\"><p class=\"qText qTextBlack\"><a href=\"/companies/" + jiibe.browseResults.data[dataIndex][7] + "\" class=greyLink title=\"" + jiibe.browseResults.data[dataIndex][0] + "\">" + jiibe.stringHelpers.trim_string(jiibe.browseResults.data[dataIndex][0],13) + "</a></p></div></td><td align=right style=\"white-space:nowrap;\"><p class=\"qText qTextBlue\">" + String(jiibe.browseResults.data[dataIndex][1]) + "% <span class=smallerGrey>match</span></p></td></tr></table>";				
			} else {
				resString += "<table width=\"100%\" cellpadding=0 cellspacing=0><tr><td width=30><a href=\"/companies/" + jiibe.browseResults.data[dataIndex][7] + "\"><img src=/images/login.png width=25 height=24 border=0 onmouseout=\"this.src='/images/login.png'\" onmouseover=\"this.src='/images/login_on.png'\"></a></td><td style=\"white-space:nowrap; \"><div style=\"width:200px; overflow-x: hidden;\"><p class=\"qText qTextBlack\"><a href=\"/companies/" + jiibe.browseResults.data[dataIndex][7] + "\" class=greyLink title=\"" + jiibe.browseResults.data[dataIndex][0] + "\">" + jiibe.stringHelpers.trim_string(jiibe.browseResults.data[dataIndex][0],18) + "</a></p></div></td></tr></table>";				
			}
			
			resString += "<div style=\"height:55px; overflow-y: hidden;\"><p>" + jiibe.stringHelpers.trim_string(jiibe.browseResults.data[dataIndex][2],120) + "</p></div>";
			resString += "<div style=\"height:110px; overflow-y: hidden;\">";
			resString += jiibe.jiibeDraw.ouputJiibe(jiibe.browseResults.data[dataIndex][3]);
			//resString += "</div><a href=\"/companies/" + jiibe.browseResults.data[dataIndex][7] + "\"><img src=/images/moredetails_small.png width=97 height=32 border=0 onmouseout=\"this.src='/images/moredetails_small.png'\" onmouseover=\"this.src='/images/moredetails_small_on.png'\"></a></div>";
			resString += "</div></div>";
			
			resString += "<div class=hiddenMessage id=job_count" + jiibe.browseResults.data[dataIndex][6] + ">" + jiibe.browseResults.data[dataIndex][5] + "</div><div class=hiddenMessage id=buzz_factor" + jiibe.browseResults.data[dataIndex][6] + ">" + jiibe.browseResults.data[dataIndex][4] + "</div>";	
			resString += "<div class=hiddenMessage id=cidt" + tableIndex + ">" + jiibe.browseResults.data[dataIndex][6] + "</div>";
			}
		}
			
		c.innerHTML = resString;
	}
	
}

// Results
jiibe.results = {}

jiibe.results.toggle = function(id){
	$('idea_table').style.display = 'none';
	$('team_table').style.display = 'none';
	$('company_table').style.display = 'none';
	$(id).style.display = 'block';

	// remove the classes on tabs
	nitobi.html.Css.removeClass($('idea_table_tab'),'sel');
	nitobi.html.Css.removeClass($('team_table_tab'),'sel');
	nitobi.html.Css.removeClass($('company_table_tab'),'sel');
	nitobi.html.Css.addClass($(id + '_tab'),'sel');

	return false;
}

jiibe.results.compare = function() {
	var value = $('current_company').value;
	jiibe.ajaxHelpers.xhrObj = new Ajax.Request("/diialog/get_results/", {asynchronous:true, evalScripts:true,onComplete:jiibe.results.update,parameters:{cname:value}});	
}


jiibe.results.handler = function(e) {
	var el = Event.element(e).id;
	try{ flashCallout.destroy(); } catch(el){} 
	jiibe.messageHelpers.showMessage(el,this.title,this.body,null);
}


jiibe.results.update = function(request) {
	var values = request.responseText;
	var n = values.split("=");
	for (var i=0;i<n.length;i++) {
		if (n[i] != '') {
			var c = n[i].split(":");
			if (c[1] != '399') {
				if (c[1] >= 98 && c[1] <= 101) {
					precent = c[1] - 4;
				} else {
					precent = c[1];
				}
				
				
				var obj = { value:c[1], title:c[2], body:c[3] }
							

				$('compare_' + c[0]).style.left = precent + '%';
				$('compare_' + c[0]).style.display = 'block';
				jiibe.results.effectObj = new Effect.Opacity('compare_' + c[0], {duration:0.5, transition: Effect.Transitions.linear, from:0.0, to:1.0});	
				
				Event.observe('compare_' + c[0], 'mouseover', jiibe.results.handler.bindAsEventListener(obj));
				

			} else {
				$('compare_' + c[0]).style.display = 'none';
			} 	
		}
	}
}

// Jiibe Vote
jiibe.vote = {}
jiibe.vote.voteFor = function(id) {
	jiibe.ajaxHelpers.xhrObj = new Ajax.Request("/diialog/add_vote/"+ id, {asynchronous:true, evalScripts:true,onComplete:jiibe.vote.update,parameters:{uid:id}});
}
jiibe.vote.update = function(request){
	if (request.responseText == 'f1') {
		alert("You cannot vote for your own idea.")
	} else {
		a = request.responseText.split(':')
		
		var id = a[0];
		var total_points = a[1];
		
		var id2 = a[2];
		var user_points = a[3];
		
		$('mypoints1').innerHTML = total_points;
		
		if ($('mypoints2')) {
			$('mypoints2').innerHTML = total_points;
		}

		if ($('topuser_' + id2)) {
			$('topuser_' + id2).innerHTML = user_points;
		}

			
		var el = $('vote_' + id);
		var el2 = $('star_' + id);
		var v = el.innerHTML;
		el.innerHTML = (parseInt(v) + 1);
		el2.src = '/images/vote_star_sel.png';
		el2.style.cursor = 'none';
		el2.onclick = null;
	}
}

jiibe.vote.showAction = function(eid,msg) {
	try{ flashCallout.destroy(); } catch(e){}
	var id = eid.split('_')[1];
	var str = "<div id='eip_" + id + "'><span id='msg_" + id + "'>" + msg  + "</span><div align='right' style='margin-top:15px;'><button onclick='jiibe.vote.editActionForm("+id+");'>Edit</button></div></div>";
	jiibe.messageHelpers.showMessageVote(eid,str);
	return false;
}

jiibe.vote.showActionForm = function(eid,id) {
	try{ flashCallout.destroy(); } catch(e){}
	var msg = '<form onsubmit="jiibe.vote.submitActionForm(this);return false;" ><input type="hidden" name="id" value="'+id+'" /><textarea style="width:200px;height:70px" name="text" value=""></textarea><button name="submit" >Add Action</button></form>'
	jiibe.messageHelpers.showMessageVote(eid,msg);	
	return false;
}

// This is like a edit in place
jiibe.vote.editActionForm = function(id) {
	var s = $('msg_'+id).innerHTML;
	s = s.replace(/<br>/g,'\n');
	var msg = '<form onsubmit="jiibe.vote.submitActionForm(this);return false;" ><input type="hidden" name="id" value="'+id+'" /><textarea style="width:200px;height:70px" name="text" value="'+s+'">'+s+'</textarea><div align="right"><button name="submit">Edit Action</button></div></form>';
	flashCallout.setSize(200,90);
	$('eip_'+ id).innerHTML = msg;
}

jiibe.vote.submitActionForm = function(form){
	jiibe.ajaxHelpers.xhrObj = new Ajax.Request("/diialog/add_action", {asynchronous:true, evalScripts:true,onComplete:jiibe.vote.updateAction,parameters:Form.serialize(form)});
}

jiibe.vote.updateAction = function(request) {
	flashCallout.destroy();
	if (request.responseText != 'f1') {
		var obj = eval('(' + request.responseText + ')');
		var text = obj.text;
		if ($('action_'+ obj.id)) {
			$('action_'+ obj.id).innerHTML = '<a href="#" onclick="jiibe.vote.showAction(\'action_'+obj.id+'\',\''+text+'\')">Yes</a>';				
		}
		if ($('actionList_' + obj.id)) {
			$('actionList_' + obj.id).innerHTML = '<a href="#" onclick="jiibe.vote.showAction(\'actionList_' + obj.id + '\',\'' + text + '\')">Yes</a>';
		}
		$('mypoints1').innerHTML = obj.points;
		$('mypoints2').innerHTML = obj.points;
		
	}
}

// Search toolbar tools *******************************************************************

jiibe.browseJiibes = {}

jiibe.browseJiibes.isLoaded = false;
jiibe.browseJiibes.hasLoaded = false;

jiibe.browseJiibes.fadeArr = Array();

jiibe.browseJiibes.showExtras = false;

jiibe.browseJiibes.expandCollapseExtras = function() {
	var a = $('search_extra_results');
	if (jiibe.browseJiibes.showExtras) {
		$('additional_listings').style.display = 'none';
		a.innerHTML = "<a href=\"#\" onclick=\"return jiibe.browseJiibes.expandCollapseExtras();\" class=\"greyLink\">Click here for additional results.</a>";
		jiibe.browseJiibes.showExtras = false;
	} else {
		$('additional_listings').style.display = 'block';
		a.innerHTML = "<a href=\"#\" onclick=\"return jiibe.browseJiibes.expandCollapseExtras();\" class=\"greyLink\">Click here to hide these additional results.</a>";		
		jiibe.browseJiibes.showExtras = true;
	}	
	return false;
}

jiibe.browseJiibes.renderExtraResults = function() {
	var resString = "";
	
	try {
		for (var i=6; i<jiibe.browseResults.data.length-1; i++) {
			resString += "<div class=extra_listings><p class=\"blackTitle noPadding\">" + jiibe.browseResults.data[i][0] + "</p></div>";
	
		}
		
		$('additional_listings').innerHTML = resString;
	} catch(e) {}
}

jiibe.browseJiibes.compileSearchForm = function() {

	jiibe.browseJiibes.isLoaded = false;
	try{jiibe.ajaxHelpers.xhrObj.transport.abort();} catch(e) {}
	jiibe.ajaxHelpers.xhrObj = new Ajax.Request("/browse/jiibes/", {asynchronous:true, evalScripts:true, onComplete:function(request){jiibe.browseJiibes.isLoaded = true; }, parameters:Form.serialize(document.forms['filterForm'])});
	for (var i=0; i <6; i++)
	{
		jiibe.browseJiibes.fadeArr[i] = {};
		clearTimeout(jiibe.browseJiibes.fadeArr[i].timerObj);
		jiibe.browseJiibes.fadeArr[i].timerObj = setTimeout("jiibe.browseJiibes.fadeSquare(" + i + ")",Math.round(Math.random()*2500));
		var a = $('c' + i);
		a.style.display = 'block';
		c = $('br' + i);
		var b = nitobi.html.getCoords(c);
		a.style.top = b.y + 'px';
		a.style.left = b.x + 'px';		
		a.style.width = c.offsetWidth + 'px';
		a.style.height = c.offsetHeight + 'px';	
		if (!jiibe.browseJiibes.hasLoaded)
			nitobi.html.Css.setOpacity($('c' + i), 0);
	}
	jiibe.browseJiibes.hasLoaded = true;
}

jiibe.browseJiibes.fadeSquare = function(id) {
	var io = nitobi.html.Css.getOpacity($('c' + id))/100;
	try {jiibe.browseJiibes.fadeArr[id].fadr.cancel();} catch(e) {}
	jiibe.browseJiibes.fadeArr[id].fadr = new Effect.Opacity('c' + id, {duration:0.8, transition: Effect.Transitions.linear, from:io, to:1.0, afterFinish:function() {jiibe.browseJiibes.renderSquare(id); }});
}

jiibe.browseJiibes.searchResultCount = 6;

jiibe.browseJiibes.setNoResultsBlock = function() {
	a = $('noresults_message');
	b = $('br0');
	var c = nitobi.html.getCoords(b);
	a.style.top = c.y+15 + 'px';
	a.style.left = c.x+15 + 'px';	
	a.style.display = 'block';	
	
}

jiibe.browseJiibes.resetControls = function() {
	var a = document.forms["filterForm"];
	for(var i=0; i<a.elements.length; i++)
	{
		if (a.elements[i].type == "text") {
			a.elements[i].value = "";
		}
		if (a.elements[i].type == "select-one") {
			a.elements[i].value = 0;
		}				
	}
	jiibe.ntbMiniSliders.setSlider(0.5);
	jiibe.browseJiibes.compileSearchForm();
}

jiibe.browseJiibes.renderSquare = function(id) {
	if (jiibe.browseJiibes.isLoaded) {
		try {	
		var cid = Number($('cidt' + id).innerHTML);
		jiibe.jiibeDraw.killDetails("company_holder" + cid);
		} catch(e) {}
		if (id == 0) {
			if (jiibe.browseJiibes.searchResultCount == 0) {
				jiibe.browseJiibes.setNoResultsBlock();
				$('additional_listings').innerHTML = "";
				$('search_extra_results').style.visibility = 'hidden';				
			} else {
				$('noresults_message').style.display = 'none';
				if (jiibe.browseJiibes.searchResultCount > 6) {
					jiibe.browseJiibes.renderExtraResults();				
					$('search_extra_results').style.visibility = 'visible';					
				} else {
					$('additional_listings').innerHTML = "";
					$('search_extra_results').style.visibility = 'hidden';
				}

			}
			
			
		}
		
		var io = nitobi.html.Css.getOpacity($('c' + id))/100;

		jiibe.browseResults.renderCompany(id, id);
		try {jiibe.browseJiibes.fadeArr[id].fadr.cancel();} catch(e) {}
		clearTimeout(jiibe.browseJiibes.fadeArr[id].timerObj);
		jiibe.browseJiibes.fadeArr[id].timerObj = setTimeout("jiibe.browseJiibes.fadeArr[" + id + "].fadr = new Effect.Opacity('c" + id + "', {duration:0.8, transition: Effect.Transitions.linear, from:" + io + ", to:0.0, afterFinish:function() {$('c" + id + "').style.display = 'none'; }});", Math.round(Math.random()*1000))
		jiibe.jiibeDraw.checkforDetails();
	} else {
		setTimeout("jiibe.browseJiibes.renderSquare(" + id + ")", 100);
	}
}

// startup function ***********************************************************************

jiibe.startup = function() {

	jiibe.ntbBrowser.getBrowserDeets();
	//nitobi.html.Css.precacheImages();
	jiibe.ntbSliders.setupHomeSliders();
	jiibe.formHelpers.eraseLogin();
	jiibe.ntbSliders.setupSliders();
	jiibe.ntbSurvey.executeJsAction();
	jiibe.ntbSurvey.checkBackOk();
	//jiibe.ntbSurvey.setupProgress();
	jiibe.jiibeDraw.checkForJiibes();
	jiibe.jiibeDraw.showHelp();
	jiibe.ntbMiniSliders.setupMiniSlider();
	jiibe.browseResults.parseData();
	jiibe.jiibeDraw.checkforDetails();
	jiibe.browseJiibes.renderExtraResults();
	jiibe.formHelpers.initVariousCalendars();
	jiibe.contacts.setupContacts();
	jiibe.ntbSurvey.checkQReversed();
	jiibe.messageHelpers.showError();
}

