﻿/*--------------- Work With Document Cookie ---------------*/
cookieData = function() {
    this.getCookie = function(cookie_name) {
        var doc_all_cookies = document.cookie.split(';');
	    var doc_temp_cookie = '';
	    var doc_cookie_name = '';
	    var doc_cookie_value = '';
	    

	    for (var i = 0; i < doc_all_cookies.length; i++) {
		    doc_temp_cookie = doc_all_cookies[i].split('=');
    		
		    doc_cookie_name = doc_temp_cookie[0].replace(/^\s+|\s+$/g, ''); // trim
		    
		    if (doc_cookie_name == cookie_name) {
			    
			    if (doc_temp_cookie.length > 1)
			    {
				    doc_cookie_value = unescape(doc_temp_cookie[1].replace(/^\s+|\s+$/g, ''));
			    }
			    return doc_cookie_value;
			    break;
		    }
		    doc_temp_cookie = null;
		    doc_cookie_name = '';
	    }
	    return null;
    }
    this.setCookie = function(name, value, expires, path, domain, secure) {
	    var today = new Date();
	    today.setTime(today.getTime());
	    if (expires) {
		    expires = expires * 1000 * 60 * 60 * 24;
	    }
	    //alert( 'today ' + today.toGMTString() );
	    var expires_date = new Date(today.getTime() + (expires));
	    //alert('expires ' + expires_date.toGMTString());

	    document.cookie = name + "=" +escape(value) +
		    ((expires) ? ";expires=" + expires_date.toGMTString() : "" ) + //expires.toGMTString()
		    ((path) ? ";path=" + path : "" ) + 
		    ((domain) ? ";domain=" + domain : "" ) +
		    ((secure) ? ";secure" : "" );
    }
    this.delCookie = function(name, path, domain) {
        if (this.getCookie(name)) {
            document.cookie = name + "=" +
			    ((path) ? ";path=" + path : "") +
			    ((domain) ? ";domain=" + domain : "") +
			    ";expires=Thu, 01-Jan-1970 00:00:01 GMT";
			return "deleted";
	    }
	    else {
	        return null;
	    }
    }
}
var cd = new cookieData();
/*--------------- End Work With Document Cookie ---------------*/
function PopupWindow1(url, name, width, height, top, left) {
    left = parseInt((getWidthHeight().width - width) / 2);
    var properties = 'location=yes,width='+width+',height='+height+',top='+top+',left='+left+
    'toolbar=no,directories=no,status=no,menubar=no,scrollbars=yes,copyhistory=yes,resizable=yes';
    popupWin = window.open(url, name, properties); 
    popupWin.focus();
}
function getWidthHeight() {
    var w = 0;
    var h = 0;
    if (typeof(window.innerWidth) == 'number') {
    //Non-IE
        w = window.innerWidth;
        h = window.innerHeight;
    }
    else 
    if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
    //IE 6+ in 'standards compliant mode'
        w = document.documentElement.clientWidth;
        h = document.documentElement.clientHeight;
    }
    else 
    if (document.body && (document.body.clientWidth || document.body.clientHeight )) {
        //IE 4 compatible
        w = document.body.clientWidth;
        h = document.body.clientHeight;
    }
    return {width:w,height:h};
}
/*------ Add Basket ---------*/
var basket_form = function(container) {
    var cont = container;
    var id = '';
    this.Create = function() {
        var div = document.createElement("div");
        div.className = "UsersBasket";
        
        var sub_div = document.createElement("div");
        sub_div.className = "UsersBasketCont";
        
        var p = document.createElement("p");
        p.id = "UsersBasketCont_Name";
        p.innerHTML = "";
        sub_div.appendChild(p);
        
        var d = document.createElement("div");
        var span = document.createElement("span");
        span.innerHTML = "К-во:  ";
        var sel = "<input type=\"text\" id=\"UsersBasketCont_Count\" />";
        d.appendChild(span);
        d.innerHTML += sel;
        
        div.appendChild(sub_div);
        
        var ordered = document.createElement("div");
        ordered.id = "ordered";
        
        div.appendChild(ordered);
        
        div.appendChild(d);
        
        var com = document.createElement("div");
        com.style.textAlign = "center";
        var com_str = "<input type=\"button\" class=\"DefaultButton\" value=\"Видалити\" onclick=\"bf.Delete()\" /> ";
        com_str += "<input type=\"button\" class=\"DefaultButton\" value=\"Зберегти\" onclick=\"bf.Save()\" /> ";
        com.innerHTML += com_str;
        div.appendChild(com);
        if (document.getElementById("AddUsersBasketContainer") != null) {
            document.getElementById("AddUsersBasketContainer").appendChild(div);
        }
    }
    this.Show = function(id_) {
        var bask = document.getElementById("AddUsersBasketContainer");
        bask.style.display = "block";
        bask.style.visibility = "visible";
        var coords = Find_ElemCoords(document.getElementById("basket-" + id_));
        bask.style.left = parseInt(parseInt(coords[0]) - 50) + "px";
        bask.style.top = parseInt(parseInt(coords[1]) - 50) + "px";
    }
    this.Hide = function() {
        document.getElementById("AddUsersBasketContainer").style.display = "none";
        document.getElementById("AddUsersBasketContainer").style.visibility = "hidden";
    }
    this.AddBasket = function(id_, name) {
        id = id_;
        var ordered = CheckDublicate(id_);
        
        this.Show(id_);
        
        if (ordered != "-1" & ordered != '') {
            document.getElementById("UsersBasketCont_Count").value = ordered;
            document.getElementById("ordered").innerHTML = "Цей товар є в кошику! <br /><a href=\"http://budmix.biz/basket/\">Переглянути кошик</a>";
        }
        else {
           document.getElementById("UsersBasketCont_Count").value = "1";
           document.getElementById("ordered").innerHTML = "";
        }
        document.getElementById("UsersBasketCont_Name").innerHTML = " <a href=\"#\" title=\"Закрити\" onclick=\"bf.Hide(); return false;\"><img align=\"right\" src=\"http://irbp.com.ua/images/delete.gif\" style=\"border-width: 0;\" /></a>" + name;
    }
    this.Save = function() {
        var count = document.getElementById("UsersBasketCont_Count").value;
        var cookies = cd.getCookie("OrderProductsID");
        if (!isNumber(count)) {
            alert("error");
            return;
        }
        if (cookies != null) {
            if (cookies.indexOf(id + '-') != -1) {
                var c_o = CheckDublicate(id);
                cookies = cookies.replace(id + '-' + c_o, "");
                cookies = Trim(cookies, '|');
                cookies = cookies.replace("||", "|");
            }
            cookies += '|' + id + '-' + count;
        }
        else {
            cookies = id + '-' + count;
        }
        cookies = Trim(cookies, '|');
        cd.setCookie("OrderProductsID", cookies, '1000', '/', '', '');
        this.Hide();
    }
    this.Delete = function() {
        if (CheckDublicate(id) != "-1") {
            var cookies = cd.getCookie("OrderProductsID");
            if (cookies != null) {
                if (cookies.indexOf(id + '-') != -1) {
                    var c_o = CheckDublicate(id);
                    cookies = cookies.replace(id + '-' + c_o, "");
                    cookies = Trim(cookies, '|');
                    cookies = cookies.replace("||", "|");
                    cd.delCookie("OrderProductsID", '/', '');
                    if (cookies != '' & cookies != '|') {
                        cd.setCookie("OrderProductsID", cookies, '1000', '/', '', '');
                    }
                }
            }
        }
        
        this.Hide();
    }
    var CheckDublicate = function(id) {
        var c = cd.getCookie("OrderProductsID");
        if (c != null) {
            var c_ar = c.split('|');
            for (var i = 0; i < c_ar.length; i++) {
                if (c_ar[i].indexOf('-') != -1) {
                    if (c_ar[i].indexOf(id + '-') != -1) {
                        return c_ar[i].split('-')[1];
                    }
                }
            }
        }
        else {
            return "-1";
        }
        return "-1";
    }
    this.DeleteBasket = function(id_) {
        var c_o = CheckDublicate(id_);
        if (c_o != "-1") {
            var cookies = cd.getCookie("OrderProductsID");
            cookies = cookies.replace(id_ + '-' + c_o, "");
            cookies = Trim(cookies, '|');
            cookies = cookies.replace("||", "|");
            cd.delCookie("OrderProductsID", '/', '');
            if (cookies != '' & cookies != '|') {
                cd.setCookie("OrderProductsID", cookies, '1000', '/', '', '');
            }
            location.reload();
        }
    }
    this.UpdateProduct = function(id_, count_) {
        var count = count_;
        var cookies = cd.getCookie("OrderProductsID");
        if (cookies != null) {
            if (cookies.indexOf(id_ + '-') != -1) {
                var c_o = CheckDublicate(id_);
                cookies = cookies.replace(id_ + '-' + c_o, "");
                cookies = Trim(cookies, '|');
                cookies = cookies.replace("||", "|");
                cookies += '|' + id_ + '-' + count;
            }
            
        }
        else {
            cookies = id_ + '-' + count;
        }
        cd.setCookie("OrderProductsID", cookies, '1000', '/', '', '');
        //location.reload();
    }
    this.UpdateBasket = function() {
        var id_ = '';
        var count = '';
        var error = false;
        var table = document.getElementById("BasketTable");
        var trs = table.getElementsByTagName("tr");
        var count_ = parseInt(trs.length) - 2;
        for (var i = 1; i <= parseInt(count_); i++){
            id_ = document.getElementById("prodID_" + i).innerHTML;
            count = document.getElementById("prodCount_" + i).value;
            if (isNumber(count)) {
                this.UpdateProduct(id_, count);
            }
            else {
                //error
                error = true;
            }
        }
        if (!error) {
            location.reload();
        }
        else {
            //errror
        }
    }
    this.DeleteAllBasket = function() {
       cd.delCookie("OrderProductsID", '/', '') ;
       location.reload();
    }
}
var bf = new basket_form("AddUsersBasketContainer");

/**/
function isNumber(value) {
    if (value.match(/^[0-9]+$/g)) {
        return true;
    }
    else {
        return false;
    }
}
function isNumber_Validate(input) {
    if(input.value.length > 0 && !input.value.match(/^[0-9]+$/g)) {
       input.value = input.value.replace(/[^0-9]*/g,'');
       window.alert("Вводите только цифры!");
    }
}
function Find_ElemCoords(obj) {
	var currLeft = 0;
	var currTop = 0;
	if (obj.offsetParent) {
		currLeft = obj.offsetLeft;
		currTop = obj.offsetTop;
		while (obj = obj.offsetParent) {
			currLeft += obj.offsetLeft;
			currTop += obj.offsetTop;
		}
	}
	return [currLeft, currTop];
}
function Trim(str, param)
{
    while (str.charAt(0) == param) {
        str = str.substring(1);
    }
    while (str.charAt(str.length - 1) == param) {
        str = str.substring(0, str.length - 1);
    }
    return str;
}

