function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}



// Navigation, focus...etc
function toggleVisibility(me){
	if (me.style.visibility=="hidden"){
		me.style.visibility="visible";
		}
	else {
		me.style.visibility="hidden";
		}
}

function setCursor(me) {
 document.getElementById(me).focus();
 return true;
}

function confirm_delete(actionDo, formName){
	var thisForm = document.getElementById(formName);
	var actionValue= thisForm.actionDo;
	actionValue.value= actionDo;
	if (confirm('Do you really want to delete it?')){
    thisForm.submit();
  }
}

function takeMeThere(url){
	window.location = url;
}

function postForm( formId, formAction )
{
	var formObj = document.getElementById( formId ) ;
	formObj.action = formAction ;
	formObj.submit() ;
}

function setScrollPositions() {
	for (i = 0; i < document.all.length; i++) {
		// searching for scrollable content marker SPAN-s
		if (document.all[i].className == 'scrollable-content') {
		
			// remember the scrollable content.
			scrollableContent = document.all[i].parentElement;
			if ( scrollableContent != null ) {
				scrollableContent.style.visibility = "hidden";
				// horizontal positioning.
				hpos = document.getElementById('hScrollPos-' + scrollableContent.id);
				if( hpos != null ) {
					scrollableContent.scrollLeft = hpos.value;
				}
	
				// vertical positioning.
				vpos = document.getElementById('vScrollPos-' + scrollableContent.id);
				if( vpos != null ){
					scrollableContent.scrollTop = vpos.value;
				}
				scrollableContent.style.visibility = "visible";				
			}
		}
	}
}
function  saveScrollPositions(scrollableContent) {
	hpos = document.getElementById('hScrollPos-' + scrollableContent.id);
	if (hpos != null) {
		hpos.value = scrollableContent.scrollLeft;
	}
	vpos = document.getElementById('vScrollPos-' + scrollableContent.id);
	if (vpos != null) {
		vpos.value = scrollableContent.scrollTop;
	}
}

function openTreeNode(treeName, stateManegerURL, nodeId) {
	url = stateManegerURL + "?oNode-" + treeName + "=" + nodeId;
	
	hpos = document.getElementById("hScrollPos-" + treeName);
	if (hpos != null) {
		url = url + "&hScrollPos-" + treeName + "=" + hpos.value;
	}
	
	vpos = document.getElementById('vScrollPos-' + treeName);
	if (vpos != null) {
		url = url + "&vScrollPos-" + treeName + "=" + vpos.value;
	}
	takeMeThere(url);
}

function closeTreeNode(treeName, stateManegerURL, nodeId) {
	url = stateManegerURL + "?cNode-" + treeName + "=" + nodeId;
	
	hpos = document.getElementById("hScrollPos-" + treeName);
	if (hpos != null) {
		url = url + "&hScrollPos-" + treeName + "=" + hpos.value;
	}
	
	vpos = document.getElementById('vScrollPos-' + treeName);
	if (vpos != null) {
		url = url + "&vScrollPos-" + treeName + "=" + vpos.value;
	}
	takeMeThere(url);
}

function selectNode(treeName, stateManegerURL, nodeId, labelURL) {
	if (labelURL == "#" ) {
		return;
	}

	url = labelURL;

	hpos = document.getElementById("hScrollPos-" + treeName);
	if (hpos != null) {
		url = url + "&hScrollPos-" + treeName + "=" + hpos.value;
	}
	
	vpos = document.getElementById('vScrollPos-' + treeName);
	if (vpos != null) {
		url = url + "&vScrollPos-" + treeName + "=" + vpos.value;
	}
	takeMeThere(url);
}

function submit_me(formName){
	var thisForm = document.getElementById(formName);
	thisForm.submit();
}

function submit_me(formName,actionName)	{	
	var thisForm = document.getElementById(formName);
	var hiddenField = document.createElement("input");
	hiddenField.type = "hidden";
	hiddenField.name = actionName == "submit" ? "submitNew" : actionName;		
	hiddenField.value = "true";		
	thisForm.appendChild(hiddenField);			
	thisForm.submit();	
} 

function submit_me_with_value(formName,actionName,actionValue)	{	
	var thisForm = document.getElementById(formName);
	var hiddenField = document.createElement("input");
	hiddenField.type = "hidden";
	hiddenField.name = actionName;		
	hiddenField.value = actionValue;		
	thisForm.appendChild(hiddenField);			
	thisForm.submit();	
} 

