
(function($) {

    jQuery.sitebuilder.backupProject = {

    };
    
    jQuery.sitebuilder.backupProject.confirm = function(obj, frmId)
    {
        jQuery.sitebuilder.Log.logMessage('Call function: sitebuilder.backupProject.confirm', LOG_PRIORITY.DEBUG);
        jQuery.sitebuilder.Log.logMessage('Form id: ' + frmId, LOG_PRIORITY.DEBUG);
            
        frmObj = jQuery(frmId);
        frmSelectObj = frmObj.find('#ExportProjectList');
        selectProjectId = frmSelectObj.val();
        selectProjectName = frmObj.find('#ExportProjectList').attr('projectName');
        
        jQuery.sitebuilder.Log.logMessage('Select Project ID: ' + selectProjectId, LOG_PRIORITY.DEBUG);
        jQuery.sitebuilder.Log.logMessage('Select Project Name: ' + selectProjectName, LOG_PRIORITY.DEBUG);

        
        dialogObj = jQuery('#backup-project-confirm');
        dialogObj.find('#project_id').val(selectProjectId);
        dialogObj.find('#set-backup-project-id').html(selectProjectId);
        dialogObj.find('#set-backup-project-name').html(selectProjectName);
        dialogObj.rvsDialog('open');
    };
    
    jQuery.sitebuilder.backupProject.displayError = function(errorJson)
    {
		for(key in errorJson) {
			jQuery.sitebuilder.Log.logMessage('AJAX Error returns data: '+ key + " = " + eval("errorJson."+key), LOG_PRIORITY.DEBUG)
		}
		
		var errorText = '';
		if (errorJson.errorType == 'MGR') {
			for (k in errorJson.error) {
				errorText += '<div>' + eval("errorJson.error."+k) + '</div>';
			}
		} else {
			errorText =  '<div>' + errorJson.errorMessage + '</div>';
		}
		errId = jQuery("#backup-project-error");
		errId.find('#message').html(errorText);
		errId.rvsDialog('open');
    }
    
        jQuery.sitebuilder.backupProject.setFormData = function(oFormData, oFormId)
    {
    	   var extraInputs = [];
           form = oFormId.find('form');
           for (k in oFormData) {
                     	
               formVal = eval("oFormData." + k);
               jQuery.sitebuilder.Log.logMessage('Push form:' + k + ' = ' + formVal, LOG_PRIORITY.DEBUG);
               strtype = '<input type="hidden" name="' + k + '" value="' + formVal +'" />';
			   extraInputs.push($(strtype).appendTo(form)[0]);
            }

    }
    
    jQuery.sitebuilder.backupProject.displayData = function(oDisplayData, oFormId)
    {
        var message = '';
        if (oDisplayData.overwrite == undefined || oDisplayData.overwrite == false) {
            message += oFormId.find('#message').html();
        }
        message += "" + oDisplayData.message +"";
        oFormId.find('#message').html("" + message +"");

    }
    
    jQuery.sitebuilder.backupProject.doBackup = function(dialogId, option)
    {
    	jQuery.sitebuilder.Log.logMessage('Call function: sitebuilder.backupProject.doBackup', LOG_PRIORITY.DEBUG);
    	var frmParam = jQuery.sitebuilder.serialize.form(dialogId);
        jQuery.sitebuilder.Log.logMessage('Form Paramiter: '+ frmParam, LOG_PRIORITY.DEBUG);
        
        //jQuery('#backup-project-confirm').rvsDialog('close');
        
        jQuery.sitebuilder.Ajax.connect(frmParam,{ 
        //url : RVS_AJAX_INDEX,
        //http://{domain}/rvsitebuilder/www/index.php/sitebuilder/action/sitebuilderAjaxExecute/
        url : SGL_JS_INDEX + '/sitebuilder/action/sitebuilderAjaxExecute/',
        waitDialog:function(){

			},
            callback: {
                doSuccess: function(data) {
                	jQuery.sitebuilder.Log.logMessage('backup return ======\n'+data+'======\n', LOG_PRIORITY.DEBUG);
                    //data = (data) ? jQuery.sitebuilder.string.decode(data) : '';
                    //alert(data);
                	//alert(data)
                   // eval('data = '+data+';')
                    data = jQuery.sitebuilder.string.decode(data)
                    
                    
                    switch (data.dialogCtrl) {
                        case 'showwarn' :
                            jQuery.sitebuilder.Log.logMessage('Return backup project warning.', LOG_PRIORITY.DEBUG);
                            WarnText = data.display.message;
                            jQuery.sitebuilder.Log.logMessage('Backup project warning: ' +  WarnText, LOG_PRIORITY.DEBUG);
                            
                            //WarnId = jQuery('#backup-project-warning');
                            WarnId = (option == 'convertToUtf8') 
                            		? jQuery('#backup-project-confirm-convertcharset-warning')
                            		: jQuery('#backup-project-warning');
                            WarnId.find('#message').html("" + WarnText +"");
                            
                            if (data.setform != undefined) {
                                jQuery.sitebuilder.backupProject.setFormData(data.setform, WarnId);
                            }
                            /*
                            if (data.setform != undefined) {
                            	var extraInputs = [];
                            	form = WarnId.find('form');
                                for (k in data.setform) {
                                    formVal = eval("data.setform." + k);
                                    jQuery.sitebuilder.Log.logMessage('Push form:' + k + ' = ' + formVal, LOG_PRIORITY.DEBUG);
									extraInputs.push($('<input type="hidden" name="' + k + '" value="' + formVal +'" />')
										.appendTo(form)[0]);
                                }
                            }
                            */
                            
                            //jQuery('#backup-project-warning').rvsDialog('open');
                            WarnId.rvsDialog('open');
                            
                            break;
                        case 'nextaction':
                            jQuery.sitebuilder.Log.logMessage('Backup project next step.', LOG_PRIORITY.DEBUG);
                            nextId = jQuery('#backup-project-nextstep');
                            
                            if (data.setform != undefined) {
                                jQuery.sitebuilder.backupProject.setFormData(data.setform, nextId);
                            }                            
                            if (data.display != undefined) {
                                jQuery.sitebuilder.backupProject.displayData(data.display, nextId);
                            }
                            /*
                            if (data.setform != undefined) {
                            	var extraInputs = [];
                            	form = nextId.find('form');
                                for (k in data.setform) {
                                    formVal = eval("data.setform." + k);
                                    jQuery.sitebuilder.Log.logMessage('Push form:' + k + ' = ' + formVal, LOG_PRIORITY.DEBUG);
									extraInputs.push($('<input type="hidden" name="' + k + '" value="' + formVal +'" />')
										.appendTo(form)[0]);
                                }
                            }
                            if (data.display != undefined) {
                            	var message = '';
                                if (data.display.overwrite == undefined || data.display.overwrite == false) {
                                    message += nextId.find('#message').html();
                                }
                                message += "" + data.display.message +"";
                                nextId.find('#message').html("" + message +"");
                            }
                            */
                            nextId.rvsDialog('open');
                            jQuery.sitebuilder.backupProject.doBackup('#backup-project-nextstep-form', option);
                            break;
                        case 'success':
                        	jQuery('#backup-project-nextstep').rvsDialog('close');
                            jQuery.sitebuilder.Log.logMessage('Backup project success.', LOG_PRIORITY.DEBUG);
                            nextId = jQuery('#backup-project-success');
                            
                            if (option == 'convertToUtf8') {
                            	nextId = jQuery('#backup-project-success-toconvert');
                            }
                            
                            if (data.setform != undefined) {
                                jQuery.sitebuilder.backupProject.setFormData(data.setform, nextId);
                            }                            
                            if (data.display != undefined) {
                                jQuery.sitebuilder.backupProject.displayData(data.display, nextId);
                            }
                            /*
                            if (data.setform != undefined) {
                                for (k in data.setform) {
                                    formVal = eval("data.setform." + k);
                                    jQuery.sitebuilder.Log.logMessage('Find id:' + k + ' and set value : ' + formVal + '.', LOG_PRIORITY.DEBUG);
                                    nextId.find('#' + k).val(formVal);
                                }
                            }                      
                            if (data.display != undefined) {
                                message = '';
                                if (data.display.overwrite == undefined || data.display.overwrite == false) {
                                    message += nextId.find('#message').html();
                                }
                                message += "" + data.display.message +"";
                                nextId.find('#message').html("" + message +"");
                            }
                            */
                            nextId.rvsDialog('open');                            
                            break;
                        default:
                            jQuery('#backup-project-nextstep').rvsDialog('close');
                            break;
                    }
                    
                },
                doError: function(xhr, ajaxOptions, thrownError, errorJson) {
                    jQuery.sitebuilder.Log.logMessage('Ajax return error.', LOG_PRIORITY.DEBUG);
                    jQuery('#backup-project-nextstep').rvsDialog('close');
                    jQuery.sitebuilder.backupProject.displayError(errorJson);
                }
                
            }
        });
        
    	jQuery(dialogId).dialog('close');
    	
    	
    }
    
    
    
})(jQuery);
