define(function(require){
	var $ = require('jquery');
	require('validation')($);
	require('dialog')($);
	require('uriTemplate')($);
	require("../../../styles/cim/jquery-ui-1.8.14.custom.css");
	require('../../../styles/cim/validation.css');

	$(function(){
		 //showImage();
		 $("#saveHref").click(function(){submitForm();});
		 $("#cancel").click(function(){
			 var url = $("#imagePreview").val();
			 // 进入查询页面URL
		      var indexUrl= $("#indexUrl").val();
		      window.location = indexUrl;
		 });
		 $("#change").click(function(){
			   $("#image").removeAttr("style");
			   $("#image").show();
		 });
		 $("#image").change(function(){ 
			   $("#localImg").show();
			   setImagePreview();
		 });
	});
	
	var validateList ;
	$(function(){
		// 验证用户正确性
	    validateList = $("#updatePC").validate({
	      // rules,用户定义键/值对规则;键为一个表单元素的 name属性（或是一组单选/复选按钮）、
		  // 值为一个简单的字符串或者由规则/参数对（rule/parameter）组成的一个对象
		  rules:{
		       pcId:{
	              required:true,
	              regex: /^[0-9a-zA-Z]+$/,  // 必须添加转义字符'/'--否则出错
	              rangelength:[0,20],
	              checkPcId:true
	           },
	           image:{
	        	   checkImage:true
	    	    },
	    		pcRemarks:{
	    		  required:true,
	      		  rangelength:[0,100]
	        	}
		  },
		  errorPlacement:function (error,element){
				  error.insertAfter(element);
		   },
		
		  // 用户自定义的键/值对消息;键为一个表单元素的name属性，值为该表单元素将要显示的消息。该消息覆盖元素的title属性或者默认消息
		   messages:{
			   pcId:{
			     required:i18n["Validation.pc.pcId.notNull"],
			     regex:i18n["Validation.pc.pcId.regex"],
			     rangelength:i18n["Validation.pc.pcId.length"]   
			  },
			  image:{
				  regex:i18n["Validation.pc.image.regex"]
			  },
			  pcRemarks:{
				  required:i18n["Validation.pc.pcRemarks.notNull"],
				  rangelength:i18n["Validation.pc.pcRemarks.length"]
			  }
		   }
		});
	    // 验证Pc码的唯一性	
	    $.validator.addMethod("checkPcId",function(value,element,param){
	    	var pcId = $("#pcId").val();
	    	var validateUrl = new $.Template($("#validateUrl").val());
	    	params = {"pcId":pcId,"validateType":"edit"};
	    	var urlStr = validateUrl.expand(params)+".json";
	    	var flag = false;
	    	$.ajax({
	    		url:urlStr,
	    		dataType:'json',
	    		async: false,
	    		success: function(data){
	    		flag = data.flag;
	    	}
	    	});
	    	return flag;
	    },i18n["Validation.pc.pcId.exist"]);
	    // 验证图片格式
	    $.validator.addMethod("checkImage",function(value,element,param){
	    	var flag = false;
	    	if($("#image").is(":hidden")==true){
	    		flag= true;
	    	}else{
	    		flag = /\.(jpg|jpeg|bmp|gif|png|tiff|psd|tga|eps|JPG|JPEG|BMP|GIF|PNG|TIFF|PSD|TGA|EPS)$/.test(value);
	    	}
	    	return flag;
	    },i18n["Validation.pc.image.regex"]);
	});
	
	// 预览图片
	function setImagePreview() {
	    var imageObj = $("#image")[0];
        if(imageObj.files &&  imageObj.files[0]){
        	//火狐下，直接设img属性
        	$("#imagePreview").css({display:"block",width:"300px",height:"300px"});
        	$("#imagePreview").attr({src:imageObj.files[0].getAsDataURL()});
        }else{
            //IE下，使用滤镜
            imageObj.select();
            var imgSrc = document.selection.createRange().text;
            //必须设置初始大小
            $("#localImg").css({width:"300px",height:"300px"});
            //图片异常的捕捉，防止用户修改后缀来伪造图片
            try{
            	$("#localImg").css({filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)"});
            	$("#localImg")[0].filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgSrc;
            }catch(e){
            	$("#localImg").hide();
                return false;
            }
            $("#imagePreview").hide();
            document.selection.empty();
        }
        return true;
    }
	// 页面加载时显示图片
	function showImage(){
		var imagePreview = $("#imagePreview")[0];
		if($.browser.msie){
			//IE下，使用滤镜
            //必须设置初始大小
            $("#localImg").css({width:"300px",height:"300px"});
            //图片异常的捕捉，防止用户修改后缀来伪造图片
            try{
            	$("#localImg").css({filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)"});
            	$("#localImg")[0].filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imagePreview.src;
            }catch(e){
            	$("#localImg").hide();
                return false;
            }
            $("#imagePreview").hide();
		}else if($.browser.mozilla){
			//火狐下，直接设img属性
        	$("#imagePreview").css({display:"block",width:"300px",height:"300px"});
        	$("#imagePreview").attr({src:imagePreview.src});
		}
        return true;
	};
		
		// 函数,提交表单
		function submitForm(){
			if($("#updatePC").valid()){
				$("#saveHref").attr("href","#"); // 改变href的值
				var urlStr = new $.Template($("#updateUrl").val());
				param = {pcId:$("#pcId").val()};
				$("#updatePC").attr("action",urlStr.expand(param));
				$("#updatePC").submit();
			}
			 if(validateList.errorList.length>0){
				 $("#saveHref").attr("href","javascript:submitForm()");
			 }
		};
});

