/**
 * File: ajax/treatment_selection.js
 * Handles the auto complete on the "my treatements" page
 * when joining a community
 *
 * Copyright:
 * 	2007 DailyStrength.org
 */
var ua = navigator.userAgent.toLowerCase();
if(ua.indexOf('firefox')!=-1) { 
	isf = 1;
} else if(ua.indexOf('msie')!=-1) {
	isf = 2;
} else {
	isf = 0; 
}
var treat_no = 2;
var current_tid = '';

/**
 * Function: add_treat
 * Handles the link on the commnuity edit
 * add page "+ Add Another Treatment  "
 * 
 * Parameters:
 * 	
 * Returns:
 * 	
 */
function add_treat() {
	
	if (treat_no >= 6) {
		var oTreatRow1 = YAHOO.util.Dom.get("add_treat_row");
		YAHOO.util.Dom.setStyle(oTreatRow1, 'display', 'none');
	}

	var oTreatRow1 = YAHOO.util.Dom.get("treat_1_row");
	var oNewTreatRow = oTreatRow1.cloneNode(true);
	oNewTreatRow.id = "treat_"+treat_no+"_row";
	var nodes = oNewTreatRow.childNodes;

	current_tid = treat_no;
	
	if (isf == 1) {
		nodes[0].innerHTML = '<span class="titleCell">#'+treat_no+' Treatment Name:</span><br><span class="graytext" style="font-size:11px;">(e.g. "Lipitor" or "Running")</span>';
		
		var cntNodes = nodes[1].childNodes;
		var inputs = cntNodes[0].childNodes;
		
		inputs[0].name="tname"+treat_no;
		inputs[0].id="query"+treat_no;
		inputs[0].value="";
		inputs[1].name='tid'+treat_no;
		inputs[1].id='tid'+treat_no;
		inputs[1].value='';
	} else {
		nodes[0].innerHTML = '<span class="titleCell">#'+treat_no+' Treatment Name:</span><br><span class="graytext" style="font-size:11px;">(e.g. "Lipitor" or "Running")</span>';
		var moreNodes = nodes[1].childNodes;
		
		moreNodes[0].innerHTML = '<div id="trtdiv'+treat_no+'"><input id="query'+treat_no+'" type="text" name="tname'+treat_no+'" style="width: 250px;"><input type="hidden" name="tid'+treat_no+'" id="tid'+treat_no+'" value=""><div id="treatmentCnt'+treat_no+'"></div></div>';
	}

	var oTreatStatusRow = YAHOO.util.Dom.get("treat_status_1");
	var oNewTreatStatusRow = oTreatStatusRow.cloneNode(true);
	oNewTreatStatusRow.id = "treat_status_"+treat_no;
	snodes = oNewTreatStatusRow.childNodes;

	if (isf==0) {
		snodes[1].innerHTML = "<select name=\"tstatus"+treat_no+"\"><option value='1'>Working / Worked</option><option value='2'>Somewhat Helpful</option><option value='3'>Not Working</option><option value='4'>Too Soon To Tell</option><option value='5'>Considering</option></select>";
	} else {
		var moreNodes = snodes[1].childNodes;
		moreNodes[0].setAttribute("name", "tstatus"+treat_no);
	}

	// add describe row
	var oDescRow = document.createElement("TR");
	var oDescTd1 = document.createElement("TD");
	oDescTd1.setAttribute("align", "right");
	oDescTd1.setAttribute("valign", "top");
	oDescTd1.innerHTML = '<span class="titleCell">Describe your experience:</span>';
	var oDescTd2 = document.createElement("TD");
	oDescTd2.innerHTML = '<td><textarea name="texperience' + treat_no + '" id="tname_desc_' + treat_no + '" style="width:70%" rows="3" maxlength="500" onkeyup="displayLimitWarning(this, \'tname_'+treat_no+'_warning\', 500)"></textarea><br><span class="graytext" style="font-size:11px;">(e.g. Did it work, Side effects, Dosage, etc.)</span><br /><span id="tname_'+treat_no+'_warning"></span></td>';
	oDescRow.appendChild(oDescTd1);
	oDescRow.appendChild(oDescTd2);

	var frag = document.createDocumentFragment();
	var oTr = document.createElement("TR");
	var oTd = document.createElement("TD");
	oTd.setAttribute("colspan","2");
	oTd.setAttribute("style", "padding-bottom:8px");
	oTd.innerHTML = '<div class="dottedbottom" style="height:3px;margin-bottom:4px;"></div>';
	oTr.appendChild(oTd);
	if (isf==0) {
		var oTd2 = document.createElement("TD");
		oTd2.setAttribute("style", "padding-bottom:8px");
		oTd2.innerHTML = '<div class="dottedbottom" style="height:3px;margin-bottom:4px;"></div>';
		oTr.appendChild(oTd2);
	}
	frag.appendChild(oTr);

	var oAdd = YAHOO.util.Dom.get("add_treat_row");
	var oAddTb = oAdd.parentNode;
	oAddTb.insertBefore(frag, oAdd);
	oAddTb.insertBefore(oNewTreatRow, oAdd);
	oAddTb.insertBefore(oNewTreatStatusRow, oAdd);
	oAddTb.insertBefore(oDescRow, oAdd);

	if (treat_no <= 2) {
		var oTreat1 = YAHOO.util.Dom.get("treat_1_label");
		oTreat1.innerHTML = '<span class="titleCell">#1 Treatment Name:</span><br><span class="graytext" style="font-size:11px;">(e.g. "Lipitor" or "Running")</span>';
	}

	newtreat_no = treat_no;
	
	var f = function() {
		try{
			current_tid=newtreat_no;
			oACDS = new YAHOO.widget.DS_XHR("/component/option,com_remote/method,treatment_list/", ["Result", "name", "id"]);
			oACDS.queryMatchContains = true;
			var tcnt = 'treatmentCnt';
			if (isf==0) {
				tcnt = 'treatmentCnt'+newtreat_no;
			}
			var oAutoComp = new YAHOO.widget.AutoComplete('query'+newtreat_no, tcnt, oACDS);
			oAutoComp.autoHighlight = false;
			oAutoComp.queryDelay = 0;
			//oAutoComp.typeAhead = true;
			oAutoComp.animSpeed = 0.1;
			oAutoComp.allowBrowserAutocomplete = false;
		
			oAutoComp.itemSelectEvent.subscribe(setId,this);
			oAutoComp.textboxKeyEvent.subscribe(clearTid,this);
			
			// if ( document.all ) {
			if (jQuery.browser.version.match('6') && jQuery.browser.msie) {
				this.pos = newtreat_no;
				// oAutoComp.dataReturnEvent.subscribe(hideDropDown,this);
				oAutoComp.containerCollapseEvent.subscribe(hideDropDown,this);
			}
		} catch(e) {
			//...
		}
	}

	YAHOO.util.Event.addListener('query'+newtreat_no,'click', f);
	treat_no++;
}

