var lwr = 'abcdefghijklmnopqrstuvwxyz';
var upr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
var dig = '1234567890';
var space= ' ';
var symbol='-';
Now = new Date();
NowDay = Now.getDate();
NowMonth = Now.getMonth();
NowYear = Now.getYear();
if (NowYear < 2000) NowYear += 1900; //for Netscape

//function for returning how many days there are in a month including leap years
function isValid(parm,val) 
{
  for (i=0; i<parm.length; i++) 
  {
    if (val.indexOf(parm.charAt(i),0) == -1) return false;
  }
  return true;
}


function isEmpty(textvalue) {
	textvalue=textvalue.replace(/\s/g,"");
	if(textvalue.length>0)
		return false;
	else
		return true;
}
function validURL(url){
	var elval= url.value.replace(/[\n\r\s]+/,"");
	if(elval =="") return true;
	var str=url.value;
	if(1){
		var filter=/^((ht|f)tp(s?))(:((\/\/)(?!\/)))(((w){3}\.)?)([a-zA-Z0-9\-_\.]+(\.(com|edu|gov|int|mil|net|org|biz|info|name|pro|museum|co\.uk|in)))((?!\/))(([a-zA-Z0-9\-_\/]*)?)$/i      
	}
	if (filter.test(str))
		testresults=true;
	else
		testresults=false;
		
	return (testresults);
}

function viewToolTip(id,parentId,posX,posY)
{
	
	it = document.getElementById(id);
	 if ((it.style.top == '' || it.style.top == 0) 
        && (it.style.left == '' || it.style.left == 0))
    {
        // need to fixate default size (MSIE problem)
        it.style.width = it.offsetWidth + 'px';
        it.style.height = it.offsetHeight + 'px';
        
        img = document.getElementById(parentId); 
    
        // if tooltip is too wide, shift left to be within parent 
        if (posX + it.offsetWidth > img.offsetWidth) posX = img.offsetWidth - it.offsetWidth;
        if (posX < 0 ) posX = 0; 
        
        x = xstooltip_findPosX(img) + posX;
        y = xstooltip_findPosY(img) + posY;
        
        it.style.top = y + 'px';
        it.style.left = x + 'px';
    }
    


	it.style.visibility = 'visible'; 
}

function validate_claim()
{
	
	if (isEmpty(document.getElementById('txt_forename').value)) 
	{
		alert("Please enter the forename.");
		document.getElementById('txt_forename').focus();
		return false;
	}	
		if (!isValid(document.getElementById("txt_forename").value,lwr+upr))
	 {
		 alert("Enter only alphabets in Fore Name");
		 document.getElementById('txt_forename').focus();
		 return false;
	 }
	 
	if (isEmpty(document.getElementById('txt_surname').value))
	{
		alert("Please enter your surname.");
		document.getElementById('txt_surname').focus();
		return false;
	}	
		if (!isValid(document.getElementById("txt_surname").value,lwr+upr))
	 {
	 alert("Enter only alphabets in Sur Name");
	 document.getElementById('txt_surname').focus();
	 return false;
	 }
	if (isEmpty(document.getElementById('txt_homephone').value)) 
	{
		alert("Please enter your home telephone no.");
		document.getElementById('txt_homephone').focus();
		return false;
	}	
	if (!isValid(document.getElementById("txt_homephone").value,dig+symbol))
	 {
	 alert("Enter proper phone no.");
	 document.getElementById('txt_homephone').focus();
	 return false;
	 }
	
	if (isEmpty(document.getElementById('txt_emailaddress').value)) 
	{
		alert("Please enter your email address.");
		 document.getElementById('txt_emailaddress').focus();
		return false;
	}
	
	if(!validateEmail(document.getElementById('txt_emailaddress').value)) 
	{
		alert("Please enter valid email address.");
		document.getElementById('txt_emailaddress').focus();
		return false;
	}
	
	if (isEmpty(document.getElementById('date_of_birth').value)) 
	{
		alert("Please enter your date of birth.");
		 document.getElementById('date_of_birth').focus();
		return false;
	}
		if (!document.getElementById('date_of_birth').value=="")
	 {
		 $condition=validate_dateinput();
		 if($condition==0)
		 {
		 	return false;
		 }
   	}
	
	var dateyear = document.getElementById('date_of_birth').value;
	dateyear = dateyear.split("/");
	if(dateyear[2]>document.getElementById('year_of_injury').value)
	{
		alert('please enter the correct year of accident');
		return false;
	}
	
	if (document.getElementById('accident_type').value=='0') 
	{
		alert("Please select your accident type.");
		 document.getElementById('accident_type').focus();
		return false;
	}
	
	
	
}

