submit to one location, but go to another

Trying to find a way around my crappy CRM

Page 1 of 1

4 Replies - 2939 Views - Last Post: 09 April 2008 - 01:28 PM

#1 Cruciamentum  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 18
  • Joined: 08-February 08

submit to one location, but go to another

Posted 08 April 2008 - 01:32 PM

Hey all,

To cut a long story short, basically, what I need to do, is submit info from a form to one location, yet have the 'thank you' page go to another location. Reason there, is that the my form submits to my CRM, and in the process, goes to a thank you page hosted by them. It takes them days to make any changes to that page, and usually they end up being wrong. Anyhow, a friend hinted at this script to get the job done, but I can't get it to work:

<script language="Javascript">
	function createRequestObject() {
		var http_request = true;
		if (window.XMLHttpRequest) { // Mozilla, Safari,...
			http_request = new XMLHttpRequest();
			if (http_request.overrideMimeType) {
				http_request.overrideMimeType('text/xml');
			}
		} else if (window.ActiveXObject) { // IE
			try {
				http_request = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
				http_request = false;
			}
		}
		if (!http_request) {
			//debug.append('Cannot create XMLHTTP instance');
			http_request = false;
		}	
		return http_request;
	}

	function sendResultsToNothing(http_request) { 
		var state = http_request.readyState;
		var connState = ["Connection Uninitialized.","Connection Open. Wait for Request.","Data recieved.","Processing Data.","Request Complete","Unknown RPC state."];
		if(state <= 4) {
			switch(state) {
				case 0 :
					currState = connState[0];
					break;
				case 1 :
					currState = connState[1];
					break;
				case 2 :
					currState = connState[2];
					break;
				case 3 :
					currState = connState[3];
					break;
				case 4 :
					//send html to browser dom element
					break;
				default :
					currState = connState[5];
					break;
			}
		}
	}
	
	function main(){
		var target_url = "crmsubmissionaddress";
		var thankyou_url = "http://mythankyoupage.html";
		
		var requestHandler = null;
		var http_request = createRequestObject();
		sendResultsToNothing(http_request); };
		http_request.onreadystatechange = requestHandler;
		http_request.open('GET', target_url + parameters, true);
		http_request.send(null);
		location.href = thankyou_url;
	}

</script>



Does this look possible to anyone? Am I missing something completely? Any help would be greatly appreciated.

This post has been edited by Cruciamentum: 08 April 2008 - 02:09 PM


Is This A Good Question/Topic? 0
  • +

Replies To: submit to one location, but go to another

#2 pertheusual  Icon User is offline

  • D.I.C Head

Reputation: 10
  • View blog
  • Posts: 245
  • Joined: 26-January 08

Re: submit to one location, but go to another

Posted 08 April 2008 - 03:38 PM

<script language="Javascript">
	function createRequestObject() {
		var http_request = true;
		if (window.XMLHttpRequest) { // Mozilla, Safari,...
			http_request = new XMLHttpRequest();
			if (http_request.overrideMimeType) {
				http_request.overrideMimeType('text/xml');
			}
		} else if (window.ActiveXObject) { // IE
			try {
				http_request = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}               //HERE, shouldn't these go around the http_request = false?
				http_request = false;
			}
		}
		if (!http_request) {
			//debug.append('Cannot create XMLHTTP instance');
			http_request = false;
		}	
		return http_request;
	}
	
	function main(){
		var target_url = "crmsubmissionaddress";
		var thankyou_url = "http://mythankyoupage.html";
		
		var requestHandler = null;
		var http_request = createRequestObject();
		sendResultsToNothing(http_request); };        //EXTRA Parenthesis
		http_request.onreadystatechange = requestHandler;    
		http_request.open('GET', target_url + parameters, true);   //MISSING parameters variable, may not be needed
		http_request.send(null);
		location.href = thankyou_url;
	}

</script>



You have a few problems in your code. Two parenthesis seemed screwed up, which I marked with comments. It seems like your indentation is screwy with respect to the parenthesis.
You can use the javascript console in firefox. It's pretty basic, but it would tell about you syntax errors like that.

