var dom = {};
dom.rex = jQuery.noConflict(true);
dom.rex(document).ready(function($){

    /* Login header */
    $("a.btnMenuLogin").click(function(){
	$(this).toggleClass("hover");
	if ($(".contentLogin, .contentSenha").is(":visible")){
	    $(".contentLogin, .contentSenha").slideUp();
	    $("a.btnCloseLogin").fadeOut();
	} else {
	    $(".boxLogin input").removeClass("error").val("");
	    $(".contentLogin").slideDown(function(){
		$("a.btnCloseLogin").fadeIn();
	    });
	}
	return false;
    });
    $("a.btnEsqueciSenha, a.btnVoltar53x20, .boxTenhoCadastro a.senha").click(function(){
	$("a.btnCloseLogin").fadeOut();
	$(".contentLogin").slideUp(function(){
	    $(".msgSenha > div").hide();
	    $(".formSenha .conteudo").fadeIn();
	    $(".contentSenha").slideDown("slow", function(){
		$("a.btnCloseLogin").fadeIn();
	    });
	});
	return false;
    });
    $("a.btnCloseLogin").click(function(){
	$("a.btnMenuLogin").trigger("click");
	return false;
    });
    $("label.conectado").click(function(){
	$(this).toggleClass("checked");
    });
    $(".formLogin").validate({ errorContainer: $(".formLogin .msgError"), errorLabelContainer: $(".formLogin .msgLabelError"),
	submitHandler: function() {
	    $.ajax({
		dataType: 'jsonp',
		jsonp: 'callback',
		jsonpCallback: 'SkolLogin',
		cache: true,
                data: $(".formLogin").serialize(),
                url: $(".formLogin").attr("action"),
                success: function(json) {
		    if(json.msg == 'ok') {
			$("a.btnMenuLogin").trigger("click");
			$.pageTracker("/skol/login/sucesso");
			setTimeout(function(){
			    location.reload(true);
			}, 500);
		    } else {
			$(".formLogin").slideUp(function(){
			    $(".msgLogin p").hide();
			    (json.msg == "loginUserError") ? $(".loginUserError").show() : $(".passUserError").show();
			    $(".msgLogin").slideDown();
			    $(".msgLogin a.btnVoltarLogin").click(function(){
				$(".msgLogin").slideUp(function(){
				    $(".formLogin").slideDown();
				});
			    });
			});
			$.pageTracker("/skol/login/erro");
		    }
		}
            });
	}
    });
    $(".formSenha").validate({ errorContainer: $(".formSenha .msgError"), errorLabelContainer: $(".formSenha .msgError"),
	submitHandler: function() {
            $.ajax({
                type: 'POST',
                data: $(".formSenha").serialize()+ "&callback=?",
                dataType: "json",
                url: $(".formSenha").attr("action"),
                success: function(json) {
                    if(json.msg == 'ok'){
			$(".formSenha .conteudo, .msgSenha > div").slideUp(function(){
			    $(".msgSenha .sucesso").slideDown();
			    // deu certo...
			    
			});
                    }else{
			$(".formSenha .conteudo").slideUp(function(){
			    $(".msgSenha .erro").slideDown();
			    // ops...
			    
			});
                    }
                }
            });
	}
    });
    $(".boxLoginCadastro").each(function() {
        var _cookie = $.cookieNew("Skol.CookieUsuario", { raw: true });
        if (_cookie != null) {
	    $_usuarioApelido = unescape(String($.getCookieVar('Apelido', _cookie)).replace(/\+/g, " "));
            $_usuarioFoto = unescape(String($.getCookieVar('Foto', _cookie)).replace(/\+/g, " "));
            $_usuarioPercentualCadastro = $.getCookieVar('PercentualCadastro', _cookie);
            $_usuarioChave = $.getCookieVar('Chave', _cookie);
            if ($_usuarioChave != null && $_usuarioChave != "") {
                $(".btnMenuLogado, .navLogado").removeClass('none');
                $(".boxLoginCadastro a.btnMenuLogado").html($_usuarioApelido);
                $(".boxLogado .contentLogado .photo img").attr("src", $_usuarioFoto);
                $(".boxLogado .percentual .txt span").text($_usuarioPercentualCadastro);
            }else{
                $("a.btnMenuLogin, a.btnMenuCadastro").removeClass('none');
            }
        }else{
            $("a.btnMenuLogin, a.btnMenuCadastro").removeClass('none');
        }
    });
    $("a.tbMudarCidade").click(function(){
	tb_show('', '#TB_inline?width=555&height=210&inlineId=mudarCidade', false);
	return false;
    });
    $("a.btnFecharCidade").click(function(){
	tb_remove();
	return false;
    });
    /* Login header */

    $("body").each(function(){
	$cookieDomain = ($("#navHeader") != null && $("#navHeader").attr("rel")) ? $("#navHeader").attr("rel").split("|")[0] : "";
	$siteDomain = ($("#navHeader") != null && $("#navHeader").attr("rel") != null) ? $("#navHeader").attr("rel").split("|")[1] : "";
	$cidade = ($.cookie("Skol.CidadeUsuario") != null) ? $.cookie("Skol.CidadeUsuario") : geoip_city();
	$estado = ($.cookie("Skol.EstadoUsuario") != null) ? $.cookie("Skol.EstadoUsuario") : (function(){
	    $estado = geoip_region_name();
	    switch($estado.toLowerCase()){
		case 'acre' : $uf = 'AC'; break;
		case 'alagoas' : $uf = 'AL'; break;
		case 'amazonas' : $uf = 'AM'; break;
		case 'amapa' : $uf = 'AP'; break;
		case 'bahia' : $uf = 'BA'; break;
		case 'ceara' : $uf = 'CE'; break;
		case 'distrito federal' : $uf = 'DF'; break;
		case 'espirito santo' : $uf = 'ES'; break;
		case 'goias' : $uf = 'GO'; break;
		case 'maranhao' : $uf = 'MA'; break;
		case 'minas gerais' : $uf = 'MG'; break;
		case 'mato grosso do sul' : $uf = 'MS'; break;
		case 'mato grosso' : $uf = 'MT'; break;
		case 'para' : $uf = 'PA'; break;
		case 'paraíba' : $uf = 'PB'; break;
		case 'pernambuco' : $uf = 'PE'; break;
		case 'piaui' : $uf = 'PI'; break;
		case 'parana' : $uf = 'PR'; break;
		case 'rio de janeiro' : $uf = 'RJ'; break;	
		case 'rio grande do norte' : $uf = 'RN'; break;
		case 'rondonia' : $uf = 'RO'; break;
		case 'roraima' : $uf = 'RR'; break;
		case 'rio grande do sul' : $uf = 'RS'; break;
		case 'santa catarina' : $uf = 'SC'; break;
		case 'sergipe' : $uf = 'SE'; break;
		case 'sao paulo' : $uf = 'SP'; break;
		case 'tocantins' : $uf = 'TO'; break;
		default: $uf = 'SP'; break;
	    }
	    return $uf;
	})();
	$.cookie("Skol.CidadeUsuario", $cidade, {expires: 7, path: '/', domain: $cookieDomain, secure: false});
	$.cookie("Skol.EstadoUsuario", $estado, {expires: 7, path: '/', domain: $cookieDomain, secure: false});
	if($.cookie("Skol.CidadeUsuarioID") == null){
	    $.ajax({
		dataType: 'jsonp',
		jsonp: 'callback',
		jsonpCallback: 'SkolUsuario',
		cache: true,
		url: $siteDomain + "/site/Municipios/VoltaCidade.ashx?estado=" + geoip_region_name() + "&cidade=" + $cidade,
		success: function(json) {
		    $.cookie("Skol.CidadeUsuarioID", json.id, { expires: 7, path: '/', domain: $cookieDomain, secure: false });
		    /*if($.cookie("Skol.CidadeUsuarioID") == '4885'){
			$(".boxRadioHome").addClass("compras");
			$(".blogAlternativo, .btnSocialBlog").hide();
			$(".compraColetiva, .boxFrameComprasColetivas, a.btnSocialBlog").show();
		    }*/
		}
	    });
	}else{
	    /*if($.cookie("Skol.CidadeUsuarioID") == '4885'){
		$(".boxRadioHome").addClass("compras");
		$(".blogAlternativo, .btnSocialBlog").hide();
		$(".compraColetiva, .boxFrameComprasColetivas, a.btnSocialBlog").show();
	    }*/
	}
	$cidade = ($cidade.length > 10) ? $cidade.substring(0,8) + "..." : $cidade;
	$cityName = function(s){
	    stringA = s.toLowerCase();
	    arrayA = stringA.split(" ");
	    stringC = "";
	    spacer = "";
	    for(i=0; i<arrayA.length; i++){
		stringB = arrayA[i];
		stringC += spacer + stringB.substr(0, 1).toUpperCase() + stringB.substr(1, stringB.length);
		spacer = " ";
	    }
	    return stringC = stringC.replace("De ", "de ").replace("Do ", "do ").replace("Da ", "da ");	
	}
	$(".boxCidade span.cidade").text($cityName($cidade) + "/" + $estado);
    });

    $("a.btnAlterarCidade").click(function(){
	if ($(".boxMudarCidade").is(":visible")) {
	    $(".boxMudarCidade").slideUp();
	    $("a.btnFecharMudaCidade").fadeOut();
	} else {
	    $(".boxMudarCidade").slideDown(function(){
		$("a.btnFecharMudaCidade").fadeIn();
	    });
	}
	return false;
    });
    $(".formMudaCidade").validate({ errorContainer: $(".formMudaCidade .msgError"), errorLabelContainer: $(".formMudaCidade .msgLabelError"),
	submitHandler: function() {
	    $(".boxMudarCidade").slideUp(function(){
		$cookieDomain = ($("#navHeader") != null && $("#navHeader").attr("rel")) ? $("#navHeader").attr("rel").split("|")[0] : "";
		$siteDomain = ($("#navHeader") != null && $("#navHeader").attr("rel") != null) ? $("#navHeader").attr("rel").split("|")[1] : "";
		$.cookie("Skol.CidadeUsuario", $("select[name='skolCidade'] option:selected").text(), { expires: 7, path: '/', domain: $cookieDomain, secure: false });
		$.cookie("Skol.CidadeUsuarioID", $("select[name='skolCidade']").val(), { expires: 7, path: '/', domain: $cookieDomain, secure: false });
		$.cookie("Skol.EstadoUsuario", $("select[name='skolEstado']").val(), { expires: 7, path: '/', domain: $cookieDomain, secure: false });
		setTimeout(function(){
		    location.reload(true);
		}, 500);
	    });
	    $.pageTracker("/skol/compracoletiva/"+ $("select[name='skolEstado']").val() +"/"+ $("select[name='skolCidade'] option:selected").text() +"/");
	}
    });
    $("a.btnFecharMudaCidade").click(function(){
	$("a.btnAlterarCidade").trigger("click");
	return false;
    });

    $("a.btnRadioFooter").each(function(){
	$siteDomain = ($("#navHeader") != null && $("#navHeader").attr("rel") != null) ? $("#navHeader").attr("rel").split("|")[1] : "";
	$getRadioSkolFooter = function(){
	    $.ajax({
		dataType: 'jsonp',
		jsonp: 'callback',
		jsonpCallback: 'RadioSkolFooter',
		cache: true,
		url: $siteDomain + '/site/radio/jsonRadio.ashx',
		success: function(data) {
		    $("a.btnRadioFooter").find(".song").text(data[0].song);
		    $("a.btnRadioFooter").find(".artist").text(data[0].artist);
		}
	    });
	}
	$getRadioSkolFooter();
	setInterval(function() {
	    $getRadioSkolFooter();
	}, 60000);
    });
    $("ul.playerRadio li a, a.btnDestacarSmall, a.btnRadioFooter, ul.navEstacaoHome li a").click(function(){
        $logado = ($.getUrlVar('logado') == 'true') ? 'true' : (($.cookie('Skol.CookieUsuario') != null) ? 'true' : 'false');
        $siteDomain = ($("#navHeader") != null && $("#navHeader").attr("rel") != null) ? $("#navHeader").attr("rel").split("|")[1] : "";
	$url = $(this).attr("href") + '&logado=' + $logado + '&domain=' + $siteDomain;
	_gaq.push(function() {
	    var pageTracker = _gat._getTrackerByName();
	    var playerDestacado = window.open(pageTracker._getLinkerUrl($url), 'radioSkol', 'width=812,height=406,toolbar=no');
	    playerDestacado.focus();
	});
	$.pageTracker("/skol/radioskol/popup");
        return false;
    });

    /* Logado header */
    $("a.btnMenuLogado").click(function(){
	if ($(".contentLogado").is(":visible")) {
	    $(".contentLogado").slideUp();
	    $("a.btnCloseLogado").fadeOut();
	} else {
	    $(".contentLogado").slideDown(function(){
		$("a.btnCloseLogado").fadeIn();
	    });
	}
	return false;
    });
    $("a.btnCloseLogado").click(function(){
	$("a.btnMenuLogado").trigger("click");
	return false;
    });
    /* Logado header */
    $(".percentual").percentbar();
    $(".estado").estadoCidade();
    $("body").tweetButton();
    $(".addthis_toolbox").each(function(){
	$addThisTitle = ($("meta[property='og:title']").attr("content")) ? $("meta[property='og:title']").attr("content") : $("head title").text();
	$addThisDescr = ($("meta[property='og:description']").attr("content")) ? $("meta[property='og:description']").attr("content") : $("meta[name='description']").attr("content");
	$(this).attr({"addthis:title": $addThisTitle, "addthis:description": $addThisDescr});
	$(this).find("a.orkut-share-button").attr("href", "http://promote.orkut.com/preview?nt=orkut.com&tt="+ $addThisTitle +"&du="+ window.location +"&cn="+ $addThisDescr +"&tn=" + $("meta[property='og:image']").attr("content"));
	addthis.init();
    });
});

