// JavaScript Document

//To allow the user to enter only numbers.
function CheckValue(fieldId)
{
  var checkOK = "0123456789";
  var checkStr = document.getElementById(fieldId).value;
  var allValid = true;
  var decPoints = 0;
  var allNum = "";

  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    
    for (j = 0;  j < checkOK.length;  j++)
    {
      if (ch == checkOK.charAt(j))
        break;
    
    
      if (j == checkOK.length-1)
      {
        allValid = false;
        break;
      }
    }
    if (ch == ",")
    { 
      allNum += ".";
      decPoints++;
    }
    else
    {
      allNum += ch;
    }
      
  }
  
  if (!allValid)
  {
	document.getElementById(fieldId).value = "";
    document.getElementById(fieldId).focus();
    return false;
  }
  
  
  if (decPoints > 1)
  {
	document.getElementById(fieldId).value = "";
    document.getElementById(fieldId).focus();
    return false;
  }
  
  return true;
}

function CheckValuesame(fieldId)
{
//alert(document.getElementById(fieldId).value);
var strnamefetcha=document.getElementById(fieldId).value;
var strbegin=strnamefetcha;
 document.getElementById('warrantyBeginDate').value=strbegin;
return true;
}
///For Getting year+2 in warranty end date

function Check()
{

	var dt1=document.forms['form1'].elements['registrationDate'];
	var dt2=document.forms['form1'].elements['warrantyEndDate'];
	var date = dt1.value;	

	var str = date.split('-');

	if(str.length == 3 && dt1.value != "00-00-0000")
	{
		var year = parseInt(str[2]) + 3;

		if((dt2.value=="" || dt2.value == "00-00-0000"))
		{
			document.forms['form1'].elements['warrantyEndDate'].value = str[0]+"-"+str[1]+"-"+year;
		}
	}

	return true;
}




//For Calculating total

function totalfields()

