var base = '/';
var module_base = '/';

var CmsCore = {
    ajaxRequest : function( target, properties ) {
        properties.onLoadingNew = properties.onLoading;
        properties.onLoading = function() {
            try {
                properties.onLoadingNew();
            } catch ( e ) {}
            // $( 'spinner' ).show();
        };
        properties.onCompleteNew = properties.onComplete;
        properties.onComplete = function() {
            try {
                properties.onCompleteNew();
            } catch ( e ) {}
            // $( 'spinner' ).hide();
        };
        properties.onSuccessNew = properties.onSuccess;
        properties.onSuccess = function ( transport ) {
            properties.onSuccessNew( transport );
        };
        new Ajax.Request( target, properties );
    },
    
    generateRandomPassword : function ( plength ) {
        var keylist="abcdefghijklmnopqrstuvwxyz123456789";
        var temp='';
        
        for ( i = 0; i < plength; i++)
            temp += keylist.charAt( Math.floor( Math.random() * keylist.length ));
        
        return temp;
    },
    
    flashMessage : function ( message ) {
    	alert( message );
    },
    
    showError : function ( message ) {
        alert( message );
    },
    
    showMessage : function( message ) {
        alert( mesage );
    },
    
    doAction : function ( action, message ) {
       	if ( arguments.length == 3 ) {
    		evaluateThis = arguments[ 2 ];
  		}
        new CmsCore.ajaxRequest( action, {
            onSuccess : function( transport ) {
                result = transport.responseText.evalJSON();
                
                if ( result ) {
                    if ( message )
                        CmsCore.flashMessage( message );
                } else {
                    CmsCore.flashMessage( 'Bir hata oluştu.' );
                }
            },
            onComplete : function() {
	            if ( evaluateThis ) {
	            	eval( evaluateThis );
                }
            }
        });
    },
    
    isValidEmail : function ( email ) {
		var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
		if ( filter.test( email ) ) {
			return true;
		} else{
			return false;
		}
    },
    
    isValidNick : function ( nick, maxlen, minlen ) {
    	if( nick.length > maxlen  )
    		return false;
    	
    	if( nick.lenght < minlen)
    		return false;
    	
    	if( ! CmsCore.isAlphaNum( nick ) ) {
    		return false;
    	}
    	return true;
    },
    
	isAlphaNum : function(str) {
	     if(str.match(/^[^\d][a-zA-Z0-9_-ÇŞİÜÖĞıçşüöğ]*/i)){
	          return true;
	     }	
	     return false;
	},
    
    saveForm : function ( action, form_id, message ) {
       	if ( arguments.length == 4 ) {
    		evaluateThis = arguments[ 3 ];
  		}
        new CmsCore.ajaxRequest( action, {
            parameters : $( form_id ).serialize(),
            onSuccess : function( transport ) {
                result = transport.responseText.evalJSON();
                if ( result )
                    CmsCore.flashMessage( message );
                else
                    CmsCore.showError( 'Bir hata oluştu' );
            }, 
            onComplete : function() {
	            if ( evaluateThis )
	            	eval( evaluateThis );
            }
        });
    }
}