http = getHTTPObject();
 
function getHTTPObject(){
  var xmlhttp;
 
  /*@cc_on
 
  @if (@_jscript_version >= 5)
    try {
      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    }catch(e){
      try{
      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }catch(E){
      xmlhttp = false;
    }
  }
  @else
    xmlhttp = false;
  @end @*/
 
  if(!xmlhttp && typeof XMLHttpRequest != 'undefined'){
    try {
      xmlhttp = new XMLHttpRequest();
    }catch(e){
      xmlhttp = false;
    }
  }
 
  return xmlhttp;
}

function aum_val(form, fund){	
  if(fund.name == 'fund1')
  {
	  if(fund.value == 0)
	  {
	  	alert('You must select a fund from this row before entering a market value');
	  	form.fund1aum.value = '0';
	  	return;
	  }  
  }

  if(fund.name == 'fund2')
  {
	  if(fund.value == 0)	
	  {
	  	alert('You must select a fund from this row before entering a market value');
	  	form.fund2aum.value = '0';
	  	return;
	  }  
  }
  
  if(fund.name == 'fund3')
  {
	  if(fund.value == 0)	
	  {
	  	alert('You must select a fund from this row before entering a market value');
	  	form.fund3aum.value = '0';
	  	return;
	  }  
  }
    
  if(fund.name == 'fund4')
  {
	  if(fund.value == 0)	
	  {
	  	alert('You must select a fund from this row before entering a market value');
	  	form.fund4aum.value = '0';
	  	return;
	  }   	
  }   
  
  if(fund.name == 'fund5')
  {
	  if(fund.value == 0)
	  {
	  	alert('You must select a fund from this row before entering a market value');
	  	form.fund5aum.value = '0';
	  	return;
	  }   	
  }   
  
  if(fund.name == 'fund6')
  {
	  if(fund.value == 0)	
	  {
	  	alert('You must select a fund from this row before entering a market value');
	  	form.fund6aum.value = '0';
	  	return;
	  }   	
  } 

  
  if(fund.name == 'fund7')
  {
	  if(fund.value == 0)	
	  {
	  	alert('You must select a fund from this row before entering a market value');
	  	form.fund7aum.value = '0';
	  	return;
	  }   	
  } 

  
  if(fund.name == 'fund8')
  {
	  if(fund.value == 0)	
	  {
	  	alert('You must select a fund from this row before entering a market value');
	  	form.fund8aum.value = '0';
	  	return;
	  }   	
  } 

  if(fund.name == 'fund9')
  {
	  if(fund.value == 0)	
	  {
	  	alert('You must select a fund from this row before entering a market value');
	  	form.fund9aum.value = '0';
	  	return;
	  }   	
  } 

  if(fund.name == 'fund10')
  {
	  if(fund.value == 0)	
	  {
	  	alert('You must select a fund from this row before entering a market value');
	  	form.fund10aum.value = '0';
	  	return;
	  }   	
  }    
	
}	