(function($) {
    $.extend({
        cookie: function (key, value, options) {
	    if (arguments.length > 1 && (value === null || typeof value !== "object")) {
		options = $.extend({}, options);
		if (value === null) {
		    options.expires = -1;
		}
		if (typeof options.expires === 'number') {
		    var days = options.expires, t = options.expires = new Date();
		    t.setDate(t.getDate() + days);
		}
		return (document.cookie = [
		    encodeURIComponent(key), '=',
		    options.raw ? String(value) : encodeURIComponent(String(value)),
		    options.expires ? '; expires=' + options.expires.toUTCString() : '',
		    options.path ? '; path=' + options.path : '',
		    options.domain ? '; domain=' + options.domain : '',
		    options.secure ? '; secure' : ''
		].join(''));
	    }
	    options = value || {};
	    var result, decode = options.raw ? function (s) { return s; } : decodeURIComponent;
	    return (result = new RegExp('(?:^|; )' + encodeURIComponent(key) + '=([^;]*)').exec(document.cookie)) ? decode(result[1]) : null;
        },
        getCookieVars: function(valor) {
            var vars = [], hash;
            var hashes = valor.slice(valor.indexOf('?') + 1).split('&');
            for (var i = 0; i < hashes.length; i++) {
                hash = hashes[i].split('=');
                vars.push(hash[0]);
                vars[hash[0]] = hash[1];
            }
            return vars;
        },
        getCookieVar: function(name, valor) {
            return $.getCookieVars(valor)[name];
        },
	getUrlVars: function(){
	    var vars = [], hash;
	    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
	    for(var i = 0; i < hashes.length; i++){
		hash = hashes[i].split('=');
		vars.push(hash[0]);
		vars[hash[0]] = hash[1];
	    }
	    return vars;
	},
	getUrlVar: function(name){
	    return $.getUrlVars()[name];
	},
        pageTracker: function(slug) {
            return _gaq.push(['_trackPageview', slug]);
        }
    });

    $.fn.extend({ 
        percentbar: function() {
            return this.each(function() {
                $val = $(this).find(".percent").text();
                if ($val != ""){
                    $(this).find(".barra span").css("width", $val + "%");
                }
                if($val < 100){
                    $(this).find(".completeCadastro").show();
                }
            });
        },
        estadoCidade: function(settings) {
	    settings = $.extend({
		comboMunicipios: "select.cidade"
	    }, settings);
            return this.each(function() {
		$(this).change(function(){
		    $siglaUf = $(this).val();
		    $domain = $("#navHeader").attr("rel").split("|")[1];
		    if ($siglaUf != ""){
			$(settings.comboMunicipios).html('<option value="">Carregando...</option>');
			$.ajax({
			    dataType: 'jsonp',
			    jsonp: 'callback',
			    jsonpCallback: 'SkolCidade',
			    cache: true,
			    url: $domain + '/site/municipios/listarajax.ashx?siglaUf=' + $siglaUf,
			    success: function(data) {
				var list = "";
				$.each(data, function(index, itemData) {
				    var option = new Option(itemData.Nome, itemData.Id);
				    list += '<option value="'+ itemData.Id +'">'+ itemData.Nome +'</option>';
				});
				$(settings.comboMunicipios).html(list);
			    }
			});
		    }
		});
            });
        },
        tweetButton: function() {
	    return this.each(function() {
		$("a.twitter-share-button").each(function(){
		    $tweetURL = ($(this).attr('data-url')) ? $(this).attr('data-url') : window.location.href;
		    $tweetText = ($(this).attr('data-text')) ? $(this).attr('data-text') : (($("meta[name='tweet:text']").attr("content")) ? $("meta[name='tweet:text']").attr("content") : 'Confira o site da Skol e tenha acesso a um mundo de informações, promoções, baladas, músicas e muito mais. #skol');
		    $(this).attr("href", 'http://twitter.com/share?text=' + encodeURIComponent($tweetText) + '&lang=pt&url=' + $tweetURL);
		}).click(function(){
		    var w = 550;
		    var h = 450;
		    var left = (screen.availWidth/2)-(w/2);
		    var top = (screen.availHeight/2)-(h/2); 
		    settings = 'width='+ w +',height='+ h +',top='+ top +',left='+ left +',scrollbars=no,toolbar=no';
		    window.open($(this).attr("href"), 'Twitter',settings);
		    return false;
		});
	    });
	}/*,
        tweetButton: function() {
	    return this.each(function() {
		$("a.twitter-share-button").each(function(){
		    $(this).attr("data-text", $("meta[name='tweet:text']").attr("content"));
		});
		var twitterWidgets = document.createElement('script');
		twitterWidgets.type = 'text/javascript';
		twitterWidgets.async = true;
		twitterWidgets.src = 'http://platform.twitter.com/widgets.js';
		document.getElementsByTagName('head')[0].appendChild(twitterWidgets);
	    });
	}*/
    });

})(dom.rex);