function validate_dateinput()
{
    var date = document.getElementById('date_of_birth').value;
	date = date.split("/");
	 if (date[2]>1990 )
	{
			alert ("Please enter correct birth date");
			document.getElementById('date_of_birth').value=""
			document.getElementById('date_of_birth').focus();
			return false;
	}
	
}

function validate_call()
{
	if(document.getElementById('callback_day').value=='Tomorrow')
	{

		for(i=0;i<14;i++)
		{
			if(document.getElementById('callback_time').options[i].value=='Now')
			{
			document.getElementById('callback_time').options[i] = null;
			document.getElementById('callback_time').options.selectedIndex = 0; 
			}
		}
	}
	if(document.getElementById('callback_day').value=='Today')
	{
  		if(!(document.getElementById('callback_time').options[0].value=='Now'))
		{
			AddItem('Now','Now');
		}
	}
}
function validate_callleft()
{
	if(document.getElementById('sel_day').value=='Tomorrow')
	{

		for(i=0;i<14;i++)
		{
			if(document.getElementById('sel_time').options[i].value=='Now')
			{
			document.getElementById('sel_time').options[i] = null;
			document.getElementById('sel_time').options.selectedIndex = 0; 
			}
		}
	}
	if(document.getElementById('sel_day').value=='Today')
	{
  		if(!(document.getElementById('sel_time').options[0].value=='Now'))
		{
			AddItemleft('Now','Now');
		}
	}
}
function AddItem(Text,Value)
    {
        var opt = document.createElement("option");
        document.getElementById("callback_time").options.add(opt);
        opt.text = Text;
        opt.value = Value;
    }
function AddItemleft(Text,Value)
    {
        var opt = document.createElement("option");
        document.getElementById("sel_time").options.add(opt);
        opt.text = Text;
        opt.value = Value;
    }
function validate_claimleft()
{
	
	if (isEmpty(document.getElementById('txt_clientname').value)) 
	{
		alert("Please enter your name.");
		document.getElementById('txt_clientname').focus();
		return false;
	}	

		if (!isValid(document.getElementById("txt_clientname").value,lwr+upr+space))
	 {
	 alert("Enter only alphabets in your Name");
	 document.getElementById('txt_clientname').focus();
	 return false;
	 }
	 
	if (isEmpty(document.getElementById('txt_phoneno').value)) 
	{
		alert("Please enter your phone no.");
		document.getElementById('txt_phoneno').focus();
		return false;
	}	
	
	if (!isValid(document.getElementById("txt_phoneno").value,dig+symbol))
	 {
	 alert("Enter proper phone no.");
	 document.getElementById('txt_phoneno').focus();
	 return false;
	 }
	
	if (isEmpty(document.getElementById('txt_emailadd').value)) 
	{
		alert("Please enter your email address.");
		 document.getElementById('txt_emailadd').focus();
		return false;
	}
	
	if(!validateEmail(document.getElementById('txt_emailadd').value)) 
	{
		alert("Please enter valid email address.");
		document.getElementById('txt_emailadd').focus();
		return false;
	}
	
	if (document.getElementById('sel_action').value=='0') 
	{
		alert("Please select your action type.");
		 document.getElementById('sel_action').focus();
		return false;
	}
		
}
function xstooltip_findPosX(obj) 
{
  var curleft = 0;
  if (obj.offsetParent) 
  {
    while (obj.offsetParent) 
        {
            curleft += obj.offsetLeft
            obj = obj.offsetParent;
        }
    }
    else if (obj.x)
        curleft += obj.x;
    return curleft;
}