function submit_me_with_value_and_name(formName,actionName,valueName,actionValue)	{	
	var thisForm = document.getElementById(formName);
	var hiddenField = document.createElement("input");
	var hiddenValue = document.createElement("input");
	hiddenField.type = "hidden";
	hiddenValue.type = "hidden";
	hiddenField.name = actionName;		
	hiddenValue.name = valueName;		
	hiddenField.value = "true";		
	hiddenValue.value = actionValue;		
	thisForm.appendChild(hiddenField);			
	thisForm.appendChild(hiddenValue);			
	thisForm.submit();	
}

/*
function submit_me_with_add_from_select(formName,actionName,nameStart,nameEnd)	{	
	var thisForm = document.getElementById(formName);
	var hiddenField = document.createElement("input");
	hiddenField.type = "hidden";
	hiddenField.name = actionName;		
	hiddenField.value = "true";		
	thisForm.appendChild(hiddenField);

	for(var i=0; i<thisForm.length; i++)
	{
		var selectName = thisForm.elements[i].name;
		var regex = new RegExp(nameStart + "\\d+" + nameEnd);
		
		if(selectName.search(regex)!=-1)
		{
			var select = thisForm.elements[i];	
		
			for(var j=0; j<select.length; j++)		
			{
				select.options[j].selected=true;
			}
		}
	}

	thisForm.submit();	
} 
*/


function submit_me_with_add_from_select(formName,actionName,selectValueStart,selectValueEnd,separatorChar) {	
	var thisForm = document.getElementById(formName);
	var hiddenField = document.createElement("input");
	hiddenField.type = "hidden";
	hiddenField.name = actionName;		
	hiddenField.value = "true";		
	thisForm.appendChild(hiddenField);


	var selectHiddenNames  = new Array();
	var selectHiddenValues = new Array();
	var index = 0;
	

	for(var i=0; i<thisForm.length; i++)
	{
		// Ignore elements without 'name' attribute set
		if( thisForm.elements[i].name == null ) continue; 
		
		var formElementName = thisForm.elements[i].name;
		
		var regex = new RegExp(selectValueStart + "\\d+" + selectValueEnd);
		
		if(formElementName.search(regex)!=-1)
		{
		
			var select = thisForm.elements[i];	
			var selectValue = "";
			for(var j=0; j<select.length; j++)		
			{
				selectValue = selectValue + select.options[j].value + ((j==select.length-1) ? "" : separatorChar);
			}
			selectHiddenNames[index]  = formElementName;
		 	selectHiddenValues[index] = selectValue;
		 	index++;
		}
	}
	
	for(var k=0; k<index; k++)
	{
			createHidden(formName,selectHiddenNames[k],selectHiddenValues[k]);
	}

	thisForm.submit();	
} 

 

function createHidden(formName,hiddenName,hiddenValue)	{	
	var thisForm = document.getElementById(formName);
	var hiddenField = document.createElement("input");
	hiddenField.type = "hidden";
	hiddenField.name = hiddenName;		
	hiddenField.value = hiddenValue;		
	thisForm.appendChild(hiddenField);			
}

function changeTiming(divName,displayTyp)	{	
	document.getElementById('DAILY').style.display='none';
	document.getElementById('WEEKLY').style.display='none';
	document.getElementById('MONTHLY').style.display='none';
	document.getElementById('YEARLY').style.display='none';
	if ( document.getElementById('EVENT_DEPENDENT') )
		document.getElementById('EVENT_DEPENDENT').style.display='none';
	
	//var myRadio = document.getElementsByName('recurrencePattern');
	//for(var i=0; i<myRadio.length; i++) {
	//	document.getElementsByName('recurrencePattern')[i].style.display='none';
	//}	
	
	var thisDiv = document.getElementById(divName);
	if (thisDiv != null){
		thisDiv.style.display=displayTyp;
	}		
} 

