function getMyOrders(){
	var winKey='gridOrder';
	var winObj = new Ext.Window({
	    layout:'fit',
	    width:500,
	    height:400,
	    id:winKey,
	    listeners:{
	    	destroy:function(winObj){arrWindows[winObj.id]=null;}
	    },
	    plain: true});
	
	arrWindows[winKey]=winObj; 
	winObj.show();
	//winObj.getPositionEl().anchorTo(document, 'c-c', false, false, true);
	winObj.el.mask('Siparişleriniz listeleniyor, lütfen bekleyiniz', 'x-mask-loading');

    var url="order.php?progress=getMyOrders";
    Ext.Ajax.request({url: url,
					   success: getMyOrdersComplete
					});
}

function getMyOrdersComplete(conn,response){
	var arrResponseText=conn.responseText.split("|");
	eval(arrResponseText[1]);
    
	var store=new Ext.data.SimpleStore({orderId:'storeOrders',
										fields:[{name:'mapID'},
													{name:'categoryID'},
													{name:'categoryName'},
													{name:'orderTime'},
													{name:'integrationStatu'}]}
										);    
	store.loadData(arrResponse['gridData']);
    var grid = new Ext.grid.GridPanel({
        store: store,
        autoExpandColumn:'orderTime',
        trackMouseOver:true,
        listeners:{rowdblclick:gridOrder_rowdblclick},
        columns:[
        			{id:'mapID',dataIndex:'mapID',header:'Sipariş No',sortable:true},
        			{id:'categoryName',dataIndex:'categoryName',header:'Kategori',sortable:true},
        			{id:'orderTime',dataIndex:'orderTime',header:'Sipariş Tarihi',sortable:true},
        			{id:'integrationStatu',dataIndex:'integrationStatu',header:'Durum',sortable:true}
        		],
        stripeRows: true,
        height:350,
        width:500
    });
    
	var winObj=arrWindows["gridOrder"]; 
	winObj.setTitle("Sipariş Listesi");
	winObj.add(grid);

	winObj.doLayout();
	winObj.el.unmask();
}

function getOrderLineForm(categoryID){
	var url="member.php?progress=getForm&categoryID="+categoryID+"&orderLineForm=yes";
    Ext.Ajax.request({url: url,
					   success:getFormComplete.createDelegate(null, [false], true)
					});
}

function gridOrder_rowdblclick(grid,rowIndex,e ){
	
    Ext.MessageBox.show({
        msg: 'Lütfen bekleyiniz, istediğiniz siparişin bilgilerine ulaşıyorum...',
        progressText: 'Bağlanıyor...',
        width:400,
        wait:true,
        icon:'ext-mb-download', //custom class in msg-box.html
        animEl: 'mb7'
    });
	
	var store=grid.getStore();
	var mapID=store.data.items[rowIndex].data["mapID"];
	var categoryID=store.data.items[rowIndex].data["categoryID"];
	
	var url="member.php?progress=getForm&mapID="+mapID+"&categoryID="+categoryID+"&myOrder=yes";
    Ext.Ajax.request({url: url,
					   success:getFormComplete
					});
	
}