function xstooltip_findPosY(obj) 
{
    var curtop = 0;
    if (obj.offsetParent) 
    {
        while (obj.offsetParent) 
        {
            curtop += obj.offsetTop
            obj = obj.offsetParent;
        }
    }
    else if (obj.y)
        curtop += obj.y;
    return curtop;
}


function hideToolTip(id)
{
    it = document.getElementById(id); 
    it.style.visibility = 'hidden'; 
}

function get_subcategories(){
	var d=document.getElementById('subcategories');
	 d.style.display = 'block'; 
}
/*
function get_subknife(){
	var d=document.getElementById('subknife');
	 d.style.display = 'block'; 
}
*/


 function checkAll(chk) {

 	for (var i=0;i < document.forms[0].elements.length;i++)
	{
		var e = document.forms[0].elements[i];
		if (e.type == "checkbox")
		{
			e.checked = chk.checked;
		}
	}
 }
 
function checkAllNew(chk,frm,frm2) {

	var formelements = eval("document."+frm+".elements");
 	
 	//alert(formelements.length);
 	for (var i=0;i < formelements.length;i++)
	{
		//alert(formelements[i].type);
		var e = formelements[i];
		if (e.type == "checkbox")
		{
			e.checked = chk.checked;
		}
	}
 } 
 
 
 
 function selectActionNew(frm1,frm2) {
 	
	var formelements1 = eval("document."+frm1);
	var formelements2 = eval("document."+frm2);
 	
	
 	
 	if (isEmpty(document.getElementById('selAction').value)) {
		 alert("Please select the action to be performed.");
		 document.getElementById('selAction').focus();
		 return false;
	 }
	

	 if (checkFormNew(frm1 ,frm2) == true) {
		formelements1.selectedAction.value = formelements2.selAction.value;
		//document.forms[0].mode.value = "performAction";
		
		if (formelements1.selectedAction.value != "delete") {
			formelements1.mode.value = "performAction";
		}
		else {
			formelements1.mode.value = "performDelete";
		}
		
		formelements1.submit();
	 }
	 else {
		 return false;
	 }
 }

function checkFormNew(frm1, frm2)
{
	
	var formelements1 = eval("document."+frm1);
	var formelements2 = eval("document."+frm2);

	var count=0;
	var msg;
	for (var i=0;i < formelements1.elements.length;i++)
	{
		var e = formelements1.elements[i];
		if (e.type == "checkbox")
		{
			if(e.checked)
				count=count+1;
		}
	}

	if(count==0)
	{
		alert("Please select atleast one record");	
		return false;	
	}
	else
	{
		if (formelements2.selAction.value != "delete"){
			msg="Are you sure that you want to change the status?";
		}
		else {
			msg="Are you sure that you want to delete the selected record(s)?";
		}
		return confirm(msg);
	}

}//checkform

function selectAction() {
	 if (isEmpty(document.getElementById('selAction').value)) {
		 alert("Please select the action to be performed.");
		 document.getElementById('selAction').focus();
		 return false;
	 }


	 if (checkForm() == true) {
		document.forms[0].selectedAction.value = document.forms[1].selAction.value;
		//document.forms[0].mode.value = "performAction";
		
		if (document.forms[0].selectedAction.value != "delete") {
			document.forms[0].mode.value = "performAction";
		}
		else {
			document.forms[0].mode.value = "performDelete";
		}
		
		document.forms[0].submit();
	 }
	 else {
		 return false;
	 }
 }

function checkForm()
{
	var count=0;
	var msg;
	for (var i=0;i < document.forms[0].elements.length;i++)
	{
		var e = document.forms[0].elements[i];
		if (e.type == "checkbox")
		{
			if(e.checked)
				count=count+1;
		}
	}

	if(count==0)
	{
		alert("Please select atleast one record");	
		return false;	
	}
	else
	{
		if (document.forms[1].selAction.value != "delete"){
			msg="Are you sure that you want to change the status?";
		}
		else {
			msg="Are you sure that you want to delete the selected record(s)?";
		}
		return confirm(msg);
	}

}//checkform



