//Alert PopUp animation : DR 05/19/2006
//TODO: use config
var emailFormUrl = "yp_email_listing.php";
var mobilFormUrl = "yp_sms_listing.php";
var proxyHost= hostServ+"/bp/spproxy?";
//var mloaded = true;
//var sdframes=6;
//preloadImages("spacer.gif","sendmotion1.gif","sendmotion2.gif","sendmotion3.gif","sendmotion4.gif","sendmotion5.gif","sendmotion6.gif","sendmotion7.gif","sm/top_left.gif","sm/top_middle.gif","sm/top_right.gif","sm/left_middle_top.gif","sm/left_middle.gif","sm/right_middle_top.gif","sm/right_middle.gif","sm/bot_left.gif","sm/bot_mid.gif","sm/bot_right.gif");
var myClickType="";
var myBidClickUrl="";
var myListingClickInfo="";
var myLID="";
var req;
// AJAX call to send form and get response
function loadXMLDoc(url) {
// branch for IE/Windows ActiveX version
if (typeof ActiveXObject != "undefined") {
req = new ActiveXObject('MSXML2.XMLHTTP.3.0');
// branch for native XMLHttpRequest object
}else if (typeof XMLHttpRequest != "undefined") {
req = new XMLHttpRequest();
}
if(req) {
try {
req.onreadystatechange = processReqChange;
req.open("GET", proxyHost+encodeURI(url), true);
//alert("proxyHost+encodeURI(url): " + proxyHost+encodeURI(url));
// the third parameter - true - specified ASYNCHRONOUS processing i.e. not waiting for the response!
req.send("");
} catch(e) {
//alert("Problem (did not get response!): " + e);
// VLG problem here, no request object been created
// need error handling here!!!
hideDOM('sendFormTable');
showDOM('sendErr');
showDOM('techErr');
}
}
}
function processReqChange()
{
var emailStat = "";
// only if req shows "complete"
if (req.readyState == 4) {
// only if "OK"
if (req.status == 200) {
// ...processing statements go here...
var response = req.responseXML.documentElement;
//var status = response.getElementsByTagName('status')[0].firstChild.nodeValue;
var statusAr = response.getElementsByTagName('status');
var status = statusAr[0].firstChild.nodeValue;
//alert("status: "+status+" statusAr: "+statusAr+" statusAr[0].firstChild.nodeValue: "+statusAr[0].firstChild.nodeValue);
if(status != "OK") {
//alert("Problem (request status is NOTOK!)");
emailStat = "TECHERR";
} else {
//var confirmation = response.getElementsByTagName('confirmation')[0].firstChild.nodeValue;
var confirmationAr = response.getElementsByTagName('confirmation');
var confirmation = confirmationAr[0].firstChild.nodeValue;
//alert("confirmation: "+confirmation+" confirmationAr[0].firstChild.nodeValue: "+confirmationAr[0].firstChild.nodeValue);
if(confirmation != "Y") {
//alert("Problem (conformation is N!): " + req.statusText);
emailStat = "SPAMERR";
}
if (status=="OK" && confirmation=="Y") {
// add click log image to thx page
logClick(myBidClickUrl, myListingClickInfo, myClickType);
hideDOM('sendFormTable');
showDOM('sendThx');
var pos = myListingClickInfo.indexOf('relativePosition=') + 17;
var listRelativePos = myListingClickInfo.substring(pos);
pos = listRelativePos.indexOf('&');
if(pos > 0) {
listRelativePos = listRelativePos.substring(0,pos);
}
// alert(myBidClickUrl+' || '+myListingClickInfo+' || '+listRelativePos);
// NEXT COMMENTED TO PREVENT DUP CLICKS
// doPhoneLink(myBidClickUrl, myListingClickInfo, listRelativePos);
//if(showObject('phoneVal'+listRelativePos)) {
//hideObject('phoneLink'+listRelativePos);
//showObject('phoneLabel'+listRelativePos);
//logClick(bidClickUrl, myListingClickInfo, "phoneReveal");
//addToList(myBidClickUrl, myListingClickInfo);
//}
emailStat = "OK";
}
}
} else {
//alert("Problem (request status code is: " + req.statusText + "!");
emailStat = "TECHERR";
}
if(emailStat != "OK") {
hideDOM('sendFormTable');
showDOM('sendErr');
showDOM('techErr');
}
//alert("emailStat: "+emailStat + " status: "+status+" statusAr: "+statusAr+" statusAr[0].firstChild.nodeValue: "+statusAr[0].firstChild.nodeValue);
}
}
function hideDOM(id)
{
dom = findDOM(id);
if (dom) dom.style.display = "none";
}
function showDOM(id)
{
dom = findDOM(id);
if (dom) dom.style.display = "inline";
}
function setInnerHTML(id, inner, color)
{
dom = findDOM(id);
if (dom) {
dom.innerHTML = inner;
if (color != '') dom.style.color = color;
}
}
function setSRC(id, src)
{
dom = findDOM(id);
if (dom) dom.src = src;
}
function clearDOM(id)
{
dom = findDOM(id);
if (dom) dom.value = "";
}
function clearSelectDOM(id)
{
dom = findDOM(id);
if (dom) dom.selectedIndex = 0;
}
function setDOM(id, value)
{
dom = findDOM(id);
if (dom) dom.value = value;
}
function valid_email(address) {
emailRe = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*\.(\w{2}|(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum))$/
if (emailRe.test(address)) {
return true;
}
else {
return false;
}
}
// validate form fields and if ok, send form to server
function validate(subButton)
{
var myUrl="";
var form = findDOM('sendform');
// var command="?xml=1&submit=1&lid="+myLID;
var command="?xml=1&submit=1&"+myLID;
// if all fields are set, send and say thanx
var ok=true;
if (form.name.value != "") {
setInnerHTML('nameError', '&nbsp;', 'black');
command+="&name="+escape(form.name.value).replace(/\+/g, '%2B').replace(/\"/g,'%22').replace(/\'/g, '%27') ;
}
else {
setInnerHTML('nameError','&nbsp;You must enter your name.', 'red');
ok=false;
}
from = form.from.value;
if (valid_email(from)) {
setInnerHTML('fromError', '&nbsp;', 'black');
command+="&from="+escape(from).replace(/\+/g, '%2B').replace(/\"/g,'%22').replace(/\'/g, '%27');
}
else {
setInnerHTML('fromError', '&nbsp;Please enter a valid email address.', 'red');
ok=false;
}
if (myClickType=='submitEmail') {
myUrl = emailFormUrl;
var addresses = new Array();
var recipients = form.recipients.value;
addresses = recipients.split(",");
if (addresses.length > 5) {
setInnerHTML('toError', '&nbsp;Maximum of 5 email addresses', 'red');
ok = false;
}
else {
for(var i=0;i<addresses.length;i++) {
var address=addresses[i];
//trim whitespace
address = address.replace(/^\s+/g, '').replace(/\s+$/g, '');
if (valid_email(address)) {
setInnerHTML('toError', '&nbsp;', 'black');
command+="&recipients="+escape(recipients).replace(/\+/g, '%2B').replace(/\"/g,'%22').replace(/\'/g, '%27');
}
else {
setInnerHTML('toError', '&nbsp;Please enter a valid email address.', 'red');
ok=false;
}
}
}
if (form.message.value == "") {
setInnerHTML('cmError', '&nbsp;Please enter a message.', 'red');
ok=false;
}
else {
//command+="&message="+form.message.value;
command+="&message="+escape(form.message.value).replace(/\+/g, '%2B').replace(/\"/g,'%22').replace(/\'/g, '%27')+"&host="+escape(form.host.value).replace(/\+/g, '%2B').replace(/\"/g,'%22').replace(/\'/g, '%27');
setInnerHTML('cmError', '&nbsp;', 'black');
}
}
else {
myUrl = mobilFormUrl;
if (form.carrier.selectedIndex == 0) {
setInnerHTML('cmError', '&nbsp;Please select a carrier.', 'red');
ok=false;
}
else {
var mySelectedIndex = form.carrier.selectedIndex
var myCarrier = form.carrier.options[mySelectedIndex].value;
command+="&carrier="+myCarrier;
setInnerHTML('cmError', '&nbsp;', 'black');
}
area = form.area.value;
exchange = form.exchange.value;
number = form.number.value;
area = area.replace(/^\s+/g, '').replace(/\s+$/g, '');
exchange = exchange.replace(/^\s+/g, '').replace(/\s+$/g, '');
number = number.replace(/^\s+/g, '').replace(/\s+$/g, '');
if (isNaN(parseInt(area)) || area.length!=3 ||
isNaN(parseInt(exchange)) || exchange.length!=3 ||
isNaN(parseInt(number)) || number.length!=4) {
setInnerHTML('toError', '&nbsp;Please enter a valid phone number.', 'red');
ok=false;
}
else {
command+="&area="+form.area.value;
command+="&exchange="+form.exchange.value;
command+="&number="+form.number.value;
command+="&host="+escape(form.host.value).replace(/\+/g, '%2B').replace(/\"/g,'%22').replace(/\'/g, '%27');
setInnerHTML('toError', '&nbsp;', 'black');
}
}
if (ok==true) {
// send the data, get a response
var sendButton = findDOM('sendButton');
if(sendButton){
sendButton.value = "Sending...";
sendButton.disabled = true;
}
//loadXMLDoc(myUrl+command);
setTimeout("loadXMLDoc('"+myUrl+command+"')", 1000);
}
return ok;
}
function sendto(adlog, bidClickUrl, listingClickInfo, ifr, lid){
//alert(adlog+'||'+bidClickUrl+'||'+listingClickInfo+'||'+ifr+'||'+lid);
loadForm( bidClickUrl, listingClickInfo, ifr, lid);
var sendButton = findDOM('sendButton');
if(sendButton){
sendButton.value = "Send";
sendButton.disabled = false;
}
/* if (!mloaded){
setTimeout("document.getElementById('name').focus()",0);
return;
}
var alertWin=findDOM('win_sm');
alertWin.style.position = 'absolute';
alertWin.style.height = '274px';
alertWin.style.width= '423px';
doChangeStyle(alertWin,'sendmotion',delay,0,1,sdframes);
if (needHideSelect('box_sm')){ setTimeout("ieHideSelect('box_sm',0)",delay); }
setupTb('content_sm', 'tbAlert_sm', 20,16);
setupContainer('box_sm');
setTimeout("tbPropsc()", delay*sdframes+100);
setTimeout("tbPropnm('op')", delay*sdframes+200);
setTimeout("document.getElementById('close_sm').focus()",delay*sdframes+200);
mloaded = false;*/
if(ifr == 'mForm'){
//alert(ifr);
document.getElementById("sendTo").className="sendToM";
}
if(ifr == 'eForm'){
//alert(ifr);
document.getElementById("sendTo").className="sendToE";
}
containerBox=findDOM('box_sm');
containerBox.style.visibility="visible";
}
function closeSendto(){
/*setupTb('content_sm', 'tbAlert_sm', 20, 16);
setTimeout("tbPropsc()",delay+100);
setTimeout("tbPropnm('cl')",delay+200);
var alertWin=findDOM('win_sm');
doClose(alertWin, 'sendmotion', sdframes);
if (needHideSelect('box_sm')){ setTimeout("ieHideSelect('box_sm',1)",delay+400);}
mloaded = true;*/
hideDOM('sendThx');
hideDOM('sendErr');
hideDOM('sendTo');
}
// load the form for email or SMS, display and hide appropriate fields and names
// clear error messages
function loadForm( bidClickUrl, listingClickInfo, url, lid){
// log the click, keep this logging info for submit click in thx page
myBidClickUrl=bidClickUrl;
myListingClickInfo=listingClickInfo;
// keep the LID for submission
myLID=lid;
// hide the thankyou message
hideDOM('sendThx');
hideDOM('sendErr');
//clear form fields
clearDOM('name');
clearDOM('from');
clearDOM('recipients');
clearDOM('message');
clearSelectDOM('carrier');
clearDOM('area');
clearDOM('exchange');
clearDOM('number');
//clear error messages
setInnerHTML('nameError', '&nbsp;', 'black');
setInnerHTML('fromError', '&nbsp;', 'black');
setInnerHTML('toError', '&nbsp;', 'black');
setInnerHTML('cmError', '&nbsp;', 'black');
// hide or display fields and set labels based on form type
if(url == 'eForm') {
// NEXT COMMENTED TO PREVENT DUP CLICKS
listingClickInfo = listingClickInfo.replace('bidType=CLIK','');
listingClickInfo = listingClickInfo.replace('bidType=CALL','');
logClick(bidClickUrl, listingClickInfo, 'sendEmail');
myClickType='submitEmail';
hideDOM('area');
hideDOM('exchange');
hideDOM('number');
hideDOM('carrierSelect');
hideDOM('policySMS');
//setSRC('logo_sm', 'http://img.superpages.com/texting/images/send_email_tab2.gif');
setInnerHTML('title_sm', 'Send this listing to email address', '');
setInnerHTML('tEmail', 'Email:', '');
setInnerHTML('tmessage', 'Message:', '');
setInnerHTML('toError', '&nbsp;Separate multiple addresses by commas (5 limit)', 'black');
showDOM('recipients');
showDOM('message');
showDOM('policyEmail');
}
else {
// NEXT COMMENTED TO PREVENT DUP CLICKS
listingClickInfo = listingClickInfo.replace('bidType=CLIK','');
listingClickInfo = listingClickInfo.replace('bidType=CALL','');
logClick(bidClickUrl, listingClickInfo, 'sendSMS');
myClickType='submitSMS';
hideDOM('recipients');
hideDOM('message');
hideDOM('policyEmail');
//setSRC('logo_sm', 'http://img.superpages.com/texting/images/send_sms_tab2.gif');
setInnerHTML('title_sm', 'Send this listing to a mobile phone', '');
setInnerHTML('tEmail', 'Phone:', '');
setInnerHTML('tmessage', 'Wireless Carrier:', '');
setInnerHTML('toError', '&nbsp;', '');
showDOM('area');
showDOM('exchange');
showDOM('number');
showDOM('carrierSelect');
showDOM('policySMS');
}
// show the form
showDOM('sendFormTable');
}
/*
Auto tabbing script- By JavaScriptKit.com
http://www.javascriptkit.com
This credit MUST stay intact for use
*/
function autotab(original,destination){
if (original.getAttribute&&original.value.length==original.getAttribute("maxlength"))
destination.focus()
}