{

	var PR1=0.0;

	var PR2=0.0;

	var PR3=0.0;

	var PR4=0.0;

	var PR5=0.0;

	var PR6=0.0;

	var PR7=0.0;

	var PR8=0.0;

	var PR9=0.0;

	var PR10=0.0;

	var PR11=0.0;

	var PR12=0.0;

	var PR13=0.0;

	var PR14=0.0;

	var PR15=0.0;

	var PR16=0.0;

	var PR17=0.0;

	var PR18=0.0;
	
	//Time fields

	if(document.forms['form1'].elements['Cost1'].value != "" && isNaN(document.forms['form1'].elements['Cost1'].value)==false)
	{

		PR1 = document.forms['form1'].elements['qty1'].value * document.forms['form1'].elements['Cost1'].value;		
	}

	if(document.forms['form1'].elements['Cost2'].value != "" && isNaN(document.forms['form1'].elements['Cost2'].value)==false)

	{

		PR2=document.forms['form1'].elements['qty2'].value * document.forms['form1'].elements['Cost2'].value;

	}

	if(document.forms['form1'].elements['Cost3'].value != "" && isNaN(document.forms['form1'].elements['Cost3'].value)==false)

	{

		PR3 = document.forms['form1'].elements['qty3'].value * document.forms['form1'].elements['Cost3'].value;

	}

	if(document.forms['form1'].elements['Cost4'].value != "" && isNaN(document.forms['form1'].elements['Cost4'].value)==false)

	{

		PR4= document.forms['form1'].elements['qty4'].value * document.forms['form1'].elements['Cost4'].value;

	}

	if(document.forms['form1'].elements['Cost5'].value != "" && isNaN(document.forms['form1'].elements['Cost5'].value)==false)

	{

		PR5 = document.forms['form1'].elements['qty5'].value * document.forms['form1'].elements['Cost5'].value;

	}

	if(document.forms['form1'].elements['Cost6'].value != "" && isNaN(document.forms['form1'].elements['Cost6'].value)==false)

	{

		PR6= document.forms['form1'].elements['qty6'].value * document.forms['form1'].elements['Cost6'].value;

	}

    

    //Items fields

	if(document.forms['form1'].elements['qty11'].value != "" && document.forms['form1'].elements['Cost11'].value != "" && isNaN(document.forms['form1'].elements['qty11'].value)==false && isNaN(document.forms['form1'].elements['Cost11'].value)==false)
	{

		PR7 = document.forms['form1'].elements['qty11'].value * document.forms['form1'].elements['Cost11'].value;

	}

	if(document.forms['form1'].elements['qty12'].value != "" && document.forms['form1'].elements['Cost12'].value != "" && isNaN(document.forms['form1'].elements['qty12'].value)==false && isNaN(document.forms['form1'].elements['Cost12'].value)==false)

	{

		PR8 = document.forms['form1'].elements['qty12'].value * document.forms['form1'].elements['Cost12'].value;

	}

	if(document.forms['form1'].elements['qty13'].value != "" && document.forms['form1'].elements['Cost13'].value != "" && isNaN(document.forms['form1'].elements['qty13'].value)==false && isNaN(document.forms['form1'].elements['Cost13'].value)==false)

	{

		PR9 = document.forms['form1'].elements['qty13'].value * document.forms['form1'].elements['Cost13'].value;

	}

	if(document.forms['form1'].elements['qty14'].value != "" && document.forms['form1'].elements['Cost14'].value != "" && isNaN(document.forms['form1'].elements['qty14'].value)==false && isNaN(document.forms['form1'].elements['Cost14'].value)==false)

	{

		PR10 = document.forms['form1'].elements['qty14'].value * document.forms['form1'].elements['Cost14'].value;

	}

	if(document.forms['form1'].elements['qty15'].value != "" && document.forms['form1'].elements['Cost15'].value != "" && isNaN(document.forms['form1'].elements['qty15'].value)==false && isNaN(document.forms['form1'].elements['Cost15'].value)==false)

	{

		PR11 = document.forms['form1'].elements['qty15'].value * document.forms['form1'].elements['Cost15'].value;

	}

	if(document.forms['form1'].elements['qty16'].value != "" && document.forms['form1'].elements['Cost16'].value != "" && isNaN(document.forms['form1'].elements['qty16'].value)==false && isNaN(document.forms['form1'].elements['Cost16'].value)==false)

	{

		PR12 = document.forms['form1'].elements['qty16'].value * document.forms['form1'].elements['Cost16'].value;

	}

	if(document.forms['form1'].elements['qty17'].value != "" && document.forms['form1'].elements['Cost17'].value != "" && isNaN(document.forms['form1'].elements['qty17'].value)==false && isNaN(document.forms['form1'].elements['Cost17'].value)==false)

	{

		PR13 = document.forms['form1'].elements['qty17'].value * document.forms['form1'].elements['Cost17'].value;

	}

	if(document.forms['form1'].elements['qty18'].value != "" && document.forms['form1'].elements['Cost18'].value != "" && isNaN(document.forms['form1'].elements['qty18'].value)==false && isNaN(document.forms['form1'].elements['Cost18'].value)==false)

	{

		PR14 = document.forms['form1'].elements['qty18'].value * document.forms['form1'].elements['Cost18'].value;

	}

	if(document.forms['form1'].elements['qty19'].value != "" && document.forms['form1'].elements['Cost19'].value != "" && isNaN(document.forms['form1'].elements['qty19'].value)==false && isNaN(document.forms['form1'].elements['Cost19'].value)==false)

	{

		PR15 = document.forms['form1'].elements['qty19'].value * document.forms['form1'].elements['Cost19'].value;

	}

	if(document.forms['form1'].elements['qty20'].value != "" && document.forms['form1'].elements['Cost20'].value != "" && isNaN(document.forms['form1'].elements['qty20'].value)==false && isNaN(document.forms['form1'].elements['Cost20'].value)==false)

	{

		PR16 = document.forms['form1'].elements['qty20'].value * document.forms['form1'].elements['Cost20'].value;

	}

	if(document.forms['form1'].elements['qty21'].value != "" && document.forms['form1'].elements['Cost21'].value != "" && isNaN(document.forms['form1'].elements['qty21'].value)==false && isNaN(document.forms['form1'].elements['Cost21'].value)==false)

	{

		PR17 = document.forms['form1'].elements['qty21'].value * document.forms['form1'].elements['Cost21'].value;

	}

	if(document.forms['form1'].elements['qty22'].value != "" && document.forms['form1'].elements['Cost22'].value != "" && isNaN(document.forms['form1'].elements['qty22'].value)==false && isNaN(document.forms['form1'].elements['Cost22'].value)==false)
	{

		PR18 = document.forms['form1'].elements['qty22'].value * document.forms['form1'].elements['Cost22'].value;		
	}

    document.forms['form1'].elements['totalTime'].value =0.0;
	//Added later--------------
	document.forms['form1'].elements['totalMO'].value =0.0;
	//document.forms['form1'].elements['totalTime'].value = PR1 + PR2+ PR3 +PR4 + PR5 + PR6 + PR7 + PR8 + PR9 + PR10 + PR11 + PR12 + PR13 + PR14 + PR15 + PR16 + PR17 +PR18 ; 
  document.forms['form1'].elements['totalTime'].value = PR1 + PR2+ PR3 +PR4 + PR5 + PR6;
  //Added later--------------
  document.forms['form1'].elements['totalMO'].value = parseFloat(document.forms['form1'].elements['totalTime'].value)*30;  

	document.forms['form1'].elements['totalItems'].value =  PR7+  PR8 + PR9 + PR10 + PR11 + PR12 + PR13 + PR14 + PR15 + PR16 + PR17 + PR18 ; 

	document.forms['form1'].elements['MM_total'].value= (parseFloat(document.forms['form1'].elements['totalItems'].value)  + parseFloat(document.forms['form1'].elements['totalMO'].value ));//+parseFloat(document.forms['form1'].elements['totalTime'].value));


	document.forms['form1'].elements['totalTime'].value=Math.round((document.forms['form1'].elements['totalTime'].value)*100)/100;
	//Added later--------------
	document.forms['form1'].elements['totalMO'].value=Math.round((document.forms['form1'].elements['totalMO'].value)*100)/100; 
	document.forms['form1'].elements['totalItems'].value =Math.round((document.forms['form1'].elements['totalItems'].value)*100)/100; 
  document.forms['form1'].elements['MM_total'].value=Math.round((document.forms['form1'].elements['MM_total'].value)*100)/100;
}