function filterDivChanger(selectedName, divName1, divName2, divName3, divName4, divName5, divName6)	{	
	if (divName1 != '') { document.getElementById(divName1).style.display='none'; }
	if (divName2 != '') { document.getElementById(divName2).style.display='none'; }
	if (divName3 != '') { document.getElementById(divName3).style.display='none'; }
	if (divName4 != '') { document.getElementById(divName4).style.display='none'; }
	if (divName5 != '') { document.getElementById(divName5).style.display='none'; }
	if (divName6 != '') { document.getElementById(divName6).style.display='none'; }
	
	var thisDiv1 = document.getElementById(selectedName);
	if (thisDiv1 != null) {
		thisDiv1.style.display='inline';
	}		
}

function treatmentDetailsDivChanger(divName1, divName2, divName3)	{	
	document.getElementById('emailPart').style.display='none';
	document.getElementById('wirelessPart').style.display='none';
	document.getElementById('wappushPart').style.display='none';
	document.getElementById('mmsPart').style.display='none';
	document.getElementById('smsPart').style.display='none';
	
	var thisDiv1 = document.getElementById(divName1);
	if (thisDiv1 != null) {
		thisDiv1.style.display='inline';
	}		
	var thisDiv2 = document.getElementById(divName2);
	if (thisDiv2 != null) {
		thisDiv2.style.display='inline';
	}		
	var thisDiv3 = document.getElementById(divName3);
	if (thisDiv3 != null) {
		thisDiv3.style.display='inline';
	}		
}

function htmlEditorDivChanger(divName,visibilityType,contextRoot)	{	
	document.getElementById('html_tab').style.display='none';
	document.getElementById('plain_tab').style.display='none';
	document.getElementById('aol_tab').style.display='none';
	document.getElementById('sms_tab').style.display='none';
	document.getElementById('wap_tab').style.display='none';
	document.getElementById('mms_tab').style.display='none';

	var htmlTabTitle = document.getElementById('html_tab_title');
	var plainTabTitle = document.getElementById('plain_tab_title');
	var aolTabTitle = document.getElementById('aol_tab_title');
	var smsTabTitle = document.getElementById('sms_tab_title');
	var wapTabTitle = document.getElementById('wap_tab_title');
	var mmsTabTitle = document.getElementById('mms_tab_title');
	
	if (htmlTabTitle != null) {
		htmlTabTitle.style.fontWeight='normal';
		htmlTabTitle.background=contextRoot+'/img/tab-off.gif';
	}
	if (plainTabTitle != null) {
		plainTabTitle.style.fontWeight='normal';
		plainTabTitle.background=contextRoot+'/img/tab-off.gif';
	}
	if (aolTabTitle != null) {
		aolTabTitle.style.fontWeight='normal';
		aolTabTitle.background=contextRoot+'/img/tab-off.gif';
	}
	if (smsTabTitle != null) {
		smsTabTitle.style.fontWeight='normal';
		smsTabTitle.background=contextRoot+'/img/tab-off.gif';
	}
	if (wapTabTitle != null) {
		wapTabTitle.style.fontWeight='normal';
		wapTabTitle.background=contextRoot+'/img/tab-off.gif';
	}
	if (mmsTabTitle != null) {
		mmsTabTitle.style.fontWeight='normal';
		mmsTabTitle.background=contextRoot+'/img/tab-off.gif';
	}
	
	var thisDiv = document.getElementById(divName);
	if (thisDiv != null){
		thisDiv.style.display=visibilityType;
		var tabName = thisDiv.id + '_title';
		document.getElementById(tabName).style.fontWeight='bold';
		document.getElementById(tabName).background=contextRoot+'/img/tab-on.gif';		
	}		
} 

// removed from timing pages, not yet used
function setTimingDiv()	{	
	var myRadio = document.getElementsByName('recurrencePattern');
	for(var i=0; i<myRadio.length; i++) {
		if(document.getElementsByName('recurrencePattern')[i].checked == true) {
			document.getElementById(document.getElementsByName('recurrencePattern')[i].value).style.display='inline';
		}
	}	
}

// disable inputs by name
function setDisabledByName( inputName , disabledVal ) 
{
	var inputObj = document.getElementsByName( inputName );									

	for(var i=0; i<inputObj.length; i++) 
	{
		inputObj[i].disabled = disabledVal;
	}
}

function totalCount(tableName, columnIndex, toSet) {
	var rows = document.getElementById(tableName).rows;
	var amount = 0;
	for (i = 1; i < rows.length; i=i+1) {
		amount = rows[i].cells[columnIndex].innerHTML - 0 + amount;
	}
	var total = document.getElementById(toSet);
	total.innerHTML = amount;
}