Your "sendResultsToNothing" function doesn't actually do anything useful...

What is the html code that you have calling this? Just to be sure that it's correct.
Not sure if that'll fix it, but it's a step forward.

Per
Was This Post Helpful? 0
  • +
  • -

#3 Cruciamentum  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 18
  • Joined: 08-February 08

Re: submit to one location, but go to another

Posted 09 April 2008 - 07:32 AM

Hey, thanks for the response. I've made the changes you pointed out, yet still not working, here's what I got now:

<html>
<head>
<title>bah</title>
<script language="Javascript">
	function createRequestObject() {
		var http_request = false;
		if (window.XMLHttpRequest) { // Mozilla, Safari,...
			http_request = new XMLHttpRequest();
			if (http_request.overrideMimeType) {
				http_request.overrideMimeType('text/xml');
			}
		} else if (window.ActiveXObject) { // IE
			try {
				http_request = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e)
				{
				http_request = false;
			}
		}
		if (!http_request) {
			//debug.append('Cannot create XMLHTTP instance');
			http_request = false;
		}	
		return http_request;
	}

	function sendResultsToNothing(http_request) { 
		var state = http_request.readyState;
		var connState = ["Connection Uninitialized.","Connection Open. Wait for Request.","Data recieved.","Processing Data.","Request Complete","Unknown RPC state."];
		if(state <= 4) {
			switch(state) {
				case 0 :
					currState = connState[0];
					break;
				case 1 :
					currState = connState[1];
					break;
				case 2 :
					currState = connState[2];
					break;
				case 3 :
					currState = connState[3];
					break;
				case 4 :
					//send html to browser dom element
					break;
				default :
					currState = connState[5];
					break;
			}
		}
	}
	
	function main(){
		var target_url = "crmsubmissionaddress";
		var thankyou_url = "http://mythankyoupage.html";
		
		var requestHandler = null;
		var http_request = createRequestObject();
		sendResultsToNothing(http_request);
		http_request.onreadystatechange = requestHandler;
		http_request.send(null);
		location.href = thankyou_url;
	}
}
</script>
</head>


Then the test form:
<body>
<form name="f1">
  <p>Some Field: <input name="word" type="text">  
  <input value="Go" type="button" onclick='main();'></p>
  <div id="result"></div>
</form>
</body>
</html>



Error I'm gettin now says that main is not defined. Seems pretty defined to me? I'm not that great with this JS stuff, so I'm sure there is something majorly wrong.

This post has been edited by Cruciamentum: 09 April 2008 - 07:44 AM

Was This Post Helpful? 0
  • +
  • -

#4 pertheusual  Icon User is offline

  • D.I.C Head

Reputation: 10
  • View blog
  • Posts: 245
  • Joined: 26-January 08

Re: submit to one location, but go to another

Posted 09 April 2008 - 12:30 PM

It is saying that main is undefined because your parenthesis are still screwy.

Try this
function createRequestObject() {
	var http_request = false;
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/xml');
		}
	}
	else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e){
				http_request = false;
			}
		}
	}
	if (!http_request) {
		//debug.append('Cannot create XMLHTTP instance');
		http_request = false;
	}    
	return http_request;
}

function main(){
	var target_url = "crmsubmissionaddress";
	var thankyou_url = "http://mythankyoupage.html";

	var requestHandler = null;
	var http_request = createRequestObject();
	
	//here, you should take the data from the form and put it into the variable "parameters"
	//in the form "?varname=data&varname=data" and so on
	
	http_request.onreadystatechange = requestHandler;
	http_request.open('GET', target_url + parameters, true);
	http_request.send(null);
	location.href = thankyou_url;
}



I changed the parenthesis around.
You misunderstood my comment about the http_request.open
The method needs to be there, but the "parameters" variable wasn't set to anything.

Also, because you are using a button, the page will not take the data from your form automatically. You need to use javascript to read the form data and put it into "parameters."

Per
Was This Post Helpful? 0
  • +
  • -

#5 Cruciamentum  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 18
  • Joined: 08-February 08

Re: submit to one location, but go to another

