﻿function captchaHandle() {
	$.ajax({
		url:"/en/ajax/ajax.aspx?action=reloadCaptcha",
		cache:false,
		success: function(data){ self.process(data);},
		error:function(){}		
	});
	
	this.process=function(response){
		var $data=$(response).find('Status');
		
		if(!$data)
			return false;
			
		$data.each(function(){
			var img=$('img',this).text();
			document.getElementById('captchaImg').src = "http://k11concepts.blob.core.windows.net/captcha/" + img + ".jpg";
		});
	}
}

function reloadCaptcha() {
    captchaHandle();
}

function telCheck(str) {
    var inpVal = parseInt(str, 10);
    if (isNaN(inpVal)) {
        return false;
    }
    return true;
}

function emailCheck(str) {
    var at = "@";
    var dot = ".";
    var lat = str.indexOf(at);
    var lstr = str.length;
    var ldot = str.indexOf(dot);

    // check if '@' is at the first position or  at last position or absent in given email 
    if (str.indexOf(at) == -1 || str.indexOf(at) == 0 || str.indexOf(at) == lstr) {
        return false;
    }

    // check if '.' is at the first position or at last position or absent in given email
    if (str.indexOf(dot) == -1 || str.indexOf(dot) == 0 || str.indexOf(dot) == lstr) {
        return false;
    }

    // check if '@' is used more than one times in given email
    if (str.indexOf(at, (lat + 1)) != -1) {
        return false;
    }

    // check for the position of '.'
    if (str.substring(lat - 1, lat) == dot || str.substring(lat + 1, lat + 2) == dot) {
        return false;
    }

    // check if '.' is present after two characters from location of '@'
    if (str.indexOf(dot, (lat + 2)) == -1) {
        return false;
    }

    // check for blank spaces in given email
    if (str.indexOf(" ") != -1) {
        return false;
    }

    return true;
}

function FcnSubmit() {
    var errMsg = "";
    var count = 0;

    var reserved = getCookie('reservation_list');
    if (reserved.indexOf(',') > -1) {
        var reserves = reserved.split(',');
        count =  reserves.length - 2;
    }
    if (count == 0) {
        errMsg = "No reserved items";
        alert(errMsg);
    }
    else {
        if ((document.getElementById('Name').value == null || document.getElementById('Name').value == "")) {
            errMsg = "Name is required.";
            document.getElementById('CheckName').style.display = 'inline';
        }
        else {
            document.getElementById('CheckName').style.display = 'none';
        }


        if ((document.getElementById('Tel').value == null || document.getElementById('Tel').value == "")) {
            if (errMsg == "")
                errMsg = "Contact Number is required.";
            else
                errMsg += "\nContact Number is required.";

            document.getElementById('CheckTel').innerHTML = 'Please fill in your Contact Number.';
            document.getElementById('CheckTel').style.display = 'inline';
        }
        else {
            if (!telCheck(document.getElementById('Tel').value)) {
                if (errMsg == "")
                    errMsg = 'Please provide a valid Contact Number.';
                else
                    errMsg += '\nPlease provide a valid Contact Number.';

                document.getElementById('CheckTel').innerHTML = 'Please provide a valid Contact Number.';
                document.getElementById('CheckTel').style.display = 'inline';
            }
            else {
                document.getElementById('CheckTel').style.display = 'none';
            }
        }

        if ((document.getElementById('Email').value == null || document.getElementById('Email').value == "")) {
            if (errMsg == "")
                errMsg = "Email is required.";
            else
                errMsg += "\nEmail is required.";

            document.getElementById('CheckEmail').innerHTML = 'Please fill in your email.';
            document.getElementById('CheckEmail').style.display = 'inline';
        }
        else if (!emailCheck(document.getElementById('Email').value)) {
            if (errMsg == "")
                errMsg = "Please input a email which is valid.";
            else
                errMsg += "\nPlease input a email which is valid.";

            document.getElementById('CheckEmail').innerHTML = 'Please provide a valid email address.';
            document.getElementById('CheckEmail').style.display = 'inline';
        }
        else {
            document.getElementById('CheckEmail').style.display = 'none';
        }

        if ((document.getElementById('captcha').value == null || document.getElementById('captcha').value == "")) {
            if (errMsg == "")
                errMsg = "Verification code is required.";
            else
                errMsg += "\nVerification code is required.";

            document.getElementById('CheckCaptcha').innerHTML = 'Please fill in captcha.';
            document.getElementById('CheckCaptcha').style.display = 'inline';
        }
        else {
            document.getElementById('CheckCaptcha').style.display = 'none';
        }

        if (!document.getElementById('acceptTerms').checked) {
            if (errMsg == "")
                errMsg = "Please check terms & conditions.";
            else
                errMsg += "\nPlease check terms & conditions.";

            document.getElementById('checkTerms').style.display = 'block';
        }
        else {
            document.getElementById('checkTerms').style.display = 'none';
        }
    }
    if (errMsg != "") {
        //alert(errMsg);
        return false;
    }

    submitHandle(document.getElementById('Email').value, document.getElementById('Name').value, document.getElementById('Tel').value, document.getElementById('captcha').value);
}

