// A function that checks whether any of a set of given fields are
// blank.  If there are one or more blank fields, it displays an alert
// listing out the blank fields and returns false.  Otherwise, it
// returns true.  Its parameters are the form, an array of strings
// representing the field names (in the form) and an array of strings
// representing the labels to be displayed in the alert to denote the
// fields which are blank.

function checkEmail(fieldValue){
	var chkAt = fieldValue.indexOf("@");
	var chkDot= fieldValue.indexOf(".");
	var chkHack= fieldValue.indexOf("@.");
	var chkHackA= fieldValue.indexOf(".@");
	//var chkDe= fieldValue.indexOf(".de");

	if((chkAt >= 0) && (chkDot >= 0) && (chkHack == -1) && (chkHackA == -1) ) {
		return true;
	}
	return false;
}

function has_blank_fields (form, field_names, field_labels)
{

	var error_message = "";
	for (var f = 0; f < field_names.length; ++f) {
		var append_error = false;
		if (form[field_names[f]].type == "text" || form[field_names[f]].type == "textarea"
		    || form[field_names[f]].type == "file" || form[field_names[f]].type == "password") {
			if (form[field_names[f]].value == "") {
				append_error = true;
			}else{
				if(field_names[f].indexOf('email') > -1){
					if(checkEmail(form[field_names[f]].value) == false){
						append_error = true;
					}
				}
			}
			
		}
		else if (form[field_names[f]].type == "select-one") {
			if (form[field_names[f]][form[field_names[f]].selectedIndex].value == "") {
				append_error = true;
			}
		}
		else if (form[field_names[f]].type == "select-multiple") {
			var selected = false;
			for (var i = 0; i < form[field_names[f]].length && !selected; ++i) {
				if (form[field_names[f]].options[i].selected) {
					selected = true;
				}
			}
			append_error = !selected;
		}
		else if (form[field_names[f]].type == "checkbox") {
			append_error = !form[field_names[f]].checked;
		}
		else if (form[field_names[f]].type == undefined && form[field_names[f]][0].type == "radio") {
//			alert("fld name="+field_names[f]+"width="+form["oriwidth"].value);
			if((field_names[f]=="width_select")&&(form["oriwidth"].value!="")){
				//alert("hi");
				var i;
				for (i=0; i < form[field_names[f]].length;++i){
					//alert("hi"+form[field_names[f]][i].value);		
					if(form[field_names[f]][i].checked){
//						alert("checked"+form[field_names[f]][i].value+"!="+form["oriwidth"].value+"uploadfilee="+document.file_upload.upload.value);		
						
						if((form[field_names[f]][i].value != form["oriwidth"].value)&&(document.file_upload.upload.value=="")){
							alert("Sorry, you cannot resize existing file .This check is to ensure image quality");		
							 rlen=parseInt(document.file_upload.width_select.length);
							 for(var r=0;r<rlen;r++)
							 {
								   relement=document.file_upload.width_select[r];
								   if(relement.value==form["oriwidth"].value){
										
									     relement.checked=1;
									     return false;		 
								    }
							 }

							return false;
						}
					}	
				}
			}
			var i;
			for (i = 0; i < form[field_names[f]].length && !form[field_names[f]][i].checked; ++i);
			if (!(i < form[field_names[f]].length)) {
				if((field_names[f]=="width_select")&&(form["oriwidth"].value=="")&&(document.file_upload.upload.value=="")){
					append_error = true;
				}
				(f!="width_select") 
					append_error = true;
			}
			
		}
		if (append_error) {
			error_message += field_labels[f] + "\n";
		}
	}

	if (error_message != "") {
		alert("Die folgenden Felder müssen noch ausgefüllt werden:\n" + error_message);
		return false;
	}
	else {
		return true;
	}
}
//function to check date validity
function chkdate(){

    var fromday =   document.forms[0].from_day.options[document.forms[0].from_day.selectedIndex].value;
    if(fromday=='') fromday=0;	
    var frommonth = document.forms[0].from_month.options[document.forms[0].from_month.selectedIndex].value;
    if(frommonth=='') frommonth=0;	
    var fromyear = document.forms[0].from_year.options[document.forms[0].from_year.selectedIndex].text;
    if(fromyear=='') fromyear='0000';	
    unvalidfromdate = padout(fromday) + '/' + padout(frommonth) + '/' + fromyear;
    var fromdate = new Date(fromyear-0,frommonth-1,fromday-0);
    var validfromdate = padout(fromdate.getDate()) + '/' + padout(fromdate.getMonth()+1) + '/' + y2k(fromdate.getYear())
    fromtime = Date.UTC(y2k(fromdate.getYear()),fromdate.getMonth(),fromdate.getDate(),0,0,0);
    var from = fromyear + '-' + padout(frommonth) + '-' + padout(fromday);

  
    var to_day =   document.forms[0].to_day.options[document.forms[0].to_day.selectedIndex].value;
    if(to_day=='') to_day=0;	
    var tomonth = document.forms[0].to_month.options[document.forms[0].to_month.selectedIndex].value;
    if(tomonth=='') tomonth=0;	
    var toyear = document.forms[0].to_year.options[document.forms[0].to_year.selectedIndex].text;
    if(toyear=='') toyear='0000';	
    var unvalidtodate = padout(to_day) + '/' + padout(tomonth) + '/' + toyear;
    var todate = new Date(toyear-0,tomonth-1,to_day-0);
    var validtodate = padout(todate.getDate()) + '/' + padout(todate.getMonth()+1) + '/' + y2k(todate.getYear())

    totime = Date.UTC(y2k(todate.getYear()),todate.getMonth(),todate.getDate(),0,0,0);
    var to = toyear + '-' + padout(tomonth) + '-' + padout(to_day);

    if(from != "0000-00-00"){
	    if(unvalidfromdate != validfromdate){
		      alert('FROM DATE is invalid');
			return false;
	    }
	    document.forms[0].from.value=from;

    }	
    else{
	    document.forms[0].from.value='';
	}
			
    if(to != "0000-00-00"){ 
	    if(unvalidtodate != validtodate){
      	   alert('TO DATE is invalid');
		   return false;
	    }
	    document.forms[0].to.value=to;

    }
    else{
	    document.forms[0].to.value='';
	}

    if((from == "0000-00-00")||(to == "0000-00-00")){	
		return true;
    }else
    {
	    if(fromtime >= totime){
    			alert('FROM DATE should be less than TO DATE');
			return false;
	    }
	    else
			return true;	

    }	 
  
}