function gridOrder_rowdblclick_complete(conn,response,grid){
	var arrResponseText=conn.responseText.split("|");
	eval(arrResponseText[1]);
	eval(arrResponse['js']);
	eval(arrResponse['orderFormJS']);
	eval(arrResponse['orderFormLineJS']);
	eval(arrResponse['orderLineData']);

	grid.el.unmask();
	
	if (!arrResponse['success']){
		Ext.MessageBox.alert("Hata...",arrResponse["message"]); 
		return;
	}
	
	var orderFormKey='form_'+orderFormID;
	var orderLineFormKey='form_'+orderLineFormID;
	var winKey='win_'+orderFormID;
	
	var orderFormObj=formDesign[orderFormKey];
	var formHTML=orderFormObj.generateHTML(false);
	
	var colSpan=(orderFormObj.colCount*2);
	var html="<div name='divForm_"+orderFormObj.formID+"' id='divForm_"+orderFormObj.formID+"'>"+formHTML+"</div>";
	$("hiddenDummy").style.cssText=orderFormObj.formStyle.cssText;
	
	winObj = new Ext.Window({
	    layout:'fit',
	    id:winKey,
	    width:700,
	    autoHeight:true,
	    id:winKey,
	    listeners:{
	    	destroy:function(winObj){arrWindows[winObj.id]=null;}
	    },
	    closeAction:'destroy',
	    plain: true});
	arrWindows[winKey]=winObj;

    var fieldSet= new Ext.form.FieldSet();
	fieldSet.html=html;
	fieldSet.autoHeight=true;

	fieldSet.addButton(new Ext.Button({text:'Kaydet',id:'buttonSave',hidden:true,handler:function(){saveFormData(orderFormKey);}}));
	fieldSet.addButton(new Ext.Button({text:'Vazgeç',id:'buttonCancel',hidden:true,handler: function(){cancelFormEdit(orderFormKey);}}));
	fieldSet.addButton(new Ext.Button({text:'Güncelle',handler: function(){setFormToEditMode(orderFormKey);}}));
	fieldSet.addButton(new Ext.Button({text:'Kapat',id:'buttonClose',hidden:false,handler: function(){winObj.destroy();}}));

	winObj.add(fieldSet);
	
    var orderLineFormObj=formDesign[orderLineFormKey];
    var orderLineStore = new Ext.data.SimpleStore({
        fields: eval(orderLineFormObj.getJsonStrForStore())});
	orderLineStore.loadData(arrResponse['orderLineData']);
	
    var orderLineGrid = new Ext.grid.GridPanel({
        store: orderLineStore,
        autoSize:true,
        autoExpandColumn:"f_"+orderLineFormObj.elements[1].elementID,
        trackMouseOver:true,
        columns: eval(orderLineFormObj.getJsonStrForGrid(false)),
        stripeRows: true,
        height:350
        });
    
	winObj.add(orderLineGrid);
	winObj.show();
}

function getNewOrder(categoryID){
	var url="order.php?progress=getNewOrder&categoryID="+categoryID;
	new Ajax.Request(url, {method: 'get',onComplete:getNewOrderComplete});			
}

function getNewOrderComplete(request){
	var arrRequest=request.responseText.split("|");
	eval(arrRequest[1]);
	
	var html="";	
	var arrHTML=arrRequest[0].split("^");
	
	if (arrHTML.length>0)
		html=arrHTML[0];
	
	html+=formDesign[formKey].generateHTML(true);
	if (arrHTML.length>0)
		html+=arrHTML[1];
	else
		html+=arrRequest[0];
	
	$("divFormArea").innerHTML=html;
	formDesign[formKey].initialize();
}

function getProductList(formID,categoryID,pageNumber,fromMainForm,reportID){
	if ($("divProductList")){
		var html="<table width='100%' style='height:200px;' align='center'>";
		html+="<tr><td align='center'><img src='/images/progress_bar8.gif'></td></tr>";
		html+="<tr><td align='center'><span style='font-family:tahoma;font-size:14px;'><b>L ü t f e n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;B e k l e y i n i z</b></td></tr>";
		html+="<tr><td align='center'><img src='/images/progress_bar8.gif'></td></tr>";
		html+="</table>";
	
		$("divProductList").innerHTML=html;
	}
	
	if (readCookie("prodCountPerPage")!=null)
		prodCountPerPage=readCookie("prodCountPerPage");
	else prodCountPerPage=50;
	
	if (fromMainForm==null) fromMainForm="no";
	if (reportID==null) reportID=0;
	
	if ($("prodCountPerPage")) $("prodCountPerPage").value=prodCountPerPage;
	
	var orderBy="";
	if ($("orderBy")) orderBy=$("orderBy").value; 
	
	var url="order.php?progress=getProductList&formID="+formID+"&categoryID="+categoryID+
				"&pageNumber="+pageNumber+"&prodCountPerPage="+prodCountPerPage+
				"&orderBy="+orderBy+"&fromMainForm="+fromMainForm+"&reportID="+reportID;
	//Sipariş ana formundan çağrıldığında Gform ile ana form bilgileri post ediliyor.
	if ($('form_'+formID))
		new Ajax.Request(url, {method: 'post',parameters: $('form_'+formID).serialize(true),onComplete:getProductListComplete});
	else
		new Ajax.Request(url, {method: 'post',onComplete:getProductListComplete});			
}

