// Javascript for Nelson Buttons

var curState = new Array();
var images   = new Array();

images[0] = "/images/backoff.gif";
images[1] = "/images/back.gif";

function getElementById(id) {
//	alert("id:" + id);
	var obj = document.getElementById(id);
	if (obj == null) {
//		alert("id not found:" + id);
	}
	return obj;
}

function toggleState(set, button) {
try{
  var modekey = "NBS_type_" + set;
  var mode    = getElementById(modekey);

  if (mode.value == "normal") {
      toggleStateNormal(set,button);
  } else {
      toggleStateRadio(set,button);
  }

  // Check if cancelsave.js was loaded

  var cce = getElementById('newSaveUrl');
  if (cce != null) {
    changesMade();
  }
} catch (ex) {}
}


function toggleImage(set,button) {
  var key = "NBS_" + set + "_" + button;
  var cs = curState[key];
  var mod;
  var statess;

  var obj= getElementById(key);

  // IE MAC: cannot do (x = undefined), have to do (typeof x == "undefined")
  if (typeof cs == "undefined") {
    // First time, discover from filename

    // alert("cs is undefined");
    var onFileKey = "NBS_img_on_" + set;
    // alert("onFileKey=" + onFileKey);
    var onFileName = getElementById(onFileKey).value;
    // alert("onFileName=" + onFileName);
    var ftest1 = obj.src.substr(obj.src.lastIndexOf("/",obj.src.length));
    // alert("ftest1=" + ftest1);
    var ftest2 = onFileName.substr(onFileName.lastIndexOf("/"),
				   onFileName.length);
    // alert("ftest2=" + ftest2);
    if (ftest1 == ftest2) {
      cs = 1;
    } else {
      cs = 0;
    }
  }

  // alert("toggleImage("+set+","+button+") cs=" + cs + " ftest1=" + ftest1 + " ftest2=" + ftest2);

  if (cs == 0) {
    cs = 1;
    mod = "::+";
    statess="on";
  } else {
    cs = 0;
    mod = "::-";
    statess="off";
  }
  curState[key]=cs;

  var imguse = getElementById("NBS_img_" + statess + "_" + set).value;

  // obj.src= images[cs];
  obj.src = imguse;

  return mod + button;
}


function toggleStateRadio(set,button) {
  var pfx = "NBS_" + set + "_";
  var all = document.all ? document.all : document.getElementsByTagName('*');
  var i;
  var button2;

  for (i = 0; i < all.length; i++) {
  	if (all[i].id.indexOf(pfx) == 0) {
  	  button2 = all[i].id.substring(pfx.length); 	
	    curState[pfx + button2] = 1;	
	    toggleImage(set, button2);
	  }
  }
  
  toggleImage(set,button);

  // 3-May-05
  getElementById("NBS_" + set).value = "+" + button;
} 
  
function toggleStateNormal(set,button) {
  // alert("toggleStateNormal("+set+", "+button);
  var mod = toggleImage(set,button);

  var key = "NBS_" + set + "_" + button;

  var key2 = "NBS_" + set;
  obj = getElementById(key2);
  var old = obj.value;
  old = old + mod;
  obj.value = old;

  return true;
}


/*TODO: need to be enhanced*/
function windowPopup(url, id, isEmptyIdValueAllowed, width) {
  if (url != null) 
  {
    var param = "";
    if( id != null && id != "")
    	param = param + getElementById(id).value;
    var finalUrl = url;
    if((param == "" || param == "www.") && !isEmptyIdValueAllowed) {
	    return;
	  }
	  
	  var idx = url.indexOf('?');
	  if( idx > 0 ) {
	    finalUrl = finalUrl.substr(0, idx) + param + finalUrl.substr(idx, finalUrl.length);
	  }
	  else 
	    finalUrl += param;

		/*TODO: this portion is being hard coded, need to be enhanced*/
    if( id == "website" && finalUrl.toUpperCase().indexOf('HTTP://') < 0 ) {
      finalUrl = 'http://' + finalUrl; 
	}
	//alert(finalUrl);
    window.open(finalUrl, 'cs', 'scrollbars=yes,toolbar=0,location=0,directories=0,height=400,width=' + width);
  }
}

function cleanPressBriefWebLink(imageholderid, assetid) {
  getElementById(imageholderid).innerHTML = "";
  getElementById(assetid).value = "";
}

function isJsEnabled(href) {
	try {
	  toggleState('enabled','1');
		href.href = href.href.substring(0, href.href.length - 1) + '1';
	} catch (ex){
		alert(ex);
		return false;
	}
	return true;
}
