
// CHOOSER FUNCTIONS:

// Select/Deselect all checkboxes in a form when master checkbox checked.
function select_all(){
	rule=0;
if (this.document.chooser.allbox.checked)
	rule=1;
	for (var i=0;i<this.document.chooser.elements.length;i++){
		var e = this.document.chooser.elements[i];
		if (e.type=='checkbox')
		e.checked = rule;
	}
}

function choose_languages(){
	var lang_list="'en'";
	for (var i=0;i<this.document.chooser.elements.length;i++){
		var e = this.document.chooser.elements[i];
		if (e.type=='checkbox' && e.checked==1){
		var lang_list=lang_list + ", '"+e.value+"'";
		}
	}
	alert(lang_list);
	opener.document.sql.lang_list.value=lang_list;
}

function choose_def_lang(id, name){
	opener.document.sql.def_lang_id.value=id;
	opener.document.sql.def_lang_name.value=name;
}

function choose_author(name){
	this.document.sql.author_name.value=name;
	this.document.sql.author_name.focus();
	return true;
}


// VALIDATION FUNCTIONS:

// mandatory fields validation, submitting "sql" form
function validate_new_attachment(){
	if (this.document.sql.description.value==""){
		alert ("Please fill out all mandatory fields");
		return;
	}
this.document.sql.sql.value="new_attachment";
this.document.sql.submit();
}

// "upload" form validation, submitting the form
function validate_photo(){
if (upload_photo.Filename.value.length<=5){
 alert(photo_alert);
 return false;
}
len=upload_photo.Filename.value.length;
ext=upload_photo.Filename.value.substr(len-4);
if (!(
	ext == '.jpg' ||
	ext == '.JPG' ||
	ext == 'jpeg' ||
	ext == 'JPEG'
	)
){
 alert(photo_alert3);
 return false;
}
return true;
}


// SEARCH mandatory fields validation, string length validation, submitting "sql" form 
function validate_search(){
		personid=this.document.sql.personid.value;
		textsearch=this.document.sql.textsearch.value;
		supplierid=this.document.sql.supplierid.value;
		collaborationmode=this.document.sql.collaborationmode.value;
		status=this.document.sql.status.value;
		projectname=this.document.sql.projectname.value;

	if (
		personid=="" &&
		textsearch=="" &&
		supplierid=="" &&
		collaborationmode=="" &&
		projectname=="" &&
		status==""
		){
		alert ("Please specify at least one criteria to search");
		return;
	}
	
	if (
		(textsearch!="" && textsearch.length < 3) ||
		(collaborationmode!="" && collaborationmode.length < 3) ||
		(projectname!="" && projectname.length < 3)
		){
		alert ("Length of text string to search\nshould be at least 3 characters");
		return;
	}

	this.document.sql.sql.value="search";
	this.document.sql.submit();
}

// EDVANCED_SEARCH mandatory fields validation, string length validation, submitting "sql" form

// Dates, workflow, logic validation, submitting "sql" form
// Common function "string_to_ms(s)" in use
// See COMMON FUNCTIONS
function validate_status(){
	this.document.sql.sql.value="change_status";
	this.document.sql.submit();
}


// mandatory fields validation, submitting "sql" form
function add_acl(){
	personid=this.document.sql.personid.value;
	if (personid==""){
		alert("Choose Person to Add");
		return;
	}
	this.document.sql.sql.value="add_acl";
	this.document.sql.submit();
}



// passing parameters, submitting "sql" form
function delete_acl(personid){
	this.document.sql.personid.value=personid;
	this.document.sql.sql.value="delete_acl";
	this.document.sql.submit();
}

// END OF VALIDATION FUNCTIONS

// ADMINISTRATION FUNCTIONS

// setting parameters, submitting "operation" form
function add_group(){
	this.document.operation.action.value="add_group";
	this.document.operation.submit();
}

// setting parameters, submitting "operation" form
function add_nav_1(){
	this.document.operation.action.value="add_nav_1";
	this.document.operation.submit();
}

// setting parameters, submitting "operation" form
function add_site(){
	this.document.operation.action.value="add_site";
	this.document.operation.submit();
}

// setting parameters, submitting "operation" form
function add_mode(){
	this.document.operation.action.value="add_mode";
	this.document.operation.submit();
}


// passing parameters, submitting "operation" form
function edit_site(sid){
	this.document.operation.siteid.value=sid;
	this.document.operation.action.value="edit_site";
	this.document.operation.submit();
}