//----------------------- Miscellaneous functions ---------------------//

// This function is used to validate a given e-mail 
// address for the proper syntax

function validateEmail(email)
{
	
	if (email == ""){
		return false;
	}
	badStuff = ";:/,' \"\\";
	for (i=0; i<badStuff.length; i++){
		badCheck = badStuff.charAt(i)
		if (email.indexOf(badCheck,0) != -1){
			return false;
		}
	}
	posOfAtSign = email.indexOf("@",1)
	if (posOfAtSign == -1){
		return false;
	}
	if (email.indexOf("@",posOfAtSign+1) != -1){
		return false;
	}
	posOfPeriod = email.indexOf(".", posOfAtSign)
	if (posOfPeriod == -1){
		return false;
	}
	if (posOfPeriod+2 > email.length){
		return false;
	}
	return true
}

//The function is to check the extension of the file.

function checkFileExtension(file)
{
	
	if(file != "") {
		extArray = new Array(".pdf", ".indd");
		while (file.indexOf("\\") != -1)
		file = file.slice(file.indexOf("\\") + 1);
		ext = file.slice(file.indexOf(".")).toLowerCase();

		for (var i = 0; i < extArray.length; i++) {
			if (extArray[i] == ext) {
				allowSubmit =1 ; break;
			}
			else {	
				allowSubmit=2;
			}
	}

	if(allowSubmit==2) {
		alert("Only files with following extensions are allowed:  " 
		+ (extArray.join("  ")));
		return false;
	}
	  return true;
	}
	else {
		return false;
	}
}


//The function is to check the specified extension of the file.

function checkFileExtensionArray(file, extArray)
{
	
	if(file != "") {
		//extArray = new Array(".pdf", ".indd");
		while (file.indexOf("\\") != -1)
		file = file.slice(file.indexOf("\\") + 1);
		ext = file.slice(file.indexOf(".")).toLowerCase();

		for (var i = 0; i < extArray.length; i++) {
			if (extArray[i] == ext) {
				allowSubmit =1 ; break;
			}
			else {	
				allowSubmit=2;
			}
	}

	if(allowSubmit==2) {
		alert("Only files with following extensions are allowed:  " 
		+ (extArray.join("  ")));
		return false;
	}
	  return true;
	}
	else {
		return false;
	}
}

//The function is to open the popup window of given width and height for a given URL

function openPopUpWindow(url, width, height) {
	window.open(url, 'popupwindow', 'width=' + width + ', height=' + height + ', scrollbars = yes, statusbar = no');
}

// The function add the option in a drop down list.

function addOption(selectBoxId, text, value) {
	 var optn = document.createElement("OPTION");
	optn.text = text;
	optn.value = value;
	elementId = eval("document.getElementById('" + selectBoxId + "')");
	elementId.options.add(optn);
}


function redirectToPage(pagePath) {
	window.location.href = pagePath;
}

function validate_finishingstatus(){
	
	if (isEmpty(document.getElementById('FinishingProcessId').value)) {
		alert("Please select the process.");
		document.getElementById('FinishingProcessId').focus();
		return false;
	}	
	if (isEmpty(document.getElementById('FinishingMcodes').value)) {
		alert("Please select machine code.");
		document.getElementById('FinishingMcodes').focus();
		return false;
	}	
	if (isEmpty(document.getElementById('FinishingWorkstatus').value)) {
		alert("Please select Status.");
		document.getElementById('FinishingWorkstatus').focus();
		return false;
	}	

	alert("Work status will be saved when clicked.");
	return false;

}

