
(function($) {

    jQuery.sitebuilder.restoreProject = {

    };
    
    jQuery.sitebuilder.restoreProject.confirm = function(obj, frmId)
    {
    
        jQuery.sitebuilder.Ajax.connect('rvsMgr=RestoreProject&rvsAct=restore-project-perm',{
            callback: {
                doSuccess: function(data) {
        	if(isDirectAdminMode) {
        		dialogObj = jQuery('#restore-project-upload-da');    
        	} else {
        		dialogObj = jQuery('#restore-project-upload');                		
        	}
                    dialogObj.rvsDialog('open');
                },
                doError: function(xhr, ajaxOptions, thrownError, errorJson) {
					jQuery.sitebuilder.restoreProject.displayError(errorJson);
                }
            }
        });
       
    };
    
    jQuery.sitebuilder.restoreProject.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("#restore-project-error");
		errId.find('#message').html(errorText);
		errId.rvsDialog('open');
    }
    
    jQuery.sitebuilder.restoreProject.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.restoreProject.redirect = function(oFormId)
    {
    	var url = '';
    	SuccessId = jQuery(oFormId);
    	url = SuccessId.find('#reDirect').val();
    	document.location.href = url;
    }
    
    jQuery.sitebuilder.restoreProject.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.restoreProject.genNewId = function(formId, isGenNewId)
    {	   
           var strtype = '';
           if (isGenNewId == '1') {
               strtype = '<input type="hidden" name="genNewId" value="1" />';
           }
           WarnId = jQuery('#restore-project-warning-confirm');
           WarnId.find('#genNewId').html("" + strtype +"");		   
	       jQuery.sitebuilder.restoreProject.doRestore(formId);
    }
    
    jQuery.sitebuilder.restoreProject.clearTmp = function(formId)
    {	   
          strtype = '<input id="cancelRestore" name="cancelRestore" type="hidden" value="clean-temp-file" />';
          WarnId = jQuery(formId);
          WarnId.find('#cancelRestore').html("" + strtype +"");	
	      jQuery.sitebuilder.restoreProject.doRestore(formId);
    }
    
    jQuery.sitebuilder.restoreProject.doRestore = function(dialogId)
    {
    	jQuery.sitebuilder.Log.logMessage('Call function: sitebuilder.restoreProject.doRestore', LOG_PRIORITY.DEBUG);
        //jQuery('#backup-project-confirm').rvsDialog('close');
        if (dialogId == undefined || dialogId == '' ) dialogId = '#frm-restore-project'; 
        //alert(jQuery(dialogId).find('#action').val())
        var excUrlExternal = (isDirectAdminMode && jQuery(dialogId).find('#action').val()) ? UPLOAD_DIRECTADMIN_URL:false;
        jQuery.sitebuilder.Ajax.connect(dialogId,{
        	excUrlExternal:excUrlExternal,
            callback: {
                doSuccess: function(data) {
                    data = jQuery.sitebuilder.string.decode(data);
                    jQuery.sitebuilder.restoreProject.renderOutput(data);
                                         
                },
                doError: function(xhr, ajaxOptions, thrownError, errorJson) {
                    jQuery.sitebuilder.Log.logMessage('Ajax return error.', LOG_PRIORITY.DEBUG);
                    jQuery('#restore-project-nextstep').rvsDialog('close');
                    jQuery.sitebuilder.restoreProject.displayError(errorJson);
                }
            }
        });
        
    	jQuery(dialogId).dialog('close');
    }
    
    jQuery.sitebuilder.restoreProject.renderOutput = function (data) {
        switch (data.dialogCtrl) {
        	case 'showwarnconfirm':
        		jQuery.sitebuilder.Log.logMessage('Return restore project warning.', LOG_PRIORITY.DEBUG);
                WarnText = data.display.message;
                jQuery.sitebuilder.Log.logMessage('restore project warning: ' +  WarnText, LOG_PRIORITY.DEBUG);
                WarnId = jQuery('#restore-project-warning-confirm');
                WarnId.find('#message').html("" + WarnText +"");                            
                
                if (data.setform != undefined) {
                    jQuery.sitebuilder.restoreProject.setFormData(data.setform, WarnId);
                }
                
                if (data.display != undefined) {
                    jQuery.sitebuilder.restoreProject.displayData(data.display, WarnId);
                }
                
                jQuery('#restore-project-warning-confirm').rvsDialog('open');
                break;
            case 'showwarn' :
                jQuery.sitebuilder.Log.logMessage('Return restore project warning.', LOG_PRIORITY.DEBUG);
                WarnText = data.display.message;

                jQuery.sitebuilder.Log.logMessage('restore project warning: ' +  WarnText, LOG_PRIORITY.DEBUG);
                WarnId = jQuery('#restore-project-warning');
                WarnId.find('#message').html("" + WarnText +"");
                                            
                if (data.setform != undefined) {
                	jQuery.sitebuilder.restoreProject.setFormData(data.setform, WarnId);
                }
                
                if (data.display != undefined) {
                    jQuery.sitebuilder.restoreProject.displayData(data.display, WarnId);
                }

                WarnId.rvsDialog('open');
                break;
            case 'nextaction':    
            	jQuery.sitebuilder.Log.logMessage('Restore project next step.', LOG_PRIORITY.DEBUG);
                nextId = jQuery('#restore-project-nextstep');
               	
               	if (data.setform != undefined) {
                	jQuery.sitebuilder.restoreProject.setFormData(data.setform, nextId);
                }
                
                if (data.display != undefined) {
                    jQuery.sitebuilder.restoreProject.displayData(data.display, nextId);
                } 	                            
                
                nextId.rvsDialog('open');
                jQuery.sitebuilder.restoreProject.doRestore('#restore-project-nextstep-form');
                break;
            case 'success':
            	jQuery('#restore-project-nextstep').rvsDialog('close');
                jQuery.sitebuilder.Log.logMessage('Restore project success.', LOG_PRIORITY.DEBUG);
                nextId = jQuery('#restore-project-success');
                
                if (data.setform != undefined) {
                	jQuery.sitebuilder.restoreProject.setFormData(data.setform, nextId);
                }
                
                if (data.display != undefined) {
                    jQuery.sitebuilder.restoreProject.displayData(data.display, nextId);
                }       
                
                nextId.rvsDialog('open');                            
                jQuery('#restore-project-warning-confirm').rvsDialog('close');
        		jQuery('#restore-project-nextstep').rvsDialog('close');
        		jQuery('#restore-project-warning').rvsDialog('close');
                jQuery('#restore-project-success').rvsDialog('close');
                jQuery.sitebuilder.restoreProject.redirect("#restore-project-success");
                
                break;                        
            default:
                jQuery('#restore-project-nextstep').rvsDialog('close');
                break;
        }
    	
    }
    
})(jQuery);
