//========================== editPortfolio.jsp ====================================
function stopRKey(evt) {
  var evt = (evt) ? evt : ((event) ? event : null);
  var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
  if ((evt.keyCode == 13) && (node.type=="text"))  {return false;}
} 

// form submit
function formSubmit_edit(form, reply){
	var xmlHttp = xmlHttpObject();
	var xmlMsg = buildPOST("myForm");
	var sign = reply.split("|");

	if (sign[0] != "0" && sign[0] != "4"){
		if (getField("portName1").getValue() == "" || getField("portName2").getValue() == "" ||
			getField("portName3").getValue() == "" ){
			alert("Please do not empty the portfolio name!");
		}else if ( (getField("portName1").getValue() == getField("portName2").getValue() && trim(getField("portName2").getValue()) != "")||
				   (getField("portName3").getValue() == getField("portName2").getValue() && trim(getField("portName3").getValue()) != "") ||
				   (getField("portName1").getValue() == getField("portName3").getValue() && trim(getField("portName1").getValue()) != "")){
			alert("Please do not duplicate the portfolio name!");
		}else if (checkAllField_edit()){
			showLoading("setPortfolio");
			//doAjax("/portfolio/update.page",xmlMsg,'updateAction','0',"_self");
			document.forms[form].action = "../portfolio/update.page";
			document.forms[form].submit();
		}else{
			alert("Failure!");
		}
	}else{ 
		alert("Ticket not correct!");
	}	
}


// check the form
function checkSubmit_edit(){
	var target = "myForm";
	var xmlMsg;

	xmlMsg = buildPOST("myForm");
	doAjax("../checkAllClassAction_edit.do",xmlMsg,'formSubmit_edit','0',target);
}


function checkAllField_edit() {		
	for (i=1;i<=allocMax;i++){
		symbolArr = "symbol" + i;
		symbol = getField(symbolArr).getValue();
		if (trim(symbol).length == 0){
			assignRatio1 = "assignRatio1_"+i;
			assignRatio2 = "assignRatio2_"+i;
			assignRatio3 = "assignRatio3_"+i;
			getField(assignRatio1).setValue("0");
			getField(assignRatio2).setValue("0");
			getField(assignRatio3).setValue("0");
			
		}
	}	
	
	for (i=1;i<=allocMax;i++){
		mFeeArr = "mFee" + i;
		mFee = getField(mFeeArr).src;
		if (!checkMFee(mFee)){ return false };
	}

	if (!checkAssignRatio("1_")){ return false };
	if (!checkAssignRatio("2_")){ return false };
	if (!checkAssignRatio("3_")){ return false };
	if (!checkMinRatio()){ return false };
	if (!checkAnnualReturn(getField("annualReturn").src)){ return false };

	return true;
}


function checkAllField() {

	for (i=1;i<=allocMax;i++){
		symbolArr = "symbol"+i;
		symbol = getField(symbolArr).getValue();
		if (trim(symbol).length == 0){
			assignRatio = "assignRatio"+i;
			getField(assignRatio).setValue("0");	
		}
	}	

	for (i=1;i<=allocMax+1;i++){
		mFeeArr = "mFee"+i;
		mFee = getField(mFeeArr).src;
		if (!checkMFee(mFee)){ return false };
	}

	if (!checkAssignRatio()){ return false };
	if (!checkAnnualReturn(getField("annualReturn").src)){ return false };
	return true;
}


// check duplicate symbol
function checkDuplicate(obj){
	var xmlMsg = document.getElementsByName("symbol");
	var symbol = trim(obj.value).toUpperCase();
	var no = obj.id.substring(6,obj.id.length)-1;
	var result = true;

	for (i=0;i<xmlMsg.length;i++){
		if (symbol == xmlMsg[i].value && symbol.length != 0 && i != no){ 
			alert("Please do not enter a duplicate symbol.");
			obj.value = "";
			result = false;
		}
	}
	return result;
}


// check minRatio <= 70%
function checkMinRatio() {
  var sum = 0;
  var max = 70;
  var minRatio;
  var input;

  for (i=1; i<=allocMax+1; i++) {
    input = "minRatio"+i;
    minRatio = document.getElementById(input);

    if (trim(minRatio.value).length == 0 || trim(minRatio.value) == ''|| 
		(trim(minRatio.value).length == 1 && trim(minRatio.value) == '.')){
		minRatio.value =  0;
	}else{
		sum += parseFloat(minRatio.value);
	}
  }

  if(sum > max){
	alert("The sum of minimum required allocation fields 1 to 10 cannot over "+max+"%");
	return false;
  }else{ 
	return true;
  }
} 


// check AssignRatio <= 100%
function checkAssignRatio(prefix) {
  var sum = 0;
  var max = 100;
  var assignRatio;
  var input;

  if (prefix==null || prefix.length == 0){var prefix = ""; }
  var name = "assignRatio" +prefix+ (allocMax+1);

  var assignRatio10 = getField(name);

  for (i=1; i<=allocMax; i++) {
    input = "assignRatio"  +prefix+i;
    assignRatio = document.getElementById(input);

    if (trim(assignRatio.value).length == 0 || trim(assignRatio.value) == ''|| 
		(trim(assignRatio.value).length == 1 && trim(assignRatio.value) == '.')){
		assignRatio.value =  0;
	}else{
		assignRatio.value = Math.round(assignRatio.value*10)/10;
		sum += parseFloat(assignRatio.value);
	}
  }

  if(sum > max){
	alert("The sum of allocation cannot over "+max+"% in portfolio");
	return false;
  }else{ 
	var shy = Math.round((100-sum)*10)/10;
	assignRatio10.setValue(shy);
	return true;
  }
} 