function reportDivChanger(divName,visibilityType,contextRoot)	{	
	document.getElementById('summary').style.display='none';
	document.getElementById('activity').style.display='none';

	document.getElementById('summary_tab').style.fontWeight='normal';
	document.getElementById('summary_tab').background=contextRoot+'/img/tab-off.gif';
	document.getElementById('activity_tab').style.fontWeight='normal';
	document.getElementById('activity_tab').background=contextRoot+'/img/tab-off.gif';
	
	var thisDiv = document.getElementById(divName);
	if (thisDiv != null){
		thisDiv.style.display=visibilityType;
		var tabName = thisDiv.id + '_tab';
		document.getElementById(tabName).style.fontWeight='bold';
		document.getElementById(tabName).background=contextRoot+'/img/tab-on.gif';		
	}		
} 

function changeTabs() {
	var type = document.getElementById('type').value;
	if (type == "Segmented") {	
		document.getElementById('segment1').style.display = 'inline';
		document.getElementById('segment2').style.display = 'inline';
		document.getElementById('rules').style.display = 'none';
		document.getElementById('followup1').style.display = 'inline';
		document.getElementById('spacer').style.width = '309';
		document.getElementById('spacer2').style.width = '309';
	} else if (type == "FollowUp") {
		document.getElementById('segment1').style.display = 'inline';
		document.getElementById('segment2').style.display = 'inline';
		document.getElementById('rules').style.display = 'none';
		document.getElementById('followup1').style.display = 'none';
		document.getElementById('spacer').style.width = '397';
		document.getElementById('spacer2').style.width = '397';
	} else if (type == 'SegmentedResponse' ) { 
		document.getElementById('segment1').style.display = 'inline';
		document.getElementById('segment2').style.display = 'inline';
		document.getElementById('rules').style.display = 'inline';
		document.getElementById('followup1').style.display = 'none';
		document.getElementById('spacer').style.width = '309';
		document.getElementById('spacer2').style.width = '309';
	} else {
		document.getElementById('segment1').style.display = 'none';
		document.getElementById('segment2').style.display = 'none';
		document.getElementById('rules').style.display = 'inline';
		document.getElementById('followup1').style.display = 'none';
		document.getElementById('spacer').style.width = '397';
		document.getElementById('spacer2').style.width = '397';
	}
}

function inboundDetailsDivChanger(divName1, divName2)	{	
	document.getElementById('GUI').style.display='none';
	document.getElementById('INJECT').style.display='none';
	
	var thisDiv1 = document.getElementById(divName1);
	if (thisDiv1 != null) {
		thisDiv1.style.display='inline';
	}		
	var thisDiv2 = document.getElementById(divName2);
	if (thisDiv2 != null) {
		thisDiv2.style.display='inline';
	}		
}

function questionTypeDivChanger(divName,displayType)	{	
	document.getElementById('TEXT').style.display='none';
	document.getElementById('IMAGE').style.display='none';
	document.getElementById('TEXT_IMAGE').style.display='none';		
	var thisDiv = document.getElementById(divName);
	if (thisDiv != null){
		thisDiv.style.display=displayType;
	}		
	if (divName == "ALL") {
		document.getElementById('TEXT').style.display='inline';
		document.getElementById('IMAGE').style.display='inline';
	}
	
} 

function answerTypeDivChanger(divName,displayType)	{	
	document.getElementById('MULTIPLE_OPTIONS').style.display='none';
	document.getElementById('OPTIONS').style.display='none';
	document.getElementById('SCALE').style.display='none';
	document.getElementById('FREETEXT').style.display='none';		
	var thisDiv = document.getElementById(divName);
	if (thisDiv != null){
		thisDiv.style.display=displayType;
	}		
} 

function moveSelectElements(sourceId, destinationId)
{
	var sourceSelect = document.getElementById(sourceId);
	var destinationSelect = document.getElementById(destinationId);
	
	var index = sourceSelect.selectedIndex;
	
//	destinationSelect.options[destinationSelect.length] = sourceSelect.options[index];
	destinationSelect.options[destinationSelect.length] = new Option(sourceSelect.options[index].text,sourceSelect.options[index].value);
	sourceSelect.options[index]=null;
}



function isEmptyString(s)
      { return ((s == null) || (s.length == 0)) }
