﻿function Products(xml) {
    this.CurrentProductId = 0;
    this.CurrentabrType = 0;
    this.Referrer = '';
    this.ProductXML = xml;
    this.Count = 0;
    this.FromOrder = false;
    this.Xsl = null;
    this.Field = 'Product';
    this.PageSize = 20;
    this.CurrentPage = 1;
    this.LT = 0;
    this.Load = function(){
        var url =  '/Products/Service.asmx/GetAllProducts';
        if (PI.LT==1) 
            url =  '/Products/Service.asmx/GetMyProducts';
        var CurrentProductId = this.CurrentProductId;
        $.ajax({
	        url: url,
	        cache : false,
	        dataType: 'xml',
	        success: function(data) {
		        PI.ProductXML = data;
		        PI.Count = PI.ProductXML.getElementsByTagName('Product').length;
		        PI.Show();
	        }
        });    
    };
    this.LoadXsl = function(retfunc,xslurl) {
        //var url = '/Products/Templates/ProductsList.xsl' ;
        //if (PI.LT==1) 
            url = '/Products/Templates/Products.xsl' ;
        if (xslurl)
            url = xslurl;
        $.ajax({
            url:  url + reloadParam,
            cache : true,
            dataType: 'xml',
            success: function(data) {
                PI.Xsl = data;
                if (retfunc)
                    retfunc();
            },
            error:function(a){popError(a.responseText);}
        });    
    };    
    this.Show = function (force,currentpage){
        PopUp.ShowWorking($('#inside')[0]);
        if (currentpage)
            PI.CurrentPage = currentpage;
        if (PI.ProductXML == null || force)
        {
            this.Load();
            return;
        }
        if (PI.Xsl==null)
        {
            PI.LoadXsl(function() {PI.Show(force);} );
            return;
        }

        var tmpxml = CreateXMLDocument();
        tmpxml.appendChild(PI.ProductXML.documentElement.cloneNode(false));
        var nodes = PI.ProductXML.selectNodes("//Product");
        for (var i=0; i<nodes.length; i++)
            tmpxml.documentElement.appendChild(nodes[i].cloneNode(true));
        tmpxml = Paging(tmpxml,'Product',18,PI.CurrentPage);
        
        TransformXsltoXml(tmpxml,PI.Xsl,function(re){ 
            $('#Holder').html(re);
            PopUp.RemoveWorking($('#inside')[0]);
            
        });
    };
    this.EditProject = function(id,abrtype){
        if (abrtype=='PM')
            location = '../PhotoBook/?Id=' + id;
        if (abrtype=='GR')
            location = '../GreetingCard/?Id=' + id;
        if (abrtype=='CA')
            location = '../Calendar/?Id=' + id;
    };
    this.Select = function (obj,classn,checked){
        obj.checked=!checked;
        var xmln = SelectSingleNode(PI.ProductXML,'//Product[@Id='+obj.value+']');
        xmln.setAttribute("ckd",(obj.checked)?"1":"0");
        Select(obj,classn,obj.checked);
    };
    this.Delete = function (){
        var node = PI.GetSelectedProducts();
        if (node.length>0 && confirm('آیا برای حذف این محصولات مطمئن هستید ؟')){
            PopUp.ShowWorking($('#inside')[0]);
            $.ajax({url:'/Products/Service.asmx/Delete',type:'Post',data:'ids=' + node,success:function (re) {
                    PopUp.RemoveWorking($('#inside')[0]);
                    PI.Load();
            },cache: false,error:function(e) {
                    PopUp.RemoveWorking($('#inside')[0]);
                    popError(e.responseText);
            }} );
            return;
        }
        popError('توجه، محصولی را انتخاب نکرده اید.');
    };
    this.GetSelectedProducts = function() {
        var nodes = PI.ProductXML.selectNodes('//Product[@ckd=1]');
        var photos = '';
        for (var i=0; i<nodes.length; i++){
            photos += ((photos.length>0) ? ',':'') + nodes[i].getAttribute("Id");
        }
        return photos;
    };
    this.OrderProducts = function () {
        if (PI.GetSelectedProducts()!=''){
            PopUp.ShowWorking($('#inside')[0]);
            if ($('#c_products').length>0)
                $('#c_products').val(PI.GetSelectedProducts());
            $('form')[0].action = '/Order/';
            $('#submitBtn')[0].click();
        }
        else {
            popError('هیچ محصولی برای سفارش انتخاب نکرده اید');
        }

    };
    this.SelectAll = function () {
        var xmln = PI.ProductXML.selectNodes('//Product');
        for(var i=0; i<xmln.length; i++)
            xmln[i].setAttribute("ckd","1");
        PI.Show();
    };
}

