/**
 * 	This script fetchs the $_GET['partnerId].
 * 	If partnerID=X is found (and valid), a background is added to body (class="partner_X"), and a centered <a><span class="partnerHeader_X"></span></a> is also
 * 	added.
 * 	I have to call getPartner with a delay otherwise document.body is null
 *
 * 	@author Yvan Volochine . 200902
 *
 */

$(document).ready(function(){
	loadRequiredPluginsAndExecute(getPartner);
});

function getPartner() {

    if (typeof(partnerShown) == 'undefined') {
        partnerShown = true;
    } else {
        return;
    }

	var partner = getGet("partnerId"); // get $_GET
	var locale = getLocale();
	var links = new Object();
	links.com = new Array();
	links.de = new Array();
	links.es = new Array();
	links.fr = new Array();
	links.nl = new Array();
	links.pl = new Array();
	links.PL = new Array();
	links.se = new Array();
	links.pt = new Array();
	links.ru = new Array();
	links.com[1] = 'http://www.mygames.co.uk';
	links.com[3] = 'http://www.agame.com';
	links.com[4] = 'http://www.onrpg.com';
	links.de[1] = 'http://www.spielen.com';
	links.de[2] = 'http://www.spielaffe.de';
	links.de[4] = 'http://www.spielaffe.de';
	links.es[1] = 'http://www.zapjuegos.com';
	links.fr[1] = 'http://www.jeu.fr';
	links.nl[1] = 'http://www.spel.nl';
	links.pl[1] = 'http://www.minigry.pl';
	links.se[1] = 'http://www.spel.se';

	if(locale == 'en') locale = 'com';

	if ( typeof(links[locale]) != 'undefined' && typeof(links[locale][partner]) != 'undefined' ) { // Current partner exists with current locale

        if (partner == 1 && (locale == 'de' || locale == 'se' || locale == 'es' || locale == 'com' || locale == 'fr' || locale == 'nl')) {

            var dir = '/partners/spielen-com/' + locale + '/';

            if (inBlog()) {
                dir = 'http://www.panfu.' + locale + dir;
            }

            var iframeHeader = '<iframe id="spielenComHeader" src="' + dir + 'header.html" style="position: absolute; left: 0;" width="100%" height="106" border="0" style="border: 0;" scrolling="no" frameBorder="0" marginwidth="0" marginheight="0"></iframe><div style="height: 106px; clear: both;">&nbsp;</div>';
            var iframeFooter = '<iframe id="spielenComFooter" src="' + dir + 'footer.html" style="position: absolute; left: 0;" width="100%" height="148" border="0" style="border: 0;" scrolling="no" frameBorder="0" marginwidth="0" marginheight="0"></iframe>';

            if ($("#boxPage").length) {
                // shop

                $("#boxPage").prepend(iframeHeader);
                $("#boxPage").append(iframeFooter);
            } else {

                $("body").prepend(iframeHeader);

                if ($("#header .payment").length) {
                    // delete margin for payment
                    $("body").css('marginTop', '0');
                }

                if ($("#anmeldung_wrapper").length) {
                    // anmeldung page
                    $("body").css('marginTop', '0');
                    $("#anmeldung_wrapper").css('marginTop', '5px');
                }

                $("body").append(iframeFooter);
            }

            // fix for IE6
            if ($.browser.msie && $.browser.version == "6.0") {
                $("#spielenComHeader").css("width", $(document).width() - 20);
                $("#spielenComFooter").css("width", $(document).width() - 20);
            }

        } else {
            var link = links[locale][partner];

            // Special case DE (Moritz asked for partnerId=4 and all was already setup for partnerId=2)
            // Also, CSS class 'partner_4' has a different background (forr .com) so I keep 'partner_2' class for DE partnerId=4
            // Be careful if you have to implement a partnerId=2 on DE then !
            var special_span = ( (partner == 4) && (locale == 'de') ) ? ' style="background: transparent url(http://cdn.kaisergames.de/images/affiliate/header1px.gif) repeat scroll; width: 100%;"><img src="http://cdn.kaisergames.de/images/affiliate/sa_head_bg.gif" alt="" />' : '>';
            partner = ( (partner == 4) && (locale == 'de') ) ? 2 : partner;

            var span_name = '';

            var url_prefix = '';

            if (inBlog()) {
                url_prefix = 'http://www.panfu.' + locale2domain(locale);
            }

            span_name = (partner == 1)
                ? '<img src="' + url_prefix + '/images/partners/partner'+partner+'_header_'+locale+'.gif" alt="" /></a></center>'
                : '<span class="partnerHeader_'+partner+'"'+special_span+'</span></a></center>';

            var header = '<center><a href="'+links[locale][partner]+'" target="_blank">';
            header += span_name;

            // AAAAAAAAAAAAAAAARGHHHHHHHHHHHHHH!!!!!!!!! Otherwise it's too nested, so the link doesn't work in IE.. Fix in a nicer way someday!
            if (locale == 'de' && partner == 2) {
                header = '<center><span style="background: transparent url(http://cdn.kaisergames.de/images/affiliate/header1px.gif) repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; width: 100%;" class="partnerHeader_2"><a target="_blank" href="http://www.spielaffe.de"><img alt="" src="http://cdn.kaisergames.de/images/affiliate/sa_head_bg.gif"/></a></span></center>';
            }

            if (locale =='pl' && partner == 1) {
                header ='<center id="grypl"><div id="menu_container"><div id="menu"><ul><li><a target="_parent" href="http://www.gry.pl/">Strona główna</a></li><li><a target="_parent" href="http://www.gry.pl/gry/nowe.html">Nowe Gry</a></li><li><a target="_parent" href="http://www.gry.pl/gry/popularne.html">Popularne</a></li><li><a target="_parent" href="http://www.gry.pl/gry/mojegry.html">Moje Gry</a></li></ul></div><div id="menu2"><ul><li><div id="navisearch"><form onsubmit="return checkSearchField(\'searchtopmenu\', \'search\', 3);" target="_parent" action="http://www.gry.pl/search.php" method="get" name="searchtopmenu" id="searchtopmenu"><table width="100%" cellspacing="3" cellpadding="0" border="0"><tbody><tr><td width="65"><img height="10" width="65" border="0" title="" alt="" src="' + url_prefix + '/images/partners/partner_grypl/spacer.gif"/></td><td width="85"><div class="google_search_input"><input type="text" value="" class="input" maxlength="255" name="search"/></div></td><td width="50"><div class="search_btns"><input type="submit" style="height: 21px; width: 87px;" value="Szukaj" id="sbb"/></div></td></tr></tbody></table></form></div></li></ul></div><div class="menuhover"><a target="_parent" href="http://www.gry.pl"><img height="100%" width="100%" border="0" title="Zagraj w darmowe gry online na Gry.pl" alt="Zagraj w darmowe gry online na Gry.pl" src="' + url_prefix + '/images/partners/partner_grypl/spacer.gif"/></a></div><div class="menutext"><h1><b>Zagraj w darmowe gry online na Gry.pl</b></h1></div><div id="dragon"/><div id="site_top_right"></div></div></center>';
                $('body').addClass('partner_grypl');
            } else {
                $('body').addClass('partner_'+partner);
            }

            if ($('#main').length) {
                $('#main').before(header);
            } else if ($("#header").length) {
                $("#header").before(header);
            } else {
                $('body').prepend(header);
            }
        }

        addPartnerIdToLinks();
	}
}


