var debugLevel = 3;
var isInteractive = true;
var callMap  = new Object();
var currentRequestId = null;
var isRequestInProgress = false;
var prerequestDivId = "";
var divwidth = "";
var divheight = "";
var pageParam = new Array();
var secureRequestDivId = "";
var extrnparams= new Array();


////////////////////////// custom callback functions
function preSubmitForGoogle(requestDivId,params)
{
 //alert("presubmit: RequestDivID ["+requestDivId+"]");
 var pm = new Array();
 pm['hl']='en';
 pm['q'] = 'india';
 pm['meta'] ='';
 
 return pm;
}

function afterResponseForGoogle(requestDivId,targetDivId,responseText)
{
	//alert("postResponse:afterResponseForGoogle RequestDivID ["+requestDivId+"] TargetDivID ["+targetDivId+"]");
	hello1(); //functions came in the response HTML
	hello2();  //functions came in the response HTML
}


/////////////////////////////framework functions
function doRequest(requestDivId,callerObj,parameters)
{
	
if(callerObj=='LoginForm_link' || callerObj=='sellerLoginLink')
	secureRequestDivId="";
//alert("requestDivId  .. callerObj-->"+requestDivId+"  "+callerObj+ "  "+parameters['productId']);
debug("doRequest :["+requestDivId+"]: "+isRequestInProgress,1);
 if(isRequestInProgress)
 {
	alert("Request is in Progress. Wait...");
	return;
 }
 
 
var headers = getRequestHeaders(requestDivId);
 pageParam = headers;


//alert("Request is in Progress. Wait..");

 currentRequestId = requestDivId;


if(headers["preRequestId:errorFlag"] && headers["preRequestId:errorFlag"] == "Y")
{
	prerequestDivId = "response:"+requestDivId;
	//alert("prerequestDivId-->"+prerequestDivId);

}
if(headers["isSecure"] && headers["isSecure"] == "Y")
{
	//extrnparams="";
	secureRequestDivId = requestDivId;
	//extrnparams = parameters;
	extrnparams=new Array();
	if(parameters && typeof parameters == "object")
	{
	//alert("secure  read extern params .........");
		
			for (var pname in parameters)
			{
			//alert("what params "+pname+" .. "+parameters[pname]);
				extrnparams[pname] = parameters[pname]; 
			}
		}
	
	//alert("secureRequestDivId   ... "+secureRequestDivId);
	//alert("extrnparams->"+extrnparams['submitDivId']);
	if(headers["loginFormId"]){
		
		//alert("headers['loginFormId']  - >"+headers["loginFormId"]);
		doRequest(headers["loginFormId"],callerObj,'');
	}
	
}


 var url =  headers["url"];
 
 isRequestInProgress = true;
 debug('ajax request : ['+url+']',1);
 responseReady = headers["status"]; //N = Not Sent, S=Sent, R=Response Ready
 var targetDivId = "response:"+requestDivId;
 var isOkToCall = true;
 var isRender = true;
 var isCacheable = (headers["isCacheable"] && headers["isCacheable"] == "Y");
 if(responseReady)
 {
	
	if (responseReady == "S")
	{
		debug("Request Sent.Waiting for the Response...",3);
		isOkToCall = false;
		isRender = false;
	}
	else if (isCacheable && responseReady == "R")
	{
		debug("Response already available.",2);	
		isOkToCall = false;
		isRender = true;
	}
	
 }

 if(isOkToCall)
 {

	debug('ajax request : ['+url+'] 1');
	
	removeDiv("responses",targetDivId);
	requestParams = getRequestParameters(requestDivId);
	//call presubmit , do server call, handle the errors, call the postresponse
	preSubmitCall = headers['beforerequest'];
	if(preSubmitCall && preSubmitCall.length > 0)
	{
		try
		{
    		debug("before presubmit function "+preSubmitCall,2);
		var preFunc = eval(preSubmitCall);

		}
		catch(e)
		{
			alert("Presubmit function ["+preSubmitCall+"] not defined");
			isRequestInProgress = false;
			return false;
		}

		var retVal = preFunc(requestDivId,requestParams,prerequestDivId);
		if(typeof retVal=="boolean" && retVal == false)
		{
			isRequestInProgress = false;
			return false;
		}
		else if(typeof retVal== "object")
		{
			//override the parameters if already available
			for (var pname in retVal)
			{
				requestParams[pname] = retVal[pname]; 
			}
		}
	
	}

	
	if(extrnparams && typeof extrnparams == "object")
		{
	
			for (var pname in extrnparams)
			{
				requestParams[pname] = extrnparams[pname]; 
			}
		}
	
	if(parameters && typeof parameters == "object")
		{
		//alert("read params ........");
			for (var pname in parameters)
			{
				
				requestParams[pname] = parameters[pname]; 
				//alert(pname+"="+requestParams[pname]);
			}
		}
	
	var method = headers['method'];
	if(!method || method=="")
	  method="GET";
	 
	/*for (var pname in requestParams)
	 {
		alert(pname+"="+requestParams[pname]);
	 }*/
	 
	 //TODO show progress next to click with timeout to auto remove the progress icon
	 var responseText = sendServerRequest(method,url,requestParams,requestDivId,targetDivId,callerObj);
 }
 else
 {
	if(isRender)
	{
	 closeAllDivs(targetDivId);
	 showDiv(targetDivId);
	 currentRequestId = null;
	 isRequestInProgress = false;
	}
 }
 //clear the global flags
 
 
}




function sendServerRequest(method, url, params, requestDivId,targetDivId,callerObj)
{

   //alert("send request "+url+ " "+params+ " "+method);
	changeStatus(requestDivId,"S");
	var http = createRequestObject();
	//TODO Need to show progress if interactive otherwise dont show
	if(isInteractive)
		showProgress(requestDivId);
		var queryString = toQueryString(params);
	http.open(method,url+"?"+queryString,true);
    http.onreadystatechange = function() 
	{ 
		onServerResponse(http,requestDivId, targetDivId,callerObj); 
	};

	debug(url+"?"+queryString,2);
	//alert("queryString  ... "+url+"?"+queryString);
	http.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    http.send(queryString);
}

function toQueryString(requestMap)
{
	var query = ""
	if(!requestMap)
		return query;

	for (var pname in requestMap)
	{
		query  = query  + "" + pname + "=" + requestMap[pname] + "&";
	}
	if(query.length > 0)
	{
		query = query.substring(0,query.length-1);
	}
	return query;
}

function onServerResponse(http,requestDivId,targetDivId,callerObj)
{
var newdiv=null;
  //alert("handleResponse: readyState="+http.readyState);
  if(http.readyState == 4)
  {
	hideProgress(requestDivId);
    debug("onServerResponse RequestDiv ["+requestDivId+"] TargetDiv ["+targetDivId+"]",1 );
    if(http.status == 200)
	{
		currentRequestId = null;
		isRequestInProgress = false;
		changeStatus(requestDivId,"R");
		var response = http.responseText;
			
			
		
			
			//call the postresponse callback if registered
			var responseDisplayType = getHeader(requestDivId,"responseDisplayType");
			if(responseDisplayType == "popup")
			{
				
				newdiv=addDiv("responses",targetDivId,response);
				
				closeAllDivs(targetDivId);
				renderDiv(requestDivId,targetDivId,callerObj);
				
			}
			else if(responseDisplayType == "inline")
			{
				var onResponseCallback = getHeader(requestDivId,"afterresponse");
				if(onResponseCallback && onResponseCallback.length > 0)
				{
					var onResponsCustomFunc = eval(onResponseCallback);
					onResponsCustomFunc(requestDivId,targetDivId,response);
				}

			
			//TODO render the targetDiv based on the positions defined in requestdiv

			}
		
	}
	else
	{
		changeStatus(requestDivId,"N");
		alert("Error in Server Call ["+http.status+"]");
	}
  } 
  	//function to call js script from respose page(jsp) 
 	if(newdiv){
 			var x ="";
			x = newdiv.getElementsByTagName("script"); 
			if(x)
			{
			var script = "";
			    for(var i=0;i<x.length;i++)
			    {
				    script= x[i].text;
				}
				
				 eval(script);
			 }
	 }
}


