var detect = navigator.userAgent.toLowerCase();
var OS,browser,total,thestring;
var version = 0;

if (checkIt('konqueror'))
{
	browser = "Konqueror";
	OS = "Linux";
}
else if (checkIt('safari')) browser = "Safari"
else if (checkIt('omniweb')) browser = "OmniWeb"
else if (checkIt('opera')) browser = "Opera"
else if (checkIt('webtv')) browser = "WebTV";
else if (checkIt('icab')) browser = "iCab"
else if (checkIt('msie')) browser = "Internet Explorer"
else if (!checkIt('compatible'))
{
	browser = "Netscape Navigator"
	version = detect.charAt(8);
}
else browser = "An unknown browser";

if (!version) version = detect.charAt(place + thestring.length);

if (!OS)
{
	if (checkIt('linux')) OS = "Linux";
	else if (checkIt('x11')) OS = "Unix";
	else if (checkIt('mac')) OS = "Mac"
	else if (checkIt('win')) OS = "Windows"
	else OS = "an unknown operating system";
}
function checkIt(string)
{  
	place = detect.indexOf(string) + 1;
	thestring = string;
	return place;
}

function toggleTextOut(e,txtval) {
	if(e.value=="") e.value = txtval;
	
}
function toggleTextIn(e,txtval) {
	if(e.value==txtval) e.value="";
	else e.select();
}
function toggleTextOut(e,txtval) {
	if(e.value=="") e.value = txtval;
	
}
function toggleTextIn(e,txtval) {
	if(e.value==txtval) e.value="";
	else e.select();
}

function getElementHeight() {
var cHeight = document.getElementById('content').offsetHeight;
var sidebarHeight = document.getElementById('sidebar').offsetHeight;
var relHeight = document.getElementById('sidebarinside').offsetHeight;
var relImage=document.getElementById('relImage').offsetHeight;
if(cHeight<sidebarHeight) {
	cHeight=sidebarHeight;
	}
diffPos=cHeight - (relHeight+relImage);
var xPos=relHeight+(diffPos/2);
//document.getElementById('sidebarinside').style.height=xPos +"px";
document.getElementById('sidebarinside').style.height="100%";
document.getElementById('sidebar').style.height="100%";
}
function MM_preloadImages() {
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function PrinterFriendly(strElementName,strStylesheet) 
{ 
   var sOption="toolbar=yes,location=no,directories=yes,menubar=yes,"; 
       sOption+="scrollbars=yes,width=750,height=600,left=100,top=25"; 

   var sWinHTML = document.getElementById(strElementName).innerHTML; 
   
   var winprint=window.open("","",sOption); 
       winprint.document.open(); 
       //winprint.document.write('<html><LINK href=' + strStylesheet + ' rel=Stylesheet><body>'); 
       winprint.document.write('<html><body>'); // Without style sheet
       winprint.document.write(sWinHTML);          
       winprint.document.write('</body></html>'); 
       winprint.document.close(); 
       winprint.print(); 
}

// General Java script functions 
//EMail Validation
function echeck(str) {

		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
		   alert("Invalid E-mail")
		   return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   alert("Invalid E-mail")
		   return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    alert("Invalid E-mail")
		    return false
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    alert("Invalid E-mail")
		    return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    alert("Invalid E-mail")
		    return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    alert("Invalid E-mail")
		    return false
		 }
		
		 if (str.indexOf(" ")!=-1){
		    alert("Invalid E-mail")
		    return false
		 }

 		 return true					
	}


//Java script function trim string 
function JSTrim(str)
{
	return str=str.replace(/^[\s\xA0]+/, "").replace(/[\s\xA0]+$/, "");
}

//Required field validation
function FieldIsNull(objField,strMessage)
{
	if (JSTrim(objField.value)=='')
	{
		alert(strMessage);
    		objField.focus();
    		return false;
    	}
	return true;
 }


//Function to set combo selection
function SetComboSelect(objField,strValue)
{

	for(i=0;i<objField.length;i++)
	{
		if(objField.options[i].value==strValue)
		{
			objField[i].selected=true;
			
		}
	}
}


// check is numeric
function FieldIsNumeric(objField)
{
	if(isNaN(objField.value)==true)
	{
		alert('Enter numeric value');
		objField.focus();
		return false;
	}
	return true;
}

// check is FieldIsZero
function FieldIsZero(objField)
{
	if(objField.value==0)
	{
		alert('Enter valid value');
		objField.focus();
		return true;
	}
	return false;
}

