/*
$().ajaxStart( function(){
				//$('body,textarea,.submit').css('cursor', 'wait');
				$('body,textarea,.submit').css('cursor','url(/static/site/design/newLoader.gifs), help');
			});
$().ajaxStop( function(){
				//$('a').css('cursor', 'hand');
				$('body').css('cursor', 'auto');
				$('textarea').css('cursor', 'text');
				$('.submit').css('cursor', 'pointer');
			});

*/
//
// jquery.atilla.js
//
function splitParams (url)
{
	var info = new Array;
	var url = url.replace(/.*\?(.*?)/,"$1");
	info = url.split('&');
	newInfo = new Array();
	bts = '';
	for (i in info){
		param = info[i].split('=');
		
		if (param[0] == 'rpc'){
			rpcInfo = param[1].split('.');
			if (rpcInfo.length == 2){
				category = rpcInfo[0]
				action = rpcInfo[1]
			}
		} else {
			bts = bts + param[0] + '=' + param[1] + ' ';
		}
	}


	returnArray = new Array();
	returnArray['category'] = category;
	returnArray['action'] = action;
	returnArray['label'] = bts;
	
	return returnArray;
}
function statisticsPageTracker (PTurl){
	if (typeof(pageTracker) !== "undefined"){
		pageTracker._trackPageview(PTurl);            
	}
}
function statisticsActionTracker (rpcUrl){
	if (typeof(pageTracker) !== "undefined"){
		rpc = new Array();
		rpc = splitParams(rpcUrl)
		pageTracker._trackEvent(rpc['category'], rpc['action'], rpc['label'])       
	}
}

