All pastes #1043148 Raw Edit

Someone

public javascript v1 · immutable
#1043148 ·published 2008-06-09 18:42 UTC
rendered paste body
   //==========================\\  //  Created for Randosity     \\ //    By Negown Productions     \\//================================\\//// ============== AJAX baby! ================ \\\\\\\// We're going to test for ajax to make sure the user can support itvar AJAX_TYPE;try{	// Test for FireFox, Opera, and Safari	AJAX_TYPE = new XMLHttpRequest();}catch(e){	try{		// Test for Internet Explorer		AJAX_TYPE = new ActiveXObject("Msxm12.XMLHTTP");	}catch(e){		try{			// Another test for IE			AJAX_TYPE = new ActiveXObject("Microsoft.XMLHTTP");		}catch(e){			// Awe crap! No support for Ajax!!!!			AJAX_TYPE = null;		}	}}// Uploadsfunction getUploader(url){	var TIME_UP = 20; // Seconds until ajax script times out	var ALLGOOD = 'AllGood';	var ERROR = 'Error';		url = '/randosity' + url;		// Ajax function to send acutal data to the server	this.Upload = function(params, success_response, error_response){				if((url == '') || (typeof params != 'object') || (typeof success_response != 'function')){			return false;		}		if(typeof error_response != 'function'){			error_response = null;		}		if(!AJAX_TYPE){			alert("Uh-Oh! It looks like your browser is to old to use the features on this site.\n\nPlease upgrade your browser at:\nhttp://getfirefox.com");			return false;		}						var running_time = setTimeout(function(){						// Remove handler						AJAX_TYPE.onreadystatechange = function() {};						alert("Unable to conntact the server. Please wait a few moments and then try again.");												if(error_response){							error_response();						}					}, TIME_UP * 1000);																AJAX_TYPE.onreadystatechange = function() {			if(AJAX_TYPE.readyState == 4){				if(AJAX_TYPE.status == 200){					clearTimeout(running_time);										var testGrab = new AjaxResponse(AJAX_TYPE);					if(VerifyAjax(testGrab, error_response)){						success_response(testGrab);					}				}			}		}				var query;		var pkey;				if(params){			for(pkey in params){				if(typeof params[pkey] != 'function'){					query += "&" + EncodeURL(pkey) + "=" + EncodeURL(params[pkey]);				}			}			query = query.substring(1);		}				AjaxSend("POST", url, query);		return true;	}					function VerifyAjax(response, error_response){		var state = response.FieldGrab('state');				if(state == null){			alert("Server Error. Please wait a few moments and then try again.");			if(error_response){				error_response();			}						return false;		}				if(state == ERROR){			alert("Error: " + response.FieldGrab('error'));			if(error_response){				error_response();			}			return false;		}		return true;	}							function AjaxResponse(AJAX_TYPE){		var complete;				this.FieldGrab = function(field_name){			var arr_field = this.NodesGrab(field_name);			if((arr_field != null) && (arr_field.length == 1) && (arr_field[0].firstChild != null) && (arr_field[0].firstChild.data != null) && (arr_field[0].firstChild.data != "")){				field = arr_field[0].firstChild.data;			}						return field;		}				this.NodesGrab = function(node_name){			var nodes = new Array();						nodes = AJAX_TYPE.responseXML.documentElement.getElementsByTagName(node_name);						return nodes;		}				function ajaxIsCert(){			if(complete == null){				complete = (AJAX_TYPE) && (AJAX_TYPE.responseXML) && (AJAX_TYPE.responseXML.documentElement);			}						return complete;		}	}}function AjaxSend(post_type, url, query){	AJAX_TYPE.open(post_type, url, true);	AJAX_TYPE.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");	AJAX_TYPE.overrideMimeType("text/xml");	AJAX_TYPE.send(query);}function EncodeURL(url){	url = escape(url);	url = url.replace("/\+/g", "%2B");	return url;}function ElemGrab(element){	return document.getElementById(element);}//// ~~~~~~~~~~~~~~~ END AJAX ~~~~~~~~~~~~~~ \\\\//// ================ BUTTONS! ============== \\\\function Button(id, class, dead_name){	var beg_html;	var beg_class;			this.Create = function(){		var element = GrabButton();		element.innerHTML = beg_html;		element.className = beg_class;		if(ElemGrab('loading')){			ElemGrab('loading').innerHTML = '';		}	}	this.Kill = function(deadtxt){		var element = GrabButton();		if(beg_html == null){			beg_html = element.innerHTML;		}		if(beg_class == null){			beg_class = element.className;		}				if(typeof deadtxt == 'undefined'){			// Oh crap, no name.... I hope no one cares what this is...			var newChild = element.firstChild;			while((newChild.firstChild != '') && (newChild.firstChild.nodeType == 1)){				newChild = newChild.firstChild;			}			deadtxt = newChild.firstChild.data;		}		if(typeof class == 'string'){			deadtxt = '<span class="' + class + '">' + deadtxt + '</span>';		}		if(typeof dead_name != 'string'){			element.className = 'button';		}else{			element.className = dead_name;		}				element.innerHTML = '<span>' + deadtxt + '</span>';		if(ElemGrab('loading')){			ElemGrab('loading').innerHTML = '<img src="/images/loading.gif" width="20px" height="20px" style="padding-top: 2px;" alt="' + deadtxt + '"/>';		}	}		function GrabButton(){		element = ElemGrab(id);		return element;	}}//// ~~~~~~~~~~~~~~ END BUTTONS ~~~~~~~~~~~~~~~ \\\\//// ============== HELP! Something Happened! ============= \\\\var helpMeOut = new helpMeOut();function helpMeOut(){	this.Randary = function(){		var Helper = new Help_popup();		return(Helper);	}		function Help_popup(){		this.PartOfSpeech = function(){			alert("The Part of Speech for a word is the way a word is used in a sentence.");		}		this.Sentence = function(){			alert("The Use of the word in a sentence is your chance to show us how you use the word. Compose an original sentence using the word in it's correct form.");			ElemGrab('sentence').focus();		}		this.WordGrade = function(){			alert("The Word's Grade is the quality or score of the word. The word was voted on by users, and this is their consensus.");		}	}}//// ~~~~~~~~~~~~~~ END HELP it's all good now ~~~~~~~~~~~~~ \\\\//// =============== Random EVERYDAY Functions =================== \\\\/* Example:new Effect.Fade(element, {afterFinish: Function});function Function(){	new Effect.SlideUp(element);}Uses:Appear | BlindDown | Slidedown | GrowFade | BlindUp | SlideUp | Shrink | SwitchOff | DropOut | PuffShake | Squish | HighlightEffect.Toggle(element, [appear | blind | slide], [options]);*/var RandaryList = new function(){	var list_button = new Button('listbutton');		this.Submit = function(){		var list_type = ElemGrab('list_type').value;		var order_type = ElemGrab('order_type').value;		window.location.href = '/randosity/randary/list/' + list_type + '/' + order_type;	}}var Search = new function(){	var search_button = new Button('searchbutton');		this.Send = function(){		var term = ElemGrab('term');		var url = ElemGrab('url');		if(term.value == ''){			alert("You must enter a search term in order to search!");			term.focus();			return false;		}		if(term.value.length < 3){			alert("Your search term must be at least 3 characters in length.");			term.focus();			return false;		}				window.location.href = '' + url.value + term.value;	}}var Vote = new function(){		var DURATION = .4;	var params;	var set_vote = 0;		this.CheckAll = function(vote){		if((vote != 0) && (vote != 20) && (vote != 40) && (vote != 60) && (vote != 80) && (vote != 100)){			alert("Required Parameter Invalid.");			return false;		}		if(set_vote == 1){			alert("Your vote is being processed. Please wait.");			return false;		}		return true;	}		this.Cast = function(vote){		var POST_PAGE = ElemGrab('go').value;		ElemGrab('vote_field').value = vote;		if(!(this.CheckAll(vote))){			return;		}				set_vote = 1;		params = new Array();		SetParams();				// Do our nice fading :p		new Effect.Fade('vote', {duration: DURATION});				var AjaxSend = new getUploader(POST_PAGE);		AjaxSend.Upload(params, SuccessResponse, ErrorResponse);	}		function ErrorResponse(){		new Effect.Appear('vote', {duration: DURATION});	}	function SuccessResponse(response){		var new_score          = response.FieldGrab('new_score');		var vote_msg           = response.FieldGrab('vote_msg');		var score_movement     = response.FieldGrab('score_movement');		var new_grade_symbol   = response.FieldGrab('new_grade_symbol');						var vote_field = ElemGrab('vote_field').value;		var new_grade;						if(score_movement < 0){			score_movement = '- ' + Math.abs(score_movement);		}else if(score_movement > 0){			score_movement = '+ ' + score_movement;		}else{			score_movement = '+ ' + score_movement;		}				if(new_score <= 100 && new_score > 89){			new_grade = 'a';		}else if(new_score < 90 && new_score > 79){			new_grade = 'b';		}else if(new_score < 80 && new_score > 69){			new_grade = 'c';		}else if(new_score < 70 && new_score > 59){			new_grade = 'd';		}else if(new_score < 60){			new_grade = 'f';		}								new Effect.Fade('prev_grade', {duration: DURATION});		new Effect.Fade('grade', {duration: DURATION, afterFinish: GradeAppear});		new Effect.Fade('vote_msg', {duration: DURATION, afterFinish: VoteMSGAppear});						function GradeAppear(){			ElemGrab('prev_grade').innerHTML = new_score + '%&nbsp;&nbsp;' + new_grade_symbol;			ElemGrab('prev_grade').className = 'grade_' + new_grade;			ElemGrab('grade').innerHTML = '( ' + score_movement + '% )';			ElemGrab('grade').className = 'grade_' + new_grade;						new Effect.Appear('grade', {duration: DURATION});			new Effect.Appear('prev_grade', {duration: DURATION});		}		function VoteMSGAppear() {			vote_msg.replace('&gt;', '>');			vote_msg.replace('&lt;', '<');			ElemGrab('vote_msg').innerHTML = vote_msg;			new Effect.Appear('vote_msg', {duration: DURATION});		}	}		function SetParams(vote){		params["rvote"] = ElemGrab('vote_field').value;		params["user_id"] = ElemGrab('user_id').value;		params["id"] = ElemGrab('id').value;	}	}// Forumsfunction SelectEmCon(id) {	var old = ElemGrab("emcon").value;	ElemGrab("emcon").value = id;		if(id != old){		ElemGrab(id).style.width = "23px";		ElemGrab(id).style.height = "23px";		ElemGrab(id).style.border = "1px solid #000";		ElemGrab(old).style.width = "25px";		ElemGrab(old).style.height = "25px";		ElemGrab(old).style.border = "0";	}}var HtmlHelp = new function(){	this.Bold = function(){		var text = prompt('Please enter the text you\'d like to be bolded:', '');		if(text != '' && text != null){			ElemGrab("message").value += '<strong>' + text + '</strong>';		}		ElemGrab("message").focus();	}	this.Italic = function(){		var text = prompt('Please enter the text you\'d like to be italicized:', '');		if(text != '' && text != null){			ElemGrab("message").value += '<em>' + text + '</em>';		}		ElemGrab("message").focus();	}	this.Underline = function(){		var text = prompt('Please enter the text you\'d like to be underlined:', '');		if(text != '' && text != null){			ElemGrab("message").value += '<ins>' + text + '</ins>';		}		ElemGrab("message").focus();	}				this.Code = function(){		var code = prompt('Please enter the text you\'d like to be inserted into code format:', '');		if(code != '' && code != null){			ElemGrab("message").value += '<code>' + code + '</code>';		}		ElemGrab("message").focus();	}				this.Link = function(){		var url = prompt('Please enter the URL you wish to link to:', '');		var check = /^(((https?|ftp):\/\/)|aim:goim|skype|\/)/i; // This part was taken from http://newgrounds.com		if(!check.exec(url)){			new_url = 'http://' + url;		}else{			new_url = url;		}				if(url != '' && url != null){			var name = prompt('Please enter the URL Text/Label you wish the link to say (Or leave blank):', '');						if(name != '' && name != null){				ElemGrab("message").value += '<a href="' + new_url + '">' + name + '</a>';			}else{				ElemGrab("message").value += '<a href="' + new_url + '">' + url + '</a>';			}		}		ElemGrab("message").focus();	}		this.Email = function(){		var email = prompt('Please enter the email address you wish to link to:', '');		check = /[^a-z0-9\.\-_]/ig;		split_check = email.split('@');		tlx = split_check[1].split('.');				if(split_check.length < 2){			alert("Invalid Email Address");			return;		}		if(check.exec(split_check[0]) || check.exec(split_check[1])){			alert("Invalid Email Address");			return;		}		if(tlx.length < 2){			alert("Invalid Email Address");			return;		}				if(email != '' && email != null){			var name = prompt('Please enter the Email Text/Label you wish the link to say (Or leave blank):', '');						if(name != '' && name != null){				ElemGrab("message").value += '<a href="mailto:' + email + '">' + name + '</a>';			}else{				ElemGrab("message").value += '<a href="mailto:' + email + '">' + email + '</a>';			}		}		ElemGrab("message").focus();	}}