function getGet( name ) {
	name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
	var regexS = "[\\?&]"+name+"=([^&#]*)";
	var regex = new RegExp( regexS );
	var results = regex.exec( window.location.href );
	if( results == null )
		return null;
	else
		return results[1];
}


function getLocale() {
    var locale;
    var host = $.url.attr('host');

    if ((host.indexOf('localhost') >= 0 || host.indexOf('debby') >= 0) && getGet('langId') != null) {
        locale = getGet("langId").toLowerCase();
    } else {
        locale = host.substring(host.lastIndexOf('.')+1);
    }

	return locale;
}

function inBlog() {
    var url = window.location.href;
    var regex = new RegExp("blog.panfu");
    var result = regex.exec(url);

    return result != null && result.length != 0;
}

function locale2domain(locale) {
    if (locale == 'pt') {
        return 'com.pt';
    }

    if (locale == 'en') {
        return 'com';
    }

    return locale;
}

var checkSearchField = function(formname, searchfield, length) { 
	var temp = eval('document.'+formname+'.elements[\''+searchfield+'\']').value; 
	temp = temp.replace(/ /g, '');
	if( temp.length < length ) {
		alert('Please enter at least 3 characters');
		return false; }
	return true;
}

function addPartnerIdToLinks() {
    $("a").each(function(value) {
        var partnerId = $.url.param("partnerId");

        if (partnerId && $(this).attr("href") && $(this).attr("href").indexOf("partnerId") == -1) {
            var url = $(this).attr("href");
            var anchor = '';

            if (url.indexOf("#") > 0) {
                anchor = url.substring(url.indexOf("#") + 1);
                url = url.substring(0, url.indexOf("#"));
            }

            if (url.indexOf("?") == -1) {
                url += '?';
            } else {
                url += '&';
            }

            $(this).attr("href", url + "partnerId=" + partnerId + (anchor.length ? '#' + anchor : ''));
        }
    });
}

function loadRequiredPluginsAndExecute(method) {
    if (!$.url) {
        var scriptUrl = '/js/jquery.url.packed.js';

        if (inBlog()) {
            scriptUrl = 'http://www.panfu.' + locale2domain(getLocale()) + scriptUrl;
        }

        $.getScript(scriptUrl, function() {
            setTimeout(method, 100);
        });
    } else {
        method();
    }
}