(function($){
    //
    // plugin definition
    //
    
    //$(document).ajaxInitializationAll(); - inicijalizacija na cijelom documentu

    $.fn.ajaxInitializationAll = function(options){

	        // build main options before element iteration
	        
	        var opts = $.extend({}, $.fn.ajaxInitializationAll.defaults, options);

	    	if (!(jQuery.browser.msie && jQuery.browser.version < 7)){
	    	
		        $().ajaxHistoryInit(); //Inicijalizacija history objekta
		    }
	        // iterate and reformat each matched element
	        return this.each(function(){
	            $this = $(this);
	            $this.ajaxModuleLink();
	            $this.ajaxRpc();
	            initFunctionsLog($this, 'bindTriggers()');
	            //Ovdje je loger jer se ova funkcija uvijek extenda na razini sitea
	            $this.bindTriggers();
	            if ($this.attr('src') && !$this.find('div[src]').is('div[src]')) {
					 $this.ajaxForms();
	            }
	            else {
	                $this.find('div[src]').ajaxForms();
	            }
	        });
    	
    };

    
    //
    // defaults options for ajaxInitialization
    //
    $.fn.ajaxInitializationAll.defaults = {};
    
    $.fn.bindTriggers = function(){
        //overide in jQuery.site.js
        //this se odnosi na sve selektirane elemente
    }
    
    // doReload funkcija omogucuje da u nekom bloku napravimo reload
    //Primjeri:
    //	$('#div').doReload();
    //	    - obavezno mora biti u atributu elementa definiran src
    //	    - sve sto selektira ce samo u sebe ucitati source iz onoga sto je u src fileu
    //			<element src="url.html"></element>
    //	$('#div').doReload({url: 'ajax.html'});
    //		- u sve sto selektira ce ucitati source iz ajax.html
    //   Ako unutar elementa postoji definiran element s id-jem koji je definiran u innerPlaceHolder
    //	 onda ce ucitati sadrzaj unutar tog elementa
    $.fn.doReload = function(options){

        // build main options before element iteration
        var opts = $.extend({}, $.fn.doReload.defaults, options);
  
        // iterate and reformat each matched element
        return this.each(function(){
            $this = $(this);
            
            var cleanOptsUrl = false;
            
            if (opts.target == null && opts.clickElement != null) {
            	opts.target = $(opts.clickElement).attr('id');
            }
            
            if (opts.url == null) {
                opts.url = $this.attr('src');
                opts.url += (opts.url.indexOf('?') >= 0 ? '&' : '?') + 'from=' + $this.attr('id');
                //if (opts.url == undefined) { Toni 10.11.2008. 
                if (!opts.url) {
                    throw 'Option "url" not set for element with id=' + $this.attr('id');
                }
                else {
                    cleanOptsUrl = true;
                }
            }

            if (opts.history == 1) {

                $().ajaxHistory({
                    src: opts.url,
                    target: $this.attr('id')
                });
                if (opts.callback){
                	opts.callback();
                }
                
                return this;
                //zakomentirano jer nije okidalo callback na doreload kad je history upaljen
                //I onda odkomentirano jer se onda dvije slike ucitavaju
            }
            
            var divId = $this.attr('id');
            
            if ($this.find(opts.innerPlaceHolder).length > 0) {
                $.fn.doReload.loaderStart($(opts.innerPlaceHolder), opts);
                log('doReload start #' + divId + '.doReload({url: ' + opts.url + '}) in child innerPlaceHolder of element.');
                //Ako postoji posebno definiran blok unutar ajax bloka onda napravi ucitavanje u njemu
                
                $(opts.innerPlaceHolder).load(opts.url, opts.data, function(){
                    $.fn.doReload.loaderEnd(this);
                    ajaxSuccess(this); //U this je jQ element elementa u koji se ubacuje content nakon loada
                    opts.callback();
                }).attr('style', 'display: block');
                $this.attr('style', 'display: block');
                
                if ($this.attr('id') == 'popup'){
	                try{
		                height = getPageHeight();
		                scroll = getPageScroll();
	               		jQuery('#popup').draggable({ handle: 'thead' });
	                } catch(e){
	                	height = 200;
	                }
	               	move  = scroll[1] + (height / 10);
	                if (!move){
	                	//Tony fix za ie
	                	move = event.clientY;
	                }
				      $this.css({
				        top:move
				      });
	                }

            } else {

                $.fn.doReload.loaderStart($this, opts);
                log('doReload start #' + divId + '.doReload({url: ' + opts.url + '}) in element.');
                $this.load(opts.url, opts.data, function(){
                    $.fn.doReload.loaderEnd(this);
                    ajaxSuccess(this); //U this je jQ element elementa u koji se ubacuje content nakon loada
                    opts.callback();
                }).attr('style', 'display: block');
            }
            //setira u src atribut trenutno dohvaceni url
            $this.attr('src', opts.url);

			statisticsPageTracker(opts.url);

            if (cleanOptsUrl == true) {
                //resetira opts.url u svakoj iteraciji ako je null a postoji definiran preko src atributa
                opts.url = null;
            }
        });
    };
    
    //
    // defaults options for doReload
    //
    $.fn.doReload.defaults = {
        innerPlaceHolder: '#i007',
        data: null,
        url: null,
        history: 0,
        target: null,
        clickElement: null,
        callback : function(){}
    };
    
    $.fn.doReload.loaderStart = function($target){
        if($target.find('.customloader:first').size()){
	        $target.find('.customloader:first').css('display', '');        
        }else{
            $target.addClass('loader');
        }  
    };
    
    $.fn.doReload.loaderEnd = function(target){
        $(target).removeClass('loader');
    };
    
    
    $.fn.ajaxRpc = function(options){
    
        //logiraj u log da se okinula ova funkcija
        initFunctionsLog(this, 'ajaxRpc()');
        
        // build main options before element iteration
        var opts = $.extend({}, $.fn.ajaxRpc.defaults, options);
        
        // iterate and reformat each matched element
        return this.each(function(){
            $this = $(this);
            $this.find(opts.rpcLinkSelector).unbind('click').click(function(e){
                $this = $(this);
                opts.e = e;
                opts.success = $this.attr('onsucc') || opts.success;
                opts.rpc = $this.attr('rpc') || opts.rpc;
                $.fn.ajaxRpc.click(opts, $this);
                return false;
            });
        });
    };
    
    //
    // defaults options for ajaxRpc
    //
    $.fn.ajaxRpc.defaults = {
        rpcLinkSelector: 'a[rpc]',
        success: null,
        rpc: null,
        dataType: 'json',
        type: 'POST'
    };
    
    
    $.fn.ajaxRpc.clickExec = function(opts){

		statisticsActionTracker (opts.rpc);
		
		$.fn.ajaxRpc.loaderStart(opts);
        
        $.ajax({
            dataType: opts.dataType,
            type: opts.type,
            url: opts.rpc,
            onerror: null,
            success: function(data){
                $.fn.ajaxRpc.loaderEnd(data, opts);
                $.fn.ajaxRpc.success(data, opts, data.callback);
            },
            error: function(XHRObject, error, exception){
                $.fn.ajaxRpc.error(XHRObject, error, exception)
            }
        });

		return false;
    }
    
    $.fn.ajaxRpc.loaderStart = function(opts){
          
    };
    
    $.fn.ajaxRpc.loaderEnd = function(data, opts){
        
    };
    
    $.fn.ajaxRpc.click = function(opts, jQrpc){
    
        var veto = {};
        jQrpc.trigger('rpc-beforeSubmit', [jQrpc, opts, veto]);

        if (veto.veto) {
            log('ajaxRpc.click: submit vetoed via rpc-beforeSubmit trigger');
            
            return this;
        }
        
        jQrpc.unbind('click').click(function(){return false }); 
        $.fn.ajaxRpc.clickExec(opts);
        return false;

    };
    
    $.fn.ajaxRpc.success = function(data, opts, callback){
        if (opts.success != null) {
            eval(opts.success);

        } else {
			var alertTxt = '';
			alertTxt += 'Status: ' + data.info.status;
			alert(alertTxt + '\n' + data.info.messages.toSource());
		}
	   if (callback != null) {
	        eval(callback);
            return false;
        }
		
    };
        
    $.fn.ajaxRpc.error = function(XHRObject, error, exception){
				var response = eval( "(" + XHRObject.responseText + ")" );
				if (response.debugInfo.length > 0 ) {
					alertTxt += 'Rpc method: '// + response.debugInfo.class + '::' + response.debugInfo.method + '();'; // ova linija!
					alertTxt += 'Rpc status: ' + response.info.status + '\n\n';
					alertTxt += 'Exception: ' + response.debugInfo.exception + '\n' + response.debugInfo.exceptionTrace;
					alert(alertTxt);
				} else {
		         	alert('Error (RPC) \nSorry :( \n Zabiljezili smo gresku i vec ju popravljamo :)');	
				}
    		
    };
    
    //Ajax forms
    $.fn.ajaxForms = function(options){
        //Logiraj u log da se okinula ova funkcija
        initFunctionsLog($this, 'ajaxForms()');
        
        // build main options before element iteration
        var opts = $.extend({}, $.fn.ajaxForms.defaults, options);
        
        // iterate and reformat each matched element
        return this.each(function(){
        
            var o;
            o = $.extend({}, opts, o); //Novi objekt s optionsima kako nebi doslo do kolizije kada je vise formi selektirano
            $this = $(this); //ajax block <div src="nesto"><form>...</form></div>
            //id elementa (targeta) unutar kojeg ce se ispisati response nakon submita
            o.target = $this.attr('id') || o.target;
            o.target = '#' + o.target;
            //url na koji ce se napraviti submit
            o.url = $this.attr('src') || o.url;
            if (o.url == null) { //Ako nije setiran url requesta onda izbaci exception
                throw 'Url for form submit not set';
            }
            o.url = '/' + ltrim(o.url, '/');

            if ($this.is(o.formSelector)) { //Ako se direktno selektira forma onda i ona moze biti u ajax-u
                $this.ajaxForm(o);
            }
            else {
                var $form = $this.find(o.formSelector);//Ako nije direktno onda trazi sve forme u tom dijelu koji je selektiran
                $form.ajaxForm(o);
            }
            
        });
    };
    
    //
    // defaults options for ajaxInitializationRpc
    //
    $.fn.ajaxForms.defaults = {
    	validatorErrorSelector: '#validatorError',
        formSelector: 'form[ajax!=off]', // Ako je unutar <form ajax="off"> onda iz html kazemo da forma nikad nesmije biti ajax
        method: 'POST',
        target: null,
        url: null,
        extraData: null,
        beforeSubmit: function(formArray, jqForm, options){
			
			log('Form beforeSubmit: target: ' + options.target +'; url: ' + options.url +'; method: ' + options.method);
            // are there files to upload?
            var found = false;
            var files = $('input:file', jqForm).fieldValue();
            for (var j = 0; j < files.length; j++) {
                if (files[j]) {
                    found = true;
                }
            }
            
            if (found == true) {
                //Reci form kontrolureu s ajax extra parametrom da se radi o simulaciji ajax submita
                //Kada se uploudaju fileovi onda sve ide preko iframe, i server to kuzi kao normalan poziv
                //a nama na clientu treba sve simulirati kao da je xhr
                //-->u fileupload od extraData izgenerira hidden poljka
                options.extraData = {
                    ajax: 1
                };
            }
            
			//Nakaci options na form objekt kako bi kasnije u drugim metodama imao pristup optionsima
            jqForm.options = options;
            jqForm.trigger('form-beforeSubmit', [jqForm, options, formArray]);
            $.fn.ajaxForms.beforeSubmit(formArray, jqForm, options);
        },
        success: function(data, status, jqForm){
			$data = $(data);
			//Ovo je slucaj kada se sa servera vrati naredba za redirectanjem na novi page
			// -> kada je u php definiciji formi explicitno receno da se zeli
			//Response je onda unutar textare-a s id #__formredirect
			/*if(($data.is('#__formredirect'))){
				window.location = $data.html();
			} --> bugFix - ako pitam id u $data.is('#...') onda pukne jQuery*/

			if(($data.attr('id') == '__formredirect')){
				window.location = $data.val();
			}
            log('Form ' + jqForm.attr('id') + ' submited with ' + jqForm.options.method + jqForm.options.url + ' succesful. Response loaded in ' + jqForm.options.target + '.');
            
            var validatorError = $data.find($.fn.ajaxForms.defaults.validatorErrorSelector);
            if (!validatorError.val()) {
	            eval(jqForm.attr('onsucc'));
	        }
			
            $.fn.ajaxForms.success(data, status, jqForm);
        }
    };
    
    $.fn.ajaxForms.beforeSubmit = function(formArray, jqForm, options){
	//inputs = jqForm.find('input:submit, textarea, select');
	//inputs
	//	.attr("disabled", "disabled");
		
        //jqForm.find('[type=file]').attr("readonly", "1");
        //-> ako se stavi disable na form file polje onda ne radi ajax upload
    };
    
    $.fn.ajaxForms.success = function(data, status, jqForm){
        var target = jqForm.options.target;
        var jqElement = $(target);
        ajaxSuccess(jqElement);
    };
    
    var lastLocation = '';
    putBackClick = function(element, clicker)
    {

    }
    //Ajax ajaxModuleLink
    $.fn.ajaxModuleLink = function(options){
    
        //Logiraj u log da se okinula ova funkcija
        initFunctionsLog($this, 'ajaxModuleLink()');
        
        // build main options before element iteration
        var opts = $.extend({}, $.fn.ajaxModuleLink.defaults, options);
        
        // iterate and reformat each matched element

        return this.each(function(){
        
            $this = $(this);
            $ajaxLinks = $this.find(opts.moduleLinkSelector);
			clicker = function(element){
                $this = $(this);
	            
               // $this.unbind('click').click(function(){return false }); 
                

                var o;
                o = $.extend({}, opts, o); //Extenda optionse kako bi svaki link imao svoju instancu optionsa
                o.clickElement = $this;
                o.url = $this.attr('ajax') || o.url;
                if (o.url == null) { //Ako nije setiran url requesta onda izbaci exception
                    throw 'Ajax url for ajax link not set.';
                }
                
                o.target = $this.attr('blok') || o.target;
                if (o.target == null) { //Ako nije setiran url requesta onda izbaci exception
                    throw 'Target for ajax link not set.';
                }
                
                o.history = $this.attr('history') || o.history;
                
                $('#' + o.target).doReload(o);
                

                return false; //Ubi normalni link   
            } 

            $ajaxLinks.unbind('click').click(clicker);
           
            
        });
    };

    //
    // defaults options for ajaxModuleLink
    //
    $.fn.ajaxModuleLink.defaults = {
        moduleLinkSelector: 'a[ajax]',
        history: 1, //Po defaultu je na svim linkovima ukljucen history
        target: null,
        url: null
    };
    
    //Ajax ajaxHistory
    $.fn.ajaxHistory = function(options){

        // build main options before element iteration
        var opts = $.extend({}, $.fn.ajaxHistory.defaults, options);
        
        if ($.fn.ajaxHistory.defaults.initHistory == true) {
            throw 'History must be initialized with $().ajaxHistoryInit() function.';
        }
        
        if (opts.src == null) {
            throw 'Src not set in ajaxHistory';
        }
        
        if (opts.target == null) {
            throw 'Target not set in ajaxHistory';
        }
        var hash = opts.src;
        var target = opts.target;
        // current URL, needed for extracing the target=file pairs
        var locationHref = window.location.href;
        locationHref = (-1 != locationHref.indexOf('#')) ? locationHref.substr(locationHref.indexOf('#') + 1) : '';
        lastLocation = locationHref;
        hash = target + '=' + hash;
        // this hash we'll load
        var loadHash = hash;
        
        if (locationHref) {
            var replacedFileTarget = false;
            loadHash = '';
            // get object with target/file pairs
            locations = getLoadFiles(locationHref);

            for (var i = 0; i < locations.length; i++) {
                // is this target equal to any already in URL?
                if (target == locations.targets[i]) {
                    // zamijeni files[i] sa hash.file (substraj)
                    locations.files[i] = hash.substr(hash.indexOf('=') + 1);
                    replacedFileTarget = true;
                }
                // building hash to load
                if (i > 0) {
                    loadHash += ',' + locations.targets[i] + '=' + locations.files[i];
                }
                else {
                    loadHash += locations.targets[i] + '=' + locations.files[i];
                }
            }
            if (!replacedFileTarget) {
                loadHash += ',' + hash;
            }
        }
        hash = loadHash;
        // moves to a new page. 
        // pageload is called at once.
        $.historyLoad(hash);
        
        
    };
    
    //
    // defaults options for ajaxHistory
    //
    $.fn.ajaxHistory.defaults = {
        src: null,
        target: null,
        initHistory: true //Po defaultu kada se prvi put pozove ajaxHistory napravi inicijalizaciju history objekta
        
    };
    
    //Inicijalizacija history-a
    $.fn.ajaxHistoryInit = function(){
        if ($.fn.ajaxHistory.defaults.initHistory == true) {
            log('Init history object.')

            $.historyInit(pageload);

            $.fn.ajaxHistory.defaults.initHistory = false;
        }
    };
    
    //
    // private functions
    //
    function getLoadFiles(hash){
        if (-1 != hash.indexOf('#')) {
            // erase everything before and including #
            hash = hash.substr(hash.indexOf('#') + 1);
        }
        
        var files = new Array;
        var targets = new Array;
        var resources = new Object;
        
        var hashes = hash.split(',');
        var hashesCount = hashes.length;
        var i = 0;
        
        for (i; i < hashesCount; i++) {
            splitPlace = hashes[i].indexOf('=');
            targets[i] = hashes[i].substr(0, splitPlace);
            files[i] = hashes[i].substr(splitPlace + 1);
        }
        
        resources['length'] = hashesCount;
        resources['files'] = files;
        resources['targets'] = targets;
        
        return resources;
    };
    
    //Na temelju urla-a ucitava ajax blokove
    //poziva se iz history objekta -> bilo bi dobro kada bi se prepisao hisotry objek i da se ovdje samo extenda callBack funkcija
    function pageload(hash){
       if (hash && hash != pageload.staticHash) {
            var locations = getLoadFiles(hash);
            for (var i = 0; i < locations.length; i++) {
                // checking to see, if file for loading has already been loaded before
                if (locations.targets[i] && -1 == lastLocation.indexOf(locations.targets[i] + '=' + locations.files[i])) {
                    $('#' + locations.targets[i]).doReload({
                        url: locations.files[i]
                    });
                }                
            }
        }
	   	pageload.staticHash = hash;
        lastLocation = '';
        
    };
    
    
    function ajaxSuccess(jQelement){

        $(jQelement).ajaxInitializationAll();
        $().trigger('ajax-success');
    };
    
    // Utilites
    
    function ltrim(str, chars){
        chars = chars || "\\s";
        return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
    };
    
    // helper fn for console logging
    // set $.fn.ajaxSubmit.debug to true to enable debug logging
    function initFunctionsLog(jQElement, action){
        if ($.fn.ajaxSubmit.debug && window.console && window.console.log) {
            var $this = jQElement;
            var element = $this.attr('nodeName');
            var thisElementInfo = $this.attr('id') ? ' id=#' + $this.attr('id') : '';
            thisElementInfo += $this.attr('name') ? ', name=' + $this.attr('name') : '';
            if (thisElementInfo != '') {
                thisElementInfo = 'with' + thisElementInfo;
            }
            var info = ' on ' + element + ' ' + thisElementInfo;
            log('Init ' + action + info);
        }
    }
    
    
    //
    // end of closure
    //
})(jQuery);

