if (!String.prototype.rot13) {
	String.prototype.rot13 = function() {
		return this.replace(/[a-zA-Z]/g, function(c) {
			return String.fromCharCode((c <= "Z" ? 90 : 122) >= (c = c.charCodeAt(0) + 13) ? c : c - 26);
		});
	};
}

function storedhref(inobj, place) {
	inobj.href = outhref[place].rot13();
}

function initsignature() {
	// Init clipboard copier
	clip = null;
	init();

	var sigformobject = document.forms["signaturegenerator"].elements;

	// Step 1
	var ContrastObject = new Slider("contrast_slider", "contrast_knob", {
		steps: 10,
		range: [-5,5],
		snap: true,

		//callback events
		onChange: function(step){
			$("contrast_upd").set("html", step);
			sigformobject["contrast"].value = step;
		}
	}).set(-3);


	// Step 2
	var mainSizeObject = new Slider("mainsize_slider", "mainsize_knob", {
		steps: 90,
		range: [16],
		snap: true,

		//callback events
		onChange: function(step){
			$("mainsize_upd").set("html", step);
			sigformobject["main[size]"].value = step;
		}
	}).set(48);

	var optSizeObject = new Slider("optsize_slider", "optsize_knob", {
		steps: 90,
		range: [16],
		snap: true,

		//callback events
		onChange: function(step){
			$("optsize_upd").set("html", step);
			sigformobject["opt[size]"].value = step;
		}
	}).set(24);


	// Step 3
	var mainThicknessObject = new Slider("mainoutthick_slider", "mainoutthick_knob", {
		range: [0,5],
		snap: true,

		//callback events
		onChange: function(step){
			$("mainoutthick_upd").set("html", step);
			sigformobject["main[outthick]"].value = step;
		}
	}).set(2);

	var mainXaxisObject = new Slider("mainxaxis_slider", "mainxaxis_knob", {
		range: [0,100],
		snap: true,

		//callback events
		onChange: function(step){
			$("mainxaxis_upd").set("html", step);
			sigformobject["main[xaxis]"].value = step;
		}
	}).set(10);

	var mainYaxisObject = new Slider("mainyaxis_slider", "mainyaxis_knob", {
		range: [0,100],
		snap: true,

		//callback events
		onChange: function(step){
			$("mainyaxis_upd").set("html", step);
			sigformobject["main[yaxis]"].value = step;
		}
	}).set(55);

	var mainAngleObject = new Slider("mainangle_slider", "mainangle_knob", {
		range: [-10,10],
		snap: true,

		//callback events
		onChange: function(step){
			$("mainangle_upd").set("html", step);
			sigformobject["main[angle]"].value = step;
		}
	}).set(0);


	var optThicknessObject = new Slider("optoutthick_slider", "optoutthick_knob", {
		range: [0,5],
		snap: true,

		//callback events
		onChange: function(step){
			$("optoutthick_upd").set("html", step);
			sigformobject["opt[outthick]"].value = step;
		}
	}).set(2);

	var optXaxisObject = new Slider("optxaxis_slider", "optxaxis_knob", {
		range: [0,100],
		snap: true,

		//callback events
		onChange: function(step){
			$("optxaxis_upd").set("html", step);
			sigformobject["opt[xaxis]"].value = step;
		}
	}).set(10);

	var optYaxisObject = new Slider("optyaxis_slider", "optyaxis_knob", {
		range: [0,100],
		snap: true,

		//callback events
		onChange: function(step){
			$("optyaxis_upd").set("html", step);
			sigformobject["opt[yaxis]"].value = step;
		}
	}).set(90);

	var optAngleObject = new Slider("optangle_slider", "optangle_knob", {
		range: [-10,10],
		snap: true,

		//callback events
		onChange: function(step){
			$("optangle_upd").set("html", step);
			sigformobject["opt[angle]"].value = step;
		}
	}).set(0);

	// Generate button
	$("signaturegenerator").addEvent("submit", function(e) {
		e.stop();
		this.action = "/ajax/gateway.php";
		this.set("send", {
			onRequest: function() { },
			onComplete: function(responseText) {
				var signaturehash = JSON.decode(responseText);
				var signatureurl = "http://"+ hostlocation +"/signature/"+ signaturehash +".jpg";
				$("previewimage").set("html","<img src=\""+ signatureurl +"\" />");

				sigformobject["signaturecode"].value = "[url=http://"+ hostlocation +"/][img]"+ signatureurl +"[/img][/url]";
				// Hidden clip clicker to reposition
				clip.reposition("d_clip_button");
			}
		});
		this.send();
	});
}

