function refresh_preview(message)
{
	message = message || '';
	var chkAutoPreview = document.getElementById('chkAutoPreview');
	
	var frm = document.forms['frmCustom'] ;
	var img = document.getElementById("imgPreview")	;
	var i ;
	var vars = '' ;
	for(i=0 ; i< frm.elements.length; i++)
		vars = vars + frm.elements[i].name + '=' + escape(frm.elements[i].value) + '&' ;
	var page	=	'server_step2.php?'	;
	if (message == 'update' || message == 'redirect_step3' || message == 'redirect_step1')	
		page = page + 'update=true&' ;
	else {
		if ( chkAutoPreview.checked == false && !message && message.indexOf('force') == -1)	return	; // generate preview forcfully when called with 'update'
	}
	var url = page  + vars	;
	if (window.XMLHttpRequest) // code for Mozilla, etc.
			xmlhttp = new XMLHttpRequest();
	else if (window.ActiveXObject) // IE
		xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
	switch (message)
	{
		case 'force_enlarge' :
			xmlhttp.onreadystatechange = state_ChangeForEnlarge				;
			break ;
		case 'redirect_step3' :
			xmlhttp.onreadystatechange = stateChangeForRedirect_step3		;
			break ;	
		case 'redirect_step1' :
			xmlhttp.onreadystatechange=stateChangeForRedirect_step1 		;
			break ;	
		default:
			xmlhttp.onreadystatechange=state_Change ;
	}
	xmlhttp.open("GET", url ,true)
	xmlhttp.send(null);
	return false ;
}


function state_Change()
{
	if (xmlhttp.readyState == 4)
		doRefresh();
	else
		showLoading()	;
	return false;	
}

function state_ChangeForEnlarge()
{
	if (xmlhttp.readyState == 4){
		doRefresh();
		
		showLargePopup()	;
	}
	else
		showLoading()		;
	return false;	
}

function doRefresh()
{
		var img = document.getElementById("imgPreview")	;
		document.getElementById('divLoadingTop').style.display		=	'none'	;
		document.getElementById('divLoadingBottom').style.display	=	'none'	;
		var response = xmlhttp.responseText;
		if(window.location.href.indexOf('debug') > 0 )		alert(response); // debug
		if(isNaN(response)){
			img.src = 'images/failed.gif'	;  	return ;
		}
		else	
			img.src = 'previews/' + response + '_200.png'	;  // thumbnail	
		var hdn = document.getElementById("hdnPrevImage")	;
		hdn.value	=	response	;
		var current_image = document.getElementById("hdnCurrentImage")		;
		current_image.value	=	response	;
}

function showLoading()
{
	var img = document.getElementById("imgPreview")	;		
	img.alt = 'Loading...'	;
	
	//img.width = "201px";
	//img.height = "130px";
	//img.src	= 'images/progress_bar.gif';
	//img.src	= 'images/roller.gif';
	
	img.src	= 'images/loading.gif';
}
function stateChangeForRedirect_step3()
{
	if (xmlhttp.readyState == 4) 
		location.href = "step3.php?from_step2=true"	;
	/*if (xmlhttp.readyState == 4){
			var response = xmlhttp.responseText;
			alert(response);
	}*/
	
}

function stateChangeForRedirect_step1()
{
	if (xmlhttp.readyState == 4)
	{
		document.getElementById('message').innerHTML=
		'Thank you. You will receive a link via email which you can use to resume your work. <br /><span class="red"> Redirecting, please wait...</span>';
		location.href = "index.php"	;
	}
}


function showLargePopup()
{
	var current_image = document.getElementById("hdnCurrentImage")		;
	var large_image = 'large_image.php?i=previews/' + current_image.value + '_600.png'		;
	openUrlWithSize(large_image,625, 415, '')	;
}


function show_large_image()
{
	refresh_preview('force_enlarge');
	/*var current_image = document.getElementById("hdnCurrentImage")		;
	var large_image = 'large_image.php?i=previews/' + current_image.value + '_600.png'		;
	openUrlWithSize(large_image,625, 415, '')	;*/
	
}

function next_step(mode,mail,pgid,templates_id) {

					// code for Mozilla, etc.
					if (window.XMLHttpRequest){
						xmlhttp = new XMLHttpRequest();
						xmlhttp.onreadystatechange=step2;
						xmlhttp.open("GET",'finish_save.php?mode=' +mode+'&email_address='+mail+'&page_id='+pgid+'&templates_id='+templates_id,true);
						xmlhttp.send(null);
					}
				// code for IE
					else if (window.ActiveXObject){
						xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
						if (xmlhttp){
							xmlhttp.onreadystatechange=step2;
							xmlhttp.open("GET",'finish_save.php?mode=' +mode+'&email_address='+mail+'&page_id='+pgid+'&templates_id='+templates_id,true);
							xmlhttp.send();
						}
					}
	
			}
			
function step2(){
	if (xmlhttp.readyState == 4)
		refresh_preview('redirect_step3');
}

function finish_later(mode,mail,pgid,templates_id) {
	//alert(templates_id);

					// code for Mozilla, etc.
					if (window.XMLHttpRequest){
						xmlhttp = new XMLHttpRequest();
						if(mode=='step2')xmlhttp.onreadystatechange=finished;
						if(mode=='step3') xmlhttp.onreadystatechange=finished_step3;
						xmlhttp.open("GET",'finish_save.php?mode=' +mode+'&email_address='+mail+'&page_id='+pgid+'&templates_id='+templates_id,true);
						xmlhttp.send(null);
					}
				// code for IE
					else if (window.ActiveXObject){
						xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
						if (xmlhttp){
							document.getElementById("message").innerText = "Saving certificate, please wait.." ; // div of finish later
							if(mode=='step2')xmlhttp.onreadystatechange=finished;
							if(mode=='step3') xmlhttp.onreadystatechange=finished_step3;
						xmlhttp.open("GET",'finish_save.php?mode=' +mode+'&email_address='+mail+'&page_id='+pgid+'&templates_id='+templates_id,true);
							xmlhttp.send();
						}
					}
	
			}

			
function finished(){
	if (xmlhttp.readyState == 4) {
		document.getElementById("message").innerHTML = "Saving certificate, please wait.." ; // div of finish later
		refresh_preview('redirect_step1');
	}
}

function finished_step3()
{
	if (xmlhttp.readyState == 4)
	{
		document.getElementById('message').innerHTML=
		'Thank you. You will receive a link via email which you can use to resume your work. <br /><span class="red"> Redirecting, please wait...</span>';
		location.href = "index.php"	;
	}
	else
	document.getElementById('message').innerHTML=
		'Sending e-mail, please wait...'	;
}

function change_message_label(txt, control, from)
{
	if (from == '')
		fontSize = document.forms['frmCustom'].elements['hdn' + control + '_FontSize'].value;
	else
		fontSize = control;	
	
	if (fontSize == '1.25')
	{
		size = 240;
	}
	else if (fontSize == '1.50')
	{
		size = 150;
	}
	else
	{
		size = 400;
	}
	
	document.getElementById('message_label').innerHTML = '<i>(upto '+ size +' characters)</i>';
	if (txt.value.length > size)
	{
		txt.value = txt.value.substring(0, size);
		return 1;
	}
	
}

