﻿$complain_form = {
    form : null,
    validator : null,
	button : null,
	buttonDisable : null,
	buttonLoader : null,
	buttonCancel : null,
    init : function(){
		var bSearch=$("#btn-search");
		bSearch.click(function(){
			bSearch.attr('disabled', 'disabled');
			var url = __siteroot+"/psweb/complain/FindVillagerDetail.rhtml";
			var params = {name:$("#name").val(),addressNo:$("#addressNo").val()};
			var callback = function(obj){
				//var obj=eval("("+json+")");
				$("#xml_code").val(obj.FCUCODE);
				$("#xml_fullname").val(obj.FCUNAME);
				$("#xml_project").val(obj.FREPRJNM);
				$("#xml_unit").val(obj.FSERIALNO);
				$("#xml_addressNumber").val(obj.FADDRNO);
				$("#xml_telephone").val(obj.FTEL);
				$("#xml_codeProject").val(obj.FREPRJNO);

	            if(obj && obj.FCUCODE!=null && obj.FCUCODE!==undefined && obj.FCUCODE!='' && typeof(obj.FCUCODE) != "undefined")
					$(".step-1").show("slow");
				else
					alert(($('#checkComplainLang').val()=='EN')?'Error in search villager. Please try again.':'เกิดข้อผิดพลาดในการค้นหาข้อมูลลูกบ้าน กรุณาลองใหม่อีกครั้งครับ');
			}
			$.ajax({
				url:url,
				type:'GET',
				data:params,
				error:function(XMLHttpRequest, textStatus, errorThrown){
					alert(($('#checkComplainLang').val()=='EN')?'Error in search villager. Please try again.':'เกิดข้อผิดพลาดในการค้นหาข้อมูลลูกบ้าน กรุณาลองใหม่อีกครั้งครับ');
					bSearch.removeAttr('disabled');
				},
				success: function(res, textStatus, XMLHttpRequest){
					if(typeof callback=='function') callback(res);
					bSearch.removeAttr('disabled');
				},
				dataType: 'json'
			});
			//$.get(url,params,callback);
		});
		
		$("#btn-step-1").click(function(){
			$(this).hide();
			$(".step-2").show("slow");
		});
		$("#btn-step-2").hide();
		$("#btn-step-2").click(function(){
			$(this).hide();
			$(".step-3").show("slow");
		});
		$(".hscomplain").hide();
		$(".btn-submit").hide();
		$("#xml_complainType").change(function(){
			var m=[
				[
					{value:'งานผนัง',text:'งานผนัง'},
					{value:'งานสีไม่ได้คุณภาพ',text:'งานสีไม่ได้คุณภาพ'},
					{value:'หลังคารั่ว',text:'หลังคารั่ว'},
					{value:'ปัญหาหลังคา',text:'ปัญหาหลังคา'},
					{value:'ห้องน้ำรั่ว',text:'ห้องน้ำรั่ว'},
					{value:'งานไฟฟ้า',text:'งานไฟฟ้า'},
					{value:'ประตูหน้าต่าง',text:'ประตูหน้าต่าง'},
					{value:'งานพื้นกระเบื้อง',text:'งานพื้นกระเบื้อง'},
					{value:'งานพื้นปาร์เก้',text:'งานพื้นปาร์เก้'},
					{value:'งานฝ้าเพดาน',text:'งานฝ้าเพดาน'},
					{value:'งานสุขภัณฑ์',text:'งานสุขภัณฑ์'},
					{value:'งานรั้ว Precast',text:'งานรั้ว Precast'},
					{value:'งานรั้วเหล็ก',text:'งานรั้วเหล็ก'},                    
					{value:'งานบัวไม้เชิงผนัง',text:'งานบัวไม้เชิงผนัง'},
					{value:'งานบัวปูน',text:'งานบัวปูน'},
					{value:'งานสุขาภิบาล',text:'งานสุขาภิบาล'},
					{value:'งานทำความสะอาด',text:'งานทำความสะอาด'},
				],
				[
					{value:'งานสาธารณูปโภค',text:'งานสาธารณูปโภค'}
				],
				[
					{value:'งานผนัง',text:'wall'},
					{value:'งานสีไม่ได้คุณภาพ',text:'painting'},
					{value:'หลังคารั่ว',text:'roof leak'},
					{value:'ปัญหาหลังคา',text:'roof'},
					{value:'ห้องน้ำรั่ว',text:'bathroom leak'},
					{value:'งานไฟฟ้า',text:'electrical'},
					{value:'ประตูหน้าต่าง',text:'doors, windows'},
					{value:'งานพื้นกระเบื้อง',text:'tile'},
					{value:'งานพื้นปาร์เก้',text:'parquet'},
					{value:'งานฝ้าเพดาน',text:'ceiling'},
					{value:'งานสุขภัณฑ์',text:'sanitary ware'},
					{value:'งานรั้ว Precast',text:'precast wall'},
					{value:'งานรั้วเหล็ก',text:'iron wall'},                    
					{value:'งานบัวไม้เชิงผนัง',text:'wood crown molding'},
					{value:'งานบัวปูน',text:'cement crown molding'},
					{value:'งานสุขาภิบาล',text:'sanitation'},
					{value:'งานทำความสะอาด',text:'Cleaning'},
				],
				[
					{value:'งานสาธารณูปโภค',text:'Public Utility'}
				]
			];
			
			$("#xml_complain").empty();

			var _index = 0;
			if($('#xml_complainType option:selected').text() == "ตัวบ้าน")
				_index=1;
			else if($('#xml_complainType option:selected').text() == "สาธารณูปโภค")
				 _index=2;
			else if($('#xml_complainType option:selected').text() == "Housing")
				 _index=3;
			else if($('#xml_complainType option:selected').text() == "Public Utility")
				 _index=4;	 	 
			else 
				_index=0; 
			if(_index != 0)
			{    
				$.each(m[_index-1],function(i,o){
					if(o != null)
						$("#xml_complain").append("<option value='"+o.value+"'>"+o.text+"</option>")
				});
			}
			$(".hscomplain")[(_index==0)?"hide":"show"]();
			$(".btn-submit")[(_index==0)?"hide":"show"]();
		});
		
		var uniqueId = new Date().getTime()+''+Math.round(Math.random()* 10000);
		$('.swfupload-control').each(function(){
			var swfupload_control = $(this);
			var fileName = "";
			swfupload_control.swfupload({
				upload_url: __siteroot + "/crm/FileUploadMgt/Upload.rhtml",
				post_params : {
					uniqueId : uniqueId
				},
				file_size_limit : "51200",
				file_types : swfupload_control.attr("fileType"),
				file_types_description : swfupload_control.attr("fileDescription"),
				file_upload_limit : "0",
				file_queue_limit : "0",
				flash_url : __siteroot + "/jscript/jquery/jquery.swfupload/swfupload.swf",
				button_image_url : __siteroot + '/jscript/jquery/jquery.swfupload/XPButtonUploadText_61x22.png',
				button_width : 61,
				button_height : 22,
				button_placeholder : $('.crm-button-upload', this)[0],
				button_action : (swfupload_control.attr("singleSelect")=="true")?SWFUpload.BUTTON_ACTION.SELECT_FILE:SWFUpload.BUTTON_ACTION.SELECT_FILES,
				debug: false
			}).bind('fileQueued', function(event, file){
				fileName += "''" +file.name + "'' ";
				$('.tswfupload-control').each(function(){
					if($(this).attr("map") == swfupload_control.attr("map"))
					{
						$(this).val(fileName);
					}
				});
				swfupload_control.swfupload('startUpload');
			})
			.bind('uploadComplete', function(event, file){
				swfupload_control.swfupload('startUpload');
			})
			.bind('fileDialogStart', function(event){
				fileName = "";
					$('.tswfupload-control').each(function(){
						if($(this).attr("map") == swfupload_control.attr("map"))
						{
							$(this).val(fileName);
						}
					});
			})
			.bind('fileDialogComplete', function(event, numFilesSelected, numFilesQueued){
				if(numFilesSelected == 0)
				{
					fileName = "";
					$('.tswfupload-control').each(function(){
						if($(this).attr("map") == swfupload_control.attr("map"))
						{
							$(this).val(fileName);
						}
					});
				}
			})
			.bind('uploadError', function(event, file, errorCode, message){
				alert('Upload error - ' + message);
			})
			.bind('fileQueueError', function(event, file, errorCode, message){
				alert('File queue error - '+message);
			});

			$('.hswfupload-control').each(function(){
				if($(this).attr("id") == swfupload_control.attr("map"))
				{
					$(this).attr("url",__siteroot + "/crm/FileUploadMgt/Upload.rhtml");
					$(this).attr("value",uniqueId);
				}
			});
		});
        
        var _this = this;
        this.button.click(function(){
            _this.submit();
        });
        if(!this.form){
            this.form = $("#complain-form");
            if(!this.validator){
                var msg="*";
			    this.validator=this.form.validate({
			        rules : {
				        xml_email : {
					        required: true,
					        email : true
				        },
				        xml_mobile : {
					        number:true
				        },
				        xml_upload : {
							url : false
				        },
				        xml_complainType : {
							required: true
				        }
			        },
			        messages: {
				        xml_email:msg,
				        xml_mobile:msg,
				        xml_complainType:msg
			        },
				    //showErrors : function(){},
				    event : 'keyup'
			    });
			}
        }
        
        $("#xml_email").keyup(function(){
			validateEM();
        });
        
        $("#xml_mobile").keyup(function(){
			validateEM();
        });
    },
	initButtonElement:function(){
		if(!this.button) this.button = $(".btnSubmit");
		if(!this.buttonDisable) this.buttonDisable=$('.btnSubmit-Disable');
		if(!this.buttonLoader) this.buttonLoader=$('.button-loader');
		if(!this.buttonCancel) this.buttonCancel=$('.btnCancel');
		this.buttonCancel.click(function(){
			parent.hs.close();
		});
	},
    submit:function(){
		// ##### Begin Track
		pageTracker._trackPageview('/virtual-event/touchpoint/complain/click-submit');
		// ##### End Track
        var _this=this;
        if(this.validator.form())
		{
			this.button.attr("disabled",true);
			this.button.hide(); this.buttonDisable.show(); this.buttonLoader.show();
			this.form.ajaxSubmit({
				success : function(responseText){
					// On success
					alert(($('#checkComplainLang').val()=='EN')?'System has received your information. Thank you.':'ระบบได้รับข้อมูลของท่านแล้ว ขอบคุณครับ');

					_this.button.attr("disabled",false);
					_this.button.show(); _this.buttonDisable.hide(); _this.buttonLoader.hide();
					_this.form[0].reset();

					parent.hs.close();
				}
			});
		}
    }
};
function validateEM()
{
    var validator = $("#complain-form").validate({
        showErrors : function(){},
        'event' : 'keyup'
    });
	if(validator.element("#xml_email") && validator.element("#xml_mobile"))
	{
		$("#btn-step-2").show("slow");
	}
	else
	{
		
		$("#btn-step-2").hide();
	}
}


$(function(){
	$("#complain-form")[0].reset();
    $complain_form.initButtonElement();
    $complain_form.init();
});