/* ------------------------------------------------------------------------------------------------------------------------------- */
function showConfirmPopup() {
	var subWin = open('','subDoc','');

	subWin.window.resizeTo(450,400);
	subWin.document.writeln('Thank you for subscribing to our Newsletters<br>');
	subWin.document.writeln('A confirmation email has been sent to '+ document.subscribeform.subscriber.value);
	subWin.document.close();
}
/* ------------------------------------------------------------------------------------------------------------------------------- */

/* ------------------------------------------------------------------------------------------------------------------------------- */
function processSubscribeRequest(frm) {

	var newsform		= document.subscribeform;
	if (!newsform) { 	newsform	= frm;}

	var itemselected	= false;
	var email			= false;

	try {

		// dhtml popup passes a different form - allows for multi subscribe UIs on a page
		newsform	= (frm.name != newsform.name) ? frm : newsform;

		// validate the email address
		if (!validEmail(newsform.subscriber.value)) {
			msg1	= "- Invalid email address";
			newsform.subscriber.focus();
		} else { email	= true; }
	
		// loop through the form elements and look for a selection
		for (i=0;i<newsform.length;i++) {
			if (newsform.elements[i].checked) { itemselected = true;}
		}
	
		if (!itemselected) {
			msg2	= "- Please select at least one Newsletter for your Subscription";
			if (newsform.name != 'forumsubscribe' && newsform.name != 'prodsubscribe') {
				newsform.elements[0].click();	// select the first newsletter listed
			}
		}
	
		// create a message to notify the visitor of the problem with their submission
		msg = "The following problem was found with your submission: \n\n\t";
		if (!email) {
			msg += msg1;
			if (!itemselected) {msg += ' and \n\t'+msg2; };
			alert(msg);
			return false;
		} else {
			if (!itemselected) {
				msg += msg2; 
				alert(msg);
				return false;
			}
		}
	
		var popUpRequest	= newsform.popup ? true : false;
		
		var subformversion	= '';
		if (newsform.version) {	subformversion	= newsform.version.value; }

		var subname			= '';
		if (newsform.subscriber_name) {	subname	= newsform.subscriber_name.value; }
	
		// submit the form via ajax
		var subemail		= newsform.subscriber.value;

		var subrequest				= new Object();
		subrequest.pbp				= newsform.nl_pavelnews.checked == true ? 1 : 0;
		subrequest.pu				= newsform.nl_products.checked == true ? 1 : 0;
		subrequest.pn				= newsform.nl_publisher.checked == true ? 1 : 0;

		subrequest.newsform			= newsform;
		subrequest.subformversion	= subformversion;
		subrequest.popUpRequest		= popUpRequest;
		subrequest.subname			= subname;
		subrequest.subemail			= subemail;

		var submitrequest	= submitSubscriptionRequest(subrequest);


	}
	catch (err) {
		//writeToElement('debugout','Received error :' + response);
		//alert('error:' + err.description);
		
		var msg		= 'unexpected error encountered';
		if (isDev()) { msg	+= ' ' + err; };
		
		writeToElement('subscribesubmitmsg',msg);
		hideElement('subscribesubmit');
		showElement('subscribesubmitmsg');

		return false;
	}


	// ajax submission - do not submit the form directly
	return false;
	//return true;
}

/* ------------------------------------------------------------------------------------------------------------------------------- */

/* ------------------------------------------------------------------------------------------------------------------------------- */
function submitSubscriptionRequest(request) {

	var url		= '/cgi-bin/subscribe_ajax.pl';

	var loc		= document.location.toString();

	var status = AjaxRequest.get(
		{	'url'		: url,
			'ajaxrequest' : '1',
			'subname': request.subname,
			'subemail': request.subemail,
			'pbp': request.pbp,
			'pu': request.pu,
			'pn': request.pn,
			'subformversion': request.subformversion,
			'onSuccess'	: function(req){ processSubscriptionRequestResponse(req.responseText,request); },
			'onLoading'	: function(req) { writeToElement('subscribesubmitmsg','Submitting...'); }
		}
	);

	hideElement('subscribesubmit');
	showElement('subscribesubmitmsg');

	return status;
}
/* ------------------------------------------------------------------------------------------------------------------------------- */

