var lastcomp;
var lastgroup;
var defaultprice;
var totalprice;
var grouptype;
var groupselected;
var stockstatus = 0;
function compSelect(groupID, compID, type, checked)
{
    totalprice = 0;
    if(lastcomp != compID || type == 'm')
    {
        grouptype = type;
        lastcomp = compID;
        lastgroup = groupID;
        stockstatus = 0;

        xmlConnect('group_id='+groupID+'&comp_id='+compID+'&type='+type+'&checked='+(checked ? 1 : ''),'priceupdate');
    }
}

function xmlConnect(url, updatefile)
{
    var http_request = false;

    if (window.XMLHttpRequest) // Mozilla, Safari, ...
    {
        http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType)
        {
            http_request.overrideMimeType('text/xml');
            // See note below about this line
        }
    }
    else if (window.ActiveXObject) // IE
    {
        try
        {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e)
        {
            try
            {
                http_request = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (e) {}
        }
    }

    if (!http_request)
    {
        alert('Giving up :( Cannot create an XMLHTTP instance');
        return false;
    }
    if(updatefile == 'priceupdate')
    {
    	http_request.onreadystatechange = function() { xmlFetch(http_request); };
    }
    else if(updatefile == 'updateorder')
    {
    	http_request.onreadystatechange = function() { orderUpdateStatus(http_request); };
    }
    http_request.open('POST', '/'+updatefile+'.php', true);
    http_request.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
    http_request.setRequestHeader('Content-length', url.toString().length);
    http_request.setRequestHeader('Connection', 'close');
    http_request.send(url);
}

function xmlFetch(http_request)
{
    if(http_request.readyState != 4)
    {
        return;
    }
/*    try
    {*/
        if (http_request.readyState == 4)
        {
            if (http_request.status == 200)
            {
                groupselected = 0;
                //var not_instock = false;
                var xmldata = http_request.responseXML;
//                alert(http_request.responseText);
                if(navigator.appName == 'Netscape')
                {
                    var childs = xmldata.firstChild.childNodes;
                    var list = new Array();
                    var x = 0;
                    for(i=1;i<childs.length;i+=2)
                    {
                        var id = parseInt(childs.item(i).childNodes.item(1).firstChild.nodeValue);
                        var title = childs.item(i).childNodes.item(3).firstChild.nodeValue;
                        var price = parseFloat(childs.item(i).childNodes.item(5).firstChild.nodeValue);
                        var instock = parseFloat(childs.item(i).childNodes.item(7).firstChild.nodeValue);
                        var selected = parseFloat(childs.item(i).childNodes.item(9).firstChild.nodeValue);
                        var base = parseFloat(childs.item(i).childNodes.item(11).firstChild.nodeValue);
                        var stock = parseInt(childs.item(i).childNodes.item(13).firstChild.nodeValue);
                        /*if(not_instock[id])
                    	{
                    		not_instock.splice(id, 1);
                    	}*/
                        var r0 = ';'+id+';';
                        var r1 = new RegExp(r0);
                        not_instock = not_instock.replace(r1,'');
                        if(selected == 1)
                        {
                        	groupselected++;
                            if(!instock)
                            {
                                not_instock = not_instock+r0;
		                        if(stock > stockstatus)
		                        {
		                        	stockstatus = stock;
		                        }
                            }
                            defaultprice = price;
                            groupprices[lastgroup] = price;
                        }
                        list[x] = new Array(id, title, price, selected, base);
                        x++;
                    }
                    switchComp(list);
                }
                else if(navigator.appName == 'Opera')
                {
                    var childs = xmldata.firstChild.nextSibling.nextSibling.childNodes;
                    var list = new Array();
                    var x = 0;
                    for(i=1;i<childs.length;i+=2)
                    {
                        var id = parseInt(childs.item(i).childNodes.item(1).firstChild.nodeValue);
                        var title = childs.item(i).childNodes.item(3).firstChild.nodeValue;
                        var price = parseFloat(childs.item(i).childNodes.item(5).firstChild.nodeValue);
                        var instock = parseFloat(childs.item(i).childNodes.item(7).firstChild.nodeValue);
                        var selected = parseFloat(childs.item(i).childNodes.item(9).firstChild.nodeValue);
                        var base = parseFloat(childs.item(i).childNodes.item(11).firstChild.nodeValue);
                        var stock = parseInt(childs.item(i).childNodes.item(13).firstChild.nodeValue);
                        /*if(not_instock[id])
                    	{
                    		not_instock.splice(id, 1);
                    	}*/
                        var r0 = ';'+id+';';
                        var r1 = new RegExp(r0);
                        not_instock = not_instock.replace(r1,'');
                        if(selected == 1)
                        {
                            groupselected++;
                            if(!instock)
                            {
                                not_instock = not_instock+r0;
		                        if(stock > stockstatus)
		                        {
		                        	stockstatus = stock;
		                        }
                            }
                            defaultprice = price;
                            groupprices[lastgroup] = price;
                        }
                        list[x] = new Array(id, title, price, selected, base);
                        x++;
                    }
                    switchComp(list);
                }
                else // IE
                {
                    var childs = xmldata.firstChild.nextSibling.childNodes;
                    var list = new Array();
                    var x = 0;
                    for(i=0;i<childs.length;i++)
                    {
                        var id = parseInt(childs.item(i).childNodes.item(0).firstChild.nodeValue);
                        var title = childs.item(i).childNodes.item(1).firstChild.nodeValue;
                        var price = parseFloat(childs.item(i).childNodes.item(2).firstChild.nodeValue);
                        var instock = parseFloat(childs.item(i).childNodes.item(3).firstChild.nodeValue);
                        var selected = parseFloat(childs.item(i).childNodes.item(4).firstChild.nodeValue);
                        var base = parseFloat(childs.item(i).childNodes.item(5).firstChild.nodeValue);
                        var stock = parseInt(childs.item(i).childNodes.item(6).firstChild.nodeValue);
                        /*if(not_instock[id])
                    	{
                    		not_instock.splice(id, 1);
                    	}*/
                        var r0 = ';'+id+';';
                        var r1 = new RegExp(r0);
                        not_instock = not_instock.replace(r1,'');
                        if(selected == 1)
                        {
                            groupselected++;
                            if(!instock)
                            {
                                not_instock = not_instock+r0;
		                        if(stock > stockstatus)
		                        {
		                        	stockstatus = stock;
		                        }
                            }
                            defaultprice = price;
                            groupprices[lastgroup] = price;
                        }
                        list[x] = new Array(id, title, price, selected, base);
                        x++;
                    }
                    switchComp(list);
                }
                if(not_instock != '')
                {
                    getDocObj('not_instock').style.display = '';
                    if(stockstatus == 1)
                    {
                    	getDocObj('stock_1').style.display = '';
                    	getDocObj('stock_2').style.display = 'none';
                    }
                    else
                    {
                    	getDocObj('stock_1').style.display = 'none';
                    	getDocObj('stock_2').style.display = '';
                    }
                }
                else
                {
                	getDocObj('stock_1').style.display = 'none';
                	getDocObj('stock_2').style.display = 'none';
                	getDocObj('not_instock').style.display = 'none';
                }
            }
            else
            {
                alert('There was a problem with the request.');
            }
        }
/*    }
    catch( e )
    {
        alert('Caught Exception: ' + e.description);
    }*/
}