function ror_val(form, fund){	
  if(fund.name == 'fund1')
  {
	  if(fund.value == 0)
	  {
	  	alert('You must select a fund from this row before entering a rate of return');
	  	form.fund1ror.value = '0.0000';
	  	return;
	  }  
  }

  if(fund.name == 'fund2')
  {
	  if(fund.value == 0)	
	  {
	  	alert('You must select a fund from this row before entering a rate of return');
	  	form.fund2ror.value = '0.0000';
	  	return;
	  }  
  }
  
  if(fund.name == 'fund3')
  {
	  if(fund.value == 0)	
	  {
	  	alert('You must select a fund from this row before entering a rate of return');
	  	form.fund3ror.value = '0.0000';
	  	return;
	  }  
  }
    
  if(fund.name == 'fund4')
  {
	  if(fund.value == 0)	
	  {
	  	alert('You must select a fund from this row before entering a rate of return');
	  	form.fund4ror.value = '0.0000';
	  	return;
	  }   	
  }   
  
  if(fund.name == 'fund5')
  {
	  if(fund.value == 0)
	  {
	  	alert('You must select a fund from this row before entering a rate of return');
	  	form.fund5ror.value = '0.0000';
	  	return;
	  }   	
  }   
  
  if(fund.name == 'fund6')
  {
	  if(fund.value == 0)	
	  {
	  	alert('You must select a fund from this row before entering a rate of return');
	  	form.fund6ror.value = '0.0000';
	  	return;
	  }   	
  }   
  
  
  if(fund.name == 'fund7')
  {
	  if(fund.value == 0)	
	  {
	  	alert('You must select a fund from this row before entering a rate of return');
	  	form.fund7ror.value = '0.0000';
	  	return;
	  }   	
  }    

  if(fund.name == 'fund8')
  {
	  if(fund.value == 0)	
	  {
	  	alert('You must select a fund from this row before entering a rate of return');
	  	form.fund8ror.value = '0.0000';
	  	return;
	  }   	
  }    

  if(fund.name == 'fund9')
  {
	  if(fund.value == 0)	
	  {
	  	alert('You must select a fund from this row before entering a rate of return');
	  	form.fund9ror.value = '0.0000';
	  	return;
	  }   	
  }    

  if(fund.name == 'fund10')
  {
	  if(fund.value == 0)	
	  {
	  	alert('You must select a fund from this row before entering a rate of return');
	  	form.fund10ror.value = '0.0000';
	  	return;
	  }   	
  }       
 	
	
}	


 
function policy_percentage(form, policy){	
  var url = "/site/backend.php?op=add";
  //alert(policy.value);
  //alert(policy.name)
  if(policy.name == 'policy1')
  {
	  if(policy.value != 0)
	  {
	  	url += "&num1=" + form.policy1wgt.value;
	  	url += "&num2=" + form.policy2wgt.value;
	  	url += "&num3=" + form.policy3wgt.value;
	  	url += "&num4=" + form.policy4wgt.value;
	  	url += "&num5=" + form.policy5wgt.value;
	  	url += "&num6=" + form.policy6wgt.value;
	  }
	  else	
	  {
	  	alert('You must select a policy from this row before entering a percentage');
	  	form.policy1wgt.value = '0.00';
	  	return;
	  }  
  }

  if(policy.name == 'policy2')
  {  
	  if(policy.value != 0)
	  {  
	  	url += "&num1=" + form.policy1wgt.value;
	  	url += "&num2=" + form.policy2wgt.value;
	  	url += "&num3=" + form.policy3wgt.value;
	  	url += "&num4=" + form.policy4wgt.value;
	  	url += "&num5=" + form.policy5wgt.value;
	  	url += "&num6=" + form.policy6wgt.value;
	  }
	  else	
	  {
	  	alert('You must select a policy from this row before entering a percentage');
	  	form.policy2wgt.value = '0.00';
	  	return;
	  }  
  }
  if(policy.name == 'policy3')
  {
	  if(policy.value != 0)
	  {  
	  	url += "&num1=" + form.policy1wgt.value;
	  	url += "&num2=" + form.policy2wgt.value;
	  	url += "&num3=" + form.policy3wgt.value;
	  	url += "&num4=" + form.policy4wgt.value;
	  	url += "&num5=" + form.policy5wgt.value;
	  	url += "&num6=" + form.policy6wgt.value;
	  }
	  else	
	  {
	  	alert('You must select a policy from this row before entering a percentage');
	  	form.policy3wgt.value = '0.00';
	  	return;
	  }   	
  }  
  
  if(policy.name == 'policy4')
  {
	  if(policy.value != 0)
	  {  
	  	url += "&num1=" + form.policy1wgt.value;
	  	url += "&num2=" + form.policy2wgt.value;
	  	url += "&num3=" + form.policy3wgt.value;
	  	url += "&num4=" + form.policy4wgt.value;
	  	url += "&num5=" + form.policy5wgt.value;
	  	url += "&num6=" + form.policy6wgt.value;
	  }
	  else	
	  {
	  	alert('You must select a policy from this row before entering a percentage');
	  	form.policy4wgt.value = '0.00';
	  	return;
	  }   	
  }   
  
  if(policy.name == 'policy5')
  {
	  if(policy.value != 0)
	  {  
	  	url += "&num1=" + form.policy1wgt.value;
	  	url += "&num2=" + form.policy2wgt.value;
	  	url += "&num3=" + form.policy3wgt.value;
	  	url += "&num4=" + form.policy4wgt.value;
	  	url += "&num5=" + form.policy5wgt.value;
	  	url += "&num6=" + form.policy6wgt.value;
	  }
	  else	
	  {
	  	alert('You must select a policy from this row before entering a percentage');
	  	form.policy5wgt.value = '0.00';
	  	return;
	  }   	
  }   
  
  if(policy.name == 'policy6')
  {
	  if(policy.value != 0)
	  {  
	  	url += "&num1=" + form.policy1wgt.value;
	  	url += "&num2=" + form.policy2wgt.value;
	  	url += "&num3=" + form.policy3wgt.value;
	  	url += "&num4=" + form.policy4wgt.value;
	  	url += "&num5=" + form.policy5wgt.value;
	  	url += "&num6=" + form.policy6wgt.value;
	  }
	  else	
	  {
	  	alert('You must select a policy from this row before entering a percentage');
	  	form.policy6wgt.value = '0.00';
	  	return;
	  }   	
  }    


 	
  http.open("GET", url, true);
  http.onreadystatechange = handleHttpResponsePolicy;
 
  http.send(null);
}
 