function getProductListComplete(request){
	
	var arrRequest=request.responseText.split("|");
	
	var success=(arrRequest[0]=="true");
	var jsStr=arrRequest[2];
	
	if (!success){
		alert(arrRequest[1]);
	}
	else{
		$("divFormArea").innerHTML=arrRequest[1];
		eval(jsStr);
	}
	
	if ($("prodCountPerPage")){
		if (readCookie("prodCountPerPage")!=null)
			$("prodCountPerPage").value=readCookie("prodCountPerPage");
		else $("prodCountPerPage").value=50;
	}
	
	if (arrWindows["orderQuery"]!=null)
		arrWindows["orderQuery"].el.unmask();	
}
function addToOrderList(index,categoryID){
	if (!validate(index)) return false;
	
	$("imgBasket_"+index.toString()).src="/images/ajaxloader1.gif";
		
	var url="order.php?progress=addToOrderList&formID&index="+index+"&categoryID="+categoryID;
	//new Ajax.Request(url, {method: 'post',parameters: $('form_'+index).serialize(true),onComplete:addToOrderListComplete});
	Ext.Ajax.request({url: url,
			form:'form_'+index,
		   	success: addToOrderListComplete.createDelegate(null, [index], true)
		});
				
}

function addToOrderListComplete(request,response,index){
	$("imgBasket_"+index.toString()).src="/UserFiles/tasarim/sepette.gif";
}

function addAllToOrderList(categoryID){
	
	var rowCount=formRowList.rows.size();
	var validated=false;
	var elementID="";
	var reqFieldIndexes="";

	//Zorunlu alanları tespit et.
	for(var ii=0;ii<formFieldList.fieldList.size();ii++){
		var field=formFieldList.fieldList[ii];
		if (field.required){
			reqFieldIndexes+="#"+(field.index-1).toString()+"#";
		}
	}

	//Zorunlu alanı dolu olan alanların diğer alanları validate et.
	//Eğer validate başarılı olursa sepete at.
	for(kk=0;kk<rowCount;kk++){
		for(var ii=0;ii<formFieldList.fieldList.size();ii++){
			var field=formFieldList.fieldList[ii];
			if (reqFieldIndexes.indexOf("#"+(field.index-1).toString()+"#")>-1){
				elementID="field#"+kk+"#"+field.elementID+"_"+(field.index-1).toString();
				if ($(elementID).value.trim()!=""){
					if (validate(kk)){
						addToOrderList(kk,categoryID);
					}
				}
			}
		}
	}
		
}

function validate(index){
	for(var ii=0;ii<formRowList.rows[index].columnList.size();ii++){
		validObj=formRowList.rows[index].columnList[ii].validObj;
		
		if (validObj!=null){
			if (!validObj.validate()) return false;
		}
	}
	return true;
}

function showMyOrderList(){
	GB_showCenter("Sipariş Listem", siteURLRoot+"/order.php?progress=showMyOrderList",600,900);
}

function queryForm(reportID,formID,categoryID){
	var html="<table width='100%' style='height:200px;' align='center'>";
	html+="<tr><td align='center'><img src='/images/progress_bar8.gif'></td></tr>";
	html+="<tr><td align='center'><span style='font-family:tahoma;font-size:14px;'><b>L ü t f e n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;B e k l e y i n i z</b></td></tr>";
	html+="<tr><td align='center'><img src='/images/progress_bar8.gif'></td></tr>";
	html+="</table>";
	$("divProductList").innerHTML=html;
	arrWindows["orderQuery"].el.mask('Lütfen bekleyiniz', 'x-mask-loading');
	var url="order.php?progress=getProductList&formID="+formID+"&categoryID="+categoryID+"&reportID="+reportID+"&pageNumber=1&$prodCountPerPage=50";
	new Ajax.Request(url, {method: 'post',parameters: $('Gform').serialize(true),onComplete:getProductListComplete});			
}

