/* sa_uni2.js: 
	contains common code for universal search page
*/

var div = document.getElementById('UNI_div');

var showProductResults = function(o){	
// fill the div using innerHTML =
// set the div style visibility to visible	
  var divEl = document.getElementById("UNI_display_div");	

  divEl.style.visibility = "hidden";
  divEl.innerHTML = "";
	
  if(o.responseText !== undefined){
	if (o.responseText == "NONE") {
	  divEl.innerHTML = "Didn't find matches";
	  divEl.style.visibility="visible";
	  return;		
	}

	divEl.innerHTML = o.responseText;
       	divEl.style.visibility="visible";

	var myEl = document.getElementById("sa_udd");
	// need to change the text of the element named "sa_udd" 
//	myEl.innerHTML = "Results";
	
	// make results tab active
	tabThing.expandit("sa_udd");

  }
  return;
} 


var at1_handleSuccess = function(o){
  if(o.responseText !== undefined){
    var at1vEl = document.getElementById("at1vSelector");
    var at1vlEl = document.getElementById("at1vlSelector");
    var elToAdd;
    var el2ToAdd;
    var atvs = new Array();

    while (at1vEl.length > 1) {
      at1vEl.remove(0);
    }
    while (at1vlEl.length > 1) {
      at1vlEl.remove(0);
    }
    
    atvs = o.responseText.split("\t");

    if (atvs[0] == "NONE") {
      at1vEl.options[0].text = "No matches";
      at1vlEl.options[0].text = "No matches";
      return;
    } else {
      at1vEl.options[0].text = "Choose From ";
      at1vlEl.options[0].text = "Choose To ";
    }

    var idx = 0;
    for (idx = 0; idx < (atvs.length -1); idx++) {
      elToAdd  = document.createElement('option');
      elToAdd.text = atvs[idx];
      elToAdd.value = atvs[idx];
      tEl = at1vEl.options[at1vEl.length];

      el2ToAdd  = document.createElement('option');
      el2ToAdd.text = atvs[idx];
      el2ToAdd.value = atvs[idx];
      t2El = at1vlEl.options[at1vlEl.length];
      try {
        at1vEl.add(elToAdd, tEl);       
	at1vlEl.add(el2ToAdd, t2El);
      }
      catch(err) {
	at1vEl.add(elToAdd);
	at1vlEl.add(el2ToAdd);
      }
    }
  }
}

var ps_handleSuccess = function(o){
  if(o.responseText !== undefined){
    var at1El = document.getElementById("at1Selector");
	var at1vEl = document.getElementById("at1vSelector");
	var at1vlEl = document.getElementById("at1vlSelector");

    var elToAdd;
    var ats = new Array();

    while (at1El.length > 1) {
      at1El.remove(0);
    }
    while (at1vEl.length > 1) {
      at1vEl.remove(0);
    }    
    while (at1vlEl.length > 1) {
      at1vlEl.remove(0);
    }    
	at1vEl.options[0].text = "From: ";
	at1vlEl.options[0].text = "To: ";


    ats = o.responseText.split("\t");

    if (ats[0] == "NONE") {
      at1El.options[0].text = "No matches";
      return;
    } else {
      at1El.options[0].text = "Choose Attribute Type";
    }

    var idx = 0;
    for (idx = 0; idx < (ats.length -1); idx++) {
      elToAdd  = document.createElement('option');
      elToAdd.text = ats[idx];
      elToAdd.value = ats[idx];
      tEl = at1El.options[at1El.length];
      try {
        at1El.add(elToAdd, tEl);
      }
      catch(err) {
	at1El.add(elToAdd);
      }
    }
  }
}

var handleFailure = function(o){
  if(o.responseText !== undefined){
    div.innerHTML = "<li>Transaction id: " + o.tId + "</li>";
    div.innerHTML += "<li>HTTP status: " + o.status + "</li>";
    div.innerHTML += "<li>Status code message: " + o.statusText + "</li>";
  }
}