Posted 09 April 2008 - 01:28 PM

Thanks again for the help. I'm still unable to get it to work. Perhaps it would have helped if I were to include the actual scripts that I am using. I was just trying to keep it as simple as possible. If you wouldn't mind scanning over these:

I'll throw out the scripts as they work right now, without trying to double submit.

Here is the mess of JS for validating my form:
// Messy Javascript Document 
// Author Vox White

var MinDebt = 10000.00;
var areaCodeMap = {};

areaCodeMap["AL"] = "205,251,256,334,800,866,888";
areaCodeMap["AK"] = "907,800,866,888";
areaCodeMap["AZ"] = "480,520,602,623,928,800,866,888";
areaCodeMap["AR"] = "479,501,870,800,866,888";
areaCodeMap["CA"] = "209,213,310,323,408,415,424,510,530,559,562,619,626,650,661,707,714,760,805,818,831,858,909,916,925,949,800,866,888";
areaCodeMap["CO"] = "303,719,720,970,800,866,888";
areaCodeMap["CT"] = "203,475,860,959,800,866,888";
areaCodeMap["DE"] = "302,800,866,888";
areaCodeMap["DC"] = "202,800,866,888";
areaCodeMap["FL"] = "239,305,321,352,386,407,561,727,754,772,786,813,850,863,904,941,954,800,866,888";
areaCodeMap["GA"] = "229,404,470,478,678,706,770,912,800,866,888"
areaCodeMap["HI"] = "808,800,866,888";
areaCodeMap["ID"] = "208,800,866,888";
areaCodeMap["IL"] = "217,224,309,312,331,464,618,630,708,773,815,847,872,800,866,888";
areaCodeMap["IN"] = "219,260,317,574,765,812,800,866,888"
areaCodeMap["IA"] = "319,515,563,641,712,800,866,888";
areaCodeMap["KS"] = "316,620,785,913,800,866,888";
areaCodeMap["KY"] = "270,502,606,859,800,866,888";
areaCodeMap["LA"] = "225,318,337,504,985,800,866,888";
areaCodeMap["ME"] = "207,800,866,888";
areaCodeMap["MD"] = "227,240,301,410,443,800,866,888";
areaCodeMap["MA"] = "339,351,413,508,617,774,781,857,978,800,866,888";
areaCodeMap["MI"] = "231,248,269,313,517,586,616,734,810,906,989,800,866,888";
areaCodeMap["MN"] = "218,320,507,612,651,736,952,800,866,888";
areaCodeMap["MS"] = "228,601,662,800,866,888";
areaCodeMap["MO"] = "314,417,557,573,636,660,816,800,866,888";
areaCodeMap["MT"] = "406,800,866,888";
areaCodeMap["NE"] = "308,402,800,866,888";
areaCodeMap["NV"] = "702,775,800,866,888";
areaCodeMap["NH"] = "603,800,866,888";
areaCodeMap["NJ"] = "201,551,609,732,848,856,862,908,973,800,866,888";
areaCodeMap["NM"] = "505,800,866,888";
areaCodeMap["NY"] = "212,315,347,516,518,585,607,631,646,716,718,845,914,917,800,866,888";
areaCodeMap["NC"] = "252,336,704,828,910,919,980,984,800,866,888"
areaCodeMap["ND"] = "701,800,866,888";
areaCodeMap["OH"] = "216,234,283,330,419,440,513,567,614,740,937,800,866,888";
areaCodeMap["OK"] = "405,580,918,800,866,888";
areaCodeMap["OR"] = "503,541,971,800,866,888";
areaCodeMap["PA"] = "215,267,412,445,484,570,610,717,724,814,835,878,800,866,888";
areaCodeMap["RI"] = "401,800,866,888";
areaCodeMap["SC"] = "803,843,864,800,866,888";
areaCodeMap["SD"] = "605,800,866,888";
areaCodeMap["TN"] = "423,615,731,865,901,931,800,866,888";
areaCodeMap["TX"] = "210,214,254,281,361,409,469,512,682,713,737,806,817,830,832,903,915,936,940,956,972,979,800,866,888"
areaCodeMap["UT"] = "435,801,800,866,888";
areaCodeMap["VT"] = "802,800,866,888";
areaCodeMap["VA"] = "276,434,540,571,703,757,804,800,866,888";
areaCodeMap["WA"] = "206,253,360,425,509,564,800,866,888"
areaCodeMap["WV"] = "304,800,866,888";
areaCodeMap["WI"] = "262,414,608,715,920,307,800,866,888";
areaCodeMap["WY"] = "307,800,866,888";