/*
 * Metadata - jQuery plugin for parsing metadata from elements
 * Revision: $Id: jquery.metadata.js 4187 2007-12-16 17:15:27Z joern.zaefferer $
 */
(function($) {
    $.extend({
        metadata : {
            defaults : {
                type: 'class',
                name: 'metadata',
                cre: /({.*})/,
                single: 'metadata'
            },
            setType: function( type, name ){
                this.defaults.type = type;
                this.defaults.name = name;
            },
            get: function( elem, opts ){
                var settings = $.extend({},this.defaults,opts);
                if ( !settings.single.length ) settings.single = 'metadata';
                
                var data = $.data(elem, settings.single);
                if ( data ) return data;
                
                data = "{}";
                
                if ( settings.type == "class" ) {
                    var m = settings.cre.exec( elem.className );
                    if ( m )
                        data = m[1];
                } else if ( settings.type == "elem" ) {
                    if( !elem.getElementsByTagName )
                        return undefined;
                    var e = elem.getElementsByTagName(settings.name);
                    if ( e.length )
                        data = $.trim(e[0].innerHTML);
                } else if ( elem.getAttribute != undefined ) {
                    var attr = elem.getAttribute( settings.name );
                    if ( attr )
                        data = attr;
                }
                
                if ( data.indexOf( '{' ) <0 )
                data = "{" + data + "}";
                
                data = eval("(" + data + ")");
                
                $.data( elem, settings.single, data );
                return data;
            }
        }
    });
    $.fn.metadata = function( opts ){
        return $.metadata.get( this[0], opts );
    };


    /**
     * @example $.cookieNew('the_cookie');
     * @desc Get the value of a cookie.
     *
     * @example $.cookieNew('the_cookie', 'the_value');
     * @desc Set the value of a cookie.
     *
     * @example $.cookieNew('the_cookie', 'the_value', { expires: 7, path: '/', domain: 'jquery.com', secure: true });
     * @desc Create a cookie with all available options.
     *
     * @example $.cookieNew('the_cookie', 'the_value');
     * @desc Create a session cookie.
     *
     * @example $.cookieNew('the_cookie', null);
     * @desc Delete a cookie by passing null as value. Keep in mind that you have to use the same path and domain used when the cookie was set.
     */
    $.cookieNew = function (key, value, options) {
        if (arguments.length > 1 && (value === null || typeof value !== "object")) {
            options = $.extend({}, options);
            if (value === null) {
                options.expires = -1;
            }
            if (typeof options.expires === 'number') {
                var days = options.expires, t = options.expires = new Date();
                t.setDate(t.getDate() + days);
            }
            return (document.cookie = [
                encodeURIComponent(key), '=',
                options.raw ? String(value) : encodeURIComponent(String(value)),
                options.expires ? '; expires=' + options.expires.toUTCString() : '',
                options.path ? '; path=' + options.path : '',
                options.domain ? '; domain=' + options.domain : '',
                options.secure ? '; secure' : ''
            ].join(''));
        }
        options = value || {};
        var result, decode = options.raw ? function (s) { return s; } : decodeURIComponent;
        return (result = new RegExp('(?:^|; )' + encodeURIComponent(key) + '=([^;]*)').exec(document.cookie)) ? decode(result[1]) : null;
    };


})(dom.rex);
