﻿//判断空白字符串
function isNoBlank(str) {
    var notBlank = true;
    if (str == undefined || str == null) {
        notBlank = false;
    }
    else {
        var reg = new RegExp(/\S+/);
        notBlank = reg.test(str);
    }

    return notBlank;
}

function isEmail(str) {
    if (isNoBlank(str)) {
        var reg = new RegExp(/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/);
        return reg.test(str);
    }
    return false;
}

function isPhone(str) {
    if (isNoBlank(str)) {
        var reg = new RegExp(/^\d(-|\d)*\d$/);
        return reg.test(str);
    }
    return false;
}

function isIntValue(str) {
    if (isNoBlank(str)) {
        var value = parseInt(str);
        return !isNaN(value);
    }
    else return false;
}

function isFloatValue(str) {
    if (isNoBlank(str)) {
        var value = parseFloat(str);
        return !isNaN(value);
    }
    else return false;
}

function CompareIntValue(str, minvalue, maxvalue) {
    if (isIntValue(str)) {
        var bOk = true;
        var value = parseInt(str);
        var min = parseInt(minvalue);
        var max = parseInt(maxvalue);
        if (!isNaN(min) && value < min) {
            bOk = false;
        }
        if (!isNaN(max) && value > max) {
            bOk = false;
        }
        return bOk;
    }
    return false;
}

function CompareFloatValue(str, minvalue, maxvalue) {
    if (isFloatValue(str)) {
        var bOk = true;
        var value = parseFloat(str);
        var min = parseFloat(minvalue);
        var max = parseFloat(maxvalue);
        if (!isNaN(min) && value < min) {
            bOk = false;
        }
        if (!isNaN(max) && value > max) {
            bOk = false;
        }
        return bOk;
    }
    return false;
}

function input_Over(id) {
    var value1 = document.getElementById(id).value.toLocaleLowerCase();
    var value2 = document.getElementById(id).getAttribute("value2").toLocaleLowerCase();
    if (value1 == value2) {
        document.getElementById(id).value = '';
    }
}

function input_Out(id) {
    var value1 = document.getElementById(id).value.toLocaleLowerCase();
    var value2 = document.getElementById(id).getAttribute("value2");
    if (isNoBlank(value1) == false) {
        document.getElementById(id).value = value2;
    }
}

function formatFloat(src, pos) { return Math.round(src * Math.pow(10, pos)) / Math.pow(10, pos); }


