﻿// JScript File
//document.body.style.filter = 'alpha(opacity=20)';
//-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(opacity=100)";
//document.body.style = "-ms-filter:progid:DXImageTransform.Microsoft.Alpha(opacity=10)";

//Below function is used to show ajax progess image next to obj
function ShowAjaxProgressImage(obj)
{
  if(obj)
  {
    document.getElementById('divProgress').style.left= findPosX(obj) + "px";
    document.getElementById('divProgress').style.top= findPosY(obj)  + "px";
    document.getElementById('divProgress').style.visibility='visible';
  }
}
//Below function is used to show page progess wait image on sending data to page for process
function ShowWaitImage()
{
  //alert(document.getElementById('divOpacity').classname);
  //document.getElementById('divOpacity').style.Height= document.body.scrollHeight + "px";
  //alert(document.getElementById('divOpacity').style.height);
  //alert(document.getElementById('divOpacity').style.filter);
  document.getElementById('divOpacity').style.visibility='visible';
}
function Img_onerror(objImg, strPath)
{
	objImg.src=strPath;
}

function GetDataUsingAjax(URL,fn)
{
  getSource(URL);
  
  function getSource(URL)
  {
	  var requestUrl = URL;
	  xmlHttp = getXMLHTTP();
	  if (xmlHttp)
	  {
		  xmlHttp.onreadystatechange = doReadyStateChange;
		  xmlHttp.open("GET", requestUrl, true);
		  xmlHttp.send(null);
	  }
  }
  
  function doReadyStateChange()
  {
	  if (xmlHttp.readyState == 4)
	  {
		  if (xmlHttp.status == 200)
		  {
			  //eval("var result='" + xmlHttp.responseText + "'");
			  eval("var result=xmlHttp.responseText");
			  //alert(result);
			  if (result != null)
			  {
			    eval(fn);
			    document.getElementById('divProgress').style.visibility='hidden';
				  //SetResponse(d);
			  }
		  }
		  else
		  {
			  alert("There was a problem retrieving the data:\n" + xmlHttp.statusText);
		  }
	  }			
  }
  
}

	



var ddlCustomer;
function Initialize(ddl,Lookup, ItemValue, ItemText, filter, ClientFunctionName, objParent)
{
  if(objParent)
  {
    document.getElementById('divProgress').style.left= findPosX(objParent);
    document.getElementById('divProgress').style.top= findPosY(objParent);
    document.getElementById('divProgress').style.visibility='visible';
  }
	var url = CurrentDomainURL + "admin/getLookupData.aspx";
	ddlCustomer = new AjaxDropDownController(ddl, Lookup, url, ItemValue, ItemText, ClientFunctionName);
	ddlCustomer.init(filter);
}
	