function isCompSelected(comp_id)
{
    return;
    if(lastcomp[lastgroup].length)
    {
        for(i=0;i<lastcomp[lastgroup].length;i++)
        {
            if(lastcomp[lastgroup][i] == comp_id)
            {
                return true;
                break;
            }
        }
    }
    return false;
}

function switchComp(list)
{
    //var lastcomp, lastgroup;
    var totalprice = 0.00;
    //alert(list.toString());
    var ll = list.length;
    if(grouptype == 'm')
    {
        for(i=0;i<ll;i++)
        {
            //alert(list[i][3]);
            if(list[i][3] == 1)
            {
                getDocObj('compdefault_'+lastgroup).innerHTML = list[i][1];
                var str = '<a href="http://shop.it.ee/content.php?for=comp&id='+list[i][0]+'" target="_blank">'+list[i][1]+'</a>';
                str += '<span class="grey">';

                if(list[i][4] == 1)
                {
                    str += '(baas)';
                }
                var compprice = number_format(list[i][2].toString(), 0, '.', ' ');

                str += ' <font class="green">(-';
                str += compprice+' EEK)</font>';

                str += '</span>';
                getDocObj('comp_'+list[i][0]).innerHTML = str;
                totalprice += parseFloat(list[i][2]);
            }
            else
            {
                var str = '<a href="http://shop.it.ee/content.php?for=comp&id='+list[i][0]+'" target="_blank">'+list[i][1]+'</a>';
                str += '<span class="grey">';

                if(list[i][4] == 1)
                {
                    str += ' (baas)';
                }
                str += ' <font class="';
                var compprice = number_format(list[i][2].toString(), 0, '.', ' ');
                str += ' blue">(+';
                str += compprice+' EEK)</font>';
                str += '</span>';

                getDocObj('comp_'+list[i][0]).innerHTML = str;
            }
        }
    }
    else
    {
        for(i=0;i<ll;i++)
        {
            if(list[i][3] == 1)
            {
                getDocObj('compdefault_'+lastgroup).innerHTML = list[i][1];
                var str = '<a href="http://shop.it.ee/content.php?for=comp&id='+list[i][0]+'" target="_blank">'+list[i][1]+'</a>';
                str += '<span class="grey">';

                if(list[i][4] == 1)
                {
                    str += ' (baas)';
                }
                str += ' (sisaldub hinnas)';

                str += '</span>';
                getDocObj('comp_'+list[i][0]).innerHTML = str;
                totalprice += number_format(list[i][2], 0, '.', ' ');
            }
            else
            {
                var str = '<a href="http://shop.it.ee/content.php?for=comp&id='+list[i][0]+'" target="_blank">'+list[i][1]+'</a>';
                str += '<span class="grey">';
                if(list[i][4] == 1)
                {
                    str += ' (baas)';
                }
                str += ' <font class="';
                var compprice = list[i][2] - defaultprice;
                if(compprice > 0)
                {
                    str += ' blue">(+';
                }
                else
                {
                    str += ' green">(';
                }
                str += number_format(compprice, 0, '.', ' ')+' EEK)</font>';
                str += '</span>';
                getDocObj('comp_'+list[i][0]).innerHTML = str;
            }
        }
    }

    if(!groupselected)
    {
        getDocObj('compdefault_'+lastgroup).innerHTML = '- valikut ei ole tehtud -';
    }
    else if(groupselected > 1)
    {
        getDocObj('compdefault_'+lastgroup).innerHTML = '- valitud mitu komponenti -';
    }

    updateProductPrice(totalprice);
}

