var httpRequestSupported = true;
var http_request = false;
var responseProcessorFunction;
function isHttpRequestSupported() {

	if (window.XMLHttpRequest) {   
		httpRequest = new XMLHttpRequest(); 
	} else if (window.ActiveXObject) { 
		try { 
			httpRequest = new ActiveXObject("Msxml2.XMLHTTP"); 
		} catch (e) { 
			try { 
				httpRequest = new ActiveXObject("Microsoft.XMLHTTP"); 
			} catch (e) {} 
		} 
	} 
	
	if (!httpRequest) { 
		httpRequestSupported = false;
	} 
	
	return httpRequest;
} // end function


function makeHttpRequest(url, callbackFunction, returnData) 
{ 
	var httpRequest = false; 
	if (!httpRequestSupported) {
		return;  
	}
	
	httpRequest = isHttpRequestSupported();
	
	if (!httpRequest) { 
		httpRequestSupported = false;
		return false; 
	} 

 	httpRequest.open('GET', url, true);   
 	
	httpRequest.onreadystatechange = function() { 
		if (httpRequest.readyState == 4) {       
			if (httpRequest.status == 200) { 
				if (returnData) { 
					eval(callbackFunction + '(httpRequest.responseXML)'); 
				} else { 
					eval(callbackFunction + '(httpRequest.responseText)'); 
				} 
			} else { 
				//eval(callbackFunction + '("")'); 
				//alert("error fetching the data");
			} 
		} 
	} 
	
	httpRequest.send(null); 
} // end function				   

//Start of modification by infosys date for product detail - 03/04/2007
function makeHttpPostRequest(url,params,callbackFunction, returnData) 
{ 
	var httpRequest = false; 
	if (!httpRequestSupported) {
		return;  
	}
	
	httpRequest = isHttpRequestSupported();
	
	if (!httpRequest) { 
		httpRequestSupported = false;
		return false; 
	} 

 	httpRequest.open('POST', url, true);   
 	
	httpRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	httpRequest.setRequestHeader("Content-length", params.length);
	httpRequest.setRequestHeader("Connection", "close");
 	
 	
	httpRequest.onreadystatechange = function() { 
		if (httpRequest.readyState == 4) {       
			if (httpRequest.status == 200) { 
				if (returnData) { 
					eval(callbackFunction + '(httpRequest.responseXML)'); 
				} else { 
					eval(callbackFunction + '(httpRequest.responseText)'); 
				} 
			} else { 
				//eval(callbackFunction + '("")'); 
				//alert("error fetching the data");
			} 
		} 
	} 
	
	httpRequest.send(params); 
} // end function
//End of modification by infosys date for product detail - 03/04/2007



function makePostrequest(url,params,responseProcessorFn)
{
	responseProcessorFunction=responseProcessorFn;
	if (window.XMLHttpRequest) 
	{ // Mozilla, Safari,...
    	http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType) 
        {
         	// set type accordingly to anticipated content type
            //http_request.overrideMimeType('text/xml');
            http_request.overrideMimeType('text/html');
         }
    } 
    else if (window.ActiveXObject) 
    { // IE
        try 
        {
           http_request = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e) 
        {
          try
          {
             http_request = new ActiveXObject("Microsoft.XMLHTTP");
          }
          catch (e)
          {
          }
        }
    }
    if (!http_request) 
    {
    	return false;
    }
    http_request.open('POST', url, true);
    http_request.onreadystatechange = alertContents;	  
	http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	http_request.setRequestHeader("Content-length", params.length);
	http_request.setRequestHeader("Connection", "close");
	http_request.send(params);
}

function makeInstorePostrequest(url,params,responseProcessorFn)
{
	//alert("hi");
	responseProcessorFunction=responseProcessorFn;
	if (window.XMLHttpRequest) 
	{ // Mozilla, Safari,...
    	http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType) 
        {
         	// set type accordingly to anticipated content type
            //http_request.overrideMimeType('text/xml');
            http_request.overrideMimeType('text/html');
         }
    } 
    else if (window.ActiveXObject) 
    { // IE
        try 
        {
           http_request = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e) 
        {
          try
          {
             http_request = new ActiveXObject("Microsoft.XMLHTTP");
          }
          catch (e)
          {
          }
        }
    }
    if (!http_request) 
    {
    	return false;
    }
    http_request.open('POST', url, true);
    http_request.onreadystatechange = alertInstoreContents;	  
	http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	http_request.setRequestHeader("Content-length", params.length);
	http_request.setRequestHeader("Connection", "close");
	http_request.send(params);
}