function checkAreaCode(state, areacode) {
	var codes = areaCodeMap[state];
	if (typeof(codes) != "string") {
		return false;
	}
	var result = codes.indexOf(areacode) >= 0;
	if (typeof(result) == "boolean") {
		return result;
	} else {
		return false;
	}
}

function validateAreaCode() {
	var theForm = document.frmFirstInfo;
	var theState = theForm.STATE;
	var areaCode = theForm.HOME_PHONE1;
	return checkAreaCode(theState.options[theState.selectedIndex].value, areaCode.value);
}



 function poorVoxy() {  
	var theForm = document.frmFirstInfo;  
	var isTheAreaCodeCorrect = validateAreaCode();  
	if (isTheAreaCodeCorrect) {  
		return true;  
	} else {  
		theForm.HOME_PHONE1.style.backgroundColor = "red";  
		return false;  
	}  
}
		
		
		
		
		
		
		
		
		 function fnEnterInfo() {  
 if (fnValidateEmp()){  
 if (fnValidateEmail() ){  
 if (fnValidatePhones() ){  
 if (ValidateTotalDebt()){  
 if (poorVoxy()) {  
 document.getElementById('submitButton').disabled=true;   
 document.frmFirstInfo.submit();  
 }else{alert('Area Code Does Not Match Your State!')}  
 }else{alert('The Total Amount of your Unsecured Debt must be At Least $10,000.00, please re-enter')}  
 }else{alert('Area Code Does Not Match Your State!')}  
 }else{alert('Please input your email address')}  
 }else{alert('Please fill out all fields')}  
}

		
		function fnValidateEmp()
		{
			FormName = "document.frmFirstInfo";
			FeildsNames = new Array("F_NAME","L_NAME","HOME_PHONE1","STATE","E_MAIL","TOTAL_DEBT");
			for(i=0;i<FeildsNames.length;i++)
			{
				if (eval(FormName + "."+ FeildsNames[i]+ ".value == ''"))
				{
					if (FeildsNames[i] != 'TOTAL_DEBT')
					{
						alert("Please fill out all required fields!");
						eval(FormName + "." + FeildsNames[i] + ".focus()");
						return false;
					}
					else
					{
						if (document.getElementById("TOTAL_DEBT_V").value == '')
						{
							alert("Please fill out all required fields!");
							document.getElementById("TOTAL_DEBT_V").focus();
							return false;
						}
					}
					
				}
			}
			return true;
		}
	
		 function fnValidatePhones(){  
	 var str1 = document.frmFirstInfo.HOME_PHONE1.value;  
	 var str2 = document.frmFirstInfo.HOME_PHONE2.value;  
	 var str3 = document.frmFirstInfo.HOME_PHONE3.value;  
	 var obj1 = document.frmFirstInfo.HOME_PHONE1;  
	 var obj2 = document.frmFirstInfo.HOME_PHONE2;  
	 var obj3 = document.frmFirstInfo.HOME_PHONE3;  
	   
	 var re = /^(\d{3})$/;  
	 var re2 = /^(\d{4})$/;  
	   
	if (str1.match(re)) {  
			if (str2.match(re)) {  
			   if (str3.match(re2)) {  
					return true;  
			   }else{obj3.style.backgroundColor = 'red';}  
		  }else{obj2.style.backgroundColor = 'red';}  
	 }else{obj1.style.backgroundColor = 'red';}  
	 return false;  
}
		
		function fnValidateExtNumbers()
		{
			ExtNumberRegExp = /^(\d+)$/;
			FormName = "document.frmFirstInfo";
			FeildsNames = new Array("WORK_PHONE_EXT");
			for(i=0;i<FeildsNames.length;i++)
			{
				if (eval(FormName + "."+ FeildsNames[i]+ ".value == ''")) continue;
				if (eval("!ExtNumberRegExp.test(" + FormName + "."+ FeildsNames[i]+ ".value)"))
				{
					alert("Please input correct external number!");
					eval(FormName + "." + FeildsNames[i] + ".focus()");
					return false;
				}
			}
			return true;
		}
		
		function fnValidateEmail()
		{
			EmailRegExp = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/;
			FormName = "document.frmFirstInfo";
			FeildsNames = new Array("E_MAIL");
			for(i=0;i<FeildsNames.length;i++)
			{
				if (eval(FormName + "."+ FeildsNames[i]+ ".value == ''")) continue;
				if (eval("!EmailRegExp.test(" + FormName + "."+ FeildsNames[i]+ ".value)"))
				{
					alert("Please input correct e-mail!");
					eval(FormName + "." + FeildsNames[i] + ".focus()");
					return false;
				}
			}
			return true;
		}
		
		function ValidateIntNumbers()
		{
			FormName = "document.frmFirstInfo";
			IntRegExp = /^(\d+)$/;
			FeildsNames = new Array("CREDITORS_COUNT");
			for(i=0;i<FeildsNames.length;i++)
			{
				if (eval(FormName + "."+ FeildsNames[i]+ ".value == ''")) continue;
				if (eval("!IntRegExp.test(" + FormName + "."+ FeildsNames[i]+ ".value)"))
				{
					alert("Please input correct number!");
					eval(FormName + "." + FeildsNames[i] + ".focus()");
					return false;
				}
			}
			return true;
		}
		
		function isUSACurr(string)
		{
			reCurrencyWithCommas = /^\$?\d{1,3}(,\d{3})*(\.\d{1,2})?$/;
			reCurrencyWithoutCommas = /^\$?\d+(\.\d{1,2})?$/;
			if ((reCurrencyWithCommas.test(string)) || (reCurrencyWithoutCommas.test(string))) return true
			else return false;
		}
		
		function formatCurrency(num) 
		{
			num = num.toString().replace(/\$|\,/g,'');
			if(isNaN(num)) num = "0";
			
			sign = (num == (num = Math.abs(num)));
			num = Math.floor(num*100+0.50000000001);
			cents = num%100;
			num = Math.floor(num/100).toString();
			if(cents<10) cents = "0" + cents;
			
			for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
				num = num.substring(0,num.length-(4*i+3))+','+
				
			num.substring(num.length-(4*i+3));
			return (((sign)?'':'-') + '$' + num + '.' + cents);
		}
		
		function ValidateTotalDebt()
		{
			if (document.getElementById("TOTAL_DEBT_V").value != "")
			{
			  if (!isUSACurr(document.getElementById("TOTAL_DEBT_V").value))
			  {
					alert ("Please check the format of the Amount of Total Debt.");
					document.getElementById("TOTAL_DEBT_V").focus();
					return false;
			  }
				document.getElementById("TOTAL_DEBT").value = document.getElementById("TOTAL_DEBT_V").value.replace(/\$|\,/g,'');
				if (document.getElementById("TOTAL_DEBT").value < MinDebt)
			  {
				  alert ("The Total Amount of your Unsecured Debt must be At Least "+formatCurrency(MinDebt)+", please re-enter");
				  document.getElementById("TOTAL_DEBT_V").focus();
				  return false;
			  }
			}
			return true;
		}



