$(document).ready(function() {

	$('.fancybox').fancybox();
	//disable enter for form submit
	$('form input').on('keypress', function(e) {
	    return e.which !== 13;
	});
	//initialise form if refresh
	showLabel1('out');
	showLabel3('out');
	showLabel6('out');

	var SOURCE = getParameterByName('SOURCE');
	var enlink = $('#enlink').attr('href');
	var sclink = $('#sclink').attr('href');
	if (SOURCE!='') {
		enlink = enlink + "?SOURCE=" + SOURCE;
		$('#enlink').attr('href', enlink);
		sclink = sclink + "?SOURCE=" + SOURCE;
		$('#sclink').attr('href', sclink);
	}

});


$.LoadingOverlaySetup({
    color           : "rgba(0, 0, 0, 0.4)",
    fade            : true,
    image           : "images/loading.gif",
    imagePosition   : "center center",
    maxSize         : 0,
    minSize         : 0,
    resizeInterval  : 0,
    size            : 0,
    zIndex          : 9999
});

function changeVerifyCode(){
	var imgurl = "https://www.cncbinternational.com/Kaptcha.jpg?"+Math.random()*100;
	$('#kaptchaimg').attr("src", imgurl);
}

function getParameterByName(name) {
	name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
	var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
	results = regex.exec(location.search);
	return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}