function updateProductPrice()
{
    var f = document.forms['components'];
    var e = f.elements;
    var el = e.length;
    var totalprice = 0.00;
    for(i=0;i<el;i++)
    {
        if(e[i].name.indexOf('comp[') != -1 && e[i].checked)
        {
            totalprice = totalprice + parseFloat(compprices[e[i].value]);
        }
    }
    //alert(totalprice);
    /*var totalprice = 0.00;
    for(i=0;i<groupprices.length;i++)
    {
        if(groupprices[i])
        {
            for(j=0;j<groupprices[i].length;j++)
            {
                totalprice += parseFloat(groupprices[i][j]);
            }
        }
    }*/
    var koef = document.getElementById('koef').value;
    var rentprice = totalprice*koef;

    getDocObj('price').innerHTML = number_format(totalprice.toString(),0,'.',' ')+' kr';
    getDocObj('rentprice').innerHTML = number_format(rentprice.toString(),0,'.',' ')+' kr';
    //getDocObj('productprice').innerHTML = number_format(totalprice.toString(),2,'.',' ')+' kr';
}

// Made by Mathias Bynens <http://mathiasbynens.be/>
/*
function number_format(a, b, c, d)
{
    a = Math.round(a * Math.pow(10, b)) / Math.pow(10, b);

    e = a + '';
    f = e.split('.');
    if (!f[0])
    {
        f[0] = '0';
    }
    if (!f[1])
    {
        f[1] = '';
    }
    if (f[1].length < b)
    {
        g = f[1];
        for (i=f[1].length + 1; i <= b; i++)
        {
            g += '0';
        }
        f[1] = g;
    }
    if(d != '' && f[0].length > 3)
    {
        h = f[0];
        var hl = h.toString().length;
        f[0] = '';
        for(j = 3; j < hl; j+=3)
        {
            var i = h.slice(hl - j, hl - j + 3);
            f[0] = d + i +  f[0] + '';
        }
        j = h.substr(0, (h.length % 3 == 0) ? 3 : (h.length % 3));
        f[0] = j + f[0];
    }
    c = (b <= 0) ? '' : c;
    return f[0] + c + f[1];
}
*/

function number_format(number, decimals, dec_point, thousands_sep) {
	
	decimals = 2;

    var n = !isFinite(+number) ? 0 : +number, 
        prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
        sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,
        dec = (typeof dec_point === 'undefined') ? '.' : dec_point,
        s = '',
        toFixedFix = function (n, prec) {
            var k = Math.pow(10, prec);
            return '' + Math.round(n * k) / k;
        };
    // Fix for IE parseFloat(0.55).toFixed(0) = 0;
    s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.');
    if (s[0].length > 3) {
        s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep);
    }
    if ((s[1] || '').length < prec) {
        s[1] = s[1] || '';
        s[1] += new Array(prec - s[1].length + 1).join('0');
    }
    return s.join(dec);
}


function postPrint(url, formname)
{
    var popw = window.open(url,'printwin','width=750,height=600,top=50,left=50,scrollbars=1,resizable=1');
    //var f = document.forms[formname];
    //f.action = url;
    //f.target = 'printwin';
    //f.method = 'post';
    //f.submit();
    popw.focus();
    //f.target = '';
}

function toggleCompGroup(group_id, img)
{
	var obj = getDocObj('compgroup_'+group_id);
	// peidame grupi
	if(obj.style.display == '' || obj.style.display == 'block')
	{
		obj.style.display = 'none';
		img.src = '/images/arr_down.gif';
	}
	else
	{
		obj.style.display = '';
		img.src = '/images/arr_up.gif';
	}
}

function changeProdImg(imgurl)
{
	getDocObj('prodimg').src = '/thumbnail.php?o=1&width=140&ID=/upload/Image/'+imgurl;
}

function getURLParam(strParamName,url){
  var strReturn = "";
  if(!url) url = window.location.href;
  var strHref = url;
  if ( strHref.indexOf("?") > -1 ){
    var strQueryString = strHref.substr(strHref.indexOf("?"));
    var aQueryString = strQueryString.split("&");
    for ( var iParam = 0; iParam < aQueryString.length; iParam++ ){
      if (aQueryString[iParam].indexOf(strParamName + "=") > -1 ){
        var aParam = aQueryString[iParam].split("=");
        strReturn = aParam[1];
        break;
      }
    }
  }
  return unescape(strReturn);
}