
// =================================================================
// Main method
// ================================================================= 
// testName: ABTest types name, for example 'toocuteFreeShipping'
function ABTest(testName) {
    var randomNumber;
      
    var ObjArray = new Array();
    for(var i = 1; i < arguments.length; i++){
        ObjArray.push(arguments[i]);
    }
    
    if(GetCookie(testName + "_ABInfo") == null) {
        var maxNumber = ObjArray.length - 1;
        randomNumber = Math.round(maxNumber * Math.random()); 
        var expdate = new Date(); 
        expdate.setTime(expdate.getTime() + (365 * 24 * 60 * 60 * 1000));
        SetCookie(testName + "_ABInfo", testName + "_" + randomNumber, expdate);
    }
    else {
        var strTemp = GetCookie(testName + "_ABInfo");
        randomNumber = strTemp.substring(strTemp.indexOf('_') + 1);
    }
    
    //document.write(ObjArray[randomNumber]);
    return ObjArray[randomNumber];
}

// ================================================================= 
// Helper method
// ================================================================= 
function SetCookie (name, value) {
    var argv = SetCookie.arguments;
    var argc = SetCookie.arguments.length;
    var expires = (argc>2)?argv[2]: null;
    var path = (argc>3) ? argv[3] : null;
    var domain = (argc>4) ? argv[4] : null;
    var secure = (argc>5) ? argv[5] : false;
    
    document.cookie = name + "=" + escape(value)+ 
    ((expires == null) ? "" : (";expires=" + expires.toGMTString())) +
    ((path == null) ? "" : (";path=" + path )) +
    ((domain == null) ? "" : (";domain=" + domain))+
    ((secure == true) ? ";secure" : "");
  
}
 
function GetCookie(name) {
    var arg = name + "=";
    var alen = arg.length;
    var clen = document.cookie.length;
    var i = 0;
    while (i < clen) {
        var j = i + alen;
        if(document.cookie.substring(i, j) == arg)
            return getCookieVal(j);
        i = document.cookie.indexOf("", i) + 1;
        if(i == 0) 
            break;
    }
    return null;
}

function getCookieVal(offset) {
    var endstr = document.cookie.indexOf(";", offset);
    if(endstr == -1)
        endstr = document.cookie.length;
    return unescape(document.cookie.substring(offset, endstr));
}
 
function DeleteCookie(name) {
    var exp = new Date();
    exp.setTime(exp.getTime() - 1);
    //set exp expires 
    var cval = GetCookie(name);
    document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();
}