function refreshRequestDiv(response){

	var valueMap = parseError(response);
	var refreshResponseDivId="";
	var refreshUrl="";
	var params = "";
	
	
	if(valueMap['refreshrequestid']!=null && valueMap['refreshrequestid']=='Yes')
	{
		
		if((valueMap['divid']))
			refreshResponseDivId = (valueMap['divid']);
		else{
			alert("No divId specified"); return false;
		}
		if((valueMap['url']))
			refreshUrl = (valueMap['url']);
		else
			alert("No url specified");

		if((valueMap['params']))
				params = (valueMap['params']);


		if(trim(valueMap['divid']) && valueMap['url'])
		{
			//alert("call doRequestAsync .. "+refreshResponseDivId+" -- "+ refreshUrl);
			
		 doRequestAsync(refreshResponseDivId,refreshUrl,params,null,null,true);
		}
	}
	
}
/* start-created by csp team members */ 
function parseError(response){
	
	frameStatusPos = response.indexOf("::");
	
	var messageString = response.substring(frameStatusPos+2,response.length);
	//alert("messageString-->"+messageString);
	var error = new Array();
	var i=0;
	while(messageString.indexOf("$")> -1){
		var pos = messageString.indexOf("$");
		
		error[i]= messageString.substring(0,pos);
		messageString = messageString.substring(pos+1,messageString.length);
		//alert("messageString  "+messageString+" error["+i+"]--"+error[i]);
		i++;
	}
	if(messageString.length>0 && messageString.indexOf("$")== -1)
		error[i]= messageString.substring(0,messageString.length);

	var errorMessages = new Array();
	for(i=0;i<error.length;i++)
	{
		var index = error[i].indexOf(":");
		var errorName = error[i].substring(0,index);
		var errorString = error[i].substring(index+1,error[i].length);
		//alert("errorName-->"+errorName);alert("errorString-->"+errorString);
		errorMessages[errorName.toLowerCase()] = trim(errorString);
		//alert("parse String... :: "+errorMessages[errorName.toLowerCase()]);
		
	}
	
	return errorMessages;

}



function createErrorDivs(errorsMap,prerequestDivId)
{

		//var test = errorsMap[i].valueOf();
	if(errorsMap['error']!=null)
	{	
	if(trim(errorsMap['error']))
	{
		var fieldId=""
		var fieldMesg=""
		if(errorsMap['error'].indexOf(":")>-1){
			/*var pos = errorsMap['error'].indexOf(":");
			fieldId = (errorsMap['error'].substring(0,pos))
		
			fieldMesg = (errorsMap['error'].substring(pos+1))
				
			fieldDivObj = document.getElementById(trim(fieldId));
			alert("fieldId.. "+fieldId+ " fieldMesg .. "+fieldMesg+ " fieldDivObj .. "+fieldDivObj );
			if(fieldDivObj){
				var newdiv = document.createElement('div');
				newdiv.setAttribute('id',"error:"+fieldId);
				fieldDivObj.appendChild(newdiv);
				
				newDivObj = document.getElementById("error:"+fieldId);
				if(newDivObj){
				newDivObj.innerHTML = fieldMesg;
				newDivObj.style.color = "red";
				}
			}*/
			
			createErrorDiv("framework:error","Sorry,There are errors!!!",prerequestDivId);
			return errorsMap['error'];
		}
		else
		createErrorDiv("framework:error",errorsMap['error'],prerequestDivId);
		
		//alert("errorsMap['error']--"+errorsMap['error']);
	}
	else
	{
		createErrorDiv("framework:error","No Error message specified",prerequestDivId);
	}
	}
	if(errorsMap['info']!=null)
	{
	if(trim(errorsMap['info'])){
			createInfoDiv("framework:info",errorsMap['info'],prerequestDivId);
	}
	else{
			createInfoDiv("framework:info","No Information message specified",prerequestDivId);
	}
	}
	if(errorsMap['warn']!=null)
	{
	if(trim(errorsMap['warn'])){
			createWarnDiv("framework:warn",errorsMap['warn'],prerequestDivId);
	}
	else{
			createWarnDiv("framework:warn","No Warning message specified",prerequestDivId);
	}
	}
}
function createErrorDiv(divName,errorMessage,prerequestDivId)
{
	var newdiv = document.createElement('div');
	newdiv.setAttribute('id',divName+":"+prerequestDivId);
	//alert("createErrorDiv-->"+'error:message:'+divName+":"+prerequestDivId);
	parentDivObj = document.getElementById('error:message:'+prerequestDivId);
	parentDivObj.appendChild(newdiv);
	
	newDivObj = document.getElementById(divName+":"+prerequestDivId);
	newDivObj.innerHTML = errorMessage;
	newDivObj.style.color = "red";
}
function createInfoDiv(divName,errorMessage,prerequestDivId)
{
	var newdiv = document.createElement('div');
	newdiv.setAttribute('id',divName+":"+prerequestDivId);

	parentDivObj = document.getElementById('error:message:'+prerequestDivId);
	parentDivObj.appendChild(newdiv);
	
	newDivObj = document.getElementById(divName+":"+prerequestDivId);
	newDivObj.innerHTML = errorMessage;
	newDivObj.style.color = "green";
	newDivObj.style.marginTop = "20px";
	newDivObj.style.marginleft = "50px";
	newDivObj.style.border = "1px solid black";



}
function createWarnDiv(divName,errorMessage,prerequestDivId)
{
	var newdiv = document.createElement('div');
	newdiv.setAttribute('id',divName+":"+prerequestDivId);

	parentDivObj = document.getElementById('error:message:'+prerequestDivId);
	parentDivObj.appendChild(newdiv);
	
	newDivObj = document.getElementById(divName+":"+prerequestDivId);
	newDivObj.innerHTML = errorMessage;
	newDivObj.style.color = "yellow";
	newDivObj.style.marginTop = "20px";
	newDivObj.style.marginleft = "50px";
	newDivObj.style.border = "1px solid black";
}
/* End-created by csp team members */ 

function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}


function renderDiv(requestDivId,targetDivId,callerObj)
{
	//TODO future scroll should be available
	//TODO future maxWidth, maxHieght
	//TODO future focus
	//TODO close icon

	//add refresh and close icon on each div dynamically if not already added
	var posx = getHeader(requestDivId,"posx");
	var posy = getHeader(requestDivId,"posy");
	displayDivAtObject(callerObj,posx,posy,targetDivId);
	
	var width = getHeader(requestDivId,"width");
	var height = getHeader(requestDivId,"height");
	resizeDiv(targetDivId,width,height);
	showDiv(targetDivId);
}

//1 = debug , 2=info, 3=warn, 4=error
function debug(mesg,level)
{
 if(level && level >= debugLevel)
 {
  alert(level+" : "+mesg);
 }
 
}

function closeAllDivs(divId)
{
	var allDivs = document.getElementsByTagName("div");
	//alert("Total response divs ["+allDivs.length+"]");
	for (var i=0; i<allDivs.length; i++)
	{
		var respDiv = allDivs[i];
		var id = respDiv.getAttribute("id");
		if (divId && id && id != divId && id.indexOf("response:") == 0)
		{
			//alert("hide :"+id);
			hideDiv(id);
		}
	
	}
}

