

/*
   * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
   *                                                                         *
   *                     Threadless profilr ( v0.1.3b )                      *
   *                              JAVA SCRIPT                                *
   *                                                                         *
   * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*/

// preloading some images...
var preload1 = new Image();
preload1.src = "/img/pinkarrow.gif";
var preload2 = new Image();
preload2.src = "/img/nav_overlay.gif";

// old browsers / equal to or better than firefox 2
var b = browser(); var v = parseFloat(b.substr(2, 3)); b = b.substr(0, 2);
var old = (b == 'NS' || (b == 'FF' && v < 1.5) || (b == 'IE' && v < 6) || (b == 'OP' && v < 9) || (b == 'AS' && v < 2)) ? true : false;
var ff2 = (b.substr(0, 2) == "FF" && v > 1.99) ? true : false;

// set source of images
function setImg(url) {
	$('minizoom').src = $('tnimg50').src = $('tnimg40').src = $('tnimg25').src = url;
}

// changes minizoom and thumbnails of shirts
function swap(val) {
	var parts = val.split("|");
	var pid = parts[0];
	if (pid == 0) {
		var pic = "/img/def.gif";
		$('12club').hide();
	}
	else if (pid == 194) {
		var pic = "http://media.threadless.com/product/194/minizoom.jpg";
		$('12club').show();
	}
	else {
		var pic = "http://media.threadless.com/product/"+pid+"/minizoom.jpg";
		$('12club').hide();
	}
	setImg(pic);
}

// changes minizoom and thumbnails of 12club shirts
function swap12(val) {
	var parts = val.split("|");
	var date = parts[0];
	var pic = (date == 0000) ? "http://media.threadless.com/product/194/minizoom.jpg" : "http://media.threadless.com/product/194/"+date+"/minizoom.jpg";
	setImg(pic);
}

// checks radio buttons
function mark(tnsize) {
	if ($('profcode').value == "" && $('preview').innerHTML == "") {
		$(tnsize).checked = true;
	}
	return false;
}

// enables radio buttons (contains workaround for IE)
function radioEn() {
	(document.all) ? $('radioIE').hide() : $('profilr').getInputs('radio', 'tnsize').invoke('enable');
}

// disables radio buttons (contains workaround for IE)
function radioDis() {
	if (document.all) {
		$('radioIE').show();
		$('tnsize40').removeAttribute("tabIndex");
	}
	else {
		$('profilr').getInputs('radio', 'tnsize').invoke('disable');
	}
}