function queryFormDesign(categoryID,formID){
	
	var winKey='orderQuery';
	var winObj = new Ext.Window({
	    layout:'fit',
	    title:'Stok Sorgula',
	    width:300,
	    resizable:true,
	    id:winKey,
	    listeners:{
	    	destroy:function(winObj){arrWindows[winObj.id]=null;}
	    },
	    plain: true});
	   
	winObj.show();
	winObj.el.mask('Lütfen bekleyiniz', 'x-mask-loading');
	arrWindows[winKey]=winObj;
	
	url="order.php?progress=getReportDesign&categoryID="+categoryID+"&formID="+formID;
    Ext.Ajax.request({url: url,
			   success: queryFormDesignComplete.createDelegate(null, [winObj,categoryID,formID], true)
			});

}

function queryFormDesignComplete(request,response,winObj,categoryID,formID){
    var arrResponseText=request.responseText.split("|");
    eval(arrResponseText[1]); //ReportId geliyor.
    
    var fieldSet= new Ext.form.FieldSet();
	fieldSet.html=arrResponseText[0];
	fieldSet.autoHeight=true;
	fieldSet.addButton(new Ext.Button({text:'Sorgula',id:'buttonQuery',hidden:false,handler:function(){queryForm(reportID,formID,categoryID);}}));
	fieldSet.addButton(new Ext.Button({text:'Tüm Stok Listesi',id:'buttonQuery',hidden:false,handler:function(){getProductList(formID,categoryID,1);}}));
	fieldSet.addButton(new Ext.Button({text:'Kapat',hidden:false,id:'buttonClose',handler: function(){winObj.destroy();}}));
	
	winObj.add(fieldSet);
	winObj.el.unmask();
	winObj.doLayout();
}