function submitHandle(email, name, tel, captcha) {
	//Add Loading
	var loader = new loading();
	loader.show();
    var reserved = getCookie('reservation_list');
    var reservedItems = reserved.split(',');
    var strItemList = "";
    
    for (i in reservedItems) {
        if(reservedItems[i]!="")
            strItemList += reservedItems[i] + ":";
    }

    $.ajax({
		url:"/en/ajax/ajax.aspx?action=submit&email=" + email + "&name=" + escape(name) + "&tel=" + tel + "&marketing=" + (document.getElementById('marketing').checked == true ? "T" : "F") + "&captcha=" + captcha + "&itemList=" + strItemList,
		cache:false,
		success: function(data){ self.process(data);},
		error:function(){}		
	});


	this.process = function (response) {
	    var $data = $(response).find('Status');

	    if (!$data)
	        return false;

	    $data.each(function () {
	        var submitValidation = $('Validation', this).text();

	        if (submitValidation == "false") {
	            if ($('Error', this).text() == 'Please check the verification code') {
	                document.getElementById('CheckCaptcha').innerHTML = 'invalid captcha.';
	                document.getElementById('CheckCaptcha').style.display = 'inline';
	                loader.hide();
	                reloadCaptcha();
	            }
	            else {
	                //alert($('Error', this).text());
	                window.location = "/en/online-catalog/fail.aspx";
	            }
	        }
	        else {
	            setCookie('reservation_list', '', 60);
	            window.location = "/en/online-catalog/success.aspx";
	        }
	    });
	}
}

function FcnSubscript() {
    var errMsg = "";

    if ((document.getElementById('enewsName').value == null || document.getElementById('enewsName').value == "")) {
        errMsg = "Name is required.";
        document.getElementById('enewsCheckName').style.display = 'inline';
    }
    else {
        document.getElementById('enewsCheckName').style.display = 'none';
    }
    if ((document.getElementById('enewsEmail').value == null || document.getElementById('enewsEmail').value == "")) {
        if (errMsg == "")
            errMsg = "Email is required.";
        else
            errMsg += "\nEmail is required.";

        document.getElementById('enewsCheckEmail').innerHTML = 'Please fill in your email.';
        document.getElementById('enewsCheckEmail').style.display = 'inline';
    }
    else if (!emailCheck(document.getElementById('enewsEmail').value)) {
        if (errMsg == "")
            errMsg = "Please input a email which is valid.";
        else
            errMsg += "\nPlease input a email which is valid.";

        document.getElementById('enewsCheckEmail').innerHTML = 'Please provide a valid email address.';
        document.getElementById('enewsCheckEmail').style.display = 'inline';
    }
    else {
        document.getElementById('enewsCheckEmail').style.display = 'none';
    }

    if (errMsg != "") {
        //alert(errMsg);
        return false;
    }

    subscriptHandle(document.getElementById('enewsEmail').value, document.getElementById('enewsName').value);
}

function subscriptHandle(email, name) {
    $.ajax({
        url: "/en/ajax/ajax.aspx?action=subscription&email=" + email + "&name=" + escape(name),
		cache:false,
		success: function(data){ self.process(data);},
		error:function(){}		
	});

	this.process = function (response) {
	    var $data = $(response).find('Status');

	    if (!$data)
	        return false;

	    $data.each(function () {
	        var submitValidation = $('Validation', this).text();

	        if (submitValidation == "false") {
	            //alert($('Error', this).text());
	            //window.location = "/en/online-catalog/fail.aspx";
	            lightbox.open('subscriptionsfail', 'none', true);
	        }
	        else {
	            document.getElementById('enewsName').value = "";
	            document.getElementById('enewsEmail').value = "";
	            lightbox.close();
	            //window.location = "/en/enews_subscription.aspx";
	            lightbox.open('subscriptionssuccess', 'none', true);
	        }
	    });
	}
}
function loading()
{
	var loading = d.getElementById('loading');
	var loadingLogo = d.getElementById('loadingLogo');
	var preloader = d.getElementById('preloader');
	var preloaderClass = new setPreloader();
	
	this.init = function()
	{
		loadingLogo.appendChild(preloader);
	};
	
	this.show = function()
	{
		lightbox.open('loading', 'none', true);
		preloaderClass.show();
	};
	
	this.hide = function()
	{
		lightbox.close();
	};
	
	this.init();
}
