/**************************************************************************
* Document	: ajax_prod_label_util.js
* Author	: Wayne J. Earl
* Created	: 2006-12-07
* Purpose	: JavaScript functions for label ajax functionality (product page)
* Comments	: 
*************************************************************************/
/*************************************************************************
* Revised by	: 
* Revised date	: 
* Description	: 
*************************************************************************/


function getProdLabelEvt(e)
{
	evt = (e) ? e : ((window.event) ? window.event : "");
	if (evt) {

		var elem_target = getTarget(evt);
		if (elem_target) {
		
			getProdLabel(elem_target);
		}
		if (window.event) { //IE
		
			evt.returnValue = false;
		}
		else {
			
			evt.preventDefault();
		}
	}
}


function getProdLabel(sender)
{
	var prod_id;
	var old_id;
	var prod_attrib;
	var elem;
	if (sender !== undefined) {

		if (typeof(flavor_style) == "string") {
			
			if (flavor_style == "links") {

				prod_attrib = "this_id";
				elem = sender.parentNode;
				while(elem) {
				
					if (elem.nodeName == "SPAN") {
					
						break;
					}
					else {
					
						elem = elem.parentNode;
					}
				}
			}
			else if (flavor_style == "select") {
			
				prod_attrib = "value";
				elem = sender;
			}

			if (elem) {

				if (prod_attrib) {
					
					prod_id = getAttrib(elem, prod_attrib);
					if (prod_id) {
						
						var url;
						var url_base;
						url_base = ing_base_path + ing_html_util_url;
						
						url = url_base + "?prod_id=" + prod_id;
						url += "&mode=1";
						//make ajax call
						ajaxCall(url, lineStateChangedEvt);
					}
				}
			}
		}
	}
}


function lineStateChangedEvt()
{
	if (xmlHttp) {

		switch(xmlHttp.readyState) {
			
			case 4:
			
				lineStateChanged();
				break;
		}
	}
}


function lineStateChanged()
{
	var debug = 0;
	
	var resp_str = xmlHttp.responseText;

	var var_str;
	
	if (debug) var_str = "alert('Return Vars Not Set');";
	
	//interpret string and create local vars
	var re = /(var ajax_resp = \d+\;[^\0]*)/;
	var matches = resp_str.match(re);
	//if matching, remove message prefix characters (if any)
	if (matches) {
		
		if (typeof(matches[1]) != 'undefined') { //
		
			var_str = matches[1];
			if (debug) alert(var_str);
			var test_str = String.fromCharCode(134);
			var repl_str = String.fromCharCode(8224);
			var re_repl = new RegExp(test_str, "gm");
			var_str = var_str.replace(re_repl, repl_str);
		}
	}
	eval(var_str);

	if (typeof(ajax_resp) != 'undefined') {
	
		var f_fade = false;
		switch (ajax_resp) {
		
			case 1:
			
				//update links and label
				updateLinksLabel(html, prod_id);
				f_fade = true;
				break;
				
			case 2:
			
				break;
		}
		if (f_fade) {
			
			if ((typeof(bb_fader) == "object") && (getVisibility(panel_cont_id))) {
				
				bb_fader.fade(ajax_loader_name, 20, 100, 0);
				f_fade = false;
			}
		}
	}
}


function updateLinksLabel (html, prod_id)
{
	var debug = 0;

	//validate parameters
	if ((html !== undefined) && (prod_id !== undefined)) {

		//update label html
		if (debug) alert(html);
		if (typeof(label_div) == "string") {
			
			var elem_div = getIdElement(label_div);
			if (elem_div) {
			
				elem_div.innerHTML = decodeQuotes(html);
				//link_html = edit_link + link_html;
			}
		}
		if (typeof(flavor_style) == "string") {
			
			if (flavor_style == "links") {
				
				//update links
				if (typeof(link_base_id) == "string") {
					
					//////////////////////////////////////
					// update new span
					//////////////////////////////////////
					var new_span_id = link_base_id + prod_id;
					var elem_span_new = getIdElement(new_span_id);
					if (elem_span_new) {
					
						var elem_a_parent = elem_span_new;
						var elem_a_new = elem_span_new.firstChild;
						while(elem_a_new) {
						
							if (elem_a_new.nodeName == "A") {
							
								break;
							}
							else {
							
								elem_a_parent = elem_a_new;
								elem_a_new = elem_a_new.firstChild;
							}
						}
						var new_name = "";
						if ((elem_a_new) && (elem_a_new.nodeName == "A")) {
							
							//get flavor name
							new_name = elem_a_new.innerHTML;
							//remove anchor element
							elem_a_parent.removeChild(elem_a_new);
						}
						if (typeof(link_current_class) == "string") {
							
							//add current class name
							addRemoveClassName(elem_span_new, link_current_class);
						}
						//insert name
						elem_a_parent.innerHTML = new_name;
					}
					
					//////////////////////////////////////
					// update old span
					//////////////////////////////////////
					var old_id = getAttrib(elem_span_new, "cur_id");
					var old_span_id = link_base_id + old_id;
					var elem_span_old = getIdElement(old_span_id);
					if (elem_span_old) {
					
						var test_for_a = elem_span_old.getElementsByTagName("a");
						if (!test_for_a.length) { //nothing found
						
							//get flavor name
							var old_name = elem_span_old.innerHTML;
						}
		
						//remove name
						elem_span_old.innerHTML = "";
						
						if (typeof(link_current_class) == "string") {
							
							//remove current class name
							addRemoveClassName(elem_span_old, link_current_class, "remove");
						}
						
						var elem_a_old = document.createElement("a");
						if (elem_a_old) {
						
							if (typeof(link_page) == "string") {
								
								//add href
								elem_a_old.href = link_page;
							}
							if (typeof(link_onclick_func) == "string") {
								
								//add onclick
								var onclick = link_onclick_func + "Evt";
								elem_a_old.onclick = eval(onclick);
							}
							if (typeof(link_base_class) == "string") {
								
								//add base class name
								addRemoveClassName(elem_a_old, link_base_class);
							}
							//insert name
							elem_a_old.innerHTML = old_name;
							elem_span_old.appendChild(elem_a_old);
						}
						//update cur_id values
						if (typeof(links_outer) == "string") {
							
							var elem_div_links = getIdElement(links_outer);
							if (elem_div_links) {
							
								var elements_span = elem_div_links.getElementsByTagName("span");
								for (var idx = 0; idx < elements_span.length; idx ++) {
								
									//update cur_id to prod_id
									setAttrib(elements_span[idx], "cur_id", prod_id);
									
									//hide label_note
									//hideLabelNote("label_note");
								}
							}
						}
					}
				}
			}
			else if (flavor_style == "select") {
				
				//select work goes here
				//hide label_note
				//hideLabelNote("label_note");
			}
		}
	}
}


function hideLabelNote(note_id)
{
	var elem_note = getIdElement(note_id);
	
	if (elem_note) {
	
		setVisibility(elem_note, false);
	}
}