orderLineCount=0;
function addToOrderLine(formObject){
	if (!validateForm(formObject)) return false;
	
	for (var ii=0;ii<formObject.elements.size();ii++){
		var element=formObject.elements[ii];
		if (element.dataSource==CONST_DS_FORM_DATA){
			if ($("field_"+element.uniqeID()).value==0){
				alert("Lütfen "+element.name+" için bir giriş yapınız");
				return;
			}
		}
	}
	if (orderLineCount>0){
		//Eklenen ürün daha önce eklenmişmi kontrolü
		for (var kk=0;kk<formObject.elements.size();kk++){
			var element=formObject.elements[kk];
			if (element.dataSource==CONST_DS_FORM_DATA){
				for (var nn=0;nn<orderLineCount;nn++){
					var fieldID="field#"+nn+"#"+element.uniqeID(); 
					//Sipariş kalemleri formundaki dinamik alan ile eklenenleri karşılaştır.
					//Aynı değer sahipse uyar.
					if ($(fieldID).value==$("field_"+element.uniqeID()).value){ 
						alert("Bu ürün zaten listenizde mevcut...");
						return false;
					}
				}
			}
		}
	}
	
	if (orderLineCount==0){
		var table = $("tableProductList"); 
		var forms = table.getElementsByTagName("form"); 
		while(forms.length>0){
		    $(forms[0].formID).remove(); 
		}
		$("trBottomHandleTool").remove();
		$("trPageCount").remove();
		$("orderBy").remove();
		$("spanTopHandleTool").innerHTML="&nbsp;";
	}
	
	var html="<form id='form_"+orderLineCount+"'>";
	
	
	html+="<tr>";
	
	var dataStyle="";
	for (var ii=0;ii<formObject.elements.size();ii++){
		var element=formObject.elements[ii];
		var fieldID=element.elementID;
		var fieldLineIndex=element.index;
		dataStyle=element.dataAreaStyle.cssText;
		
		var fieldID="field#"+orderLineCount+"#"+element.uniqeID();
		var elementID="field_"+element.uniqeID();
		
		//Otomatik filtre aktif olan alan stok alanıdır.Ve resmi varsa getir
		if (element.autoComplete){
			html+="<td id='td_"+$(elementID).value+"' style='"+dataStyle+";background-repeat:no-repeat;background-position:center;' background='/images/ajaxloader.gif'></td>";
		}
		
		html+="<td id='td#"+orderLineCount+"#"+element.uniqeID()+"' style='"+element.dataAreaStyle.cssText+"'>";
		html+="<span id='spry#"+orderLineCount+"#"+element.uniqeID()+"'>";

		
		if (element.dataSource==CONST_DS_USER || element.dataSource==CONST_DS_FORMULA){
			switch(parseInt(element.elementType,10)){
				case CONST_FIELD_TEXT:
					html+="<input onkeyup='formFieldList.calculateFormula("+orderLineCount+");' style='"+element.elementStyle.cssText+"' type='text' id='"+fieldID+"' name='"+fieldID+"' value='"+$(elementID).value+"'>";
					html+="<br><span class='textfieldRequiredMsg'>*Zorunlu alan</span>";
					html+="<span class='textfieldInvalidFormatMsg'>*Hatalı veri</span>";
					break;
				
				case CONST_FIELD_TEXTAREA:
					break;
				
				case CONST_FIELD_CHECKBOX:
					break;
				
				case CONST_FIELD_RADIO:
					break;
				
				case CONST_FIELD_SELECT:
					break;
				
				case CONST_FIELD_DIV:
					html+="<div id='div_"+fieldID+"'>"+$(elementID).innerHTML+"</div>";	
					html+="<input type='hidden' name='"+fieldID+"' id='"+fieldID+"' value='"+$(elementID).innerHTML+"'>";		
					break;
					
			}
		}
		else{
			switch(parseInt(element.elementType,10)){
				case CONST_FIELD_SELECT:
					html+="<span id='div_"+fieldID+"'>"+$(elementID).options[$(elementID).selectedIndex].innerHTML;
					html+="<input type='hidden' id='"+fieldID+"' name='"+fieldID+"' value='"+$(elementID).value+"'>";
					if (parseInt(element.dataSource,10)==CONST_DS_FORM_DATA){
						html+="<input type='hidden' id='"+fieldID+"_display' name='"+fieldID+"_display' value='"+$(elementID).options[$(elementID).selectedIndex].innerHTML+"'>";
					}
					html+="</span>";
					break;
				
				case CONST_FIELD_DIV:
					html+="<span id='div_"+fieldID+"'>"+$(elementID).innerHTML;
					html+="<input type='hidden' id='"+fieldID+"' name='"+fieldID+"' value='"+$(elementID).innerHTML+"'>";
					html+="</span>";
					break;
					
			}
		}
		html+="</span></td>";
	}
	html+="<td style='"+dataStyle+";text-align:center;cursor:pointer;width:50px;' onclick='addToOrderList("+orderLineCount+","+formObject.categoryID+");' ><img id='imgBasket_"+orderLineCount+"'  alt='Sepete at' src='/UserFiles/tasarim/sepet_16.gif'></td>";	
	html+="</tr></form>";
	new Insertion.Top('tBodyProductList',html);

	orderLineCount++;

	formRowList=new ClassFormRowList();
	formRowList.initialize(orderLineCount);
	
	for (var ii=0;ii<formObject.elements.size();ii++){
		var element=formObject.elements[ii];
		//HTMLler set edildikten sonra resimler için çağrılıyor. 
		if (element.autoComplete) getProductPicture(element);
	 }	
}

function getProductPicture(element){

	var url="order.php?progress=getProductPicture&productValueID="+$("field_"+element.uniqeID()).value;

    Ext.Ajax.request({url: url,
			   success: getProductPictureComplete.createDelegate(null, [element], true)
			});
}

function getProductPictureComplete(request,response,element){
	var arrResponseText=request.responseText.split("|");
	var elementID="field_"+element.uniqeID();
	eval(arrResponseText[1]);
	$("td_"+$(elementID).value).innerHTML=arrResponseText[0];
}