function padout(number) { return (number < 10) ? '0' + number : number; }

function y2k(number) { return (number < 1000) ? number + 1900 : number; }

function chksubmission(f){
	if(!chkdate()){
		return false;
	}
	if(!posnonzeronum(document.forms[0].entries_perpg,"Entries per page")){
		return false;
	}
      
	
	return true;
}
function chkdelsubmission(f){
	if(!chkdate()){
		return false;
	}
	if(document.forms[0].all.checked){
		msg=document.forms[0].message.value;
	}
	else{
		msg=document.forms[0].message.value;
		if(document.forms[0].from.value != ''){
			msg=msg+" from date '"+document.forms[0].from.value+"'";
		}
		if(document.forms[0].to.value != ''){
			msg=msg+" upto date '"+document.forms[0].to.value+"'";
		}

	}

	if(confirm(msg)){
		return true;
	}
	else
      	return false;
}

//function to check if the field is positive numeric		
function posnonzeronum(f,fldname)
{
 	s=f.value
      if(s == "")
      {
		alert(fldname+" cannot be left blank.")
		f.value='';
        	f.focus()
        	return false;
      }
	if(s<=0)
      {
      	alert(fldname+"  should be greater than zero.")
		f.value='';
        	f.focus()
        	return false;
      }
      for(var i=0;i<=s.length;++i)
      {
      	if(isNaN(s.charAt(i)))
	      {
      		alert("Please enter a Valid Number for "+fldname)
			f.value='';
		      f.focus();
         		return false;
	        }
      }
      return true;
}

function validate_form(langid){
	if(document.clc_admin.questionaire_name.value == "" && langid == "0")
	{
	      alert("Please enter a name for your form");
//	      document.clc_admin.name.focus();
      	return false;
	}
	if(document.clc_admin.email.value != ""){
		var e_array = document.clc_admin.email.value.split(",");
		for(var s=0,emlerr='';s<e_array.length;s++){
			if(e_array[s] != ""){
				if(e_array[s].lastIndexOf("@") == -1 || e_array[s].lastIndexOf(".") == -1) {
					email_no = parseInt(s,10) + 1;
					emlerr += " -Email Number " + email_no + "(" + e_array[s] + ")\n";
					append_error = true;
				}
			}

		}
		if(emlerr != ""){
			//field_labels[f] = field_labels[f] + "\nThe following email addresses are invalid \n" + emlerr;
			alert("\nThe following email addresses are invalid \n" + emlerr);
			return false;
		}


		/*    if((document.clc_admin.email.value.indexOf('@',0)&&document.clc_admin.email.value.indexOf('.',0))==-1){
			      alert("Enter valid e-mail address");
			      document.clc_admin.email.focus()
			      return false
		      }
		*/
	}	
     return true
}