//---------------------------------------------------------------------------
// Utility routines used by various javascript functions to create new queries
// from existing urls.  If current browser url does not reflect current query,
// these functions are not useful (since they are not aware of the current
// application state.)  These functions are used sparingly in the reference
// application only in conjunction with modules that contain form element.
//---------------------------------------------------------------------------

function ConstructURL(context,urlstate,removeterms,addterms) {
  var hasparams = 0;
  var isfirst = 1;
  var newurl = context;
  
  
  //create array of parameters on the query string
  if (urlstate == null)
	  return context;
  var param = BuildURLArray(urlstate);
  
  for (var i=0; i<param.length; i++) {
  	keyValue = param[i].split("-");
  		
  	val = CheckArray(removeterms, keyValue[0]);
	  
  	if (val == -1) { //keep term
		if (isfirst == 1) {
			newurl = newurl + "/_/";
			  isfirst = 0;
		  }
		  else { 
			  newurl = newurl + "/";
		  }
		  newurl = newurl + keyValue[0] + "-" + escape(keyValue[1]);
		  hasparams = 1;
  	 	} 
  	}
  
  	for (i=0; i<addterms.length; i++) {
  		if (isfirst == 1) {
  			newurl = newurl + "/_/";
  			isfirst = 0;
  		}
  		else {
  			newurl = newurl + "/";
  		}
  		newurl = newurl + addterms[i];
  		hasparams = 1;
  	}
  	
  	if (hasparams == 0) {
  		newurl = newurl + "?N=0";
  	}
  	
  return newurl;
}


function BuildURLArray(oldurl) {
  var paramArray;
  var params = oldurl.split("/_/");
  if (params[1] != null)
	  paramArray = params[1].split("/");
  else
	  paramArray = new Array(0);
  return paramArray;
}

function CheckArray(removeterms,checkterm) {
  for (var i=0; i<removeterms.length; i++) {
    if (removeterms[i] == checkterm)
      return 1;
  }
  return -1;
}

function GetValue(url, term) {
  var params = BuildURLArray(url);
  for (var i=0; i<params.length; i++) {
    if (params[i][0] == term) {
      return params[i][1];
    }
  }
  return -1;
}

/*
function ModifyURL(url,removeterms,addterms) {
  //var hasparams = 0;
  //var isfirst = 1;
//var params = BuildURLArray(url);
//var newurl = location.pathname;
// for (var i=0; i<params.length; i++) {
// val = CheckArray(removeterms,params[i][0]);
//  if (val == -1) {
//    if (isfirst == 1) {
//      newurl = newurl + "?";
//        isfirst = 0;
//      }
      //      else {
// newurl = newurl + "&";
      }
      newurl = newurl + params[i][0] + "=" + params[i][1];
      hasparams = 1;
    }
  }
  for (i=0; i<addterms.length; i++) {
    if (isfirst == 1) {
      newurl = newurl + "?";
      isfirst = 0;
    }
    else {
      newurl = newurl + "&";
    }
    newurl = newurl + addterms[i];
    hasparams = 1;
  }
  if (hasparams == 0) {
    newurl = newurl + "?N=0";
  }
  return newurl;
}
*/