var showProductResults_callback =
  {
    success: showProductResults,
    failure: handleFailure
    //    argument: { foo:"foo", bar:"bar" }
  };

var at1_callback =
  {
    success: at1_handleSuccess,
    failure: handleFailure
    //    argument: { foo:"foo", bar:"bar" }
  };

var ps_callback =
  {
    success: ps_handleSuccess,
    failure: handleFailure
    //    argument: { foo:"foo", bar:"bar" }
  };

function getProducts() {
  var request;
  var pSEl = document.getElementById("productStyleSelector");
  var at1El = document.getElementById("at1Selector");
  var at1vEl = document.getElementById("at1vSelector");
  var at1vlEl = document.getElementById("at1vlSelector");
  var pSEl = document.getElementById("productStyleSelector");

  var gpURL; 


  if ((at1El.options[at1El.selectedIndex].value == "default")
	|| (pSEl.options[pSEl.selectedIndex].value == "default") 
	|| (at1vEl.options[at1vEl.selectedIndex].value == "default")
	|| (at1vlEl.options[at1vlEl.selectedIndex].value == "default")) {
    return;
  }

  gpURL = "sa_uni_top.php?action=pbydims&ps=" + pSEl.options[pSEl.selectedIndex].value 
	+ "&at1=" + at1El.options[at1El.selectedIndex].value 
	+ "&at1v=" + at1vEl.options[at1vEl.selectedIndex].value
	+ "&at1vl=" + at1vlEl.options[at1vlEl.selectedIndex].value;
  request = YAHOO.util.Connect.asyncRequest('GET', gpURL, showProductResults_callback);
}

function getAts() {
  var request;
  var pSEl = document.getElementById("productStyleSelector");
  var pS ;
  var psURL; 

  if (pSEl.options[pSEl.selectedIndex].value == "default") {
	return;
  }

  pS = pSEl.options[pSEl.selectedIndex].value;
  psURL = "sa_uni_top.php?action=atsbps&ps=" + pS;
  request = YAHOO.util.Connect.asyncRequest('GET', psURL, ps_callback);
}

function getAtvs() {
  var request;
  var at1El = document.getElementById("at1Selector");
  var pSEl = document.getElementById("productStyleSelector");
  var at1URL; 

  if (at1El.options[at1El.selectedIndex].value == "default") {
	return;
  }

  at1URL = "sa_uni_top.php?action=atvs&ps=" + pSEl.options[pSEl.selectedIndex].value + 
	"&at1=" + at1El.options[at1El.selectedIndex].value ;
  request = YAHOO.util.Connect.asyncRequest('GET', at1URL, at1_callback);
}


function resetForm() {
  var pSEl = document.getElementById("productStyleSelector");
  var at1El = document.getElementById("at1Selector");
  var at1vEl = document.getElementById("at1vSelector");
  var at1vlEl = document.getElementById("at1vlSelector");
  var divEl = document.getElementById("UNI_display_div");	
  var resultsEl = document.getElementById("sa_udd")

  tabThing.expandit(0);
/*  resultsEl.innerHTML = ""; */


  pSEl.selectedIndex = 0;
  at1El.selectedIndex = 0;
  at1vEl.selectedIndex = 0;
  at1vlEl.selectedIndex = 0;

  divEl.style.visibility="hidden";
  divEl.innerHTML = "";
  
  while (at1El.length > 1) {
    at1El.remove(0);
  }
  at1El.options[0].text = "Attribute Type";

  while (at1vEl.length > 1) {
    at1vEl.remove(0);
  }
  at1vEl.options[0].text = "From ";

  while (at1vlEl.length > 1) {
    at1vlEl.remove(0);
  }
  at1vlEl.options[0].text = "To ";
}


function submitForm() {
  var pSEl = document.getElementById("productStyleSelector");

  if (pSEl.selectedIndex) {
    getProducts();
	   		return 0
  	  } else {
    		alert ('Please choose a Product Style then an Attribute and range');
    		return -1;
  }
}

