function setDroppable(item) {
			
			Droppables.add(item,{
				accept: 'modelDrag',
		    	hoverclass:'voteActive',
				onDrop: function(element) {
					if (element.className == 'modelDrag') {
						//check the vote array for a duplicate entry
						dupeCheckResult = checkDupes(element.id);
						if (dupeCheckResult == "1"){
							alert("You cannot vote for the same model twice!");
						} else {
							newVote = 0;
							dropOnto = item.id.substr(3);
							dropping = element.id.substr(6);
							
							for (var j=0;j<otMotyPublic.votes.length;j++) { 
								//code for dropping on a blank vote
								if(otMotyPublic.votes[j] == dropOnto){
									otMotyPublic.votes[j] = dropping;
									//update the div id
									document.getElementById("pos" + dropOnto).id = "pos" + dropping;
									//get the replacement model cover
									document.getElementById("pos" + dropping).innerHTML = getModelCoverSmall(element.id);
									otMotyPublic.rerender(-1);
									otMotyPublic.updateCookie();								  
								}
							}
						}
					}								
	            }
	        });
			
		}
		
		function updateVote(url){
			//ajax request
			var ajaxRequest = new Ajax.Request(url, {
				method: 'get', 
				asynchronous: true,
				onComplete:   showResponse
			});
		}		
		
		function checkDupes(modid){
			for (var j=0;j<otMotyPublic.votes.length;j++) { 
				check = otMotyPublic.votes[j];
				droppedDiv = "model_" + check;
				if(droppedDiv == modid){
					found = "1";
					break
				} else {
					found = "0";
				}
			}
			return found;
		}

	//create draggable movement
	function js_startDrag(dragable) {
		dragStartX = dragable.element.style.left;
		dragStartY = dragable.element.style.top;
		dragable.element.style.opacity = "0.4";
		dragable.element.style.filter = "alpha(opacity=40)";
		document.body.appendChild(dragable.element);
	    //window.appendChild(dragable);
	}

	//revert image function
	function js_revert(dragable) {
		$('modelPics').appendChild(dragable);
		if (dragStartX !== null && dragStartY !== null) {
			dragable.style.top = dragStartY;
			dragable.style.left = dragStartX;
			dragable.style.opacity = "1";
			dragable.style.filter = "alpha(opacity=100)";
			//dragable.parentNode.appendChild(dragable);
		}
		dragStartX = null;
		dragStartY = null;
	}
	
		//create draggable movement to reorder votes
	function js_startDragVote(dragable) {
		//code to remove the alt and title text on drag
		idVal = dragable.element.id;
		var elementVal =  document.getElementById(idVal);
		image = elementVal.getElementsByTagName("img");
		voteImageOldAlt = image[0].alt;
		voteImageOldTitle = image[0].title;
		image[0].title = "";
		image[0].alt = "";
		//end of code to remove alt and title text
		
		dragStartX = dragable.element.style.left;
		dragStartY = dragable.element.style.top;
		dragable.element.style.opacity = "0.4";
		dragable.element.style.filter = "alpha(opacity=40)";
		
		startLeft = dragStartX;
		startLeft = startLeft.substr(0, startLeft.length-2);
		startLeft = parseInt(startLeft);
		
		leftSwapPoint = startLeft - "50";
		rightSwapPoint = startLeft + 60;
		
		
	}

	//revert image function
	function js_revertVote(dragable) {
		if (dragStartX !== null && dragStartY !== null) {
			//new code
			//check if vote is outside the vote area
			if(otMotyPublic.voteBottomPos > 155){
				//alert("removeVote");
				modelId = dragable.id.substr(3);
				firstChar = modelId.charAt(0);
				for (var j=0;j<otMotyPublic.votes.length;j++) { 
					//code for dropping on a blank vote
					if(otMotyPublic.votes[j] == modelId){
						// Find blank i
						for (nid=1;nid<=otMotyPublic.votes.length;nid++){if (!document.getElementById('posn'+nid)) break;}
						document.getElementById(dragable.id).innerHTML = "<img src='/images/moty_emptyVote.jpg' width=85px height=128px alt='Drop Vote Here' title='Drop Vote Here'/>";
						document.getElementById(dragable.id).id = 'posn'+nid;
						otMotyPublic.votes[j]='n'+nid;
					}
				}
				otMotyPublic.updateCookie();
				otMotyPublic.rerender(-1);
			}
			//end of new code
			dragable.style.top = dragStartY;
			dragable.style.left = dragStartX;
			dragable.style.opacity = "1";
			dragable.style.filter = "alpha(opacity=100)";
			//dragable.parentNode.appendChild(dragable);
		}
		dragStartX = null;
		dragStartY = null;
		
		otMotyPublic.rerender(-1);
	}
	
	function js_checkReorder(dragable) {	
		//var hoverPoint = (document.body.scrollTop < 93)?130:150;
		var hoverPoint = 155;
			
		//document.getElementById("offset").innerHTML = dragable.element.offsetTop;		
		otMotyPublic.voteBottomPos = dragable.element.offsetTop;
		var tmp = document.getElementById("modelPics");
		if (dragable.element.offsetTop < 118 && dragable.element.offsetTop > -118){
			if (tmp.style.opacity != 1) {
				tmp.style.opacity = "1";
				tmp.style.filter = "alpha(opacity=100)";
			}
			if (!otMotyPublic.working) {
				otMotyPublic.working = true;
				var blankVote = 0;
				//alert(otMotyPublic.votes.length);
				<!---var targetPos = Math.max(0,Math.min(otMotyPublic.votes.length-1,Math.floor(dragable.element.offsetLeft / 98)));--->
				var targetPos = Math.max(0,Math.min(otMotyPublic.votes.length-1,Math.floor((dragable.element.offsetLeft-otMotyPublic.leftGap+42) / 94)));
				
				var modelID = dragable.element.id.substr(3);
				
				//check if the dragging vote is an empty one
				if(modelID.indexOf('w') == 2){ blankVote = 1; modelID = modelID.substr(3);}
				
				if (blankVote == 1){
					startingPos = modelID;
					if (targetPos != startingPos){
						//alert(targetPos + " " + startingPos);
						otMotyPublic.swap(startingPos,targetPos);
					} else {
						otMotyPublic.working = false;
					}
				} else {			
					for (var i=0;i<otMotyPublic.votes.length;i++) {
						if (modelID == otMotyPublic.votes[i]) {var startingPos = i;break;}
					}
					if (targetPos != startingPos){
						otMotyPublic.swap(startingPos,targetPos);
					} else {
						otMotyPublic.working = false;
					}
				}
			}
		} else if  (dragable.element.offsetTop > hoverPoint && tmp.style.opacity != 0.4){
			tmp.style.opacity = "0.4";
			tmp.style.filter = "alpha(opacity=40)";
		}
	}
	
	function getModelCoverSmall(modelelement_id) {
		element = document.getElementById(modelelement_id);
		var modelId = modelelement_id.substr(6);
		image = element.getElementsByTagName("img");
		replaceChar = "-";
		title = image[0].title;
		modelName = title.replace(/ /g, replaceChar);
		voteImageInfo = '<img src="http://cdn.only-opaques.com/images/model_covers/' +  modelName + '_cover_' + modelId + '_votes_small.jpg" alt="' + title + '" height="128px" width="85px">'; 
		return voteImageInfo;
	}
	
	function getModelCoverURL(modelelement_id) {
		var element= document.getElementById(modelelement_id);
		var imageSrc = element.getElementsByTagName("img");
		return imageSrc[0].src;
	}
	
	function replaceImage(item){
		repElement = document.getElementById(item.id);
		
		modelId = item.id.substr(6);
				
		if (repElement != null) {
			image = repElement.getElementsByTagName("img");
			replaceChar = "-";
			modelName = image[0].alt;
			modelName = modelName.replace(/ /g, replaceChar);
			image[0].src = "http://cdn.only-opaques.com/images/model_covers/" +  modelName + "_cover_" + modelId+ "_votes.jpg"; 
		}
	}
	
	function createFormSub(){
		if (otMotyPublic.autoUpdate != "yes"){
			var clickVal = "''";
			var validateVariables = "'submitPublicVote','emailAddress'";
			var formContent= '<input type="text" name="emailAddress" id="emailAddress" class="formSubEmail" value="Enter Valid Email Address" onClick="this.value=' + clickVal + ';"><input onclick="javascript:return validateEmail(' + validateVariables + ');" type="button" class="formSubButton" value="Submit Votes">';
			document.getElementById("formSub").innerHTML = formContent;	
		} else {
			var formContent= 'Your votes have been submitted.  You can edit your votes at anytime up until the votes are counted';
			document.getElementById("formSub").style.left = "0px";
			document.getElementById("formSub").style.width = "750px";
			document.getElementById("formSub").innerHTML = formContent;	
			
			otMotyPublic.elements.leftText.innerHTML = "";
			//You have submitted your votes, you can make changes to your votes until the day the votes are counted
		}
	}
	
	function validateEmail(form_id,email) {
   		var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
   		var address = document.getElementById("emailAddress").value;
   		if(reg.test(address) == false) {
      		alert('You Must Enter a Valid Email Address');
      		return false;
   		} else {
			otMotyPublic.email = address;
			otMotyPublic.autoUpdate = "yes";
			otMotyPublic.updateCookie();
			createFormSub();
		}
	}
		
		