function getRequestHeaders(requestDivId)
{
 var dataMap = new Array();
 requestDivObj = document.getElementById(requestDivId);
 if(requestDivObj)
 {
	var child = requestDivObj.getElementsByTagName("INPUT");
	for (i=0; i<child.length; i++)
	{
		param = child[i];
		if(param && param.getAttribute("TYPE") && param.getAttribute("TYPE") == "hidden")
		{
			ptype = param.getAttribute("ptype");
			if(ptype && ptype.length > 0 && ptype == "header")
			{
				dataMap[param.getAttribute("name")] = param.getAttribute("value");
			}
		}
	}

 }
 return dataMap;
}

function getFormParameters(formDivId)
{
 var dataMap = new Array();
 requestDivObj = document.getElementById(formDivId);
debug("form :"+requestDivObj,1);
 if(requestDivObj)
 {
/*
	var form = requestDivObj;
	for (i=0; i<form.length; i++)
	{
	var pkey = form.elements[i].name;
	var pval = form.elements[i].value;
		alert("form :"+pkey+"="+pval);
	 dataMap[pkey] = pval;
	}	
*/
	var child = requestDivObj.getElementsByTagName("INPUT");
	for (i=0; child && i<child.length; i++)
	{
		param = child[i];
		var pkey = param.name;
		var pval = param.value;// param.getAttribute("value");
		if(pkey && pval)
			dataMap[pkey] = pval;
	}
	var textArea = requestDivObj.getElementsByTagName("TEXTAREA");
	for (i=0; textArea && i<textArea.length; i++)
	{
		param = textArea[i];
		var pkey = param.name;
		var pval = param.value;// param.getAttribute("value");
		if(pkey && pval)
			dataMap[pkey] = pval;
	}
	var selectList = requestDivObj.getElementsByTagName("SELECT");
	for (i=0; selectList && i<selectList.length; i++)
	{
		param = selectList[i];
		var pkey = param.name;
		var pval = param.value;// param.getAttribute("value");
		if(pkey && pval)
			dataMap[pkey] = pval;
	}

 }
 return dataMap;
}

function getRequestParameters(requestDivId)
{
 var dataMap = new Array();
 requestDivObj = document.getElementById(requestDivId);
 if(requestDivObj)
 {
	var child = requestDivObj.getElementsByTagName("INPUT");
	for (i=0; i<child.length; i++)
	{
		param = child[i];
		if(param && param.getAttribute("TYPE") && param.getAttribute("TYPE") == "hidden")
		{
			ptype = param.getAttribute("ptype");
			if(ptype && ptype.length > 0 && ptype == "param")
			{
				dataMap[param.getAttribute("name")] = param.getAttribute("value");
			}
		}
	}
 }
 return dataMap;
}

function changeStatus(requestDivId,status)
{
	 requestDivObj = document.getElementById(requestDivId);
	 if(requestDivObj)
	 {
		var child = requestDivObj.getElementsByTagName("INPUT");
		for (i=0; i<child.length; i++)
		{
			param = child[i];
			if(param && param.getAttribute("TYPE") && param.getAttribute("TYPE") == "hidden")
			{
				ptype = param.getAttribute("ptype");
				if(ptype && ptype.length > 0 && ptype == "header" && param.getAttribute("name") == "status")
				{
					param.setAttribute("value",status);
					break;
				}
			}
		}
	 }
}



function getHeader(requestDivId,headerName)
{
	 requestDivObj = document.getElementById(requestDivId);
	 if(requestDivObj)
	 {
		var child = requestDivObj.getElementsByTagName("INPUT");
		for (i=0; i<child.length; i++)
		{
			param = child[i];
			if(param && param.getAttribute("TYPE") && param.getAttribute("TYPE") == "hidden")
			{
				
				ptype = param.getAttribute("ptype");
				if(ptype && ptype.length > 0 && ptype == "header" && param.getAttribute("name") == headerName)
				{
					var value = param.getAttribute("value");
					return value;
				}
			}
		}
	 }
}

/////////////////////////////////////////////////
//Ajax Functions////////////////////////////////
function createRequestObject(){

  var req;
  try
  {
    // Firefox, Opera, Safari
    req = new XMLHttpRequest();
    //if(req.overrideMimeType)
//	req.overrideMimeType('text/xml');

  }

  catch (e)
  {
    // Internet Explorer
    try
    {
      //For IE 6
      req = new ActiveXObject("Msxml2.XMLHTTP");
    }

    catch (e)
    {
      try
      {
        //For IE 5 
        req = new ActiveXObject("Microsoft.XMLHTTP");
      }

      catch (e)
      {
        alert('Your browser is not IE 5 or higher, or Firefox or Safari or Opera'); 
      }
    }
  } 

  return req;
}



/*
Call <code>url</code> and fills the divId with the response.
beforeCall - callback function to prepare additional parameters before call
	eg var params = createSignInParams(); 
onResponse - callback function called after response but before render 
showProgress - boolean : true to show the progress
*/
function doRequestAsync(divId,url,params,beforeCall,onResponse,show)
{
	var dObj = document.getElementById(divId);
	debug("doRequestAsync ["+divId+"]--"+dObj,1);

	if(dObj)
	{
		//alert("doRequestAsync: found");
		var requestParams = new Array();
		if(params)
			requestParams = params;
		if(beforeCall && typeof(beforeCall) == "function")
		{
			//alert(beforeCall);
			var addParams = beforeCall();
			for (var p in addParams )
			{
				requestParams[p]=addParams[p];
			}

		}
		
		var method = "POST";
		if(show)
			showProgress();
		//alert('calling ['+url+'] ['+method+']');
		var http = createRequestObject();
		http.open(method,url,true);
		
		var queryString = toQueryString(requestParams);
		//alert("queryString-->"+queryString);
		http.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		http.send(queryString);
		http.onreadystatechange = function() 
		{ 
			if(http.readyState == 4)
			{
				if(http.status == 200)
				{
					if(onResponse && onResponse == "function")
					{
						onResponse(http.responseText);
					}
					if(dObj){
						dObj.innerHTML = http.responseText;

					}
				}
			}
			
		};
	}
}


		
function refresh(requestDivId)
{
  isInteractive = false;
  changeStatus(requestDivId,"N");
  doRequest(requestDivId);
 //fetch the data for the div in background
}

function refreshAsync(requestDivId)
{
  isInteractive = false;
  changeStatus(requestDivId,"N");
  doRequest(requestDivId);
}

function resizeDiv(divId,width,height)
{
	debug("resizeDiv : "+divId+" "+width+","+height,1);
	var divObj = document.getElementById(divId);
	if(divObj && width && height)
	{
		divObj.style.width = parseInt(width) + 'px';
		divObj.style.height = parseInt(height) + 'px';
	}
}

function moveDiv(divId,posx,posy)
{
	debug("moveDiv : "+divId+" "+posx+","+posy,1);
	var divObj = document.getElementById(divId);
	if(divObj)
	{
		divObj.style.left = parseInt(posx) + 'px';
		divObj.style.top = parseInt(posy) + 'px';
	}
}

function showDiv(divId)
{
	var divObj = document.getElementById(divId);
	if(divObj)
	{
		//alert("showDiv ["+divId+"]");
		/*
		addEvent(divObj,"onclick",onClickHandler,true);
		addEvent(divObj,"onmouseover",onMouseoverHandler,true);
		addEvent(divObj,"onmouseout",onMouseoutHandler,true);
		addEvent(divObj,"onmousedown",onMousedownHandler,true);
		addEvent(divObj,"onmouseup",onMouseupHandler,true);
		*/
		divObj.style.visibility = "visible";
		divObj.style.display = "block";
		//divObj.style.zIndex = 100;

		
		
		
	}
	
}

//Window Event Handlers
function onClickHandler(event)
{
	//alert('onClickHandler');
	return false;
}