function Validator(frmname)

{

  this.formobj=document.forms[frmname];

	if(!this.formobj)

	{

	  alert("BUG: could not get Form object "+frmname);

		return;

	}

	if(this.formobj.onsubmit)

	{

	 this.formobj.old_onsubmit = this.formobj.onsubmit;

	 this.formobj.onsubmit=null;

	}

	else

	{

	 this.formobj.old_onsubmit = null;

	}

	this.formobj.onsubmit=form_submit_handler;

	this.addValidation = add_validation;

	this.setAddnlValidationFunction=set_addnl_vfunction;

	this.clearAllValidations = clear_all_validations;

}

function set_addnl_vfunction(functionname)

{

  this.formobj.addnlvalidation = functionname;

}

function clear_all_validations()

{

	for(var itr=0;itr < this.formobj.elements.length;itr++)

	{

		this.formobj.elements[itr].validationset = null;

	}

}

function form_submit_handler()

{

	for(var itr=0;itr < this.elements.length;itr++)

	{

		if(this.elements[itr].validationset &&

	   !this.elements[itr].validationset.validate())

		{

		  return false;;

		}

	}

	if(this.addnlvalidation)

	{

	  str =" var ret = "+this.addnlvalidation+"()";

	  eval(str);

    if(!ret) return ret;

	}

	return true;

}