function showNext(id,idd){
		errUp();
	var errocount = false;

	var targetB = "#" + idd; /*previous*/
	var target = "#" + id;  /*next*/

	var SOURCE = getParameterByName('SOURCE');

	var sur = $('#surname').val();
	var giv = $('#givenname').val();
	var username = sur + " " + giv;

	var hkid = $('#hkid').val();
	var telno = $('#telno').val();
	var cardholder = $("input[name='cardholderYN']:checked").val();
	if (cardholder == "yes") { var cdisplay = "是"; } else if (cardholder == "no") { var cdisplay = "否"; } else { $("#err-cardholderYN").slideDown(); errocount = true;}
	var designatedCITICacc = $('#designatedCITICacc').val();
	if (cardholder == "yes" && designatedCITICacc == "") { $("#err-designatedCITICacc").slideDown(); errocount = true;}
	var transferMETHOD = $('#transferMETHOD').val();
	if (transferMETHOD == "cheque") { var tdisplay = "寄送支票到現有信用卡戶口的通訊地址"; } else if (transferMETHOD == "transferCITIC") { var tdisplay = "直接轉入指定中信銀行(國際)港元戶口"; } else if (transferMETHOD == "transferOTHER") { var tdisplay = "直接轉入其他銀行港元戶口"; } else { $("#err-transferMETHOD").slideDown(); errocount = true;}
	var bankname = $('#bankname').val();
	if (transferMETHOD == "transferOTHER" && bankname == "") { $("#err-bankname").slideDown(); errocount = true; }
	var designatedacc = $('#designatedacc').val();
	if ((transferMETHOD == "transferOTHER" || transferMETHOD == "transferCITIC")&& designatedacc == "") { $("#err-designatedacc").slideDown(); errocount = true; }
	var cpgcode = $('#campaigncode').val();
	var cpgname = $('#campaignname').val();
	var lang = $('#lang').val();

	var tnc = $('#tnccheck:checked').val();

	var veri = $('#verificationcode').val();



		if ((sur == null) || (sur == "") || !validateName(sur)) {
		$("#err-surname").slideDown();
		errocount = true;
		}
		if ((giv == null) || (giv == "") || !validateName(giv)) {
		$("#err-givenname").slideDown();
		errocount = true;
		}

		if ((hkid == null) || (hkid == "") || !checkHkid(hkid)) {
		$("#err-hkid").slideDown();
		errocount = true;
		}
		if ((telno == null) || (telno == "") || !isPhoneNumber(telno)) {
		$("#err-telno").slideDown();
		errocount = true;
		}
//		if ((emailadd == null) || (emailadd == "") || !validateEmail(emailadd)) {
//		if ((emailadd != null) && (emailadd != "")) {
//		    if (!validateEmail(emailadd)) {
//			$("#err-email").slideDown();
//			errocount = true;
//			}
//		}


		if ((tnc == false) || (tnc == null)) {
		$("#err-tnc").slideDown();
		errocount = true;
		}


		//chcek verify code
		if($("#s2").is(":visible") && (id != "s1")){
			if ((veri == null) || (veri == "")) {
				$("#err-veri").slideDown();
				errocount = true;
			}else{
				errocount = false;
				$("#err-veri").slideUp();
			}
		}


		if ((errocount != true) && id == "s3") {

			//Generate reference number campaign code + Month + Day + Hour + Minutes + Seconds
//			var finitial = giv.charAt(0).toUpperCase();
//			var linitial = sur.charAt(0).toUpperCase();
//			var nnum = new Date().valueOf();
			var subdate = new Date();
			var month = ('0' + (subdate.getMonth() + 1)).slice(-2);
			var day = ('0' + subdate.getDate()).slice(-2);
			var hours = subdate.getHours();
			if (hours < 10) { hours = "0" + hours; }
			var minutes = subdate.getMinutes();
			if (minutes < 10) { minutes = "0" + minutes; }
			var seconds = subdate.getSeconds();
			if (seconds < 10) { seconds = "0" + seconds; }

//			var refid = cpgcode + finitial + linitial + nnum;
			var refid = cpgcode + month + day + hours + minutes + seconds;
			//alert (refid);
			$("#refNum").text(refid);

			//var msg = " Sent the following data to backend:-\n surname: " + sur + "\n given name: " + giv + "\n hkid: " + hkid + "\n telnumber: " + telno + "\n email: " + emailadd + "\n loanamt: " + loan + "\n tenor: " + tenor + "\n campaigncode: " + cpgcode + "\n campaignname: " + cpgname + "\n language: " + lang + "\n submittime: " + subdate + "\n usertnc: " + tnc + "\n SOURCE: " + SOURCE + "\n userrefno: " + refid + "\n usercaptchatext: " + veri;
            var msg = " Sent the following data to backend:-\n surname: " + sur + "\n given name: " + giv + "\n HKID: " + hkid + "\n Telephone: " + telno + "\n CNCB Card Holder: " + cardholder + "\n Credit Card Account: " + designatedCITICacc + "\n Loan Method: " + transferMETHOD + "\n Bank Name: " + bankname + "\n Account Number: " + designatedacc + "\n campaigncode: " + cpgcode + "\n campaignname: " + cpgname + "\n language: " + lang + "\n submittime: " + subdate + "\n usertnc: " + tnc + "\n SOURCE: " + SOURCE + "\n userrefno: " + refid + "\n usercaptchatext: " + veri;
            
			//Start overlay
			$.LoadingOverlay("show");
			//Submit form to server via ajax
			// Send
			$.ajax({
				url: '/cms/onlineapp/10K-Line-Burn/uclEmailSend.jsp',
				type: 'post',
				dataType: 'json',
				data: { action: 'order',
						surname: sur,
						givenname: giv,
						hkid: hkid,
						telnumber : telno,
						cardholder : cardholder,
						cardnum : designatedCITICacc,
						loanmethod : transferMETHOD,
						bankname: bankname,
						acctnum: designatedacc,
						campaigncode : cpgcode,
						campaignname : cpgname,
						language : lang,
						submittime : subdate,
						usertnc: tnc,
						SOURCE : SOURCE,
						userrefno: refid,
						usercaptchatext: veri
						},
				success: function(data){
					//log('order:', data);
					//alert(data.message);

                    
                    
					//alert(msg);

					// SUCCESS
					if(data.result == '0'){
						// Clear & reset Form
						clearAll();
						//Show result page
//Old slideup/down result.
/*						$(targetB).slideUp();
						$(target).slideDown(500);
						var shine = "#icon" + id;
						$(shine).css("opacity",1);
						var dark = "#icon" + idd;
						$(dark).css("opacity",0.3);
						$.LoadingOverlay("hide");
						//alert("success");
*/
						//redirect to complete.html with refid
						location.replace("complete.html?refid=" + refid);
					} else {
						// ERROR
						if(data.result == '-1'){
							errocount = true;
							$("#err-veri").slideUp();
							$("#err-veri2").slideDown();
							$("#err-veri3").slideUp();
							//alert("result==-1");
						}
						else if (data.result == '-2'){
							errocount = true;
							$("#err-veri").slideUp();
							$("#err-veri2").slideUp();
							$("#err-veri3").slideDown();
							//alert("result==-2");
						}
						$.LoadingOverlay("hide");
					}
				},
				error: function() {
					errocount = true;
					$("#err-veri").slideUp();
					$("#err-veri2").slideDown();
					var errMsg = "Please try again later.";
					$.LoadingOverlay("hide");
					//alert(errMsg);
				}
			});


		}

		if ((errocount != true) && id != "s3") {
			//Show result page
			$(target).slideDown(500);
			var shine = "#icon" + id;
			$(shine).css("opacity",1);
			var dark = "#icon" + idd;
			$(dark).css("opacity",0.3);
			if($(targetB).is(":visible")){
				$(targetB).slideUp(500);
				errUp();
				/* display entered value*/
				$("#surnamedis").text(sur);
				$("#givenamedis").text(giv);
				$("#hkiddis").text(hkid);
				$("#teldis").text(telno);
				$("#carddisp").text(cdisplay);
				$("#cardnumdisp").text(designatedCITICacc);
				$("#transferMETHODdisp").text(tdisplay);
				$("#banknamedisp").text(bankname);
				$("#acctnumdisp").text(designatedacc);
				/*$("#tncdis").slideUp();*/
			}
		}

}