function onMouseoverHandler(event)
{
	//alert('onMouseoverHandler');
	return false;
}

function onMouseoutHandler(event)
{
	//alert('onMouseoutHandler');
	return false;
}

function onMousedownHandler(event)
{
	//alert('onMousedownHandler');
	return false;
}
function onMouseupHandler(event)
{
	//alert('onMouseupHandler');
	return false;
}

function closeDiv(divId)
{
 hideDiv(divId);
}


function hideDiv(divId)
{
	var divObj = document.getElementById(divId);
	if(divObj)
	{
		divObj.style.visibility = "hidden";
		divObj.style.display = "none";
	}
}

function addDiv(parentDivId,newDivId,contentHtml) {
  //removeDiv(parentDivId,newDivId);
  //alert("newDivId-->"+newDivId);
   var parentDivObj = document.getElementById(parentDivId);
//  if(newDivId != "error:message")
  {
  if(parentDivObj)
  {
	var newdiv = document.createElement('div');
	newdiv.setAttribute('id',newDivId);
	//newdiv.setAttribute('class',"framediv");

   // alert("extrnparams showtwxt in adddiv-->"+extrnparams['showText']);
   
    	if( extrnparams && !extrnparams['showText']){
    	//alert("extrnparams nothing showtext");
    		extrnparams['showText']='nothing';
    	}
    	if(extrnparams==null)
    	{
    		//alert("yes null");
    		extrnparams = new Array();
    		extrnparams['showText']='nothing';
    	}
    		
  
	//if(contentHtml)
		parentDivObj.appendChild(newdiv);
		var newDivObj = document.getElementById(newDivId);
		divwidth = pageParam['width'];
		divheight = pageParam['height'];
		divclass = pageParam['class'];

		newdiv.innerHTML = "<div style='width:"+divwidth+";'><div id='FavoriteLogin'> <div class='DivBox'><table class='ShowHideTable' border='0' cellspacing='0' cellpadding='0'><tr><th><span class='Leftside'>"+pageParam['popupTitle']+"</span><span class='RightSide'><a href='#' accesskey='' onClick='closeAllDivs("+parentDivId+");return false'><img src='"+contextPath+"/naaptolImages/BtClose.gif' alt='Close' border='0'></a> </span></th></tr><tr><td class='BackgroundBg'><div id='error:message:"+newDivId+"' style='vertical-align:middle;text-align:center;color: #FF0000;font-size: 10px; word-spacing:0px;'>&nbsp;</div><div style='height:"+divheight+";overflow:auto;'>"+contentHtml+"</div></td></tr><tfoot><tr><td><img src='"+contextPath+"/naaptolImages/ShowHideTableTfoot.gif' width='274'></td></tr></tfoot></table></div></div></div>";
		
		newDivObj.className = "framediv";
		return newdiv;
		
		
  }
  }
   
  
}
function clearDiv(divId)
{
	var divIdObj = document.getElementById(divId);
	divIdObj.innerHTML = "";
}
function removeDiv(parentDivId,newDivId) {
  var d = document.getElementById(parentDivId);
  if(d)
  {
	var olddiv = document.getElementById(newDivId);
	if(olddiv)
		d.removeChild(olddiv);
  }
}



function showProgress(requestDivId)
{
 /*
 var imageName = "../images/loading.gif";
 document.write("<div id=\"ajax:ProgressBar\" style=\"visibility:hidden;display:none;position:absolute;width:20px;height:10px;border:1px solid grey;background-color:yellow\"></div>");
 var newdiv = document.createElement('div');
 newdiv.setAttribute("id","ajax:ProgressBar");
 newdiv.setAttribute("style","visibility:hidden;display:none;position:absolute;width:20px;height:10px;border:1px solid grey;background-color:yellow");
 document.body.appendChild(newdiv);
 newdiv.innerHTML = "<IMG SRC=\""+imageName+"\" WIDTH=\"16\" HEIGHT=\"16\" BORDER=\"0\" ALT=\"\">...</center>";
 */
 moveDiv("ajax:ProgressBar","10","15");
 showDiv("ajax:ProgressBar");
 timeoutId = window.setTimeout(hideProgress,10000,requestDivId);
}
showProgress.timeoutId = null;

function hideProgress(requestDivId)
{
	window.clearTimeout(showProgress.timeoutId);
	showProgress.timeoutId = null;
	hideDiv("ajax:ProgressBar");
	isRequestInProgress=false;
	//removeDiv(requestDivId,"ajax:ProgressBar");
}


// Div Event Handlers
function addEvent(obj,evType,fn,useCapture)
{
	var ret=false;
	if(obj!=null)
	{
	 if(obj.addEventListener)
	 {
		//alert("addEvent: addEventListener");
		obj.addEventListener(evType,fn,useCapture);
		ret=true;
	 }
	 else if(obj.attachEvent)
	 {
		obj.attachEvent(evType,fn);
		ret=true;
	 }
   }
   return ret;
}



function doHouseKeeping()
{ 
 //Function should be called every few seconds to check the lazy divs, repeated divs refresh, stale refresh
}
doHouseKeeping.lastTime = -1; //so far 
doHouseKeeping.count = 0; //Total time got executed

/* start - by satish*/

function displayDivAtObject(objId,leftOffset,topOffset,divId)

{      
	if(document.getElementById(objId))             
		var posx= getRealLeft(objId);
		else
		var posx= 10;
		if(document.getElementById(objId))  
        var posy= getRealTop(objId);
        else
        var posy= 10;
        var divObj = document.getElementById(divId);
		var width = parseInt(pageParam['width']);
	 	var height = parseInt(pageParam['height']);

var ie4 = document.all && !document.getElementById;
var ie5 = document.all && document.getElementById;
var ns6 = !document.all && document.getElementById;
var ns4 = document.layers;

	var screenX = screen.width;
	var screenY = screen.height;
	
	
	var mouse_x=0;
    var mouse_y=0;
	var pos_x = 0;
	var pos_y = 0;
	var win_width = 0;
	var win_height = 0;

	var win_scroll_x = (ie4 || ie5) ? self.document.body.scrollLeft : self.pageXOffset;
    var win_scroll_y = (ie4 || ie5) ? self.document.body.scrollTop : self.pageYOffset;

 	 var scrollbar_size =  0;	

 if(ie4)
{
	mouse_x=posx;
    mouse_y=posy;
}
if(ie5)
{
	mouse_x=posx+self.document.body.scrollLeft;
    mouse_y=posy+self.document.body.scrollTop;
}

if (ie4 || ie5)
 { 
	win_width = self.document.body.clientWidth;
	win_height = self.document.body.clientHeight;

		
 }
 if (ns4)
 {
	win_width = self.innerWidth;
	win_height = self.innerHeight;
	mouse_x=posx;
	mouse_y=posy;
 }
 if (ns6)
 { 
	win_width = self.outerWidth;
	win_height = self.outerHeight;
	mouse_x=posx;
	mouse_y=posy;
 }	 
 
 		 
 	
 	 
 	 var findVal = ((win_height+win_scroll_y)-(posy + height));
 	 
 	// alert("findVal "+ findVal +" 1st cond... "+((posy + height) > (win_height+win_scroll_y)) );

 	 if ((posy + height) > (win_height+win_scroll_y) || (height <=300 && findVal>0 && findVal<=75))
 	{ 
		//alert("up"+mouse_x+ "  -  "+(posy-win_scroll_y) +" -- "+height);
 		
 		if(height>200)	
 			pos_y = (posy)-(height+(height/3));
 		else
 			pos_y = (posy)-(height*2)-(height/6);
 		
		if((posx + width)<(win_height+win_scroll_x))
			pos_x = posx+30;
		else
			pos_x = posx-width/2;
 	}
 	else
 	{ 
 		//alert("down"+posx+ " -- "+width/2+ "  -  "+height);
 		
			pos_y = (posy)+15;
			
		if((posx + width)<(win_height+win_scroll_x))
			pos_x = posx+30;
		else
			pos_x = posx-width/2;
			
 	}
 	var browser=navigator.appName;
	var b_version=navigator.appVersion;
	
	if(browser.match('Microsoft Internet Explorer')){
		pos_x= pos_x-120;
	}
		if(divObj!=null)

        {
            divObj.style.left = pos_x;
			divObj.style.top = pos_y;
            divObj.style.display="block";
            divObj.style.visibility="visible";     

        }                                   
}

 
// this funciton will return the left position of the component //

            function getRealLeft(comid) { 

    xPos = document.getElementById(comid).offsetLeft; 

    tempEl = document.getElementById(comid).offsetParent; 

      while (tempEl != null) { 

          xPos += tempEl.offsetLeft; 

          tempEl = tempEl.offsetParent; 

      } 

    return xPos; 

} 