/**
 * Function: autoCompInit
 * Handles the auto complete drop down 
 * on the Community Information page
 * (option,com_comprofiler/task,communityEdit)
 */
function autoCompInit() {
	try {
		this.testing = "testing";
		oACDS = new YAHOO.widget.DS_XHR("/component/option,com_remote/method,treatment_list/", ["Result", "name", "id"]);
		oACDS.queryMatchContains = true;
	
		oAutoComp = new YAHOO.widget.AutoComplete('query','treatmentCnt', oACDS);
		oAutoComp.autoHighlight = false;
		oAutoComp.queryDelay = 0;
		//oAutoComp.typeAhead = true;
		oAutoComp.animSpeed = 0.1;
		oAutoComp.allowBrowserAutocomplete = false;
	
		// if ( document.all ) {
		if (jQuery.browser.version.match('6') && jQuery.browser.msie) {
			this.pos = 0;
			// oAutoComp.dataReturnEvent.subscribe(hideDropDown,this);
			oAutoComp.containerCollapseEvent.subscribe(hideDropDown,this);
		}
		
		oAutoComp.itemSelectEvent.subscribe(setId,this);
		oAutoComp.textboxKeyEvent.subscribe(clearTid,this);
	} catch (e){
		//
	}
}

var clearTid = function(type, args, me) {
	try {
		var id = YAHOO.util.Dom.get('tid'+current_tid);
		id.value = '';
	} catch(e) {
		//log?
	}
}

var setId = function(type, args, me) {
	try{
		var id = YAHOO.util.Dom.get('tid'+current_tid);
		id.value = args[2][1];
	}catch(e){
		//log?
	}
}

var isHidden=false;
var hideDropDown = function (type, args, me) {
	var visibility = (isHidden) ? 'visible':'hidden';
	isHidden = !isHidden;
	cur = (me.pos == 0) ? '':me.pos;
	
	var o = YAHOO.util.Dom.get('tstatus'+cur);
	YAHOO.util.Dom.setStyle(o,'visibility', visibility); 
	
	if (me.pos < current_tid) {
		// need to hide more
		start = (me.pos == 0) ? 2: me.pos+1;
		//cnt = current_tid-start;
		for (i = start; i <= current_tid; i++) {
			o = YAHOO.util.Dom.get('tstatus'+i);
			YAHOO.util.Dom.setStyle(o,'visibility', visibility);
			m = YAHOO.util.Dom.get('query'+i);
			YAHOO.util.Dom.setStyle(m,'visibility', visibility);
		}
	}
}

var current_tid = '';
YAHOO.util.Event.addListener(this,'load',autoCompInit);

function setTreatmentChkbx(chk_id, txt_id, override) {
	var chk = YAHOO.util.Dom.get(chk_id);
	var txt = YAHOO.util.Dom.get(txt_id);
	if(txt.value != "" || override) {
		chk.checked = "checked";
	}
}