function add_validation(itemname,descriptor,errstr)

{

  if(!this.formobj)

	{

	  alert("BUG: the form object is not set properly");

		return;

	}//if

	var itemobj = this.formobj[itemname];

  if(!itemobj)

	{

	  alert("BUG: Could not get the input object named: "+itemname);

		return;

	}

	if(!itemobj.validationset)

	{

	  itemobj.validationset = new ValidationSet(itemobj);

	}

  itemobj.validationset.add(descriptor,errstr);

}

function ValidationDesc(inputitem,desc,error)

{

  this.desc=desc;

	this.error=error;

	this.itemobj = inputitem;

	this.validate=vdesc_validate;

}

function vdesc_validate()

{

 if(!V2validateData(this.desc,this.itemobj,this.error))

 {

    this.itemobj.focus();

		return false;;

 }

 return true;

}

function ValidationSet(inputitem)

{

    this.vSet=new Array();

	this.add= add_validationdesc;

	this.validate= vset_validate;

	this.itemobj = inputitem;

}

function add_validationdesc(desc,error)

{

  this.vSet[this.vSet.length]= 

	  new ValidationDesc(this.itemobj,desc,error);

}

function vset_validate()

{

   for(var itr=0;itr<this.vSet.length;itr++)

	 {

	   if(!this.vSet[itr].validate())

		 {

		   return false;;

		 }

	 }

	 return true;

}

function validateEmailv2(email)
{
// a very simple email validation checking. 

// you can add more complex email checking if it helps 
    if(email.length <= 0)
	{
	  return true;
	}

    var splitted = email.match("^(.+)@(.+)$");
    if(splitted == null) return false;;
    if(splitted[1] != null )
    {
      var regexp_user=/^\"?[\w-_\.]*\"?$/;
      if(splitted[1].match(regexp_user) == null) return false;;
    }

    if(splitted[2] != null)
    {
      var regexp_domain=/^[\w-\.]*\.[A-Za-z]{2,4}$/;
      if(splitted[2].match(regexp_domain) == null) 
      {
	    var regexp_ip =/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;
	    if(splitted[2].match(regexp_ip) == null) return false;;
      }// if
      return true;
    }

return false;;
}