// this function well return the top position of component //

function getRealTop(comid) {

    yPos = document.getElementById(comid).offsetTop; 

    tempEl = document.getElementById(comid).offsetParent; 

    while (tempEl != null) { 

          yPos += tempEl.offsetTop; 

          tempEl = tempEl.offsetParent; 

      } 

    return yPos; 

}
function isUserLoggedIn()
{
	
}
/* End - By satish */

validateforgotPasswordSubmit = function()
 {
	 
	var params = getFormParameters("ForgotP");
	//alert("In validateforgotpassSubmit--"+params);
	var forgotPasswordloginId = params['forgotPasswordloginId'];
	//alert("loginId ::: "+loginId);
	if(forgotPasswordloginId!=null && forgotPasswordloginId.length ==0)
	{
		alert("Please enter login id");
		isRequestInProgress=false;
		return false;
	}
	return params;
 }

validateuserSignUpSubmit = function()
 {
	 
	var params = getFormParameters("UserSignUp_Form");
	//alert("In validateforgotpassSubmit--"+params);
	var userSignUploginId = params['userSignUploginId'];
	//alert("loginId ::: "+loginId);
	if(userSignUploginId!=null && userSignUploginId.length ==0)
	{
		alert("Please enter login id");
		//isRequestInProgress=false;
		return false;
	}

	var userSignUppassword = params['userSignUppassword'];
	if(userSignUppassword!=null && userSignUppassword.length ==0)
	{
		alert("Please enter password");
		//isRequestInProgress=false;
		return false;
	}
	var userSignUprepassword = params['userSignUprepassword'];
	if(userSignUprepassword!=null && userSignUprepassword.length ==0)
	{
		alert("Please enter Re-password");
		isRequestInProgress=false;
		return false;
	}
	
	return params;
 }
 validateLoginSubmit = function(requestDivId,requestParams,prerequestDivId)
 {
	clearDiv("error:message:"+prerequestDivId);
	var errObj = document.getElementById("error:message:"+prerequestDivId); 
	var params = getFormParameters("SignInForm");
	
	if(!isFieldBlank(params['loginId'],errObj,'Please Enter EmailId.','loginId')){return false;}
	if(!isEmailIdValid(params['loginId'],errObj,'Please Enter Valid EmailId.','loginId')){return false;}
	if(!isFieldBlank(params['password'],errObj,'Please Enter Password.','password')){return false;}
	
	var objChk = document.getElementById('rememberChkBox');
	if(objChk.checked == true)
	{
		set_Cookies();
	}
	
	return params;
 }
 
 validateUserRevLoginSubmit = function(requestDivId,requestParams,prerequestDivId)
 {
	clearDiv("error:message:"+prerequestDivId);
	var errObj = document.getElementById("error:message:"+prerequestDivId); 
	var params = getFormParameters("userReviewSignInForm");
	
	if(!isFieldBlank(params['ur_emailid'],errObj,'Please Enter EmailId.','ur_emailid')){return false;}
	if(!isEmailIdValid(params['ur_emailid'],errObj,'Please Enter Valid EmailId.','ur_emailid')){return false;}
	if(!isFieldBlank(params['ur_password'],errObj,'Please Enter Password.','ur_password')){return false;}
	return params;
 }
 
 validateSMSFormSubmit = function(requestDivId,requestParams,prerequestDivId)
 {
	clearDiv("error:message:"+prerequestDivId);
	var errObj = document.getElementById("error:message:"+prerequestDivId); 
	var params = getFormParameters("SMSForm");
	
	//if(!isFieldBlank(params['query'],errObj,'Please Enter Your Requirements.','query')){return false;}
	//if(!isFieldBlank(params['userName'],errObj,'Please Enter Your Name.','userName')){return false;}
	
	if(params['emailId']==null && params['mobNo']==null){
		errObj.innerHTML = "Please Enter Your Mobile Number or Email-Id";
		return false;
	}
	if(params['mobNo']!=null){
	//if(!isFieldBlank(params['mobNo'],errObj,'Please Enter Your Mobile Number.','mobNo')){return false;}
		if(!isMobileNoValid(params['mobNo'],errObj,'Please enter a valid mobile number (atleast 10 Numbers).','mobNo')){return false;}
		if(!checkMobileNo(params['mobNo'],errObj,'Please enter a valid mobile number.','mobNo')){return false;}
	}
	if(params['emailId']!=null){
			if(!isEmailIdValid(params['emailId'],errObj,'Please Enter Valid EmailId.','emailId')){return false;}
		
	}
	
	
	document.getElementById('submitSMS').disabled=true;
	errObj.innerHTML='<img src="'+contextPath+'/images/loading.gif" /> <span style="font-family: Tahoma; font-size: 13px; color: #2D96E7; font-weight: bold;">Requesting content...</span>'
	return params;
 }
 
validateSellProductSubmit = function(requestDivId,requestParams,prerequestDivId)
 {
    //alert("validate ..."+prerequestDivId);
 	clearDiv("error:message:"+prerequestDivId);
	var errObj = document.getElementById("error:message:"+prerequestDivId);  
	//alert("errObj-->"+errObj+"--inner html--"+errObj.innerHTML);
	var params = getFormParameters("sellProductForm");
	//alert("params-- "+params['sellPrice']);
	
	if(params['sellPrice']==null)
	{
		errObj.innerHTML = "Please enter Price to sell Product";
		document.getElementById("sellPrice").focus();
		return false;
	}
	if(params['sellNote']==null)
	{
		errObj.innerHTML = "Please enter note about your Product.";
		document.getElementById("sellNote").focus();
		return false;
	}
	
	//if(!isFieldBlank(params['sellPrice'],errObj,'Please enter Price to sell Product.','sellPrice')){return false;}
	//if(!isFieldBlank(params['sellNote'],errObj,'Please enter note about your Product.','sellNote')){return false;}
	if(params['sellerStatus']=="Online"){
		//if(!isFieldBlank(params['sellUrl'],errObj,'Please Enter URL to sell Product.','sellUrl')){return false;}
		if(params['sellUrl']==null)
		{
	
			errObj.innerHTML = "Please Enter URL to sell Product.";
			document.getElementById("sellUrl").focus();
			return false;
		}
	}
	
	return params;
 
 }

handleSMSFormResponse = function(requestDivId,targetDivId,responseText){

	if(responseText.match("success")){
		document.getElementById("error:message:response:request:SMSForm").innerHTML="SMS/Email has been sent successfully";
		window.setTimeout("closeAllDivs('nodiv')",2000);
		//closeAllDivs('nodiv');
	}
}