function log(){
        if ($.fn.ajaxSubmit.debug && window.console && window.console.log) 
            window.console.log('[atilla.ajax] ' + Array.prototype.join.call(arguments, ''));
};
jQuery.fn.extend({
 getUrlParam :  function(strParamName){
      strParamName = escape(unescape(strParamName));
      
      var returnVal = new Array();
      var qString = null;
      
      if ($(this).attr("nodeName")=="#document") {
        //document-handler
        
        if (window.location.search.search(strParamName) > -1 ){
            
            qString = window.location.search.substr(1,window.location.search.length).split("&");
        }
            
      } else if ($(this).attr("src")!="undefined") {
        
        var strHref = $(this).attr("src")
        if ( strHref.indexOf("?") > -1 ){
            var strQueryString = strHref.substr(strHref.indexOf("?")+1);
            qString = strQueryString.split("&");
        }
      } else if ($(this).attr("href")!="undefined") {
        
        var strHref = $(this).attr("href")
        if ( strHref.indexOf("?") > -1 ){
            var strQueryString = strHref.substr(strHref.indexOf("?")+1);
            qString = strQueryString.split("&");
        }
      } else {
        return null;
      }
        
      
      if (qString==null) return null;
      
      
      for (var i=0;i<qString.length; i++){
            if (escape(unescape(qString[i].split("=")[0])) == strParamName){
                returnVal.push(qString[i].split("=")[1]);
            }
            
      }
      
      
      if (returnVal.length==0) return null;
      else if (returnVal.length==1) return returnVal[0];
      else return returnVal;
    }
});