function NameValid(nfield) {
     errUp();
     var fvalue = 0;
    if (nfield == 1) {
		fvalue = $("#surname").val();
		fvalue = fvalue.replace(/[^a-zA-Z\s]/g,"");  //English letters + Space
		$("#surname").val(fvalue);
    }
    if (nfield == 2) {
		fvalue = $("#givenname").val();
		fvalue = fvalue.replace(/[^a-zA-Z\s]/g,""); //English letters + Space
		$("#givenname").val(fvalue);
    }
    
}
function NumValid(nfield) {
     //errUp();
    var letters = /^[0-9]+$/;
    var fvalue = 0;
    if (nfield == 1) {
		fvalue = $("#designatedCITICacc").val();
        if(fvalue.match(letters)){
          $("#designatedCITICacc").addClass('check-tick');
		  $("#err-designatedCITICacc").slideUp();
          
        }else{
          $("#designatedCITICacc").addClass('check-cross');
  		  $("#err-designatedCITICacc").slideDown();
        }
        if($('#designatedCITICacc').val() != ''){
			$("#placeholderdesignatedCITICacc").css("visibility","hidden");
		}else{
			$("#placeholderdesignatedCITICacc").css("visibility","visible");
            $('#designatedCITICacc-lab').removeClass('display');
		}
        
    }
    
    if (nfield == 2) {
		fvalue = $("#designatedacc").val();
        if(fvalue.match(letters)){
          $("#designatedacc").addClass('check-tick');
          $("#err-designatedacc").slideUp();
        }else{
          $("#designatedacc").addClass('check-cross');
          $("#err-designatedacc").slideDown();
        }
        if($('#designatedacc').val() != ''){
			$("#placeholderdesignatedacc").css("visibility","hidden");
		}else{
			$("#placeholderdesignatedacc").css("visibility","visible");
            $('#designatedacc-lab').removeClass('display');
		}
        
    }
}




