//************GLOBAL VARIABLES****
var XmlHttp
var ScriptEngine = "AjaxFunctionality.aspx";
var strVal = '';
var Callbackfunction =null;
//*******************************
function GetProgressXmlHttpObject()
{
  
			
var xmlHttp=null;
try
  {
  
//netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
  // Firefox, Opera 8.0+, Safari
  xmlHttp=new XMLHttpRequest();
  xmlHttp.overrideMimeType('text/xml');

  }
catch (e)
  {
  // Internet Explorer
  try
    {
    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
  catch (e)
    {
    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
  }

return xmlHttp; 	
}
//************FUNCTION FOR AJAX CALL********
function GetRequestProgress(RequestValues, ActionCase, callback)
{ 
			
	
  if(typeof(callback) == "function")
	  Callbackfunction = callback;	
  else
      Callbackfunction = null;
 	   
  
 	//alert(RequestValues);
	//alert(ActionCase);
 	//alert(callback);
  XmlHttp=GetProgressXmlHttpObject();
	
	//IF REQUEST IS NULL IT MEANS BROWSER DOESNOT SUPPORT HTTP REQUEST
		
	if (XmlHttp==null)
	{
		alert ("BROWSER DOES NOT SUPPORT HTTP REQUEST.");
		return;
	} 	
    
	//SETTING SERVER SCRIPTING PAGE URL(Scripting Engine Page)
				
	var url="/Assets/pages/"+ScriptEngine;

	url=url+"?ReqVal="+ escape(RequestValues);

	url=url+"&ReqCase="+ActionCase;
	url=url+"&Random="+Math.random();
	//alert(url);
	
	var sync;
	if(Callbackfunction!=null)
	{ 
		XmlHttp.onreadystatechange =StateChangedProgress; 
		sync = true;
    }
	else
	{ 
		sync = false;
	}
	XmlHttp.open("GET",url,sync );		
	XmlHttp.send(null);	
	
	if(Callbackfunction ==null)
		StateChangedProgress();
	
	
}




//***************AJAX RESPONSE FUNCTION***********************
function StateChangedProgress() 
{  
	//alert(XmlHttp);
	//alert(XmlHttp.readyState);
	//document.write(XmlHttp.readyState);
	if (XmlHttp.readyState==4 || XmlHttp.readyState=="complete")
	{ 	  	    
		//STORING THE AJAX PROCESSED VALUE 		
		var ResponseValue = XmlHttp.responseText;

		// Ascii Code for æ is ALT + 1452
		//SPLITTING THE PROCESSED VALUE AND THE CASE FOR WHICH WE ARE PROCESSING REQUEST
				//alert(ResponseValue);
		var ValCaseSplitter = ResponseValue.split("~");		
		var ProcessedValues = ValCaseSplitter[0];		
		var ProcessedCase = ValCaseSplitter[1];		
		//alert(ProcessedValues);
		//alert(ProcessedCase);

		
		//DEFINE  APPROPRIATE CASE FOR HANDLING PROCESSED VALUE
		
		//alert(ProcessedCase);
	
		switch(ProcessedCase)
		{
		   
			case 'SignIn':
	    		document.getElementById('hdnResult').value = ProcessedValues ;
            break;

			case 'LoggedOut':
	    		document.getElementById('hdnResult').value = ProcessedValues ;
            break;
            
            case 'EditEmailPassword':
	    		document.getElementById('hdnResultProfile').value = ProcessedValues ;
            break;
            
            case 'EditSecurityQues':
	    		document.getElementById('hdnResultProfile').value = ProcessedValues ;
            	break;
            
            case 'EditPersonalDetails':
	    		document.getElementById('hdnResultProfile').value = ProcessedValues ;
            	break;
			
            case 'EditInterest':
	    		document.getElementById('hdnResultProfile').value = ProcessedValues ;
            	break;

            case 'DeActivateAccount':
	    		document.getElementById('hdnResultProfile').value = ProcessedValues ;
            break;
            
            case 'SendEmailRecipes':
	    		document.getElementById('hdnResultRecipes').value = ProcessedValues ;
            	break;
           	 			
			case 'EmailOptin':
				document.getElementById('hdnResult').value = ProcessedValues;
				break;
            
            
            case 'MainWishlist':
	    		document.getElementById('divWishlistOverlay').innerHTML = ProcessedValues ;
            	break;
            
            case 'WishListConfirmation':
	    		document.getElementById('divWishlistOverlay').innerHTML = ProcessedValues ;
            	break;
            
            case 'isProductExistsInWishlist':
	    		document.getElementById('hdIsProductExistsInWishlist').value = ProcessedValues ;
            	break;
            
            case 'isWishlistNameExists':
	    		document.getElementById('hdIsWishlistNameExists').value = ProcessedValues ;
            	break;
            
            case 'SearchProduct':
	    		document.getElementById('DivProductSearch').innerHTML = ProcessedValues ;
            	break;
            
            case 'SearchContent':
	    		document.getElementById('DivContentSearch').innerHTML = ProcessedValues ;
            	break;
            	
          	case "AddRecipeWishList":
          			//alert(ProcessedValues);
					
					var ProcessedValuesArray = ProcessedValues.split('!');
					
					//alert(ProcessedValuesArray[0]);
					//alert(ProcessedValuesArray[1]);


					if ( ProcessedValuesArray[0].toLowerCase() == 'exists' )
					{
					
						document.getElementById('divErrorMsg').innerHTML = "This item already exists in " + ProcessedValuesArray[1] + " Recipe Box." ;
					}
					
					else if ( ProcessedValuesArray[0]!= 'Error')
					{
										
						Popup.hide('divSaveRecipes');	
						
						//alert(ProcessedValuesArray[0]);
						document.getElementById('divSaveConfirmation').innerHTML = ProcessedValuesArray[0];
						//alert(document.getElementById('divSaveConfirmation').innerHTML);
						//alert(document.getElementById('divSaveConfirmation'));

						Popup.showModal('divSaveConfirmation');
					}
					
					else if ( ProcessedValuesArray[0] == 'Error')
					{					
						document.getElementById('divErrorMsg').innerHTML = "An Error Occurred while adding item to the list." ;
					}

					
					///////  old code without list name
										
					//if ( ProcessedValues.toLowerCase() == 'exists' )
					//{
					//
					//	document.getElementById('divErrorMsg').innerHTML = "This item already exists.";
					//}
					//
					//else if ( ProcessedValues != 'Error')
					//{
					///					
					//	Popup.hide('divSaveRecipes');	
					//
					///	document.getElementById('divSaveConfirmation').innerHTML = ProcessedValues;
					//	
					//	Popup.showModal('divSaveConfirmation');
					//}					
								
				break;	


			  case "UseNCare":
			       document.getElementById('hidAJAXVal').value = ProcessedValues ;
			    break;
                      	
			case "AddComment":
			       document.getElementById('hdnResultRecipes').value = ProcessedValues ;
			    break;
			    
			case 'AddItemToRetailer':
	    		document.getElementById('hdnResultRegistry').value = ProcessedValues ;
            	break;
            
			 case 'OnCategoryChanged':
	    		document.getElementById('hdnResultRegistry').value = ProcessedValues ;
            	break;
             case 'OnProductLineChange':
	    		document.getElementById('hdnResultRegistry').value = ProcessedValues ;
            	break;
			 case 'EditEmailoptIn':
	    		document.getElementById('hdnResultProfile').value = ProcessedValues ;
            	break;
             case 'CheckAvailble':
	    		document.getElementById('hdnResultProfile').value = ProcessedValues ;
            	break;
			case "OnCategoryChangedRegistry":
					document.getElementById('hidAJAXVal').value = ProcessedValues ;
				break;
				case "OnProdCategoryChangeRegistry":
					document.getElementById('hidAJAXVal').value = ProcessedValues ;
						

				break;
				
// added 11/25/2010 for CWA wwh				
			case "WarrantyOnProdCategoryChangeRegistry":
				document.getElementById('hidAJAXVal').value = ProcessedValues ;
				break;
		        case 'WarrantyRegistrationProductLineChange':
				document.getElementById('hidAJAXVal').value = ProcessedValues ;
				break;
                        case "EmailAuthForm":
				document.getElementById('hidAJAXVal').value = ProcessedValues ;
				break;	
                        case "EmailTipsLabel":
				document.getElementById('hidAJAXVal').value = ProcessedValues ;
				break;	
//
				
				
			case "OnProductChangedRegistry":
					document.getElementById('hidAJAXVal').value = ProcessedValues ;
				break;
			case 'DeleteComment':
	    		document.getElementById('hdnResultRecipes').value = ProcessedValues ;
            	break;
			case 'RemoveItemWishlist':
	    		document.getElementById('hdnResultRecipes').value = ProcessedValues ;
            	break;

			case 'CheckEmailId':
	    		document.getElementById('hdnResultProfile').value = ProcessedValues ;
            	break;
            case 'SendEmailProduct':
	    		document.getElementById('hdnResultProduct').value = ProcessedValues ;
            	break;
            	
            case "OnCountryChangedStates":
				document.getElementById('hidAJAXVal').value = ProcessedValues ;
				break;	
			case "OnStoreChangedRetailers":
				document.getElementById('hidAJAXVal').value = ProcessedValues ;
				break;	
            case "OnCategoryChangedBrandsList":
				document.getElementById('hidAJAXVal').value = ProcessedValues ;
				break;	
			case "AddReceipeComment":
			       document.getElementById('hdnResultRecipes').value = ProcessedValues ;
			    break;
			case "DeleteReceipeComment":
			       document.getElementById('hdnResultRecipes').value = ProcessedValues ;
			    break;
			case "RemoveItemReceipeWishlist":
			       document.getElementById('hdnResultRecipes').value = ProcessedValues ;
			    break;
			    
			case "SendSharedRecipe":			
			
			if ( ProcessedValues.toLowerCase() == 'fail' ) 
			{
				document.getElementById('sErrorShareRecipe').style.color = 'red';			
				document.getElementById('sErrorShareRecipe').innerHTML = "Failed to Send Mail Error" ;
			}
			else
			{			   			  			   	
				Popup.hide('divShareRecipes');
				document.getElementById('ShareConfirmationDiv').innerHTML = ProcessedValues;					
				Popup.showModal('ShareConfirmationDiv');
			
			}
			
			break;
			
			case "SharedProductWishlist":			  
			
			document.getElementById('hdnResultRecipes').value = ProcessedValues ;
			
			break;
			
			case "SharedRecipeWishlist":			  
			
			document.getElementById('hdnResultRecipes').value = ProcessedValues ;
			
			break;
			
			//UPDATED ON 7-OCT-09
				 case 'OnProductRegistrationProductLineChange':
				 //alert(ProcessedValues );
				document.getElementById('hidAJAXVal').value = ProcessedValues ;
				break;
				
			  //update by kuber dutta on 08-oct-09 
				case "OnStoreChangeReNew":
				document.getElementById('hidAJAXVal').value = ProcessedValues ;
				break;	

			
			case "SendSharedArticle":
			  
			 
				if ( ProcessedValues.toLowerCase() == 'fail' ) 
				{
					document.getElementById('sErrorShareArticle').style.color = 'red';

				    document.getElementById('sErrorShareArticle').innerHTML = "Failed to Send Mail Error" ;
			   }
			   else
			   {			   			  			   	
					Popup.hide('divShareArticle'); 					
					document.getElementById('ShareConfirmationDiv').innerHTML = ProcessedValues;					
					Popup.showModal('ShareConfirmationDiv');				   
			   }

	   		 break;
	   		 
	   		 case "SendSharedRelease":
			  			 
				if ( ProcessedValues.toLowerCase() == 'fail' ) 
				{
					document.getElementById('sErrorShareRelease').style.color = 'red';
				    document.getElementById('sErrorShareRelease').innerHTML = "Failed to Send Mail Error" ;
			    }
			   else
			   {			   			  			   	
					Popup.hide('divShareRelease'); 					
					document.getElementById('ShareConfirmationDiv').innerHTML = ProcessedValues;					
					Popup.showModal('ShareConfirmationDiv');				   
			   }
			   
			//updated on  1 dec 2009			   
			     case 'ViewDetails':
			    
		   		document.getElementById('hdnResultProfile').value = ProcessedValues;
		   	
		   		break;
		   	case "SaveToMyArticles":
			
			$('#hdnSaveToMyArticleResult').val(ProcessedValues);
			
						

		   		//updated on 15 dec 2009
			 case "SendShareArticle":
					document.getElementById('hdnResultArticle').value = ProcessedValues ;
			   break;
				//updated on 15 dec 2009
			 case "RemoveItemArticleId":
					document.getElementById('hdnResultArticle').value = ProcessedValues ;
			   break;

			//updated on 13 jan 2010
			 case "SendUserEmail":
					document.getElementById('hdnResultProfile').value = ProcessedValues ;
			   break;
			   
 case 'NewOnCategoryChanged':
 //alert('k');
	    		document.getElementById('hdnResultRegistry').value = ProcessedValues ;
            	break;



          }
        
         
         if(Callbackfunction !=null)
         	Callbackfunction();
         	
         Callbackfunction = null;         	
         return true;
										
	}
}