jQuery.cookie = function(name, value, options) {
    if (typeof value != 'undefined') { // name and value given, set cookie
        options = options || {};
        if (value === null) {
            value = '';
            options.expires = -1;
        }
        var expires = '';
        if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
            var date;
            if (typeof options.expires == 'number') {
                date = new Date();
                date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
            } else {
                date = options.expires;
            }
            expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
        }
        // CAUTION: Needed to parenthesize options.path and options.domain
        // in the following expressions, otherwise they evaluate to undefined
        // in the packed version for some reason...
        var path = options.path ? '; path=' + (options.path) : '';
        var domain = options.domain ? '; domain=' + (options.domain) : '';
        var secure = options.secure ? '; secure' : '';
        document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
    } else { // only name given, get cookie
        var cookieValue = null;
        if (document.cookie && document.cookie != '') {
            var cookies = document.cookie.split(';');
            for (var i = 0; i < cookies.length; i++) {
                var cookie = jQuery.trim(cookies[i]);
                // Does this cookie string begin with the name we want?
                if (cookie.substring(0, name.length + 1) == (name + '=')) {
                    cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                    break;
                }
            }
        }
        return cookieValue;
    }
};

testpratime = function ()
{
	alert('pratimetest');
}

flashMessage = function (data)
{
    text = '';
    if (typeof data == 'string'){
        text = data;
    }else if(!data.info){
        $.each(data, function(i)
        {
            text += data[i].text + "<br />";
        })
    } else {
        allMessages = data.info.messages;
        $.each(allMessages, function(i)
        {
            text += allMessages[i].text + "<br />";
        })
    }
    
    speed=2000;
    jQuery('#flashmessage').html(text).fadeIn(speed, function(){jQuery('#flashmessage').fadeOut(speed)})
}

   $.fn.fbConnect = function(options){
   
     var opts = $.extend({}, $.fn.fbConnect.defaults, options);
     
     $.ajax({ url: opts.connectRpc,
              type: "POST",
              dataType: "json",
              success:  function (data){window.location=window.location},
              error:    function (xhr, ajaxOptions, thrownError){
                                    var response = eval( "(" + xhr.responseText + ")" );
                                    var messageCount = response.info.messages.length;                                      
                                    for(i=0; i<messageCount; i++) {
                                        if(response.info.messages[i].text == opts.userNotLoggedInMsg){                                        
                                            $(opts.containerConnectId).doReload({url:opts.connectTemplateUrl});
                                        }
                                    }
                            } 
           });
   }
   
   $.fn.fbConnect.defaults = {
        connectRpc: '/?rpc=Facebook.connect',
        userNotLoggedInMsg : 'User_not_logged_in',
        connectTemplateUrl: '/login/forma?fb=1', 
        containerConnectId: '#popup'
        
  };
jQuery().ready(
        function() {           

          jQuery().ajaxInitializationAll();
        });    