handleIsLoginCheckResponse = function(requestDivId,targetDivId,responseText){

	//alert("islogin check responseText "+responseText);
	var userId="";
	var isSellerLogIn="";
	var submitDivId  = "";
	
	
	if(responseText.indexOf("+")>-1){
		userId= responseText.substring(0,responseText.indexOf("+"))
		submitDivId  = responseText.substring(responseText.indexOf("+")+1);
	}
	else
		userId = responseText;
		
	if(responseText.match("SellerLogIn"))
		userId="";
		
	if((trim(submitDivId)=="submitUsrRev") || (trim(submitDivId)=="submitUsrSellerRev")){
		if(trim(userId)=='null' || trim(userId)==""){
		
			var pArray = new Array();
			//pArray['showText']='Please Sign in as User to submit review';
		
			if(trim(submitDivId)=="submitUsrRev")
				doRequest('request:userReview',trim(submitDivId),pArray);
			else if(trim(submitDivId)=="submitUsrSellerRev")
				doRequest('request:userSellerReview',trim(submitDivId),pArray);
			
		}
		else{
		
			//alert("submitting review elsw  "+secureRequestDivId);
			if(secureRequestDivId == "request:userReview" || trim(submitDivId)=="submitUsrRev"){
				//var prodId = trim(submitDivId).substring(trim(submitDivId).indexOf("@")+1,trim(submitDivId).length);
				submitUserReviewData(trim(userId));
				
			}
			else if(secureRequestDivId =="request:userSellerReview" || trim(submitDivId)=="submitUsrSellerRev")
				submitUserSellerReviewData(trim(userId));
				
			secureRequestDivId = null;
			
			}
			extrnparams=null;
	}
	else if(responseText.match("userReviewLink"))
	{
		if(trim(userId)=='null' || trim(userId)==""){
		
			var pArray = new Array();
			//pArray['showText']='Please Sign in as User to see Profile of this user';
			pArray['submitDivId']=submitDivId;
					
			doRequest('request:userProfileOfOtherUser',trim(submitDivId),pArray);
		}
		else
		{
			var aUserId = trim(submitDivId).substring(0,trim(submitDivId).indexOf("@"));
			 showAnotherUserProfile(aUserId);
		
		}
	
	}else if(responseText.match("userProfLink"))
	{
		if(trim(userId)=='null' || trim(userId)==""){
		
			var pArray = new Array();
			//pArray['showText']='Please Sign in as User to see Profile of this user';
			pArray['submitDivId']=submitDivId;
			
			doRequest('request:userProfileOfOtherUser',trim(submitDivId),pArray);
					
		}
		else
		{
			var aUserId = trim(submitDivId).substring(0,trim(submitDivId).indexOf("@"));
			 showAnotherUserProfile(aUserId);
			//location.href="<%=request.getContextPath()%>/faces/user/userDetails.jsp?userId="+aUserId;
		}
	
	}
	else 
	if(responseText.match("SellerLogIn"))
	{
		if(responseText.indexOf("+")>-1){
			isSellerLogIn= responseText.substring(0,responseText.indexOf("+"))
			submitDivId  = responseText.substring(responseText.indexOf("+")+1);
		}
		doRequest('request:SellerLogOutForm',trim(submitDivId));
		
	}
	else if(responseText.match("msOrderNowUser"))
		{
			
			if(trim(userId)=='null' || trim(userId)==""){
					
				var pArray = new Array();
				//pArray['showText']='Please Sign in as user to order this product';
				pArray['submitDivId']=submitDivId;
				
				doRequest('request:checkUserForOrderNowForm',trim(submitDivId),pArray);
			
			}
			else
			{
					var subDivId= trim(submitDivId);
					var pos = subDivId.indexOf("-");
					var sellerId=subDivId.substring(pos+1,subDivId.length);
					openOrderNowPage(sellerId);
					
			}
		}
		else if(responseText.match("subscribeToListId"))
		{
			
			if(trim(userId)=='null' || trim(userId)==""){
					
				var pArray = new Array();
				//pArray['showText']='Please Sign in as user to order this product';
				pArray['submitDivId']=submitDivId;
				
				doRequest('request:subscribeToListLoginCheck',trim(submitDivId),pArray);
			
			}
			else
			{
					
					
					var subDivId= trim(submitDivId);
					var listId = trim(submitDivId).substring(0,trim(submitDivId).indexOf("@"));
					
					var pArray = new Array();
					pArray['submitDivId']=submitDivId;
					pArray['listId']=listId;
					doRequest('request:subscribeToListForm',trim(submitDivId),pArray);
			}
		}
		else if(responseText.match("invitefriends"))
		{
			if(trim(userId)=='null' || trim(userId)==""){
			
				var pArray = new Array();
				//pArray['showText']='Please Sign in as User to see Profile of this user';
				pArray['submitDivId']=submitDivId;
						
				doRequest('request:inviteFriendsLoginCheck',trim(submitDivId),pArray);
			}
			else
			{
					window.location=path+"/faces/contactImporter/contactsImporter.jsp";
				//var aUserId = trim(submitDivId).substring(0,trim(submitDivId).indexOf("@"));
				 //showAnotherUserProfile(aUserId);
			
			}
		
		}
	
	

}
handleCaptchaResponse = function(requestDivId,targetDivId,responseText){

	//alert("captcha responseText "+responseText);
	if(responseText.match("same")){
	var pos=responseText.indexOf("+");
	var newString = responseText.substring(pos+1);
	
	var prodId = newString.substring(0,newString.indexOf("+"));
	var submitDivId = responseText.substring(responseText.lastIndexOf("+")+1,responseText.length);
		
		secureRequestDivId = null;
		extrnparams=null;
		
		var lArray = new Array();
		lArray['submitDivId']=submitDivId;
		lArray['action']='checkLoggedId';
		
		doRequest('request:isLoginCheck','',lArray);
				
	}
	else if(responseText.match("notSame")){
		alert("Please enter a security code matching with provided image.");
		if(responseText.match("userSellerReview"))
			document.userSellerReviewForm.captchafield.focus();
		else if(responseText.match("userReview"))
			document.userReviewForm.captchafield.focus();
		secureRequestDivId = null;
		extrnparams=null;
	}
	
}
handleSellProductSubmitResponse = function(requestDivId,targetDivId,responseText)
{
	
			startId=responseText.indexOf('+');
			var prodId="";
			if(startId!=-1)
				prodId= responseText.substring(startId+1);
				
			var obj = document.getElementById('sellProduct'+trim(prodId));
			if(obj){
				if(document.getElementById('maintab')){
					onlineSellerPage(trim(prodId),'');
					expandtab('maintab', 0);
				}
				obj.innerHTML = "<span style='font-family: Tahoma; font-size: 11px; color: #2D96E7; font-weight: bold;padding-top:2px;'>"+responseText.substring(0,startId)+"</span>";
				
			}
			
			closeAllDivs('nodiv');
}
			