function V2validateData(strValidateStr,objValue,strError) 
{ 

    var epos = strValidateStr.search("="); 
    var  command  = ""; 
    var  cmdvalue = ""; 

    if(epos >= 0) 
    { 
     command  = strValidateStr.substring(0,epos); 
     cmdvalue = strValidateStr.substr(epos+1); 
    } 
    else 
    { 
     command = strValidateStr; 
    } 

    switch(command) 
    { 
        case "req": 
        case "required": 
         { 
           if(eval(objValue.value.length) == 0) 
           { 
              if(!strError || strError.length ==0) 
              { 
                strError = objValue.name + " : Campo obligatorio"; 
              }//if 
              alert(strError); 
              return false;; 
           }//if 
           break;             
         }//case required
    		case "date":
    		{
    			if(eval(objValue.value.length) > 0)
    			{
    				return isDate(objValue.value, strError);
    			}
    			break;
    		}
        case "maxlength": 
        case "maxlen": 
          { 
             if(eval(objValue.value.length) >  eval(cmdvalue)) 
             { 
               if(!strError || strError.length ==0) 
               { 
                 strError = objValue.name + " : "+cmdvalue+" caracteres maximum "; 
               }//if 
               alert(strError + "\n[lengtitud actual = " + objValue.value.length + " ]"); 
               return false;; 
             }//if 
             break; 
          }//case maxlen 
        case "minlength": 
        case "minlen": 
           { 
             if(eval(objValue.value.length) <  eval(cmdvalue)) 
             { 
               if(!strError || strError.length ==0) 
               { 
                 strError = objValue.name + " : " + cmdvalue + " caracteres minimum  "; 
               }//if               
               alert(strError + "\n[lengtitud actual = " + objValue.value.length + " ]"); 
               return false;;                 
             }//if 
             break; 
            }//case minlen 
        case "alnum": 
        case "alphanumeric": 
           { 
              var charpos = objValue.value.search("[^A-Za-z0-9]"); 
              if(objValue.value.length > 0 &&  charpos >= 0) 
              { 
               if(!strError || strError.length ==0) 
                { 
                  strError = objValue.name+": Solamente caracteres alpha-numericos permitidos "; 
                }//if 
                alert(strError + "\n [Error character position " + eval(charpos+1)+"]"); 
                return false;; 
              }//if 
              break; 
           }//case alphanumeric 
        case "num": 
        case "numeric": 
           { 
              var charpos = objValue.value.search("[^0-9]"); 
              if(objValue.value.length > 0 &&  charpos >= 0) 
              { 
                if(!strError || strError.length ==0) 
                { 
                  strError = objValue.name+": Solamente numeros "; 
                }//if               
                alert(strError + "\n [Error en la posicion " + eval(charpos+1)+"]"); 
                return false;; 
              }//if 
              break;               
           }//numeric 
        case "alphabetic": 
        case "alpha": 
           { 
              var charpos = objValue.value.search("[^A-Za-z]"); 
              if(objValue.value.length > 0 &&  charpos >= 0) 
              { 
                if(!strError || strError.length ==0) 
                { 
                  strError = objValue.name+": Solamente caracteres alphabeticos permitidos "; 
                }//if                             
                alert(strError + "\n [Error en la posicion " + eval(charpos+1)+"]"); 
                return false;; 
              }//if 
              break; 
           }//alpha 
		case "alnumhyphen":
			{
              var charpos = objValue.value.search("[^A-Za-z0-9\-_]"); 
              if(objValue.value.length > 0 &&  charpos >= 0) 
              { 
                if(!strError || strError.length ==0) 
                { 
                  strError = objValue.name+": caracteres permitidos: A-Z,a-z,0-9,- y _"; 
                }//if                             
                alert(strError + "\n [Error en la posicion " + eval(charpos+1)+"]"); 
                return false;; 
              }//if 			
			break;
			}
        case "email": 
          { 
               if(!validateEmailv2(objValue.value)) 
               { 
                 if(!strError || strError.length ==0) 
                 { 
                    strError = objValue.name+": Entra un email valido "; 
                 }//if                                               
                 alert(strError); 
                 return false;; 
               }//if 
           break; 
          }//case email 
        case "lt": 
        case "lessthan": 
         { 
            if(isNaN(objValue.value)) 
            { 
              alert(objValue.name+": Deberia ser un numero "); 
              return false;; 
            }//if 
            if(eval(objValue.value) >=  eval(cmdvalue)) 
            { 
              if(!strError || strError.length ==0) 
              { 
                strError = objValue.name + " : valor deberia ser menos de "+ cmdvalue; 
              }//if               
              alert(strError); 
              return false;;                 
             }//if             
            break; 
         }//case lessthan 
        case "gt": 
        case "greaterthan": 
         { 
            if(isNaN(objValue.value)) 
            { 
              alert(objValue.name+": Deberia ser un numero "); 
              return false;; 
            }//if 
             if(eval(objValue.value) <=  eval(cmdvalue)) 
             { 
               if(!strError || strError.length ==0) 
               { 
                 strError = objValue.name + " : valor deberia ser mayor que "+ cmdvalue; 
               }//if               
               alert(strError); 
               return false;;                 
             }//if             
            break; 
         }//case greaterthan 
        case "regexp": 
         { 
		 	if(objValue.value.length > 0)
			{
	            if(!objValue.value.match(cmdvalue)) 
	            { 
	              if(!strError || strError.length ==0) 
	              { 
	                strError = objValue.name+": Caracter invalido encontrado "; 
	              }//if                                                               
	              alert(strError); 
	              return false;;                   
	            }//if 
			}
           break; 
         }//case regexp 
        case "dontselect": 
         { 
            if(objValue.selectedIndex == null) 
            { 
              alert("BUG: dont select command for non-select Item"); 
              return false;; 
            } 
            if(objValue.selectedIndex == eval(cmdvalue)) 
            { 
             if(!strError || strError.length ==0) 
              { 
              strError = objValue.name+": Por favor seleccione una opcion "; 
              }//if                                                               
              alert(strError); 
              return false;;                                   
             } 
             break; 
         }//case dontselect 

    }//switch 

    return true; 

}