function processbakugan(senddata,returndata) {
	var action = senddata["action"];
	var modelid = senddata["modelid"];
	var status = returndata["status"];
	var reason = returndata["reason"];

	var linkarray = new Object();
	linkarray["ignore"] = '<a href="#" class="collectmodel" id="model-unignore-'+ modelid +'" title="Make collectable"><img src="/images/icons/unignore.png" style="height: 16px;" /></a>';
	linkarray["own"] = '<a href="#" class="collectmodel" id="model-unown-'+ modelid +'" title="Remove from my collection"><img src="/images/icons/unown.png" style="height: 16px;" /></a>';
	linkarray["need"] = '<a href="#" class="collectmodel" id="model-own-'+ modelid +'" title="Add to my collection"><img src="/images/icons/own.png" style="height: 16px;" /></a>';
	linkarray["need"] += '\n<a href="#" class="collectmodel" id="model-ignore-'+ modelid +'" title="Ignore"><img src="/images/icons/ignore.png" style="height: 16px;" /></a>';

	if (action == "own") {
		$("collectstatusdiv-"+ modelid).set("html","Own");
		$("collectlinkdiv-"+ modelid).set("html",linkarray["own"]);
		$("collecttablediv-"+ modelid).setStyle("visibility","hidden");
		$("collecttablediv-"+ modelid).setStyle("display","none");
	}
	else if (action == "unown") {
		$("collectstatusdiv-"+ modelid).set("html","Need");
		$("collectlinkdiv-"+ modelid).set("html",linkarray["need"]);
		$("collecttablediv-"+ modelid).setStyle("visibility","visible");
		$("collecttablediv-"+ modelid).setStyle("display","block");
	}
	else if (action == "ignore") {
		$("collectstatusdiv-"+ modelid).set("html","Ignore");
		$("collectlinkdiv-"+ modelid).set("html",linkarray["ignore"]);
		$("collecttablediv-"+ modelid).setStyle("visibility","hidden");
		$("collecttablediv-"+ modelid).setStyle("display","none");
	}
	else if (action == "unignore") {
		$("collectstatusdiv-"+ modelid).set("html","Need");
		$("collectlinkdiv-"+ modelid).set("html",linkarray["need"]);
		$("collecttablediv-"+ modelid).setStyle("visibility","visible");
		$("collecttablediv-"+ modelid).setStyle("display","block");
	}

	initbakugan();
}

// bakugan
function initbakugan() {
	$$("a.collectmodel").each(function(element) {
		var expandarray = element.id.split("-");

		var senddata = new Object();
		senddata["event"] = "collectmodel";
		senddata["action"] = expandarray[1];
		senddata["modelid"] = expandarray[2];

		$(element).removeEvents("click");
		$(element).addEvent("click", function(e) {
			e.stop();
			var ajaxrequest = new Request({
				url: "/ajax/gateway.php",
				data: senddata,
				onSuccess: function(responseText) {
					var returndata = JSON.decode(responseText);
					if (returndata["status"] == "ok") {
						processbakugan(senddata,returndata);
					}
					else {
						alert("Error: "+ returndata["reason"]);
					}
				},
				onFailure: function() {
					alert("Failure: Please try again later");
				}
			}).send();
		});
	});
}

// bakugan
function initcollection(collectdisplay) {
	$$("div.collectmodel").each(function(element) {
		var expandarray = element.id.split("-");

		var modelid = expandarray[1];
		var collectstatus = expandarray[2];

		var newopacity = 1;

		if (collectdisplay == "own") {
			if (collectstatus == "own") {
				newopacity = 1;
			}
			else if (collectstatus == "need") {
				newopacity = .2;
			}
			else if (collectstatus == "ignore") {
				newopacity = .05;
			}
		}
		else if (collectdisplay == "need") {
			if (collectstatus == "need") {
				newopacity = 1;
			}
			else if (collectstatus == "own") {
				newopacity = .2;
			}
			else if (collectstatus == "ignore") {
				newopacity = .05;
			}
		}
		else if (collectdisplay == "ignore") {
			if (collectstatus == "ignore") {
				newopacity = 1;
			}
			else if (collectstatus == "need") {
				newopacity = .2;
			}
			else if (collectstatus == "own") {
				newopacity = .05;
			}
		}

		element.setStyle("opacity",newopacity);
		element.setStyle("visibility","visible");
		element.setStyle("display","block");
	});

	if (collectdisplay == "own") { $("collectshowing").set("html","Own"); }
	if (collectdisplay == "need") { $("collectshowing").set("html","Need"); }
	if (collectdisplay == "ignore") { $("collectshowing").set("html","Ignore"); }

	$("collectvalue").set("html",collectvalue);
}

window.addEvent("domready", function() {

	if (typeof(pagelocation) == "string") {
		if (pagelocation == "signature") { initsignature(); }
		else if (pagelocation == "bakugan") { initbakugan(); }
		else if (pagelocation == "collection") { initcollection("own"); }
	}

	$$("div.ltip").each(function(element,index) {   
		var sellerid = element.get("rel");
		if (typeof sellerid != "undefined") {
			var details = outsellers[sellerid];
			if (typeof details != "undefined") {
				if (details["partner"] == "ebay") {
					element.store("tip:title","<strong>"+ details["userid"] +"</strong> ( "+ details["fbscore"] +" "+ (details["fbratingstar"] != "none" ? "<img style=\"background: none; border: none; vertical-align: middle; padding: 0px;\" src=\"/images/fbicons/"+ details["fbratingstar"] +".png\" />" : "") +"<img style=\"background: none; border: none; vertical-align: middle; padding: 0 0 0 5px;\" src=\"/images/small_ebay.png\" /> )");
					element.store("tip:text","Positive feedback: "+ details["fbpercent"] +"%"+ (details["userstore"] ? "<br />eBay Store: <strong>"+ details["userstore"] +"</strong>" : ""));
				}
				else if (details["partner"] == "amazon") {
					element.store("tip:title","<strong>"+ details["userid"] +"</strong> ( "+ details["fbscore"] +" "+ (details["fbratingstar"] != "none" ? "<img style=\"background: none; border: none; vertical-align: middle; padding: 0px;\" src=\"/images/small_amazon.png\" />" : "") +" )");
					element.store("tip:text","Positive feedback: "+ details["fbpercent"] +" / 5.0");
				}
			}
		}
	});

	var mytips = new Tips("div.ltip",{
		className: "ltip",
		offsets: { "x": 80, "y": 16 },
		fixed: true,
		hideDelay: 50,
		showDelay: 50
	});
});