// passing parameters, submitting "operation" form
function edit_mode(mid){
	this.document.operation.modeid.value=mid;
	this.document.operation.action.value="edit_mode";
	this.document.operation.submit();
}


// passing parameters, submitting "operation" form
function edit_nav_1(nav_1_id, nav_1_label, nav_1_link, nav_1_rank){
	this.document.operation.nav_1_id.value=nav_1_id;
	this.document.operation.nav_1_label.value=nav_1_label;
	this.document.operation.nav_1_link.value= nav_1_link;
	this.document.operation.nav_1_rank.value=nav_1_rank;
	this.document.operation.action.value="edit_nav_1";
	this.document.operation.submit();
}
	
// passing parameters, submitting "operation" form
function edit_nav_2(nav_2_id, nav_2_label, nav_2_link, nav_2_rank, nav_1_label){
	this.document.operation.nav_2_id.value=nav_2_id;
	this.document.operation.nav_2_label.value=nav_2_label;
	this.document.operation.nav_2_link.value=nav_2_link;
	this.document.operation.nav_2_rank.value=nav_2_rank;
	this.document.operation.nav_1_label.value=nav_1_label;
	this.document.operation.action.value="edit_nav_2";
	this.document.operation.submit();
}

// passing parameters, submitting "operation" form
function edit_nav_3(nav3id, nav3label, nav3link, nav3rank, nav_2_label){
	this.document.operation.nav3id.value=nav3id;
	this.document.operation.nav3label.value=nav3label;
	this.document.operation.nav3link.value=nav3link;
	this.document.operation.nav3rank.value=nav3rank;
	this.document.operation.nav_2_label.value=nav_2_label;
	this.document.operation.action.value="edit_nav_3";
	this.document.operation.submit();
}

// passing parameters, submitting "operation" form
function edit_user(userid){
	this.document.operation.action.value="edit_user";
	this.document.operation.userid.value=userid;
	this.document.operation.submit();
}

// setting parameters, submitting "operation" form
function add_user(){
	this.document.operation.action.value="add_user";
	this.document.operation.submit();
}