///////////////////////////////////////////////////////////////////////////

var dtCh= "-";

var minYear=1900;

var maxYear=2100;



function isInteger(s){

	var i;

    for (i = 0; i < s.length; i++){   

        // Check that current character is number.

        var c = s.charAt(i);

        if (((c < "0") || (c > "9"))) return false;;

    }

    // All characters are numbers.

    return true;

}



function stripCharsInBag(s, bag){

	var i;

    var returnString = "";

    // Search through string's characters one by one.

    // If character is not in bag, append to returnString.

    for (i = 0; i < s.length; i++){   

        var c = s.charAt(i);

        if (bag.indexOf(c) == -1) returnString += c;

    }

    return returnString;

}



function daysInFebruary (year){

	// February has 29 days in any year evenly divisible by four,

    // EXCEPT for centurial years which are not also divisible by 400.

    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );

}

function DaysArray(n) {

	for (var i = 1; i <= n; i++) {

		this[i] = 31

		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}

		if (i==2) {this[i] = 29}

   } 

   return this

}



function isDate(dtStr,msg)
{
//alert(dtStr);
	var daysInMonth = DaysArray(12)

	var pos1=dtStr.indexOf(dtCh)

	var pos2=dtStr.indexOf(dtCh,pos1+1)

	var strDay=dtStr.substring(0,pos1)

	var strMonth=dtStr.substring(pos1+1,pos2)

	var strYear=dtStr.substring(pos2+1)

	strYr=strYear

	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)

	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)

	for (var i = 1; i <= 3; i++) {

		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)

	}

	month=parseInt(strMonth)

	day=parseInt(strDay)

	year=parseInt(strYr)

	if (pos1==-1 || pos2==-1){

		alert("The "+msg+" el formato deberia ser: dd-mm-yyyy")

		return false;

	}

	if (strMonth.length<1 || month<1 || month>12){

		alert("Por favor entre un mes valido para "+msg)

		return false;

	}

	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){

		alert("Por favor entre un dia valido para "+msg)

		return false;

	}

	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){

		alert("Por favor entre un ano de 4 digitos  valido entre "+minYear+" y "+maxYear+" para "+msg);

		return false;

	}

	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){

		alert("Por favor entre valido "+msg)

		return false;

	}

	//alert("heeeello");

return true;

}



function ValidateForm()
{
	var dt=document.form1.deliveryDate

	if (isDate(dt.value,'delivery Date')==false){

		dt.focus();

		return false;

	}

	var dt2=document.form1.warrantyBeginDate



	if (isDate(dt2.value,'warranty Begin Date')==false){

		dt2.focus();

		return false;

	} 

	

	var dt3=document.form1.warrantyEndDate

	if (isDate(dt3.value,'warranty End Date')==false){

		dt3.focus();

		return false;

	}
	

	//document.form1.submit();

	//alert("htllo");

    return true;

 }


 function ValidateInvoiceDate()
 {
	var dt4=document.form1.distribInvoiceDate
	if(dt4.value != "")
	{
		if (isDate(dt4.value,'distribInvoiceDate')==false){
			dt4.value = "";
			dt4.focus();
			return false;
		}
	}
	return true;
 }
 
 
 
 function OpenWindow(url)
 {
    window.open(url, 'myWin', 'toolbar=no, directories=no, location=no, status=yes, menubar=no, resizable=yes, scrollbars=yes, width=950, height=700');
    return false;
 }