// get XMLHTTP object
		function getXMLHTTP()
		{
			var A = null;
			try{
				A = new ActiveXObject("Msxml2.XMLHTTP");
			}
			catch(e){
				try{
					A = new ActiveXObject("Microsoft.XMLHTTP");
				} catch(oc){
					A = null;
				}
			}
			if(!A && typeof XMLHttpRequest != "undefined") {
				A = new XMLHttpRequest();
			}
			return A;
		}
		
		// controller for AjaxDropDownList
		function AjaxDropDownController(controlClientId, lookupName, baseUrl, ItemValue, ItemText, ClientFunctionName)
		{
		//alert(controlClientId);
			var self = this;
			
			// public members
			this.controlClientId = controlClientId;
			this.hiddenId = "__" + self.controlClientId;
			this.lookupName = lookupName;
			this.baseUrl = baseUrl;
			this.delimiter = '|';
			this.ClientFunctionName = ClientFunctionName;

			// XMLHTTP object
			var xmlHttp;

			// array to store observer list
			var observers = [];			

			// public methods
			this.getSource = getSource;
			this.addObserver = addObserver;
			this.notify = notify;
			this.load = load;
			this.init = init;
			this.persist = persist;

			// call XMLHTTP to get source data
			function getSource(filter)
			{
				var requestUrl = baseUrl + "?id=" + self.lookupName;
				if (filter != undefined && filter != "")
				{
					requestUrl += "&filter=" + filter;
				}
				xmlHttp = getXMLHTTP();
				if (xmlHttp)
				{
					//alert(requestUrl);
					xmlHttp.onreadystatechange = doReadyStateChange;
					xmlHttp.open("GET", requestUrl, true);
					xmlHttp.send(null);
				}			
			}
			
			// process the response from XMLHTTP
			function doReadyStateChange()
			{
				if (xmlHttp.readyState == 4)
				{
					if (xmlHttp.status == 200)
					{
					  //alert(xmlHttp.responseText);
						eval("var result=" + xmlHttp.responseText);
						if (result != null)
						{
							populateList(result);
							document.getElementById('divProgress').style.visibility='hidden';
							if(ClientFunctionName!="" && ClientFunctionName!=null)
							{ eval(ClientFunctionName); }
						}
					}
					else
					{
						alert("There was a problem retrieving the data:\n" + xmlHttp.statusText);
					}
				}			
			}
			
			// populate dropdownlist
			function populateList(namevalue)
			{
				if (oSelect = document.getElementById(self.controlClientId))
				{
					var content = "";
					
					// clear dropdownlist
					for(var i=oSelect.length-1; i>=0; i--)
					{
						oSelect.options[i] = null;
					}

					// populate dropdownlist from name-value object
					for(var i=0; i<namevalue.length; i++)
					{
						if (namevalue[i].value == undefined)
						{
							oSelect.options[oSelect.length] = new Option(namevalue[i].name);
							content += namevalue[i].name + self.delimiter + namevalue[i].name + self.delimiter;
						}
						else
						{
						  //if(namevalue[i].value==ItemValue && namevalue[i].name==ItemText)
						  if(namevalue[i].value==ItemValue)
						  {
						    opt = new Option(namevalue[i].name, namevalue[i].value, false, true);
						  }
						  else
						  {
						    opt = new Option(namevalue[i].name, namevalue[i].value);
						  }
							
							oSelect.options[oSelect.length] = opt;
							content += namevalue[i].name + self.delimiter + namevalue[i].value + self.delimiter;
						}
					}

					// persist the content of dropdownlist as
					// value-delimited string in hidden field
					if (content.substr(content.length-1,1) == self.delimiter)
					{
						content = content.substr(0, content.length-1);
					}
					
					if (oHidden = document.getElementById(self.hiddenId))
					{
						oHidden.value = content;
					}
					
//					if (oSelect.selectedIndex > -1){
//						if (oSelect.fireEvent)
//						{
//							oSelect.fireEvent("onchange");
//						}
//						else if(oSelect.dispatchEvent)
//						{
//							var oEvent = document.createEvent("HTMLEvents"); 
//							oEvent.initEvent("change", true, true);
//							oSelect.dispatchEvent(oEvent);
//						}
//					}
				}
			}
			
			// add observer
			function addObserver(obj)
			{
				var length = observers.length;
				var found = false;
				for (var i=0; i<length; i++)
				{
					if (observers[i] == obj)
					{
						found = true;
						break;
					}
				}
				if (!found)
				{
					observers[observers.length] = obj;
				}			
			}
			
			// notify all observers
			function notify()
			{
				var filter = "";
				var oSelect = document.getElementById(self.controlClientId);
				if (oSelect != null && oSelect.selectedIndex != -1)
				{
					filter = self.lookupName + "," + oSelect.options[oSelect.selectedIndex].value;
				}				
				for(i=0; i<observers.length; i++)
				{
					eval(observers[i] + '.load(filter);');
				}
			}
			
			// load the source data for corresponding dropdownlist
			function load(filter)
			{
				this.getSource(filter);
			}
			
			// initialize corresponding dropdownlist
			function init(filter)
			{
				if ((oSelect = document.getElementById(self.controlClientId)))
				{
					// create hidden field to store dropdownlist content
					if (!(hidden = document.getElementById(self.hiddenId)))
					{
						hidden = document.createElement("input");
						hidden.id = self.hiddenId;
						hidden.name = self.hiddenId;
						hidden.type = "hidden";
						oSelect.form.appendChild(hidden);
					}				

          this.load(filter);
          this.persist(oSelect);
//					// load source data if dropdownlist is empty,
//					// otherwise persist existing content
//					if (oSelect.options.length == 0)
//					{
//						this.load();
//					}
//					else
//					{
//						this.persist(oSelect);
//					}
					
					// attach notify event handler to onchange event
					if (oSelect.attachEvent)
					{
						oSelect.attachEvent("onchange", notify);
					}
					else if (oSelect.addEventListener)
					{
						oSelect.addEventListener("change", notify, false);
					}
					else
					{
						oSelect.onchange = notify;
					}
				}
			}
			
			// persist existing content of dropdownlist to hidden field
			function persist(oSelect)
			{
				var content = "";
				for(var i=0; i<oSelect.options.length; i++)
				{
					content += oSelect.options[i].text + self.delimiter + oSelect.options[i].value + self.delimiter;
				}
				
				if (content.substr(content.length-1,1) == self.delimiter)
				{
					content = content.substr(0, content.length-1);
				}
				
				if ((hidden = document.getElementById(self.hiddenId)))
				{
					hidden.value = content;
				}
			}
		}
		
		
		
function CallModal(page,ddlID,DDLType,ModelOptions,filter)
{
  if (ModelOptions == undefined || ModelOptions == "")
  {
    ModelOptions = 'dialogHeight:700px;dialogWidth:900px;resizable:yes;status:yes;scroll:yes;center:yes;';
  }
  var retval=window.showModalDialog(page,'Model',ModelOptions);
  if (retval!=undefined)
    {
        var arrRet = retval.split("~");
        if(arrRet.length==2)
        {
          Initialize(ddlID,DDLType,arrRet[0],arrRet[1],filter);
        }
        else if(arrRet.length==1)
        {
          Initialize(ddlID,DDLType,arrRet[0],"",filter);
        }
        else
        {
          window.event.returnValue=false;
          return false;
        }
    }
    else
    {
      window.event.returnValue=false;
      return false;  
    }
}


function CallModalNoReturn(page,ModelOptions)
{
  if (ModelOptions == undefined || ModelOptions == "")
  {
    ModelOptions = 'dialogHeight:700px;dialogWidth:900px;resizable:yes;status:yes;scroll:yes;center:yes;';
  }
  var retval=window.showModalDialog(page,'Model',ModelOptions);
  if (retval!=undefined)
    {
      alert(retval);
    }
    else
    {
      window.event.returnValue=false;
      return false;  
    }
}