function validate_date()
{
	var mydate= new Date();
var currentyear=mydate.getFullYear();
var currentmonth=mydate.getMonth()+1;
var currenttoday=mydate.getDate();
//thetoday+"-"+themonth+"-"+theyear)
	
	if (isEmpty(document.getElementById('day_to_arrival').value)) {
		alert("Please enter Arrival Date.");
		document.getElementById('day_to_arrival').focus();
		return false;
	}	
	if (isEmpty(document.getElementById('ContactArrivalTime').value)) {
		alert("Please select Arrival Time.");
		document.getElementById('ContactArrivalTime').focus();
		return false;
	}
	if (isEmpty(document.getElementById('day_to_departure').value)) {
		alert("Please enter Departure Date.");
		document.getElementById('day_to_departure').focus();
		return false;
	}
	if (isEmpty(document.getElementById('ContactDepartureTime').value)) {
		alert("Please select Departure Time.");
		document.getElementById('ContactDepartureTime').focus();
		return false;
	}
	if (isEmpty(document.getElementById('ContactAdults').value)) {
		alert("Please select number of Adults.");
		document.getElementById('ContactAdults').focus();
		return false;
	}
	 var date1 = document.getElementById('day_to_departure').value;
  var date2 = document.getElementById('day_to_arrival').value;
 
  date1 = date1.split("-");
  date2 = date2.split("-");
  
  var sDate = new Date(date1[0]+"/"+date1[1]+"/"+date1[2]);
  var eDate = new Date(date2[0]+"/"+date2[1]+"/"+date2[2]);
  
   	if (date1[2] >= date2[2] && date1[1] < date2[1])
	{
		alert("Departure Month must occurs after or same to arrival month");
		document.getElementById('day_to_departure').value = "";
		document.getElementById('day_to_departure').focus();
		return false;
	}
	
	else if (date1[2] == date2[2] && date1[1] == date2[1])
	{
		if (date1[0] < date2[0])
		{
			alert ("Departure Date must be greater than or equal to Arrival Date");
			document.getElementById('day_to_departure').value = "";
			document.getElementById('nights').value = "";
			document.getElementById('day_to_departure').focus();
			return false;
		}
		else
		{
			var daysApart = Math.abs(Math.round((sDate-eDate)/86400000));
 			document.getElementById('nights').value = daysApart;
			return true;
		}	
	}
	else
	{
		alert("Departure Year must be greater than or equal to Arrival Year");
		document.getElementById('day_to_departure').value = "";
			document.getElementById('day_to_departure').focus();
			return false;
	}
	alert(date2);
	
	if (date2[2] >= currentyear && date2[1] < currentmonth)
	{
		alert("Arrival Month must occurs after or same to current month");
		document.getElementById('day_to_arrival').value = "";
		document.getElementById('day_to_departure').value = "";
		document.getElementById('nights').value = "";
		document.getElementById('day_to_arrival').focus();
		return false;
	}
	
	else if (date2[2] == currentyear && date2[1] == currentmonth)
	{
		if (date2[0] < currenttoday)
		{
			alert ("Arrival Date must be greater than or equal to Current Date");
			document.getElementById('day_to_arrival').value = "";
			document.getElementById('day_to_departure').value = "";
			document.getElementById('nights').value = "";
			document.getElementById('day_to_departure').focus();
			return false;
		}
	}
	else
	{
		alert("Arrival Year must be greater than or equal to Current Year");
		document.getElementById('day_to_arrival').value = "";
			document.getElementById('day_to_departure').value = "";
			document.getElementById('nights').value = "";
			document.getElementById('day_to_arrival').focus();
			return false;
	}
	
}

