Survey_Utils = {

confirmExport: function (msg) {   
  		var resultElem = Survey_Utils.getObject('responseStatusFilter');
    	var exportElem = Survey_Utils.getObject('exportResponseStatusFilter');
    	answer = confirm(msg);
    	
    	if (answer) {
    		exportElem.value = resultElem.value;
    	}
    	return answer;
	},

getObject: function (objectId) {
    	if (document.all && !document.getElementById) {
     	   return document.all(objectId);
   		} else {
        	return document.getElementById(objectId);
    	}
	},
    
showDetailedView: function (id, show) {
    	detailedView = "dview" + id;
    	showDetailedLink = "showlnk" + id;
    	hideDetailedLink = "hidelnk" + id;
      
    	if (show) {
        	Survey_Utils.getObject(detailedView).style.display="block";
        	Survey_Utils.getObject(showDetailedLink).style.display="none";
        	Survey_Utils.getObject(hideDetailedLink).style.display="block";
    	} else {
        	Survey_Utils.getObject(detailedView).style.display="none";
        	Survey_Utils.getObject(showDetailedLink).style.display="block";
        	Survey_Utils.getObject(hideDetailedLink).style.display="none";
   		}
	},

openHelpWin: function ( popupURL ){
    	return Survey_Utils.popup( 'helpWin', popupURL, 'toolbar=1,location=1,directories=1,status=1,menubar=1,scrollbars=1,resizable=1,width=800,height=600,left=20,top=20' );
	},

popup: function ( target, popupURL, params ){
    	var adname = target;
    	win = window.open(popupURL,adname,params);

    	if( win != null ){
        	if( Survey_Utils.stringMatch( navigator.appName.substring( 0, 8 ), "Netscape" ) ){
            	win.opener = self;
        	}
        	if( Survey_Utils.stringMatch( navigator.appName, "Netscape" ) &&
            	navigator.appVersion.substring( 0, 1 ) >= 3 ){
            	win.focus();
        	}
        	else if( Survey_Utils.stringMatch( navigator.appName, "Microsoft Internet Explorer" ) &&
            	navigator.appVersion.substring( 0, 1 ) >= 4 ){
            	win.focus();
        	}
    	}
    	return win;
	},
	
openWindow: function ( target, popupURL, w, h ){
    	return Survey_Utils.popup( target, popupURL, 'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,left=20,top=20,width=' + w + ',height=' + h );
	},

stringMatch: function ( x, y ){
		if( x.length != y.length ){
			return false;
		}
		for( var i = 0; i<x.length; i++ ){ if( x.charAt( i ) != y.charAt( i ) ){ 
			return false; } 
		} 
		return true; 
	},
	
setFocus: function ( item ){
		if( Survey_Utils.stringMatch( navigator.appName, "Netscape" ) && navigator.appVersion.substring( 0, 1 ) >= 3 ){
			window.focus();
		}
		else if( Survey_Utils.stringMatch( navigator.appName, "Microsoft Internet Explorer" ) &&
				navigator.appVersion.substring( 0,1 ) >= 4 ){
		    window.focus();
		}
		if( item != null ){
			item.focus();
		}
	},

checkMaxLength: function (field, maxlimit, messageId, leftMsg, overMsg) {
    var currentLen = field.value.replace(/^\s+|\s+$/g, '').replace(/\r\n|\n|\r/g, '\r\n').length;
    var remaining = maxlimit - currentLen;
    if (remaining >= 0) 
      document.getElementById(messageId).innerHTML = remaining + ' ' + leftMsg;
    else
      document.getElementById(messageId).innerHTML = -remaining + ' ' + overMsg;
  },
  
//opener for image hosting popup
doImageHosting: function(idx, value, imageURL, alt, width, height, align){
	    
	    //Include value only if imageURL contains ACCOUNT.IMAGE
	    var isHosted = value.search('ACCOUNT.IMAGE') != -1;
	    //alert('isIH:'+isIH);
	    
	    var url = '/templates/select_image.jsp?'
	    if( isHosted )url+='value=' +value;
	    url += '&prop=' + idx
	    url += '&imageURL=' + imageURL + '&alt.text=' + alt
	    if( width && width > 0 )url += '&width='+ width
	    if( height && height > 0 )url += '&height=' + height 
	    url += '&img.align=' + align
	    url+= '&hideFloat=true'
	    url+= '&hideLink=true';

	    Survey_Utils.openWindow( 'ImageWin', url, '700', '550' );
  },
  
  deleteAnswerOption:function(toDelete){
	//Confirm
	if( !(foo = confirm("Are you sure you want to delete this answer?")) )return;	

	var idx = toDelete;
	Survey_Utils.blankValuesForItem( idx );
	

	//Gen numberOfItems value
	var numberOfChoices = $('numberOfChoices').value;

	//Move all values up
	for( i=toDelete; i<numberOfChoices-1; i++){
		var nextIndex = i+1;
		var fromObjectPrefix = 'imageAnswerOptions['+ nextIndex+ '].';
		var toObjectPrefix = 'imageAnswerOptions['+ i + '].';

		//Move properties up
		$(toObjectPrefix+'usingImage').value=$(fromObjectPrefix+'usingImage').value;
		//$(toObjectPrefix+'image.showAdd').setAttribute('class', $(fromObjectPrefix+'image.showAdd').getAttribute('class'));
		//$(toObjectPrefix+'image.showEditDelete').setAttribute('class', $(fromObjectPrefix+'image.showEditDelete').getAttribute('class'));
		//$(toObjectPrefix+'image.databaseValue').value=$(fromObjectPrefix+'image.databaseValue').value;

		//Changed to work in IE		
		$(toObjectPrefix+'image.showAdd').className = $(fromObjectPrefix+'image.showAdd').className
		$(toObjectPrefix+'image.showEditDelete').className = $(fromObjectPrefix+'image.showEditDelete').className
		$(toObjectPrefix+'image.databaseValue').value=$(fromObjectPrefix+'image.databaseValue').value;
		$(toObjectPrefix+'image.urlLocation').value=$(fromObjectPrefix+'image.urlLocation').value;
		$(toObjectPrefix+'image.height').value=$(fromObjectPrefix+'image.height').value;
		$(toObjectPrefix+'image.width').value=$(fromObjectPrefix+'image.width').value;
		$(toObjectPrefix+'image.align').value=$(fromObjectPrefix+'image.align').value;
		$(toObjectPrefix+'image.altText').value=$(fromObjectPrefix+'image.altText').value;
		$(toObjectPrefix+'image.url').innerHTML=$(fromObjectPrefix+'image.url').innerHTML;
		// alert($(toObjectPrefix+'image.url').style.display+':'+$(fromObjectPrefix+'image.url').style.display);
		$(toObjectPrefix+'image.url').style.display=$(fromObjectPrefix+'image.url').style.display;
		//move textbox value up
		$('choiceText'+i).value = $('choiceText'+nextIndex).value
	}	
	
	//Decrement the dropdown
	$('numberOfChoices').selectedIndex = $('numberOfChoices').selectedIndex-1;
	QuestionHelper.showAvailableInputsForSelection($('numberOfChoices'), 'choiceText', 'block')
	
	//If only two options shown, hide Delete link
	var choices = $('numberOfChoices').selectedIndex;
	
	if( choices == 0 ){
		var answerOptions = document.getElementsByClassName('showDelete');
		for( i=0;i<answerOptions.length;i++)answerOptions[i].style.display='none';
	}else if( choices > 0 ){
		var answerOptions = document.getElementsByClassName('showDelete');
		for( i=0;i<answerOptions.length;i++)answerOptions[i].style.display='inline';				
	}

	//Blank values of the last answerOption
	Survey_Utils.blankValuesForItems( numberOfChoices-1, 19 );

  },
  
  blankValuesForItem:function(idx){
	$('choiceText'+idx).value='';
	//Properties
	$('imageAnswerOptions['+idx+'].usingImage').value='false';
	$('imageAnswerOptions['+idx+'].image.showAdd').value='true';
	$('imageAnswerOptions['+idx+'].image.showEditDelete').value='false';

	//$('imageAnswerOptions['+idx+'].image.showAdd').setAttribute('class','show')
	//$('imageAnswerOptions['+idx+'].image.showEditDelete').setAttribute('class','hide')
	
	$('imageAnswerOptions['+idx+'].image.showEditDelete').className='hide';
	$('imageAnswerOptions['+idx+'].image.showAdd').className='show';
	
	$('imageAnswerOptions['+idx+'].image.databaseValue').value='';
	$('imageAnswerOptions['+idx+'].image.urlLocation').value='';
	$('imageAnswerOptions['+idx+'].image.height').value='';
	$('imageAnswerOptions['+idx+'].image.width').value='';
	$('imageAnswerOptions['+idx+'].image.align').value='';
	$('imageAnswerOptions['+idx+'].image.altText').value='';
	$('imageAnswerOptions['+idx+'].image.url').innerHTML='';  		
  },
  
  blankValuesForItems:function(startAt, endAt){
  	for( i=startAt;i<=endAt;i++ )Survey_Utils.blankValuesForItem( i );
  },
  
  syncDeleteLink:function(obj){
	var answerOptions = document.getElementsByClassName('showDelete');
  	if( $('numberOfChoices').selectedIndex == 0 ){
  		answerOptions[0].style.display='none';
  		answerOptions[1].style.display='none';
  	}
  	else if( $('numberOfChoices').selectedIndex > 0 ){
  		//Show all Delete links
  		for( i=0;i<=$('numberOfChoices').selectedIndex+1;i++)answerOptions[i].style.display='inline';
  	} 
  	//Blank values for hidden fields
  	if( obj != undefined ){
		var form = obj.form;
		var inputs = form.elements[ 'choiceText' ];
		//Find the first hidden element
		var firstFound = -1;
		for( i=0;i<inputs.length;i++ ){
			var parent = QuestionHelper.getParentTRForInputRow( inputs[i]);
			if( parent.style.display=='none' ){
				firstFound=i;break;
			}
		}  	
		
		//Remove values for page elements that are not visible
		if( firstFound != -1 )
			Survey_Utils.blankValuesForItems( firstFound,19 );	
  	}
  }
}

// expose as top level function since EM tiles uses this to open up the "Customer Support" link
openHelpWin = Survey_Utils.openHelpWin;