function createXMLHttpRequest() {
    if (window.ActiveXObject) {
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    else if (window.XMLHttpRequest) {
        xmlHttp = new XMLHttpRequest();
    }
}

function LogIn(nameId, pwdId, completedHandle) {
    var userName = document.getElementById(nameId).value;
    var pwd = document.getElementById(pwdId).value;
    if (isNoBlank(userName) == false) {
        alert("Please enter your account name!");
        return;
    }

    if (isNoBlank(pwd) == false) {
        alert("Please enter your account password!");
        return;
    }

    if (testText(userName) == false) {
        alert("Please do not enter special characters such as \"<\" or \"&#\"");
        return;
    }
    if (testText(pwd) == false) {
        alert("Please do not enter special characters such as \"<\" or \"&#\"");
        return;
    }

    var query = '&userName=' + encodeURIComponent(userName) + '&pwd=' + encodeURIComponent(pwd) + '&date=' + new Date();
    createXMLHttpRequest();
    xmlHttp.onreadystatechange = completedHandle;
    xmlHttp.open("get", '/Ajax.aspx?methodName=Login' + query, true);
    xmlHttp.send();
}

function convertText(txt) {
    var s = txt;
    if (isNoBlank(txt)) {
        var reg = /[&<>\"]/;
        if (reg.test(txt)) {
            s = txt.replace(/&/gi, '&amp;');
            s = s.replace(/</gi, '&lt;');
            s = s.replace(/>/gi, '&gt;');
            s = s.replace(/\"/gi, '&quot;');
        }
    }
    return s;
}

function queryFilter(txt) {
    var s = txt;
    if (isNoBlank(txt)) {
        var reg = /[&<>\"]/;
        if (reg.test(txt)) {
            s = txt.replace(/&/gi, '');
            s = s.replace(/</gi, '');
            s = s.replace(/>/gi, '');
            s = s.replace(/\"/gi, '');
        }
    }
    return s;
}

function testText(txt) {
    var bOk = true;
    var s = txt;
    if (isNoBlank(txt)) {
        var reg = new RegExp("(<.+?|&#)");
        bOk = !reg.test(txt);
    }
    return bOk;
}



function writeCart(obj) {
    var right_cart = document.getElementById("right_cart");
    for (var i = 0; i < obj.Products.length; i++) {
        var product = obj.Products[i];
        var newrow = right_cart.insertRow(i + 1);
        newrow.setAttribute("align", "center");
        newrow.setAttribute("name", "product");
        var td = document.createElement('td');
        var imgPro = document.createElement('img');
        imgPro.setAttribute("width", "50");
        imgPro.setAttribute("height", "48");
        imgPro.setAttribute('src', product.ImageUrl);
        imgPro.setAttribute("gid", product.Guid);
        imgPro.style.cursor = "pointer";
        if (imgPro.attachEvent) {
            imgPro.style.pixelWidth = 50;
            imgPro.style.pixelHeight = 48;
            imgPro.attachEvent("onclick", function() {
                var gid = event.srcElement.getAttribute("gid");
                if (isNoBlank(gid)) {
                    window.open('/Products/' + gid + '.html', '_blank');
                }
                event.cancelBubble = true;
            });
        }
        else if (imgPro.addEventListener) {
            imgPro.addEventListener("click", function() {
                var gid = this.getAttribute("gid");
                if (isNoBlank(gid)) {
                    window.open('/Products/' + gid + '.html', '_blank');
                }
            }, false);
        }
        td.appendChild(imgPro);
        //        var text = document.createTextNode(product.ProductName);
        //        td.appendChild(text);
        newrow.appendChild(td);
        td = document.createElement('td');
        text = document.createTextNode(product.Amount);
        td.appendChild(text);
        newrow.appendChild(td);
        var price = 0.00;
        if (isFloatValue(product.Prices)) {
            price = parseFloat(product.Prices);
        }
        td = document.createElement('td');
        text = document.createTextNode('$' + price.toFixed(2));
        td.appendChild(text);
        newrow.appendChild(td);
        td = document.createElement('td');
        var img = document.createElement('img');
        img.setAttribute('src', '/images/del.jpg');
        //img.onclick = deleteCart;
        img.setAttribute("gid", product.Guid);
        if (img.attachEvent) {
            img.attachEvent("onclick", function() {

                var gid = event.srcElement.getAttribute("gid");
                deleteCart(gid, updateCartSucess);
                event.cancelBubble = true;
            });
        }
        else if (img.addEventListener) {
            img.addEventListener("click", function() {
                var gid = this.getAttribute("gid");
                deleteCart(gid, updateCartSucess);

            }, false);
        }
        //img.setAttribute('onclick', 'deleteCart(\'' + product.Guid + '\',updateCartSucess)');
        img.setAttribute('style', 'cursor:pointer');
        td.appendChild(img);
        newrow.appendChild(td);
    }
    var p = 0.00;
    if (isFloatValue(obj.TotalPirce)) {
        p = parseFloat(obj.TotalPirce);
    }
    document.getElementById('cartPrice').firstChild.nodeValue = p.toFixed(2);
}

function addToCart(guid) {
    if (isNoBlank(guid)) {
        var query = '&guid=' + guid + '&date=' + new Date();
        createXMLHttpRequest();
        xmlHttp.onreadystatechange = updateCartSucess;
        xmlHttp.open('get', '/Ajax.aspx?methodName=AddToCart' + query, true);
        xmlHttp.send();
    }
    else {
        alert('Operation failed! No found data.');
    }
}

function buyProduct(guid) {
    if (isNoBlank(guid)) {
        var query = '&guid=' + guid + '&date=' + new Date();
        createXMLHttpRequest();
        xmlHttp.onreadystatechange = function() { buyProductSucess('0'); };
        xmlHttp.open('get', '/Ajax.aspx?methodName=BuyProduct' + query, true);
        xmlHttp.send();
    }
    else {
        alert('Operation failed! No found data.');
    }
}
function buyProduct(guid, digit) {
    if (isNoBlank(guid)) {
        var query = '&guid=' + guid + '&date=' + new Date();
        createXMLHttpRequest();
        xmlHttp.onreadystatechange = function() { buyProductSucess(digit); };
        xmlHttp.open('get', '/Ajax.aspx?methodName=BuyProduct' + query, true);
        xmlHttp.send();
    }
    else {
        alert('Operation failed! No found data.');
    }
}

function buyProductSucess(d) {
    if (xmlHttp.readyState == 4) {
        if (xmlHttp.status == 200) {
            if (isNoBlank(xmlHttp.responseText) == false) {
                window.location.href = "/ShoppingCart.aspx?item=" + d;
            }
            else {
                alert(xmlHttp.responseText);
            }
        }
        else if (xmlHttp.status == 500) {
            alert('Unkown Error!');
        }
    }
}

function updateCartSucess() {
    if (xmlHttp.readyState == 4) {
        if (xmlHttp.status == 200) {
            var right_cart = document.getElementById("right_cart");
            if (right_cart.rows != undefined && right_cart.rows != null && right_cart.rows.length > 0) {
                for (var i = 1; i < right_cart.rows.length; i++) {
                    right_cart.deleteRow(i);
                    i--;
                }

                document.getElementById('cartPrice').firstChild.nodeValue = '0.00';
            }
            var bOK = false;
            if (isNoBlank(xmlHttp.responseText)) {
                var obj = eval('(' + xmlHttp.responseText + ')');
                if (obj != undefined && obj != null && obj.Products != undefined && obj.Products != null && obj.Products.length > 0) {
                    bOK = true;
                }
            }
            if (bOK) {
                var obj = eval('(' + xmlHttp.responseText + ')');
                writeCart(obj);
            }
            else {
                var newrow = right_cart.insertRow(1);
                newrow.setAttribute("align", "center");
                var td = document.createElement('td');
                td.setAttribute('colspan', '4');
                var text = document.createTextNode('The shopping cart was empty,please add the product!');
                td.appendChild(text);
                newrow.appendChild(td);

                var newr = right_cart.insertRow(1);
            }


        }
        else if (xmlHttp.status == 500) {
            alert('Unkown Error!');
        }
    }
}

function gotoDetail(guid) {
    if (isNoBlank(guid)) {
        window.location.href = '/Products/' + guid + '.html';
    }
}

//function killErrors() {
//    return true;
//}
//window.onerror = killErrors;         