function clearAll() {
	var myDDL = $('#transferMETHOD');
	myDDL[0].selectedIndex = 0;
	$('#tnccheck').prop('checked', false);
	$('#isCARDHOLDER').prop('checked', false);
	$('#notCARDHOLDER').prop('checked', false);
	$("#forY").hide();
	$("#designatedacc_row, #bankname_row, #accnumconfirm, #banknameconfirm, #transferOTHERreamrk, #bankdisp, #accdisp").hide();
	$('#surname').val("");
	$('#givenname').val("");
	$('#hkid').val("");
	$('#telno').val("");
	$('#designatedCITICacc').val("");
	$('#designatedCITICacc').removeClass('check-tick');
	$('#designatedCITICacc').removeClass('check-cross');
	$('#bankname').val("");
	$('#designatedacc').val("");
	$('#bankname').removeClass('check-tick');
	$('#bankname').removeClass('check-cross');
	$('#designatedacc').removeClass('check-tick');
	$('#designatedacc').removeClass('check-cross');

	errUp();

	//initialise form if clear
	showLabel1('out');
	showLabel2('out');
	showLabel3('out');
	showLabel6('out');

}



function errUp(){
	$("#err-surname").slideUp();
	$("#err-givenname").slideUp();
	$("#err-hkid").slideUp();
	$("#err-telno").slideUp();
	$("#err-cardholderYN").slideUp();
	$("#err-transferMETHOD").slideUp();
	$("#err-designatedacc").slideUp();
	$("#err-tnc").slideUp();
	$("#err-veri1").slideUp();
	$("#err-veri2").slideUp();
	$("#err-veri3").slideUp();
}

// VALIDATION
function validateName(name) {
          var re = /^[A-Za-z\s]+$/;						// space & eng
	//var re = /^[-'a-z\u4e00-\u9eff]{1,20}$/i;
	//var re = /^[\u3300-\u9fff\uf900-\ufaff]{2,}$/;
//	var re = /^[A-Za-z\u2E80-\u2FD5\u3400-\u4DBF\u4E00-\u9FCC\s]+$/;						// space & eng & chinese
    return re.test(name);
}


// VALIDATION
function validateEmail(email) {
    var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
    return re.test(email);
}

// VALIDATION
function validateCC(identifier) {
	var CNCBCards = [ '434689', '434690', '434691', '491891', '491892', '542288', '540954', '539142','624303'];

	return checkCreditCardPrefix(identifier, CNCBCards, 6);
}

function checkCreditCardPrefix(identifier, cardPrefixs, cardPrefixLen) {
		var x = cardPrefixs.length;
		var y = 0;
		var cardprefix = identifier.substr(0,cardPrefixLen);

		while (y < x) {
			if (cardprefix == cardPrefixs[y]) { return true; }
			y++;
		}

		return false;
}

// VALIDATION
function validateLoan(numval) {
	//validate end 000
	var numlast = numval.slice(-3);
	if ((numlast != "000") || !isInteger(numval) || (numval < 5000) || (numval > 9999000)) {
		return false;
	} else {
		return true;
	}

}

function numberWithCommas(x) {
    return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
}

function isInteger(s)
{   var i;
    for (i = 0; i < s.length; i++)
    {
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}
function trim(s)
{   var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not a whitespace, append to returnString.
    for (i = 0; i < s.length; i++)
    {
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (c != " ") returnString += c;
    }
    return returnString;
}
function stripCharsInBag(s, bag)
{   var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++)
    {
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}
// Declaring required variables
var digits = "0123456789";
// non-digit characters which are allowed in phone numbers
var phoneNumberDelimiters = "()- ";
// characters which are allowed in international phone numbers
// (a leading + is OK)
var validWorldPhoneChars = phoneNumberDelimiters + "+";
// Minimum no of digits in a phone no.
var minDigitsInIPhoneNumber = 8;

function isPhoneNumber(strPhone){
var bracket=3
strPhone=trim(strPhone)
if(strPhone.indexOf("+")>1) return false
if(strPhone.indexOf("-")!=-1)bracket=bracket+1
if(strPhone.indexOf("(")!=-1 && strPhone.indexOf("(")>bracket)return false
var brchr=strPhone.indexOf("(")
if(strPhone.indexOf("(")!=-1 && strPhone.charAt(brchr+2)!=")")return false
if(strPhone.indexOf("(")==-1 && strPhone.indexOf(")")!=-1)return false
s=stripCharsInBag(strPhone,validWorldPhoneChars);
return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}