// Assumes included createRequest javascript function 
// e.g. in Apache/js/NIU/createRequest_no.js
// Assumes included getURLParameter from e.g. /js/util/Merge.js
var request;

///////////// Callback:
function handleOrderRegReturn() {
  //alert("Server is done!");     
  if (request.readyState == 4) {
    if (request.status == 200) {
      //alert("From php script : " + request.responseText);
      var resArray = request.responseText.split("|");
      var errCode = resArray[0];
      var spaceFilter = /^(\n|\r)+/;
      var counter = 0;
      while (spaceFilter.test(errCode)) {// && (counter < 4)) {
      	//counter++;
      	//alert("Removing white space char "+counter+" errCode: *" + errCode + "*");
      	errCode = errCode.substring(1, errCode.length);
      }
      //alert("errCode =*" + errCode +"*"); 
			var filter  = /^\d{1,10}$/;
			if (!filter.test(errCode)) {
				alert("SYSTEM ERROR.\r\nReturn from script: *" + request.responseText+"*");
				document.getElementById("enduserInfo").innerHTML = "";
      	return;
			}
      if (errCode == 0) {
	      alert("Thanks for ordering a video greeting!\r\n"
	      +"It is now being sent to the receiver.\r\n"
	      +"More info to the bottom of the page.");  
				document.getElementById("enduserInfo").innerHTML = resArray[1];
  		} else if (errCode == 8) {
				// UPGRADE
				alert("The service is being upgraded.\r\n"+resArray[1]+"\r\nPlease com back later.");
				document.getElementById("enduserInfo").innerHTML = "The service is being upgrader. Please call back later.";
			} else if (errCode == 9) {
  			alert("Message: " + resArray[1]);
				document.getElementById("enduserInfo").innerHTML = resArray[1];
			} else { 
  			//alert("System error: " + resArray[1]);
				alert("Sorry. The service failed. Notification send to operator.\r\nPlease try again or come back later.");
				document.getElementById("enduserInfo").innerHTML = "System error, please call back later!";
  		}    
    } else
      alert("Sorry!\r\nNo connection to the service.\r\nPlease try again later.\r\nError status from network: " + request.status);
   }
}

////// Button function
function createOrder(partner, theme) {
	
	if (!serverPayPalOpen()) {
		if (!checkIfURLParameter("iitest")) {
			alert("The service is being upgraded. Please call back later.");
			return;
		}
	}
	
	document.applets['FacePlayer'].stopAnimation();
		
	vpaycode = escape(document.getElementById('paycode').value);
	
	if (vpaycode == "") {
		alert("Please provide a pay code.");
		return;
	}
	
	vreceiver = document.getElementById('receiver').value;
	ok = isEmail(vreceiver);// || isPhone_no(receiver);
	if (!ok) {
		alert("Error in receiver email address.");
		return;
	}
	
	vvoice = getVoiceName(document.getElementById('voicelist').value);
	vspeechText = document.getElementById('tSpeechText').value;
	ok = validateSpeechText(vspeechText, 220, 'en');
	if (ok == 0) return;
	vspeechText = AddPeriod(vspeechText);
		
	vmessage  = document.getElementById('message').value;
	ok = validateMessageText(vmessage, 1000, 'en');
	if (ok == 0) return;
	
	vproductid = document.getElementById('productid').value;
	vpartner = escape(document.getElementById('partner').value);
	vtheme = escape(document.getElementById('theme').value);
	vlanguage = escape(document.getElementById('language').value);
	vheadid = document.getElementById('headid').value;
	vpictid = document.getElementById('pictid').value;
  
  request = createRequest();
  
  if (!request)
    alert("Error initializing XMLHttpRequest!"); 
  else { 
		var params = "paycode="+vpaycode+"&partner="+vpartner+"&theme="+vtheme+"&language="+vlanguage
		+"&productid="+vproductid
		+"&headid="+vheadid+"&bgpictures=1&bgpicture0="+vpictid+"&voice="+vvoice
		+"&receiver="+escape(vreceiver)+"&sptxt="+escape(vspeechText)+"&mess="+escape(vmessage);
	  var url = "/PayPal/inophp/callbacks/orderTTSVideo_handler.php?"+params;
	  request.open("GET", url, true);
	  request.onreadystatechange = handleOrderRegReturn;
	  request.send(null);
	  //alert("Din bestilling er n\u00E5 sent til serveren.\r\n"
	  //       +"Trykk OK og vent p\u00E5 kviteringsmelding som \r\nkommer opp p\u00E5 samme m\u00E5te som denne meldingen.");
   }
}