function calcDays(){
	
  var date1 = document.getElementById('day_to_departure').value;
  var date2 = document.getElementById('day_to_arrival').value;
 
  date1 = date1.split("/");
  date2 = date2.split("/");
  
  var sDate = new Date(date1[1]+"/"+date1[0]+"/"+date1[2]);
  var eDate = new Date(date2[1]+"/"+date2[0]+"/"+date2[2]);
  
  if (document.getElementById('day_to_arrival').value=="click here to see") {
		alert("Please enter Arrival Date.");
		document.getElementById('day_to_arrival').focus();
		return false;
	}	
	if (isEmpty(document.getElementById('ContactArrivalTime').value)) {
		alert("Please select Arrival Time.");
		document.getElementById('ContactArrivalTime').focus();
		return false;
	}
	if (document.getElementById('day_to_departure').value=="click here to see") {
		alert("Please enter Departure Date.");
		document.getElementById('day_to_departure').focus();
		return false;
	}
	if (isEmpty(document.getElementById('ContactDepartureTime').value)) {
		alert("Please select Departure Time.");
		document.getElementById('ContactDepartureTime').focus();
		return false;
	}
	if (isEmpty(document.getElementById('ContactAdults').value)) {
		alert("Please select number of Adults.");
		document.getElementById('ContactAdults').focus();
		return false;
	}
  
  
   	if (date1[2] >= date2[2] && date1[1] < date2[1])
	{
		alert("Departure Date must occurs after or same to arrival Date");
		document.getElementById('day_to_departure').value = "click here to see";
		document.getElementById('day_to_departure').focus();
		return false;
	}
	
	else if (date1[2] == date2[2] && date1[1] == date2[1])
	{
		if (date1[0] < date2[0])
		{
			alert ("Departure Month must be greater than or equal to Arrival Month");
			document.getElementById('day_to_departure').value = "click here to see";
			document.getElementById('day_to_departure').focus();
			return false;
		}
		else
		{
			var daysApart = Math.abs(Math.round((sDate-eDate)/86400000));
 			document.getElementById('nights').value = daysApart;
			return true;
		}	
	}
	else if (date1[2] < date2[2])
	{
		alert("Departure Year must be greater than or equal to Arrival Year");
		document.getElementById('day_to_departure').value = "click here to see";
			document.getElementById('day_to_departure').focus();
			return false;
	}
	var daysApart = Math.abs(Math.round((sDate-eDate)/86400000));
 	document.getElementById('nights').value = daysApart;
 	return true;
}


function validate_arrivaldate()
{
	var mydate= new Date();
	var currentyear=mydate.getFullYear();
	var currentmonth=mydate.getMonth()+1;
	var currenttoday=mydate.getDate();
    var date = document.getElementById('day_to_arrival').value;
	date = date.split("/");
   if (date[2] == currentyear && date[1] == currentmonth)
	{
		if (date[0] < currenttoday)
		{
			alert ("Date should be greater than current date");
			document.getElementById('day_to_arrival').value="click here to see";
			document.getElementById('day_to_arrival').focus();
			return false;
		}
	}
	 if (date[2]< currentyear || date[1] < currentmonth)
	{
			alert ("Date should be greater than current date");
			document.getElementById('day_to_arrival').value="click here to see"
			document.getElementById('day_to_arrival').focus();
			return false;
	}
	
}

function validate_departuredate()
{
	var mydate= new Date();
	var currentyear=mydate.getFullYear();
	var currentmonth=mydate.getMonth()+1;
	var currenttoday=mydate.getDate();
    var date = document.getElementById('day_to_departure').value;
	var date1 = document.getElementById('day_to_arrival').value;
	date = date.split("/");
	date1 = date1.split("/");
	
	if (document.getElementById('day_to_arrival').value=="click here to see") {
		alert("Please enter Arrival Date First.");
		document.getElementById('day_to_departure').value="click here to see";
		//document.getElementById('day_to_arrival').focus();
		return false;
	}	
	
    if (date[2] >= date1[2] && date[1] < date1[1])
	{
		alert("Departure Date must occurs after or same to arrival Date");
		document.getElementById('day_to_departure').value = "click here to see";
		document.getElementById('day_to_departure').focus();
		return false;
	}
	 if (date[2] == date1[2] && date[1] == date1[1])
	{
		if (date[0] < date1[0])
		{
			alert ("Departure Date must occurs after or same to arrival Date");
			document.getElementById('day_to_departure').value="click here to see";
			document.getElementById('day_to_departure').focus();
			return false;
		}
	}
	 if (date[2]< date1[2] || date[1] < date1[1])
	{
			alert ("Departure Date must occurs after or same to arrival Date");
			document.getElementById('day_to_departure').value="click here to see"
			document.getElementById('day_to_departure').focus();
			return false;
	}
  
 	 var sDate = new Date(date[1]+"/"+date[0]+"/"+date[2]);
  	var eDate = new Date(date1[1]+"/"+date1[0]+"/"+date1[2]);
 	 var daysApart = Math.abs(Math.round((sDate-eDate)/86400000));
 	document.getElementById('nights').value = daysApart;
 	return true;
	
}