// check mFee <= 10%
function checkMFee(mFee) {
  var max = 10;

  if (trim(mFee.value).length == 0 || trim(mFee.value) == '' || 
	  (trim(mFee.value).length == 1 && trim(mFee.value) == '.')){
	mFee.value = 0;
  }

  if(parseFloat(mFee.value) > max || parseFloat(mFee.value) < 0){
	alert("Each management fee must between 0 to "+max+"%");
	return false;
  }	else {
	return true;
  }
} 


// check AnnualReturn <= 10%
function checkAnnualReturn(annual) {
  var max = 10;

  if (trim(annual.value).length == 0 || trim(annual.value) == '' || 
	  (trim(annual.value).length == 1 && trim(annual.value) == '.')){
	annual.value = 0;
  }

  if(parseFloat(annual.value) > max || parseFloat(annual.value) < 0){
	alert("The Annual Return must between 0 to 10%");
	return false;
  }	else {
	return true;
  }
} 


// check input != empty
function checkEmpty(input) {
  if (trim(input.value).length == 0 || trim(input.value) == ''|| 
	  (trim(input.value).length == 1 && trim(input.value) == '.')){
	input.value = 0;
  }
} 


// type number only
function noAlpha(obj){
	reg = /[^0-9.]/g;
	obj.value =  obj.value.replace(reg,"");
	if (obj.value.split(".").length-1 > 1 ){
		obj.value =  obj.value.replace(/\./,"");
	}
}

// form submit
function formSubmit(form, reply){
	var sign = reply.split("|");

	if (checkAllField()){
		if (sign[0] != "0" && sign[0] != "4"){
			//document.forms[form].action = "../getFrontier.page";
			document.forms[form].submit();
			showLoading("setPortfolio");
		}else{ 
			alert("Ticket not correct!");
		}
	}
}


// check the form
function checkSubmit(){
	var target = "myForm";
	var xmlMsg;

	xmlMsg = buildPOST("myForm");
	doAjax("../checkAllClassAction.do",xmlMsg,'formSubmit','0',target);
}

// check the expected return rate
function checkExpReturn(max, min){
	var rate = getField("expectedReturn_src").src.value;
	
	if (parseFloat(rate) > max || parseFloat(rate) < min){
		alert("Expeted Return must between "+min+" to "+max+"%");
		return false;
	}else {
		return true;
	}
}
//========================== createAccount.jsp ====================================
//email validation
function emailValid(field1){	//, dialog	
	var emailExp = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/;
	//var dialog = getField(dialog);

	if(field1.value.length == 0){
		return false;
		//field1.style.border="1px solid #ccc";
		//dialog.setInnerHTML("");
	}else{
		if(field1.value.match(emailExp) || field1.value.length == 0){
			return true;
			//field1.style.border="1px solid #ccc";
			//dialog.setInnerHTML("<img src='../templates/default/images/portfolio/right.jpg' align='absmiddle'>");
		}
		else{
			return false;
			//field1.style.border="1px solid red";
			//dialog.setInnerHTML("<img src='../templates/default/images/portfolio/wrong.jpg' align='absmiddle'> This email address is not valid!");
		}
	}
}

//check Length
function pwdLen(field1,dialog){		
	var dialog = getField(dialog);
	var len = field1.value.length;
	alert(len);
	if(len == 0){
		alert("empty");
		field1.style.border="1px solid #ccc";
		dialog.setInnerHTML("");
	}
	else{
		if(len >= 8){
			alert("pass");
			field1.style.border="1px solid #ccc";
			dialog.setInnerHTML("<img src='/templates/default/images/portfolio/right.jpg' align='absmiddle'>");
		}
		else{		
			alert("fail");
			field1.style.border="1px solid red";
			dialog.setInnerHTML("<img src='/templates/default/images/portfolio/wrong.jpg' align='absmiddle'> Please enter " +(8-len)+ " character(s) more!");
		}
	}
}

//Reconfirm field validation
function reconfirm(dialog){
	var field1 = getField("password");
	var field2 = getField("password_confirm");
	var dialog = getField(dialog);
	
	if (field1.getValue().length > 0 ){
		if (field2.getValue().length <= 0){
			field2.setBorder("ccc");
			field2.setValue("");
			dialog.setInnerHTML("");
		}
		else{
			if (field2.getValue() == field1.getValue()){
				field2.setBorder("ccc");
				dialog.setInnerHTML("<img src='../templates/default/images/portfolio/right.jpg' align='absmiddle'>");
			}else{
				field2.setBorder("red");
				dialog.setInnerHTML("<img src='../templates/default/images/portfolio/wrong.jpg' align='absmiddle'> Please verify your password again!");
			}
		}
	}else{
		field2.setBorder("ccc");
		field2.setValue("");
		dialog.setInnerHTML("");
	}
}

//reload confirm field
function reload(fieldKey,dialog){
	document.getElementsByName(fieldKey).value = "";
	document.getElementsByName(fieldKey).style.border="1px solid #6398BF";
	document.getElementById(dialog).innerHTML="";
}