var ot_MotyPublic = Class.create({
	initialize: function(instanceName) {
		this.instanceName = instanceName;
		this.canvas_height = 300;
		this.current_effect = false;
		this.working = false;
		this.voteBottomPos = "";
		this.elements = {
			root : false,
			title : false,
			content : false,
			hide : false,
			frame : false,
			topelements : []
		};
	},
	check: function() {
		// Checks for a message, and if one is found goes on to the neccesary html
		this.update();
	},
	update: function() {
		this.elements.frame = document.createElement('div');
		this.elements.frame.className = 'ot-MotyPublic';
		this.elements.frame.style.top = document.body.scrollTop;
		
		this.elements.root = document.createElement('div');
		this.elements.root.id = 'frame';
		this.elements.root.className = 'frame';
		this.elements.frame.appendChild(this.elements.root);
		
		this.elements.content = document.createElement('div');
		this.elements.content.className = 'content';
		this.elements.content.id = 'content';
		this.elements.root.appendChild(this.elements.content);
		
		this.elements.leftText = document.createElement('div');
		this.elements.leftText.className = 'leftText';
		this.elements.leftText.id = 'leftText';
		this.elements.root.appendChild(this.elements.leftText);
		
		
		var temp_div = document.createElement('div');
		this.elements.root.appendChild(temp_div);
		this.elements.frame.style.display = 'none';
		document.body.appendChild(this.elements.frame);
				
		// Unhide
		this.elements.frame.style.display = 'block';
			
		// If the height of content is too big set scroll y to be = scroll
		if (this.elements.content.clientHeight > this.canvas_height) {
			this.elements.content.style.height = this.canvas_height+'px';
			this.elements.content.style.overflowY = 'scroll';
		}
	},
	move: function() {
		if (this.elements.frame){
			
			try {this.current_effect.cancel();}catch(e){}
			this.current_effect = new Effect.Move(this.elements.frame,{
				mode:'absolute',
				x:0,
				y:Math.max(0,(Math.max(document.body.scrollTop,document.body.parentNode.scrollTop) - 188)),
				duration:0.3
			});
		}
	},
	swap:function(startingPos, targetPos){ 
	  	var tempArray = [];
		for (var i=0;i<this.votes.length;i++) {
			var posMin = Math.min(startingPos,targetPos);
			var posMax = Math.max(startingPos,targetPos);
		
			if (i < posMin|| i > posMax) {
				tempArray[i] = this.votes[i];
			} else if (targetPos == i) {
					tempArray[i] = this.votes[startingPos];
			} else {
				if (posMin == targetPos) {
					tempArray[i] = this.votes[i-1];		
				} else {
					tempArray[i] = this.votes[i+1];			
				}
			}
		}
		this.votes = tempArray;
		//call the function to update the html
		this.rerender(targetPos);
	},
	rerender:function(skipme){
		//alert(skipme);
		if (skipme < 0 || skipme >= this.votes.length) skipme = false;
		for (var i=0;i<this.votes.length;i++) { 
			if (!skipme || skipme != i) {
				leftPos = parseInt(otMotyPublic.leftGap) + (i * 94);
				if (this.votes[i] == 0) {
					var tmp_vote = document.getElementById("posNew" + i);
					//alert(tmp_vote);
				} else {
					var tmp_vote = document.getElementById("pos" + this.votes[i]);
				}
				tmp_vote.style.left = leftPos + 'px';
			}
		}
		setTimeout(function(){this.working=false;}.bind(this),100);
	},
	updateCookie:function(){
		document.getElementById("modelPics").style.opacity = "1";
		document.getElementById("modelPics").style.filter = "alpha(opacity=100)";
		if(this.autoUpdate == "yes"){
			url = '/updateMOTYCookie.cfm?array=' + this.votes + "&email=" + this.email;
			new Ajax.Request(url, {method: 'get'});
		}
	}
	/*updateDatabase:function(){
		document.getElementById("modelPics").style.opacity = "1";
		document.getElementById("modelPics").style.filter = "alpha(opacity=100)";
		url = '/updateMOTYVotes.cfm?array=' + this.votes + "&voteType=" + this.voteType;
		new Ajax.Request(url, {method: 'get'});
	}*/
});