And Here's the corresponding form code that currently plugs into my crm:
<form name="frmFirstInfo" action="https://secure.pdsservers.com/fds/DSRemWeb/App/DSRemWebApp.dll/eci" method="POST">
  <input type="hidden" name="ShortForm" value="yes1" />
  <input type="hidden" name="UserAction" value="EnterClientInfo" /><br />
<span class="general">First Name:</span>
  <input type="text" name="F_NAME" maxlength="30" class="black14" size="10" />
		<br />
<span class="general">Last Name:</span>
  <input type="text" name="L_NAME" size="10" class="black14" maxlength="30" />
		<br />
<span class="general">E-Mail:</span>
  <input type="text" name="E_MAIL" size="10" class="black14" maxlength="100" />
		<br />
<span class="general">Day Phone:</span> (
  <input type="text" name="HOME_PHONE1" size="2" maxlength="3" class="black14" style="width:30px" />
		)&nbsp;
  <input type="text" name="HOME_PHONE2" size="2" maxlength="3" class="black14" style="width:30px" />
		-
  <input type="text" name="HOME_PHONE3" size="3" maxlength="4" class="black14" style="width:35px" />
		<br />
<span class="general">Evening Phone:</span> (
  <input type="text" name="WORK_PHONE1" size="2" maxlength="3" class="black14" style="width:30px">
&nbsp;)&nbsp;
  <input type="text" name="WORK_PHONE2" size="2" maxlength="3" class="black14" style="width:30px">