//main transferring, validation and redirection function for all ADMINISTRATOR's pages
function send_sql(a){
	if (a=="remove_user"){
		this.document.sql.sql.value="remove_user";
	}
	if (a=="change_role"){
		this.document.sql.sql.value="change_role";
	}
	
	if (a=="toggle_user_status"){
		this.document.sql.sql.value="toggle_user_status";
	}

	if (a=="add_user"){
		var firstname=this.document.sql.firstname.value;
		var secondname=this.document.sql.secondname.value;
		var nokiaid=this.document.sql.nokiaid.value;
		var ntusername=this.document.sql.ntusername.value;
		var email=this.document.sql.email.value;
		var role=this.document.sql.role.value;
		if (
		firstname=="" ||
		secondname=="" ||
		ntusername=="" ||
		nokiaid=="" ||
		email==""
		){
		alert ("All fields in the form are mandatory");
		return;
		}
		this.document.sql.sql.value="add_user";
	}


	if (a=="add_site"){
		groupid=this.document.sql.groupid.value;
		sitename=this.document.sql.sitename.value;
		city=this.document.sql.city.value;
		country=this.document.sql.country.value;
		if (
			groupid=="" || 
			sitename=="" ||
			country=="" ||
			city=="" 
		){
		alert ("All fields in the form are mandatory")
		return;
		}
		this.document.sql.sql.value="add_site";
	}
	if (a=="add_nav_1"){
		nav_1_label=this.document.sql.label1.value;
		nav_1_link=this.document.sql.link1.value;
		nav_1_rank=this.document.sql.rank1.value;
		nav_1_access=this.document.sql.access1.value;
		if (nav_1_label=="" || nav_1_link=="" || nav_1_rank==""){
		alert ("All fields in the form are mandatory")
		return;
		}
		if ((nav_1_rank=string_to_abs_int(nav_1_rank)) > 0){
			this.document.sql.nav_1_rank.value=nav_1_rank;
		}else{
			this.document.sql.rank1.value="";
			alert("Rank has to be Positive Integer");
		return;
		}
		this.document.sql.nav_1_label.value=nav_1_label;
		this.document.sql.nav_1_link.value=nav_1_link;
		this.document.sql.nav_1_access.value=nav_1_access;
		this.document.sql.sql.value="add_nav_1";
	}
	
	if (a=="add_nav_2"){
		nav_2_label=this.document.sql.label2.value;
		nav_2_link=this.document.sql.link2.value;
		nav_2_rank=this.document.sql.rank2.value;
		nav_2_access=this.document.sql.access2.value;
		if (nav_2_label=="" || nav_2_link=="" || nav_2_rank==""){
		alert ("All fields in the form are mandatory")
		return;
		}
		if ((nav_2_rank=string_to_abs_int(nav_2_rank)) > 0){
			this.document.sql.nav_2_rank.value=nav_2_rank;
		}else{
			this.document.sql.rank2.value="";
			alert("Rank has to be Positive Integer");
		return;
		}
		this.document.sql.nav_2_label.value=nav_2_label;
		this.document.sql.nav_2_link.value=nav_2_link;
		this.document.sql.nav_2_access.value=nav_2_access;
		this.document.sql.sql.value="add_nav_2";
	}
	
	if (a=="edit_nav_1"){
		nav_1_label=this.document.sql.label1.value;
		nav_1_link=this.document.sql.link1.value;
		nav_1_rank=this.document.sql.rank1.value;
		nav_1_access=this.document.sql.access1.value;
		if (nav_1_label=="" || nav_1_link=="" || nav_1_rank==""){
		alert ("All fields in the form are mandatory")
		return;
		}
		if ((nav_1_rank=string_to_abs_int(nav_1_rank)) > 0){
			this.document.sql.nav_1_rank.value=nav_1_rank;
		}else{
			this.document.sql.rank1.value="";
			alert("Rank has to be Positive Integer");
		return;
		}
		this.document.sql.nav_1_label.value=nav_1_label;
		this.document.sql.nav_1_access.value=nav_1_access;
		this.document.sql.nav_1_link.value=nav_1_link;
		this.document.sql.sql.value="update_nav_1";
	}
	
	if (a=="edit_nav_2"){
		nav_2_label=this.document.sql.label2.value;
		nav_2_link=this.document.sql.link2.value;
		nav_2_rank=this.document.sql.rank2.value;
		nav_2_access=this.document.sql.access2.value;
		if (nav_2_label=="" || nav_2_link=="" || nav_2_rank==""){
		alert ("All fields in the form are mandatory")
		return;
		}
		if ((nav_2_rank=string_to_abs_int(nav_2_rank)) > 0){
			this.document.sql.nav_2_rank.value=nav_2_rank;
		}else{
			this.document.sql.rank2.value="";
			alert("Rank has to be Positive Integer");
		return;
		}
		this.document.sql.nav_2_label.value=nav_2_label;
		this.document.sql.nav_2_link.value=nav_2_link;
		this.document.sql.nav_2_access.value=nav_2_access;
		this.document.sql.sql.value="update_nav_2";
	}
	this.document.sql.submit();
}

// END OF ADMINISTRATION FUNCTIONS

// COMMON FUNCTIONS

// Displays EMPTY message in the browser status line
function hide_status(){
	window.status="";
	return true;
}

// Converts text string in DD/MM/YYYY format to milliseconds from EPOCH 
function string_to_ms(s){
	var dd = new Date();
	dd.setFullYear(s.substr(6,4));
	var Month = s.substr(3,2)-1; 
	dd.setMonth(Month);
	dd.setUTCDate(s.substr(0,2));
	dd.setUTCHours(0);
	dd.setUTCSeconds(0);
	dd.setUTCMilliseconds(0);
	dd.setUTCMinutes(0);
	s=dd.getTime();
return s;
}

// Converts text string to Positive Integer
function string_to_abs_int(s){
	s=Math.round(Math.abs(s));
return s;
}

// Converts text string to Positive Numeric
function string_to_abs(s){
	s=Math.abs(s);
return s;
}

// Validate input string to avoid specific characters:  "  '  *
function validate_string(field){
	s=field.value;
	if (
	s.indexOf("\"")>=0 || 
	s.indexOf("\'")>=0 || 
	s.indexOf("\*")>=0
	){
	s=s.replace(/\"/g, "");
	s=s.replace(/\'/g, "");
	s=s.replace(/\*/g, "");
	alert ("Please do not use special characters");
	field.value=s;
	}
}

// common redirection function for all pages. Submits "show_page" form
function show_page(p){
	if (this.document.show_page.searchpagenumber){
		this.document.show_page.searchpagenumber.value=p;
	}
	this.document.show_page.pagenumber.value=p;
	this.document.show_page.submit();
}

function input_sign(x)
{
	x=this.document.sql.haiku.value+"\n"+x+"\n";
    this.document.sql.haiku.value=x;
	this.document.sql.haiku.focus();
	return true
}