//Date validation
function checkDate(get)
{
   var rdate = get.value
   rdate = rdate.toString()
   if (rdate == "")    {return false;}
   if ((rdate.indexOf("/",0) != 2) ||
(rdate.indexOf("/",3) != 5))
   {
       alert("Please enter the date in DD/MM/YYYY format")
       get.focus();
       return false;
   }
   for (i=0; i<rdate.length; i++)
   {
       var oneChar = rdate.charAt(i)
       if (oneChar == "/")    {continue;}
       if (oneChar < "0" || oneChar > "9") 
       {
           alert(" Enter a valid number ");
           get.focus();
           return false
       }
   }
   var dt = rdate.substring(0,2)
   var mo = rdate.substring(3,5)
   var ye = rdate.substring(6,10)
   if (ye.length != 4)
   {
       alert("Year must be in 4 digits")
       get.focus();
       return false;
   }
   yr = parseInt(ye)
   var con = true
   if ((mo<="00" || mo>"12") || (dt<="00" || dt>"31") ||
yr<=0)
   {
       alert(" Enter a valid date ")
       con = false
   }
   if ((mo==4 || mo==6 || mo==9 || mo==11) && dt==31) 
   {
       alert("Month "+mo+" doesn't have 31 days!")
       con = false
   }
   if (mo == 2)
   {
       var isleap = (yr % 4 == 0 && (yr % 100 != 0 || yr % 400 == 0));
       if (dt>29 || (dt==29 && !isleap)) 
       {
           alert("February " + yr + " doesn't have " + dt + "days!");
           con = false
       }
   }
   if (con == false)
   {
       get.focus()
       return false;
   }
   return true;
}

//Date diff function
function returnDays(startDate,endDate)
{

var SmonthDays=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
var EmonthDays=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
var sdate=startDate.value;
var sdt = parseInt(sdate.substring(0,2));
var smo = parseInt(sdate.substring(3,5));
var syr = parseInt(sdate.substring(6,10));
var edate=endDate.value;
var edt = parseInt(edate.substring(0,2));
var emo = parseInt(edate.substring(3,5));
var eyr = parseInt(edate.substring(6,10));


// since parseInt(09) or (08) gives 0 so this logic
if (sdate.substring(0,2)=="08")
sdt=8;
if (sdate.substring(0,2)=="09")
sdt=9;
if (sdate.substring(3,5)=="08")
smo=8;
if (sdate.substring(3,5)=="09")
smo=9;
if (edate.substring(0,2)=="08")
edt=8;
if (edate.substring(0,2)=="09")
edt=9;
if (edate.substring(3,5)=="08")
emo=8;
if (edate.substring(3,5)=="09")
emo=9;
// end of the parseInt logic 


// since month array starts from zero and month number starts from 1
smo=smo-1;
emo=emo-1;

var isLeapStartYear=(syr % 4 == 0 && (syr % 100 != 0 || syr % 400 == 0));
if (isLeapStartYear==true)
SmonthDays[1]=29;

var isLeapEndYear=(eyr % 4 == 0 && (eyr % 100 != 0 || eyr % 400 == 0));
if (isLeapEndYear==true)
EmonthDays[1]=29;

if (syr==eyr) // for same year 
{
	if(smo==emo) // both date in same month
	{
		return edt-sdt;
	}
				// else check for diff month 
	var nday=SmonthDays[smo]-sdt;
	var tempDays=0;
	smo=smo+1;
	while(emo > smo)
	{
		tempDays=tempDays+SmonthDays[smo];
		smo=smo+1;
	}
	nday=nday+tempDays+edt;
	return nday;
}




// check for diff in years
var Ydays=0
syr=syr+1;
while(eyr > syr)
{
	if(syr % 4 == 0 && (syr % 100 != 0 || syr % 400 == 0))
		{
		Ydays=Ydays+366; // add 366 days for leap year
		}
	else
		{
		Ydays=Ydays+365;  // add 365 days for non leap years
		}
	syr=syr+1
}


var sTempDays=SmonthDays[smo]-sdt;
smo=smo+1;

for(var i=smo;i<12;i++)
	sTempDays=sTempDays+SmonthDays[i];

var eTempDays=0

for(var j=0;j<emo;j++)
	eTempDays=eTempDays+EmonthDays[j];

eTempDays=eTempDays+edt;



return Ydays+sTempDays+eTempDays;


}