// Copyright 2006-2009 Otto de Voogd
//
// Link, button and banner generation code
// for Fire up the Fox!

var lt = unescape("%3C")
var gt = unescape("%3E")
var qt = unescape("%22")

var primUrl_noid="http://www.mozilla.com/firefox/";
var primUrl_beg="http://www.spreadfirefox.com/node&amp;id=";
var primUrl_end="&amp;t=209";
var primTitl="Get Firefox!";

var altUrl_noid="http://www.fireupthefox.com/";
var altUrl_beg="http://www.fireupthefox.com/?id=";
var altUrl_end="";
var altTitl="Fire up the Fox!";

function generateFutfLink(input) {

	// Set default values
	var SFxId=""
	var primUrl=primUrl_noid;
	var altUrl=altUrl_noid;
	var primImg='';
	var altImg='';
	var noscript='alt';

	// Is an SFx ID being used.
	if (typeof(input.SFx_ID)!="undefined") {
		SFxId=input.SFx_ID.value;
		if (SFxId.length>0) {
			primUrl=primUrl_beg+SFxId+primUrl_end;
			altUrl=altUrl_beg+SFxId+altUrl_end;
		}
	}

	// Determine the primary button/banner
	if (typeof(input.prim_but)!="undefined") {
		var plen=input.prim_but.length;
		for (i=0; i<plen; i++){
			if(input.prim_but[i].checked) {
				primImg=input.prim_but[i].value;
			}
		}
	}
	if (''==primImg) {
		alert("ERROR: Please choose a primary button or banner!");
		return 0;
	}

	// Determinve the alternative button/banner
	if (typeof(input.alt_but)!="undefined") {
		var alen=input.alt_but.length;
		for (i=0; i<alen; i++){
			if(input.alt_but[i].checked) {
				altImg=input.alt_but[i].value;
			}
		}
	}
	if (''==altImg) {
		alert("ERROR: Please choose an alternative button or banner!");
		return 0;
	}

	if (typeof(input.noscript)!="undefined") {
		var len=input.noscript.length;
		for (i=0; i<len; i++){
			if(input.noscript[i].checked) {
				noscript=input.noscript[i].value;
			}
		}
	}

	// Generate the codes

	if (typeof(input.output)!="undefined") {
		// A single output box to fill
		var olen=input.output.length;
		var op='';
		for (i=0; i<olen; i++){
			if(input.output[i].checked) {
				op=input.output[i].value;
			}
		}
		if ("HTML"==op) {
			input.code.value=generateHTMLcode(primUrl,primImg,primTitl,altUrl,altImg,altTitl,'',noscript);
		} else if ("XHTML"==op) {
			input.code.value=generateHTMLcode(primUrl,primImg,primTitl,altUrl,altImg,altTitl,' /',noscript);
		} else if ("PHP"==op) {
			input.code.value=generatePHPcode(primUrl,primImg,primTitl,altUrl,altImg,altTitl);
		} else if ("URLS"==op) {
			input.code.value=primUrl+'\n'+altUrl;
		} else {
			alert("ERROR: Please choose the type of code you want!");
		}
	} else {
		// Fill several possible output boxes (if they exist)
		if (typeof(input.plain_linkcode)!="undefined") {
			input.plain_linkcode.value=primUrl+'\n'+altUrl;
		}
		if (typeof(input.html_linkcode)!="undefined") {
			input.html_linkcode.value=generateHTMLcode(primUrl,primImg,primTitl,altUrl,altImg,altTitl,'',noscript);
		}
		if (typeof(input.xhtml_linkcode)!="undefined") {
			input.xhtml_linkcode.value=generateHTMLcode(primUrl,primImg,primTitl,altUrl,altImg,altTitl,' /',noscript);
		}
		if (typeof(input.php_linkcode)!="undefined") {
			input.php_linkcode.value=generatePHPcode(primUrl,primImg,primTitl,altUrl,altImg,altTitl);
		}
	}
}

// Subfunctions for Generation
function genHTMLlinkedImg(noscript,iclass,url,img,titl,xadd) {
	var noscript_start='';
	var noscript_end='';
	var imgclass='';
	var dispnone='';
	if (''!=noscript) {
		noscript_start=lt+'noscript'+gt;
		noscript_end=lt+'/noscript'+gt;
	}
	if (''!=iclass) {
		imgclass=' class="'+iclass+'"';
		dispnone='display:none;';
	}
	return noscript_start+lt+'a href="'+url+'" title="'+titl+'"'+gt+lt+'img'+imgclass+' src="'+img+'" alt="'+titl+'" style="border:none;'+dispnone+'"'+xadd+gt+lt+'/a'+gt+noscript_end+'\n';
}

// Generate HTML Code (Display switching)
function generateHTMLcode(primUrl,primImg,primTitl,altUrl,altImg,altTitl,xadd,noscript) {
	var html_code=''
	+ genHTMLlinkedImg('','dynPrimImg',primUrl,primImg,primTitl,xadd)
	+ genHTMLlinkedImg('','dynAltImg',altUrl,altImg,altTitl,xadd)
	+ lt+'script type="text/javascript"'+gt+lt+'!--\n'
	+ 'var ua=navigator.userAgent.toLowerCase();\n'
	+ "function Display(c){var t=document.getElementsByTagName('img');for(var i=0;i<t.length;i++) if(c==t[i].className) t[i].style.display='inline';}\n"
	+ "if(0<=ua.indexOf('firefox')||0<=ua.indexOf('bonecho')||0<=ua.indexOf('minefield')||0<=ua.indexOf('granparadiso')||0<=ua.indexOf('shiretoko')||0<=ua.indexOf('namoroka')) Display('dynAltImg');else Display('dynPrimImg');"
	+ '\n//--'+gt+lt+'/script'+gt+'\n';
	if ('alt'==noscript) {
		html_code+=genHTMLlinkedImg('noscript','',altUrl,altImg,altTitl,xadd);
	} else {
		html_code+=genHTMLlinkedImg('noscript','',primUrl,primImg,primTitl,xadd);
	}
	return html_code;
}

// Generate PHP Linked Image
function genPHPlinkedImg(url,img,titl) {
	return '<a href="'+url+'" title="'+titl+'"><img src="'+img+'" alt="'+titl+'" style="border:none;"></a>';
}

// Generate PHP Code
function generatePHPcode(primUrl,primImg,primTitl,altUrl,altImg,altTitl) {
	var php_code='<?php '
	+ "if(!preg_match('/(firefox|bonecho|minefield|granparadiso|shiretoko|namoroka)/i',$_SERVER['HTTP_USER_AGENT'])){"
	+ "print '"+genPHPlinkedImg(primUrl,primImg,primTitl)
	+ "';}else{print '"+genPHPlinkedImg(altUrl,altImg,altTitl)+"';} ?>";
	return php_code;
}

// That's all Folks!
