//version 2.4.Z (this version is specially adapted for Zeit integration)
//DO NOT USE FOR SITES OTHER THAN ZEIT!

function addEvent2( obj, type, fn )  {
              if (obj.addEventListener) {
                   obj.addEventListener( type, fn, false );
                   } 
              else if (obj.attachEvent) {
                   obj["e"+type+fn] = fn;
                   obj[type+fn] = function() { 
                       obj["e"+type+fn]( window.event ); 
                       }
                   obj.attachEvent( "on"+type, obj[type+fn] );
                   }
      }

function paramforward(){
        var i,
	    r,
	    qp,
	    q = window.location.search.substring(1),
	    referer = document.referrer;

	try {
		qp = window.parent.location.search.substring(1);
	} catch(err) {}

	//

	/* referer part */
	var myRef = (referer.match(/.*(google|yahoo|bing)[^\/]*.\//gi) +'').replace(/http:\/\//gi,'').replace(/\//gi,'');
	var myKeywords;
	var myAppendSEO='';
	if (myRef && myRef != "null") {
		myAppendSEO = 'SEO:' + myRef;
		if (referer.match(/google|bing/gi)) { myKeywords = referer.match(/[\?|&]q=[^&$]*/i)+''; }
		if (referer.match(/yahoo/gi)) { myKeywords = referer.match(/[\?|&]p=[^&$]*/i)+''; }
		if (myKeywords && myKeywords != "null") {
			myKeywords = myKeywords.replace('p=','').replace('q=','').replace('?','').replace('&','');
			myAppendSEO += '-Zeit:' + myKeywords;
		}
	}
	/* end referer part */

	//Use "Zeit"-pscode if no params exists
	var myAppendZeit='';
	if (!q && !qp && (!myRef || myRef == "null")) {
    myAppendZeit = "01_100_20003_0411_0001_0323_nano"; }

	var a = document.getElementsByTagName('a'),
	    f = document.forms,
	    s = document.getElementsByTagName('iframe');

	var fix = function() {
			if (arguments[0]) {
				return unescape(arguments[0]).replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(/"/g,'&quot;');
			}
			else { return null; }
		}

	if (qp) {
		if (qp = fix((qp = qp.match(/pscode=[^&$]*/i)) ? qp.toString(): void(0))) { r = qp; }
	}
	if (q) {
		if (q = fix((q = q.match(/pscode=[^&$]*/i)) ? q.toString(): void(0))) { r = q; }
	}

	if (r || myAppendSEO || myAppendZeit) {

		/* Append SEO to pscode */
		if (!r && myAppendSEO) {
			r = "pscode=" + myAppendSEO;
		} else if (!r && !myAppendSEO) {
			r = "pscode=" + myAppendZeit;
		}

		for(i = 0; i < a.length; i++) {
			a[i].href += (a[i].href.indexOf('?') == -1) ? '?' + r: '&' + r;
		}

		for(i = 0; i < f.length; i++) {
			f[i].action += (f[i].action.indexOf('?') == -1) ? '?' + r: '&' + r;
		}

		for(i = 0; i < s.length; i++) {
			s[i].src += (s[i].src.indexOf('?') == -1) ? '?' + r: '&' + r;

			//force reload iframe at execution time
			try {
				if (typeof( forceIframeReload ) != 'undefined' && forceIframeReload) {
					s[i].location.href(s[i].src);
				}
			} catch(err) {}
		}
	}
}
addEvent2(window, "load", paramforward);
