//set and get configuration params
//window.siteConfig = new function() {
//    var self = this;
//
//    self.configData = {};
//
//    self.getParam = function(key) {
//        return self.configData[key];
//    }
//
//    self.setParam = function(key, value) {
//        self.configData[key] = value;
//    }
//};



function ds_star_rating_move(e, obj, size) {
	var lis = obj.getElementsByTagName('li');

	var x=Math.max(navigator.userAgent.toLowerCase().indexOf('msie'),0)?
		event.clientX+document.body.scrollLeft : e.pageX;

	x -= $(obj).offset().left;

	if(!lis[1].innerHTML) lis[1].innerHTML = parseInt(lis[0].style.width);

	if(lis[0].className!='voted') lis[0].className = 'vote';

	size = $(obj).hasClass('top_ds_rating') ? 90 : 135;

	lis[0].style.width=Math.ceil(x/size*5)*20+'%'; // x/size*5
}
function ds_star_rating_out(obj)
{
	var lis = obj.getElementsByTagName('li');
	if(lis[0].className!='voted') lis[0].className = '';

	var v = parseInt(lis[1].innerHTML);
	if (isNaN(v)) {
		v = 0;
	}
	lis[0].style.width=v+'%';
}

function ds_star_rating_click(obj,rate_val)
{
	var lis = obj.getElementsByTagName('li');
	//if(lis[1].innerHTML=='-') return;

	var length = 75;
	if (window.theme.getName() == 'lovebook') {
		length = 90;
	}

	var rate = rate_val || Math.floor(parseInt(lis[0].style.width)/86*5);
	    //_('rating: ' + rate);
	lis[1].innerHTML = rate * 20;
	lis[0].className = 'voted';
	lis[0].style.width = lis[1].innerHTML+'%';


	if($(obj).hasClass('top_ds_rating')) {
	    window.tracker.log('tds_rating', $(obj).attr('rel') + '_' + rate);
	}
}
function dsStarRatingInit() {
        if ($('body').data('dsStarRatingInit') !== true) {
            $('body').data('dsStarRatingInit', true);
            $('body').delegate('.ds-star-rating', 'click', function(event) {
                ds_star_rating_click(this);
            });
            $('body').delegate('.ds-star-rating', 'mousemove', function(event) {
		this.size = $(this).parent().parent().hasClass('user-rating-big')?100:88;
                ds_star_rating_move(event, this, this.size);
                ds_star_rating_click(this);
            });
            $('body').delegate('.ds-star-rating[id]', 'mouseleave', function(event) {
                ds_star_rating_out(this);
            });
        }

}

/**
 * Theming support
 */
window.theme = new function() {
    var self = this;
	var defaultTheme = 'canoodle';
	var theme = window.siteConfig ? siteConfig.getParam('theme') : defaultTheme;

	self.getName = self.toString = function() {
        return theme;
    };

	self.getConfig = function() {
		return window.siteConfig ? siteConfig.getParam('themeConfig') : null;
	};

    self.get = self.getParam = function(path) {
        try {
            var el = eval('self.getConfig().' + path);
            return el;
        } catch (exc) {
            _exc(exc);
            return undefined;
        }
    };

	self.getThemedObject = function(object) {
		try {
			var objectName = /function\s(\w+)/.exec(object)[1];
			var themedObject = eval(objectName + '_' + theme.ucfirst());
			return themedObject;
		} catch (exc) {
			return object;
		}
	};
};

window.siteConfig = new function() {
      var self = this;
     self.configData = {};
     self.get = self.getParam = function(key) {
      return self.configData[key];
     }
     self.set = self.setParam = function(key, value) {
      self.configData[key] = value;
     }
};

var datingSitesRatingPopupObject = function(){
    var shown = false;
	// Public arrea
	return {

		isShown: shown,

		showPopup: function(event) {
                    dsStarRatingInit();
                        initPopups();
                    	if (window.lsPopup) {
				$(document).ready(function(event) {
                                        lsPopup.loadUrl('/SitesCatalog/index/Popup', function(responseText) {
					lsPopup.update(responseText);
                                        $('.write-review-top .write-review-header').html('Your Rank ' + siteConfig.getParam('ds_data').site_name);
				    }, {width: 410});
                                    lsPopup.showCloseButton();
				});
			}
			shown = true;
			return false;
		}

};
}();

var datingSitesGamblingPopupObject = function(){
    var shown = false;
	// Public arrea
	return {

		isShown: shown,

		showPopup: function(event) {
                    dsStarRatingInit();
                        initPopups();
                    	if (window.lsPopup) {
				$(document).ready(function(event) {
                                        lsPopup.loadUrl('/SitesCatalog/index/Popup', function(responseText) {
					lsPopup.update(responseText);
                                        $('.write-review-top .write-review-header').html('Your Rank ' + siteConfig.getParam('ds_data').site_name);
				    }, {width: 380});
                                    lsPopup.showCloseButton();
				});
			}
			shown = true;
			return false;
		}

};
}();

var datingSitesRegisterPopupObject = function(){
    var shown = false;
    // Public arrea
    return {

        isShown: shown,

        showPopup: function(event) {
            var url_submit = event;
            dsStarRatingInit();
            initPopups();
            if (window.lsPopup) {
                $(document).ready(function(event) {
                    lsPopup.loadUrl('/popups/registrationPopup/?url='+url_submit, function(responseText) {
                        lsPopup.update(responseText);
                    //$('.write-review-top .writ-review-header').html('Your Rank ' + siteConfig.getParam('ds_data').site_name);
                    }, {
                        width: 410
                    });
                    lsPopup.showCloseButton();
                });
            }
            shown = true;
            return false;
        }

    };
}();


