﻿

$.fn.form = function (options) {
	
	this.toggleFields = function(field, form){
		var input = $(field);
		var fieldsToToggle = new Array();
		var field = $(input).parent('.field-input:first');
		//alert('!');
		//alert($(field).html());
		var toggleFieldStr = $(field).attr('data-toggleFields');
		if(toggleFieldStr != null && toggleFieldStr != '')
		{
			fieldsToToggle = toggleFieldStr.split(',');
			
			if(fieldsToToggle.length > 0)
			{
				//
				$(fieldsToToggle).each(function(e){
					//
					if($(input).get(0).checked == true){
						
						$('.form-box .form-fields .field-input[data-FieldName='+this+']', form).parent('.list-view-row:first').show();
					}
					else
					{
						//alert('.form-box .form-fields .field-input div[data-FieldName='+this+']');
						$('.form-box .form-fields .field-input[data-FieldName='+this+']', form).parent('.list-view-row:first').hide();
					}
				});
			}
		}
	}

	var _this = this;
//	$('.form-box .form-fields', this).listView(
//	{
//		'enableGrouping' : true, 
//		'enableSorting' : false, 
//		'groupOptions' : 
//					{
//						'disableColapseExpand' : true,
//						'groupBy' : ['data-FieldGroupName'], 
//						'order' : [1],
//						'groupSortOptions' : null
//					}
//	});
	var form = $(this);
	$('.lookup-preview a', form).click(function(e){
		var url = '/admin/GetEntityForm';
		var previewDiv = $(this).parent();
		//alert($(previewDiv).html());
		var iId = $(previewDiv).attr('data-lookupValue');
		var modelKey = $(previewDiv).attr('data-modelKey');
		alert(iId);
		$.ajax({
            type: "POST",
            url: url,
            data: {sectionId : modelKey, itemId : iId, formType: 'DisplayForm'},
            dataType: "html",
            success: function (data) {
//				$('div[data-fieldName]', data).each(function(e){
//					if($(this).attr('data-contentType') != 'Html'){
//						
//						$('.ui-dialog .form-box[data-formType='+fType+'] div[data-fieldName='+$(this).attr('data-fieldName')+']').html($('div[data-fieldName='+$(this).attr('data-fieldName')+']', data).html());
//					}
//					else
//					{
//						$('.ui-dialog .form-box[data-formType='+fType+'] div[data-fieldName='+$(this).attr('data-fieldName')+'] .html-editor').html($('div[data-fieldName='+$(this).attr('data-fieldName')+']  .html-editor', data).html());
//					}			
//                });
//                $('.ui-dialog .form-box[data-formType='+fType+'] .buttons:first').html($('.buttons:first', data).html());
//                $('.ui-dialog .form-box[data-formType='+fType+'] .html-editor textarea').cleditor();
//				var urlParts = $('.ui-dialog .form-box[data-formType='+fType+'] form ').attr('action').split('/');
//				if(isNaN(parseFloat(urlParts[urlParts.length - 1]))){
//					$('.ui-dialog .form-box[data-formType='+fType+'] form ').attr('action', $('.ui-dialog .form-box[data-formType='+fType+'] form ').attr('action') + '/' + itemId);
//				}
				$('.lookup-preview-box', previewDiv).html(data);
				if(fType == 'DisplayForm'){
					$('.html-editor-disabled .html-editor textarea:first').cleditor()[0].disable(true).refresh();
				}
				$('.lookup-preview-box', previewDiv).toggle();
            }
        });
	});
	$('.form-box .form-fields .field-input', form).each(function(e){
		if($(this).attr('data-toggleFields') != null && $(this).attr('data-toggleFields') != undefined
		&& $('input:first', this).attr('type') == 'checkbox')
		{
			
			var curField = $(this);
			_this.toggleFields($('input:first', curField), form);
			$('input:first', curField).change(function(e){
				
				_this.toggleFields(this, form);
			});
		}
	});
	if(options['isAjaxable'])
	{
		$('form:first', form).submit(function(e){
//			var membershipName = $('div[data-fieldname=MembershipProviderName] input:first', form).val();
//			var userName = $('div[data-fieldname=Username] input:first', form).val();
//			var passwd = $('div[data-fieldname=Password] input:first', form).val();
//			var rememberMe = $('div[data-fieldname=RememberMe] input:first', form).val();
			//var sendData = new Object();
			var fieldValues = new Array();
			$('div[data-fieldname]', form).each(function(e){
				//alert($(this).attr('data-fieldname'));
				//var fieldVal = new Object();
				//fieldVal.Name = $(this).attr('data-fieldname');
				//fieldVal.Value = $('input:first', this).val();
				//alert(JSON.stringify(fieldVal));
				//fieldValues[$(this).attr('data-fieldname')] = $('input:first', this).val();
				var item = $(this).attr('data-fieldname') + "=" + $('input:first', this).val();
				fieldValues.push(item);
				//fieldValues.push(fieldVal);
			});
			//sendData.formData = fieldValues;
			//alert(fieldValues[0]);
			$.ajax({
				type: "POST",
				url: $(this).attr('action'),
				dataType: "html",
				data: {formData : fieldValues},
				success: function (data) {
					alert(data);
					$(form).html(data);
				},
				traditional: true
			});
			return false;
		});
	}
	//});

    
}