-
  <input type="text" name="WORK_PHONE3" size="3" maxlength="4" class="black14" style="width:35px">
		<br />
<span class="general">State:</span>
 <select name="STATE" size="1"  class="black14">
			<option value="">- Select A State -</option>
			<option value="AL">Alabama</option>
			<option value="AK">Alaska</option>
			<option value="AZ">Arizona</option>
			<option value="AR">Arkansas</option>
			<option value="CA">California</option>
			<option value="CO">Colorado</option>
			<option value="CT">Connecticut</option>
			<option value="DE">Delaware</option>
			<option value="DC">District Of Columbia</option>
			<option value="FL">Florida</option>
			<option value="HI">Hawaii</option>
			<option value="ID">Idaho</option>
			<option value="IL">Illinois</option>
			<option value="IN">Indiana</option>
			<option value="IA">Iowa</option>
			<option value="KY">Kentucky</option>
			<option value="LA">Louisiana</option>
			<option value="ME">Maine</option>
			<option value="MD">Maryland</option>
			<option value="MA">Massachusetts</option>
			<option value="MI">Michigan</option>
			<option value="MN">Minnesota</option>
			<option value="MO">Missouri</option>
			<option value="MT">Montana</option>
			<option value="NE">Nebraska</option>
			<option value="NV">Nevada</option>
			<option value="NH">New Hampshire</option>
			<option value="NJ">New Jersey</option>
			<option value="NM">New Mexico</option>
			<option value="NY">New York</option>
			<option value="ND">North Dakota</option>
			<option value="OH">Ohio</option>
			<option value="OK">Oklahoma</option>
			<option value="OR">Oregon</option>
			<option value="PA">Pennsylvania</option>
			<option value="RI">Rhode Island</option>
			<option value="SD">South Dakota</option>
			<option value="TN">Tennessee</option>
			<option value="TX">Texas</option>
			<option value="UT">Utah</option>
			<option value="VT">Vermont</option>
			<option value="WA">Washington</option>
			<option value="WI">Wisconsin</option>
			<option value="WY">Wyoming</option>
 </select>
		  <br />
<span class="general">Unsecured Debt:</span>
 <select name="TOTAL_DEBT" size="1"  class="black14">
			<option value="">- Debt Amount -</option>
			<option value="10000">$10,000-$15,000</option>
			<option value="15000">$15,000-$30,000</option>
			<option value="30000">$30,000-$50,000</option>
			<option value="50000">$50,000-$100,000</option>
			<option value="100000">$100,000+</option>
 </select>
  <input type="hidden" name="TOTAL_DEBT_V" id="TOTAL_DEBT_V" />
		  <br />
		  <br />
<input name="submitButton" type="image" id="submitButton" src="/yourbutton.jpg" onclick="fnEnterInfo();return false;" />
</form>




That's what I'm trying to get this to work with. Next time you're in SoCal, I'll have to buy you a couple beers :-P

Edit: I'm being told now by a friend, that this isn't even possible, and that I have to do it through .asp - I hope he's wrong

This post has been edited by Cruciamentum: 09 April 2008 - 01:52 PM

Was This Post Helpful? 0
  • +
  • -

Page 1 of 1