function handleHttpResponsePolicy(){
  if(http.readyState == 4){
    document.step1.policytotalwgt.value = http.responseText;
  }
}
//next 3 functions display the date from the as at date drop list in the text below in step 3
function makeTxt(id,txt) {
	var obj = document.getElementById(id);
	obj.firstChild?obj.firstChild.data=txt:obj.appendChild(document.createTextNode(txt))
}

function disp_text(form) {
  var w = form.selectedIndex;
  var selected_text = form.options[w].text;
  if(selected_text == 'Select a date') {
		selected_text = '(please select an as at date from step1)';
  }   
  
  makeTxt('nav',selected_text);
}
//this one is when a asatdate has been selected and the form has been posted
function changeText(divID , text) {
  if(text == 'Select a date' || text == '') {
		text = '(please select an as at date from step1)';
  }  	
	divEl = document.getElementById(divID);
	if (divEl) {
		divEl.innerHTML = text;
	}
}
//this to redirect to the same page but with astadate val in the url in order to requery and populate the form
function redirect_asatdate(asatdate, portfolio_holder, url_date) {
	
	if(portfolio_holder == null) {
		alert('You must create portfolio to use the date selector');
		return;
	}
  var w = asatdate.selectedIndex;
  var x = portfolio_holder.selectedIndex;
    
  var date = asatdate.options[w].text;
  var product = portfolio_holder.options[x].value;  

  if(date == 'Select a date' || product == '' && url_date != '') {
		//window.location = "?selected_asatdate=";		
		alert('You must select a date and a product before clicking "Go"');
		return;
  }	
  if(url_date == '' && (date == 'Select a date' || product == '')) {
  	return;
  }
	window.location = "?selected_asatdate=" + date + "&selected_prod=" + product;		
}


//calculate totals for portfolio holding
function calc_portfolio_holding_totals(form) {
	var fund1aum = Number(removeCommas(form.fund1aum.value));
	var fund2aum = Number(removeCommas(form.fund2aum.value));	
	var fund3aum = Number(removeCommas(form.fund3aum.value));		
	var fund4aum = Number(removeCommas(form.fund4aum.value));		
	var fund5aum = Number(removeCommas(form.fund5aum.value));		
	var fund6aum = Number(removeCommas(form.fund6aum.value));
	
	var fund7aum = Number(removeCommas(form.fund7aum.value));			
	var fund8aum = Number(removeCommas(form.fund8aum.value));					
	var fund9aum = Number(removeCommas(form.fund9aum.value));	
	var fund10aum = Number(removeCommas(form.fund10aum.value));	

//	var fund7aum =0;			
//	var fund8aum = 0;					
//	var fund9aum = 0;	
//	var fund10aum = 0;	
	
	var total_di;//total dollars invested
	total_di = fund1aum + fund2aum + fund3aum + fund4aum + fund5aum + fund6aum + fund7aum + fund8aum + fund9aum + fund10aum;
	if(total_di == 0)	{
		alert('Total dollars invested cannot be 0')
		return;
	}
	
	
	var fund1ror = Number(form.fund1ror.value);
	var fund2ror = Number(form.fund2ror.value);	
	var fund3ror = Number(form.fund3ror.value);		
	var fund4ror = Number(form.fund4ror.value);		
	var fund5ror = Number(form.fund5ror.value);	
	var fund6ror = Number(form.fund6ror.value);			
		
	var fund7ror = Number(form.fund7ror.value);				
	var fund8ror = Number(form.fund8ror.value);				
	var fund9ror = Number(form.fund9ror.value);	
	var fund10ror = Number(form.fund10ror.value);

//	var fund7ror = 0;				
//	var fund8ror = 0;				
//	var fund9ror = 0;	
//	var fund10ror = 0;
						
	var final_total_ror;

	var total_1 = (fund1aum / total_di) * fund1ror;
	var total_2 = (fund2aum / total_di) * fund2ror;
	var total_3 = (fund3aum / total_di) * fund3ror;	
	var total_4 = (fund4aum / total_di) * fund4ror;		
	var total_5 = (fund5aum / total_di) * fund5ror;			
	var total_6 = (fund6aum / total_di) * fund6ror;
	
	var total_7 = (fund7aum / total_di) * fund7ror;				
	var total_8 = (fund8aum / total_di) * fund8ror;			
	var total_9 = (fund9aum / total_di) * fund9ror;			
	var total_10 = (fund10aum / total_di) * fund10ror;		
	
//	var total_7 = 0;				
//	var total_8 = 0;			
//	var total_9 = 0;			
//	var total_10 = 0;		
		
	final_total_ror = total_1 + total_2 + total_3 + total_4 + total_5 + total_6 + total_7 + total_8 + total_9 + total_10;
	form.total_ror.value = final_total_ror.toFixed(4);
	
	
	var total_dollars_invested = fund1aum + fund2aum + fund3aum + fund4aum + fund5aum + fund6aum + fund7aum + fund8aum + fund9aum + fund10aum;
	form.total_dollars_invested.value = total_dollars_invested.toFixed(2);
	form.total_dollars_invested.value = addCommas(form.total_dollars_invested.value);

}