handleUserSignUpResponse = function(requestDivId,targetDivId,responseText)
{
 	//Typicall we need to display the message in the message div from the response
	 if(responseText.match("framework:status::")=="framework:status::")
			{
				var errorMsg =responseText;
				var errorsMap = parseError(responseText);
			
				var fieldError = createErrorDivs(errorsMap,prerequestDivId);
				
				if(fieldError!=null){
					var pos = fieldError.indexOf(":");
					fieldId = fieldError.substring(0,pos);
				
					fieldMesg = fieldError.substring(pos+1);
						
					fieldDivObj = document.getElementById("error:"+trim(fieldId));
					if(fieldDivObj){
						fieldDivObj.innerHTML = fieldMesg;
						fieldDivObj.style.color = "yellow";
				}
			}
				changeStatus(requestDivId,"N");
				isRequestInProgress = false;
				secureRequestDivId = null;
				extrnparams=null;
				return false;
			}
			
	else 
	{
			
		if(responseText.match("naaptol")){
			doRequestAsync("changeHeader",path+"/faces/jsp/cspLogin.jsp",null,null,null,true);
		}else{
			doRequestAsync("changeHeader",path+"/faces/microSite/msCspLogin.jsp?sellerId="+sellerIdJs,null,null,null,true);
			//var pth = window.location.href;
			//window.location.href = pth;
			}
			
		//var divObj = document.getElementById('afterLoginDiv');
		//alert("divObj"+divObj);
		//divObj.style.visibility = 'visible';
		//divObj.style.display = 'block';
		//setTimeout("var obj = document.getElementById(\'afterLoginDiv\');obj.style.visiblility=\'hidden\';obj.style.display=\'none\';",5000);
		
		//doRequest('request:confirmation','ForgotPassword_link','');
		location.href="/faces/events/thankYou.jsp?campaign=Mg==";
		
		if(secureRequestDivId!=null && secureRequestDivId=="request:userReview"){
			
			var lArray = new Array();
			lArray['action']='checkLoggedId';
			lArray['submitDivId']='submitUsrRev';
		
			doRequest('request:isLoginCheck','',lArray);
		}
		else if(secureRequestDivId!=null && secureRequestDivId=="request:userSellerReview"){
			
			var lArray = new Array();
			lArray['action']='checkLoggedId';
			lArray['submitDivId']='submitUsrSellerRev'
		
			doRequest('request:isLoginCheck','',lArray);
		}
	}
 }
 handleLoginResponse = function(requestDivId,targetDivId,responseText)
 {
 	//Typicall we need to display the message in the message div from the response
	 if(responseText.match("framework:status::")=="framework:status::")
			{
				var errorMsg =responseText;
				var errorsMap = parseError(responseText);
			
				var fieldError = createErrorDivs(errorsMap,prerequestDivId);
				
				if(fieldError!=null){
					var pos = fieldError.indexOf(":");
					fieldId = fieldError.substring(0,pos);
				
					fieldMesg = fieldError.substring(pos+1);
						
					fieldDivObj = document.getElementById("error:"+trim(fieldId));
					//alert("fieldId.. "+fieldId+ " fieldMesg .. "+fieldMesg+ " fieldDivObj .. "+fieldDivObj );
					if(fieldDivObj){
						fieldDivObj.innerHTML = fieldMesg;
						fieldDivObj.style.color = "red";
				}
			}
				//error error:null,loginId:User does not exist. Please choose different login,info:null:Please provide mandatory fields
				
				/*var error = document.getElementById("error:message");
				if(error)
				{
					error.innerHTML = "This is error message";
				}*/
				changeStatus(requestDivId,"N");
				isRequestInProgress = false;
				//secureRequestDivId = null;
				//extrnparams=null;
				return false;
			}
			
	else 
	{		
		//successful login. Now we need to change welcome etc on the main page
		//header.innerHTML = responseText
			var expiredays=365;
			var exdate=new Date();
            exdate.setDate(exdate.getDate()+expiredays);
            
		if(responseText.match("isMicroSite:true")){
			
			doRequestAsync("changeHeader",path+"/faces/microSite/msCspLogin.jsp?sellerId="+sellerIdJs,null,null,null,true);
			//var index = responseText.indexOf('?');
			//var emailId = responseText.substring(index+1,responseText.length);
			var mailId = document.getElementById('loginId').value;
			//document.cookie='userIdLoggedCookie'+"="+ escape(trim(mailId))+((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
			//var pth = window.location.href;
			
			//window.location.href = pth;
		}else{
			doRequestAsync("changeHeader",path+"/faces/jsp/cspLogin.jsp",null,null,null,true);
			//document.cookie='userIdLoggedCookie'+"="+ escape(trim(responseText))+((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
			
			
			
		}
		
		//alert("login response secureRequestDivId ..."+secureRequestDivId);
				
		//alert("responseText-->"+responseText);
		if(secureRequestDivId!=null && secureRequestDivId=="request:addToFavorite"){
		//alert("favorite product Id :"+extrnparams['productId']);
		
			makeMyRequest(path+'/faces/components/product/addtoFavorites.jsp',"productId="+extrnparams['productId']+"&listId=0&pageId=checkProductInList","checkProductInList");
			//doRequestAsync('favoriteup'+extrnparams['productId'],path+'/faces/components/product/addtoFavorites.jsp',extrnparams,null,null,true);
			//var obj = document.getElementById('favoritedown'+extrnparams['productId']);
			//if(obj)
			//obj.innerHTML = "<span style='font-family: Tahoma; font-size: 11px; color: #2D96E7; font-weight: bold;padding-top:2px;'>Product added successfully.</span>";
			secureRequestDivId = null;
			extrnparams=null;
		}
		else if(secureRequestDivId!=null && secureRequestDivId=="request:sellProduct"){
			
			//alert("product Idd .."+extrnparams['productId']);
			
			makeRequest(path+'/faces/seller/saveSellProduct.jsp','productId='+extrnparams['productId']+'&action=checkRecordExists&newId='+extrnparams['newId']);
			
			
			secureRequestDivId = null;
			extrnparams=null;
		
		}
		else if(secureRequestDivId!=null && secureRequestDivId=="request:userReview"){
			
			var lArray = new Array();
			lArray['action']='checkLoggedId';
			lArray['submitDivId']='submitUsrRev';
		
			doRequest('request:isLoginCheck','',lArray);
		}
		else if(secureRequestDivId!=null && secureRequestDivId=="request:userSellerReview"){
			
			var lArray = new Array();
			lArray['action']='checkLoggedId';
			lArray['submitDivId']='submitUsrSellerRev'
		
			doRequest('request:isLoginCheck','',lArray);
		}
		else if(secureRequestDivId!=null && secureRequestDivId=="request:userProfileOfOtherUser"){
			
			//alert("after login "+extrnparams['submitDivId']);
			var aUserId = extrnparams['submitDivId'].substring(0,extrnparams['submitDivId'].indexOf("@"));
			//alert(aUserId);
			showAnotherUserProfile(aUserId);
		}
		else if(secureRequestDivId!=null && secureRequestDivId=="request:checkUserForOrderNowForm"){
			
			
			var subDivId= trim(extrnparams['submitDivId']);
				var pos = subDivId.indexOf("-");
				var sellerId=subDivId.substring(pos+1,subDivId.length);
				openOrderNowPage(sellerId);
				secureRequestDivId=null;
		}
		else if(secureRequestDivId!=null && secureRequestDivId=="request:loginforuserprofile"){
			var subDivId= trim(extrnparams['submitDivId']);
			var aUserId = trim(subDivId).substring(0,trim(subDivId).indexOf("@"));
			addconnection(new Array(aUserId));
		}
		else if(secureRequestDivId!=null && secureRequestDivId=="request:subscribeToListLoginCheck"){
			
			
			var subDivId= trim(extrnparams['submitDivId']);
			
			var lArray = new Array();
			lArray['action']='checkLoggedId';
			lArray['submitDivId']=subDivId;
		
			doRequest('request:isLoginCheck','',lArray);
				//doRequest('request:subscribeToListForm',trim(subDivId));
				secureRequestDivId=null;
		}
		else if(secureRequestDivId!=null && secureRequestDivId=="request:inviteFriendsLoginCheck"){
			window.location=path+"/faces/contactImporter/contactsImporter.jsp";
		}
		
		
		
		if(secureRequestDivId=="")
		{
			if(document.getElementById('product_id')){
				var productId = document.getElementById('product_id');
				offlineSellerPage(productId.value,'');
			}
		}

	}
 }