function alertInstoreContents() 
{
    if (http_request.readyState == 4) 
    {    	
    	//alert('http_request.status='+http_request.status);
    	if (http_request.status == 200) 
		{
	         var contentType=http_request.getResponseHeader("Content-Type");
	         var status;
	         if (contentType.indexOf('text/html') != -1)
	         {
	         	status='error';
	         	eval(responseProcessorFunction + '(status,http_request.responseText)');
	         }
	         else if(contentType.indexOf('text/xml') != -1)
	         {
				status='success';
				eval(responseProcessorFunction + '(status,http_request.responseText)');

	         }     
	    }
	    else
	    {    
		    var status='error';
		//Start of Modification by Infosys for Print On Demand for CreateInStore-PrintInStore RT-31751
	    	//if(document.printPrepare.printInStore.value=="true"){
	    		//alert(document.printPrepare.retryCount.value);
				if(document.printPrepare.retryCount.value<=document.printPrepare.maxRetryCount.value){
					status='error';					
					var statusText='<TABLE class=\"instoreErrorBorder\"><TBODY><TR><TD><DIV class=\"errortext\"><UL><li>Retrying ..... '+ document.printPrepare.retryCount.value +'.</li></UL></DIV></TD></TR></TBODY></TABLE>';
					eval(responseProcessorFunction + '(status,statusText)');		
		         	setTimeout("retry()",document.printPrepare.retryInterval.value);
		        }
		        else{
					var statusText='<TABLE class=\"instoreErrorBorder\"><TBODY><TR><TD><DIV class=\"errortext\"><UL><li>Please contact a sales associate who can print your card. We are sorry for the inconvenience.</li></UL></DIV></TD></TR><TR><TD class=\"FailureConfirmation_number_a\">'+document.printPrepare.orderId.value+'</TD></TR></TBODY></TABLE>';
					eval(responseProcessorFunction + '(status,statusText)');			
				}
			/*}
			else{
				var status='error';
            	var statusText='<TABLE class=\"errorBorder\"><TBODY><TR><TD><DIV class=\"errortext\"><UL><li>We are unable to complete your request. Please try again.</li></UL></DIV></TD></TR></TBODY></TABLE>';
				eval(responseProcessorFunction + '(status,statusText)');			
			}	*/
	    }
   	 }
}
function retry(){
 	 	getStatusOfPDF();
}


function alertContents() 
{
    if (http_request.readyState == 4) 
    {    	
	    if (http_request.status == 200) 
	    {
	         var contentType=http_request.getResponseHeader("Content-Type");
	         var status;
	         if (contentType.indexOf('text/html') != -1)
	         {
	         	status='error';
	         	eval(responseProcessorFunction + '(status,http_request.responseText)');
	         }
	         else if(contentType.indexOf('text/xml') != -1)
	         {
	         	status='success';
	 			eval(responseProcessorFunction + '(status,http_request.responseText)');
	         }     
	    }
	    else
	    {
	            var status='error';
	            var statusText='<TABLE class=\"errorBorder\"><TBODY><TR><TD><DIV class=\"errortext\"><UL><li>We are unable to complete your request. Please try again.</li></UL></DIV></TD></TR></TBODY></TABLE>';
				eval(responseProcessorFunction + '(status,statusText)');
	    }
   	 }
}

//Start of Modification by Infosys for Print On Demand for CreateInStore-PrintInStore RT-31751
function readXmlContents(responseXML)
{   
	while( responseXML.indexOf("&lt;")!=-1){
		responseXML = responseXML.replace("&lt;","<");
	}
	while( responseXML.indexOf("&gt;")!=-1){
		responseXML = responseXML.replace("&gt;",">");
	}
	var doc=null;
	if (window.ActiveXObject)
	{
		// XML Parsing code for IE Browser
		doc=new ActiveXObject("Microsoft.XMLDOM");
		doc.async="false";
		doc.loadXML(responseXML);
	}
	else
	{
		var parser=new DOMParser();
		doc=parser.parseFromString(responseXML,"text/xml");
	}
	return doc;
} 

//End of Modification by Infosys for Print On Demand for CreateInStore-PrintInStore RT-31751