function redirect_by_letter(get_var, letter) {
	window.location = "?" + get_var + "=" + letter;		
}

function confirm_holding_deletion(portfolio_id) {
	if(portfolio_id == '') {
		alert('You must select a porfolio to delete');
		return false;
	}
	else {
		var agree = '';
		agree=confirm("You will be deleting an entire holding including all months worth of data.  Do you wish to proceed?");
		if (agree) {		
			return true;
		}		
		else {
			return false;
		}		
	}
}

//for building a query string with products for the data squirt file
function create_query_string(theform, perfdate, cover_page) {
	var cbResults ='';
	var flag = 0;
	for (var i = 0; i < theform.elements.length; i++ ) {
  	if (theform.elements[i].type == 'checkbox') {
    	if (theform.elements[i].checked == true) {
    		var checkname = '';
    		checkname = theform.elements[i].name;
    		var hold = checkname.substr(0, 7);
    		if(hold == 'tickme_') {
					flag++; 
					if(flag == 1) {
						cbResults += '/site/excel.php?selected_asatdate=' + perfdate + '&productid__' + flag + '=' + theform.elements[i].value;					
					} 		
					else {
						cbResults += '&productid__' + flag + '=' + theform.elements[i].value;									
					}    			
    		}	
      }
    }
	}
  if(!flag) {
  	alert('You must select at least one product');
  	return;
  }
  else {
  	if(flag > 6) {
  		alert('You can select a maximum of 6 products');  	
  		return;  			
  	}
	
		if (cover_page === undefined ) { 	
			parent.location=cbResults;  	
		}
		else {
			cbResults += '&cover_page' + '=1'; 	
			parent.location=cbResults; 		
		}
		//alert(cbResults);	
  }
}
//for building a query string with products for the data squirt file when for only one product
function create_query_string_single(prodid, perfdate) { 
	var cbResults ='';	
  if(prodid > 0) {
		cbResults += '/site/excel.php?selected_asatdate=' + perfdate + '&productid__1' + '=' + prodid + '&cover_page' + '=1';					
  }
	else {
  	alert('There is no product selected');
  	return;		
	}  
	parent.location=cbResults; 	
}	

//this is to prevent ie submitting the form when hits enter
function prevent_submit(evt) {
	if(evt.keyCode == 13)
  	return false;
  else
		return true;
}

function addCommas(nStr) {
	nStr= nStr.replace(/,/gi, "");

	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}

function removeCommas(nStr) {
	nStr = nStr.replace(/,/gi, "");
	return nStr;
}

function checkIt(evt) { //make sure only number related characters can be entered
//    evt = (evt) ? evt : window.event
//    var charCode = (evt.which) ? evt.which : evt.keyCode
//    //alert(charCode);
//    if (charCode > 31 && (charCode < 48 || charCode > 57)) {
//    		if(charCode != 46 && charCode != 45) {
//	        alert("This field accepts numbers only.");
//	        return false;    			
//    		}
//    }
//    status = ""
//    return true
}
//
//fund
//SELECT defaultbench, reguniverse, assetclass
//FROM `product`
//WHERE `productid` =2149
//LIMIT 0 , 30 
//fund
//1182  	c  	e
//
//bmk
//SELECT prodname, reguniverse, assetclass
//FROM `product`
//WHERE `productid` =1182
//91 day Canada T Bills  	c  	m
//examples of custom bmks
//http://www.global-m-r.com/site/index.php/gmrcompprofile?thecoid=228
//http://www.global-m-r.com/site/index.php/gmrcompprofile?thecoid=286