function dsInitClicks(namePopup, url_submit) {
    var self = this;

    self._init = function() {
	self.bindPopupReview();
	self.bindVisit();
    }

    self.bindPopupReview = function() {
        $('body').delegate('.ds-popup-review', 'click', function(event) {
        
	    siteConfig.setParam('ds_data',$.parseJSON($('.json').html()));
            self.setData(event);
            if(namePopup == 'RegisterPopup'){
                datingSitesRegisterPopupObject.showPopup(url_submit);
            }
            else if(namePopup == 'gambling'){
                datingSitesGamblingPopupObject.showPopup();
            }else{
                datingSitesRatingPopupObject.showPopup();
            }
//            if(siteConfig.getParam('loggedIn') || /top_dating_sites/i.test(location.href)
//		|| window.theme.getName() == 'topdatingsitesuk'
//		|| window.theme.getName() == 'topdatingsitesusa') {
//		self.setData(event);
//		datingSitesRatingPopupObject.showPopup();
//	    } else {
//		quickRegistrationObject.showPopup();
//	    }
	});
    }

    self.bindVisit = function() {
	$('body').delegate('.ds-visit', 'click', function(event) {

	    if(siteConfig.getParam('loggedIn')) {
		//Shop confirm popup for unconfirmed users
		if(!siteConfig.getParam('userConfirmed')) {window.popups.registrationConfirmPopup();return;}

		self.setData(event);

		var ds_data = siteConfig.getParam('ds_data');
		var userSites = siteConfig.getParam('userSites');
		var regEdSites = siteConfig.getParam('regEdSites');
		var nonPartnerOnPage = siteConfig.getParam('nonPartnerOnPage');

		var userHasSite = false;
		var hasExtRegBefore = false;

		var source = $(event.target).closest('.ds-visit').attr('rel');

		for(var i in regEdSites) {
		    if(regEdSites[i] == ds_data.ext_site_id)
			{
			    hasExtRegBefore = true;
			}
		}

		//Here makes check out if user has been registered before us and we have
		//his mail take him direct to site
		if(hasExtRegBefore) {
		    window.open('/search/redirectPage?source=' + source + '&src_type=dating-catalog&referer=' +
			    escape(encodeURI(location.href)) + '&redirect=' +
			    escape('http://' + ds_data.site_url) + '&site=' + ds_data.ext_site_id + '&click_cost=1', '_blank');
		    return;
		}

		//Logic for lovebook
		if(ds_data.site_name == 'LoveBook.com') {
		    window.open('/search/redirectPage?source=' + source + '&src_type=dating-catalog&referer=' +
				escape(encodeURI(location.href)) + '&redirect=' +
				escape(encodeURI('/landing/lovebookTransfer')) + '&site=' + ds_data.ext_site_id + '&click_cost=1', '_blank');
			    return;
		}

		//Here makes check out if user has already registered there the autologin him on ext_site
		for(var i in userSites) {
		    if(userSites[i] == ds_data.ext_site_id)
			{
			    userHasSite = true;
			}
		}

		//Here makes checkout if site isn't our partner send him to index
		for(var i in nonPartnerOnPage) {
		    if(nonPartnerOnPage[i] == ds_data.ext_site_id || ds_data.ext_site_id == null)
			{
			    window.open('/search/redirectPage?source=' + source + '&src_type=dating-catalog&referer=' +
				escape(encodeURI(location.href)) + '&redirect=' +
				escape(encodeURI('http://' + ds_data.site_url)) + '&site=' + ds_data.ext_site_id + '&click_cost=1', '_blank');
			    return;
			}
		}

		//It will works if user has site => we get autologin url, track his choise and
		//send him to this site
		if(userHasSite) {
		    var ds_autologin_urls = siteConfig.getParam('autologinUrls');

		    if(ds_autologin_urls[ds_data.ext_site_id]) {
			window.open('/search/redirectPage?source=' + source + '&src_type=dating-catalog&referer=' +
			    escape(encodeURI(location.href)) + '&redirect=' +
			    escape(encodeURI(ds_autologin_urls[ds_data.ext_site_id])) + '&site=' + ds_data.ext_site_id + '&click_cost=1', '_blank');
		    } else {
			window.open('/search/redirectPage?source=' + source + '&src_type=dating-catalog&referer=' +
			    escape(encodeURI(location.href)) + '&redirect=' +
			    escape(encodeURI('http://' + ds_data.site_url)) + '&site=' + ds_data.ext_site_id + '&click_cost=1', '_blank');
		    }

		} else {
			window.popups.externalSitesSingleRegistrationPopup(ds_data.ext_site_id);
		}
	    } else {
		quickRegistrationObject.showPopup();
	    }
	});
    }

    self.setData = function(event) {
	if($('.site-info-top .json').html() != null) {
	    siteConfig.setParam('ds_data',$.parseJSON($('.site-info-top .json').html()));
	} else if($(event.target).closest('.site-info-top-list').find('.json').html() != null) {
	    siteConfig.setParam('ds_data',$.parseJSON($(event.target).closest('.site-info-top-list').find('.json').html()));
	} else if($(event.target).parent().parent().find('.json').html() != null) {
	    siteConfig.setParam('ds_data',$.parseJSON($(event.target).parent().parent().find('.json').html()));
	}
    }

    self._init();
}

function showRegistrationPopup(namePopup, url_submit) {
    datingSitesRegisterPopupObject.showPopup(url_submit);
}

function clickTrack(tracker, category, action, label) {
    try
    {
        _gaq.push([tracker, category, action, label]);
    }
    catch(err){};

    return true;
}

function outclickLink(link, target, trackerName, trackCategory, trackAction, trackLabel) {
    clickTrack(trackerName, trackCategory, trackAction, trackLabel);
    window.open(link,target);
    return false;
}