/* ------------------------------------------------------------------------------------------------------------------------------- */
function processSubscriptionRequestResponse(response,request) {

	// process the response
	var success		= false;
	try {
		eval("var result = ("+response+")");
	}
	catch (e) {
		writeToElement('resultdiv','result processing error :' + response);
	}

	if (result) {
		if (result.success)	{

			//writeToElement('subscribesubmitmsg',result.success);
			success		= true;

		} else if (result.error)	{
			writeToElement('subscribesubmitmsg','result.error received \n' + result.error);
		} else {
			writeToElement('subscribesubmitmsg','error - unknown result:' + response);
		};
	} else {
		writeToElement('subscribesubmitmsg','Received error :' + response);
	}

	if (!success) {
		return false;
	}

	//writeToElement('subscribesubmitmsg',response);
	//var newsform		= document.subscribeform;
	newsform			= request.newsform;

	// set the usermail cookie	
	createDomainCookie('useremail',newsform.subscriber.value,730);

	try {
		// split test
		//_uacct = 'UA-2101236-2';
		//urchinTracker("/3025758935/goal");
		urchinTracker('/action/subscribe.html');
	}
	catch (err) {
		// ignore - GA not present
	}


	try {
	
		newsform.action		= '/cgi-bin/subscribe_confirmation.pl'
		if (!request.popUpRequest) {
	
			var dhtmlpopup	= newsform.dhtmlpopup ? true : false;
	
			
			var submsg	 = 'You are now subscribed';
			if (!dhtmlpopup) {	submsg		+= '<br>'; };
			submsg		+= '<br><font style="color:red">Please wait 10 minutes for delivery of confirmation and related emails.</font>';
	
			writeToElement('subscribesubmitmsg',submsg);

			displayDHTMLConfirmPopUp(request);
			createDomainCookie('useremail',newsform.subscriber.value,730);
			setDDUserEmail(newsform.subscriber.value);

		} else {
			// popup source -> load response directly into the document
			newsform.writecookie.value	= 'confirmsub';
			newsform.submit();
		}

	}
	catch(e) {
	}


}
/* ------------------------------------------------------------------------------------------------------------------------------- */

/* ------------------------------------------------------------------------------------------------------------------------------- */
function processDeferralRequest(element) {

	// set a deferral cookie
	var expireDate		= new Date;
	var yr				= expireDate.getFullYear();
	var time			= expireDate.getTime();
	
	var msg;

	if (element) {
		if (element.match(/never/)) {
			yr					= yr<2000 ? yr+1902 : yr+2;
			expireDate.setYear(yr);
			document.cookie		= "useremail=never;expires=" + expireDate.toGMTString() + ";path=/; domain=.dragondoor.com";
			msg					= "No problem, if you find you want to subscribe to a newsletter you will find many opportunities on the site";

		} else if (element.match(/week/)) {
			expiretime			= time + ((((1000)*60*60)*24)*7);	// add 7 days in millisecs to the js date
			expireDate.setTime(expiretime);
			document.cookie		= "useremail=week;expires=" + expireDate.toGMTString() + ";path=/; domain=.dragondoor.com";
			msg					= "Thanks, see you in a week";
		}
		
		if (msg) {
			
			var closelink		= "<br><center><div style=\"padding-top:40px\"><a href=\"javascript:window.close()\">Close</a></div></center>";

			msg	= '<div style="margin:10px;padding:10px">'+msg+closelink+'</div>';

			document.open();
			document.write(msg);
			document.close();
		}
	}
	
	setTimeout( 'window.close()', 4000 );
	//alert(element);
}
/* ------------------------------------------------------------------------------------------------------------------------------- */
/* ------------------------------------------------------------------------------------------------------------------------------- */
/* ------------------------------------------------------------------------------------------------------------------------------- */
