/*
 JavaScript Function Library v1.0.0
 
 @@@ Author : SAJESH KUMAR R
 @@@  Organisation : iVista Digital Solutions Pvt.Ltd
 @@@  Date: 2010-02-09 
 
 This is a JavaScript library that will allow you to easly access most of the javascript function we use day to day working. This script is not as
full-featured as others you may find on the Internet, but it's free, it's easy to
understand, and it's easy to change.

Disclaimer: 
We hope that the information on these script pages is valuable to you. 
Your use of the information contained in these pages, however, is at your sole risk. 
All information on these pages is provided "as -is", without any warranty, 
whether express or implied, of its accuracy, completeness, fitness for a particular purpose, title or non-infringement, and none of the third-party products or 
information mentioned in the work are authored, recommended, supported or guaranteed by Author. Further, Author
shall not be liable for any damages you may sustain by using this information, whether direct, indirect, special, incidental or consequential,
 even if it has been advised of the possibility of such damages.

 * 
 * 
 */


function getBrowser()
	{
	  var browserName = navigator.appName;
	  return browserName;
	}

function getBrowserVersion()
	{
	  var browserreturnVersionsion = parseInt(navigator.appVersion);
	  return browserreturnVersionsion;
	}
	
function clearText(val,valObj)
	{
		if(valObj.value==val)
		{
		valObj.value=""
		}
	}
function retainText(val,valObj)
	{
		if(valObj.value=="")
		{
		valObj.value=val
		}
	}
	
function Left(str, n){
		if (n <= 0)
			return "";
		else if (n > String(str).length)
			return str;
		else
			return String(str).substring(0,n);
	}

function Right(str, n){
		if (n <= 0)
		   return "";
		else if (n > String(str).length)
		   return str;
		else {
		   var iLen = String(str).length;
		   return String(str).substring(iLen, iLen - n);
		}
	}
	
function viewDateString(dateVal,dateSeparator,dateFormat)
	{
	  var dayString = "00" + dateVal.getDate();
	  var monthString = "00" + (dateVal.getMonth()+1);
	  dayString = dayString.substring(dayString.length - 2);
	  monthString = monthString.substring(monthString.length - 2);
	 
	  switch (dateFormat) {
		case "dmy" :
		  return dayString + dateSeparator + monthString + dateSeparator + dateVal.getFullYear();
		case "ymd" :
		  return dateVal.getFullYear() + dateSeparator + monthString + dateSeparator + dayString;
		case "mdy" :
		default :
		  return monthString + dateSeparator + dayString + dateSeparator + dateVal.getFullYear();
	  }
	}
	
	
function dateAdd(objDate, strInterval, intIncrement)
    {
	    strInterval=strInterval.toUpperCase(); 
        if(strInterval != "M" && strInterval != "D" && strInterval != "Y" && strInterval != "H" && strInterval != "MI" && strInterval != "UM" && strInterval != "UD" && strInterval != "UY" && strInterval != "UH" && strInterval != "UMI" && strInterval != "US" )
		 {
		    alert("Please enter valid Option\nD : Day\nM : Month \nY : Year \nH : Hour \nMI : Minutes \nS : Second \nUD : UTC DAY \nUM : UTC Month \nUY : UTC Year \nUH : UTC Hour \nUMI : UTC Minute \nUS : UTC Second \n")
			return objDate;
		 }
        objDate = new Date(objDate);
   
        switch(strInterval)
        {
            case "M":
            objDate.setMonth(parseInt(objDate.getMonth()) + parseInt(intIncrement));
            break;
 
            case "D":
            objDate.setDate(parseInt(objDate.getDate()) + parseInt(intIncrement));
            break;
 
            case "Y":
            objDate.setYear(parseInt(objDate.getYear()) + parseInt(intIncrement));
            break;
 
            case "H":
            objDate.setHours(parseInt(objDate.getHours()) + parseInt(intIncrement));
            break;
 
            case "MI":
            objDate.setMinutes(parseInt(objDate.getMinutes()) + parseInt(intIncrement));
            break;
 
            case "S":
            objDate.setSeconds(parseInt(objDate.getSeconds()) + parseInt(intIncrement));
            break;
 
            case "UM":
            objDate.setUTCMonth(parseInt(objDate.getUTCMonth()) + parseInt(intIncrement));
            break;
 
            case "UD":
            objDate.setUTCDate(parseInt(objDate.getUTCDate()) + parseInt(intIncrement));
            break;
 
            case "UY":
            objDate.setUTCFullYear(parseInt(objDate.getUTCFullYear()) + parseInt(intIncrement));
            break;
 
            case "UH":
            objDate.setUTCHours(parseInt(objDate.getUTCHours()) + parseInt(intIncrement));
            break;
 
            case "UMI":
            objDate.setUTCMinutes(parseInt(objDate.getUTCMinutes()) + parseInt(intIncrement));
            break;
 
            case "US":
            objDate.setUTCSeconds(parseInt(objDate.getUTCSeconds()) + parseInt(intIncrement));
            break;
        }
        return objDate;
    }
	
function dateDiff(fromdate,todate)
	{
	   if (fromdate == "")
	   {
		 lclvar_fromdate=new Date()
	   }
	   else
	   {
		 lclvar_fromdate=new Date(fromdate)
	   }
	   
	   if (todate == "")
	   {
		 lclvar_todate=new Date()
	   }
	   else
	   {
		 lclvar_todate=new Date(todate)
	   }  

	   return ((lclvar_todate-lclvar_fromdate)/(24*60*60*1000))
	}



