function replaceAll(string, token, newtoken) {
	while (string.indexOf(token) != -1) {
 		string = string.replace(token, newtoken);
	}
	return string;
}

function limitCharOfTextarea(areaName, limit){
 if (areaName.value.length>limit)
  areaName.value = areaName.value.substring(0,limit);
}

function getXMLHTTP(){
 try{
  obj = new XMLHttpRequest() //for FireFox
 }catch(e){
  obj = new ActiveXObject("Microsoft.XMLHTTP"); //for IE
 }
 
 return obj;
}

function subjectEmail(){
	obj = document.askTheExpertForm;
	
	if(obj.subject.value == "2" || obj.subject.value == "3" || obj.subject.value == "4"){
		obj.subject.value = 0;
		closeModalDiv('ask-the-expert-submission');
		window.location = "/contact-us.jsp";
	}
}

function save(form){
 var http_request;
 document.getElementById('bntSubmit').href = "#";
    
 http_request = getXMLHTTP();
    
 if (validateForm(form)){ 
   
    http_request.onreadystatechange = function(){
      if ( http_request.readyState == 4 ) 
	  {
        if ( http_request.status == 200 || http_request.status == 301 )
		{ 
			closeModalDiv("ask-the-expert-submission");
			openModalDiv("ask-the-expert-confirmation",-200);
            document.getElementById('bntSubmit').href = "javascript: save(document.askTheExpertForm);";
            form.reset();
        }
		else
		{
           document.location.href = "/error.jsp";
        }
      }
    };
    
    var expertTopicId = 'expertTopicId='+form.expertTopicId.value;
    var question = 'question='+ replaceAll( form.question.value, '\n', ' ');
    var subject = 'subject='+form.subject.value;
    var anonymous = 'anonymous='+ (form.anonymous.checked == true ? 'Y':'N');
    var nameOptional = 'nameOptional='+form.nameOptional.value;
    
    http_request.open('GET','/asktheexpert.do?p=createAskTheExpert&' + expertTopicId+'&'+question+'&'+anonymous+'&'+nameOptional+'&'+subject , true);
    http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    
    http_request.send(null);
  
  } else{
    document.getElementById('bntSubmit').href = "javascript: save(document.askTheExpertForm);";
  }
  
}

function validateForm(frm){

   var els = frm.elements;
   for (var i = 0; i < els.length; i++) if (els[i].type == 'text' || els[i].type == 'textarea') els[i].value = els[i].value.replace(/^\s\s*/, '').replace(/\s\s*$/, '');

   if(frm.subject.value == "0"){
   	alert("Please enter with subject of email.")
   	frm.subject.focus();
   	return false;
   
   }
   else if ( frm.question.value == "" ){
        alert ("Please enter with your question.")
        frm.question.focus()
        return false
   }
 
   return true;
}

function disableName(){
   var checkbox = document.getElementById('anonymous');
   var name = document.getElementById('nameOptional');
    
   if ( document.askTheExpertForm.anonymous.checked == true ){
   
     document.askTheExpertForm.nameOptional.value = "";
     document.askTheExpertForm.nameOptional.disabled = true;
     
   }
   else{
     document.askTheExpertForm.nameOptional.disabled = false;
     
   }
}