handleUserLogOutResponse = function()
{
	doRequestAsync("changeHeader",path+"/faces/jsp/cspLogin.jsp",null,null,null,true);
	doRequest('request:SellerLoginForm','sellerLoginLink');
	
}
validateUserLogOut = function(requestDivId,requestParams,prerequestDivId)
{

var answer = confirm ("Are you Sure?")
if (answer)
{
	var params = getFormParameters("SellerLogOutPop");
	return params;
}
else
{
	return false;
}
}
handleSellerLogOutResponse = function(requestDivId,requestParams,prerequestDivId)
{
	doRequestAsync("changeHeader",path+"/faces/jsp/cspLogin.jsp",null,null,null,true);
	doRequest('request:LoginForm','LoginForm_link');
	
}
validateSellerLogOut = function(requestDivId,requestParams,prerequestDivId)
{

var answer = confirm ("Are you Sure?")
if (answer)
{
	var params = getFormParameters("UserLogOutPop");
	return params;
}
else
{
	return false;
}
}


/*start- functions for forgot Password popup */
validateforgotPasswordSubmit = function(requestDivId,requestParams,prerequestDivId)
{
	clearDiv("error:message:"+prerequestDivId);
	var errObj = document.getElementById("error:message:"+prerequestDivId); 
	var params = getFormParameters("forgotPasswordForm");
	
	if(!isFieldBlank(params['forgotPasswordloginId'],errObj,'Please Enter EmailId.','forgotPasswordloginId')){return false;}
	if(!isEmailIdValid(params['forgotPasswordloginId'],errObj,'Please Enter Valid EmailId.','forgotPasswordloginId')){return false;}
	return params;
}
/*End- functions for forgot Password popup */

/* start- functions for userSignUp popup */
validateuserSignUpSubmit = function(requestDivId,requestParams,prerequestDivId)
{
	clearDiv("error:message:"+prerequestDivId);
	var errObj = document.getElementById("error:message:"+prerequestDivId); 
	var params = getFormParameters("UserSignUpForm");

	if(!isFieldBlank(params['userSignUploginId'],errObj,'Please Enter EmailId.','userSignUploginId')){return false;}
	if(!isEmailIdValid(params['userSignUploginId'],errObj,'Please Enter Valid EmailId.','userSignUploginId')){return false;}
	if(!isFieldBlank(params['userSignUppassword'],errObj,'Please Enter Password.','userSignUppassword')){return false;}
	if(!isValidFieldValueLength(params['userSignUppassword'],errObj,'Password should be 6-12 characters.','userSignUppassword',6,12)){return false;}
	if(!isFieldBlank(params['userSignUprepassword'],errObj,'Please Enter Re-Password.','userSignUprepassword')){return false;}
	if(!isEqualTwoFieldStrings(params['userSignUppassword'],params['userSignUprepassword'],errObj,'Password and Re-Password should be same.','userSignUppassword','userSignUprepassword')){return false;}
	if(!isFieldBlank(params['userSignUpfirstName'],errObj,'Please Enter First Name.','userSignUpfirstName')){return false;}
	if(!isNameisValid(params['userSignUpfirstName'],errObj,'Please Enter Valid Name.','userSignUpfirstName')){return false;}
	if(!isFieldBlank(params['userSignUpmobile'],errObj,'Please Enter Mobile.','userSignUpmobile')){return false;}
	if(!isMobileNoValid(params['userSignUpmobile'],errObj,'Please enter a valid mobile number.(atleast 10 Numbers).','userSignUpmobile')){return false;}
	if(!isAgree(params['userSignUpiagree'],errObj,'userSignUpiagree')){return false;}
	return params;
}
/* start - javascript validatins for seller popups */
/*start - validations for seller login popups */
validateSellerLoginSubmit = function(requestDivId,requestParams,prerequestDivId)
 {
	clearDiv("error:message:"+prerequestDivId);
	var errObj = document.getElementById("error:message:"+prerequestDivId); 
	var params = getFormParameters("SellerSignInForm");
	
	if(!isFieldBlank(params['sellerSignInEmailId'],errObj,'Please Enter EmailId.','sellerSignInEmailId')){return false;}
	if(!isEmailIdValid(params['sellerSignInEmailId'],errObj,'Please Enter Valid EmailId.','sellerSignInEmailId')){return false;}
	if(!isFieldBlank(params['sellerSignInPassword'],errObj,'Please Enter Password.','sellerSignInPassword')){return false;}
	return params;
 }
/* End - validations for seller login popups */
/*start- functions for Seller forgot Password popup */
validateSellerforgotPasswordSubmit = function(requestDivId,requestParams,prerequestDivId)
{
	clearDiv("error:message:"+prerequestDivId);
	var errObj = document.getElementById("error:message:"+prerequestDivId); 
	var params = getFormParameters("sellerForgotPasswordForm");
	
	if(!isFieldBlank(params['sellerforgotEmailId'],errObj,'Please Enter EmailId.','sellerforgotEmailId')){return false;}
	if(!isEmailIdValid(params['sellerforgotEmailId'],errObj,'Please Enter Valid EmailId.','sellerforgotEmailId')){return false;}
	return params;
}
/*End- functions for Seller forgot Password popup */
/** added by vikas karandikar for edit price for popup */

validateEditPriceSubmit = function(requestDivId,requestParams,prerequestDivId)
 {
	clearDiv("error:message:"+prerequestDivId);
	var errObj = document.getElementById("error:message:"+prerequestDivId); 
	var params = getFormParameters("sellerEditPriceForm");
	
	if(!isFieldBlank(params['editprice'],errObj,'Please Enter Price.','editprice')){return false;}
	if(!isPinCodeValid(params['editprice'],errObj,'Please Enter Valid Price(Only Number).','editprice')){return false;}
	
	return params;
 }
 
handleEditPriceResponse = function(requestDivId,targetDivId,responseText)
 {
 
 	doRequestAsync("MyProfile3",path+"/faces/seller/sellerMyProducts.jsp",null,null,null,true);
 	closeAllDivs('nodiv');
 }
validateSubscribeRequest = function(requestDivId,requestParams,prerequestDivId)
 {
	clearDiv("error:message:"+prerequestDivId);
	var errObj = document.getElementById("error:message:"+prerequestDivId); 
	var params = getFormParameters("SubscribeForm");
	
	if(!isFieldBlank(params['emailId'],errObj,'Please Enter EmailId.','loginId')){return false;}
	if(!isEmailIdValid(params['emailId'],errObj,'Please Enter Valid EmailId.','loginId')){return false;}
	if(params['mobNo']!=""){
		if(!isMobileNoValid(params['mobNo'],errObj,'Please enter a valid mobile number (atleast 10 Numbers).','mobNo')){return false;}
		if(!checkMobileNo(params['mobNo'],errObj,'Please enter a valid mobile number.','mobNo')){return false;}
	}
		
	return params;
 }
 handleSubscribeResponse = function(requestDivId,targetDivId,responseText)
 {
	if(responseText.match("success")=="success")
	{
		var listId = responseText.substring(0,responseText.indexOf("+"));
		changeButtonToUnSubscribe(trim(listId));
	}
 	closeAllDivs('nodiv');
 }
 
validateAddToList = function(requestDivId,requestParams,prerequestDivId)
 {
 
	clearDiv("error:message:"+prerequestDivId);
	var errObj = document.getElementById("error:message:"+prerequestDivId); 
	var params = getFormParameters("addProductToListForm");
	
	if(params['selectListBox']=="0"){
		errObj.innerHTML="Please Select List";
		return false;
	}
			
	return params;
 }
 
 handleAddToListResponse = function(requestDivId,targetDivId,responseText)
 {
	//alert("responseText  :"+responseText);
	if(responseText.indexOf("+")!=-1){
		productId=responseText.substring(0,responseText.indexOf("+"));
		var obj = document.getElementById('favoriteup'+trim(productId));
		if(obj)
			obj.innerHTML=responseText.substring(responseText.indexOf("+")+1,responseText.length);
		
	}
	closeAllDivs('nodiv');
 }