function yearDiff(fromdate,todate)
	{
	   if (fromdate == "")
	   {
		 lclvar_fromdate=new Date()
	   }
	   else
	   {
		 lclvar_fromdate=new Date(fromdate)
	   }
	   
	   if (todate == "")
	   {
		 lclvar_todate=new Date()
	   }
	   else
	   {
		 lclvar_todate=new Date(todate)
	   }  
	   return lclvar_todate.getFullYear()-lclvar_fromdate.getFullYear()
	}




function selectOption(val,obj) //For edit option auto select dropdown 
	{
		tot_leng = obj.length;
		for(i=0;i<tot_leng;i++)
		{

			if(obj.options[i].value == val)
			{
				obj.options[i].selected = true;	
				return val;
				break;
			}
			else
			{
				obj.options[0].selected = true;			
			}
		}
	}

function checkOption(val,obj) //For edit option auto select dropdown 
	{
		tot_leng = obj.length;
		for(i=0;i<tot_leng;i++)
		{

			if(obj.options[i].value == val)
			{
				obj.options[i].checked = true;	
				return val;
				break;
			}
			else
			{
				obj.options[0].selected = true;			
			}
		}
	}
function checkMultipleOption(val,obj)
	{
		lclint_noofelements = obj.length;
		if(val != 0)
		{
			lclarr_value = val.split(",");
			for(i=0;i<lclint_noofelements;i++)
			{
				for(j=0;j<lclarr_value.length;j++)
				{
					if(obj[i].value.replace(/ /g,'') == lclarr_value[j].replace(/ /g,''))
					{
						obj[i].checked = true;
						objfound=true;
						break;
					}				
				}
			}
		}
	}	


function checkBirthDay(bdate)
	{
	  bdate=new Date(bdate)
	  birthday=parseInt(bdate.getDate());
	  birthmonth=parseInt(bdate.getMonth()+1);
	  birthyear=parseInt(bdate.getFullYear());
	  tempdate = new Date();
	  tempyear = tempdate.getFullYear();
	  
	  currentdate=new Date();
	  currentday=parseInt(currentdate.getDate());
	  currentmonth=parseInt(currentdate.getMonth()+1);
	  currentyear=parseInt(currentdate.getFullYear());


	  var age=0
	  
	  if(currentmonth>birthmonth)
	  {
		 age=parseInt(currentyear)-parseInt(birthyear)
		 return age;	 
	  }  
	  else if(currentmonth<birthmonth)
	  {
		 age=(parseInt(currentyear)-parseInt(birthyear))-1
		 return age;
	  }
	  else if(currentmonth==birthmonth && currentday<birthday)
	  {
		 age=(currentyear-birthyear)-1
		 return age;
	  }
	  else if(currentmonth==birthmonth && currentday>=birthday)
	  {
		 age=currentyear-birthyear
		 return age;
	  }
	  return age;  
	}


function dateSuffix(datestring)
	{
		lcldt_dates=new Date(datestring)
		date=lcldt_dates.getDate();
		
		 if (date==1) suffix=("st");
		else if (date==2) suffix=("nd");
		else if (date==3) suffix=("rd");
		else if (date==21) suffix=("st");
		else if (date==22) suffix=("nd");
		else if (date==23) suffix=("rd");
		else if (date==31) suffix=("st");
		else suffix=("th");
		
		return suffix;
	}

function dolimit(obj,size)
	{
		 if(obj.value.length>=size)
		 {
		   obj.value=obj.value.substr(0,(size-1))
		   return false;
		 }
	}  

function getQueryString(stringtofind) 
	{
	   var queryStringvalue="";
	   if(window.location.search.substring(1)!="")
		 {
			QueryString=window.location.search.substring(1);
			QueryStringArray = QueryString.split("&");
			for (i=0;i<QueryStringArray.length;i++) 
				{
					QueryStringValue = QueryStringArray[i].split("=");
					if (QueryStringValue[0] == stringtofind) 
					{
					   queryStringvalue=QueryStringValue[1];
					}
				}	
		 }  
		 return queryStringvalue;
	}
  
  
function positionDivWindow(e,targetObj)
	{
		var posx = 0;
		var posy = 0;
		if (!e) var e = window.event;
		if (e.pageX || e.pageY)
		{
			posx = e.pageX;
			posy = e.pageY;
		}
		else if (e.clientX || e.clientY)
		{
			posx = e.clientX;
			posy = e.clientY;
		}
		targetObj.style.left = posx+"px";
		targetObj.style.top = posy+"px";
	} 
	
	
function sortSelectBoxlist(targetElement) 
	{
		arrTexts = new Array();
		for (i=0; i <targetElement.length; i++)
			arrTexts[i]=new Array(2)

		for(i=1; i<targetElement.length; i++)  {
		   arrTexts[i][0] = targetElement.options[i].text;
		   arrTexts[i][1] = targetElement.options[i].value;
		}

		arrTexts.sort();

		for(i=1; i<targetElement.length; i++)  {
		  targetElement.options[i].text = arrTexts[i][0];
		  targetElement.options[i].value = arrTexts[i][1];
		}
    }
	
	//Call this Function to remove duplicate value in select box	  
function fnRemoveOptions(Target)
	{
            var i = 0;
            while(i<Target.options.length){
                  fnChkToRemoveOptions(Target.options[i].text,Target)
                  i++;
            }
			sortlist(Target);
    }
	  
function fnChkToRemoveOptions(sValue,Target)
	{
		var i = Target.options.length;
		var bFound = false;
		while(i>0){
			  i--;
			  if (Target.options[i].text==sValue && bFound==false) {
					bFound = true
			  }
			  else if (Target.options[i].text==sValue){
					Target.removeChild(Target.options[i]);
			  }
		}
	}

    