// adds thumbnails to preview and textarea
function append() {
	var wrong = false; var url, pic, title, w, h;
	var string = decodeURI($('profilr').serialize());
	var parts = string.split("&");
	var pid = parts[0]; pid = pid.split("="); pid = pid[1];
		pid = pid.split("|"); pidval = pid[0]; ptitle = pid[1];
	var club = parts[1]; club = club.split("="); club = club[1];
		club = club.split("|"); clubval = club[0]; ctitle = club[1];
	var stp = parts[(parts.length-1)]; stp = stp.split("="); var stpval = stp[1];

	if (pidval == 0 || (pidval == 194 && clubval == 0000)) {
		wrong = true;
	}
	else if (pidval == 194) {
		url = "12club/"+clubval+"/";
		pic = "194/"+clubval+"/";
		title = unescape(ctitle);
	}
	else {
		url = "product/"+pidval+"/1/";
		pic = "50x54/"+pidval+"-";
		title = unescape(ptitle);
	}

	var w = 40; var h = 43;
	if ($('tnsize50').checked == true) {
		w = 50; h = 54;
	}
	else if ($('tnsize25').checked == true) {
		w = 25; h = 27;
	}

	if (stpval != "" && stpval.search(/(<|>|'|")+/) == -1) {
		url = url+"?streetteam="+stpval;
	}

	if (wrong) {
		alert("Please select a shirt!");
	}
	else {
		new Insertion.Bottom('preview', '<a href="http://www.threadless.com/'+url+'" target="_blank"><img src="http://media.threadless.com/product/'+pic+'minizoom.jpg" width="'+w+'" height="'+h+'" border="0" alt="'+title+'" title="'+title+'" /></a>');
		var pre = $('comment_pre').innerHTML;
		var suf = $('comment_suf').innerHTML;
		var preview = $('preview').innerHTML;
		var code = pre + preview + suf;
		$('profcode').value = code;
		radioDis();
		warn();
	}
}

// performs append() when enter key is pressed
function enter(e) {
	var evt = e || window.event;
	var keynum = evt.which || evt.keyCode;
	if (keynum == 13) append();
}

// tests download form
function testDown() {
	if ($('preview').innerHTML == "") {
		return false;
	}
	else {
		warno();
		return true;
	}
}

// tests upload form
function testUp() {
	if ($('userfile').value == "") {
		return false;
	}
	else if ($('preview').innerHTML != "") {
		warn();
		return true;
	}
}

// clears preview and textarea, resets forms
function clearReset() {
	if ($('profcode').value != "") {
		if (confirm("Do you really want to delete all generated code? There's no way back...\n\nUse the button \"Download Code\" first to save the list.\n ")) {
			$('preview').innerHTML = "";
			$('profcode').value = "";
			radioEn();
			$('profilr').reset();
			swap('0|0');
			$('userfile').value = "";
			tnval = 0;
			warno();
		}
	}
	else {
		$('profilr').reset();
		swap('0|0');
		$('userfile').value = "";
		tnval = 0;
	}
}

// tests (rudimentarily) if page was reloaded
function testReload() {
	if ($('pid').value != "0|0") {
		if ($('pid').value == "194|12 Month Subscription") {
			$('12club').show();
			swap12($('pid12').value);
		}
		else {
			swap($('pid').value);
		}
	}
	if ($('profcode').value != "") {
		$('preview').innerHTML = $('profcode').value.substring($('comment_pre').innerHTML.length, ($('profcode').value.length - $('comment_suf').innerHTML.length));
		warn();
	}
}

// tests if logo was clicked
function testLogo() {
	if ($('profcode').value != "") {
		warn();
		return true;
	}
}

// disables page reloads
function warn() {
	window.onbeforeunload = function() {
		return "Uploading a code file and reloading the page deletes the currently generated content!";
	};
}
function warno() {
	window.onbeforeunload = null;
}
var ctrlKey = false;
function disable(evt) {
	if ($('preview').innerHTML != "") {
		if (typeof evt.stopPropagation != 'undefined') {
			evt.stopPropagation();
			evt.preventDefault();
		}
		else {
			evt.returnValue = false;
			evt.cancelBubble = true;
		}
		warn();
	}
}
document.onkeydown = keyCheck;
function keyCheck(evt) {
	var event = evt || window.event;
	var keyID = event.which || event.keyCode;
	switch(keyID) {
		case 17:
			ctrlKey = true;
			break;
		case 82:
			if (ctrlKey && ff2 == false) disable(event);
			else warno();
			break;
		case 116:
			if (ff2 == false) disable(event);
			else warno();
			break;
	}
}
document.onkeyup = keyReset;
function keyReset(evt) {
	var event = evt || window.event;
	var keyID = event.which || event.keyCode;
	switch(keyID) {
		case 17:
			ctrlKey = false;
			break;
	}
}

// gets browser name and version (uses navigator.appName, .appVersion, .userAgent and window.opera)
function browser() {
	var v, b; var nan = navigator.appName; var nua = navigator.userAgent; var nav = navigator.appVersion;
	if (nan == 'Netscape') {
		if (nua.search(/Firefox/) != -1) {
			// Firefox
			if (nua.search(/\/1\.5/) != -1) v = '1.5'; // 1.5 has to be first!
			else if (nua.search(/\/1\./) != -1) v = '1.0';
			else if (nua.search(/\/2\./) != -1) v = '2.0';
			else if (nua.search(/\/3\./) != -1) v = '3.0';
			b = 'FF'+v;
		}
		else if (nua.search(/Netscape/) != -1) {
			// Netscape
			if (nua.search(/\/6\./) != -1) v = '6.0';
			else if (nua.search(/\/7\./) != -1) v = '7.0';
			else if (nua.search(/\/8\./) != -1) v = '8.0';
			else if (nua.search(/\/9\./) != -1) v = '9.0';
			b = 'NS'+v;
		}
	}
	else if (nua.search(/AppleWebKit/) != -1) {
		// Apple Safari
		if (nua.search(/\/1\./) != -1) v = '1.0';
		else if (nua.search(/\/2\./) != -1) v = '2.0';
		else if (nua.search(/\/3\./) != -1) v = '3.0';
		b = 'AS'+v;
	}
	else if (window.opera) {
		// Opera
		if (nua.search(/Opera.6\./) != -1) v = '6.0';
		else if (nua.search(/Opera.7\./) != -1) v = '7.0';
		else if (nua.search(/Opera.8\./) != -1) v = '8.0';
		else if (nav.substring(0, 1) == '9') v = '9.0';
		b = 'OP'+v;
	}
	else if (nan == 'Microsoft Internet Explorer' && document.all && !window.opera) {
		// Internet Explorer
		if (nav.search(/MSIE.4\./) != -1) v = '4.0';
		else if (nav.search(/MSIE.5\./) != -1) v = '5.0';
		else if (nav.search(/MSIE.6\./) != -1) v = '6.0';
		else if (nav.search(/MSIE.7\./) != -1) v = '7.0';
		else if (nav.search(/MSIE.8\./) != -1) v = '8.0';
		b = 'IE'+v;
	}
	return b;
}
